Skip to main content

Introduction

A subscription collects money from the same buyer again and again without asking them to pay each time. You create the subscription once, the buyer approves a mandate, and every debit after that is authorised by that mandate. This page covers the UPI Intent flow: no VPA is collected up front — the buyer approves the mandate by scanning a QR code or opening their UPI app.

Create Subscription

Create a UPI subscription order with a standing instruction

Display QR Code

Show the QR code for mandate approval

Invoke UPI Intent

Launch UPI apps on Desktop, Android, and iOS
Collection is only half the flow. The mandate payment and every recurring debit are money collected in India — they are not yet cleared to settle abroad. Each one still needs its compliance details asserted before it can settle. See Collection Overview.

Prerequisites

Before you begin, ensure you have:
  • Credentials: Your X-Client-ID and X-Client-Secret, and X-API-Version: 3.0.0 on every call
  • Domain Whitelist: Your website domain whitelisted for integration
  • Webhook URL: A secure endpoint to receive payment and subscription status updates
  • UPI Subscription enablement: UPI recurring subscriptions enabled and approved by EximPe on your account
  • Server environment: The ability to make HTTPS POST and GET requests from your backend
PSP callers additionally send X-Merchant-ID naming the sub-merchant the subscription belongs to.
Examples on this page use the sandbox host https://api-pacb-uat.eximpe.com. In production, use https://api-pacb.eximpe.com.

Step 1: Create the subscription

Call this from your backend — never from the browser, which would expose your client secret. The request looks like a Create Order request with a standing_instruction block added: it says how much to bill, how often, and between which dates.
cURL

Response

Keep the subscription_id. Every call on the Manage Subscriptions page is addressed by it.
Card flow or intent flow.
  • Intent flow (this page): no VPA needed. The buyer approves the mandate by scanning a QR code or opening a UPI app, and the response carries the QR code as base64.
  • Card flow: the buyer’s card details are collected up front, and the mandate is created against the card.
For the full request and response schema, see Create UPI Subscription (Intent Flow).

Step 2: Display the QR code

The response includes a base64-encoded QR code you can render directly:
Alternatively, generate the QR code yourself from intent_uri, or use qr_code.url for UPI app deep linking.

Step 3: Invoke the UPI intent

How you invoke mandate approval depends on the buyer’s device.

Desktop

Show the QR code from Step 2. The buyer scans it with their mobile UPI app and approves the mandate there.

Mobile (Android & iOS)

Use the intent_uri to launch the buyer’s UPI app directly.

1. Specific app invocation

To target a specific app, use these schemes:
App support. The major UPI apps (Google Pay, PhonePe, BHIM, Paytm) support mandate creation via deep links. Some apps do not support the app-specific /mandate scheme — fall back to the generic upi://mandate? scheme, or display the QR code from the response.
Android specific app format:
iOS specific app format:

2. Generic intent invocation

To let the buyer choose any installed UPI app, or use their default handler:
  • On Android, upi://mandate? opens the system app tray (the “Complete action using” dialog), letting the buyer pick from every installed UPI app.
  • On iOS, upi://mandate? opens the default UPI app configured on the device.
Pro tip: detect the buyer’s device. Show a QR code on desktop, and a list of UPI apps (or an “Approve Mandate” button) on mobile.

Step 4: Confirm the mandate is active

A created subscription is not yet a live mandate — the buyer still has to approve it. Check with Get Subscription Mandate Status before you rely on it, and watch the Subscription Status webhook for the PENDINGACTIVE transition.

Step 5: Assert compliance on each payment

Every debit the mandate authorises is a payment collected in India, created in Action Required until you supply the compliance details its purpose code requires. Only then does it become eligible for settlement abroad.

Collection Overview

What a payment needs after it is collected, and how it reaches you abroad.

Next Steps

Once the subscription exists, go to Manage Subscriptions to check mandate status, modify or cancel the mandate, trigger adhoc charges, and view payment history. For the full request and response schema, see Create UPI Subscription (Intent Flow).