What this audit checks
Authentication & access
- Key pair valid (Basic auth probe on /v1/payments?count=1)
- Key environment matches intent (rzp_live_ in production, rzp_test_ in sandbox)
- Key has read scope for payments, settlements, refunds and disputes
Transaction health
- Success rate below 90%
- Decline rate above 8% (and which error_reason codes dominate)
- A payment method authorising below 85% (rail-specific breakage: UPI vs card vs net-banking)
- 3DS / OTP challenge abandon rate above 30% (added friction / abandonment risk)
Refunds & disputes
- Refund rate above 8% of volume
- Chargeback rate above 0.9% (network monitoring-programme threshold)
- Dispute rate above 1%
- Disputes approaching respond_by deadline with no evidence submitted
Settlement timing
- Average settlement time above 5 days (cash-flow risk vs T+2/T+3 schedule)
- Oldest pending payout above 5 days
- A settlement in failed status
Cross-channel: payments-to-revenue (the killer area)
- Failed-payment shoppers opening support conversations (sibling support_helpdesk) - friction driving support load
- Razorpay captured volume vs commerce-sibling order revenue mismatch > 2% (reconciliation gap)
- Refund spike correlated with a commerce returns spike in the same window
- Decline-rate spike during a campaign push (paying for traffic that can’t pay)
Data sources
GET https://api.razorpay.com/v1/payments- Volume / success / decline / method mix / decline reasonsGET https://api.razorpay.com/v1/settlements- Settlement timing / pending payout ageGET https://api.razorpay.com/v1/refunds- Refund rate / refund volumeGET https://api.razorpay.com/v1/disputes- Dispute rate / chargeback rate / reason mix