Diccionarios de Referencia

Esta página concentra todos los identificadores (IDs) utilizados en los webhooks y la API de Forpay para clasificar medios de pago, estados de cuotas y estados de compromisos.


1. Medios de pago: entrada, activación y pago

Los IDs de creación y los IDs de respuesta cumplen funciones diferentes. paymentMethods selecciona los medios disponibles para el cliente. Los webhooks y consultas informan el medio asociado al mandato o utilizado por un pago mediante los campos de cada operación. El ID de entrada no se devuelve necesariamente en la respuesta.

1.1. Entrada: seleccionar medios al crear un mandato

paymentMethods es un array opcional. Cada elemento puede ser un nombre público (string) o su ID de entrada (integer); se permiten listas mixtas. Si se omite, se utilizan los medios disponibles para el comercio. Cada tipo de mandato admite un subconjunto del catálogo y el comercio debe tener habilitado el medio elegido: consulta las opciones de la operación de creación correspondiente.

Nombre públicoID de entradaUso
ONECLICK1001Inscripción de tarjeta para pagos automáticos.
WEBPAY_PLUS1002Pago con tarjeta.
FORPAC1003Inscripción PAC con Clave Única.
DIRECT_DEBIT1004Inscripción de cuenta para débito directo.
GETNET_CLICK1005Inscripción de tarjeta para pagos automáticos.
GETNET_TOKENIZACION1006Tokenización de tarjeta; no está habilitada en la creación de mandatos documentada.
WEB_CHECKOUT1007Pago con tarjeta mediante checkout.
EFT1008Pago por transferencia electrónica.
BANK_BUTTONS1009Pago mediante botones bancarios.
PAC_SUBSCRIPTION1010Inscripción PAC.
FORPAC_SUBSCRIPTION1011Inscripción PAC para ForPAC.
PHYSICAL_UNIVERSE1012Inscripción PAC física con confirmación bancaria.
PHYSICAL_UNIVERSE_BANK_PORTAL1013Inscripción PAC desde portal bancario con confirmación bancaria.
KLAP_APPLE_PAY1014Pago mediante Apple Pay.
KLAP_GOOGLE_PAY1015Pago mediante Google Pay.
KLAP_CLICK_TO_PAY1016Pago mediante Click to Pay.
KLAP_CHECKOUT_FLEX1017Pago con tarjeta mediante Checkout Flex.

1.2. Activación: identificar el medio asociado

En los webhooks de activación, el objeto paymentMethod describe el medio asociado al mandato. Los datos de tarjeta, cuenta y documento dependen del evento; no son requisitos simultáneos de todos los webhooks. Los campos de la tabla se leen cuando el evento incluye el objeto correspondiente.

CampoTipo JSONDescripción y condición
paymentMethod.idnumberClasificación del medio asociado. En activación de tarjetas: 3 crédito, 4 débito o 11 prepago; en la activación ForPAC: 6. No identifica el selector de creación.
paymentMethod.descriptionstringDescripción enviada por ese evento. Puede diferir del nombre público de entrada.
paymentMethod.card.last4digitsstringÚltimos cuatro dígitos, en eventos de tarjeta.
paymentMethod.card.brand.id / .namenumber / stringIdentificador y nombre de la marca, cuando se incluyen datos de tarjeta.
paymentMethod.account.type.id / .namenumber / stringIdentificador y nombre del tipo de cuenta, en eventos bancarios.
paymentMethod.account.numbernumber en los eventos ForPAC y PAC con credenciales bancarias documentadosNúmero de la cuenta asociada. El tipo se interpreta según el contrato del evento; no se extrapola a otros webhooks.
paymentMethod.account.bankobjectDatos del banco cuando el evento los incluye. En ForPAC: code, name y centralBankCode son string.
paymentMethod.account.documentobjectDatos del documento de inscripción cuando corresponden al evento. No está presente en todas las modalidades PAC.
subscription.internalId / .externalIdnumber / stringIdentificador de la inscripción en Forpay y referencia de esa inscripción en el procesador. No son IDs de medio de pago.

El webhook de PAC con credenciales bancarias utiliza IDs operativos 13 o 14 según el evento. Esto no establece una equivalencia uno a uno con los selectores PAC_SUBSCRIPTION o FORPAC_SUBSCRIPTION. Para el contenido y las condiciones de cada variante, consulta tarjetas, ForPAC con Clave Única y credenciales bancarias.

