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.

    Tabla de Referencia

    Constante (fields_required)Parámetro APITipoObligatorio
    REFERENCE_NUMBERbank_referencestringSí (cuando aparece)
    BANK_CODE_ORIGINbank_originstringSí (cuando aparece)
    BANK_ACCOUNT_ORIGINcuentaPagadorstringSí (cuando aparece)
    PHONE_ORIGINphone_pagadorstringSí (cuando aparece)
    DNI_ORIGINdni_pagadorobjectSí (cuando aparece)
    PAYMENT_DATEfecha_pagostringSí (cuando aparece)
    REFERENCE_OTPotpstringSí (cuando aparece)
    INVOICE_NUMBER_PRECALCULATEDinvoice_numbernumberSí (cuando aparece)
    — (siempre presente)amountnumberCondicional
    — (siempre presente)movement_typestringSegú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"

    json
    { "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)

    json
    { "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"

    json
    { "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"

    json
    { "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

    json
    {
      "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

    json
    { "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.

    Tipo: string

    Ejemplo: "845231"

    json
    { "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.

    Tipo: number

    Ejemplo: 1042

    json
    { "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

    json
    { "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.

    ValorDescripció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)
    json
    { "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.

    Body completo — POST /userbankpayment/{userBankId}/betaserio
    {
      "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
    }