Elastic Path Account Management Authentication API
Commerce provides authentication tokens for an `Account` and an `Account Member`.
Commerce provides authentication tokens for an `Account` and an `Account Member`.
openapi: 3.1.0
info:
version: 25.1126.6886238
x-version-timestamp: 2025-11-26 19:10:23+00:00
title: Addresses Introduction Account Addresses Account Management Authentication API
description: 'The Addresses API allows you to organize account addresses. Addresses are a sub-resource of `account` resources, an account can have multiple addresses, such as home, work, and neighbour.
You can use an account address with either [client_credentials access token](/docs/api/authentication/create-an-access-token) or a combination of [implicit access token](/docs/api/authentication/create-an-access-token) and [Account Management authentication](/docs/api/accounts/post-v-2-account-members-tokens) token.
'
contact:
name: Elastic Path
url: https://www.elasticpath.com
email: support@elasticpath.com
license:
url: https://elasticpath.dev
name: MIT
servers:
- url: https://useast.api.elasticpath.com
description: US East
- url: https://euwest.api.elasticpath.com
description: EU West
security:
- BearerToken: []
tags:
- name: Account Management Authentication
description: Commerce provides authentication tokens for an `Account` and an `Account Member`.
externalDocs:
url: https://elasticpath.dev/docs/commerce-cloud/accounts/account-management-authentication/account-member-authentication-api-overview
paths:
/v2/account-members/tokens:
post:
tags:
- Account Management Authentication
summary: Generate an Account Management Authentication Token
description: 'Commerce provides authentication tokens for anyone using the Account Management APIs, including accounts and account members.
For each element in the list returned by the account member authentication API, a token value is returned. In order for a shopper to authenticate as the account, this value should be set as the `EP-Account-Management-Authentication-Token` header when calling Commerce. This header grants access to additional resources associated with the account, such as [carts](/docs/api/carts/account-cart-associations), [orders](/docs/api/carts/orders), [catalogs with associated rules](/docs/api/pxm/catalog/rules), and [addresses](/docs/api/addresses/addresses-introduction).
The set of permissions available to a shopper using an Account Management Authentication token is documented in [Permissions](/docs/authentication/tokens/permissions)
Commerce provides authentication tokens for an account and an account member using:
- OpenID Connect
- Username and password
- Self signup
- One-time password token
- Switch account token
'
operationId: post-v2-account-members-tokens
requestBody:
content:
application/json:
schema:
type: object
properties:
data:
type: object
oneOf:
- $ref: '#/components/schemas/OpenIDConnectRequest'
- $ref: '#/components/schemas/PasswordRequest'
- $ref: '#/components/schemas/PasswordlessRequest'
- $ref: '#/components/schemas/SelfSignupRequest'
- $ref: '#/components/schemas/SwitchingAccountRequest'
discriminator:
propertyName: authentication_mechanism
mapping:
oidc: '#/components/schemas/OpenIDConnectRequest'
password: '#/components/schemas/PasswordRequest'
passwordless: '#/components/schemas/PasswordlessRequest'
self_signup: '#/components/schemas/SelfSignupRequest'
account_management_authentication_token: '#/components/schemas/SwitchingAccountRequest'
required:
- data
examples:
OpenID Connect:
value:
data:
type: account_management_authentication_token
authentication_mechanism: oidc
oauth_authorization_code: c2490f06-6d8e-4927-99aa-4bf02b419e96
oauth_redirect_uri: https://example-store.com/oauth2/callback
oauth_code_verifier: 0E934PurR8ExVg6Pj7T4kQewxKzWSfSFG5d15FGfww8
Username and Password:
value:
data:
type: account_management_authentication_token
authentication_mechanism: password
password_profile_id: 161292d3-c105-490f-8798-0ec71cd5a272
username: john.doe
password: password
One-time Password Token:
value:
data:
type: account_management_authentication_token
authentication_mechanism: passwordless
password_profile_id: 161292d3-c105-490f-8798-0ec71cd5a272
username: john.doe
one_time_password_token: abc123
Self Signup:
value:
data:
type: account_management_authentication_token
authentication_mechanism: self_signup
password_profile_id: 161292d3-c105-490f-8798-0ec71cd5a272
username: john.doe@gmail.com
password: password
name: john
email: john.doe@gmail.com
Switch account tokens:
value:
data:
type: account_management_authentication_token
authentication_mechanism: account_management_authentication_token
responses:
'201':
description: Created
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/AccountManagementAuthenticationTokenResponse'
meta:
allOf:
- $ref: '#/components/schemas/MetaList'
- $ref: '#/components/schemas/MetaAccountMemberId'
links:
type: object
properties:
current:
description: Always the current page.
type: string
format: uri
example: https://useast.api.elasticpath.com/v2/account-members/tokens?page[offset]=0&page[limit]=25
first:
description: Always the first page.
type: string
format: uri
example: https://useast.api.elasticpath.com/v2/account-members/tokens?page[offset]=0&page[limit]=25
last:
description: Always `null` if there is only one page.
type: string
format: uri
example: https://useast.api.elasticpath.com/v2/account-members/tokens?page[offset]=0&page[limit]=25
next:
description: Always `null` if there is only one page.
type: string
example: null
prev:
description: Always `null` if the user is on the first page.
type: string
example: null
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'500':
$ref: '#/components/responses/InternalServerError'
components:
responses:
ForbiddenError:
description: Forbidden Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
forbidden-error:
value:
errors:
- title: Forbidden
status: '403'
detail: forbidden
NotFoundError:
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
not-found-error:
value:
errors:
- title: Not Found
status: '404'
detail: account not found
UnprocessableEntity:
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unprocessable-entity:
value:
errors:
- title: Unprocessable Entity
status: '422'
detail: store id mismatch
InternalServerError:
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
internal-server-error:
summary: Internal server error
value:
errors:
- title: Internal Server Error
status: '500'
detail: there was a problem processing your request
UnauthorizedError:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unauthorized-error:
value:
errors:
- title: Unauthorized
status: '401'
BadRequestError:
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
bad-request-error:
value:
errors:
- title: Bad Request
status: '400'
detail: 'Validation failed: field ''Name'' on the ''min'' tag.'
schemas:
SelfSignupRequest:
allOf:
- $ref: '#/components/schemas/AccountManagementAuthenticationToken'
- type: object
properties:
authentication_mechanism:
description: Species the authentication mechanism. You must use `self_signup`.
type: string
const: self_signup
password_profile_id:
description: The password profile ID. For more information, see [password profiles page](https://elasticpath.dev/docs/commerce-cloud/authentication/single-sign-on/password-profiles-api/overview).
type: string
format: uuid
example: c2490f06-6d8e-4927-99aa-4bf02b419e96
username:
description: The username.
type: string
example: username
password:
description: The password.
type: string
format: password
example: pa$$word
name:
description: The name.
type: string
example: Ron Swanson
given_name:
description: The given name for the user.
type:
- string
- 'null'
example: Ron
middle_name:
description: The middle name for the user.
type:
- string
- 'null'
example: Ulysses
family_name:
description: The family name for the user.
type:
- string
- 'null'
example: Swanson
email:
description: The email.
type: string
format: email
example: ron@swanson.com
required:
- type
- authentication_mechanism
- password_profile_id
- username
- password
- name
- email
Error:
type: object
required:
- status
- title
properties:
title:
type: string
description: A brief summary of the error.
examples:
- Bad Request
status:
type: string
format: string
description: The HTTP response code of the error.
examples:
- '400'
detail:
type: string
description: Optional additional detail about the error.
examples:
- The field 'name' is required
MetaListPage:
type: object
properties:
limit:
type: integer
description: The maximum number of records per page for this response. You can set this value up to 100.
example: 25
current:
type: integer
description: The current page.
example: 0
offset:
type: integer
description: The current offset by number of records, not pages. Offset is zero-based.
example: 0
total:
type: integer
description: The total page count.
example: 1
ErrorResponse:
type: object
required:
- errors
properties:
errors:
type: array
items:
$ref: '#/components/schemas/Error'
AccountManagementAuthenticationTokenResponse:
type: object
properties:
type:
description: Specifies the type of the object.
type: string
const: account_management_authentication_token
account_name:
description: The name of the account that this token grants access to.
type: string
example: acc-name-1
account_id:
description: The ID of the account that this token grants access to.
type: string
format: uuid
example: 908f7849-60da-4e4a-a3b1-51d4cbe3b953
token:
description: The JWT authentication token that the shopper uses as the `EP-Account-Management-Authentication-Token` header [in all other endpoints](https://elasticpath.dev/docs/commerce-cloud/authentication/tokens/account-management-authentication-token).
type: string
example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOiIyMDIxLTAzLTE2VDE5OjM2OjExLjA3MFoiLCJpYXQiOiIyMDIxLTAzLTE1VDE5OjM2OjExLjA3MFoiLCJzY29wZSI6IjFjNDVlNGVjLTI2ZTAtNDA0My04NmU0LWMxNWI5Y2Y5ODVhMyIsInN1YiI6IjFjNDVlNGVjLTI2ZTAtNDA0My04NmU0LWMxNWI5Y2Y5ODVhMiJ9.ytQ3UutTl_RJ8NiB1xN29Ta23p-FXsYOhcUM7MUQ4CM
expires:
description: The epoch time that this token expires at. The time is set to 24 hours after the token is generated.
type: string
format: date-time
example: '2021-03-16T19:36:11.070Z'
AccountManagementAuthenticationToken:
type: object
properties:
type:
description: Specifies the type of the object. You must use `account_management_authentication_token`.
type: string
const: account_management_authentication_token
SwitchingAccountRequest:
allOf:
- $ref: '#/components/schemas/AccountManagementAuthenticationToken'
- type: object
properties:
authentication_mechanism:
description: Species the authentication mechanism. You must use `account_management_authentication_token`.
type: string
const: account_management_authentication_token
required:
- type
- authentication_mechanism
MetaList:
type: object
properties:
page:
$ref: '#/components/schemas/MetaListPage'
results:
$ref: '#/components/schemas/MetaListResults'
MetaListResults:
type: object
properties:
total:
type: integer
description: The total number of results after applying filters, if any, or all results.
example: 1
OpenIDConnectRequest:
allOf:
- $ref: '#/components/schemas/AccountManagementAuthenticationToken'
- type: object
properties:
authentication_mechanism:
description: Species the authentication mechanism. You must use `oidc`.
type: string
const: oidc
oauth_authorization_code:
description: Specifies the code returned from the OpenID Connect Provider authentication.
type: string
example: c2490f06-6d8e-4927-99aa-4bf02b419e96
oauth_redirect_uri:
description: Specifies the URL of the front-end that handles the callback of the token.
type: string
format: uri
example: https://example-store.com/oauth2/callback
oauth_code_verifier:
description: Specifies the Proof Key for Code Exchange (PKCE) code verifier corresponding to the code challenge supplied to the authorization endpoint. For more information about code verifier and challenge, see Generating a [Code Verifier and Challenge](https://elasticpath.dev/docs/commerce-cloud/authentication/single-sign-on/get-single-sign-on-customer-token#generate-proof-key-for-code-exchange-pkce-parameters).
type: string
example: 0E934PurR8ExVg6Pj7T4kQewxKzWSfSFG5d15FGfww8
required:
- type
- authentication_mechanism
- oauth_authorization_code
- oauth_redirect_uri
- oauth_code_verifier
MetaAccountMemberId:
type: object
properties:
account_member_id:
type: string
format: uuid
description: The unique identifier for the Account Member that authenticated. This is useful if `account_member_self_management` is enabled in [Account Authentication Settings](/docs/api/accounts/get-v-2-settings-account-authentication), so that the user can update details for their account.
example: f5d08d48-bbc8-4f61-818f-a78583045f56
PasswordRequest:
allOf:
- $ref: '#/components/schemas/AccountManagementAuthenticationToken'
- type: object
properties:
authentication_mechanism:
description: Species the authentication mechanism. You must use `password`.
type: string
const: password
password_profile_id:
description: The password profile ID. For more information, see [password profiles page](https://elasticpath.dev/docs/commerce-cloud/authentication/single-sign-on/password-profiles-api/overview).
type: string
format: uuid
example: c2490f06-6d8e-4927-99aa-4bf02b419e96
username:
description: The username.
type: string
example: username
password:
description: The password.
type: string
format: password
example: pa$$word
required:
- type
- authentication_mechanism
- password_profile_id
- username
- password
PasswordlessRequest:
allOf:
- $ref: '#/components/schemas/AccountManagementAuthenticationToken'
- type: object
properties:
authentication_mechanism:
description: Species the authentication mechanism. You must use `passwordless`.
type: string
const: passwordless
password_profile_id:
description: The password profile ID. For more information, see [password profiles page](https://elasticpath.dev/docs/commerce-cloud/authentication/single-sign-on/password-profiles-api/overview).
type: string
format: uuid
example: c2490f06-6d8e-4927-99aa-4bf02b419e96
username:
description: The username.
type: string
example: jane.doe@gmail.com
one_time_password_token:
description: The one-time password token.
type: string
example: abd1g5
required:
- type
- authentication_mechanism
- password_profile_id
- username
- one_time_password_token
securitySchemes:
BearerToken:
type: http
scheme: bearer