Skip to main content
Implemented in Fire and verified against the DSI sandbox. The final public host is still to be fixed; until then the URL is coordinated per environment.
When a payment created by PayBridge changes status — approved, canceled, or refunded — DSI sends a POST to this Fire endpoint. It is the primary path to close the charge: without this notification, the charge stays waiting for the customer.

Endpoint

string
required
Country of the DSI connection in ISO alpha-2 (EC, CL, CO, AR, VE, BR). It defines which connection and which secret are used to validate the signature. Lowercase is accepted.
Fire sends this URL in every payment request, inside settings.callbacks.status, so there is nothing to configure separately: each payment already travels with its country’s callback.

Authentication: HMAC signature

This endpoint uses no API key and no bearer token. Authenticity comes from the signature.
string
required
Hex-encoded HMAC-SHA256 of the raw request body, computed with the secret of the country connection. A Fire administrator loads that secret when configuring the country’s DSI connection — ask them for it if you need to verify the signature.
Signature calculation
  • The raw body is signed, not a rebuilt JSON: reordering keys or changing whitespace invalidates the signature.
  • The comparison runs in constant time.
  • A missing or invalid signature returns 400, and nothing is processed.
If the country connection has no secret loaded yet, Fire accepts the notification without validating the signature and logs a warning. Load the secret in the connection before going to production.

Payload

string
required
The reference Fire sent when creating the payment. It is the correlation key: it identifies the exact attempt the notification belongs to.
string
required
Transaction id in DSI. Fire uses it as the event id for deduplication.
string
required
Status reached: approved, cancelled, waitingPayment, refundPayment, or refundFailed.
integer
required
Amount paid in cents (integer). 1990 = 19.90.
string
Provider message (rejection reason, refund detail).
string
required
Branch of the payment (the branchOffice Fire sent when creating it).

What Fire does with each status

paidPrice is stored as the provider’s reference; the amount Fire credits is the attempt’s amount.

Response

Fire returns 200 as soon as it validates the signature and enqueues the notification. A worker applies the status transition seconds later.
200
A 200 means received, not applied. To learn the final outcome, read the charge with GET /api/v1/external/paybridge/intents/{intentId}.

Idempotency and retries

Deduplication

Fire deduplicates by the triple externalReference + transactionId + status. Resending the same notification returns 200 with duplicate: true and is not processed again.

No rollbacks

An attempt already in a terminal status is not moved back by a late notification. The only exception is refunds, which do apply on an approved payment.

Unknown reference

If externalReference matches no attempt, Fire returns 200 and discards it, so DSI doesn’t retry forever.

Safe retries

Processing is idempotent: you can retry after a 5xx with no risk of applying the same status twice.

Charge from a channel

How the charge that this notification closes is created.

Supported methods by country

Which methods charge through DSI today in each country.