Update Customer Profile
Updates customer profile details including personal information, address, communication preferences, and identity documents.
Updatable Fields
- Personal: firstName, lastName, gender, DOB, email
- Address: permanentAddress, communicationAddress
- Identity: PAN, nationalIdentity documents
- Banking: cbsAccountNumber, CIF, customerId
- Risk: riskRating, customerOccupation, politicallyExposed
- Custom: customerAdditionalDetails (key-value metadata)
Important Notes
entityIdis required and identifies which customer to update- Only provided fields are updated — omitted fields remain unchanged
- Status changes should use the dedicated Update Status 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. Customer entity ID
1 <= lengthAccount status (use Update Status endpoint for status changes)
"ACTIVE" | "LOCKED" | "BLOCKED" | "FRAUD" | "INACTIVE" | "CUSTOMER_BLOCKED" | "CREDIT_FREEZE" | "DEBIT_FREEZE" | "REFUND_ONLY" | "CLOSED" | "EXPIRED"First name
Last name
"Male" | "Female" | "Others"Date of birth (format: dd/MM/yyyy)
Email address
PAN number
CBS account number
CIF number
Customer ID
Custom key-value metadata
Response Body
application/json
application/json
application/json
curl -X POST "https://sandbox-api.m2pprepaid.com/prepaid/customer/v1/customers/update" \ -H "X-TENANT-ID: ACME_CORP" \ -H "Content-Type: application/json" \ -d '{ "entityId": "615928984620006085281025", "firstName": "Tim", "lastName": "David", "gender": "Male", "dob": "10/10/1999", "pan": "AJXPC9886A", "cbsAccountNumber": "87001810807", "cif": "87001810807", "customerId": "87001810807", "permanentAddress": { "address1": "123 Main Street", "address2": "Apt 4B", "pin": "600100", "city": "Chennai", "state": "Tamil Nadu", "country": "India" }, "communication": { "mobile": { "value": "9876543210", "countryCode": 91 }, "email": "tim.david@example.com" } }'{
"result": {
"entityId": "615928984620006085281025",
"firstName": "Tim",
"lastName": "David",
"dob": "10/10/1999",
"gender": "Male",
"communication": {
"mobile": {
"value": "9876543210",
"countryCode": 91
},
"email": "tim.david@example.com"
}
},
"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",
"message": "error.business",
"businessCode": "PPCUST_002"
}Update Customer Account Status POST
Changes the customer's account status. Only valid status transitions are allowed. ### Valid Statuses | Status | Description | |--------|-------------| | `ACTIVE` | Account is fully operational | | `LOCKED` | Temporarily locked (can unlock) | | `BLOCKED` | Blocked by admin (terminal for some transitions) | | `FRAUD` | Flagged for fraud | | `INACTIVE` | Account inactive | | `CUSTOMER_BLOCKED` | Blocked at customer request | | `CREDIT_FREEZE` | Credits blocked, debits allowed | | `DEBIT_FREEZE` | Debits blocked, credits allowed | | `REFUND_ONLY` | Only refund transactions allowed | | `CLOSED` | Account permanently closed | | `EXPIRED` | Account expired | ### Invalid Transitions Attempting an invalid transition (e.g., CREDIT_FREEZE → CREDIT_FREEZE) returns error code `PPCUST_032`.
Update Nominee Details POST
Adds or updates the nominee details for a customer account. Nominees are individuals designated to receive account benefits in case of the account holder's demise. ### Nominee Details - Name, relationship, DOB, age - Address and mobile number - Percentage share (must total 100% across all nominees) - Guardian details (required if nominee is a minor)
