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
- 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`).
- 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).
- 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
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
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"
}'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',
}),
}
);