# vpa on POST /v1/payments/create/upi stops working on merchants outside NPCI's UPI Collect exemptions

Calls to POST /v1/payments/create/upi, body parameter vpa on Razorpay API stopped working on February 28, 2026.

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.

## What to use instead

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.

- API: Razorpay API (api.razorpay.com)
- Kind: Endpoint removal
- Takes effect: February 28, 2026
- Calls after that day: fail
- Calls it hits: `POST /v1/payments/create/upi`, `body parameter vpa`
- Who it affects: merchants outside NPCI's UPI Collect exemptions
- Source: [Announcement](https://razorpay.com/docs/announcements/upi-collect-migration/s2s-integration/)
- Verified: October 26, 2026, against Razorpay API's own pages
- Page: https://www.okapi.bot/providers/razorpay-api/breaking-changes/vpa-on-post-v1-payments-create-upi-stops-working-on-merchants-outside-npci-s/

## 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.

Okapi finds the calls this change hits in your repo and opens the pull request with the fix: https://github.com/apps/okapi-agent
