Stores
Manage stores (accounts)
In Leal, every Account represents a Store. Stores are the top-level tenant object that owns locations, loyalty cards, customers, and posters.
Each authenticated user may belong to one or more stores. Use these endpoints to list the stores you have access to, view store details (including summary counts), and update store settings.
Returns every store the authenticated user has access to, including summary counts for locations, cards, customers, and posters.
Error Codes
| Code | Description |
|---|---|
401
|
Unauthorized – invalid or missing API token |
Returns
Code: 200
An array of store objects
| Name | Type | Required | Description |
|---|---|---|---|
id
|
Must be a Integer | Required |
Unique store ID |
name
|
Must be a String | Required |
Internal account name |
store_name
|
Must be a String | Required |
Public-facing store name |
display_store_name
|
Must be a String | Required |
Resolved display name (store_name if present, otherwise name) |
personal
|
Must be one of: true, false, 1, 0.
|
Required |
Whether this is the user’s personal account |
locations_count
|
Must be a Integer | Required |
Number of physical locations |
cards_count
|
Must be a Integer | Required |
Number of loyalty card templates |
customers_count
|
Must be a Integer | Required |
Number of enrolled customers |
posters_count
|
Must be a Integer | Required |
Number of QR signup posters |
created_at
|
Must be a String | Required |
ISO 8601 creation timestamp |
updated_at
|
Must be a String | Required |
ISO 8601 last-update timestamp |
Returns detailed information for a single store, including summary counts for its associated resources.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id
|
Must be a Integer | Required |
Store ID |
Error Codes
| Code | Description |
|---|---|
401
|
Unauthorized – invalid or missing API token |
404
|
Store not found – the authenticated user does not have access to this store |
Returns
Code: 200
A store object
| Name | Type | Required | Description |
|---|---|---|---|
id
|
Must be a Integer | Required |
Unique store ID |
name
|
Must be a String | Required |
Internal account name |
store_name
|
Must be a String | Required |
Public-facing store name |
display_store_name
|
Must be a String | Required |
Resolved display name (store_name if present, otherwise name) |
personal
|
Must be one of: true, false, 1, 0.
|
Required |
Whether this is the user’s personal account |
locations_count
|
Must be a Integer | Required |
Number of physical locations |
cards_count
|
Must be a Integer | Required |
Number of loyalty card templates |
customers_count
|
Must be a Integer | Required |
Number of enrolled customers |
posters_count
|
Must be a Integer | Required |
Number of QR signup posters |
created_at
|
Must be a String | Required |
ISO 8601 creation timestamp |
updated_at
|
Must be a String | Required |
ISO 8601 last-update timestamp |
Updates the store’s name or store_name. Use store_name for the public-facing name displayed to customers.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id
|
Must be a Integer | Required |
Store ID |
account
|
Must be a Hash | Required |
Store attributes |
account[store_name]
|
Must be a String | Optional |
Public-facing store name shown to customers |
account[name]
|
Must be a String | Optional |
Internal account name |
Error Codes
| Code | Description |
|---|---|
401
|
Unauthorized – invalid or missing API token |
404
|
Store not found – the authenticated user does not have access to this store |
422
|
Validation failed – check the `errors` object for details |
Returns
Code: 200
The updated store object
| Name | Type | Required | Description |
|---|---|---|---|
id
|
Must be a Integer | Required |
Unique store ID |
name
|
Must be a String | Required |
Internal account name |
store_name
|
Must be a String | Required |
Public-facing store name |
display_store_name
|
Must be a String | Required |
Resolved display name (store_name if present, otherwise name) |
personal
|
Must be one of: true, false, 1, 0.
|
Required |
Whether this is the user’s personal account |
locations_count
|
Must be a Integer | Required |
Number of physical locations |
cards_count
|
Must be a Integer | Required |
Number of loyalty card templates |
customers_count
|
Must be a Integer | Required |
Number of enrolled customers |
posters_count
|
Must be a Integer | Required |
Number of QR signup posters |
created_at
|
Must be a String | Required |
ISO 8601 creation timestamp |
updated_at
|
Must be a String | Required |
ISO 8601 last-update timestamp |