Skip to content
v0.3

customer.update_profile

Edit the caller’s own name and phone (session-scoped). The e-mail is the login identity and is refused here. Order snapshots are never rewritten; a later checkout only fills fields that are still empty.

  • Scope: customer.self.write
  • System: no
  • Reachable from: POST /v1/customer/commands/customer.update_profile — the shopper’s SESSION face, with the customer session Bearer minted by customer.verify_otp (the tenant comes from the token). An operator’s tenant credential never carries customer.self.write; the data face /v1/commands/customer.update_profile takes the same session Bearer only alongside x-forge-tenant
  • Events: customer.updated
{
"additionalProperties": false,
"properties": {
"name": {
"maxLength": 120,
"type": "string"
},
"phone": {
"anyOf": [
{
"pattern": "^\\d{10,11}$",
"type": "string"
},
{
"const": "",
"type": "string"
},
{
"type": "null"
}
]
}
},
"type": "object"
}
{
"additionalProperties": false,
"properties": {
"customer_id": {
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"phone": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"customer_id",
"name",
"phone"
],
"type": "object"
}

validation_failed (400) · unauthorized (401) · forbidden (403) · conflict (409) · internal (500)