Skip to main content
A refund moves money out of your Waffo balances, so it can fail for a reason that has nothing to do with the original order: there is nothing to take it from. This page explains which balance is used, in what order, and what to do when a refund is rejected for funds. For everything else about refunds — partial refunds, retries, cross-currency amounts, fee returns — see Refund FAQ. For what each balance is, see Balances & Account History.

Which balance is a refund taken from?

In this order. The first source that can cover the refund is used, and the search stops there: Three details that decide most real cases:
  • Overdraft is part of step 1, not a step of its own. Your pending-settlement account carries an overdraft allowance, and the check at step 1 already counts it. So a refund can succeed and push that balance negative — that is the designed behaviour, and the negative is cleared by your next incoming transactions.
  • The refund reserve account is a fallback, not the preferred source. It is only consulted once the pending-settlement balance and its overdraft allowance are both exhausted.
  • The refund reserve step is gated on an active arrangement. With no active refund reserve arrangement for that currency, there is no step 2 — the refund fails as soon as step 1 cannot cover it.

Which currency’s balance is checked?

The one the refund is in. Balance checks are per currency, against the account held in that currency for your merchant account and legal entity. This matters if you transact in several currencies: a healthy balance in one currency does nothing for a refund in another. Funds are not swept between currencies to cover a refund, and there is no cross-currency fallback in the selection above — a refund in a currency whose balance is empty fails even while your other currencies are well funded. The same applies to the refund reserve account: the active-arrangement check is made for that specific currency, so a refund reserve arrangement covering one settlement currency does not extend to another.

Why did a refund fail with insufficient balance the day after a settlement?

Because settlement empties the balance refunds are drawn from. Your funds sit in the pending-settlement balance until their settlement date, then move out to your settlement account and on to your bank. Once a settlement has run, the pending-settlement balance can be at or near zero — and a refund requested at that moment has nothing to draw on beyond the overdraft allowance. This is why refund failures cluster right after a settlement payout, and why they look inexplicable when the original order settled successfully weeks ago. The order is fine; the balance is empty. Your options: A refund reserve account exists precisely to remove the wait-or-top-up choice: it is prepaid, it is only used for refunds, and it carries its own overdraft allowance. Talk to your Waffo account manager about whether one makes sense for your refund volume.

A refund failed for funds. Can I just retry it?

Yes. An insufficient-funds rejection happens before the refund order is created, as a pre-flight check — so nothing was booked, nothing is half-done, and there is no state to clean up. The original order is untouched and its refundable amount is unchanged. Retrying is therefore safe, and it is the normal resolution: retry once funds are available. Follow the same idempotency practice you would for any refund retry so that a retry after an ambiguous response cannot double-refund — see Refund FAQ. What a retry will not do is queue. There is no pending state for a refund that could not be funded: it is rejected outright, and nothing happens automatically when your balance later recovers. If you need the refund to go out as soon as funds arrive, you have to re-issue it yourself.

Does an overdraft allowance mean a refund can never fail?

No. An overdraft allowance is a limit, not an absence of one. The check at each step is balance plus that account’s overdraft allowance against the refund amount — so a refund larger than that combined figure still fails, and it fails the same way, with A0012. What the allowance buys you is tolerance for the common case of a balance that has just been emptied by settlement; it is not an unlimited line. Two consequences:
  • A large refund can fail while smaller ones on the same account succeed. The check is per refund, against the full amount — refunds are not partially funded from one source and topped up from another.
  • Once the pending-settlement balance is negative, the remaining allowance is smaller, so subsequent refunds have less room. A burst of refunds against an empty balance will start failing part-way through the burst rather than all at once.

Does any of this change my settlement or withdrawal?

Not directly, but a negative pending-settlement balance has a knock-on effect worth knowing about.
  • Settlement: refunds are netted into your settlement calculation as REFUND transactions regardless of which account funded them. If a period’s refunds outweigh its payments, the period nets negative and carries forward — see Settlement Calculation Explained.
  • Withdrawal: withdrawals draw on your settlement account, not on the pending-settlement balance, so a refund does not directly reduce what you can withdraw today. It reduces what will settle into that account later.

Can I choose which balance a refund comes from?

No, and you do not need to. The selection happens entirely server-side.
  • The refund API’s request fields are unchanged — there is no parameter for the funding source, and nothing to add to your integration.
  • The refund API’s response fields are unchanged — the chosen source is not returned, in the create-refund response or in a refund inquiry.
  • The behaviour is the same whether you refund through the API, through a batch refund file, or from the Merchant Portal.
The practical consequence: if you already integrated refunds, a refund reserve account requires no code change from you at all. It changes where the money comes from, not how you ask for it. One field that is on the refund API and is easy to mistake for this: refundSource describes who initiated the refund (you, or one of the dispute-prevention services that can auto-refund on your behalf). It has nothing to do with which balance funds it. Where the funding source does become visible is after the fact, in your reconciliation data: the settlement and ledger records distinguish a refund funded from the pending-settlement balance from one funded out of the refund reserve account, so you can tell them apart when you reconcile.

Does a batch refund check balances differently?

No — a batch refund runs the same check, per row, before the refund order is created. A row that cannot be funded is rejected with the same insufficient-funds condition rather than being queued for later. The consequence for batch planning is that you should size a batch against your pending-settlement balance plus overdraft allowance plus refund reserve balance at the time of upload, not against the total value of the orders you are refunding. See Refund FAQ for how a rejected row affects the rest of the batch.

Can a refund be taken out of my contractual reserve?

The rolling or fixed reserve held under your contract is a different thing from a refund reserve account, despite the similar name: See Reserve Accounts for the contractual reserve. Note that the two are asked about interchangeably in support tickets — if you are being told “your reserve can/cannot fund refunds”, establish which of the two is meant first.

Where does a chargeback take its money from?

A chargeback and its chargeback fee are debited at settlement time, against your pending-settlement balance, and both travel through the same path — the fee is not funded differently from the amount. Because that balance is overdraftable, a chargeback is not blocked by an empty balance the way a refund is: it is allowed to push the balance negative, and the negative is cleared by later incoming funds. If the whole settlement period nets out negative, no funds move that day and the amount carries forward — see Settlement Calculation Explained. The contractual reserve is not drawn on for a chargeback either.