Guía para desarrolladores
Referencia de API
Explorar documentación

Recibe un pago C2P

C2P es un flujo de tres pasos: crea una intención (SMS del banco cuando aplica), recoge el token del cliente y ejecuta el cobro.

Ciclo de vida de tres pasos

  1. Solicita una intención

    Envía el monto, la cédula, el teléfono y el código del banco a POST /v1/payments/c2p/request. Cuando es compatible, el gateway instruye al banco pagador a enviar el OTP por SMS (`otpRequested: true`).

  2. Recoge el token

    Pide al cliente el OTP de 6 a 8 dígitos que recibió de su banco (o que generó en la app del banco si otpRequested es false).

  3. Ejecuta el cobro

    Envía el token con los mismos datos del pago y el intentId a POST /v1/payments/c2p.

1. Solicita una intención

curlbash
curl --request POST "${API_URL}/v1/payments/c2p/request" \
  --header "content-type: application/json" \
  --header "x-api-key: ${VEXPAY_API_KEY}" \
  --data '{
    "usdAmount": 12.50,
    "debtorId": "V12345678",
    "debtorCellPhone": "584121234567",
    "debtorBankCode": 102,
    "externalRef": "order_demo_1042"
  }'

2. Ejecuta el pago con el token

curlbash
curl --request POST "${API_URL}/v1/payments/c2p" \
  --header "content-type: application/json" \
  --header "x-api-key: ${VEXPAY_API_KEY}" \
  --data '{
    "intentId": "00000000-0000-4000-8000-000000000000",
    "usdAmount": 12.50,
    "debtorId": "V12345678",
    "debtorCellPhone": "584121234567",
    "debtorBankCode": 102,
    "token": "123456",
    "externalRef": "order_demo_1042"
  }'
JavaScriptjavascript
const payment = await fetch(
  `${process.env.API_URL}/v1/payments/c2p`,
  {
    method: 'POST',
    headers: {
      'content-type': 'application/json',
      'x-api-key': process.env.VEXPAY_API_KEY,
    },
    body: JSON.stringify({
      intentId,
      usdAmount: 12.5,
      debtorId: 'V12345678',
      debtorCellPhone: '584121234567',
      debtorBankCode: 102,
      token: customerProvidedToken,
      externalRef: 'order_demo_1042',
    }),
  }
);