Update Wallet Status
Updates the status of a specific wallet associated with a cardholder. This is used for controlling what transactions are allowed on the wallet. Common scenarios include:
Use Cases
- Temporary Freeze: Lock a wallet when suspicious activity is detected. The cardholder can't transact but you can unlock it later without losing any data.
- Permanent Block: Block a wallet for compliance violations or confirmed fraud. Requires support intervention to unblock.
- Fraud Prevention: Mark a wallet as FRAUD to suspend all operations pending investigation.
- Customer Self-Service: Allow cardholders to block their own wallet via your app (CUSTOMER_BLOCKED status).
- Credit Freeze: Prevent new loads while allowing the cardholder to spend existing balance.
- Debit Freeze: Allow loads/credits but prevent spending (e.g., during dispute investigation).
- Refund Only: After card closure, allow only refund credits to process.
- Reactivation: Change status back to ACTIVE to restore full transaction capabilities.
Status Transition Rules
Not all status transitions are allowed. Key constraints:
CLOSED→ Cannot transition to any other status (permanent)EXPIRED→ Cannot transition to any other status (permanent)FRAUD→ Can only be changed by authorized support rolesBLOCKED→ Can only be unblocked by authorized support rolesLOCKED→ Can be changed toACTIVE(unlock) by the partnerACTIVE→ Can transition toLOCKED,BLOCKED,CREDIT_FREEZE,DEBIT_FREEZE, etc.
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 assigned during partner onboarding
Request Body
application/json
Wallet identification and target status
Required. Unique identifier for the wallet/account. Each wallet within a card has a distinct account ID. For multi-currency cards, each currency wallet has its own account ID. Obtained from the issuance response or Fetch All Cards API.
1 <= lengthRequired. Unique entity identifier for the cardholder. Used together with
accountId to verify ownership of the wallet.
1 <= lengthRequired. Target status for the wallet. See the Wallet Status Lifecycle table in the API overview for allowed transitions.
"ACTIVE" | "LOCKED" | "BLOCKED" | "FRAUD" | "INACTIVE" | "CUSTOMER_BLOCKED" | "CREDIT_FREEZE" | "DEBIT_FREEZE" | "REFUND_ONLY" | "CLOSED" | "EXPIRED"Response Body
application/json
application/json
application/json
curl -X POST "https://sandbox-api.m2pprepaid.com/prepaid/customer/v1/wallets/update/status" \ -H "X-TENANT-ID: ACME_CORP" \ -H "Content-Type: application/json" \ -d '{ "accountId": "17556437212850072", "entityId": "798782647420001622070825", "status": "LOCKED" }'{
"result": {
"accountId": "17556437212850072",
"entityId": "798782647420001622070825",
"status": "LOCKED",
"message": "Wallet status updated successfully"
},
"pagination": null
}{
"type": "https://www.m2pfintech.com/problem/problem-with-message",
"title": "Bad Request",
"status": 400,
"detail": "accountId: must not be empty",
"message": "error.http.400"
}{
"type": "https://www.m2pfintech.com/problem/problem-with-message",
"title": "Customer does not exist",
"status": 409,
"detail": "Customer does not exist for id: 798782647420001622070825",
"message": "error.business",
"businessCode": "PPCUST_002"
}