Refund / Reconciliation Mismatch Troubleshooting
Diagnose divergence between booking cancellation and payment refund state across amount, currency, partial refunds and provider evidence.
Booking cancellation and payment refund are separate lifecycles. A successful cancellation can coexist with an incomplete, partial or UNKNOWN refund.
Symptom
A booking is CANCELLED but refund is missing, refunded amount differs from expectation, partial refunds disagree across systems, or the payment provider shows REFUNDED while local ledger is stale.
Possible causes
Failed/UNKNOWN refund, cancellation penalties, partial refunds, FX differences, settlement delays, duplicate-refund protection or local ledger-write failure.
Diagnosis
Locate original capture amount, verify cancellation penalty, retrieve refund attempt/provider status, aggregate partial refunds, separate original/settlement currency and reconcile local ledger against provider totals.
Recovery
Before sending another refund, determine the existing attempt outcome. Repair local state when the provider already refunded; otherwise apply remaining refund or operational escalation according to policy.
Prevention
Use separate refund state, immutable payment ledgers, operation-scoped idempotency, explicit amount/currency breakdown, scheduled reconciliation and manual thresholds.
Observability
Track cancelled-without-refund, refund age, expected-vs-actual delta, partial refunds, refund UNKNOWN and ledger/provider drift.
Are you facing this in production?
We can review the symptom, data flow and integration behavior technically.