Customers API
Customer accounts and auth for ENAD storefronts: signup, login, email verification, password reset, JWT sessions, profiles, orders, carts, wishlists, and organisation (B2B) accounts, at https://customers.enad.io.
When to use it
It powers the “my account” pages of a storefront. A customer signs up or logs in through the storefront, receives an access and refresh token, and then reads and updates their own profile, orders, carts, and wishlists with that session. It is not for catalog management: products are managed through the Management API (https://docs.enad.io/management/management-api) and read by shoppers over the Product Search API (https://docs.enad.io/storefront/graphql).
Authentication
Two schemes, used together on carts, wishlists, and customer-group prices:
- App API key — server-to-server requests such as login, signup, order lookups, organisation creation, and file uploads send the app’s key in the
api-keyheader. - Customer JWT — requests on behalf of a logged-in customer send the token issued at login as
Authorization: Bearer <token>; access tokens are short-lived (one hour by default) and renewed with the refresh token. All routes are prefixed with/api/v1/{app_id}/.
Version 1.0
Base URL
//customers.enad.ioAuth
- POSTChange password
/api/v1/{app_id}/auth/change-password - POSTLogin user
/api/v1/{app_id}/auth/login - POSTRefresh token
/api/v1/{app_id}/auth/refresh - POSTCreate password reset link
/api/v1/{app_id}/auth/reset-password - POSTRegister new user
/api/v1/{app_id}/auth/signup - POSTCreate email verification link
/api/v1/{app_id}/auth/verify-email - POSTVerify email
/api/v1/{app_id}/auth/verify-email-token
Users
- POSTLookup user by email
/api/v1/{app_id}/lookup/user - DELETEDelete current user
/api/v1/{app_id}/user - GETGets the user from the token
/api/v1/{app_id}/user - PATCHUpdates the user information
/api/v1/{app_id}/user - GETGet user by ID
/api/v1/{app_id}/users/{user_id} - PATCHUpdate user by ID
/api/v1/{app_id}/users/{user_id}
Organisations
- GETGet organisation by organisation number
/api/v1/{app_id}/lookup/organisations/{organisation-number} - GETList organisations
/api/v1/{app_id}/organisations - POSTRegister new organisation
/api/v1/{app_id}/organisations - DELETEDelete organisation
/api/v1/{app_id}/organisations/{id} - GETGet organisation
/api/v1/{app_id}/organisations/{id} - PATCHPatch organisation
/api/v1/{app_id}/organisations/{id} - GETGet organisation tree
/api/v1/{app_id}/organisations/{id}/tree - GETList users for an organisation
/api/v1/{app_id}/organisations/{id}/users - POSTAdd user to organisation
/api/v1/{app_id}/organisations/{id}/users - DELETERemove user from organisation
/api/v1/{app_id}/organisations/{id}/users/{user_id}
Orders
- GETList all orders for an app
/api/v1/{app_id}/lookup/orders - GETGet order by ID for an app
/api/v1/{app_id}/lookup/orders/{id} - GETGet order by reference for an app
/api/v1/{app_id}/lookup/orders/reference/{reference} - GETList orders for authenticated user
/api/v1/{app_id}/orders - GETGet order by ID for authenticated user
/api/v1/{app_id}/orders/{id} - GETGet order by reference for authenticated user
/api/v1/{app_id}/orders/reference/{reference}
Cart
- GETList saved carts for authenticated user
/api/v1/{app_id}/carts - POSTSave a new cart reference
/api/v1/{app_id}/carts - DELETEDelete a saved cart
/api/v1/{app_id}/carts/{id}
Wishlist
- GETGet shared wishlist (paginated)
/api/v1/{app_id}/shared/wishlists/{token} - GETList wishlists for authenticated user
/api/v1/{app_id}/wishlists - POSTCreate a new wishlist
/api/v1/{app_id}/wishlists - DELETEDelete wishlist
/api/v1/{app_id}/wishlists/{id} - GETGet a particular wishlist with items.
/api/v1/{app_id}/wishlists/{id} - PATCHUpdate wishlist
/api/v1/{app_id}/wishlists/{id} - DELETERemove items from wishlist
/api/v1/{app_id}/wishlists/{id}/items - POSTAdd items to wishlist
/api/v1/{app_id}/wishlists/{id}/items - POSTCreate or get share token for wishlist
/api/v1/{app_id}/wishlists/{id}/share - DELETERevoke wishlist share token
/api/v1/{app_id}/wishlists/{id}/share/{token}
Files
- DELETEDelete a file
/api/v1/{app_id}/files/{file_id} - PATCHPatch file metadata
/api/v1/{app_id}/files/{file_id} - POSTUpload a file
/api/v1/{app_id}/files/upload
Attributes
- GETList attributes for an application
/api/v1/{app_id}/attributes - GETGet a single attribute
/api/v1/{app_id}/attributes/{attribute_id} - DELETERemove attribute relationship from an organisation
/api/v1/{app_id}/organisations/{organisation_id}/attributes/{attribute_id} - POSTAdd attribute relationship to an organisation
/api/v1/{app_id}/organisations/{organisation_id}/attributes/{attribute_id} - DELETERemove attribute relationship from a user
/api/v1/{app_id}/users/{user_id}/attributes/{attribute_id} - POSTAdd attribute relationship to a user
/api/v1/{app_id}/users/{user_id}/attributes/{attribute_id}