m2pfintech
API LibraryMandates

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.

POST
/upi/v1/wrapper/transaction/mandate/createmandate

Request Body

application/json

deviceInfo*

Device and SIM information required for UPI API authentication and tracking

channelCode*string
seqNo*string
payer*

Payer or payee details for a transaction

payee*

Payer or payee details for a transaction

amount*string

Mandate amount as string with 2 decimal places

amountRule*string

Amount rule - EXACT requires exact amount each time, MAX allows up to the specified amount

Value in"EXACT" | "MAX"
recurrencePattern*string

How often the mandate recurs

Value in"DAILY" | "WEEKLY" | "FORTNIGHTLY" | "MONTHLY" | "BIMONTHLY" | "QUARTERLY" | "HALFYEARLY" | "YEARLY" | "ASPRESENTED"
recurrenceValue?string

Recurrence value (e.g., 1 for every month)

validityStart*string

Mandate start date (YYYY-MM-DD)

validityEnd*string

Mandate end date (YYYY-MM-DD)

mandateType*string

Type of mandate

Value in"RECURRING" | "ONETIME"
remarks?string

Mandate description or purpose

credBlock*string

Encrypted UPI PIN block for payer authentication

umn*string

Unique Mandate Number for idempotency. Format - UMN{timestamp}{random}, max 35 characters.

Lengthlength <= 35

Response 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"
  }
}