Skip to content

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.