OneTablet API Documentation

pauseStores

POST/management/stores/pauseStores

Take one or more storefronts offline, with a typed reason and an optional automatic reopen time (ONE-2620, Phase 1's first WRITE). The guest-facing message on platforms that accept free text is exactly your note — never a synthesized string.

Stores are processed independently: one unsupported storefront in the batch does not fail it. 422 is returned only when NO store in the batch supports the action through the API (today: none of the requested ids has live platform credentials).

Scope: only storefronts your organization owns or operates a brand out of. A storeId that exists but belongs to another organization is INDISTINGUISHABLE from one that does not exist at all — both are simply absent from the response, never mutated.

reason: 'other' requires note.

Request

application/json
required
  • storeIdsstring[]

    Store.id values, 1-100.

  • reasonstring

    Typed reason — required. 'other' requires note.

    Possible values: [closingEarly, problemInRestaurant, outOfItems, tooBusy, other]
  • notestring

    Required when reason is 'other'; shown where the platform accepts free text.

  • untilstring<date-time>

    Automatic reopen time. Omit for an indefinite pause.

Responses

200 — OK
  • statusesobject[]
    • storeIdstring
    • desiredobject
      • statestring
        Possible values: [open, paused, closedSpecialHours]
      • pauseReasonstring

        Typed pause reason. Pauses recorded outside this API — or whose free-text reason does not match a typed value — read as 'other', with the operator's original wording folded into pauseNote. Absent for a system-initiated pause with no operator-entered reason at all.

        Possible values: [closingEarly, problemInRestaurant, outOfItems, tooBusy, other]
      • pauseNotestring
      • pausedUntilstring<date-time>

        Absent means the pause is indefinite.

      • updatedAtstring<date-time>
    • observedobject
      • statestring
        Possible values: [online, offline, deactivated, unknown]
      • orderableobject

        Can a guest place an order right now. null/absent when the platform does not expose it.

      • platformReasonstring

        The platform's own reason string, where exposed — raw, not the typed classification below.

    • discrepancyobject
      • hasDiscrepancyobject
      • classificationstring

        Treat as an OPEN enum — new classifications, including ones outside this list, arrive additively as OneTablet's own taxonomy grows.

      • autoRemediableobject
      • requiresHumanInterventionobject

        No API on either side can fix this — route to a human.

      • remediationChannelstring
        Possible values: [api, merchantPortal, platformSupport]
    • lastPolledAtstring<date-time>

      When OneTablet last refreshed observed. Reason about staleness against this before acting. Absent on a pauseStores/unpauseStores response, which never re-reads the platform.

About Stores

The places you operate and the brands you operate there.

OneTablet models a restaurant business in three layers, and every other section of this API assumes them. A brand is a menu concept — what a customer sees on a delivery app. A location is a physical address with a kitchen in it. A store is one storefront: a single brand, at a single location, on a single platform — so a location running two brands on three platforms has six stores, each with its own menu, hours and pause state.

The directory reads join on IDS, never on display names: every store carries its location.id and brand.id, and a location carries the id of each brand it runs.

Start here — a location carries the timezone that every schedule, report window and business day elsewhere on this API is interpreted in.

All three reads are org-scoped to the organization your api key resolves to, and all three are reads: nothing here mutates, and nothing here calls out to a delivery platform live (ONE-2618).