Create Mandate
Creates a new UPI AutoPay mandate for recurring payments. A mandate authorizes periodic debits from the payers account based on defined rules (amount, frequency, validity). Supports EXACT (fixed amount), MAX (up to maximum) amount rules. Mandate types include RECURRING (periodic) and ONETIME (single future-dated payment). The payer must authenticate with UPI PIN while creating the mandate. The mandate is registered with NPCI upon successful creation.
Request Body
application/json
Device and SIM information required for UPI API authentication and tracking
Payer or payee details for a transaction
Payer or payee details for a transaction
Mandate amount as string with 2 decimal places
Amount rule - EXACT requires exact amount each time, MAX allows up to the specified amount
"EXACT" | "MAX"How often the mandate recurs
"DAILY" | "WEEKLY" | "FORTNIGHTLY" | "MONTHLY" | "BIMONTHLY" | "QUARTERLY" | "HALFYEARLY" | "YEARLY" | "ASPRESENTED"Recurrence value (e.g., 1 for every month)
Mandate start date (YYYY-MM-DD)
Mandate end date (YYYY-MM-DD)
Type of mandate
"RECURRING" | "ONETIME"Mandate description or purpose
Encrypted UPI PIN block for payer authentication
Unique Mandate Number for idempotency. Format - UMN{timestamp}{random}, max 35 characters.
length <= 35Response Body
application/json
curl -X POST "https://sandbox-upi-api.m2pfintech.com/upi/v1/wrapper/transaction/mandate/createmandate" \ -H "Content-Type: application/json" \ -d '{ "deviceInfo": { "deviceId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "simId": "8991101200003204510", "deviceType": "MOB", "os": "Android", "telecom": "Airtel", "geoCode": "13.0827,80.2707", "appId": "v2.0", "ipAddress": "192.168.1.50", "location": "Mumbai", "mobile": "919876501234" }, "channelCode": "HDFC0001234", "seqNo": "700", "payer": { "vpa": "amit.patel@indie", "accountId": "acc-uuid-001" }, "payee": { "vpa": "subscription@merchant", "name": "Streaming Service" }, "amount": "499.00", "amountRule": "EXACT", "recurrencePattern": "MONTHLY", "recurrenceValue": "1", "validityStart": "2026-04-01", "validityEnd": "2027-03-31", "mandateType": "RECURRING", "remarks": "Monthly subscription", "credBlock": "encrypted-upi-pin-block", "umn": "UMN20260301ABCD1234" }'{
"status": "SUCCESS",
"exception": null,
"seqNo": "700",
"callbackRef": "mandate-create-uuid-123",
"message": null,
"result": {
"umn": "UMN20260301ABCD1234",
"mandateStatus": "CREATED",
"txnId": "MANDATE-TXN-UUID-001"
}
}Validate International QR POST
Validates an international QR code for cross-border UPI payments. Parses the QR code to extract merchant details, currency, and conversion rates. International UPI must be enabled for the tenant and the users profile. Supports G20 and other international payment corridors.
Fetch Mandates POST
Fetches all mandates for the user. Returns a list of mandates with their current status, details, and associated parties. Supports pagination via offset and pageNo query parameters. Can filter by mandate status if needed.
