Realizar cobro

Este servicio permite realizar el cobro por el monto especificado a tarjetas de crédito y débito del comprador.

Parámetros de solicitud

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.

Parámetros de respuesta

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.

Estados de cobro (status)

Existen 3 posibles estados de cobro:

FAILED

Este estado representa que el proceso de pago ha fallado. El nodo error contendrá el código y mensaje de error.

SUCCEEDED

Este estado representa que el proceso de pago se ha realizado exitósamente.

AUTHENTICATION_REQUIRED

Este 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:

Expliación de la implementación

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
}

MessageType

  • authentication.complete → autenticación completada exitósamente
  • authentication.failed → error al procesar la autenticación

    Status

  • PENDING → pendiente de autenticación
  • SUCCESS → autenticación exitosa
  • FAILED → no se logro autenticar con el banco emisor
  • ERROR → error interno del procesador de pagos
  • EXPIRED → la autenticación ha expirado

Una 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.

Recursos adicionales

Request
Security:
BearerAuth
Request Body schema: application/json
object (EPayBuyerDto)

Información del comprador

required
object (Order)

Información de la orden de compra

cardId
required
string

Token que identifica a la tarjeta del usuario para realizar cobros

authenticationId
string

Token de autenticación 3DS del procesador. Solo aplica a clientes que posean 3DS configurado

object (BillingInfo)

Solamente en caso de ingresar información de facturación de USA o Canadá se debe agregar el objeto billingInfo.

locationCode
string

Código de la Sucursal en la cuál se hace el cargo.

Responses
200

Ok

400

Bad request

401

Usuario no autorizado

post/Charges
Request samples
application/json
{
  • "customer": {},
  • "order": {
    },
  • "cardId": "0ca4b9aad7f417634359bf4e549ff280156dec4a149fd4b1cd20ce74f7d330ba",
  • "authenticationId": "f4e549ff280156dec4a149fd4b1cd20ce74f7d330b237u",
  • "billingInfo": {
    },
  • "locationCode": "ltc-001"
}
Response samples
application/json
{
  • "status": "SUCCEEDED",
  • "message": "El pago fue realizado exitosamente",
  • "error": null,
  • "authentication": null,
  • "order": {
    },
  • "createdAt": "2023-08-23T21:15:57.0067130Z"
}
Copyright © n1co 2024. All right reserved.