A finance manager at a fast-growing D2C brand in Bengaluru notices something unsettling during a routine audit. Despite dispatching 12,000 orders in the previous month, the revenue recognised in the ledger shows a ₹28 lakh gap.
Payment gateway logs show “success,” whilst the order system shows “pending,” and the UPI app marked a handful of transactions as “reversed.” Refund queues have swelled because customers believe money was deducted twice. Support tickets spike as shoppers raise disputes, often attaching low-resolution bank messages that make traceability harder.
This scenario is far more common than teams admit. NPCI data shows over 34 crore monthly UPI transactions enter a grey zone where callbacks time out or the customer’s app crashes before status reaches the merchant. Studies by Indian fintech processors indicate that 2.2–3.4% of UPI payments fail silently, leaving finance teams unsure whether to auto-cancel or chase confirmation. These mismatches amplify cash-flow uncertainty, reconcilement delays, and manual workload.
In this comprehensive guide on Reconciling Failed Payments: A Guide for D2C Finance Teams, we're diving deep into high-fidelity reconciliation workflows, gateway behaviour patterns, and operational safeguards that eliminate ambiguity. This approach reduces mismatch-driven escalations by 60–70%, shortens settlement delays by 35–45%, and restores confidence in financial reporting across the organisation.
Why do D2C brands struggle with failed payment reconciliation?
Underlying infra behaviours that create mismatches across gateway, bank, and OMS

Finance teams often expect reconciliation to behave like a simple three-way handshake between the customer, the payment gateway, and the brand’s order system. In reality, the data path resembles a multi-layer relay that depends on UPI app performance, PSP infrastructure stability, NPCI switch latency, gateway callback timing, and internal OMS ingestion reliability. When any component delays or drops a status update, the systems drift out of sync.
Metropolitan customers using high-speed broadband usually complete UPI payments within seconds, allowing gateways to push near-instant confirmation. These transactions rarely create mismatches because the callback and the OMS ingestion align. However, Tier-2 and Tier-3 shoppers often transact through mid-tier PSP apps where device-level lags cause “success on customer screen but pending on merchant side” scenarios.
This mismatch typically occurs when the UPI app confirms payment locally before NPCI sends the final debit event to the gateway, leaving the OMS stuck in a pending escrow state.
Brands relying on multiple gateways face compounding challenges. One gateway may retry callbacks three times whilst another retries five times. Some gateways queue webhooks during downtime and release them in batches.
These variations create timing inconsistencies that leave finance teams reconciling stale data long after dispatch decisions have been made. Smaller D2C brands operating on older OMS architectures struggle even more because ingestion jobs run in timed batches instead of real-time, widening the mismatch window.
Consider the pattern where a customer pays via UPI but closes the app immediately after authorisation. The bank debits the amount, yet the PSP fails to push the confirmation API. The gateway marks it as “processing,” and the merchant never receives the final status.
These behaviours cumulatively increase manual intervention as finance teams download spreadsheets, compare transaction IDs, and cross-check settlement reports from banks, payment gateways, and storefront platforms.
In high-volume sales cycles, the inability to reconcile quickly amplifies risk. Orders may be shipped without payment confirmation or cancelled despite the customer’s account being debited. Both outcomes degrade customer trust and inflate refund liability.
The most significant driver of reconciliation complexity is inconsistent status propagation across the payment chain, which forces finance teams to depend on manual verification even when automated systems exist.
How does payment infrastructure create gaps between “customer success” and “merchant confirmation”?
Tracing the payment journey across UPI apps, PSPs, gateways, and OMS pipelines

Understanding the reconciliation gap requires examining how UPI flows behave under operational pressure. When a customer initiates a payment, their UPI app communicates with the PSP, which interacts with NPCI to validate and debit the transaction.
The PSP then sends a confirmation back to the app and forwards a status update to the payment gateway. Once the gateway receives this update, it triggers a webhook to the merchant. The merchant ingests the webhook and marks the order as paid.
This sequence seems linear. It rarely behaves that way in Indian e-commerce.
Where delays usually occur
NPCI infrastructure handles nearly 1,200–1,500 transactions per second, a load that often creates micro-delays during peak hours. These delays do not always impact consumers visibly because PSP apps buffer states locally. However, merchant systems rely solely on gateway callbacks, not user interface states. When the PSP delays confirmation, the gateway remains uninformed and the merchant receives “processing” indefinitely.
The real cause of dual-debit perceptions
Customers often claim double debits when their UPI app crashes or closes prematurely. UPI frequently marks these as “pending reversal.”
The bank may debit initially, then auto-reverse after T+1. Merchants never receive these reversal notifications directly, leaving finance teams dependent on gateway settlement files. Timestamps may not align due to differing time zones across processors, adding further confusion.
Example of a typical mismatch scenario
A fashion D2C brand in Mumbai recorded 402 failed payments during a Diwali sale weekend. Gateway logs showed 312 pending, 45 processing, and 45 customer-dropped statuses.
On cross-checking NPCI’s settlement summary, 74 pending transactions had actually succeeded, but the brand’s OMS never ingested the callback because the webhook hit during a routine maintenance window. Without reconciling, the team would have cancelled valid orders.
Common causes of payment mismatches

