Locations
Location CRUD + account-user listing.
Location CRUD + account-user listing. Partners can also call these via account-owner impersonation; account owners use them directly with their own login.
Prerequisites
- A bearer token in the
Authorizationheader. Any endpoint that needs no token says so on its own page. - The id of each record the call targets. Every endpoint page lists the ids it needs.
Errors
| Status | Meaning |
|---|---|
401 | The bearer token is missing, expired or invalid |
403 | The token is valid but the record sits outside your account |
422 | The request failed validation — the response names the fields |
500 | Unexpected server error |
Individual endpoints may return more; each page lists its own.
Endpoints
GET — Get a paginated list of all store locations under the authenticated partner (aggregated across every account the partner owns), each row joined to its account name, address, and active-plan name + dates.
POST — Returns a paginated list of stores accessible to the authenticated user, each row joined out to full location, account, and geographic detail (city, then state, then country) plus the active store_plan with its plan features, and a generated connect_page_url.
GET — Get a flat label/value list of the stores the authenticated user can access, for dropdowns.
POST — Create a new store location under an account in one transaction: a bundle_id=2 location-account record + its company options, the store row, and a store_options row (inheriting who_will_pay).
POST — Update a store and its paired location-account record together (name, storeid, client_location_id, address, zip, city, site_url, phone, company_phone).
GET — Get a single store with its account name, location detail, and active subscription.
GET — Get a download URL for the sample spreadsheet used by the bulk location upload.
POST — Upload an Excel file (first sheet only) to update existing locations belonging to the authenticated account — matching each row by location_id against the location's saucode, then writing the store name/storeid plus the location-account company's name/address/city/zip.
POST — Accepts an Excel file of locations and an account_id (Account), validates the header row and every data row, stores the file to S3, and emails the admin team to verify before any locations are created.
POST — Admin "create verified" import: validates the same Excel file/header/rows, then for each row persists an RsImportLocation record (company_id = account_id, location_name, raw row_data JSON) and dispatches a CreateLocation job to actually create the location asynchronously.
Updated 9 days ago
