Webhooks

Overview

This section centralizes everything you need to configure and test the complete Webhook flow within Passport’s Payments-as-a-Service (PaaS) platform. From creating the subscription to end-to-end (E2E) validation of outgoing and incoming payments.

Webhook Setup in the Dashboard

Before receiving notifications, you must register your Webhook in the Passport Dashboard. Below are the details of each field on the “Create Webhook” screen.

The Fintech administrator must:

  1. Log in to the Passport Dashboard.
  2. Navigate to Platform > Webhooks.
  3. Select Create Webhook +.
  4. Configure the Webhook.
  5. Click Save.
_Create Webhook_

__

__

Create Webhook

__

__

_Webhook Configuration_

Webhook Configuration

Webhook Configuration: Parameter Details

FieldDescription
Callback URLHTTPS address where Passport will send notifications. Must be publicly accessible.
Secret TokenKey used to calculate/verify the HMAC-SHA256 signature. Keep it secure!
Delivery ModeRetry mechanism to use (“Once” or “Retry”).
Webhook EnabledYES/NO selector to enable or disable notifications.
EventsType of Events: Confirmed, Inbound, Settled, Rejected.

Webhook Retry Behavior

When the Delivery Mode is set to Retry, after a webhook delivery failure, the platform will attempt to resend up to 12 times.

The retry schedule follows exponential backoff:

  • 1_2*0 = 1s for the first retry
  • 1_2*1 = 2s for the second
  • 1_2*2 = 4s for the third
  • 1_2*3 = 8s for the fourth

Event Selection

Under the Events section, choose the Payments category and select one or more (the event name in the notification is in parentheses).

We recommend enabling all events to properly handle both inbound and outbound payment scenarios.

  • Inbound (payment.inbound.received)

    • The payment was successfully sent to you in the Bre-B network. This means that a payment is being received by you or the customer you manage.
  • Confirmed (payment.inbound.confirmed or payment.outbound.confirmed)

    • The inbound or outbound payment was confirmed by the Originating or Receiving Bank.
  • Settled (payment.inbound.settled or payment.outbound.settled)

    • The payment was completed at the originating or receiving bank.
  • Rejected (payment.inbound.rejected or payment.outbound.rejected)

    • The payment was rejected. Check the response body for more details.

Inbound Event Flow

For inbound transactions (towards your account or your customers), the simple event flow is:

payment.inbound.received > payment.inbound.Confirmed > payment.inbound.settled

Outbound Event Flow

For outbound transactions (from your account or your customers), the main events are:

payment.outbound.confirmed > payment.outbound.settled

Payment Rejection

In the event that the validations MOL result in the status of a payment being classified as Rejected, this can occur at any stage of the payment process. The webhook will provide both the Status Code and a detailed Description of the error that was detected.

  • payment.inbound.rejected
  • payment.outbound.rejected
JSON
Copy

Example of Events

Payment Received

The event payment.inbound.settled happens when a transaction is successfully submitted to your account or your customer's account. This can happen through a Key-to-Key transaction or a QR code. The same applies to payment.outbound.settled, which means that your transaction was settled at the receiving bank.

JSON
Copy

Payment Confirmed

The payment.inbound.confirmed event signifies the confirmation received from the Participant (the receptor bank) regarding the transaction. This confirmation only occurs if certain conditions are met, such as the validity of the key and its association with an existing account at the receptor bank (and more). Following the inbound event, the payment.inbound.confirmed event indicates a successful transaction. However, if any issues arise at the Node, MOL, or Bank level, the subsequent event will be payment.inbound.rejected.

If the direction is outbound, the event will show as payment.outbound.confirmed or payment.outbound.rejected if there is an inconsistency.

JSON
Copy

Payment Settled

One of the most significant events in the payment flow, payment.inbound.settled or payment.outbound.settled his marks the successful transfer of funds from or to your customer's bank account. In other words, this indicates that the customer has completed the payment for the service or product, and the funds are now available in account. Conversely, outbound payments refer to the process where funds are transferred from an account to the designated destination account.

JSON
Copy

Payment Rejected

In the event of any issues encountered by any actor in the payment flow, a rejection status will be returned. This indicates that the movement of funds will not take place within the network or between accounts. Please note that this status is final. Consequently, the payment should be thoroughly reviewed to identify any error status codes. The relevant webhooks will display the specific error in the appropriate field:

JSON
Copy

The direction of the payment (inbound or outbound) will be indicated in events as follows:

  • payment.inbound.rejected for rejected inbound payments.
  • payment.outbound.rejected for rejected outbound payments.
Type to search, ESC to discard
Type to search, ESC to discard
Type to search, ESC to discard