Notificación

Al integrar nuestra pasarela de pagos y configurar adecuadamente la gestión de notificaciones, los comerciantes pueden ofrecer a sus clientes una experiencia de compra sin contratiempos y mantener un control preciso sobre el estado de las transacciones financieras.

La notificación del resultado de la transacción se realiza de manera asíncrona para garantizar una respuesta rápida y eficiente.

El comerciante tendrá las siguientes opciones para saber el estado de una trandacción:

  • Leyendo la respuesta que nuestras bibliotecas regresarán después del procesado de la transacción.
  • Haciendo una petición a nuestro endpoint /api/v1/status
  • Implementando su propio endpoint para poder recibir el resultado de la transacción.

Para el tercer caso, el comercio debe implementar una lógica de manejo de notificaciones asíncronas para procesar la información tan pronto como sea recibida, el cual se detalla a continuación.


Ejemplo de notificación:

El siguiente ejemplo será una petición que nuestro sistema hará y mandará el resultado de la transacción.

Method: post
URL: http://{environment-domain}/payment-notification
Encabezados HTTP: Content-Type: application/json

{
  "order": {
    "id": "5c51bebd-5b21-4ef3-b980-d41eb0b83568",
    "merchantOrderId": "9a6ecf36-8265-11ee-b962-0242ac120002",
    "amount": "100.00",
    "currency": "484"
  },
  "payload": {
    "responseCode": "00",
    "responseDescription": "Approved or completed successfully (if balances are available)",
    "authorizationNumber": "280188",
    "referenceNumber": "000027389440",
    "status": "approved"
  },
  "card": {
      "bin": "411111",
      "last4Numbers": "1111"
  },
  "isSuccess": true,
  "hash": "cda557c33bdd28888a4ac066884fa2e498000ae934b9a4bebc3ad1fdebe4a095"
}

Descripción de campos


CampoDescripción
orderContiene detalles sobre la orden de compra.
idId único de la transacción asignado por la pasarela de pagos
merchantOrderIdIdentificador único de la orden asignado por el comercio.
amountMonto total de la orden.
currencyCódigo de moneda según el estándar ISO 4217.
payloadContiene información detallada sobre la transacción.
responseCodeCódigo de respuesta que indica el resultado de la transacción (en este caso, "00" indica aprobación).
responseDescriptionDescripción asociada al código de respuesta.
authorizationNumberNúmero de autorización de la transacción.
referenceNumberNúmero de referencia asociado a la transacción.
statusEstado de la transacción, en este caso, "approved" indica que la transacción ha sido completada con éxito.
cardInformación relacionada con la carta de pago.
binPrimeros 6 dígitos de la tarjeta.
last4NumbersÚltimos cuatro dígitos de la tarjeta.
isSuccessIndica si la petición se pudo completar satisfactoriamente.
errorsUna lista de errores que ocurrieron en la petición.
hashSe usa para agregar una capa de seguridad y asegurar que el mensaje proviene de pasarela de pagos.

Calculo de hash

var hash = sha256({id}|{payload.responseCode}|{payload.authorizationNumber}|{payload.referenceNumber}|{isSuccess});

//Evaluando la notificación de ejemplo
var hash = sha256(5c51bebd-5b21-4ef3-b980-d41eb0b83568|00|280188|000027389440|true);
//resultado hash de ejemplo cda557c33bdd28888a4ac066884fa2e498000ae934b9a4bebc3ad1fdebe4a095
📘

Notas importantes

Es crucial validar el resultado de todas las notificaciones a través del hash mediante el proceso mencionado con el algoritmo SHA-256. Esto garantiza de manera segura que la fuente de la notificación provenga exclusivamente de nuestros servidores seguros.