Issue Add-on Card
Issues a new add-on (supplementary) card linked to an existing primary card account. Add-on cards share the same account and balance as the parent card.
Use Cases
- Corporate employee card with supplementary card for spouse
- Parent card with add-on for family member
- Replacement card with different embossing
Prerequisites
- Parent card must be
ACTIVE - Add-on card feature must be enabled for the hierarchy
- Must not exceed configured add-on card limit
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 <= lengthRequired. First name of add-on card holder
1 <= lengthRequired. Last name of add-on card holder
1 <= lengthRequired. Name to emboss on card (uppercase)
1 <= length"Physical" | "Virtual"Required. Kit number of the parent (primary) card
1 <= lengthRequired. Entity ID of the primary account
1 <= lengthKit number for Non-Perso add-on card
"Male" | "Female" | "Others"Promotional code
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→ usefeeDetails.LOAD_FEEorfeeDetails.REGISTRATION_FEEissuanceFee→ usefeeDetails.REGISTRATION_FEE.feeAmountissuanceTax→ usefeeDetails.REGISTRATION_FEE.taxAmount
Response Body
application/json
application/json
application/json
curl -X POST "https://sandbox-api.m2pprepaid.com/prepaid/middleware/v1/addon-card/issue-add-on-card" \ -H "X-TENANT-ID: ACME_CORP" \ -H "Content-Type: application/json" \ -d '{ "applicationNumber": "APP12345678", "firstName": "John", "middleName": "William", "lastName": "Doe", "nameOnCard": "JOHN W DOE", "mobileNumber": { "value": "9000000009", "countryCode": 91 }, "cardType": "Physical", "parentKit": "790000041", "entity": "767410504790000041070825", "nonPersoChildKit": "790000042", "gender": "Male", "promoCode": "SUMMER25" }'{
"result": {
"applicationNumber": "APP12345678",
"firstName": "John",
"lastName": "Doe",
"nameOnCard": "JOHN W DOE",
"cardType": "Physical",
"parentKit": "790000041",
"entity": "767410504790000041070825",
"nonPersoChildKit": "790000042",
"feeSummary": {
"feeWaiver": "ALLOWED",
"value": 0,
"fees": 0,
"tax": 0,
"total": 0,
"feeDetails": {
"Add on Card Fee": {
"feeType": "Add on Card Fee",
"feeAmount": 100,
"taxAmount": 18
}
}
}
},
"pagination": null
}{
"errors": [
{
"field": "applicationNumber",
"message": "must not be blank"
},
{
"field": "firstName",
"message": "must not be blank"
},
{
"field": "parentKit",
"message": "must not be blank"
}
]
}{
"type": "https://www.m2pfintech.com/problem/problem-with-message",
"title": "Add-on card feature not enabled for hierarchy",
"status": 409,
"detail": "Add-on card feature not enabled for hierarchy",
"message": "error.business",
"businessCode": "PP_CORP_178"
}Approve/Reject Forex Issuance POST
Approves or rejects a pending forex card issuance request. Works identically to the wallet issuance state transition endpoint.
Approve/Reject Issuance in Bulk POST
In a bulk corporate issuance, selectively rejects specific beneficiaries by their mobile numbers. All other beneficiaries in the application are automatically approved. ### Use Case - Bulk corporate issuance with 100 beneficiaries - Compliance team identifies 5 that should be rejected - Call this endpoint with those 5 mobile numbers - The other 95 are auto-approved
