Este servicio permite realizar el cobro por el monto especificado a tarjetas de crédito y débito del comprador.
A continuación, se describen los parámetros necesarios para realizar el cobro:
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| customer | Object | False | Objeto que contiene la información del comprador. Si no se proporciona, la información del comprador será llenada usando los datos proporcionados en la tokenización de tarjeta. |
| order | Object | True | Objeto que contiene la información de la orden de compra. |
| cardId | String | True | Id de la tarjeta tokenizada del comprador. |
| authenticationId | String | Conditionally | Id de autenticación 3DS del procesador. Solo aplica a clientes que tengan 3DS configurado. |
| billingInfo | Object | True | Objeto que contiene la información de facturación del comprador. |
| locationCode | String | False | Identificador de la sucursal en la cuál se hace el cargo. Si no se proporciona, se usará la sucursal por defecto. |
A continuación, se describen los parámetros de respuesta al realizar un cobro:
| Parámetro | Tipo | Descripción |
|---|---|---|
| status | String | Indica el estado del cobro. |
| message | String | Describe el resultado del parámetro status. |
| error | Object | Objeto que contiene el código y mensaje de error. |
| authentication | Object | Objeto que contiene la URL de autenticación y el id de validación para completar la transacción. |
| order | Object | Objeto que contiene la información de la orden de compra. |
| createdAt | DateTime | Fecha y hora de la transacción en UTC. |
status)Existen 3 posibles estados de cobro:
FAILEDEste estado representa que el proceso de pago ha fallado. El nodo error contendrá el código y mensaje de error.
SUCCEEDEDEste estado representa que el proceso de pago se ha realizado exitósamente.
AUTHENTICATION_REQUIREDEste estado representa que la transacción requiere autenticación 3DS. Para validar la transacción, se debe redirigir al comprador a la URL proporcionada en el nodo authentication usando un iframe. A continuación se proporcionan ejemplos de implementación de iframe:
Para el manejo de este caso, el proyecto de frontend debe agregar un event listener que escuche el postMessage que se envía desde el iframe. La estructura del mensaje es la siguiente:
{
"MessageType": string,
"Status": string,
"AuthenticationId": string,
"OrderId": string,
"OrderAmount": number
}
authentication.complete → autenticación completada exitósamenteauthentication.failed → error al procesar la autenticaciónPENDING → pendiente de autenticaciónSUCCESS → autenticación exitosaFAILED → no se logro autenticar con el banco emisorERROR → error interno del procesador de pagosEXPIRED → la autenticación ha expiradoUna vez que se reciba el mensaje con MessageType = "authentication.complete" y Status = "SUCCESS", se debe realizar una nueva solicitud de cobro. En esta ocasión, se debe incluir el authenticationId recibido en el mensaje anterior para completar la transacción.
Ok
Bad request
Usuario no autorizado
{- "order": {
- "id": "order_id",
- "name": "Order name",
- "amount": 15.5,
- "description": "descripción de orden de compra"
}, - "cardId": "0ca4b9aad7f417634359bf4e549ff280156dec4a149fd4b1cd20ce74f7d330ba",
- "authenticationId": "f4e549ff280156dec4a149fd4b1cd20ce74f7d330b237u",
- "billingInfo": {
- "countryCode": "USA",
- "stateCode": "NY",
- "zipCode": "10001"
}, - "locationCode": "ltc-001"
}{- "status": "SUCCEEDED",
- "message": "El pago fue realizado exitosamente",
- "error": null,
- "authentication": null,
- "order": {
- "id": "100",
- "reference": "order_id",
- "amount": 15.5,
- "currency": "USD",
- "authorizationCode": "12345"
}, - "createdAt": "2023-08-23T21:15:57.0067130Z"
}