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

## 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: Parameter 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: November 6, 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
