Saltar al contenido
    C2P Bancario
    Solo Cuentas Jurídicas

    API de Vueltos (Pago Móvil C2P)

    Emite pagos móviles inmediatos y entrega vueltos a tus clientes directamente desde tus cuentas bancarias empresariales.

    Inmediato

    El dinero sale de tu cuenta jurídica y llega al teléfono del cliente en tiempo real vía red Pago Móvil.

    C2P Interbancario

    Permite enviar cambio a clientes de cualquier banco nacional (0102, 0108, 0134, 0105, etc.).

    Facturación Atómica

    Soporta números de factura propios o correlativos seguros autogenerados por Pabilo.

    Enviar Vuelto / Pago Móvil

    Procesa una orden de vuelto debitando el monto de tu cuenta bancaria y acreditándolo instantáneamente al pagador.

    POST
    https://api.pabilo.app/v1/transactionchange/userbank/{userBankId}

    Parámetros de la URL

    ParámetroTipoRequeridoDescripción
    userBankIdstringSíID de la cuenta bancaria jurídica en Pabilo (ej. 68bf4460342eb73ad4ccfe72). Debe ser una cuenta de empresa con soporte C2P.

    Cuerpo de la Petición (JSON)

    CampoTipoRequeridoDescripción
    dniobjectSíObjeto que contiene el documento de identidad del destinatario/cliente.
    dni.codestringSíTipo de documento del cliente: "V" (Venezolano), "E" (Extranjero), "J" (Jurídico), "G" (Gubernamental) o "P" (Pasaporte).
    dni.numberstringSíNúmero de documento o cédula sin puntos ni letras (ej. "29660549").
    phone_pagadorstringSíNúmero de teléfono del cliente afiliado a Pago Móvil (ej. "04248343530" o "04141234567"). Debe incluir el código de operadora local.
    amountnumberSíMonto a transferir en Bolívares (VES / Bs). Debe ser un número mayor a 0 (ej. 1 o 150.50).
    invoice_numberstringSíNúmero de factura o correlativo de control asignado a la transacción (ej. "1036"). Requerido por el banco para conciliación. Puedes usar tu propio correlativo o solicitar uno atómico con el endpoint de factura precalculada.
    destination_bank_codestringSíCódigo bancario oficial de 4 dígitos del banco donde el cliente tiene su pago móvil (ej. "0102" Banco de Venezuela, "0105" Mercantil, "0108" Provincial, "0134" Banesco).

    Ejemplos de Integración

    cURL

    POST /v1/transactionchange/userbank/{userBankId}
    curl -X POST https://api.pabilo.app/v1/transactionchange/userbank/68bf4460342eb73ad4ccfe72 \
      -H "Authorization: Bearer TU_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "dni": {
          "code": "V",
          "number": "29660549"
        },
        "phone_pagador": "04248343530",
        "amount": 1,
        "invoice_number": "1036",
        "destination_bank_code": "0102"
      }'

    JavaScript (Fetch)

    fetch
    const darVuelto = async () => {
      const userBankId = "68bf4460342eb73ad4ccfe72"; // ID de tu cuenta jurídica
    
      const response = await fetch(`https://api.pabilo.app/v1/transactionchange/userbank/${userBankId}`, {
        method: "POST",
        headers: {
          "Authorization": "Bearer TU_API_KEY",
          "Content-Type": "application/json"
        },
        body: JSON.stringify({
          dni: {
            code: "V",
            number: "29660549"
          },
          phone_pagador: "04248343530",
          amount: 1,
          invoice_number: "1036",
          destination_bank_code: "0102"
        })
      });
    
      const result = await response.json();
      if (!response.ok) {
        console.error("Error al dar vuelto:", result.message);
        return;
      }
    
      console.log("Vuelto exitoso:", result);
    };

    Respuestas de la API

    Respuesta Exitosa (200 OK)

    El banco emisor procesa el pago y retorna el número de referencia y el código de autorización oficial.

    200 OK
    {
      "message": "Transaction change created successfully",
      "data": {
        "transaction_changes": {
          "reference": "123456789012",
          "authorization_code": "AUTH987",
          "status": "APPROVED"
        }
      }
    }

    Respuesta de Error

    Si la cuenta no es jurídica, no tiene C2P contratado o hay saldo insuficiente:

    400 Bad Request / 500 Bank Error
    {
      "message": "La cuenta bancaria no soporta C2P o no es una cuenta jurídica habilitada"
    }

    Gestión de Facturas y Consultas

    Endpoints auxiliares para coordinar el correlativo de facturación y auditar transacciones pasadas.

    Obtener Siguiente Número de Factura Atómico

    Si tu sistema o punto de venta no gestiona un correlativo propio, puedes solicitar a Pabilo el siguiente número correlativo seguro para la cuenta:

    GET
    https://api.pabilo.app/userbankpayment/{userBankId}/get-next-invoice-number
    GET /userbankpayment/{userBankId}/get-next-invoice-number
    curl -X GET https://api.pabilo.app/userbankpayment/68bf4460342eb73ad4ccfe72/get-next-invoice-number \
      -H "Authorization: Bearer TU_API_KEY"

    Respuesta:

    json
    {
      "data": {
        "invoice_number": "1036"
      }
    }

    Consultar Estado de un Vuelto por ID

    Obtén la información completa y comprobante de un vuelto registrado previamente en el sistema:

    GET
    https://api.pabilo.app/v1/transactionchange/{transactionChangeId}
    GET /v1/transactionchange/{transactionChangeId}
    curl -X GET https://api.pabilo.app/v1/transactionchange/68bf4460342eb73ad4ccfe99 \
      -H "Authorization: Bearer TU_API_KEY"