Okapi Okapi

POST /v1/payments/create/upi → endpoint removal

Razorpay API

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/upi
  • body 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.

Razorpay API, Announcement

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.

Add to GitHub