Create a customer
const url = 'https://api.oletapp.com/your-store/v1/customers';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"address_1":"example","address_2":"example","city":"example","company_name":"example","country":"example","custom_field_1":"example","custom_field_2":"example","custom_field_3":"example","custom_field_4":"example","customer_code":"example","customer_group_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","date_of_birth":"example","dont_email":true,"dont_sms":true,"email":"hello@example.com","enable_loyalty":true,"first_name":"example","gender":"example","last_name":"example","mobile":"example","note":"example","phone":"example","state":"example","tax_id":"example","website":"example","zipcode":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.oletapp.com/your-store/v1/customers \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "address_1": "example", "address_2": "example", "city": "example", "company_name": "example", "country": "example", "custom_field_1": "example", "custom_field_2": "example", "custom_field_3": "example", "custom_field_4": "example", "customer_code": "example", "customer_group_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "date_of_birth": "example", "dont_email": true, "dont_sms": true, "email": "hello@example.com", "enable_loyalty": true, "first_name": "example", "gender": "example", "last_name": "example", "mobile": "example", "note": "example", "phone": "example", "state": "example", "tax_id": "example", "website": "example", "zipcode": "example" }'A missing customer_code is generated.
do_not_sell_share cannot be set here; it is read-only, set only through the admin UI or a DSAR request. on_account_limit cannot be set here either (naming it is 400 VALIDATION_FAILED); on-account sales are not built yet, though a response still carries the field.
Requires scope: customers:write
Authorizations
Section titled “Authorizations”Request Body
Section titled “Request Body”object
Examplegenerated
{ "address_1": "example", "address_2": "example", "city": "example", "company_name": "example", "country": "example", "custom_field_1": "example", "custom_field_2": "example", "custom_field_3": "example", "custom_field_4": "example", "customer_code": "example", "customer_group_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "date_of_birth": "example", "dont_email": true, "dont_sms": true, "email": "hello@example.com", "enable_loyalty": true, "first_name": "example", "gender": "example", "last_name": "example", "mobile": "example", "note": "example", "phone": "example", "state": "example", "tax_id": "example", "website": "example", "zipcode": "example"}Responses
Section titled “Responses”Create a customer
object
object
YYYY-MM-DD, or null.
Read-only. Set only through the admin UI or a DSAR request, never through this API.
True for the retailer’s single system walk-in customer.
The customer’s account credit limit. Integer minor units (cents).
Opaque delta-sync version. Increases with every change; use it to detect updates.
Examplegenerated
{ "data": { "address_1": "example", "address_2": "example", "city": "example", "company_name": "example", "country": "example", "created_at": "2026-04-15T12:00:00Z", "custom_field_1": "example", "custom_field_2": "example", "custom_field_3": "example", "custom_field_4": "example", "customer_code": "example", "customer_group_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "date_of_birth": "example", "do_not_sell_share": true, "dont_email": true, "dont_sms": true, "email": "example", "enable_loyalty": true, "first_name": "example", "gender": "example", "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "is_walk_in": true, "last_name": "example", "mobile": "example", "note": "example", "on_account_limit": 1, "phone": "example", "state": "example", "tax_id": "example", "updated_at": "2026-04-15T12:00:00Z", "version": "example", "website": "example", "zipcode": "example" }}default
Section titled “default”An error response.
object
object
A machine-readable error code, e.g. VALIDATION_FAILED.
object
A plain-English sentence describing what went wrong.
Example
{ "error": { "code": "UNAUTHORIZED" }}