POST ?action=update_customer
Changes the customer details on one line: the name and email it is held under, and/or the customer's own label for it ("Living Room"). Say whose line it is with customer_id or customer_email — a line that is not theirs is refused (403). A name or email change is synced across the lines and open orders they hold; completed orders keep the details they were paid under. The login's own sign-in address is not changed here — that is update_customer_account.
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
activation_id | integer | Required | Activation ID |
customer_id | integer | One of these two | Whose line it is — the signed-in customer |
customer_email | string | One of these two | Whose line it is — their current address. When the owner is named by customer_id, this may instead carry the line's new address |
new_email | string | Optional* | New email address for the line |
customer_name | string | Optional* | New full name |
portal_label | string | Optional* | The customer's own name for this line (max 100). Send "" to clear it |
* At least one of new_email, customer_name or portal_label must be provided.
Response
{
"success": true,
"data": {
"id": 321,
"customer_email": "[email protected]",
"customer_name": "Jane Doe",
"portal_label": "Living Room",
"updated_at": "2026-04-06 19:00:00"
},
"error": null
}