These patterns illustrate why finance teams require a robust reconciliation engine rather than relying on gateway dashboards or OMS order states. The interplay of infra delays, inconsistent retries, and asynchronous callbacks creates systemic drift that manual effort cannot reliably resolve at scale.
Why Should Reconciliation Start Before the Payment Fails?
Proactive visibility reduces cancellations, disputes, and refund lag
Pre-transaction readiness checks (PTRC)

D2C finance teams often ignore the pre-payment stage altogether, assuming reconciliation begins after failure. In reality, 30–40% of mismatches can be prevented at the payment initiation stage with PTRC:
- Validate order ID + transaction ID mapping before redirecting the customer to the gateway
- Create a “pending escrow row” in the transaction ledger
- Assign a TTL (time-to-live) for the transaction state
- Predict success probability using gateway uptime history
- Pre-store the customer’s UPI VPA (masked) for fraud scoring
- Log device metadata (Android/iOS, OS version, browser, PSP)
PTRC ensures every transaction has a root record, making it easier to trace.
Why TTL matters for reconciliation
TTL (e.g., 7 min) ensures that if no callback is received:
- The system force-closes the state
- The transaction is pushed to a “stale but reviewable” queue
- Automatic refund advisories can be triggered
- Order confirmation is held until reconciliation stabilises
This reduces ghost transaction drift, where payments stay “processing” indefinitely.
How Should Platforms Handle Payment Callbacks and Webhooks Reliably?
The callback layer is the single largest failure point
Webhooks fail for three common reasons:
- OMS downtime
- DNS jitter / SSL errors
- Gateway retry policies inconsistent with merchant ingestion rules
Core principles of reliable webhook handling
1. Multi-retry ingestion with idempotency
- Use a unique transaction_hash to prevent duplicate ingestion
- Enable ingestion replay—every webhook stored and reprocessed if the merchant endpoint was down
- Maintain a 3–5 retry loop with exponential backoff
This ensures the same payment is never marked twice, and no payment is missed.
2. Queue-based processing
Push webhooks into a message queue (Kafka, SQS, Redis Streams) before OMS handles them.
Two benefits:
- OMS downtime won’t lose callbacks
- High-volume spikes won’t choke the OMS
3. Gateway-level acknowledgement
Send a 200 ACK only when the OMS has successfully written the payment record—not just when the server receives the webhook.
This reduces “gateway assumes delivered, merchant actually lost it” scenarios.
What Should a Multi-Layer Reconciliation Engine Look Like?
Three-layer verification ensures 98%+ accuracy and reduces manual effort by 70–80%
Layer 1 — Real-time Reconciliation
Triggered when the gateway sends:
- success
- failure
- processing → success
- processing → failure
- late callbacks
This layer updates the OMS instantly and determines the order’s next step.
Layer 2 — Batch Reconciliation (T+0 and T+1)
Runs every 30–60 minutes.
Pulls:
- Gateway reports (Payment ID, status, reference number)
- NPCI settlement confirmations
- PSP-level status (when available)
This layer fixes:
- Delayed successes
- Delayed reversals
- PSP-to-NPCI mismatches
- Wrongly-cancelled orders
Layer 3 — Exception Queue Reconciliation
For transactions that remain ambiguous after Layer 1 and 2:
- No webhook received
- No settlement record
- Customer presents proof (SMS, app screenshot)
- Debit shows in customer bank, but not in NPCI summary
Finance teams investigate using:
- RRN (Reference Retrieval Number)
- Bank PSP logs
- Time-synced timestamp analysis
Decision Framework: When to Ship, Cancel, or Hold an Order?
The most important operational tree for D2C risk management
Below is the structured reconciliation decision tree used by many mid-large Indian D2C brands.
Payment Reconciliation Decision Tree (Simplified)
Step 1 — Status received from gateway?
- Yes → Go to Step 2
- No → Move to “stale pending queue” and hold order
Step 2 — Status = Success?
- Yes → Mark paid → Release for fulfilment
- No → Step 3
Step 3 — Status = Failed?
- Yes → Cancel order → Auto-refund (if debit detected later)
- No → Step 4
Step 4 — Status = Processing / Pending?
Check TTL:
- TTL < 7 mins → Wait + retry callback sync
- TTL expired → Check NPCI settlement report
If NPCI:
- Shows success → Mark paid
- Shows no record / reversed → Mark failed, advise customer
- Shows “inward pending” → Push into exception queue
Why Does Transaction ID Mapping Matter So Much for Reconciliation Accuracy?
Mismatch in mapping creates “orphan transactions” and expensive manual audits
Finance teams often confuse:
- Order ID
- Merchant Transaction ID (MTX)
- Gateway Payment ID
- NPCI UTR
- Bank’s RRN
Any mismatch breaks reconciliation.
Ideal mapping protocol
Always maintain a 5-field linkage table:

