API-Referenz-Navigation
Customer Credential
KundeCustomer Credential groups 4 operations on the customer tier.
Customer authentication endpoint — called without a customer token, since this is how one is obtained.
/api/{version}/customer/account/register
Create a shopper account and email a confirmation link. 201 on success; 409 if it exists.
Request-Body
application/json, text/json, application/*+json · optional
RegisterRequestBody for POST customer/account/register.
emailstringnullablepasswordstringnullablecallback_url_templatestringnullable
Antworten
- 201CustomerRegisteredResponseCreated
- 400ApiErrorResponseBad Request
- 409ApiErrorResponseConflict
- 422ApiErrorResponseUnprocessable Content
curl -X POST \
'https://<your-shop-domain>/api/2026-04-01/customer/account/register' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"email": "string",
"password": "string",
"callback_url_template": "string"
}'{
"registered": true
}/api/{version}/customer/account/register/confirm
Confirm an email with the token from the registration link. 200 on success; 400 otherwise.
Request-Body
application/json, text/json, application/*+json · optional
ConfirmEmailRequestBody for POST customer/account/register/confirm.
emailstringnullabletokenstringnullable
Antworten
- 200CustomerEmailConfirmedResponseOK
- 400ApiErrorResponseBad Request
- 422ApiErrorResponseUnprocessable Content
curl -X POST \
'https://<your-shop-domain>/api/2026-04-01/customer/account/register/confirm' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"email": "string",
"token": "string"
}'{
"confirmed": true
}/api/{version}/customer/account/resetpassword/init
Start a password reset (email a reset link). Always 202 on a valid request — no enumeration oracle.
Request-Body
application/json, text/json, application/*+json · optional
ForgotPasswordRequestBody for POST customer/account/resetpassword/init.
emailstringnullablecallback_url_templatestringnullable
Antworten
- 202CustomerPasswordResetRequestedResponseAccepted
- 400ApiErrorResponseBad Request
- 422ApiErrorResponseUnprocessable Content
curl -X POST \
'https://<your-shop-domain>/api/2026-04-01/customer/account/resetpassword/init' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"email": "string",
"callback_url_template": "string"
}'{
"accepted": true
}/api/{version}/customer/account/resetpassword/finish
Finish a password reset with the emailed token. 200 on success; 400/422 otherwise.
Request-Body
application/json, text/json, application/*+json · optional
ResetPasswordRequestBody for POST customer/account/resetpassword/finish.
emailstringnullabletokenstringnullablepasswordstringnullable
Antworten
- 200CustomerPasswordResetResponseOK
- 400ApiErrorResponseBad Request
- 422ApiErrorResponseUnprocessable Content
curl -X POST \
'https://<your-shop-domain>/api/2026-04-01/customer/account/resetpassword/finish' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"email": "string",
"token": "string",
"password": "string"
}'{
"reset": true
}Schemas
ApiErrorResponse
The error envelope every non-2xx response from this API uses. Documentation shape: actions build it as an anonymous object, so this type exists to give the OpenAPI document a schema to point at.
errorsstringnullableHuman-readable description of what went wrong, e.g.
Not Found,Invalid page_info.codestringnullableMachine-readable error code. Only a few endpoints (checkout) emit one; omitted everywhere else.
ConfirmEmailRequest
Body for POST customer/account/register/confirm.
emailstringnullabletokenstringnullable
CustomerEmailConfirmedResponse
Envelope returned by POST customer/account/register/confirm with 200. An invalid,
expired or already-used token is a 400.
confirmedbooleanAlways
trueon a200.
CustomerPasswordResetRequestedResponse
Envelope returned by POST customer/account/resetpassword/init with 202 — accepted, not
completed. The 202 deliberately carries no information about whether the address belongs to an
account: it is returned for an unknown email as well, so the endpoint is not an enumeration oracle.
Non-2xx here means the request itself was unusable (missing email, reset not configured for the shop),
never "no such user".
acceptedbooleanAlways
true; means "the request was accepted", not "an email was sent".
CustomerPasswordResetResponse
Envelope returned by POST customer/account/resetpassword/finish with 200. The new
password is in effect immediately; previously issued refresh tokens are not revoked by this call.
resetbooleanAlways
trueon a200.
CustomerRegisteredResponse
Envelope returned by POST customer/account/register with 201. The account exists but is
not yet usable: a confirmation email has been sent, and — when the shop requires confirmation — token
issuance fails until register/confirm succeeds. An existing email is a 409, not a 201.
registeredbooleanAlways
true; a failed registration is a non-2xx with the{ errors }envelope.
ForgotPasswordRequest
Body for POST customer/account/resetpassword/init.
emailstringnullablecallback_url_templatestringnullable
RegisterRequest
Body for POST customer/account/register.
emailstringnullablepasswordstringnullablecallback_url_templatestringnullable
ResetPasswordRequest
Body for POST customer/account/resetpassword/finish.
emailstringnullabletokenstringnullablepasswordstringnullable
