Learning objectives
- Understand the difference between a refund, a reversal, and a chargeback
- Know what triggers each event and what happens to card balances
- Learn how to respond to these events in product and operations
- Track and reconcile refunds across lifecycle states (active, frozen, terminated)
- Build trust with users by explaining outcomes clearly and consistently
Why this matters
These three events are among the most misunderstood aspects of card systems, even by product managers and support teams. When a transaction is reversed or refunded and the user doesn’t see the expected balance update or gets confused by delays, trust breaks. Your job is to prevent that by:- Knowing what each term means
- Tracking them reliably in your systems
- Communicating outcomes transparently to users
- Reversals What is it? A reversal occurs when a transaction is authorized but then canceled before settlement. It’s as if the payment was never finalized. Trigger examples:
- Merchant cancels an order right after authorization
- Hotel or travel booking holds funds but releases without charging
- System error or duplication detected at merchant processor Impact on card balance:
- The hold is released
- The balance returns to what it was before the attempted transaction
- No actual money was transferred
- Webhook: virtualcard.transaction.reversed UX tip: Show as “Canceled before completion” with no amount deducted.
- Refunds What is it? A refund happens after a transaction has settled. It’s initiated by the merchant to return money to the cardholder. Trigger examples:
- Returned goods
- Subscription canceled after billing
- Service not delivered as promised Impact on card balance:
- Refund amount is credited back to the card
- If the card is still active, user can spend it again
- If the card is terminated, funds may go to your platform float or treasury
- Webhook: virtualcard.transaction.refund
- Timing: 2 to 14 business days (varies by merchant and region)
- Chargebacks
- User claims fraud or unauthorized transaction
- Goods not received
- Incorrect or duplicate billing
- Subscription not canceled as promised
- Funds are clawed back from merchant
- Investigation by issuer, may involve documentation
- Your platform may be charged a dispute fee
- Excessive chargebacks may lead to compliance risk or program review
Refund vs. reversal vs. chargeback (summary table)
Handling refunds on terminated cards
Refunds can still be processed to a card after it has been terminated. What happens then?- The funds are redirected to your platform master wallet or float
- You are responsible for notifying the user or returning the funds
- A webhook will include the
cardIdand amount
virtualcard.transaction.refund for a merchant refund, and virtualcard.transaction.terminated.refund for the balance refund on a terminated card. Handle both.
Product design guidelines
Never leave users wondering why a refund hasn’t arrived: give timelines, status, and context.
Internal best practices
- Store the
idandreferenceof each event, and match events by card and merchant, since each event has its ownreference - Log time between original transaction and refund or dispute
- Build a dashboard view for ops/support to reconcile transaction chains
- Use webhook timestamps to monitor merchant behavior patterns (slow refunds, frequent reversals)
Dispute handling and policies
If your product allows users to initiate chargebacks:- Provide a structured dispute form
- Require relevant evidence (e.g., screenshots, emails)
- Set response SLA (e.g., “We’ll update you within 3 business days”)
- Communicate clearly when the chargeback is accepted, rejected, or pending
Recap
- Reversals happen before settlement; refunds happen after
- Chargebacks involve formal disputes and operational overhead
- Terminated cards can still receive refunds, which are rerouted
- You must build clarity around these events in both product and support flows
- Trust and operational maturity come from handling these events proactively