CustomerResetPassword¶
POST /customer/auth/reset-password
Public endpoint; Authorization is not required. Completes CustomerForgotPassword.
Request¶
{"token":"<64-character recovery token>","password":"new-password"}
token is required and exactly 64 characters. password is required, 6–128 characters
under the existing validator; the manager also enforces a 6–128-byte password.
Brand resolution follows the forgot-password endpoint: server-provided __hostname,
or explicit brand when hostname is absent. Do not submit request_id as the token.
Response¶
HTTP 200: {"success":true}.
| HTTP | Error | Meaning |
|---|---|---|
| 400 | INVALID_DATA | Invalid token/password input |
| 400 | CUSTOMER_PASSWORD_RESET_INVALID_OR_EXPIRED | Invalid, used, expired or replaced token; unavailable/disabled brand or customer; changed identity/password; reset failed |
A successful reset consumes the token. Concurrent submissions cannot successfully reuse it. A change to the customer's email, phone, brand or password invalidates the previous recovery request. Password persistence uses the existing asynchronous CustomerManager save queue; success does not mean a new synchronous database commit.
Reset does not disable OTP, change trading-account passwords or automatically sign the customer in. Previously issued sessions/JWT are not revoked in this stage. After reset, use AuthCustomer; normal OTP requirements still apply.