Campos de Verificación
Referencia completa de los campos dinámicos del endpoint de verificación de pagos.
El endpoint de verificación de pagos utiliza un sistema de campos dinámico. Cada cuenta bancaria devuelve en su respuesta un array verifications_types_available, y cada tipo de verificación expone un array fields_required con los campos que deben enviarse en el body de la petición.
¿Cómo saber qué campos enviar?
GET https://api.pabilo.app/me/usersbank para obtener las cuentas bancarias del usuario. Cada cuenta incluye verifications_types_available[].fields_required[].name, que son exactamente los identificadores de campo de esta página.Tabla de Referencia
| Constante (fields_required) | Parámetro API | Tipo | Obligatorio |
|---|---|---|---|
| REFERENCE_NUMBER | bank_reference | string | Sí (cuando aparece) |
| BANK_CODE_ORIGIN | bank_origin | string | Sí (cuando aparece) |
| BANK_ACCOUNT_ORIGIN | cuentaPagador | string | Sí (cuando aparece) |
| PHONE_ORIGIN | phone_pagador | string | Sí (cuando aparece) |
| DNI_ORIGIN | dni_pagador | object | Sí (cuando aparece) |
| PAYMENT_DATE | fecha_pago | string | Sí (cuando aparece) |
| REFERENCE_OTP | otp | string | Sí (cuando aparece) |
| INVOICE_NUMBER_PRECALCULATED | invoice_number | number | Sí (cuando aparece) |
| — (siempre presente) | amount | number | Condicional |
| — (siempre presente) | movement_type | string | Según banco |
Detalle de Campos
REFERENCE_NUMBER→ bank_reference
Los dígitos de la referencia bancaria del movimiento. Este es el número que identifica la transacción en el extracto del banco receptor.
Tipo: string
Longitud mínima: 3 caracteres (5 si no se envía monto)
Ejemplo: "98765432"
{ "bank_reference": "98765432" }BANK_CODE_ORIGIN→ bank_origin
Código de 4 dígitos del banco de donde proviene el pago (banco emisor). Corresponde al código estándar SUDEBAN de Venezuela.
Tipo: string
Formato: 4 dígitos numéricos
Ejemplos: "0102" (Banco de Venezuela), "0105" (Mercantil), "0108" (Provincial)
{ "bank_origin": "0102" }BANK_ACCOUNT_ORIGIN→ cuentaPagador
Número de cuenta bancaria completa del pagador (cuenta de origen del dinero).
Tipo: string
Formato: número de cuenta venezolano (20 dígitos)
Ejemplo: "01020123456789012345"
{ "cuentaPagador": "01020123456789012345" }PHONE_ORIGIN→ phone_pagador
Número de teléfono del pagador. Requerido en operaciones de Pago Móvil y en cuentas empresariales donde el banco valida el número del remitente.
Tipo: string
Formato: 04XXXXXXXXX — 11 dígitos, comenzando con 04
Ejemplo: "04141234567"
{ "phone_pagador": "04141234567" }DNI_ORIGIN→ dni_pagador
Cédula de identidad del pagador. Se envía como un objeto con el tipo de documento y el número.
Tipo: object
Campo dni_type: "V" (venezolano), "J" (jurídico), "E" (extranjero)
Campo dni_number: solo los dígitos, sin puntos ni guiones
{
"dni_pagador": {
"dni_type": "V",
"dni_number": "12345678"
}
}PAYMENT_DATE→ fecha_pago
Fecha en que se realizó el pago. Si no se envía, la API usa la fecha actual como valor por defecto.
Tipo: string
Formato: YYYY-MM-DD (ISO 8601)
Ejemplo: "2024-02-12"
Default: fecha actual si se omite
{ "fecha_pago": "2024-02-12" }REFERENCE_OTP→ otp
Código de un solo uso (OTP) requerido para verificaciones C2P (Comercio a Persona). Antes de verificar el pago debes solicitar el OTP al endpoint dedicado usando el DNI y teléfono del pagador.
Flujo OTP
POST /userbankpayment/{userBankId}/get-otp-c2p con dni y phone_number.2. El cliente recibe el OTP por SMS.
3. Incluye el OTP en el campo
otp de la petición de verificación.Tipo: string
Ejemplo: "845231"
{ "otp": "845231" }INVOICE_NUMBER_PRECALCULATED→ invoice_number
Número de factura pre-calculado por el sistema. El API asigna automáticamente el siguiente número disponible cuando se solicita. El usuario puede confirmarlo o modificarlo antes de completar la verificación.
Flujo número de factura
GET /userbankpayment/{userBankId}/next-invoice-number para obtener el número.2. Confirma o ajusta el valor.
3. Incluye el número en el campo
invoice_number.Tipo: number
Ejemplo: 1042
{ "invoice_number": 1042 }amount(siempre disponible)
Monto de la transferencia en bolívares. No aparece en fields_requiredporque siempre es aceptado, pero su obligatoriedad depende del banco.
Tipo: number (decimal)
Obligatorio: Sí para la mayoría de bancos. Opcional para Banco de Venezuela (Personas) y Provincial.
Ejemplo: 150.75
{ "amount": 150.75 }movement_type(siempre disponible)
Identificador del tipo de verificación. Corresponde al campo id de los objetos en verifications_types_available. Determina el flujo de validación que usará el banco.
| Valor | Descripción |
|---|---|
| "GENERIC" | Verificación genérica (sin tipo específico) |
| "MOVIL_PAY" | Pago Móvil interbancario |
| "TRANSFER" | Transferencia bancaria |
| "C2P" | Comercio a Persona (requiere OTP) |
{ "movement_type": "MOVIL_PAY" }Ejemplo Completo (todos los campos)
En la práctica solo debes enviar los campos indicados por fields_required. Este ejemplo muestra todos los campos posibles para referencia.
{
"bank_reference": "98765432",
"amount": 150.75,
"movement_type": "MOVIL_PAY",
"bank_origin": "0102",
"cuentaPagador": "01020123456789012345",
"phone_pagador": "04141234567",
"dni_pagador": {
"dni_type": "V",
"dni_number": "12345678"
},
"fecha_pago": "2024-02-12",
"otp": "845231",
"invoice_number": 1042
}