1.3. Pago y consultas: identificar el medio utilizado

La ubicación del dato cambia entre un webhook y una respuesta de consulta. Los nombres de los campos no se intercambian. Las rutas de consulta siguientes incluyen el envoltorio de la respuesta HTTP.

Webhook de pago

  • Campo: payment.method.id / .description
  • Tipo JSON: number / string

Clasificación y descripción del medio utilizado, cuando el evento incluye payment.method. Ejemplos: 5 débito directo, 6 ForPAC, 12 transferencia electrónica y 19 botones bancarios.

Webhook de pago con tarjeta

  • Campo: payment.method.card.last4digits / .brand.name
  • Tipo JSON: string / string

Últimos cuatro dígitos y marca de la tarjeta, cuando el evento incluye datos de tarjeta.

Webhook de pago bancario

  • Campo: payment.method.account.number
  • Tipo JSON: string en Débito Directo y EFT; number en ForPAC

Cuenta utilizada por el pago. El tipo y los demás datos bancarios dependen del contrato del evento.

Consulta de mandato

  • Campo: payload.payload.mandate.paymentMethod.id / .name
  • Tipo JSON: integer / string

Medio asociado al mandato, cuando está disponible.

OnePay Confirm

  • Campo: payload.payload.installments[].payment.method.id / .description
  • Tipo JSON: number / string

Clasificación y descripción del medio informado para cada cuota. payment puede estar ausente cuando no hay información de pago asociada.

Search: medio del mandato

  • Campo: payload.data[].mandate.paymentMethod.id / .name
  • Tipo JSON: integer o null / string o null

Clasificación del medio del mandato.

Search: medio de la cuota

  • Campo: payload.data[].installments[].paymentMethod.id / .name
  • Tipo JSON: integer o null / string o null

Clasificación del medio de esa cuota.

Filtros de Search

  • Campo: paymentMethodId / installmentPaymentMethodId
  • Tipo JSON: integer

Filtran por el ID operativo del medio del mandato o de la cuota, respectivamente. Utiliza el catálogo de la operación Search.

El objeto payment no implica por sí solo un pago exitoso: revisa el estado de la cuota y los campos incluidos en el evento o respuesta. Los textos name y description, y los datos adicionales de metadata, conservan el contenido generado por cada operación; elegir un nombre público al crear no los renombra.

Ejemplo EFT: para seleccionar transferencia electrónica al crear un mandato que admita esta opción, envía "paymentMethods": ["EFT"] o "paymentMethods": [1008]. En el webhook de pago EFT, el medio se informa como "payment": { "method": { "id": 12, "description": "EFT" } }. Para buscar cuotas de ese medio usa installmentPaymentMethodId=12, junto con los demás parámetros requeridos de Search. 1008 es el selector de entrada y 12 es la clasificación operativa; no son intercambiables.

Los IDs operativos se interpretan dentro de cada operación. No existe una correspondencia única para todo el catálogo de entrada: varios productos pueden devolver el mismo tipo de tarjeta o cuenta. La respuesta del evento u operación correspondiente es la que identifica el medio utilizado.


2. Estados de Cuotas (installment.state.id)

Indica la situación actual de una cuota específica dentro del ciclo de cobro.

IDEstadoDescripción
1PENDIENTECuota generada, a la espera de su fecha de cobro
2PAGADACobro realizado con éxito. Genera authorizationCode
6ANULADALa cuota fue invalidada antes de ser procesada
8INACTIVACuota en estado inactivo reconocido por Search
9EN PROCESO DE COBROLa transacción fue enviada al procesador de pagos
10REPACTADALa deuda fue movida a un nuevo compromiso o estructura
11FINALIZADAProceso de cobro concluido
12REVERSADAEl pago fue devuelto al cliente
15EN VALIDACIÓNEsperando confirmación externa de éxito
17ELIMINADAExcluida en Search salvo filtro explícito installmentStatus=17
18PAUSADACuota en estado pausado reconocido por Search
-99RECHAZADACobro fallido por el procesador de pagos

Cuando el objeto payment esté presente, concatena payment.id, payment.authorizationCode, payment.amount y payment.dateTime después de los campos base. Esto también aplica a una notificación REVERSADA (12) que incluya payment. Cuando el objeto esté ausente, utiliza solo los campos base. Elimina todos los caracteres de espacio en blanco del texto concatenado antes de calcular el HMAC. Ver Verificación HMAC.


