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.

index

GET /api/v1/accounts

List all stores

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

show

GET /api/v1/accounts/:id

Show a store

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

update

PATCH /api/v1/accounts/:id

Update a store

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