Webhook de notificacion

Recibe notificaciones de eventos en Prometeo

Usa el webhook de notificaciones para recibir updates sobre el estado de pagos realizadon con nuestro widget.

Para poder recibir estas notificaciones, deberas seguir los siguientes pasos:

  1. Exponer un endpoint desde tus servidores
  2. Configurar tu webhook en el widget que desees usar
  3. Recibir y procesar las notificaciones

Requerimientos para tu endpoint

Las notificaciones son enviadas como llamadas HTTP a un endpoint en tus servidores. Requerimos que uses https para este endpoint.

Para asegurarnos que estas recibiendo las notificaciones correctamente, tu endpoint debera responder con un codigo HTTP 2XX.

🚧

Reintento de notificaciones

Si respondes con un codigo fuera del rango 2XX o demoras mas de 5 segundos en responder, volveremos a intentar luego de un tiempo. Deberas encargarte de deduplicar eventos usando el identificador del mismo.

Configuracion del webhook

Para que podamos enviarte notificaciones, deberas configurar los siguientes campos en tu widget:

  • URL del endpoint al que llamaremos.
  • Token de verificacion, un string generado por ti que usaras para verificar las llamadas que hagamos a tu endpoint.

Procesando eventos

Al recibir una notificacion, deberas seguir los siguientes pasos:

  1. Comparar el campo verify_tokencon el que configuraste en tu widget para asegurarte que la llamada es autentica.
  2. Almacenar la notificacion en tu base de datos
  3. Devolver una respuesta a la llamada con un codigo 2XX
  4. Procesar la notificacion con tu logica de negocio.

Estructura de notificaciones

Tu endpoint recibira una llamada POSTconteniendo un JSON con la siguiente estructura:

{
  "verify_token": "TOKEN",
  "events": [
    {
      "event_type": "payment.success",
      "event_id": "e9af15dd-b9e7-4481-8d19-a782fc6b68bf",
      "timestamp": "2022-10-19T13:10:37Z",
      "payload": {}
    }
  ]
}
CampoDescripcion
verify_tokenEl token de verificacion definido en tu widget
eventsLista de eventos generados
events.event_typeEl tipo de evento
events.event_idIdentificador del evento, usado para deduplicacion
events.timestampTimestamp de creacion del evento
events.payloadObjeto JSON especifico para cada evento

Tipos de eventos

EventoDescripcionCampos
payment.successPago realizado con exitoObjeto:

-amount, Cantidad a transferir.
-concept, Concepto o descripcion de la transferencia.
-currency, Moneda de la cuenta en formato ISO 4217, por ejemplo UYU o USD.
-origin_account, Número de cuenta de donde se transfiere
-destination_institution, ID de la institucion a donde se transfiere, el id se obtiene en el endpoint de listar instituciones para transferencias.
-branch, Número de sucursal de la cuenta.
-destination_owner_name, Nombre del dueño de la cuenta destino.
-destination_account_type, Tipo de la cuenta destino (CA: Caja Ahorros, CC: Cuenta Corrient).
-document_number, Número de Documento asociada a la cuenta destino.
-document_type, Tipo de Documento asociada a la cuenta destino.
-destination_account, Número de cuenta a donde se transfiere.
-destination_bank_code, Código de banco destino.
- request_id, ID de la transcaccion generado por Prometeo.
- operation_id, ID de la operación informado por el banco.
payment.errorError al realizar el pagoObjeto:

- request_id, ID de la transcaccion generado por Prometeo.
payment.rejectPago rechazadoObjeto:

- request_id, ID de la transcaccion generado por Prometeo.

payment.success

A continuación listamos un ejemplo de pago exitoso:

{
  'amount': '150',
  'concept': 'Prueba Prometeo',
  'currency': 'UYU',
  'origin_account': '12345678',
  'destination_account': '12345679',
  'destination_institution': '0',
  'branch': '0',
  'destination_owner_name': 'Zeus',
  'destination_account_type': None,
  'document_type': None,
  'document_number': None,
  'destination_bank_code': 'test',
  'request_id': '73f8ce097d8f42899105ef4cef0f9938',
  'operation_id': '9023212'
}

payment.error

A continuación listamos un ejemplo de pago rechazado:

{
  "request_id": "1234"
}