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-IDandX-Client-Secret, andX-API-Version: 3.0.0on 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
POSTandGETrequests from your backend
PSP callers additionally send
X-Merchant-ID naming the sub-merchant the subscription belongs to.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 astanding_instruction block added: it says how much to bill, how often, and between which dates.
cURL
Response
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.
Step 2: Display the QR code
The response includes a base64-encoded QR code you can render directly: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 theintent_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.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 thePENDING → ACTIVE 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.