Multiple Reversals
Multiple Reversals is feature for pull payments that allows the ability to create multiple attempts to reverse a transaction. Reversal attempts can be made up to the total original transaction amount. This can be initiated by both the TabaPay API using Delete Transaction with the query parameter ?reversal
, and manually on the TabaPay Portal.
Multiple Partial Reversals
When creating multiple partial reversals, clients should ensure the sum of all refund/reversal attempts must be less than or equal to the original payment amount.
Contact TabaPay Support, or [email protected] to enable multiple reversals.
Use Cases
- Multi-Item Order Refund: A customer buys multiple items in one order but returns or cancels only one or a few items.
- Enterprise Periodic Discount: A business client receives a refund for an overcharged invoice, and eventually qualifies for a discount to receive an additional refund.
- Consumer Rebates: A consumer purchases a product bundle that includes multiple rebate offers. Each rebate is processed separately, so the customer receives multiple credits at different times.
- Consumer Dispute: A consumer disputes a charge, which the merchant refunds, but then later the card network later resolves in the customer’s favor and pushes another credit.
Multiple Reversal Flow
A reversal will always use the transactionID of a completed payment. View the following multiple Delete Transaction transactions request with query parameter ?reversal
.
First Reversal Request

- The customer initiates a reversal request.
- You send the Delete Transaction request with the
?reversal
query parameter, the transactionID path parameter andcurrency
andamount
fields. - TabaPay sends the request to the network & bank.
- Network returns the request with a success or error.
- TabaPay returns the Delete Transaction response.
- You display the relevant confirmation to the customer.
Additional Reversal Request

- The customer initiates a reversal request.
- You send the Delete Transaction request with the
?reversal
query parameter, the transactionID path parameter andcurrency
andamount
fields.
Note: The amount sum with any previous reversal requests should not exceed the original amount.
- TabaPay sends the request to the network & bank.
- Network returns the request with a success or error.
- TabaPay returns the Delete Transaction response.
- You display the relevant confirmation to the customer.
Optional: Retrieve Transaction

- Customer requests to see full multiple reversal details.
- You send a Retrieve Transaction request with the transactionID from the original Create Transaction response.
- TabaPay returns the Retrieve Transaction response.
- You display the relevant confirmation to the customer.
How Multiple Reversals Works
Prerequisites
All requests require your FQDN and your ClientID in the URL endpoint. For more information on creating a request, refer to Make Your First API Call.
Any client handling sensitive card information is required to meet a specified level of Payment Card Industry Data Security Standards (PCI-DSS).
Optional: Help confirm your card payment instrument and customer with Query Card API with AVS + ANI.
1. Create Transaction
Send a Create Transaction with type:pull.
2. Delete Transaction
Use the Delete Transaction with the query parameter ?reversal
and include the currency
and amount
in the request body. For a multiple reversal the amount should be less than the sum of the original amount in Create Transaction.
Reversals vs Voids
Reversals use
?reversal
to reverse a transaction after the settlement of an original pull transaction.Voids use
?void
to cancel a transaction before the settlement in the Auth & Capture process.Note: You can repeat a void request again if you get a 400 error.
Request Body
{"currency": "840","amount": "0.09"}
Response
{
"SC": 200,
"EC": "0",
"status": "COMPLETED",
"reversal": {
"networkRC": "00"
}
}
3. Additional Delete Transaction
Use the Delete Transaction request again with the query parameter ?reversal
and include the currency
and amount
in the request body. The sum amount with from the previous Delete Transaction request should be less than the original Create Transaction amount.
Request Body
{"currency": "840","amount": "0.02"}
Response Example
The following response includes a third partial return requested with amount 0.06.
{
"SC": 200,
"EC": "0",
"status": "COMPLETED",
"reversal": {
"networkRC": "00"
}
}
4. Optional: Retrieve Transaction
Use the Retrieve Transaction Request to get the final status of the multiple reversal flow. No parameters needed.
Response
{
"SC": 200,
"EC": "0",
"referenceID": "20250804162555",
"network": "Visa",
"networkRC": "00",
"networkID": "521623174049",
"status": "COMPLETED",
"approvalCode": "174049",
"amount": "0.90",
"last4": "1111",
"reversalStatus": "REVERSED",
"reversal": {
"networkRC": "00",
"reversalAmount": "0.09"
},
"reversals": [
{
"reversalStatus": "REVERSED",
"networkRC": "00",
"reversalAmount": "0.09"
},
{
"reversalStatus": "REVERSED",
"networkRC": "00",
"reversalAmount": "0.02"
},
{
"reversalStatus": "REVERSED",
"networkRC": "00",
"reversalAmount": "0.06"
}
]
}
Recipes
Updated about 14 hours ago