A Customer is a person purchasing Products. Carts, Orders, Quotes, Reviews, and Payments can also be associated to a Customer.
10 000 000
Customers can be created per Project. A Customer can be assigned to a maximum of 500
Customer Groups. Learn more about these limits.Representations
Representations are JSON objects submitted or received as payload to API requests or responses.
Customer
stores
is not empty, the Customer is specific to those Stores.id String | Unique identifier of the Customer. |
version Int | Current version of the Customer. |
key String | User-defined unique identifier of the Customer. MinLength:2 MaxLength: 256 Pattern: ^[A-Za-z0-9_-]+$ |
customerNumber String | User-defined unique identifier of the Customer. Can be used to refer to a Customer in a human-readable way (in emails, invoices, and other correspondence). |
externalId String | Optional identifier for use in external systems like customer relationship management (CRM) or enterprise resource planning (ERP). |
email String | Email address of the Customer that is unique for an entire Project or to a Store the Customer is assigned to.
It is the mandatory unique identifier of a Customer. |
password String | Present only when authenticationMode is set to Password . |
firstName String | Given name (first name) of the Customer. |
lastName String | Family name (last name) of the Customer. |
middleName String | Middle name of the Customer. |
title String | Title of the Customer, for example, 'Dr.'. |
dateOfBirth Date | Date of birth of the Customer. |
companyName String | Company name of the Customer. |
vatId String | Individual VAT ID of the Customer. |
addresses Array of Address | Addresses used by the Customer. |
defaultShippingAddressId String | ID of the address in addresses used as the default shipping address. |
shippingAddressIds Array of String | IDs of addresses in addresses used as shipping addresses. |
defaultBillingAddressId String | ID of the address in addresses used as the default billing address. |
billingAddressIds Array of String | IDs of addresses in addresses used as billing addresses. |
isEmailVerified Boolean | Indicates whether the email address of the Customer is verified. |
customerGroup | CustomerGroup to which the Customer belongs. |
customerGroupAssignments Array of CustomerGroupAssignment | Customer Groups that the Customer belongs to. Used for Line Item price selection. |
locale | Preferred language of the Customer. |
salutation String | Salutation of the Customer, for example, 'Mr.' or 'Mrs.'. |
stores Array of StoreKeyReference | Stores to which the Customer is assigned to.
|
authenticationMode | Indicates whether the Default: password is required for the Customer.Password |
custom | Custom Fields for the Customer. |
createdAt | Date and time (UTC) the Customer was initially created. |
createdBy BETA | IDs and references that created the Customer. |
lastModifiedAt | Date and time (UTC) the Customer was last updated. |
lastModifiedBy BETA | IDs and references that last modified the Customer. |
CustomerDraft
key String | User-defined unique identifier for the Customer.
The
key field is preferred over customerNumber as it is mutable and provides more flexibility.This field is optional for backwards compatibility reasons, but we strongly recommend setting it. Keys are mandatory for importing Customers with the Import API. MinLength: 2 MaxLength: 256 Pattern: ^[A-Za-z0-9_-]+$ |
customerNumber String | User-defined unique identifier for a Customer. Once set, it cannot be changed. Can be used to refer to a Customer in a human-readable way (in emails, invoices, and other correspondence). |
externalId String | Optional identifier for use in external systems like customer relationship management (CRM) or enterprise resource planning (ERP). |
email String | Email address of the Customer that must be unique for an entire Project or to a Store the Customer is assigned to.
It is the mandatory unique identifier of a Customer. |
password String | Required when authenticationMode is set to Password .
Provide the Customer's password in plain text. The API stores passwords in an encrypted format. |
firstName String | Given name (first name) of the Customer. |
lastName String | Family name (last name) of the Customer. |
middleName String | Middle name of the Customer. |
title String | Title of the Customer, for example, 'Dr.'. |
anonymousCart | Assigns the Customer to the specified Cart. |
anonymousId String | If anonymousCart is provided, this value must match the anonymousId of the anonymous Cart; otherwise, an InvalidOperation error is returned. |
dateOfBirth Date | Date of birth of the Customer. |
companyName String | Company name of the Customer. When representing a company as a Customer, Business Units provide extended functionality. |
vatId String | Individual VAT ID of the Customer. |
addresses Array of BaseAddress | Addresses of the Customer. |
defaultShippingAddress Int | Index of the address in the addresses array to use as the default shipping address.
The defaultShippingAddressId of the Customer will be set to the id of that address. |
shippingAddresses Array of Integer | Indices of the shipping addresses in the addresses array.
The shippingAddressIds of the Customer will be set to the IDs of these addresses. |
defaultBillingAddress Int | Index of the address in the addresses array to use as the default billing address.
The defaultBillingAddressId of the Customer will be set to the id of that address. |
billingAddresses Array of Integer | Indices of the billing addresses in the addresses array.
The billingAddressIds of the Customer will be set to the IDs of these addresses. |
isEmailVerified Boolean | Set to Default: true if the email address of the Customer has been verified already.
The intended use is to leave this field unset upon sign-up of the Customer and initiate the email verification afterwards.false |
customerGroup | Sets the CustomerGroup for the Customer.
For new projects, use customerGroupAssignments instead. It supports assigning Customers to multiple Customer Groups and provides greater flexibility in complex pricing scenarios. |
customerGroupAssignments Array of CustomerGroupAssignmentDraft | Customer Groups to assign the Customer to. Used for Line Item price selection. |
locale | Preferred language of the Customer.
Must be one of the languages supported by the Project. |
salutation String | Salutation of the Customer, for example, 'Mr.' or 'Mrs.'. |
stores Array of StoreResourceIdentifier | Sets the Stores for the Customer.
|
authenticationMode |
Password |
custom | Custom Fields for the Customer. |
CustomerPagedQueryResponse
limit Int | Number of results requested. Default: 20 Minimum: 0 Maximum: 500 |
offset Int | Number of elements skipped. Default: 0 Maximum: 10000 |
count Int | Actual number of results returned. |
total Int | Total number of results matching the query.
This number is an estimation that is not strongly consistent.
This field is returned by default.
For improved performance, calculating this field can be deactivated by using the query parameter withTotal=false .
When the results are filtered with a Query Predicate, total is subject to a limit. |
results Array of Customer | Customers matching the query. |
CustomerReference
id String | Unique identifier of the referenced Customer. |
typeId | customer Type of referenced resource. |
obj | Contains the representation of the expanded Customer. Only present in responses to requests with Reference Expansion for Customers. |
CustomerKeyReference
key String | User-defined unique identifier of the referenced Customer. |
typeId | customer Type of referenced resource. |
CustomerResourceIdentifier
id
or key
is required. If both are set, an InvalidJsonInput error is returned.id String | Unique identifier of the referenced Customer. Required if key is absent. |
key String | User-defined unique identifier of the referenced Customer. Required if id is absent. |
typeId | customer Type of referenced resource. If given, it must match the expected ReferenceTypeId of the referenced resource. |
CustomerGroupAssignment
customerGroup | Reference to a Customer Group. |
CustomerGroupAssignmentDraft
customerGroup | ResourceIdentifier of a Customer Group. |
CustomerSignin
email String | Email address of the Customer treated as case-insensitive. |
password String | Password of the Customer. |
anonymousCart | Assigns the Customer to the specified Cart. |
anonymousCartSignInMode | Default: MergeWithExistingCustomerCart |
anonymousId String | If anonymousCart is provided, this value must match the anonymousId of the anonymous Cart; otherwise, an InvalidOperation error is returned. |
updateProductData Boolean |
false |
{
"email": "johndoe@example.com",
"password": "secret123",
"anonymousCart": {
"id": "{{cart-id}}",
"typeId": "cart"
}
}
CustomerSignInResult
customer | |
cart Cart | Cart associated with the Customer. The Cart is recalculated to remove invalid Line Items and apply the latest prices, taxes, and discounts.
During these updates, the following errors can be returned: MatchingPriceNotFound and MissingTaxRateForCountry.
For more information, see Cart updates. |
CustomerToken
id String | Unique identifier of the token. |
customerId String | The id of the Customer. |
value String | Value of the token. |
expiresAt | Date and time (UTC) the token expires. |
invalidateOlderTokens Boolean | If true , all tokens issued previously for the Customer will be invalidated. |
createdAt | Date and time (UTC) the token was initially created. |
lastModifiedAt | When the token is created, lastModifiedAt is set to createdAt . |
{
"id": "266f3f1c-d86e-4376-94ec-b41d657040ae",
"createdAt": "2022-09-19T15:55:41.775Z",
"lastModifiedAt": "2022-09-19T15:55:41.775Z",
"lastModifiedBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"createdBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"customerId": "3cdcdcc8-80c5-41bb-abb5-ac8772c9cc24",
"expiresAt": "2022-09-19T15:58:41.772Z",
"value": "Is5gdF7Ym-Aick-AkmsEHMMBWpByIfjgyXxKxZem",
"invalidateOlderTokens": true
}
CustomerEmailTokenReference
id String | Unique identifier of the referenced CustomerToken. |
typeId | customer-email-token Type of referenced resource. |
CustomerPasswordTokenReference
id String | Unique identifier of the referenced CustomerToken. |
typeId | customer-password-token Type of referenced resource. |
AnonymousCartSignInMode
MergeWithExistingCustomerCart
- If set, the content of an anonymous Cart is merged during sign-in with the Customer's most recently modified active Cart.
UseAsNewActiveCustomerCart
- If set, an anonymous Cart is used as the new active Customer Cart, and no LineItems or CustomLineItems are merged.
AuthenticationMode
Password
- This is the default value. If set, the
password
field is required on CustomerDraft and is present on Customer. ExternalAuth
authenticationMode
from Password
to ExternalAuth
, the Customer's password
is deleted.CustomerChangePassword
id String | Unique identifier of the Customer. |
version Int | Expected version of the Customer on which the changes should be applied. |
currentPassword String | Current password of the Customer. If the current password does not match, an InvalidCurrentPassword error is returned. |
newPassword String | New password to be set. |
{
"id": "3cdcdcc8-80c5-41bb-abb5-ac8772c9cc24",
"version": 1,
"currentPassword": "secret123",
"newPassword": "newSecret456"
}
CustomerCreatePasswordResetToken
email String | Email address of the Customer treated as case-insensitive. |
ttlMinutes Int | Validity period of the generated token in minutes. Default:1440 |
invalidateOlderTokens Boolean | If set to Default: true , all password tokens issued previously for the Customer will be invalidated.false |
{
"email": "johndoe@example.com"
}
CustomerResetPassword
version Int | Expected version of the Customer. |
tokenValue String | Value of the token to reset the Customer password. |
newPassword String | New password to be set. |
{
"tokenValue": "VRndRV5oCr-pKH2360DnlhqEOVVUZXSAIUXgT5HL",
"newPassword": "newsecret123"
}
CustomerCreateEmailToken
id String | Unique identifier of the Customer. |
version Int | Expected version of the Customer. |
ttlMinutes Int | Validity period of the generated token in minutes. |
invalidateOlderTokens Boolean | If set to Default: true , all email tokens issued previously for the Customer will be invalidated.false |
{
"id": "58ae9ffc-7e7b-414c-b060-357749d80c55",
"ttlMinutes": 4320
}
CustomerEmailVerify
version Int | Expected version of the Customer. |
tokenValue String | Value of the token to verify Customer email. |
{
"tokenValue": "hI_6fkuFIyd_wadz1JmpRGh1vMvgFrlsSJia3G6d"
}
Get Customer
Get Customer by ID
view_customers:{projectKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
id String | id of the Customer. |
expand | The parameter can be passed multiple times. |
application/json
curl --get https://api.{region}.commercetools.com/{projectKey}/customers/{id} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
{
"id": "3cdcdcc8-80c5-41bb-abb5-ac8772c9cc24",
"version": 1,
"createdAt": "2022-09-19T14:34:35.843Z",
"lastModifiedAt": "2022-09-19T14:34:35.843Z",
"lastModifiedBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"createdBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"email": "johndoe@example.com",
"firstName": "John",
"lastName": "Doe",
"password": "****aGg=",
"addresses": [],
"shippingAddressIds": [],
"billingAddressIds": [],
"isEmailVerified": false,
"stores": [],
"authenticationMode": "Password"
}
Get Customer by Key
view_customers:{projectKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
key String | key of the Customer. |
expand | The parameter can be passed multiple times. |
application/json
curl --get https://api.{region}.commercetools.com/{projectKey}/customers/key={key} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
{
"id": "3cdcdcc8-80c5-41bb-abb5-ac8772c9cc24",
"version": 1,
"createdAt": "2022-09-19T14:34:35.843Z",
"lastModifiedAt": "2022-09-19T14:34:35.843Z",
"lastModifiedBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"createdBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"email": "johndoe@example.com",
"firstName": "John",
"lastName": "Doe",
"password": "****aGg=",
"addresses": [],
"shippingAddressIds": [],
"billingAddressIds": [],
"isEmailVerified": false,
"stores": [],
"authenticationMode": "Password"
}
Get Customer in Store
stores
field present.Get Customer in Store by ID
stores
field references a different Store, this method returns a ResourceNotFound error.view_customers:{projectKey}
view_customers:{projectKey}:{storeKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
storeKey String | key of the Store. |
id String | id of the Customer. |
expand | The parameter can be passed multiple times. |
application/json
curl --get https://api.{region}.commercetools.com/{projectKey}/in-store/key={storeKey}/customers/{id} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
{
"id": "3cdcdcc8-80c5-41bb-abb5-ac8772c9cc24",
"version": 1,
"createdAt": "2022-09-19T14:34:35.843Z",
"lastModifiedAt": "2022-09-19T14:34:35.843Z",
"lastModifiedBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"createdBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"email": "johndoe@example.com",
"firstName": "John",
"lastName": "Doe",
"password": "****aGg=",
"addresses": [],
"shippingAddressIds": [],
"billingAddressIds": [],
"isEmailVerified": false,
"stores": [],
"authenticationMode": "Password"
}
Get Customer in Store by Key
stores
field references a different Store, this method returns a ResourceNotFound error.view_customers:{projectKey}
view_customers:{projectKey}:{storeKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
storeKey String | key of the Store. |
key String | key of the Customer. |
expand | The parameter can be passed multiple times. |
application/json
curl --get https://api.{region}.commercetools.com/{projectKey}/in-store/key={storeKey}/customers/key={key} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
{
"id": "3cdcdcc8-80c5-41bb-abb5-ac8772c9cc24",
"version": 1,
"createdAt": "2022-09-19T14:34:35.843Z",
"lastModifiedAt": "2022-09-19T14:34:35.843Z",
"lastModifiedBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"createdBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"email": "johndoe@example.com",
"firstName": "John",
"lastName": "Doe",
"password": "****aGg=",
"addresses": [],
"shippingAddressIds": [],
"billingAddressIds": [],
"isEmailVerified": false,
"stores": [],
"authenticationMode": "Password"
}
Query Customers
view_customers:{projectKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
where | The parameter can be passed multiple times. |
sort | The parameter can be passed multiple times. |
expand | The parameter can be passed multiple times. |
limit Int | Number of results requested. Default: 20 Minimum: 0 Maximum: 500 |
offset Int | Number of elements skipped. Default: 0 Maximum: 10000 |
withTotal Boolean | Controls the calculation of the total number of query results. Set to false to improve query performance when the total is not needed.Default: true |
var.<varName> String | Predicate parameter values. The parameter can be passed multiple times. |
application/json
curl --get https://api.{region}.commercetools.com/{projectKey}/customers -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
{
"limit": 1,
"offset": 0,
"count": 1,
"total": 10182,
"results": [
{
"id": "3cdcdcc8-80c5-41bb-abb5-ac8772c9cc24",
"version": 1,
"createdAt": "2022-09-19T14:34:35.843Z",
"lastModifiedAt": "2022-09-19T14:34:35.843Z",
"lastModifiedBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"createdBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"email": "johndoe@example.com",
"firstName": "John",
"lastName": "Doe",
"password": "****aGg=",
"addresses": [],
"shippingAddressIds": [],
"billingAddressIds": [],
"isEmailVerified": false,
"stores": [],
"authenticationMode": "Password"
}
]
}
Query Customers in Store
view_customers:{projectKey}
view_customers:{projectKey}:{storeKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
storeKey String | key of the Store. |
where | The parameter can be passed multiple times. |
sort | The parameter can be passed multiple times. |
expand | The parameter can be passed multiple times. |
limit Int | Number of results requested. Default: 20 Minimum: 0 Maximum: 500 |
offset Int | Number of elements skipped. Default: 0 Maximum: 10000 |
withTotal Boolean | Controls the calculation of the total number of query results. Set to false to improve query performance when the total is not needed.Default: true |
var.<varName> String | Predicate parameter values. The parameter can be passed multiple times. |
application/json
curl --get https://api.{region}.commercetools.com/{projectKey}/in-store/key={storeKey}/customers -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
{
"limit": 1,
"offset": 0,
"count": 1,
"total": 10182,
"results": [
{
"id": "3cdcdcc8-80c5-41bb-abb5-ac8772c9cc24",
"version": 1,
"createdAt": "2022-09-19T14:34:35.843Z",
"lastModifiedAt": "2022-09-19T14:34:35.843Z",
"lastModifiedBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"createdBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"email": "johndoe@example.com",
"firstName": "John",
"lastName": "Doe",
"password": "****aGg=",
"addresses": [],
"shippingAddressIds": [],
"billingAddressIds": [],
"isEmailVerified": false,
"stores": [],
"authenticationMode": "Password"
}
]
}
Check if Customer exists
Check if Customer exists by ID
id
. Returns a 200
status if the Customer exists, or a 404
status otherwise.view_customers:{projectKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
id String | id of the Customer. |
curl --head https://api.{region}.commercetools.com/{projectKey}/customers/{id} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
Check if Customer exists by Key
key
. Returns a 200
status if the Customer exists, or a 404
status otherwise.view_customers:{projectKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
key String | key of the Customer. |
curl --head https://api.{region}.commercetools.com/{projectKey}/customers/key={key} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
Check if Customer exists by Query Predicate
200
status if any Customers match the query predicate, or a 404
status otherwise.view_customers:{projectKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
where | The parameter can be passed multiple times. |
curl --head https://api.{region}.commercetools.com/{projectKey}/customers -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
Check if Customer exists in Store
Check if Customer exists in Store by ID
id
. Returns a 200
status if the Customer exists, or a 404
status otherwise.view_customers:{projectKey}
view_customers:{projectKey}:{storeKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
storeKey String | key of the Store. |
id String | id of the Customer. |
curl --head https://api.{region}.commercetools.com/{projectKey}/in-store/key={storeKey}/customers/{id} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
Check if Customer exists in Store by Key
key
. Returns a 200
status if the Customer exists, or a 404
status otherwise.view_customers:{projectKey}
view_customers:{projectKey}:{storeKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
storeKey String | key of the Store. |
key String | key of the Customer. |
curl --head https://api.{region}.commercetools.com/{projectKey}/in-store/key={storeKey}/customers/key={key} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
Check if Customer exists in Store by Query Predicate
200
status if any Customers match the query predicate, or a 404
status otherwise.view_customers:{projectKey}
view_customers:{projectKey}:{storeKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
storeKey String | key of the Store. |
where | The parameter can be passed multiple times. |
curl --head https://api.{region}.commercetools.com/{projectKey}/in-store/key={storeKey}/customers -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
Create (sign up) Customer
manage_customers:{projectKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
expand | The parameter can be passed multiple times. |
application/json
application/json
curl https://api.{region}.commercetools.com/{projectKey}/customers -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA
{
"email" : "johndoe@example.com",
"firstName" : "John",
"lastName" : "Doe",
"password" : "secret123"
}
DATA
{
"customer": {
"addresses": [],
"email": "johndoe@example.com",
"firstName": "John",
"id": "some_123_id",
"isEmailVerified": false,
"lastName": "Doe",
"password": "****aGg=",
"version": 1,
"createdAt": "2015-07-06T13:22:33.339Z",
"lastModifiedAt": "2015-07-06T13:22:33.339Z",
"authenticationMode": "Password",
"stores": []
}
}
Create (sign up) Customer in Store
stores
field is set to the Store specified in the path parameter.store
field specified, the store
field must reference the same Store specified in the {storeKey}
path parameter.manage_customers:{projectKey}
manage_customers:{projectKey}:{storeKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
storeKey String | key of the Store. |
expand | The parameter can be passed multiple times. |
application/json
application/json
curl https://api.{region}.commercetools.com/{projectKey}/in-store/key={storeKey}/customers -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA
{
"email" : "johndoe@example.com",
"firstName" : "John",
"lastName" : "Doe",
"password" : "secret123"
}
DATA
{
"customer": {
"addresses": [],
"email": "johndoe@example.com",
"firstName": "John",
"id": "some_123_id",
"isEmailVerified": false,
"lastName": "Doe",
"password": "****aGg=",
"version": 1,
"createdAt": "2015-07-06T13:22:33.339Z",
"lastModifiedAt": "2015-07-06T13:22:33.339Z",
"authenticationMode": "Password",
"stores": []
}
}
Update Customer
Update Customer by ID
manage_customers:{projectKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
id String | id of the Customer. |
expand | The parameter can be passed multiple times. |
application/json
version Int | Expected version of the Customer on which the changes should be applied.
If the expected version does not match the actual version, a ConcurrentModification error will be returned. |
actions Array of CustomerUpdateAction | Update actions to be performed on the Customer. |
application/json
curl https://api.{region}.commercetools.com/{projectKey}/customers/{id} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA
{
"version" : 3,
"actions" : [ {
"action" : "addAddress",
"address" : {
"streetName" : "Any Street",
"streetNumber" : "1337",
"postalCode" : "11111",
"city" : "Any City",
"country" : "US"
}
} ]
}
DATA
{
"id": "3cdcdcc8-80c5-41bb-abb5-ac8772c9cc24",
"version": 1,
"createdAt": "2022-09-19T14:34:35.843Z",
"lastModifiedAt": "2022-09-19T14:34:35.843Z",
"lastModifiedBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"createdBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"email": "johndoe@example.com",
"firstName": "John",
"lastName": "Doe",
"password": "****aGg=",
"addresses": [],
"shippingAddressIds": [],
"billingAddressIds": [],
"isEmailVerified": false,
"stores": [],
"authenticationMode": "Password"
}
Update Customer by Key
manage_customers:{projectKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
key String | key of the Customer. |
expand | The parameter can be passed multiple times. |
application/json
version Int | Expected version of the Customer on which the changes should be applied.
If the expected version does not match the actual version, a ConcurrentModification error will be returned. |
actions Array of CustomerUpdateAction | Update actions to be performed on the Customer. |
application/json
curl https://api.{region}.commercetools.com/{projectKey}/customers/key={key} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA
{
"version" : 3,
"actions" : [ {
"action" : "addAddress",
"address" : {
"streetName" : "Any Street",
"streetNumber" : "1337",
"postalCode" : "11111",
"city" : "Any City",
"country" : "US"
}
} ]
}
DATA
{
"id": "3cdcdcc8-80c5-41bb-abb5-ac8772c9cc24",
"version": 1,
"createdAt": "2022-09-19T14:34:35.843Z",
"lastModifiedAt": "2022-09-19T14:34:35.843Z",
"lastModifiedBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"createdBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"email": "johndoe@example.com",
"firstName": "John",
"lastName": "Doe",
"password": "****aGg=",
"addresses": [],
"shippingAddressIds": [],
"billingAddressIds": [],
"isEmailVerified": false,
"stores": [],
"authenticationMode": "Password"
}
Update Customer in Store
Update Customer in Store by ID
stores
field references a different Store, this method returns a ResourceNotFound error.manage_customers:{projectKey}
manage_customers:{projectKey}:{storeKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
storeKey String | key of the Store. |
id String | id of the Customer. |
expand | The parameter can be passed multiple times. |
application/json
version Int | Expected version of the Customer on which the changes should be applied.
If the expected version does not match the actual version, a ConcurrentModification error will be returned. |
actions Array of CustomerUpdateAction | Update actions to be performed on the Customer. |
application/json
curl https://api.{region}.commercetools.com/{projectKey}/in-store/key={storeKey}/customers/{id} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA
{
"version" : 3,
"actions" : [ {
"action" : "addAddress",
"address" : {
"streetName" : "Any Street",
"streetNumber" : "1337",
"postalCode" : "11111",
"city" : "Any City",
"country" : "US"
}
} ]
}
DATA
{
"id": "3cdcdcc8-80c5-41bb-abb5-ac8772c9cc24",
"version": 1,
"createdAt": "2022-09-19T14:34:35.843Z",
"lastModifiedAt": "2022-09-19T14:34:35.843Z",
"lastModifiedBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"createdBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"email": "johndoe@example.com",
"firstName": "John",
"lastName": "Doe",
"password": "****aGg=",
"addresses": [],
"shippingAddressIds": [],
"billingAddressIds": [],
"isEmailVerified": false,
"stores": [],
"authenticationMode": "Password"
}
Update Customer in Store by Key
stores
field references a different Store, this method returns a ResourceNotFound error.manage_customers:{projectKey}
manage_customers:{projectKey}:{storeKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
storeKey String | key of the Store. |
key String | key of the Customer. |
expand | The parameter can be passed multiple times. |
application/json
version Int | Expected version of the Customer on which the changes should be applied.
If the expected version does not match the actual version, a ConcurrentModification error will be returned. |
actions Array of CustomerUpdateAction | Update actions to be performed on the Customer. |
application/json
curl https://api.{region}.commercetools.com/{projectKey}/in-store/key={storeKey}/customers/key={key} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA
{
"version" : 3,
"actions" : [ {
"action" : "addAddress",
"address" : {
"streetName" : "Any Street",
"streetNumber" : "1337",
"postalCode" : "11111",
"city" : "Any City",
"country" : "US"
}
} ]
}
DATA
{
"id": "3cdcdcc8-80c5-41bb-abb5-ac8772c9cc24",
"version": 1,
"createdAt": "2022-09-19T14:34:35.843Z",
"lastModifiedAt": "2022-09-19T14:34:35.843Z",
"lastModifiedBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"createdBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"email": "johndoe@example.com",
"firstName": "John",
"lastName": "Doe",
"password": "****aGg=",
"addresses": [],
"shippingAddressIds": [],
"billingAddressIds": [],
"isEmailVerified": false,
"stores": [],
"authenticationMode": "Password"
}
Update actions
Change Email
email
of the Customer and sets the isEmailVerified
property to false
. This update action generates a CustomerEmailChanged Message.action String | "changeEmail" |
email String | Value to set. |
{
"action": "changeEmail",
"email": "email@example.com"
}
Set First Name
action String | "setFirstName" |
firstName String | Value to set. If empty, any existing value is removed. |
{
"action": "setFirstName",
"firstName": "John"
}
Set Last Name
action String | "setLastName" |
lastName String | Value to set. If empty, any existing value is removed. |
{
"action": "setLastName",
"lastName": "Person"
}
Set Middle Name
action String | "setMiddleName" |
middleName String | Value to set. If empty, any existing value is removed. |
{
"action": "setMiddleName",
"middleName": "middleName"
}
Set Title
action String | "setTitle" |
title String | Value to set. If empty, any existing value is removed. |
{
"action": "setTitle",
"title": "Dr"
}
Set Salutation
action String | "setSalutation" |
salutation String | Value to set. If empty, any existing value is removed. |
{
"action": "setSalutation",
"salutation": "Mr"
}
Add Address
action String | "addAddress" |
address | Value to append to the addresses array. |
{
"action": "addAddress",
"address": {
"key": "exampleKey",
"title": "My Address",
"salutation": "Mr.",
"firstName": "Example",
"lastName": "Person",
"streetName": "Example Street",
"streetNumber": "4711",
"additionalStreetInfo": "Backhouse",
"postalCode": "80933",
"city": "Exemplary City",
"region": "Exemplary Region",
"state": "Exemplary State",
"country": "DE",
"company": "My Company Name",
"department": "Sales",
"building": "Hightower 1",
"apartment": "247",
"pOBox": "2471",
"phone": "+49 89 12345678",
"mobile": "+49 171 2345678",
"email": "email@example.com",
"fax": "+49 89 12345679",
"additionalAddressInfo": "no additional Info",
"externalId": "Information not needed"
}
}
Change Address
addressId
or addressKey
is required.action String | "changeAddress" |
addressId String | id of the Address to change. |
addressKey String | key of the Address to change. |
address | Value to set. |
{
"action": "changeAddress",
"addressId": "{{addressId}}",
"address": {
"key": "exampleKey",
"title": "My Address",
"salutation": "Mr.",
"firstName": "Example",
"lastName": "Person",
"streetName": "Example Street",
"streetNumber": "4711",
"additionalStreetInfo": "Backhouse",
"postalCode": "80933",
"city": "Exemplary City",
"region": "Exemplary Region",
"state": "Exemplary State",
"country": "DE",
"company": "My Company Name",
"department": "Sales",
"building": "Hightower 1",
"apartment": "247",
"pOBox": "2471",
"phone": "+49 89 12345678",
"mobile": "+49 171 2345678",
"email": "email@example.com",
"fax": "+49 89 12345679",
"additionalAddressInfo": "no additional Info",
"externalId": "Information not needed"
}
}
Remove Address
addressId
or addressKey
is required.Set Default Shipping Address
addresses
.
The action adds the id
of the specified address to the shippingAddressIds
if not contained already. Either addressId
or addressKey
is required.Add Shipping Address ID
addresses
array to shippingAddressIds
. Either addressId
or addressKey
is required.Remove Shipping Address ID
shippingAddressesIds
.
If the shipping address is the default shipping address, the defaultShippingAddressId
is unset. Either addressId
or addressKey
is required.Set Default Billing Address
addresses
.
The action adds the id
of the specified Address to the billingAddressIds
if not contained already. Either addressId
or addressKey
is required.Add Billing Address ID
addresses
array to billingAddressIds
. Either addressId
or addressKey
is required.Remove Billing Address ID
billingAddressesIds
.
If the billing address is the default billing address, the defaultBillingAddressId
is unset. Either addressId
or addressKey
is required.Set CustomerGroup
action String | "setCustomerGroup" |
customerGroup | Value to set. If empty, any existing value is removed. |
{
"action": "setCustomerGroup",
"customerGroup": {
"id": "{{customer-group-id}}",
"typeId": "customer-group"
}
}
Set Customer Number
Sets a new ID that can be used to refer to a Customer in a human-reabable way (for use in emails, invoices, etc).
action String | "setCustomerNumber" |
customerNumber String | Value to set. Once set, it cannot be changed. |
{
"action": "setCustomerNumber",
"customerNumber": "123"
}
Set External ID
action String | "setExternalId" |
externalId String | Value to set. If empty, any existing value is removed. |
{
"action": "setExternalId",
"externalId": "123"
}
Set Company Name
action String | "setCompanyName" |
companyName String | Value to set. If empty, any existing value is removed. |
{
"action": "setCompanyName",
"companyName": "Company Ltd."
}
Set Date of Birth
action String | "setDateOfBirth" |
dateOfBirth Date | Value to set. If empty, any existing value is removed. |
{
"action": "setDateOfBirth",
"dateOfBirth": "2015-10-21"
}
Set Vat ID
action String | "setVatId" |
vatId String | Value to set. If empty, any existing value is removed. |
{
"action": "setVatId",
"vatId": "vatId"
}
Set Custom Type
action String | "setCustomType" |
type | Defines the Type that extends the Customer with Custom Fields.
If absent, any existing Type and Custom Fields are removed from the Customer. |
fields | Sets the Custom Fields fields for the Customer. |
{
"action": "setCustomType",
"type": {
"id": "{{type-id}}",
"typeId": "type"
},
"fields": {
"exampleStringField": "TextString"
}
}
Set CustomField
action String | "setCustomField" |
name String | Name of the Custom Field. |
value | If value is absent or null , this field will be removed if it exists.
If value is provided, it is set for the field defined by name .
Trying to remove a field that does not exist will fail with an InvalidOperation error. |
{
"action": "setCustomField",
"name": "exampleStringField",
"value": "TextString"
}
Set Custom Type in Address
action String | "setAddressCustomType" |
addressId String | User-defined unique identifier of the Address to be updated. |
type | Defines the Type that extends the address with Custom Fields.
If absent, any existing Type and Custom Fields are removed from the address . |
fields | Sets the Custom Fields fields for the address . |
{
"action": "setAddressCustomType",
"type": {
"id": "{{type-id}}",
"typeId": "type"
},
"fields": {
"exampleStringField": "TextString"
},
"addressId": "{{address-id}}"
}
Set CustomField in Address
action String | "setAddressCustomField" |
addressId String | User-defined unique identifier of the Address to be updated. |
name String | Name of the Custom Field. |
value | If value is absent or null , this field will be removed if it exists.
If value is provided, it is set for the field defined by name .
Trying to remove a field that does not exist will fail with an InvalidOperation error. |
{
"action": "setAddressCustomField",
"name": "exampleStringField",
"value": "TextString",
"addressId": "{{address-id}}"
}
Set Locale
Set Key
action String | "setKey" |
key String | If MinLength: key is absent or null , the existing key, if any, will be removed.2 MaxLength: 256 Pattern: ^[A-Za-z0-9_-]+$ |
{
"action": "setKey",
"key": "newKey"
}
Set Stores
action String | "setStores" |
stores Array of StoreResourceIdentifier | ResourceIdentifier of the Stores to set. |
{
"action": "setStores",
"stores": [
{
"key": "{{store-key}}",
"typeId": "store"
}
]
}
Add Store
Associates the Customer with a Store.
action String | "addStore" |
store | ResourceIdentifier of the Store to add. |
{
"action": "addStore",
"store": {
"key": "{{store-key}}",
"typeId": "store"
}
}
Remove Store
action String | "removeStore" |
store | ResourceIdentifier of the Store to remove. |
{
"action": "removeStore",
"store": {
"key": "{{store-key}}",
"typeId": "store"
}
}
Set AuthenticationMode
action String | "setAuthenticationMode" |
authMode | Value to set.
Changing a Customer's authMode from Password to ExternalAuth deletes the Customer's password. |
password String | Required when authMode is Password . |
{
"action": "setAuthenticationMode",
"authMode": "ExternalAuth"
}
Add CustomerGroupAssignment
action String | "addCustomerGroupAssignment" |
customerGroupAssignment | Customer Group to assign the Customer to. |
{
"action": "addCustomerGroupAssignment",
"customerGroupAssignment": {
"customerGroup": {
"id": "{{customer-group-id}}",
"typeId": "customer-group"
}
}
}
Remove CustomerGroupAssignment
action String | "removeCustomerGroupAssignment" |
customerGroup | Customer Group to unassign the Customer from. |
{
"action": "removeCustomerGroupAssignment",
"customerGroup": {
"id": "{{customer-group-id}}",
"typeId": "customer-group"
}
}
Set CustomerGroupAssignments
action String | "setCustomerGroupAssignments" |
customerGroupAssignments Array of CustomerGroupAssignmentDraft | Customer Groups to assign the Customer to. |
{
"action": "setCustomerGroupAssignments",
"customerGroupAssignments": [
{
"customerGroup": {
"id": "{{customer-group-id-1}}",
"typeId": "customer-group"
}
},
{
"customerGroup": {
"id": "{{customer-group-id-2}}",
"typeId": "customer-group"
}
}
]
}
Change password of Customer
reset=false
.manage_customers:{projectKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
application/json
application/json
curl https://api.{region}.commercetools.com/{projectKey}/customers/password -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA
{
"id" : "3cdcdcc8-80c5-41bb-abb5-ac8772c9cc24",
"version" : 1,
"currentPassword" : "secret123",
"newPassword" : "newSecret456"
}
DATA
{
"id": "3cdcdcc8-80c5-41bb-abb5-ac8772c9cc24",
"version": 1,
"createdAt": "2022-09-19T14:34:35.843Z",
"lastModifiedAt": "2022-09-19T14:34:35.843Z",
"lastModifiedBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"createdBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"email": "johndoe@example.com",
"firstName": "John",
"lastName": "Doe",
"password": "****aGg=",
"addresses": [],
"shippingAddressIds": [],
"billingAddressIds": [],
"isEmailVerified": false,
"stores": [],
"authenticationMode": "Password"
}
Change password of Customer in Store
reset=false
.manage_customers:{projectKey}
manage_customers:{projectKey}:{storeKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
storeKey String | key of the Store. |
application/json
application/json
curl https://api.{region}.commercetools.com/{projectKey}/in-store/key={storeKey}/customers/password -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA
{
"id" : "3cdcdcc8-80c5-41bb-abb5-ac8772c9cc24",
"version" : 1,
"currentPassword" : "secret123",
"newPassword" : "newSecret456"
}
DATA
{
"id": "3cdcdcc8-80c5-41bb-abb5-ac8772c9cc24",
"version": 1,
"createdAt": "2022-09-19T14:34:35.843Z",
"lastModifiedAt": "2022-09-19T14:34:35.843Z",
"lastModifiedBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"createdBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"email": "johndoe@example.com",
"firstName": "John",
"lastName": "Doe",
"password": "****aGg=",
"addresses": [],
"shippingAddressIds": [],
"billingAddressIds": [],
"isEmailVerified": false,
"stores": [],
"authenticationMode": "Password"
}
Authenticate (sign in) Customer
Authenticates a global Customer.
manage_customers:{projectKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
application/json
application/json
curl https://api.{region}.commercetools.com/{projectKey}/login -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA
{
"email" : "johndoe@example.com",
"password" : "secret123",
"anonymousCart" : {
"id" : "{{cart-id}}",
"typeId" : "cart"
}
}
DATA
{
"customer": {
"addresses": [],
"email": "johndoe@example.com",
"firstName": "John",
"id": "some_123_id",
"isEmailVerified": false,
"lastName": "Doe",
"password": "****aGg=",
"version": 1,
"createdAt": "2015-07-06T13:22:33.339Z",
"lastModifiedAt": "2015-07-06T13:22:33.339Z",
"authenticationMode": "Password",
"stores": []
}
}
Authenticate (sign in) Customer in Store
stores
field references a different Store, this method returns an InvalidCredentials error.manage_customers:{projectKey}
manage_customers:{projectKey}:{storeKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
storeKey String | key of the Store. |
application/json
application/json
curl https://api.{region}.commercetools.com/{projectKey}/in-store/key={storeKey}/login -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA
{
"email" : "johndoe@example.com",
"password" : "secret123",
"anonymousCart" : {
"id" : "{{cart-id}}",
"typeId" : "cart"
}
}
DATA
{
"customer": {
"addresses": [],
"email": "johndoe@example.com",
"firstName": "John",
"id": "some_123_id",
"isEmailVerified": false,
"lastName": "Doe",
"password": "****aGg=",
"version": 1,
"createdAt": "2015-07-06T13:22:33.339Z",
"lastModifiedAt": "2015-07-06T13:22:33.339Z",
"authenticationMode": "Password",
"stores": []
}
}
Password reset of Customer
Create password reset token for Customer
manage_customers:{projectKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
application/json
application/json
curl https://api.{region}.commercetools.com/{projectKey}/customers/password-token -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA
{
"email" : "johndoe@example.com"
}
DATA
Get Customer by password token
view_customers:{projectKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
passwordToken String | passwordToken of the Customer. |
expand | The parameter can be passed multiple times. |
application/json
curl --get https://api.{region}.commercetools.com/{projectKey}/customers/password-token={passwordToken} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
{
"id": "3cdcdcc8-80c5-41bb-abb5-ac8772c9cc24",
"version": 1,
"createdAt": "2022-09-19T14:34:35.843Z",
"lastModifiedAt": "2022-09-19T14:34:35.843Z",
"lastModifiedBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"createdBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"email": "johndoe@example.com",
"firstName": "John",
"lastName": "Doe",
"password": "****aGg=",
"addresses": [],
"shippingAddressIds": [],
"billingAddressIds": [],
"isEmailVerified": false,
"stores": [],
"authenticationMode": "Password"
}
Reset password of Customer
reset=true
.manage_customers:{projectKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
application/json
application/json
curl https://api.{region}.commercetools.com/{projectKey}/customers/password/reset -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA
{
"tokenValue" : "VRndRV5oCr-pKH2360DnlhqEOVVUZXSAIUXgT5HL",
"newPassword" : "newsecret123"
}
DATA
{
"id": "3cdcdcc8-80c5-41bb-abb5-ac8772c9cc24",
"version": 1,
"createdAt": "2022-09-19T14:34:35.843Z",
"lastModifiedAt": "2022-09-19T14:34:35.843Z",
"lastModifiedBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"createdBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"email": "johndoe@example.com",
"firstName": "John",
"lastName": "Doe",
"password": "****aGg=",
"addresses": [],
"shippingAddressIds": [],
"billingAddressIds": [],
"isEmailVerified": false,
"stores": [],
"authenticationMode": "Password"
}
Password reset of Customer in Store
Create password reset token for Customer in Store
stores
field references a different Store, this method returns a ResourceNotFound error.manage_customers:{projectKey}
manage_customers:{projectKey}:{storeKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
storeKey String | key of the Store. |
application/json
application/json
curl https://api.{region}.commercetools.com/{projectKey}/in-store/key={storeKey}/customers/password-token -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA
{
"email" : "johndoe@example.com"
}
DATA
Get Customer in Store by password token
stores
field references a different Store, this method returns a ResourceNotFound error.view_customers:{projectKey}
view_customers:{projectKey}:{storeKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
storeKey String | key of the Store. |
passwordToken String | passwordToken of the Customer. |
expand | The parameter can be passed multiple times. |
application/json
curl --get https://api.{region}.commercetools.com/{projectKey}/in-store/key={storeKey}/customers/password-token={passwordToken} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
{
"id": "3cdcdcc8-80c5-41bb-abb5-ac8772c9cc24",
"version": 1,
"createdAt": "2022-09-19T14:34:35.843Z",
"lastModifiedAt": "2022-09-19T14:34:35.843Z",
"lastModifiedBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"createdBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"email": "johndoe@example.com",
"firstName": "John",
"lastName": "Doe",
"password": "****aGg=",
"addresses": [],
"shippingAddressIds": [],
"billingAddressIds": [],
"isEmailVerified": false,
"stores": [],
"authenticationMode": "Password"
}
Reset password of Customer in Store
reset=true
.stores
field references a different Store, then this method returns a ResourceNotFound error.manage_customers:{projectKey}
manage_customers:{projectKey}:{storeKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
storeKey String | key of the Store. |
application/json
application/json
curl https://api.{region}.commercetools.com/{projectKey}/in-store/key={storeKey}/customers/password/reset -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA
{
"tokenValue" : "VRndRV5oCr-pKH2360DnlhqEOVVUZXSAIUXgT5HL",
"newPassword" : "newsecret123"
}
DATA
{
"id": "3cdcdcc8-80c5-41bb-abb5-ac8772c9cc24",
"version": 1,
"createdAt": "2022-09-19T14:34:35.843Z",
"lastModifiedAt": "2022-09-19T14:34:35.843Z",
"lastModifiedBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"createdBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"email": "johndoe@example.com",
"firstName": "John",
"lastName": "Doe",
"password": "****aGg=",
"addresses": [],
"shippingAddressIds": [],
"billingAddressIds": [],
"isEmailVerified": false,
"stores": [],
"authenticationMode": "Password"
}
Email verification of Customer
Create email token for Customer
manage_customers:{projectKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
application/json
application/json
curl https://api.{region}.commercetools.com/{projectKey}/customers/email-token -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA
{
"id" : "58ae9ffc-7e7b-414c-b060-357749d80c55",
"ttlMinutes" : 4320
}
DATA
Get Customer by email token
view_customers:{projectKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
emailToken String | emailToken of the Customer. |
expand | The parameter can be passed multiple times. |
application/json
curl --get https://api.{region}.commercetools.com/{projectKey}/customers/email-token={emailToken} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
{
"id": "3cdcdcc8-80c5-41bb-abb5-ac8772c9cc24",
"version": 1,
"createdAt": "2022-09-19T14:34:35.843Z",
"lastModifiedAt": "2022-09-19T14:34:35.843Z",
"lastModifiedBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"createdBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"email": "johndoe@example.com",
"firstName": "John",
"lastName": "Doe",
"password": "****aGg=",
"addresses": [],
"shippingAddressIds": [],
"billingAddressIds": [],
"isEmailVerified": false,
"stores": [],
"authenticationMode": "Password"
}
Verify email of Customer
manage_customers:{projectKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
application/json
application/json
curl https://api.{region}.commercetools.com/{projectKey}/customers/email/confirm -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA
{
"tokenValue" : "hI_6fkuFIyd_wadz1JmpRGh1vMvgFrlsSJia3G6d"
}
DATA
{
"id": "3cdcdcc8-80c5-41bb-abb5-ac8772c9cc24",
"version": 1,
"createdAt": "2022-09-19T14:34:35.843Z",
"lastModifiedAt": "2022-09-19T14:34:35.843Z",
"lastModifiedBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"createdBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"email": "johndoe@example.com",
"firstName": "John",
"lastName": "Doe",
"password": "****aGg=",
"addresses": [],
"shippingAddressIds": [],
"billingAddressIds": [],
"isEmailVerified": false,
"stores": [],
"authenticationMode": "Password"
}
Email verification of Customer in Store
Create email token for Customer in Store
stores
field references a different Store, this method returns a ResourceNotFound error.manage_customers:{projectKey}
manage_customers:{projectKey}:{storeKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
storeKey String | key of the Store. |
application/json
application/json
curl https://api.{region}.commercetools.com/{projectKey}/in-store/key={storeKey}/customers/email-token -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA
{
"id" : "58ae9ffc-7e7b-414c-b060-357749d80c55",
"ttlMinutes" : 4320
}
DATA
Get Customer in Store by email token
stores
field references a different Store, this method returns a ResourceNotFound error.view_customers:{projectKey}
view_customers:{projectKey}:{storeKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
storeKey String | key of the Store. |
emailToken String | emailToken of the Customer. |
expand | The parameter can be passed multiple times. |
application/json
curl --get https://api.{region}.commercetools.com/{projectKey}/in-store/key={storeKey}/customers/email-token={emailToken} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
{
"id": "3cdcdcc8-80c5-41bb-abb5-ac8772c9cc24",
"version": 1,
"createdAt": "2022-09-19T14:34:35.843Z",
"lastModifiedAt": "2022-09-19T14:34:35.843Z",
"lastModifiedBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"createdBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"email": "johndoe@example.com",
"firstName": "John",
"lastName": "Doe",
"password": "****aGg=",
"addresses": [],
"shippingAddressIds": [],
"billingAddressIds": [],
"isEmailVerified": false,
"stores": [],
"authenticationMode": "Password"
}
Verify email of Customer in Store
stores
field references a different Store, this method returns a ResourceNotFound error.manage_customers:{projectKey}
manage_customers:{projectKey}:{storeKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
storeKey String | key of the Store. |
application/json
application/json
curl https://api.{region}.commercetools.com/{projectKey}/in-store/key={storeKey}/customers/email/confirm -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA
{
"tokenValue" : "hI_6fkuFIyd_wadz1JmpRGh1vMvgFrlsSJia3G6d"
}
DATA
{
"id": "3cdcdcc8-80c5-41bb-abb5-ac8772c9cc24",
"version": 1,
"createdAt": "2022-09-19T14:34:35.843Z",
"lastModifiedAt": "2022-09-19T14:34:35.843Z",
"lastModifiedBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"createdBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"email": "johndoe@example.com",
"firstName": "John",
"lastName": "Doe",
"password": "****aGg=",
"addresses": [],
"shippingAddressIds": [],
"billingAddressIds": [],
"isEmailVerified": false,
"stores": [],
"authenticationMode": "Password"
}
Delete Customer
Delete Customer by ID
manage_customers:{projectKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
id String | id of the Customer. |
version Int | Last seen version of the resource. |
expand | The parameter can be passed multiple times. |
dataErasure Boolean | To erase all related personal data in compliance with GDPR, set to true .Default: false |
application/json
curl -X DELETE https://api.{region}.commercetools.com/{projectKey}/customers/{id}?version={version} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
{
"id": "3cdcdcc8-80c5-41bb-abb5-ac8772c9cc24",
"version": 1,
"createdAt": "2022-09-19T14:34:35.843Z",
"lastModifiedAt": "2022-09-19T14:34:35.843Z",
"lastModifiedBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"createdBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"email": "johndoe@example.com",
"firstName": "John",
"lastName": "Doe",
"password": "****aGg=",
"addresses": [],
"shippingAddressIds": [],
"billingAddressIds": [],
"isEmailVerified": false,
"stores": [],
"authenticationMode": "Password"
}
Delete Customer by Key
manage_customers:{projectKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
key String | key of the Customer. |
version Int | Last seen version of the resource. |
expand | The parameter can be passed multiple times. |
dataErasure Boolean | To erase all related personal data in compliance with GDPR, set to true .Default: false |
application/json
curl -X DELETE https://api.{region}.commercetools.com/{projectKey}/customers/key={key}?version={version} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
{
"id": "3cdcdcc8-80c5-41bb-abb5-ac8772c9cc24",
"version": 1,
"createdAt": "2022-09-19T14:34:35.843Z",
"lastModifiedAt": "2022-09-19T14:34:35.843Z",
"lastModifiedBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"createdBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"email": "johndoe@example.com",
"firstName": "John",
"lastName": "Doe",
"password": "****aGg=",
"addresses": [],
"shippingAddressIds": [],
"billingAddressIds": [],
"isEmailVerified": false,
"stores": [],
"authenticationMode": "Password"
}
Delete Customer in Store
Delete Customer in Store by ID
stores
field references a different Store, this method returns a ResourceNotFound error.manage_customers:{projectKey}
manage_customers:{projectKey}:{storeKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
storeKey String | key of the Store. |
id String | id of the Customer. |
version Int | Last seen version of the resource. |
expand | The parameter can be passed multiple times. |
dataErasure Boolean | To erase all related personal data in compliance with GDPR, set to true .Default: false |
application/json
curl -X DELETE https://api.{region}.commercetools.com/{projectKey}/in-store/key={storeKey}/customers/{id}?version={version} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
{
"id": "3cdcdcc8-80c5-41bb-abb5-ac8772c9cc24",
"version": 1,
"createdAt": "2022-09-19T14:34:35.843Z",
"lastModifiedAt": "2022-09-19T14:34:35.843Z",
"lastModifiedBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"createdBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"email": "johndoe@example.com",
"firstName": "John",
"lastName": "Doe",
"password": "****aGg=",
"addresses": [],
"shippingAddressIds": [],
"billingAddressIds": [],
"isEmailVerified": false,
"stores": [],
"authenticationMode": "Password"
}
Delete Customer in Store by Key
stores
field references a different Store, this method returns a ResourceNotFound error.manage_customers:{projectKey}
manage_customers:{projectKey}:{storeKey}
region String | Region in which the Project is hosted. |
projectKey String | key of the Project. |
storeKey String | key of the Store. |
key String | key of the Customer. |
version Int | Last seen version of the resource. |
expand | The parameter can be passed multiple times. |
dataErasure Boolean | To erase all related personal data in compliance with GDPR, set to true .Default: false |
application/json
curl -X DELETE https://api.{region}.commercetools.com/{projectKey}/in-store/key={storeKey}/customers/key={key}?version={version} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
{
"id": "3cdcdcc8-80c5-41bb-abb5-ac8772c9cc24",
"version": 1,
"createdAt": "2022-09-19T14:34:35.843Z",
"lastModifiedAt": "2022-09-19T14:34:35.843Z",
"lastModifiedBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"createdBy": {
"clientId": "P1Xf1NG2YsFqH2LC31oveDWT",
"isPlatformClient": false
},
"email": "johndoe@example.com",
"firstName": "John",
"lastName": "Doe",
"password": "****aGg=",
"addresses": [],
"shippingAddressIds": [],
"billingAddressIds": [],
"isEmailVerified": false,
"stores": [],
"authenticationMode": "Password"
}