POST /v1/payments/create/upi → endpoint removal
Stopped working
On February 28, 2026, Razorpay is removing support for the body parameter vpa on POST /v1/payments/create/upi for merchants outside NPCI's UPI Collect exemptions. Affected requests using this parameter will fail after this date. This change aligns with guidelines deprecating the UPI Collect flow.
Calls it hits
POST /v1/payments/create/upibody parameter vpa
What to use instead of these calls
To migrate, drop vpa and expiry_time from your requests. Send upi: {"flow": "intent"} instead to use UPI Intent or a UPI QR code rather than the collect flow.
In Razorpay API's words
According to NPCI guidelines, the UPI Collect flow is being deprecated effective 28 February 2026 to align with the latest ecosystem compliance standards and ensure higher transaction success rates. Customers can no longer make payments by manually entering VPA/UPI id/mobile numbers.
Facts
- API
- Razorpay API
api.razorpay.com - Kind
- Endpoint removal
- Takes effect
- February 28, 2026
- Calls after that day
- Fail
- Who it affects
- merchants outside NPCI's UPI Collect exemptions
- Source
- Announcement
- Last updated
- Verified
- , against Razorpay API's own pages
Questions
When does this change take effect?
Calls to POST /v1/payments/create/upi, body parameter vpa on Razorpay API stopped working on February 28, 2026.
What happens to calls after February 28, 2026?
They have failed since February 28, 2026.
How do I find the calls this hits in my code?
Okapi reads your repository, finds the calls this change hits and opens a pull request with the fix. It never commits to your branches: every change comes as a pull request you review.
You fixed this one by hand.
Okapi opens the pull request with the fix before the next breaking change reaches your code.