A UPI transaction status showing Success at the remitter (sender) bank but failing to credit the beneficiary (merchant) account occurs due to an asynchronous decoupling between the debit leg and the credit leg within the Unified Payments Interface switch architecture. The Remitter Bank PSP successfully executes the debit instruction and transmits an ISO 20022/UPI payload to the National Payments Corporation of India (NPCI) switch, which returns a SUCCESS response code (00 / 0000) for the debit operation. However, the downstream credit API request to the Beneficiary Bank PSP encounters a timeout, queue backpressure, or database lock, leaving the transaction in a state of pending reconciliation or parked funds within an NPCI pool account.
Root Cause Diagnosis
The UPI core banking architecture executes transaction legs as two independent, sequential API calls managed by NPCI’s Central Switch. When the remitter’s account is debited, NPCI marks the transaction leg as successful and fires a credit request payload to the beneficiary bank’s Payment Server; if the beneficiary server fails to respond within the stipulated HTTP connection/read timeout window (typically 3–5 seconds), NPCI drops the socket connection. Because the debit leg returned success, the sender’s UPI application renders a successful transaction state using the UTR (Unique Transaction Reference), while the beneficiary bank queues the incoming funds into a CBS (Core Banking Solution) suspense ledger pending auto-reconciliation or auto-reversal.
Quick Fix
Initiate an immediate real-time dispute via the UPI application’s native complaint API to trigger NPCI’s automated Online Dispute Management (ODM) clearing routine, or query the NPCI UTR status directly via API/portal:
# Query transaction reconciliation state using curl against NPCI ODM endpoint / bank PSP API
curl -X POST "https://api.psp-partner.com/v1/upi/reconcile" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_PSP_API_KEY" \
-d '{
"utr": "427101928374",
"npci_txn_id": "CXN8291038475920192837465928103948",
"action": "QUERY_STATUS"
}'
Step-by-Step Resolution
- Extract and Validate Transaction Metadata
- Locate the 12-digit UTR (Unique Transaction Reference / RRN) from the sender’s UPI payment confirmation receipt.
- Note the exact timestamp, payment handle (VPA), and NPCI Transaction ID (
txnId).
- Trigger NPCI Online Dispute Management (ODM) via Sender App
- Open the payment entry in the remitter’s UPI application (e.g., Google Pay, PhonePe, Paytm, BHIM).
- Navigate to Transaction Details > Raise Dispute / Having issues?
- Select Money debited but not credited to recipient/merchant. This executes an automated
REQ_ADJUSTMENTAPI packet directly to the NPCI switch.
- Merchant-Side Webhook & API Status Verification (For Developers/Merchants)
- Do not rely solely on client-side success callbacks; query the merchant aggregator/acquirer backend via server-to-server API to fetch the authoritative status.
- Send a payment check status request to the acquiring gateway API using the transaction ID:
{
"merchant_id": "MERCHANT_90210",
"merchant_txn_id": "ORDER_20260929_8819",
"utr": "427101928374"
}
- Parse the response payload for the
npci_response_code. If the code indicatesPENDINGorDEBIT_SUCCESS_CREDIT_PENDING, the transaction is queued in NPCI’s T+1 Settlement Buffer.
- Escalate via NPCI Portal (If Unresolved after T+1 Days)
- Access the official NPCI Dispute Redressal Portal (
[https://www.npci.org.in/what-we-do/upi/dispute-redressal-mechanism](https://www.npci.org.in/what-we-do/upi/dispute-redressal-mechanism)). - Navigate to Complaint > Transaction.
- Fill required fields: Nature of Transaction (Person to Merchant), Issue (Incorrectly debited / Funds not credited), UTR Number, Amount, and Bank Name.
- Attach the remitter’s bank statement highlighting the specific debit entry.
Why This Fails for Some Users
- Auto-Reversal (T+1/T+5 Window) Triggering Late: RBI guidelines mandate automated reversal ($T+1$ working day) into the sender’s account if credit confirmation fails; if NPCI’s auto-clearing batch fails due to interbank network outages, manual clearing extends the hold up to 5 business days.
- Beneficiary CBS Suspense Account Queueing: If the merchant’s bank account is blocked, frozen, or has breached daily credit limits, the incoming credit payload passes NPCI but gets rejected by the beneficiary bank’s CBS, parking funds in an unassigned ledger.
- Webhook Timeout / Dropped Callbacks: The credit was applied at the merchant’s bank, but the merchant’s payment gateway failed to parse the incoming server-to-server HTTP POST webhook due to TLS handshake failures, firewall block rules, or strict 5-second backend timeout settings.
- Mismatched Dynamic QR / Merchant VPA Expiry: For dynamic UPI QR codes with short validity windows, payments initiated right at the boundary threshold may be processed by the remitter PSP after the acquirer session has closed, causing the acquiring server to reject the incoming credit signal.