Customer API¶
These endpoints allow you to easily manage customers.
Note
Each role in the Open Loyalty has individual endpoints to manage customers.
Activate a customer¶
To activate a customer, you need to call the /api/<storeCode>/admin/customer/<customer>/activate
endpoint with the POST
method.
Definition¶
POST /api/<storeCode>/admin/customer/<customer>/activate
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store the activated customer belongs to. |
<customer> | request | Customer’s UUID |
Example¶
curl http://localhost:8181/api/DEFAULT/admin/customer/1bbafb37-b51b-47c5-b3e4-e0a2d028e655/activate \
-X "POST" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..."
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Note
The customer = 1bbafb37-b51b-47c5-b3e4-e0a2d028e655 id is an example value. Your value may be different. Check the list of all customers if you are not sure which id should be used.
Deactivate a customer¶
To deactivate a customer, you need to call the /api/<storeCode>/admin/customer/<customer>/deactivate
endpoint with the POST
method.
Definition¶
POST /api/<storeCode>/admin/customer/<customer>/deactivate
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store the deactivated customer belongs to. |
<customer> | request | Customer’s UUID |
Example¶
curl http://localhost:8181/api/DEFAULT/admin/customer/1bbafb37-b51b-47c5-b3e4-e0a2d028e655/deactivate \
-X "POST" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..."
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Note
The customer = 1bbafb37-b51b-47c5-b3e4-e0a2d028e655 id is an example value. Your value may be different. Check the list of all customers if you are not sure which id should be used.
Get customer status¶
To get a customer status, you need to call the /api/<storeCode>/admin/customer/<customer>/status
endpoint with the GET
method.
Definition¶
GET /api/<storeCode>/admin/customer/<customer>/status
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store to get the customer from. |
<customer> | request | Customer’s UUID |
Example¶
curl http://localhost:8181/api/DEFAULT/admin/customer/1bbafb37-b51b-47c5-b3e4-e0a2d028e655/status \
-X "GET" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..."
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Note
The customer = 1bbafb37-b51b-47c5-b3e4-e0a2d028e655 id is an example value. Your value may be different. Check the list of all customers if you are not sure which id should be used.
Example Response¶
STATUS: 200 OK
{
"firstName": "Test",
"lastName": "test",
"customerId": "a284f230-c1c0-4a1c-af9a-159b81de1f2b",
"points": 0,
"totalEarnedPoints": 0,
"usedPoints": 0,
"expiredPoints": 0,
"lockedPoints": 0,
"level": "15.00%",
"levelName": "level1",
"levelConditionValue": 20,
"nextLevel": "20.00%",
"nextLevelName": "level2",
"nextLevelConditionValue": 200,
"transactionsAmountToNextLevelWithoutDeliveryCosts": 100,
"transactionsAmountWithoutDeliveryCosts": 100,
"averageTransactionsAmount": "50.00",
"transactionsCount": 2,
"transactionsAmount": 100,
"pointsToNextLevel": 200,
"currency": "eur",
"levelWillExpireInDays": 100,
"pointsSinceLastLevelRecalculation": 0,
"pointsRequiredToRetainLevel": 20
"pointsExpiringNextMonth": 150
}
Note
The information in response may vary depends on the loyalty program configuration. Here is an example of all possible information combine.
Get customer history¶
To get a customer history, you need to call the /api/<storeCode>/admin/customer/<customer>/history
endpoint with the GET
method.
Definition¶
GET /api/<storeCode>/admin/customer/<customer>/history
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store to get the customer from. |
<customer> | request | Customer’s UUID |
Example¶
curl http://localhost:8181/api/DEFAULT/admin/customer/1bbafb37-b51b-47c5-b3e4-e0a2d028e655/history \
-X "GET" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..."
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Note
The customer = 1bbafb37-b51b-47c5-b3e4-e0a2d028e655 id is an example value. Your value may be different. Check the list of all customers if you are not sure which id should be used.
Example Response¶
STATUS: 200 OK
{
"flatVariables": {
"points": 10.0,
"transactionId": ""
},
"customerId": "91d87e1c-56f4-43ce-b669-83d6420b806c",
"type": "PointsWereAdded",
"createdAt": "2022-02-15T10:36:50+01:00",
"variables": [
{
"key": "points",
"value": 10.0
},
{
"key": "transactionId",
"value": ""
},
{
"key": "comment"
}
],
"pointsBalance": 110.0
},
{
"flatVariables": [],
"customerId": "91d87e1c-56f4-43ce-b669-83d6420b806c",
"type": "CustomerWasActivated",
"createdAt": "2022-02-15T10:34:09+01:00",
"variables": []
},
Note
The information in response may vary depends on the loyalty program configuration. Here is an example of all possible information combine.
Get customers¶
To get a list of customers, you need to call the /api/<storeCode>/customer/
endpoint with the GET
method.
Definition¶
GET /api/<storeCode>/customer
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store to get the customers from. |
firstName | request | (optional) Customer’s first name |
lastName | request | (optional) Customer’s last name |
phone | request | (optional) Customer’s phone |
request | (optional) Customer’s email address | |
loyaltyCardNumber | request | (optional) Customer’s loyalty card number |
transactionsAmountFrom | request | (optional) Customer’s transactions amount lower limit |
transactionsAmountTo | request | (optional) Customer’s transactions amount upper limit |
averageTransactionAmountFrom | request | (optional) Customer’s average transaction amount lower limit |
averageTransactionAmountTo | request | (optional) Customer’s average transaction amount upper limit |
transactionsCountFrom | request | (optional) Customer’s transactions count lower limit |
transactionsCountTo | request | (optional) Customer’s transactions count upper limit |
daysFromLastTransactionTo | request | (optional) Customers days from last transaction upper limit |
hoursFromLastUpdateTo | request | (optional) Customer’s hours from last update upper limit |
strict | query | (optional) If true, search for exact value, otherwise like value
For example 1 , by default = 0 |
labels | query | (optional) Filter transactions by labels. Format “labels[0][key]=label_key & labels[0][value]=first_value & labels[1][key]=another_key” |
page | query | (optional) Start from page, by default 1 |
perPage | query | (optional) Number of items to display per page, by default = 10 |
sort | query | (optional) Sort by column name.
Note: column names corresponding to parameters ending in From or
To do not have this suffix, eg. transactionCount ,
averageTransactionAmount . |
direction | query | (optional) Direction of sorting [ASC, DESC] |
scrollId | query | (optional) Scroll search id retrieved from a first search results. Use empty value to init scroll API. Default is standard search. |
_locale | query | (optional) Retrieves data in given locale |
Example¶
curl http://localhost:8181/api/DEFAULT/customer \
-X "GET" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..."
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Attention
Pagination limitation, we can only show 10,000 results. 10,000 is a limit and can be found in the .env file. Scroll API allows to retrieve more results. To achieve that you need to use scrollId value received from the first search. Use empty scrollId value to init Scroll API. Use received scrollId as a query parameter on the consecutive search calls. Each subsequent search call using given scrollId will return next results set respecting perPage parameter.
Example Response¶
STATUS: 200 OK
{
"customers": [
{
"customerId": "41fd3247-2069-4677-8904-584f0ed9f6be",
"active": true,
"firstName": "test",
"lastName": "test",
"email": "test4@example.com",
"address": {},
"createdAt": "2018-02-02T11:39:17+0100",
"levelId": "000096cf-32a3-43bd-9034-4df343e5fd93",
"agreement1": true,
"agreement2": false,
"agreement3": false,
"updatedAt": "2018-02-02T11:39:28+0100",
"campaignPurchases": [],
"transactionsCount": 0,
"transactionsAmount": 0,
"transactionsAmountWithoutDeliveryCosts": 0,
"amountExcludedForLevel": 0,
"averageTransactionAmount": 0,
"currency": "eur",
"levelPercent": "14.00%"
},
{
"customerId": "142cbe32-da28-42d0-87aa-f93f3e1ebb91",
"active": true,
"firstName": "test",
"lastName": "test",
"email": "test3@example.com",
"address": {},
"createdAt": "2018-02-02T11:38:19+0100",
"levelId": "000096cf-32a3-43bd-9034-4df343e5fd93",
"agreement1": true,
"agreement2": false,
"agreement3": false,
"updatedAt": "2018-02-02T11:38:20+0100",
"campaignPurchases": [],
"transactionsCount": 0,
"transactionsAmount": 0,
"transactionsAmountWithoutDeliveryCosts": 0,
"amountExcludedForLevel": 0,
"averageTransactionAmount": 0,
"currency": "eur",
"levelPercent": "14.00%"
}
],
"total": 2,
"scrollId": "DnF1ZXJ5VG..."
}
Example¶
curl http://localhost:8181/api/DEFAULT/customer \
-X "GET" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..."
-d "email=example.com" \
-d "strict=0" \
-d "page=1" \
-d "perPage=2" \
-d "sort=customerId" \
-d "direction=asc"
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Example Response¶
STATUS: 200 OK
{
"customers": [
{
"customerId": "00000000-0000-474c-b092-b0dd880c07e2",
"active": true,
"firstName": "Jane",
"lastName": "Doe",
"gender": "male",
"email": "user-temp@example.com",
"phone": "111112222",
"birthDate": "1990-09-11T02:00:00+0200",
"address": {
"street": "Bagno",
"address1": "1",
"province": "Mazowieckie",
"city": "Warszawa",
"postal": "00-000",
"country": "PL"
},
"loyaltyCardNumber": "0000",
"createdAt": "2016-08-08T10:53:14+0200",
"levelId": "000096cf-32a3-43bd-9034-4df343e5fd93",
"agreement1": false,
"agreement2": false,
"agreement3": false,
"updatedAt": "2018-02-02T11:23:18+0100",
"campaignPurchases": [],
"transactionsCount": 1,
"transactionsAmount": 3,
"transactionsAmountWithoutDeliveryCosts": 3,
"amountExcludedForLevel": 0,
"averageTransactionAmount": 3,
"lastTransactionDate": "2018-02-03T11:23:21+0100",
"currency": "eur",
"levelPercent": "14.00%"
},
{
"customerId": "00000000-0000-474c-b092-b0dd880c07e1",
"active": false,
"firstName": "John",
"lastName": "Doe",
"gender": "male",
"email": "user@example.com",
"phone": "11111",
"birthDate": "1990-09-11T02:00:00+0200",
"createdAt": "2016-08-08T10:53:14+0200",
"levelId": "000096cf-32a3-43bd-9034-4df343e5fd93",
"agreement1": false,
"agreement2": false,
"agreement3": false,
"updatedAt": "2018-02-02T11:23:17+0100",
"campaignPurchases": [],
"transactionsCount": 1,
"transactionsAmount": 3,
"transactionsAmountWithoutDeliveryCosts": 3,
"amountExcludedForLevel": 0,
"averageTransactionAmount": 3,
"lastTransactionDate": "2018-02-03T11:23:21+0100",
"currency": "eur",
"levelPercent": "14.00%"
}
],
"total": 2,
"scrollId": "DnF1ZXJ5VG..."
}
Example¶
curl http://localhost:8181/api/DEFAULT/customer \
-X "GET" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..."
-d "email=example.com" \
-d "strict=1" \
-d "page=1" \
-d "perPage=2" \
-d "sort=customerId" \
-d "direction=asc"
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Get a customer list as an admin¶
To get a list of all customers, you need to call the /api/<storeCode>/admin/customer
endpoint with the GET
method.
Definition¶
GET /api/<storeCode>/admin/customer
Parameter | Parameter type | Description | ||||
---|---|---|---|---|
Authorization | header | Token received during authentication | ||||
<storeCode> | query | Code of the store to get the customers from. | ||
firstName | request | (optional) Customer’s first name | ||
lastName | request | (optional) Customer’s last name | ||
phone | request | (optional) Customer’s phone | ||
request | (optional) Customer’s email address | |||
loyaltyCardNumber | request | (optional) Customer’s loyalty card number | ||
transactionsAmountFrom | request | (optional) Customer’s transactions amount lower limit | ||
transactionsAmountTo | request | (optional) Customer’s transactions amount upper limit | ||
averageTransactionAmountFrom | request | (optional) Customer’s average transaction amount lower limit | ||
averageTransactionAmountTo | request | (optional) Customer’s average transaction amount upper limit | ||
transactionsCountFrom | request | (optional) Customer’s transactions count lower limit | ||
transactionsCountTo | request | (optional) Customer’s transactions count upper limit | ||
daysFromLastTransactionTo | request | (optional) Customers days from last transaction upper limit | ||
hoursFromLastUpdateTo | request | (optional) Customer’s hours from last update upper limit | ||
strict | query | (optional) If true, search for exact value, otherwise like value
For example 1 , by default = 0 |
||
page | query | (optional) Start from page, by default 1 | ||
perPage | query | (optional) Number of items to display per page, by default = 10 | ||
sort | query | (optional) Sort by column name.
Note: column names corresponding to parameters ending in From or
To do not have this suffix, eg. transactionCount ,
averageTransactionAmount . |
||
direction | query | (optional) Direction of sorting [ASC, DESC] | ||
scrollId | query | (optional) Scroll search id retrieved from a first search results. Use empty value to init scroll API. Default is standard search. | ||
_locale | query | (optional) Retrieves data in given locale |
Example¶
curl http://localhost:8181/api/DEFAULT/admin/customer \
-X "GET" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..." \
-d "email=example.com" \
-d "strict=0" \
-d "page=1" \
-d "perPage=2" \
-d "sort=customerId" \
-d "direction=asc"
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Attention
Pagination limitation, we can only show 10,000 results. 10,000 is a limit and can be found in the .env file. Scroll API allows to retrieve more results. To achieve that you need to use scrollId value received from the first search. Use empty scrollId value to init Scroll API. Use received scrollId as a query parameter on the consecutive search calls. Each subsequent search call using given scrollId will return next results set respecting perPage parameter.
Example Response¶
STATUS: 200 OK
{
"customers": [
{
"customerId": "41fd3247-2069-4677-8904-584f0ed9f6be",
"active": true,
"firstName": "test",
"lastName": "test",
"email": "test4@example.com",
"address": {},
"createdAt": "2018-02-02T11:39:17+0100",
"levelId": "000096cf-32a3-43bd-9034-4df343e5fd93",
"agreement1": true,
"agreement2": false,
"agreement3": false,
"updatedAt": "2018-02-02T11:39:28+0100",
"campaignPurchases": [],
"transactionsCount": 0,
"transactionsAmount": 0,
"transactionsAmountWithoutDeliveryCosts": 0,
"amountExcludedForLevel": 0,
"averageTransactionAmount": 0,
"currency": "eur",
"levelPercent": "14.00%"
},
{
"customerId": "142cbe32-da28-42d0-87aa-f93f3e1ebb91",
"active": true,
"firstName": "test",
"lastName": "test",
"email": "test3@example.com",
"address": {},
"createdAt": "2018-02-02T11:38:19+0100",
"levelId": "000096cf-32a3-43bd-9034-4df343e5fd93",
"agreement1": true,
"agreement2": false,
"agreement3": false,
"updatedAt": "2018-02-02T11:38:20+0100",
"campaignPurchases": [],
"transactionsCount": 0,
"transactionsAmount": 0,
"transactionsAmountWithoutDeliveryCosts": 0,
"amountExcludedForLevel": 0,
"averageTransactionAmount": 0,
"currency": "eur",
"levelPercent": "14.00%"
}
],
"total": 2,
"scrollId": "DnF1ZXJ5VG..."
}
Activate a customer using SMS activation token¶
To activate a customer using a token (sms code), you need to call the /api/<storeCode>/customer/activate-sms/<token>
endpoint with the POST
method.
Definition¶
POST /api/<storeCode>/customer/activate-sms/<token>
Parameter | Parameter type | Description |
---|---|---|
<storeCode> | query | Code of the store the customer to be activated belongs to. |
<token> | request | Customer’s token, SMS activation code |
Example¶
curl http://localhost:8181/api/DEFAULT/customer/activate-sms/954604\
-X "POST" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded"
Note
The token = 954604 is an example value. Your value may be different.
Activate a customer using activation token¶
To activate a customer using a token, you need to call the /api/<storeCode>/customer/activate/<token>
endpoint with the POST
method.
Definition¶
POST /api/<storeCode>/customer/activate/<token>
Parameter | Parameter type | Description |
---|---|---|
<storeCode> | query | Code of the store the customer to be activated belongs to. |
<token> | request | Customer’s token |
Example¶
curl http://localhost:8181/api/DEFAULT/customer/activate/abcde \
-X "POST" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..."
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Note
The token = abcde is an example value. Your value may be different.
For testing, the value can be checked in the database, table ol_user
, field action_token
.
Anonymize customer¶
To anonymize the customer, you need to call the /api/<storeCode>/admin/customer/<customer>/anonymize
endpoint with the POST
method.
Definition¶
POST /api/<storeCode>/admin/customer/<customer>/anonymize
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store the customer belongs to. |
<customer> | query | Customer UUID |
Example¶
curl http://localhost:8181/api/DEFAULT/admin/customer/c9be6a4e-9a21-414a-bbbd-f506d9ffad85/anonymize \
-X "POST" \
-H "Accept:\ application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..."
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Check if customer with given phone number or email exists¶
To check if a customer with a given phone number or email exists, you need to call the /api/<storeCode>/customer/check
endpoint with the GET
method.
Definition¶
GET /api/<storeCode>/customer/check
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store to check for customers. |
emailOrPhone | request | Customer’s email or phone |
Example¶
curl http://localhost:8181/api/DEFAULT/customer/check?emailOrPhone=899000333 \
-X "GET" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..."
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Create a new customer¶
To create a new customer, you need to call the /api/<storeCode>/customer/register
endpoint with the POST
method.
Note
This endpoint allows you to set more customer parameters than /api/<storeCode>/customer/self_register
and is used when creating a new customer in the admin cockpit. The self register endpoint is used in the client
cockpit for registration and has some limitations.
Definition¶
POST /api/<storeCode>/customer/register
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store to register the customer in. |
customer[firstName] | request | First name |
customer[lastName] | request | Last name |
customer[gender] | request | (optional) Gender. Possible values male , female ,
not_disclosed |
customer[email] | request | E-mail address (unique) |
customer[phone] | request | (optional) A phone number (unique) |
customer[birthDate] | request | (optional) Birth date in format YYYY-MM-DD HH:mm,
for example 2017-10-05 . |
customer[createdAt] | request | (optional) Created at in format YYYY-MM-DD HH:mm:ss,
for example 2017-01-01 14:15:16 . |
customer[address][street] | request | (optional) Street name |
customer[address][address1] | request | (optional) Building number |
customer[address][address2] | request | (optional) Flat/Unit name |
customer[address][postal] | request | (optional) Post code |
customer[address][city] | request | (optional) City name |
customer[address][province] | request | (optional) Province name |
customer[address][country] | request | (optional) Country name |
customer[company][name] | request | (optional) Company name |
customer[company][nip] | request | (optional) Tax ID |
customer[loyaltyCardNumber] | request | (optional) Loyalty card number (unique) |
customer[labels] | request | (optional) String of labels in form of key1:val1;key2:val2 |
customer[agreement1] | request | First agreement. Set 1 if true, otherwise 0 |
customer[agreement2] | request | (optional) Second agreement. Set 1 if true, otherwise 0 |
customer[agreement3] | request | (optional) Third agreement. Set 1 if true, otherwise 0 |
customer[invitationToken] | request | (optional) Invitation token |
Example¶
curl http://localhost:8181/api/DEFAULT/customer/register \
-X "POST" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..." \
-d "customer[firstName]=John" \
-d "customer[lastName]=Kowalski" \
-d "customer[email]=john4@example.com" \
-d "customer[phone]=000000005000" \
-d "customer[agreement1]=1"
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Example Response¶
STATUS: 200 OK
{
"customerId": "e0eb0355-8aaa-4fb1-8159-f58e81b7a25c",
"email": "john4@example.com"
}
Example¶
curl http://localhost:8181/api/DEFAULT/customer/register \
-X "POST" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..." \
-d "customer[firstName]=John" \
-d "customer[lastName]=Kowalski" \
-d "customer[email]=john3@example.com" \
-d "customer[phone]=000000004000" \
-d "customer[birthDate]=1990-01-01" \
-d "customer[address][street]=Street" \
-d "customer[address][postal]=00-000" \
-d "customer[address][city]=Wroclaw" \
-d "customer[address][province]=Dolnoslaskie" \
-d "customer[address][country]=Poland" \
-d "customer[company][nip]=111-222-33-44" \
-d "customer[company][name]=Company+name" \
-d "customer[loyaltyCardNumber]=00000000000000002" \
-d "customer[agreement1]=1" \
-d "customer[agreement2]=1" \
-d "customer[agreement3]=1"
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Example Response¶
STATUS: 200 OK
{
"customerId": "e0eb0355-8aaa-4fb1-8159-f58e81b7a25c",
"email": "john3@example.com"
}
Example¶
curl http://localhost:8181/api/DEFAULT/customer/register \
-X "POST" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..."
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Example Response¶
STATUS: 400 Bad Request
{
"form": {
"children": {
"firstName": {},
"lastName": {},
"gender": {},
"email": {},
"phone": {},
"birthDate": {},
"createdAt": {},
"address": {
"children": {
"street": {},
"address1": {},
"address2": {},
"postal": {},
"city": {},
"province": {},
"country": {}
}
},
"company": {
"children": {
"name": {},
"nip": {}
}
},
"loyaltyCardNumber": {},
"agreement1": {},
"agreement2": {},
"agreement3": {},
"levelId": {},
"posId": {},
"sellerId": {}
}
},
"errors": []
}
Get customer details¶
To get details about a customer, you need to call the /api/<storeCode>/customer/<customer>
endpoint with the GET
method.
Definition¶
GET /api/<storeCode>/customer/<customer>
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store to get the customer from. |
<customer> | query | Customer ID |
Example¶
curl http://localhost:8181/api/DEFAULT/customer/00000000-0000-474c-b092-b0dd880c07e1 \
-X "GET" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..."
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Example Response¶
STATUS: 200 OK
{
"customerId": "00000000-0000-474c-b092-b0dd880c07e1",
"active": true,
"firstName": "John",
"lastName": "Doe",
"gender": "male",
"email": "user@example.com",
"phone": "+48234234000",
"birthDate": "1990-09-11T02:00:00+0200",
"lastLevelRecalculation": "2019-03-19T12:00:09+0100",
"loyaltyCardNumber": "47834433524",
"createdAt": "2016-08-08T10:53:14+0200",
"id": "e82c96cf-32a3-43bd-9034-4df343e50000",
"levelId": "e82c96cf-32a3-43bd-9034-4df343e50000",
"agreement1": false,
"agreement2": false,
"agreement3": false,
"status": {
"availableTypes": [
"new",
"active",
"blocked",
"deleted"
],
"availableStates": [
"no-card",
"card-sent",
"with-card"
],
"type": "active",
"state": "no-card"
},
"updatedAt": "2019-03-19T11:52:49+0100",
"campaignPurchases": [],
"transactionsCount": 2,
"transactionsAmount": 3,
"transactionsAmountWithoutDeliveryCosts": 3,
"amountExcludedForLevel": 0,
"averageTransactionAmount": 1.5,
"lastTransactionDate": "2019-03-20T11:52:56+0100",
"labels": [],
"level": {
"levelId": {
"id": "e82c96cf-32a3-43bd-9034-4df343e50000",
"levelId": "e82c96cf-32a3-43bd-9034-4df343e50000"
},
"name": "level0",
"translations": {
"en": {
"name": "level0"
},
"pl": {
"name": "poziom0"
}
}
},
"version": 7,
"currency": "eur",
"segments": [],
"levelPercent": "0.00%"
}
Update a customer¶
To update an existing customer, you need to call the /api/<storeCode>/customer/<customer>
endpoint with the PUT
method.
Note
The fields you omit will not be affected. The fields you include and leave empty will have their current values removed.
Eg. customer[email]=&customer[loyaltyCardNumber]=000012
will set loyaltyCardNumber, erase email and leave all other fields unaffected.
Note
All simple fields can be updated separately, but compound fields (address, company) must be updated as a whole. Any attempt to update only one of the address fields will result in deleting other parts of the address. Any attempt to update only the name or NIP will result in error code 500.
Definition¶
PUT /api/<storeCode>/customer/<customer>
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store the updated customer belongs to. |
<customer> | query | Customer ID |
customer[firstName] | request | (optional) First name |
customer[lastName] | request | (optional) Last name |
customer[gender] | request | (optional) Gender. Possible values male , female |
customer[email] | request | (optional) (unique) E-mail address |
customer[phone] | request | (optional) A phone number (unique) |
customer[birthDate] | request | (optional) Birth date in format YYYY-MM-DD HH:mm, for example 2017-10-05 |
customer[createdAt] | request | (optional) Created at in format YYYY-MM-DD HH:mm:ss, for example 2017-01-01 14:15:16 . |
customer[address][street] | request | (optional) Street name |
customer[address][address1] | request | (optional) Building number |
customer[address][address2] | request | (optional) Flat/Unit name |
customer[address][postal] | request | (optional) Post code |
customer[address][city] | request | (optional) City name |
customer[address][province] | request | (optional) Province name |
customer[address][country] | request | (optional) Country name |
customer[company][name] | request | (optional) Company name |
customer[company][nip] | request | (optional) Tax ID |
customer[loyaltyCardNumber] | request | (optional) Loyalty card number (unique) |
customer[labels] | request | (optional) String of labels in form of key1:val1;key2:val2 . |
customer[agreement1] | request | (optional) First agreement. Set 1 if true, otherwise 0 |
customer[agreement2] | request | (optional) Second agreement. Set 1 if true, otherwise 0 |
customer[agreement3] | request | (optional) Third agreement. Set 1 if true, otherwise 0 |
Example¶
curl http://localhost:8181/api/DEFAULT/customer/e0eb0355-8aaa-4fb1-8159-f58e81b7a25c \
-X "PUT" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..." \
-d "customer[email]=john4@example.com" \
-d "customer[phone]=" \
-d "customer[agreement2]=1"
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Example Response¶
STATUS: 200 OK
{
"customerId": "e0eb0355-8aaa-4fb1-8159-f58e81b7a25c"
}
Note
In earlier versions, this endpoint returned user data after performing an update. This feature was removed because in certain circumstances old data from before the update could be returned. Use GET /api/customer/<customer> after the update to always get the up-to-date values instead.
Example¶
curl http://localhost:8181/api/DEFAULT/customer/e0eb0355-8aaa-4fb1-8159-f58e81b7a25c \
-X "PUT" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..." \
-d "customer[phone]=+440000000"
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Example Response¶
STATUS: 400 Bad Request
{
"form": {
"children": {
"firstName": {},
"lastName": {},
"gender": {},
"email": {},
"phone": {
"errors": [
"This value is not a valid phone number."
]
},
"birthDate": {},
"createdAt": {},
"address": {
"children": {
"street": {},
"address1": {},
"address2": {},
"postal": {},
"city": {},
"province": {},
"country": {}
}
},
"company": {
"children": {
"name": {},
"nip": {}
}
},
"loyaltyCardNumber": {},
"labels": {},
"agreement1": {},
"agreement2": {},
"agreement3": {},
"levelId": {},
"posId": {},
"sellerId": {}
}
},
"errors": []
}
Confirm a change of authentication credential¶
To activate a change of phone number when it is used as a log in credential, you need to call /api/<storeCode>/customer/confirm-change/<token>
endpoint with the POST
method.
Definition¶
POST /api/<storeCode>/customer/confirm-change/<token>
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store the customer belongs to. |
<token> | request | Customer’s token, SMS activation code |
Example¶
curl http://localhost:8181/api/DEFAULT/customer/confirm-change/153105\
-X "POST" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..."
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value can be different. Read more about Authorization here.
Note
The token = 153105 is an example value. Your value can be different.
Customer registrations¶
To get information about customer registrations, you need to call the /api/<storeCode>/customer/registrations
endpoint with the GET
method.
Definition¶
GET /api/<storeCode>/customer/registrations
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store the customers belong to. |
<interval> | request | Group result by (day|month|year) |
<lastDays> | request | Display data in last days |
Example¶
curl http://localhost:8181/api/DEFAULT/customer/registrations \
-X "GET" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..."
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Example Response¶
STATUS: 200 OK
{
"2018-01-06": 0,
"2018-01-07": 0,
"2018-01-08": 0,
"2018-01-09": 0,
"2018-01-10": 0,
"2018-01-11": 0,
"2018-01-12": 0,
"2018-01-13": 0,
"2018-01-14": 0,
"2018-01-15": 0,
"2018-01-16": 0,
"2018-01-17": 0,
"2018-01-18": 0,
"2018-01-19": 0,
"2018-01-20": 0,
"2018-01-21": 0,
"2018-01-22": 0,
"2018-01-23": 0,
"2018-01-24": 0,
"2018-01-25": 0,
"2018-01-26": 0,
"2018-01-27": 0,
"2018-01-28": 0,
"2018-01-29": 0,
"2018-01-30": 0,
"2018-01-31": 0,
"2018-02-01": 0,
"2018-02-02": 5,
"2018-02-03": 0,
"2018-02-04": 0
}
Remove customer’s avatar¶
To remove the avatar of a customer using an admin token, you need to call the /api/<storeCode>/customer/<customer>/avatar
endpoint with the DELETE
method.
Definition¶
DELETE /api/<storeCode>/customer/<customer>/avatar
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store the customer belongs to. |
<customer> | query | Customer ID |
Example¶
curl http://localhost:8181/api/DEFAULT/customer/1cb6d205-8b77-40e1-a801-052185ed52d9/avatar \
-X "DELETE" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..."
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Example Response¶
STATUS: 204 No Content
Get a customer’s avatar¶
To get a customer’s avatar using an admin token, you need to call the /api/<storeCode>/customer/<customer>/avatar
endpoint with the GET
method.
Definition¶
GET /api/<storeCode>/customer/<customer>/avatar
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store the customer belongs to. |
<customer> | query | Customer ID |
Example¶
curl http://localhost:8181/api/DEFAULT/customer/1cb6d205-8b77-40e1-a801-052185ed52d9/avatar \
-X "GET" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..."
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Example Response¶
STATUS: 204 No Content
Set customer’s avatar¶
To set a customer’s avatar using an admin token, you need to call the /api/<storeCode>/customer/<customer>/avatar
endpoint with the POST
method.
Definition¶
POST /api/<storeCode>/customer/<customer>/avatar
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store the customer belongs to. |
<customer> | query | Customer ID |
avatar[file] | request | Avatar file |
Example¶
curl http://localhost:8181/api/DEFAULT/customer/1cb6d205-8b77-40e1-a801-052185ed52d9/avatar \
-X "POST" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..." \
-d "avatar[file]=C:\\fakepath\\avatar.jpg"
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Note
The photo[file]=C:fakepathavatar.png is an example value. Your value may be different.
Example Response¶
STATUS: 204 No Content
Assign a customer to a level¶
To assign a customer to a level using an admin token, you need to call the /api/<storeCode>/customer/<customer>/level
endpoint with the POST
method.
Definition¶
POST /api/<storeCode>/customer/<customer>/level
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store the customer belongs to. |
<customer> | query | Customer ID |
levelId | request | Level ID |
Example¶
curl http://localhost:8181/api/DEFAULT/customer/1cb6d205-8b77-40e1-a801-052185ed52d9/level \
-X "POST" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..." \
-d "levelId=e82c96cf-32a3-43bd-9034-4df343e52222"
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Assign a POS to a customer¶
To assign a POS to a customer using an admin token, you need to call the /api/<storeCode>/customer/<customer>/pos
endpoint with the POST
method.
Definition¶
POST /api/<storeCode>/customer/<customer>/pos
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store the customer belongs to. |
<customer> | query | Customer ID |
posId | request | POS ID |
Example¶
curl http://localhost:8181/api/DEFAULT/customer/1cb6d205-8b77-40e1-a801-052185ed52d9/pos \
-X "POST" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..." \
-d "posId=00000000-0000-474c-1111-b0dd880c07e3"
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
List Pushy tokens¶
To list pushy tokens using an admin token, you need to call the /api/<storeCode>/customer/<customer>/pushy-token
endpoint with the GET
method.
Definition¶
GET /api/<storeCode>/customer/<customer>/pushy-token
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store the customer belongs to. |
<customer> | query | Customer’s ID |
Example¶
curl http://localhost:8181/api/DEFAULT/customer/1cb6d205-8b77-40e1-a801-052185ed52d9/pushy-token \
-X "GET" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..."
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Example Response¶
STATUS: 200 OK
{
"tokens": [
"pushy_token"
]
}
Add a Pushy token¶
To add a Pushy token to a customer using an admin token, you need to call the /api/<storeCode>/customer/<customer>/pushy-token
endpoint with the POST
method.
Definition¶
POST /api/<storeCode>/customer/<customer>/pushy-token
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store the customer belongs to. |
<customer> | query | Customer ID |
customer[pushyToken] | request | Customer’s pushy Token |
Example¶
curl http://localhost:8181/api/DEFAULT/customer/1cb6d205-8b77-40e1-a801-052185ed52d9/pushy-token \
-X "POST" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..." \
-d "customer[pushyToken]=pushy_token"
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Example Response¶
STATUS: 204 No Content
Remove a Pushy token¶
To remove a pushy token, you need to call the /api/<storeCode>/customer/<customer>/pushy-token/<tokenToRemove>
endpoint with the DELETE
method.
Definition¶
DELETE /api/<storeCode>/customer/<customer>/pushy-token/<tokenToRemove>
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store the customer belongs to. |
<customer> | query | Customer ID |
<tokenToRemove> | query | Pushy token to remove |
Example¶
curl http://localhost:8181/api/DEFAULT/customer/1cb6d205-8b77-40e1-a801-052185ed52d9/pushy-token/pushy_token \
-X "DELETE" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..."
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Example Response¶
STATUS: 204 No Content
Remove a customer from a manually assigned level¶
To unassign a customer from a manually assigned level using a token, you need to call the /api/<storeCode>/customer/<customer>/remove-manually-level
endpoint with the POST
method.
Definition¶
POST /api/<storeCode>/customer/<customer>/remove-manually-level
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store the customer belongs to. |
<customer> | query | Customer ID |
Example¶
curl http://localhost:8181/api/DEFAULT/customer/1cb6d205-8b77-40e1-a801-052185ed52d9/remove-manually-level \
-X "POST" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..."
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Example Response¶
STATUS: 204 No Content
Customer status (customer)¶
To retrieve the status of a customer, you need to call the /api/<storeCode>/customer/customer/<customer>/status
endpoint with the GET
method.
Definition¶
GET /api/<storeCode>/customer/customer/<customer>/status
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store the customer belongs to. |
<customer> | query | Customer UUID |
Example¶
curl http://localhost:8181/api/DEFAULT/customer/customer/00000000-0000-474c-b092-b0dd880c07e1/status \
-X "GET" \
-H "Accept:\ application/json" \
-H "Content-type:\ application/x-www-form-urlencoded" \
-H "Authorization:\ Bearer\ eyJhbGciOiJSUzI1NiIsInR5cCI6..."
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Example Response¶
STATUS: 200 OK
{
"firstName": "John",
"lastName": "Doe",
"customerId": "00000000-0000-474c-b092-b0dd880c07e1",
"points": 161.9,
"p2pPoints": 0,
"totalEarnedPoints": 274.9,
"usedPoints": 25,
"expiredPoints": 88,
"lockedPoints": 0,
"level": "0.00%",
"levelName": "level0",
"levelConditionValue": 0,
"nextLevel": "5.00%",
"nextLevelName": "level1",
"nextLevelConditionValue": 20,
"transactionsAmountWithoutDeliveryCosts": 3,
"transactionsAmountToNextLevel": 17,
"averageTransactionsAmount": "1.50",
"transactionsCount": 2,
"transactionsAmount": 3,
"currency": "eur",
"pointsExpiringNextMonth": 161.9,
"pointsExpiringBreakdown": {
"2019-04-14": 33,
"2019-04-15": 116.9,
"2019-04-17": 12
}
}
Customer status (seller)¶
To retrieve the status of specific customer, you need to call the /api/<storeCode>/seller/customer/<customer>/status
endpoint with the GET
method.
Definition¶
GET /api/<storeCode>/seller/customer/<customer>/status
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store the customer belongs to. |
<customer> | query | Customer UUID |
Example¶
curl http://localhost:8181/api/DEFAULT/seller/customer/00000000-0000-474c-b092-b0dd880c07e1/status \
-X "GET" \
-H "Accept:\ application/json" \
-H "Content-type:\ application/x-www-form-urlencoded" \
-H "Authorization:\ Bearer\ eyJhbGciOiJSUzI1NiIsInR5cCI6..."
Note
When using endpoints starting with /api/<storeCode>/seller
, you need to authorize using seller account credentials.
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Example Response¶
STATUS: 200 OK
{
"firstName": "John",
"lastName": "Doe",
"customerId": "00000000-0000-474c-b092-b0dd880c07e1",
"points": 161.9,
"p2pPoints": 0,
"totalEarnedPoints": 274.9,
"usedPoints": 25,
"expiredPoints": 88,
"lockedPoints": 0,
"level": "0.00%",
"levelName": "level0",
"levelConditionValue": 0,
"nextLevel": "5.00%",
"nextLevelName": "level1",
"nextLevelConditionValue": 20,
"transactionsAmountWithoutDeliveryCosts": 3,
"transactionsAmountToNextLevel": 17,
"averageTransactionsAmount": "1.50",
"transactionsCount": 2,
"transactionsAmount": 3,
"currency": "eur",
"pointsExpiringNextMonth": 161.9,
"pointsExpiringBreakdown": {
"2019-04-14": 33,
"2019-04-15": 116.9,
"2019-04-17": 12
}
}
Send an activation code to a customer as an admin¶
To send an SMS activation code to specific customer, you need to call the /api/<storeCode>/admin/customer/<customer>/send-sms-code
endpoint with the POST
method.
Definition¶
POST /api/<storeCode>/admin/customer/<customer>/send-sms-code
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store the customer belongs to. |
<customer> | query | Customer UUID |
Example¶
curl http://localhost:8181/api/DEFAULT/admin/customer/00000000-0000-474c-b092-b0dd880c07e1/send-sms-code \
-X "POST" \
-H "Accept:\ application/json" \
-H "Content-type:\ application/x-www-form-urlencoded" \
-H "Authorization:\ Bearer\ eyJhbGciOiJSUzI1NiIsInR5cCI6..."
Note
When using endpoints starting with /api/<storeCode>/admin
, you need to authorize using admin account credentials.
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Example Response¶
STATUS: 200 OK
Send an activation token as a customer¶
To send/resend an sms activation code, you need to call the /api/<storeCode>/customer/customer-phone/send-sms-code
endpoint with the POST
method.
Definition¶
POST /api/<storeCode>/customer/customer-phone/send-sms-code
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store the customer belongs to. |
Example¶
curl http://localhost:8181/api/DEFAULT/customer/customer-phone/send-sms-code \
-X "POST" \
-H "Accept:\ application/json" \
-H "Content-type:\ application/x-www-form-urlencoded" \
-H "Authorization:\ Bearer\ eyJhbGciOiJSUzI1NiIsInR5cCI6..."
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Example Response¶
STATUS: 200 OK
Send SMS activation code as a seller¶
To send an SMS activation code to a specific customer, you need to call the /api/<storeCode>/seller/customer/<customer>/send-sms-code
endpoint with the POST
method.
Definition¶
POST /api/<storeCode>/seller/customer/<customer>/send-sms-code
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store the customer belongs to. |
<customer> | query | Customer UUID |
Example¶
curl http://localhost:8181/api/DEFAULT/seller/customer/00000000-0000-474c-b092-b0dd880c07e1/send-sms-code \
-X "POST" \
-H "Accept:\ application/json" \
-H "Content-type:\ application/x-www-form-urlencoded" \
-H "Authorization:\ Bearer\ eyJhbGciOiJSUzI1NiIsInR5cCI6..."
Note
When using endpoints starting with /api/<storeCode>/seller
, you need to authorize using seller account credentials.
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Assign a POS to a customer as a seller¶
To assign a POS to specific customer, you need to call the /api/<storeCode>/seller/customer/<customer>/pos
endpoint with the POST
method.
Definition¶
POST /api/<storeCode>/seller/customer/<customer>/pos
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store the customer belongs to. |
<customer> | query | Customer UUID |
posId | query | POS UUID |
Example¶
curl http://localhost:8181/api/DEFAULT/seller/customer/00000000-0000-474c-b092-b0dd880c07e1/pos \
-X "POST" \
-H "Accept:\ application/json" \
-H "Content-type:\ application/x-www-form-urlencoded" \
-H "Authorization:\ Bearer\ eyJhbGciOiJSUzI1NiIsInR5cCI6..." \
-d "posId=00000000-0000-474c-1111-b0dd880c07e3"
Note
When using endpoints starting with /api/<storeCode>/seller
, you need to authorize using seller account credentials.
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Note
The posId = 00000000-0000-474c-1111-b0dd880c07e3 and customer = 00000000-0000-474c-b092-b0dd880c07e1 are example values. Your values may be different.
Example Response¶
STATUS: 200 OK
Activate a customer as a seller¶
To activate a specific customer, you need to call the /api/<storeCode>/seller/customer/<customer>/activate
endpoint with the POST
method.
Definition¶
POST /api/<storeCode>/seller/customer/<customer>/activate
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store the customer belongs to. |
<customer> | query | Customer UUID |
Example¶
curl http://localhost:8181/api/DEFAULT/seller/customer/00000000-0000-474c-b092-b0dd880c07e1/activate \
-X "POST" \
-H "Accept:\ application/json" \
-H "Content-type:\ application/x-www-form-urlencoded" \
-H "Authorization:\ Bearer\ eyJhbGciOiJSUzI1NiIsInR5cCI6..."
Note
When using endpoints starting with /api/<storeCode>/seller
, you need to authorize using seller account credentials.
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Note
The customerId = 00000000-0000-474c-b092-b0dd880c07e1 id is an example value. Your value may be different.
Example Response¶
STATUS: 200 OK
Deactivate a customer as a seller¶
To deactivate a specific customer, you need to call the /api/<storeCode>/seller/customer/<customer>/deactivate
endpoint with the POST
method.
Definition¶
POST /api/<storeCode>/seller/customer/<customer>/deactivate
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store the customer belongs to. |
<customer> | query | Customer UUID |
Example¶
curl http://localhost:8181/api/DEFAULT/seller/customer/00000000-0000-474c-b092-b0dd880c07e1/deactivate \
-X "POST" \
-H "Accept:\ application/json" \
-H "Content-type:\ application/x-www-form-urlencoded" \
-H "Authorization:\ Bearer\ eyJhbGciOiJSUzI1NiIsInR5cCI6..."
Note
When using endpoints starting with /api/<storeCode>/seller
, you need to authorize using seller account credentials.
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Note
The customerId = 00000000-0000-474c-b092-b0dd880c07e1 id is an example value. Your value may be different.
Example Response¶
STATUS: 200 OK
Register new customer as a seller¶
To register a customer, you need to call the /api/<storeCode>/seller/customer/register
endpoint with the POST
method.
Definition¶
POST /api/<storeCode>/seller/customer/register
Note
This endpoint allows you to set more customer parameters than /api/<storeCode>/customer/self_register
and is used when creating
a new customer in the admin cockpit or POS cockpit. The self register endpoint is used in the client cockpit for registration
and has some limitations.
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store the customer will belong to. |
customer[firstName] | request | First name |
customer[lastName] | request | Last name |
customer[gender] | request | (optional) Gender. Possible values male , female , not_disclosed |
customer[email] | request | (unique) E-mail address |
customer[phone] | request | (optional) A phone number (unique) |
customer[birthDate] | request | (optional) Birth date in format YYYY-MM-DD HH:mm, for example 2017-10-05 |
customer[createdAt] | request | (optional) Created at in format YYYY-MM-DD HH:mm:ss, for example 2017-01-01 14:15:16 . |
customer[address][street] | request | (optional) Street name |
customer[address][address1] | request | (optional) Building number |
customer[address][address2] | request | (optional) Flat/Unit name |
customer[address][postal] | request | (optional) Post code |
customer[address][city] | request | (optional) City name |
customer[address][province] | request | (optional) Province name |
customer[address][country] | request | (optional) Country name |
customer[company][name] | request | (optional) Company name |
customer[company][nip] | request | (optional) Tax ID |
customer[loyaltyCardNumber] | request | (optional) Loyalty card number (unique) |
customer[labels] | request | (optional) String of labels in form of key1:val1;key2:val2 . |
customer[agreement1] | request | First agreement. Set 1 if true, otherwise 0 |
customer[agreement2] | request | (optional) Second agreement. Set 1 if true, otherwise 0 |
customer[agreement3] | request | (optional) Third agreement. Set 1 if true, otherwise 0 |
Example¶
curl http://localhost:8181/api/DEFAULT/seller/customer/register \
-X "POST" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..." \
-d "customer[firstName]=Lady" \
-d "customer[lastName]=Mini" \
-d "customer[email]=test@openloyalty.com" \
-d "customer[gender]=female" \
-d "customer[agreement1]=1"
Note
When using endpoints starting with /api/<storeCode>/seller
, you need to authorize using seller account credentials.
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Example Response¶
STATUS: 200 OK
{
"customerId": "53c16b8e-db1e-42f9-af71-3bb76f5c3aca",
"email": "test@openloyalty.com"
}
Search for customers as a seller¶
To search for a customer in POS, you need to call the /api/<storeCode>/pos/search/customer
endpoint with the POST
method.
Definition¶
POST /api/<storeCode>/pos/search/customer
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store the customers belong to. |
search[loyaltyCardNumber] | query | (optional) Loyalty card number |
search[phone] | request | (optional) A phone number |
search[email] | request | (optional) Email address |
search[firstName] | request | (optional) Fisrt name |
search[lastName] | request | (optional) Last name |
search[city] | request | (optional) City name |
search[postcode] | request | (optional) Post code |
Example¶
curl http://localhost:8181/api/DEFAULT/pos/search/customer \
-X "POST" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..." \
-d "search[firstName]=John" \
-d "search[lastName]=Doe"
Note
When using this endpoint, you need to authorize using seller account credentials.
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Example Response¶
STATUS: 200 OK
{
"customers": [
{
"customerId": "00000000-0000-474c-b092-b0dd880c07e1",
"active": false,
"posId": "00000000-0000-474c-1111-b0dd880c07e3",
"firstName": "John",
"lastName": "Doe",
"gender": "male",
"email": "user@example.com",
"phone": "+48234234000",
"birthDate": "1990-09-11T02:00:00+0200",
"lastLevelRecalculation": "2019-03-15T13:00:05+0100",
"loyaltyCardNumber": "47834433524",
"createdAt": "2016-08-08T10:53:14+0200",
"levelId": "e82c96cf-32a3-43bd-9034-4df343e50000",
"agreement1": true,
"agreement2": false,
"agreement3": false,
"status": {
"availableTypes": [
"new",
"active",
"blocked",
"deleted"
],
"availableStates": [
"no-card",
"card-sent",
"with-card"
],
"type": "blocked"
},
"updatedAt": "2019-03-18T14:44:49+0100",
"campaignPurchases": [
{
"canBeUsed": false,
"purchaseAt": "2019-03-18T13:45:39+0100",
"costInPoints": 1,
"campaignId": "f1eddc46-e985-43e8-bc2a-8007dca3df95",
"used": true,
"coupon": {
"id": "83d6a65e-d237-4049-84aa-bb107cd6f9a4",
"code": "test1"
},
"status": "active",
"activeTo": "2019-06-16T13:45:39+0200",
"deliveryStatus": "ordered",
"usageDate": "2019-03-18T13:51:10+0100"
},
{
"canBeUsed": false,
"purchaseAt": "2019-03-18T13:45:39+0100",
"costInPoints": 1,
"campaignId": "f1eddc46-e985-43e8-bc2a-8007dca3df95",
"used": true,
"coupon": {
"id": "6a2456ec-49b3-4970-9ac4-75ca01eab0ee",
"code": "test2"
},
"status": "active",
"activeTo": "2019-06-16T13:45:39+0200",
"deliveryStatus": "ordered",
"usageDate": "2019-03-18T13:51:10+0100"
}
],
"transactionsCount": 2,
"transactionsAmount": 3,
"transactionsAmountWithoutDeliveryCosts": 3,
"amountExcludedForLevel": 0,
"averageTransactionAmount": 1.5,
"lastTransactionDate": "2019-03-16T12:53:23+0100",
"labels": [],
"level": {
"levelId": {
"id": "e82c96cf-32a3-43bd-9034-4df343e50000"
},
"name": "level0",
"translations": {
"en": {
"name": "level0"
},
"pl": {
"name": "poziom0"
}
}
},
"currency": "eur",
"levelPercent": "0.00%",
"posIdentifier": "pos2"
},
{
"customerId": "11111111-0000-474c-b092-b0dd880c07e1",
"active": true,
"firstName": "John1",
"lastName": "Doe1",
"gender": "male",
"email": "user-1@example.com",
"phone": "+48456456000",
"birthDate": "1990-09-11T02:00:00+0200",
"lastLevelRecalculation": "2019-03-15T13:00:05+0100",
"createdAt": "2016-08-08T10:53:14+0200",
"levelId": "e82c96cf-32a3-43bd-9034-4df343e50000",
"agreement1": false,
"agreement2": false,
"agreement3": false,
"status": {
"availableTypes": [
"new",
"active",
"blocked",
"deleted"
],
"availableStates": [
"no-card",
"card-sent",
"with-card"
],
"type": "active",
"state": "no-card"
},
"updatedAt": "2019-03-15T12:53:18+0100",
"campaignPurchases": [],
"transactionsCount": 0,
"transactionsAmount": 0,
"transactionsAmountWithoutDeliveryCosts": 0,
"amountExcludedForLevel": 0,
"averageTransactionAmount": 0,
"labels": [
{
"key": "test",
"value": "test"
}
],
"level": {
"levelId": {
"id": "e82c96cf-32a3-43bd-9034-4df343e50000"
},
"name": "level0",
"translations": {
"en": {
"name": "level0"
},
"pl": {
"name": "poziom0"
}
}
},
"currency": "eur",
"levelPercent": "0.00%"
}
]
}
Import customers¶
To import customers, you need to call the /api/<storeCode>/admin/customer/import
endpoint with the POST
method.
Definition¶
POST /api/<storeCode>/admin/customer/import
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store the customers will belong to. |
file[file] | query | XML file |
Example¶
curl http://localhost:8181/api/DEFAULT/admin/customer/import \
-X "POST" \
-H "Accept:\ application/json" \
-H "Content-type:\ application/x-www-form-urlencoded" \
-H "Authorization:\ Bearer\ eyJhbGciOiJSUzI1NiIsInR5cCI6..." \
-d "file[file]=C:\\fakepath\\customers.xml"
Note
When using endpoints starting with /api/<storeCode>/admin
, you need to authorize using admin account credentials.
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Example Response¶
STATUS: 200 OK
{
"items": [
{
"status": "success",
"processImportResult": {
"object": "4e2a75c2-f194-40e7-b54e-f208b2fd1732"
},
"identifier": "aXXX2222X1@tXXXXXXXst.pl"
},
{
"status": "success",
"processImportResult": {
"object": "db081ad2-d035-4edd-8bda-21da198592db"
},
"identifier": "222b1222@test.pl"
},
{
"status": "error",
"message": "Convert exception: birthDate has invalid date format (Y-m-d required)",
"identifier": "b22221a@st.pl"
},
{
"status": "success",
"processImportResult": {
"object": "c4c169b0-265b-4ead-94c0-1972f181e100"
},
"identifier": "aa2222c@dgf.pl"
},
{
"status": "error",
"message": "Convert exception: gender is required node",
"identifier": "bz22221z@test.pl"
},
{
"status": "success",
"processImportResult": {
"object": "479129a4-283b-414d-b48b-4c3541f9f8d9"
},
"identifier": "bxx2222x@teist.pl"
},
{
"status": "success",
"processImportResult": {
"object": "00c2f4ff-a8d0-4b31-a119-2bb3f0ec7b6e"
},
"identifier": "bx2222x@tetst.pl"
},
{
"status": "error",
"message": "Convert exception: gender is required node",
"identifier": "cccc2222cc@test.pl"
},
{
"status": "success",
"processImportResult": {
"object": "7f4d0ebd-69e5-488b-b7e2-42985792d63c"
},
"identifier": "vvvv111v7@test.pl"
},
{
"status": "success",
"processImportResult": {
"object": "36c0e0e7-1231-4817-9fc9-3fd26280026f"
},
"identifier": "bb111bbbb@tesyyt.pl"
},
{
"status": "error",
"message": "Convert exception: gender is required node",
"identifier": "nnnjn111n@test.pl"
}
],
"totalProcessed": 11,
"totalSuccess": 7,
"totalFailed": 4
}
Register a new customer as an admin¶
To create a new customer, you need to call the /api/<storeCode>/admin/customer/register
endpoint with the POST
method.
Note
This endpoint allows you to set more customer parameters than /api/<storeCode>/customer/self_register
and is used when creating
a new customer in the admin cockpit or POS cockpit. The self register endpoint is used in the client cockpit for registration
and has some limitations.
Definition¶
POST /api/<storeCode>/admin/customer/register
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store the customer will belong to. |
customer[firstName] | request | First name |
customer[lastName] | request | Last name |
customer[gender] | request | (optional) Gender. Possible values male , female , not_disclosed |
customer[email] | request | (unique) E-mail address |
customer[phone] | request | (optional) A phone number (unique) |
customer[birthDate] | request | (optional) Birth date in format YYYY-MM-DD HH:mm, for example 2017-10-05 |
customer[createdAt] | request | (optional) Created at in format YYYY-MM-DD HH:mm:ss, for example 2017-01-01 14:15:16 . |
customer[address][street] | request | (optional) Street name |
customer[address][address1] | request | (optional) Building number |
customer[address][address2] | request | (optional) Flat/Unit name |
customer[address][postal] | request | (optional) Post code |
customer[address][city] | request | (optional) City name |
customer[address][province] | request | (optional) Province name |
customer[address][country] | request | (optional) Country name |
customer[company][name] | request | (optional) Company name |
customer[company][nip] | request | (optional) Tax ID |
customer[loyaltyCardNumber] | request | (optional) Loyalty card number (unique) |
customer[labels] | request | (optional) String of labels in form of key1:val1;key2:val2 . |
customer[agreement1] | request | First agreement. Set 1 if true, otherwise 0 |
customer[agreement2] | request | (optional) Second agreement. Set 1 if true, otherwise 0 |
customer[agreement3] | request | (optional) Third agreement. Set 1 if true, otherwise 0 |
Example¶
curl http://localhost:8181/api/DEFAULT/admin/customer/register \
-X "POST" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..." \
-d "customer[firstName]=John" \
-d "customer[lastName]=Kowalski" \
-d "customer[email]=john@example.com" \
-d "customer[phone]=0665998332" \
-d "customer[agreement1]=1"
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value may be different. Read more about Authorization here.
Example Response¶
STATUS: 200 OK
{
"customerId": "e0eb0355-8aaa-4fb1-8159-f58e81b7a25c",
"email": "john@example.com"
}
Remove customer¶
To remove the customer using admin token you need to call the /api/<storeCode>/customer/<customer>
endpoint with the DELETE
method.
Definition¶
DELETE /api/<storeCode>/customer/<customer>
Parameter | Parameter type | Description |
---|---|---|
Authorization | header | Token received during authentication |
<storeCode> | query | Code of the store the customer belongs to. |
<customer> | query | Customer ID |
Example¶
curl http://localhost:8181/api/DEFAULT/customer/1cb6d205-8b77-40e1-a801-052185ed52d9 \
-X "DELETE" \
-H "Accept: application/json" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..."
Note
The eyJhbGciOiJSUzI1NiIsInR5cCI6… authorization token is an example value. Your value can be different. Read more about Authorization here.
Example Response¶
STATUS: 204 No Content