Which transactions can be refunded
Not every transaction can be refunded. Refund eligibility depends on the transaction’s status and the type of transaction you want to refund. For inflight or split transactions, the ID you pass matters. Use the table below to understand which transaction ID to send and what Blnk does with it.| Transaction ID | Refundable? | Notes |
|---|---|---|
APPLIED | Yes | The source and destination balances are reversed. |
INFLIGHT | Yes | Only if the inflight transaction has been committed or voided. |
QUEUED | Yes | Refunds all child APPLIED transactions linked to the queued parent. Use the meta_data.QUEUED_PARENT_TRANSACTION to refund. |
VOID | No | To refund a voided transaction, use its parent inflight transaction ID instead. |
SCHEDULED, REJECTED | No | Not refundable. |
Applying refunds
Request a refund
Use the Refund transaction API and pass the
transaction_id of the transaction you want to refund.- Using the queue
- Skipped queue
By default, refunds are queued with
skip_queue: false.The initial response returns status: "QUEUED" and sets the refund reference to {original_txn_id}_refund.When the queue processes the refund, Blnk creates the final applied transaction with the reference {original_txn_id}_refund_q, following the same _q convention used for other queued transactions.201 Created (queued)
Refunding inflight transactions
Only inflight transactions that have been committed or voided can be refunded. Active inflight holds cannot be refunded. Always pass the originalINFLIGHT transaction ID to the API, not the ID of its APPLIED or VOID child.
- Committed inflight
- Voided inflight
Pass the inflight transaction ID.Blnk reverses the committed amount the same way it refunds a standard
APPLIED transaction.Refunding split transactions
Use this flow when the original payment was a multiple sources or multiple destinations split.Confirm the original used the queue
Refunding the entire split in one call only works when the original transaction request uses the queue (
skip_queue: false).When you submit the split, Blnk returns a queued parent response. Each child leg is recorded separately and linked through meta_data.QUEUED_PARENT_TRANSACTION:Split response
Refund using the queued parent ID
Use the value in Blnk refunds every
meta_data.QUEUED_PARENT_TRANSACTION as the ID to refund.Keep skip_queue: false so all legs refund together.APPLIED child from its destination back to its source. The response matches the shape in Applying refunds.Related docs
Parent transactions
Lineage and parent-child links.
Create inflight
Hold, commit, and void flows.
Refund transaction API
Endpoint parameters and responses.