Validate Pre-Issuance
Pre-validates whether a wallet issuance request is within configured limits (monthly and yearly) for both purchaser and beneficiary.
When to Use
Call this before creating the wallet issuance to check eligibility and provide real-time feedback to users about limit status.
Checks Performed
- Product-level issuance limits (monthly/yearly)
- Issuer-level issuance limits
- Purchaser-level limits (how many wallets can this purchaser buy)
- Beneficiary-level limits (how many wallets can this person receive)
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 <= length"Single" | "Bulk"true for new customers, false for existing
Customer details for card issuance
Required. List of card beneficiaries
1 <= itemsIssuance 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→ usefeeDetails.LOAD_FEEorfeeDetails.REGISTRATION_FEEissuanceFee→ usefeeDetails.REGISTRATION_FEE.feeAmountissuanceTax→ usefeeDetails.REGISTRATION_FEE.taxAmount
Issuer hierarchy details
Response Body
application/json
application/json
curl -X POST "https://sandbox-api.m2pprepaid.com/prepaid/middleware/v1/wallet-issuances/validate-wallet-issuance-limit" \ -H "X-TENANT-ID: ACME_CORP" \ -H "Content-Type: application/json" \ -d '{ "applicationNumber": "string", "beneficiaries": [ { "mobile": { "value": "9876543210" }, "product": { "productId": "s8RpmmrN9J" } } ], "issuer": { "hierarchyId": "CORP123456" } }'{
"result": {},
"pagination": {
"list": true,
"pageSize": 0,
"pageNo": 0,
"totalPages": 0,
"totalElements": 0
}
}{
"type": "https://www.m2pfintech.com/problem/problem-with-message",
"title": "Customer has exceeded the maximum limit for wallet issuance",
"status": 409,
"detail": "Customer has exceeded the maximum limit for wallet issuance",
"message": "error.business",
"businessCode": "PP_CORP_082"
}Check Card Application Status POST
Checks the overall status of a card issuance application. While the Card Delivery Tracking API focuses on physical delivery, this API provides the broader application status including KYC verification, card printing, and fulfillment stages. ### Application Statuses | Status | Description | |--------|-------------| | `INITIATED` | Application received and being processed | | `KYC_PENDING` | Waiting for KYC verification | | `KYC_APPROVED` | KYC verification completed successfully | | `CARD_PRINTING` | Physical card is being printed | | `READY_FOR_DISPATCH` | Card printed and ready to be shipped | | `DISPATCHED` | Card has been handed over to courier/branch | | `DELIVERED` | Card successfully delivered | | `ACTIVATED` | Card has been activated by the cardholder | | `REJECTED` | Application was rejected | | `FAILED` | Processing failed — contact support |
Approve/Reject Wallet Issuance POST
Approves or rejects a pending wallet issuance request as part of the maker-checker compliance workflow. ### Transitions | From Status | To Status | Description | |-------------|-----------|-------------| | `CREATED` | `APPROVED` | Checker approves the request | | `CREATED` | `REJECTED` | Checker rejects the request | | `PENDING_APPROVAL` | `APPROVED` | Checker approves | | `PENDING_APPROVAL` | `REJECTED` | Checker rejects | ### Invalid Transitions Attempting an invalid transition (e.g., approving an already rejected request) returns error code `PP_CORP_187`.