3. Estados de Compromisos (product.state.id)

Indica la situación global del mandato o suscripción del cliente.

IDEstadoDescripción
1ACTIVA / AUTOMATIZADAEl compromiso está activado con un medio de pago automático.
2PAGADATodas las cuotas del compromiso han sido completadas, aplica en suscripciones y planes de pago.
3ELIMINADAEl compromiso fue borrado del sistema.
4REPACTADALas condiciones originales fueron modificadas, aplica solo para planes de pago no modificados por API.
5POSTERGADAEl compormiso de pago está pausado temporalmente.
6ANULADAEl compromiso fue anulado definitivamente.
7PENDIENTE DE ANULACIÓNSolicitud de baja en solicitada por el cliente.
8INACTIVA / NO AUTOMATIZADAEl compromiso ha sido creado pero no tiene un medio de pago automático.
9RECHAZADAEl compromiso de pago fue rechazado por el cliente.
10FINALIZADAEl compromiso fue finalizado anticipadamente.
11EN CONFIRMACIÓN BANCOEsperando validación del mandato PAC por parte de la institución bancaria.

Nota: Para los eventos habilitados, el webhook de activación informa cuando el mandato pasa al estado 1 (ACTIVA). El estado 11 puede recibirse en activaciones PAC mientras el banco confirma el mandato PAC.


4. Tipos de Cuenta (paymentMethod.account.type.id)

Identifica el tipo de cuenta bancaria del cliente.

IDTipo de Cuenta
1Cuenta Corriente
2Cuenta Vista
3Cuenta de Ahorro

5. Monedas: valores de entrada e identificadores de respuesta

El catálogo contempla cinco divisas. En los campos de entrada currencyId se utiliza el literal de texto de la tabla, no el ID numérico de respuesta. Los campos currency.id de las respuestas identifican la divisa mediante un número.

MonedaLiteral de entrada (string)ID de respuesta (number)Símbolo
Peso chilenoPESOS1CLP / $
Unidad de FomentoUF2UF
Dólar estadounidenseDOLAR3USD / US$
Unidad Tributaria MensualUTM4UTM
EuroEURO5EUR / €

La disponibilidad depende de la operación, del campo y del medio de pago utilizado. Que una solicitud admita una divisa no significa que todos los medios habilitados permitan cobrar directamente en ella. Utiliza el subconjunto admitido por el campo y considera la conversión aplicable al medio de pago.

Operación y campo de entradaDivisas admitidas en ese campo
Creación Dynamic: mandate.charges.values.currencyId e installments[].currencyIdPESOS, UF, DOLAR, UTM, EURO
Creación Permanent y OnePay: mandate.charges.totalAmounts[].currencyIdPESOS, UF, DOLAR, UTM, EURO
Creación Permanent y OnePay: installments[].currencyIdPESOS, UF, DOLAR, UTM
Creación Subscription mensual: mandate.charges.paymentPeriod.currencyIdPESOS, UF, DOLAR, UTM, EURO
Creación Subscription de periodicidad alternativa: mandate.charges.paymentPeriod.currencyIdPESOS, UF, DOLAR, UTM
Creación Subscription: installments[].currencyIdPESOS, UF, DOLAR, UTM, EURO
Creación de cuotas (POST /installments): installments[].currencyIdPESOS, UF, DOLAR, UTM, EURO
Update de suscripción, contrato mensual documentado: mandate.charges.paymentPeriod.currencyIdPESOS, UF, DOLAR, UTM, EURO; se envía junto con amount.

Por ejemplo, "currencyId": "DOLAR" identifica una divisa en una solicitud que la admita; una respuesta puede representarla como "currency": { "id": 3, "name": "DOLAR" }. Para pesos chilenos, el literal de entrada es PESOS; CLP es el símbolo mostrado en este catálogo.

Cuando el pago incluya payment.convert, sus campos describen la conversión aplicada: currency identifica la divisa base, amount informa el factor o valor de conversión y date su fecha. Distingue el monto denominado en la divisa de la cuota del monto efectivamente cobrado. Revisa el contrato del webhook o consulta para interpretar ambos importes y la disponibilidad de los datos de conversión.

El estado -99 expresa el rechazo de un intento de cobro en el webhook. Una consulta posterior puede mostrar la cuota en PENDIENTE. Para consultar cuotas en Search utiliza los estados persistidos admitidos por esa operación.