Issue Wallet
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-transitionendpoint to approve/reject
Server
Use the corporate server URLs for this endpoint.
Authorization
bearerAuth tenantId JWT Bearer token from the Authentication API
In: header
Your unique tenant identifier assigned during onboarding
In: header
Header Parameters
Your unique tenant identifier
Request Body
application/json
Required. Unique application number
1 <= lengthSingle for one wallet, Bulk for multiple
"Single" | "Bulk"Required. List of beneficiaries to receive wallets
1 <= itemsThird-party purchaser when different from beneficiary
Issuer hierarchy details
Response Body
application/json
application/json
application/json
curl -X POST "https://sandbox-api.m2pprepaid.com/prepaid/middleware/v1/wallet-issuances/" \ -H "X-TENANT-ID: ACME_CORP" \ -H "Content-Type: application/json" \ -d '{ "applicationNumber": "WAPP20240115001", "issuanceType": "Single", "customers": [ { "firstName": "Michael", "lastName": "Jordan", "email": "michael@example.com", "mobile": { "value": "9876543210", "countryCode": 91 }, "dob": "15/08/1990", "gender": "Male", "pan": "ABCDE1234F", "product": { "productId": "hJZ6fk4fTu", "name": "WALLETFKCL", "productType": "Wallet" }, "kyc": "FULL_KYC", "customerKYC": { "kycType": "Full KYC", "referenceId": "1089060" }, "address": { "address1": "123 Main Street", "city": "Chennai", "state": "Tamil Nadu", "pin": "600001", "country": "India" } } ], "issuer": { "hierarchyId": "CORP123456", "issuerTenant": "qasharedpp" }, "purchaser": { "firstName": "Corporate", "lastName": "Admin", "mobile": { "value": "9888888888", "countryCode": 91 } } }'{
"result": {},
"pagination": {
"list": true,
"pageSize": 0,
"pageNo": 0,
"totalPages": 0,
"totalElements": 0
}
}{
"type": "https://www.m2pfintech.com/problem/problem-with-message",
"title": "Bad Request",
"status": 400,
"detail": "Unable to convert http message",
"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 Wallet/Prepaid Card POST
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.
Fetch All Issuances GET
Returns a paginated list of all corporate issuances for the calling tenant. Useful for building an issuance dashboard or history screen in the partner portal. ### Server Use the **corporate** server URLs for this endpoint.
