Skip to main content
Accept UPI payments from customers in India with Adyen as the payment service provider (PSP). The customer approves the payment in a UPI app, either through a deep link or by scanning a QR code.

Supported workflows

WorkflowSupported
Payrails SDK✔
Payrails API✔
Delayed / Manual Capture✖
Instant Capture✔
Cancel / Void✖
Refund / Reverse✔
Save Instruments✖
Merchant Initiated Transaction (MIT)✖

Before you begin

Complete these steps before you send your first UPI payment through Adyen:
  1. Set up an Adyen integration in your workspace. Follow the Adyen integration setup guide if you don’t have one yet.
  2. Ask Adyen to enable UPI on your Adyen merchant account.
  3. In the Payrails Portal, go to Settings → Integrations, open your Adyen integration, select UPI under Payment methods, and save.
  4. Add UPI as a payment option in your workflow.

Request fields for Adyen

Send these fields in the authorize request, in addition to the standard authorize fields. Required fields must be present for the payment to succeed. Payrails sends Optional fields to the PSP when you include them.

Authorize a UPI payment

Choose the journey

Payrails picks the Adyen UPI journey from meta.paymentMethods.upi.flow:
  • When flow is intent, the response redirects the customer to the UPI app you send in the upiApp payer field.
  • When flow is qr, or when you don’t send a flow, Payrails shows a QR code on a Payrails-hosted page. The customer scans it with any UPI app. Payrails ignores upiApp in this journey.
Call authorize a payment with upi as the paymentMethodCode. This example uses the intent journey. The response includes the redirect to the customer’s UPI app.
Authorize request
For the QR code journey, send "flow": "qr" and leave out the payer fields. The customer approves the payment in their UPI app, and Adyen sends the result to Payrails asynchronously. Confirm the result through webhook notifications or the execution status before you fulfill the order.

How Adyen handles UPI

  • Adyen captures UPI payments automatically. When Adyen confirms the authorization, Payrails also records the capture, so the payment completes in one step.
  • Payrails sends every UPI payment to Adyen as a new intent or QR code payment, never as a charge against a stored token. Each UPI payment is a new customer-initiated payment.
  • The Payrails-hosted QR code page shows a five-minute countdown.
  • When flow is intent, the Payrails SDK collects the UPI app through the upiApp payer field.
  • Payrails still reads meta.upi.flow from older integrations. Use meta.paymentMethods.upi.flow for new integrations.
Last modified on October 16, 2026