Choosing a settlement mode
The settlement mode is determined by the HTTP status code you return to each charge or refund request. There is no configuration flag and no declaration at onboarding.
You can mix the two, return
200 where an outcome is immediately available, and 202 where it is not.
Acknowledging a request with 202 Accepted
The 202 body carries the originating requestId. You may optionally include your own identifier for the transaction (partnerChargeId or partnerRefundId). The DVM stores this against its own charge or refund ID, and you can use it to identify the transaction in your later callback.
Confirming the outcome
Two inbound endpoints accept the delayed outcome. Each accepts aresponseCode of APPROVED or DECLINED. On a decline, supply reason and reasonDescription.
Identify the transaction using the Bango identifier (chargeId or refundId). Where the Bango identifier is not available to you, supply your own identifier (partnerChargeId or partnerRefundId) and Bango will resolve it.
/charge/notifications
Approved
json
/refund/notifications
Approved
json
Pending state
A charge awaiting an asynchronous outcome is held in a pending state, with its correlation keys intact. The associated invoice stays unsettled and moves toPAID only when a successful outcome is confirmed. You are then notified with RENEWAL_SUCCEEDED or RENEWAL_FAILED as normal. No new notification types are introduced for asynchronous settlement.
Retries
If no callback arrives within a configured interval, the DVM re-sends the original charge or refund request rather than leaving it open indefinitely. The re-sent request indicates that it is a retry, and which attempt number it is. The Partner must be able to handle repeat requests idempotently. When you receive a retry for a transaction you have already started, return the outcome of that existing transaction, do not create a second one. Once the configured maximum number of attempts is exhausted, the charge is marked failed and is not retried further. The retry interval and maximum number of attempts are configured per partner and per action (charge, refund). Bango sets these during onboarding.Error responses on callbacks
Getting started
To adopt the asynchronous flow:- Return
202 Acceptedto charge and refund requests that will settle later. - Implement calls to the Bango charge and refund notification endpoints to approve or decline each request.
- Handle repeat requests for the same charge or refund idempotently.

