Create Account Action Request (Maker)
Creates an account action request as the maker step of a maker-checker workflow.
The request is created in a PENDING state and stays pending until a separate
checker approves or rejects it via the account state-transition API.
Action Types
actionType | Description |
|---|---|
CLOSURE | Close the account. Optionally pull back the residual balance to a bank account (bankDetails + autoPullback). |
STATUS_UPDATE | Change the account status. |
FREEZE | Freeze the account (block debits/credits per product config). |
UNFREEZE | Reverse a freeze and restore the account. |
LIMIT_UPDATE | Update account-level limits. |
Notes
customerEntityIdandaccountEntityIdare mandatory.- For
CLOSUREwith balance pull-back, supplybankDetailsand setautoPullback: true. updateReasonis free text, capped at 512 characters.
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. Entity ID of the customer who owns the account.
1 <= lengthRequired. Entity ID of the account the action applies to.
1 <= lengthType of account action to perform.
"CLOSURE" | "STATUS_UPDATE" | "FREEZE" | "UNFREEZE" | "LIMIT_UPDATE"Free-text reason for the action.
length <= 512Beneficiary bank account details used for closure balance pull-back.
When true (for CLOSURE), the residual balance is auto pulled back to bankDetails.
falseChannel that originated the request.
Identifier of the user/operator that initiated the request.
Response Body
application/json
application/json
application/json
curl -X POST "https://sandbox-api.m2pprepaid.com/prepaid/customer/v1/accounts/update" \ -H "X-TENANT-ID: ACME_CORP" \ -H "Content-Type: application/json" \ -d '{ "customerEntityId": "750244137320000234050825", "accountEntityId": "750244137320000234050825-ACC01", "actionType": "CLOSURE", "updateReason": "Customer requested account closure", "autoPullback": true, "bankDetails": { "accountHolderName": "John Doe", "accountNumber": "1234567890123", "ifsc": "HDFC0000123", "bankName": "HDFC Bank", "accountType": "SAVINGS" }, "sourceChannel": "MOBILE_APP", "sourceUser": "john.doe" }'{
"result": {
"id": "6612f0a1b2c3d4e5f6a7b8c9",
"customerEntityId": "750244137320000234050825",
"accountEntityId": "750244137320000234050825-ACC01",
"actionType": "CLOSURE",
"status": "PENDING",
"message": "Account action request created successfully"
},
"pagination": null
}{
"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": "Customer does not exists for id",
"status": 409,
"detail": "Customer does not exists for id :750244137320000234050643",
"message": "error.business",
"businessCode": "PPCUST_002"
}Fetch Approved Purpose of Travel List GET
Retrieves the last approved master list of travel purposes. These purpose codes are required when creating forex issuance or load requests. ### Common Purpose Codes | Code | Purpose | |------|---------| | `S0301` | Business Travel | | `S0304` | Medical Treatment | | `S0305` | Studies Abroad | | `PERSONAL_VISIT` | Personal Visit / Tourism | | `S0301_CONF` | Attending Conference | ### Server This endpoint is served by **pp-configs**, not pp-corporate. Use the configs base URL.
De-Duplicate Check (PAN & Mobile) POST
Checks if a customer with the given PAN and/or mobile number already exists. This is a **pre-issuance validation** step to prevent duplicate forex card issuance. ### Response Interpretation | Mobile | PAN | Meaning | |--------|-----|---------| | `null` | `null` | ✅ No duplicate — safe to proceed | | Masked mobile | `null` | ⚠️ Mobile match found, no PAN match | | `null` | Masked PAN | ⚠️ PAN match found, no mobile match | | Masked mobile | Masked PAN | ⚠️ Both match — same customer exists | ### Masked Values Returned PAN/mobile values are partially masked for privacy: - Mobile: `709****999` - PAN: `BMX****23B`
