m2pfintech
API LibraryIssuance

Issue Wallet/Prepaid Card

Creates a new card/wallet issuance for GPR or Wallet product types. This is the primary issuance endpoint for individual customer onboarding.

Flow

  1. Submit issuance request with customer details + product info
  2. System validates KYC, hierarchy, and product eligibility
  3. If auto-approval is configured → card is created immediately
  4. If maker-checker is enabled → request goes to PENDING_APPROVAL
  5. On success → customer profile + card/wallet are created

GPR Issuance

  • Requires: applicationNumber, customer details, product, issuer
  • Card types: Physical (Perso/Non-Perso) or Virtual
  • Initial load amount optional

Wallet Issuance

  • Requires: applicationNumber, customer details (with entityId for existing), product, issuer
  • No physical card — wallet-only account
  • Purchaser details supported (corporate buying for employee)

De-dupe Handling

If a customer with the same mobile/PAN already has an account for this product, the system returns a 409 with de-dupe error.

Server

Use the middleware server URLs for this endpoint.

POST
/v1/issuances/

Authorization

bearerAuth tenantId
AuthorizationBearer <token>

JWT Bearer token from the Authentication API

In: header

X-TENANT-ID<token>

Your unique tenant identifier assigned during onboarding

In: header

Header Parameters

X-TENANT-ID*string

Your unique tenant identifier

Request Body

application/json

applicationNumber*string

Required. Unique application number

Length1 <= length
issuanceType?string
Value in"Single" | "Bulk"
ntbApplication?boolean

true for new customers, false for existing

customer?

Customer details for card issuance

beneficiaries*

Required. List of card beneficiaries

Items1 <= items
summary?

Issuance fee and tax breakdown. All values must be obtained from the issuance fee summary API and echoed back — do not compute these fields independently.

Deprecated Fields (do not use for new integrations)

  • fees → use feeDetails.LOAD_FEE or feeDetails.REGISTRATION_FEE
  • issuanceFee → use feeDetails.REGISTRATION_FEE.feeAmount
  • issuanceTax → use feeDetails.REGISTRATION_FEE.taxAmount
issuer*

Issuer hierarchy details

loadDescription?object
mobile?
otp?string

Response Body

application/json

application/json

application/json

curl -X POST "https://sandbox-api.m2pprepaid.com/prepaid/middleware/v1/issuances/" \  -H "X-TENANT-ID: ACME_CORP" \  -H "Content-Type: application/json" \  -d '{    "applicationNumber": "508242014",    "issuanceDetails": {      "product": {        "name": "TATAPROD",        "productId": "s8RpmmrN9J",        "productType": "GPR"      },      "embosseType": "Perso",      "cardType": "Virtual",      "amount": 0,      "customer": {        "mobile": {          "value": "7931002534",          "countryCode": 91        },        "pan": "SDAZS2534Q",        "firstName": "Indu",        "lastName": "Priya",        "dob": "16/01/1993",        "gender": "Female",        "email": "ip@m2pfintech.com",        "customerId": "7904799901",        "customerType": "ETB",        "address": {          "address1": "4/68F",          "address2": "MAIN ROAD",          "city": "Chennai",          "state": "Tamilnadu",          "pin": "600032",          "country": "INDIA"        },        "kyc": {          "kycType": "Full KYC",          "referenceId": "50082534"        }      }    },    "issuer": {      "hierarchyId": "qappregsepujc7ovbkpa",      "issuerTenant": "qappregsep",      "hierarchyLevel": "qappregsepujc7ovbkpa"    }  }'
{
  "result": {
    "issuance": {
      "currentStatus": "APPROVED",
      "applicationNumber": "508242014",
      "issuanceType": "Single",
      "customer": {
        "firstName": "Indu",
        "lastName": "Priya",
        "dob": "16/01/1993",
        "gender": "Female",
        "email": "ip@m2pfintech.com",
        "mobile": {
          "value": "7931002534",
          "countryCode": 91
        },
        "pan": "SDAZS2534Q",
        "customerId": "7904799901",
        "customerType": "ETB"
      },
      "beneficiaries": [
        {
          "product": {
            "productId": "s8RpmmrN9J",
            "name": "TATAPROD",
            "productType": "GPR"
          },
          "embosseType": "Perso",
          "firstName": "Indu",
          "lastName": "Priya",
          "cardType": "Virtual",
          "kit": "660000025",
          "cardNumber": "736544XXXXXX0431",
          "expDate": "2030-05-31"
        }
      ],
      "summary": {
        "feeWaiver": "NOTALLOWED",
        "value": 0,
        "fees": 0,
        "tax": 0,
        "total": 0
      },
      "issuer": {
        "hierarchyId": "qappregsepujc7ovbkpa",
        "tenant": "qappregsepujc7ovbkpa",
        "issuerTenant": "qappregsep",
        "typeOfSOR": "M2P",
        "typeOfFRM": "M2P"
      }
    }
  },
  "pagination": null
}

{
  "type": "https://www.m2pfintech.com/problem/problem-with-message",
  "title": "Bad Request",
  "status": 400,
  "detail": "Application number is required",
  "message": "error.http.400"
}

{
  "type": "https://www.m2pfintech.com/problem/problem-with-message",
  "title": "De-Dupe Check Failed as MOBILE Already Exists",
  "status": 409,
  "detail": "De-Dupe Check Failed as MOBILE Already Exists",
  "message": "error.business",
  "businessCode": "PP_CORP_131"
}

Issue Forex Card POST

Creates a new forex card issuance with multi-currency wallet allocations, customer details, travel information, and supporting documents. ### Key Features - Multi-currency wallets (USD, EUR, GBP, SGD, etc.) - Automatic TCS calculation based on LRS limits - Support for primary + backup cards - Comprehensive fee breakdown (issuance fee, forex margin, GST, TCS) - Document upload (passport, visa, air ticket, A2 form, purpose proof) ### Required Fields - `applicationNumber`: Unique per issuance - `customer`: Full customer profile with travel details - `product`: Valid forex product - `plasticCode`: Card design/BIN configuration - `walletAmount`: Currency allocation with conversion rates - `issuer`: Hierarchy details ### Issuance Modes | Mode | Description | |------|-------------| | `Online` | Self-service digital channel | | `Branch` | Branch-initiated with teller ID | | `Partner API` | Partner integration | ### Documents (Query Parameters) Upload supporting documents as binary files via query parameters: - `passport`, `visa`, `airTicket`, `applicationForm` - `purposeProof`, `educationalLoanLetter`, `a2Form` - `feeWaiverApproval`, `relationshipProof`, `discountProof` ### Server Use the **corporate** server URLs for this endpoint.

Issue Wallet POST

Creates a wallet issuance request for corporate beneficiaries. Supports single and bulk issuance scenarios. ### Use Cases - Corporate creating wallets for employees (meal cards, expense wallets) - Bulk wallet creation for campaign distribution - Gift wallets for events/promotions ### Maker-Checker Flow - Request goes through approval workflow - Use `state-transition` endpoint to approve/reject ### Server Use the **corporate** server URLs for this endpoint.