You paid on a website or app that uses Razorpay, the screen said the payment failed (or sat on processing until it gave up), and then your bank sent a message saying the money was debited. Or you are the merchant, and a customer is sending you a screenshot of their bank statement while your Dashboard shows the payment as failed.
Three different situations produce this, and the fix depends on which one you are in: the payment genuinely failed and the bank has not reversed the hold yet; the bank was slow to answer and the payment was later authorised (Razorpay calls this late authorisation); or the payment was authorised but never captured, so it will be refunded automatically. Razorpay's own docs explain all three.
Tell which case you're in
The merchant can see the exact status under Transactions, then Payments, in the Razorpay Dashboard by clicking the payment ID. A customer can ask the merchant for it. Razorpay's docs define the states like this:
- Created: the customer has entered payment details, but the payment has not been processed yet. If the bank never responds, it stays here for up to 10 minutes.
- Failed: the attempt was unsuccessful and the customer has to retry. Razorpay says any amount debited will be refunded. A payment can also show failed "due to timeout" when the bank did not answer within 10 minutes.
- Authorized: the bank authenticated the payment and the money has been deducted from the customer, but it has not been captured yet. If it is not captured before the timeout, it is refunded automatically.
- Captured: Razorpay has verified the payment as complete, and it settles to the merchant on the normal schedule. This is a successful payment.
- Refunded: a captured payment that the merchant has reversed back to the customer.
Case 1: the payment failed and the money was debited
This is the most common case. The bank put the money on hold or debited it, but Razorpay never received a successful confirmation, so the payment was marked failed. Razorpay's FAQ describes a payment as failed "when we do not receive a successful callback message".
The money is not lost. Razorpay's documentation says the amount comes back automatically, but different Razorpay pages give different windows: the payment states page says 5-7 working days, the payments FAQ says the customer's issuing bank auto-refunds it in 7-10 working days, and the Checkout FAQ says 3-7 business days. In practice, allow up to 10 working days before you treat it as missing. The FAQ also notes the reversal is made by the customer's issuing bank, not by Razorpay, which is why the customer's bank is the place to ask once that window has passed.
Do not pay a second time just because the first attempt is still showing on your statement, unless you need the order right now. If the first payment later turns out to have gone through (Case 2), the merchant may end up with two payments and will need to refund one.
Case 2: it failed, then succeeded (late authorisation)
Razorpay's late authorisation page explains what happens when a network or technical problem interrupts a payment. If the bank does not respond, the Dashboard shows the payment as created. If there is still no response after 10 minutes, it is marked failed due to timeout. Razorpay then keeps polling the bank for 3 days from the day the payment was created. If the bank reports success in that window, the payment moves to authorized and is considered late authorised. Razorpay says less than 0.5% of payments end up late authorised.
For merchants, a late-authorised payment can be captured (and the order delivered) or refunded. Razorpay's FAQ puts it plainly: either capture the payment and provide the service or goods that were promised, or refund it if you can't. If the funds were debited but you never capture them, the amount is refunded to the customer automatically.
Razorpay recommends subscribing to the payment.authorized webhook so your system hears about these payments, rather than relying on the customer's browser returning to your site.
Case 3: authorized but never captured
If a payment sits in authorized, the money has left the customer but has not reached the merchant. By default Razorpay auto-captures payments, so this usually happens only when a merchant has switched to manual capture or the payment was authorised late.
Razorpay's capture settings page says payments still in the authorized state are auto-refunded after the capture timeout. On that page, both the automatic and manual capture timeouts can be set between 12 minutes and 3 days, with 3 days as the default. Razorpay's payments FAQ, however, says authorized but uncaptured payments are refunded in 5 days, and the Orders API documents a default manual expiry of 7,200 minutes (5 days). Because the docs differ, check the value set on your own account.
To change the setting, the docs say to go to Account & Settings, scroll to Payments Capture, and click Change next to Automatic Capture. Only the Razorpay account owner can change it. To capture a single payment by hand, go to Transactions, then Payments, open the authorized payment, click Capture Payment, and confirm with Yes, Capture.
Why Razorpay payments fail: the common error reasons
When a payment fails, Razorpay returns an error with a code, a description, a source (where it failed, for example customer, gateway or bank), a step (the stage it failed at) and a reason. The reason is the useful part. These are some of the reasons listed in Razorpay's error documentation:
- insufficient_funds: the customer's account did not have enough money. Retry with another card or method.
- payment_cancelled: the customer cancelled during authentication.
- incorrect_otp or authentication_failed: the OTP or 3D Secure step did not pass.
- payment_timed_out: the customer did not finish in time, or the gateway did not respond.
- card_declined or debit_instrument_blocked: the card was declined or is blocked by the issuer or the customer.
- transaction_daily_limit_exceeded or transaction_limit_exceeded: the card hit its daily or overall limit. Razorpay suggests another instrument, or waiting 24 hours for the daily limit.
- payment_risk_check_failed: declined by risk checks at Razorpay, the gateway or the issuing bank. The source field tells you which.
- bank_technical_error or payment_failed: a problem at the bank or wallet gateway with no more specific code. Retry with a different method.
- server_error: a problem on Razorpay's side. Retry after a short delay and contact Razorpay support if it continues.
If you are the merchant: what to check
Before you reply to the customer, find the payment under Transactions, then Payments (ask the customer for the pay_ ID if you can't spot it), open it, and note its current status. A payment that was failed an hour ago may now be authorized.
- Status is captured: the payment succeeded. Deliver the order, or refund it if you cannot.
- Status is authorized: capture it if you will fulfil the order. Otherwise leave it, or refund it, and it will be returned to the customer.
- Status is failed: tell the customer the debit should be reversed by their bank automatically, and give them the payment ID. Read the error reason so you can tell them whether to try another card or method.
- If you refund: Razorpay's refund docs say a normal refund reaches the customer in 5-7 working days, an instant refund almost immediately, and money always goes back to the method the customer paid with. Normal refunds are not possible for payments more than 6 months old.
- Listen for the payment.authorized and payment.failed webhooks so late-authorised payments update your orders without manual checking.
If you are the customer: what you can do
Razorpay's dispute guide says to start with the merchant, using the contact details on their website, because Razorpay only processes the payment and does not handle the order itself. Send the date and amount, the merchant's order ID if you have one, the Razorpay payment ID (it starts with pay_), and a short description of what happened.
If the merchant does not respond within 3-5 working days, you can raise a request with Razorpay at razorpay.com/support, including the transaction date, amount, payment ID, a short description and screenshots of your messages to the merchant. Razorpay says its investigation team then takes 3-5 working days. For a debit with no order created, the same guide says the credit should reach your bank account within 5-7 business days, so check your bank statement first.
If you are setting up payments yourself
If you sell from a link-in-bio page, OneSol gives you a free page with one link for all your profiles, and the paid Pro plan lets you take payments through your own Razorpay, Stripe, PayPal or Square account. When Razorpay is the processor, everything above about payment states and refunds still applies.