Without this mapping, finance teams have to manually match payment success with customer complaints—a painful process.
How Does D2C Support Tie Into Finance Reconciliation?
Support plays a critical role in reducing reversals and tickets
70–80% of “payment failed but money debited” tickets come from:
- UPI pending reversals
- PSP message delays
- Customer misunderstanding of “hold amount”
The finance → CX sync loop should include
- Auto-ticket creation when recon layer detects mismatch
- Auto-refund triggers
- Customer-facing updates via WhatsApp/SMS
- RRN-based ticket resolution templates
- Daily T+1 reconciliation summary for support teams
This reduces customer escalations and NPS impact.
What Happens in the First 24 Hours After a Payment Fails?

Should Reconciliation Logic Change for COD-to-Paid Conversions?
Yes—because payment behaviour and fraud risk differ dramatically
When customers convert COD → prepaid (via NDR or checkout nudges), reconciliation becomes more sensitive because:
- Many of these customers pay after repeated attempts
- PSP apps are often older versions
- Payment failures are disproportionately higher
- Fraud risk is 2–3x higher in Tier 2–4 geographies
Finance teams must enforce stricter TTL and more aggressive webhook ingestion rules for such transactions.
Quick Wins
Week 1 — Map Every Failure Path
Most reconciliation issues begin with an incomplete understanding of how different gateways classify events. During the first week, finance and ops teams document every status emitted by their active gateways, including edge cases triggered during UPI timeouts or card authentication drops.
This mapping exercise establishes a standard dictionary that translates inconsistent labels into a single internal interpretation. Teams also review webhook logs to understand latency, dropped payloads, and retry behaviour. By the end of week one, brands typically uncover gaps including missing events for nearly 4–6% of transactions and duplicate callbacks affecting ledger accuracy.
Expected outcome: A unified status map that removes ambiguity and reduces interpretation confusion, allowing clean reconciliation rules.
Week 2 — Implement Automated Gateway-to-Ledger Sync
Automation begins with constructing a queue that catches every gateway event before it reaches the ledger. During this phase, brands configure gateway retries, reprocess unacknowledged payloads, and introduce a timestamp signature to eliminate duplicates. The internal ledger receives only de-duplicated and validated events, ensuring alignment with the gateway’s version of truth. Failed payments are automatically tagged with reason codes including insufficient balance, customer drop-offs, NPCI routing errors, and issuer declines.
Expected outcome: Clean, timestamped records reduce manual filtering and shrink reconciliation effort by 40–50%.
Week 3 — Build Exception Handling Workflows
Once the automated flow stabilises, finance teams define how exceptions should behave. Refund-required failures move into an auto-refund pipeline triggered nightly, whilst ambiguous statuses fall into a manual review queue capped with SLA commitments. Transactions missing gateway callbacks generate alerts that prompt re-fetch attempts via the gateway’s API.
Expected outcome: Exception queues shrink by 60%, eliminating the large backlog of unresolved failures.
Week 4 — Establish Audit Logs & Daily Summary Reports
The last week focuses on constructing a reconciliation dashboard that displays collection totals, settlement summaries, bank credit timelines, and failure clusters. Automated daily reports highlight mismatches where the ledger and gateway disagree.
Audit logs retain every action, creating a traceable trail for quarterly reviews and external auditors.
Expected outcome: Finance teams gain complete visibility into money movement, eliminating revenue Leakage and closing the month without guesswork.
Metrics & KPI Benchmarks

TL;DR
Most failed payments aren’t random; they stem from mismatched records between the payment gateway, the bank, and the brand’s internal ledger.
This disconnect generates unnecessary support load, revenue leakage, and settlement delays that frustrate both finance teams and customers.
Reconciling failed payments effectively requires structured ingestion of gateway events, systematic ledger matching, and automated exception handling that removes manual intervention from the daily workflow.
Brands that implement automated monitoring, uniform status mapping, and rule-based settlement workflows reduce effort by 60–70% whilst cutting refund delays by nearly two thirds. A consistent, audit-ready reconciliation system also minimises revenue write-offs and improves customer trust during high-volume campaigns.

FAQs (Frequently Asked Questions On Reconciling Failed Payments: A Guide for D2C Finance Teams)
1. Why do UPI payments fail even when customers have balance?
UPI failures often stem from NPCI routing congestion, issuer downtime, or authentication mismatches rather than customer-side issues. These external dependencies affect the success rate even when funds are available.
2. Why does gateway data sometimes not match the internal ledger?
Gateway callbacks occasionally drop due to latency, server restarts, or network instability. When the ledger receives incomplete or duplicate information, mismatches appear until the next reconciliation cycle.
3. How soon should refunds be initiated after a payment failure?
Most D2C brands aim for T+1 initiation because banks typically process UPI and card refunds within 2–5 business days. Prompt initiation prevents ticket build-up and improves customer confidence.
4. Do payment failures affect cash flow for fast-scaling brands?
Large discount-led campaigns can generate thousands of failed transactions that impact projected revenue, delay settlement, and inflate reconciliation workload if not automated.
5. Should brands rely on gateway dashboards or internal systems for daily numbers?
Teams usually trust internal systems once a robust reconciliation pipeline is in place, whilst gateway dashboards serve as reference points during audits and exception checks.
Talk to our experts for a customised solution that can maximise your sales funnel
Book a demo



.png)