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.
They do not connect the same way. Toast and Square are connected from the dashboard with API credentials and webhooks. Clover is connected by an app that runs on the Clover devices themselves — there are no Clover credentials or webhooks to set up. Clover has its own section below.
Clover
Section titled “Clover”On Clover, the integration is an app installed on the outlet’s Clover devices. It is enrolled into your account like any other device, and from then on it does the work on the device: it puts your online orders into Clover, sends Clover sales back, keeps your menu in step with the Clover inventory, and — on a Station Duo 2 — runs your loyalty programme on the customer-facing screen.
What it does
Section titled “What it does”| Switch | Where it is set | Effect |
|---|---|---|
| Order injection | The outlet’s Clover page | Accepted online orders are created in Clover and print on the Clover printer |
| Bi-directional sync | The outlet’s Clover page | Paid Clover sales come back as completed orders in your reporting |
| Menu synchronization | The outlet’s Clover page | Mapped dishes take their name, price, description and availability from Clover |
| Loyalty on the customer screen | Each device | A Station Duo 2 runs sign-up, balance and vouchers on its customer screen |
Order injection. When an online order is accepted, the outlet’s primary Clover device creates it in Clover within seconds and prints a kitchen ticket, with the daily order number, fulfilment, customer name, time slot and notes. Prepaid orders are recorded in Clover as paid, under a tender named after your app, so the register shows them settled; pay-at-counter orders stay open in Clover and are tendered there, and that payment is reported back. If an order is canceled after it reached Clover, the Clover order is voided and a cancellation ticket prints. Each Clover device also shows an Online Orders board where staff accept, reject, mark ready and complete orders — the same actions as the partner app.
Bi-directional sync. Sales rung on any Clover device at the outlet are brought across once they are paid, with their line items, discounts, tax, tips and payments, so your reports cover the whole restaurant. Refunds, voids and tips added later update the same order. A sale with no identified loyalty customer is filed against a single Clover Guest customer, which earns nothing and is not counted as a person. If the devices were offline, they catch up when they come back; history from before you switched this on is not imported.
Menu synchronization. Clover is the source, and only for dishes you have mapped: their name, base price, description, sold-out and hidden state, modifier groups (as add-on groups) and item options (as variants). Everything else — images, order-type prices, taxes, availability windows, loyalty settings and any dish that exists only here — is left alone. Nothing is deleted: an dish removed in Clover is switched off here. New Clover dishes are not created automatically; they wait on the mapping screen. Changes are never pushed back to Clover.
Loyalty on a Station Duo 2. While the register is idle, and again during a sale before payment, a customer can enter their phone number on the customer screen, sign up if they are new, and see their points, the rewards those points cover, their vouchers and any membership free dishes. The cashier redeems on the merchant screen, and the reward lands on the Clover sale as a discount. Nothing is spent until the sale is paid; points are earned on the paid total after discounts, excluding tax and tip, and a refund reverses them. Up to one reward and one voucher can be redeemed per sale. It is the same programme as the In-store tablet, on hardware you already have.
Setting it up
Section titled “Setting it up”-
Enable Clover under Settings → Configuration → Feature, on the Clover tab. Devices cannot enroll until it is on. The same card holds Complete profile via SMS, which texts new loyalty sign-ups a link to finish their profile instead of filling in a form on the customer screen.
-
Install the app on each Clover device at the outlet.
-
Create a device of type Clover under Devices & staff PINs, for the right outlet, and generate a login code.
-
Enter the code on the Clover device. It enrolls itself and reports the Clover merchant and device it is running on. One Clover merchant belongs to one outlet; if you have several Clover locations, enroll each location’s devices against its own outlet.
-
Set the device admin PIN the first time the on-device settings are opened. After that, the PIN is needed to change anything on the device.
-
Open the outlet’s Clover page (from the outlet’s own menu). Choose the primary device, set customer receipt printing, and turn on the switches you want. Order injection and bi-directional sync can go on straight away; leave menu synchronization until step 7 is done.
-
Map the menu. On the same page, Map automatically matches Clover dishes, modifiers and categories to yours and applies the confident matches; the rest are left for review with suggested alternatives. Go through the review list, pick or clear matches by hand, mark anything you do not want synced as Ignore, and create the Clover dishes you are missing. Then turn on menu synchronization.
-
Turn on loyalty for each Station Duo 2 — Loyalty on the customer screen, on the device’s own settings in Devices.
-
Test both directions. Place and accept one real online order and watch it print in Clover; ring one sale on the Clover register and watch it arrive in your orders. On a Station Duo 2, enter a phone number, redeem something, and pay.
Primary device
Section titled “Primary device”Only one Clover device per outlet — the primary — sends orders to Clover, prints them, voids them and syncs sales. The others show the Online Orders board but do not act. If the primary stops reporting for two minutes while another Clover device at the outlet is online, the role moves to that device automatically, and every board shows which device is primary. It does not move back on its own: pick the primary again on the Clover page once the original device is back.
Because the work happens on the device, nothing is sent to Clover while every Clover device at the outlet is off or offline. Orders are not lost — they wait and go through when a device returns — but nothing prints meanwhile, so check the devices first when orders stop arriving.
Mapping
Section titled “Mapping”The mapping is the join between the two menus, used in both directions. Automatic mapping is a suggestion engine, not a final answer: a match you set by hand, and anything you ignore, is never overwritten by a later run. Runs are limited to one at a time and ten a day per outlet. A dish with no Clover match still reaches Clover — it goes in as a custom line with its own name and price, so the Clover total always matches the order.
Mapped fields show a notice on the dish and category forms that they are managed by Clover. You can still save there, but menu synchronization overwrites those fields within about fifteen minutes.
What the Clover app does not do
Section titled “What the Clover app does not do”- Push menu or price changes to Clover. The menu flows one way, from Clover in.
- Take card payments. Card sales are taken by Clover as usual; the app records them.
- Run outside North America, or show loyalty on devices without a customer-facing screen (Station Solo, Flex, Mini) or on the Clover Kiosk.
- Import sales from before sync was switched on, or create customers in Clover’s own customer list — loyalty customers stay here.
- Use Clover webhooks or API credentials. Nothing about Clover is set up under Plugin Config.
Toast and Square
Section titled “Toast and Square”What can sync
Section titled “What can sync”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.
Connecting
Section titled “Connecting”-
Get credentials from the provider — the specifics differ, see the tabs below.
-
Create the integration, pick the provider, and enter them.
-
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.
-
Set the sync switches and the inbound defaults.
-
Scope it with conditions if it applies to some outlets only.
-
Test the connection, then place one real order each way and watch it arrive.
You will need, from Toast:
- Restaurant GUID — identifies the location
- Client ID and Client Secret — API credentials, issued by Toast rather than self-served
- A webhook secret
- Dining option GUIDs — Toast identifies delivery, pickup and dine-in by GUID rather than by name, and you map each of yours to the matching one
The dining option mapping is Toast-specific and easy to skip. Orders sync without it and arrive as the wrong type, which is worse than not syncing.
Toast credentials come through their partner process, so start earlier than you think you need to.
You will need, from the Square developer dashboard:
- Application credentials from an app you create
- A webhook signature key
- The production flag set correctly — Square has separate sandbox and production environments, and credentials from one never work against the other
Square requires the webhook notification URL to be registered against the same application whose credentials you are using. Mixing an app’s credentials with another app’s webhook is a silent failure.
Importing a menu
Section titled “Importing a menu”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.
When sync stops
Section titled “When sync stops”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.
Troubleshooting
Section titled “Troubleshooting”| Symptom | Try this |
|---|---|
| A Clover device will not enroll | Clover must be enabled in Feature Settings, and the code is single use; if the outlet already has a device from a different Clover merchant, it is refused |
| Online orders stopped reaching Clover | Is any Clover device at the outlet on and online? Check which one is primary, and that order injection is on |
| An order shows as not sent to Clover | Open the Online Orders board on the device — the order carries the reason and a Retry action |
| Clover sales are missing from reports | Bi-directional sync is off, or the sale is not paid yet; with it off, only sales with an identified loyalty customer come across |
| A Clover price change did not arrive | The dish is not mapped, or menu synchronization is off |
| An edit here keeps reverting | The field is managed by Clover menu sync — change it in Clover, or clear the mapping |
| No loyalty prompt on the customer screen | Loyalty on the customer screen is off for that device, or it has no customer-facing display |
| Toast or Square: nothing syncs either way | Test the connection; if the circuit is open, fix the cause and reset it |
| Toast or Square: orders arrive but statuses do not | Push status updates is a separate switch |
| Counter orders never appear here (Toast or Square) | 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 |
| Toast or Square 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 · Devices & staff PINs · In-store tablet · Webhooks & the menu API · Building your menu · POS register
Was this page helpful?
This site uses a chat widget that sets a cookie so it can keep your conversation. It runs no analytics. See the privacy policy.