Skip to content

POS integrations

If you already run a point-of-sale system in your outlets, connecting it means orders and menu live in one place instead of two. Three are supported: Clover, Toast and Square.

Four switches, each independent, and it is worth deciding each one deliberately:

Switch Direction Effect
Sync app orders to POS Outbound Online orders appear on your till
Sync POS orders to app Inbound Counter orders appear in your reporting
Push status updates to POS Outbound Status changes here are reflected there
Terminal states only Outbound Push only the final states, not every step

Inbound sync needs a default business type and default outlet — where a counter order should land when the till does not say. Set both, or inbound orders have nowhere to go.

Menu import is separate again, and needs the outlet whose menu is the source.

Start with outbound only. Add inbound once you trust the mapping, because inbound orders go straight into your reporting and a wrong default distorts it quietly.

  1. Get credentials from the provider — the specifics differ, see the tabs below.

  2. Create the integration, pick the provider, and enter them.

  3. Register the webhook in the provider’s dashboard and paste its signing secret back. Leave verify signature on. Without this, orders and status changes never arrive — and it fails silently, which is the single most common POS support case. See Webhooks & the menu API.

  4. Set the sync switches and the inbound defaults.

  5. Scope it with conditions if it applies to some outlets only.

  6. Test the connection, then place one real order each way and watch it arrive.

You will need, from the Clover developer dashboard:

  • Merchant ID — visible in your Clover dashboard
  • App ID and App Secret — from an app you create in the developer dashboard
  • A webhook secret, generated when you register the callback

Clover’s app must be installed on the merchant account before the credentials work. A correct-looking set of credentials on an uninstalled app fails in a way that looks like a typo.

Rather than rebuilding your menu, you can preview what the POS holds, import it, and later push changes back.

Preview first, always. It shows what would come across, and POS menus are frequently messier than their owners remember — retired dishes, test entries, options nobody has used in years. Import into one outlet, tidy it, then use it as the source for the rest. See Building your menu.

A POS that keeps failing is skipped automatically rather than retried into the ground, so a broken till cannot slow your ordering down. Once fixed, that is reset from the dashboard.

There is also an operations view listing sync attempts, with a retry action for individual ones — the right tool when a handful of orders failed rather than the connection itself.

Symptom Try this
Nothing syncs either way Test the connection; if the circuit is open, fix the cause and reset it
Orders reach the POS but statuses do not Push status updates is a separate switch
Counter orders never appear here Inbound sync needs a default business type and outlet
Inbound orders land in the wrong outlet That is the default doing its job — scope per outlet instead
Toast orders arrive as the wrong type The dining option GUIDs are unmapped
Square works in testing and not live The production flag, or sandbox credentials
It worked and then stopped A rotated credential or webhook secret that was not updated here
Menu import brought rubbish across Preview first; import into one outlet, tidy, then propagate

Related: Integrations overview · Webhooks & the menu API · Building your menu · POS register

Was this page helpful?