#R07 — Connecting to what restaurants already have
Scope: incumbent POS APIs, POS middleware, delivery aggregators, Google/Apple surfaces, accounting/payroll/inventory, and the strategic question "CRM first, replace the POS later — or not at all?"
Date: 2026-08-18. Labels: [verified] = checked this session with a named URL; [known] = confident from training data; [estimate] = reasoned guess. Where a fact came from a search snippet this session but I did not fetch the page, it is labelled [known] with "(search corroborated 2026-08-18)".
#0. Bottom line up front
Three claims, in order of how much they should change the plan:
"CRM riding on the incumbent POS" is a structurally worse business than it looks, and the reason is identity, not integration. You can get checks out of almost any POS. You cannot get a stable guest identifier attached to an in-store card payment out of any POS you do not own the payment rail for. Toast, Square, Clover, Lightspeed and PAR all reserve card-linked identity for their own loyalty product. Without it, your CRM identity coverage caps at roughly 10–25% of checks (online orders + whoever voluntarily scans a code), versus 45–70% if you own the terminal and the payment. That is the difference between "a marketing tool with a coverage problem" and "the restaurant's guest database".
Every incumbent POS in this list either already sells a CRM/loyalty product or owns a company that does. Toast Loyalty + Toast Marketing; Square Loyalty + Square Marketing; Oracle Hospitality Gift & Loyalty (iCare); NCR Voyix Aloha Consumer Engagement; PAR owns Punchh; Lightspeed has Advanced Insights + loyalty partners it curates; Olo owns Wisely and owns Omnivore, the neutral POS middleware; iiko/Syrve ships iikoCard; r_keeper ships its own CRM. You would be building the single highest-margin attach product that each platform most wants to keep. This is not "platform risk" in the abstract; it is the specific category where platforms historically defenestrate partners.
Aggregator connectors are worth building and POS connectors mostly are not. Glovo/Bolt Food/Wolt/Uber Eats connectors are needed whatever POS wins, are a real operational pain point restaurants will pay for, and are not owned by a competitor. POS connectors are needed only until you replace the POS, cost 2–6 eng-months each, decay at ~0.5 eng-months/year each, and can be revoked. Build read-only migration importers from CEE systems (Poster, iiko/Syrve, r_keeper) instead of live connectors — same lead-gen value, ~1/3 the cost, no partner approval, no maintenance treadmill.
Verdict: land-and-replace, not ride-along. Details and numbers in §9.
#1. What a CRM actually needs from a POS (the capability ladder)
Vendors say "we have an API". That sentence hides a 20× cost difference. Grade every system against this ladder:
| Tier | Capability | Why it matters for CRM | Typical availability |
|---|---|---|---|
| T0 | Batch export of closed checks (CSV/SFTP/nightly report API) | You get sales BI. You get no CRM. | Everything |
| T1 | Real-time webhook on check close, itemized, with site + timestamp | Enables receipt-level analytics and post-visit messaging if you already know who the guest is | Most cloud POS |
| T2 | Guest identifier on the check: loyalty ID scanned at POS, phone, email, or a stable card token/fingerprint | This is the actual product. Without T2 the CRM is a spreadsheet. | Rare, and usually crippled for third parties |
| T3 | Write-back to an OPEN check before tender: apply a discount, a comp, a reward redemption, add a loyalty line item, adjust totals | Without this, "redeem your reward" is a manual staff workflow → adoption collapses | Rarer still; usually requires a device-side plugin, not a cloud API |
| T4 | Order injection, menu write, device-side UI, payment control | Needed for aggregator injection, kiosks, QR ordering | Only where the vendor wants a channel partner |
Two consequences that decide the strategy:
- T3 nearly always requires code running on the POS terminal or its back-office server, not a cloud API call. Oracle (Extension Applications / SIM scripts), Aloha (a DLL on the BOH file server), iiko/Syrve (a .NET Front plugin), Clover (an Android app on the device). Each is a different runtime, language and deployment channel. A cloud-only CRM team cannot ship T3 without becoming an embedded-software team for each incumbent.
- T2 for in-store cash/card payments is the moat the incumbent will not sell you. Toast, Square and Clover can do card-linked loyalty because they are the processor. Third-party loyalty partners on those platforms get a check and a scan prompt, not a card token. Confirm per-vendor in §2, but assume this default.
#2. Per-system integration reality
#2.1 Summary table
Columns: RT = real-time push of check events; ID = usable guest identifier for in-store card payments; WB = write loyalty discount to an open check pre-tender; Fee = who pays whom; Cert = wall-clock to certified production access; Eng = our build cost for a production connector (read + write where possible), including mapping UI, backfill, retries, reconciliation and a support runbook.
| System | Region | Public API | RT | ID | WB | Partner fee | Cert (wall-clock) | Terms vs competing CRM | Eng-months |
|---|---|---|---|---|---|---|---|---|---|
| Toast | US (+small CA/IE/UK) | Yes, gated partner API, OAuth2 client-credentials, webhooks [known] | Yes | Weak: last4, card type, name on card; no stable token [known] | Yes — dedicated Loyalty Program Integration API [known, doc.toasttab.com corroborated] | ~USD 25/site/mo Partner Connect charged to the merchant; rev-share reported ~30% historically [known, disputed] | 8-stage process, 3–7 months [estimate] | API licence forbids use of Toast Data "for the benefit of any competitor of Toast, or … otherwise adverse to Toast" [known, pos.toasttab.com] — Toast sells Toast Loyalty | 4–6 |
| Square | US/CA/UK/IE/AU/JP/FR/ES | Yes, fully public, free, excellent docs | Yes (order.*, payment.updated webhooks) | Best of the US set: card.fingerprint is stable per card per seller account [known] | Partial: Orders API can carry discounts, but Square POS app has no third-party mid-transaction prompt [known] | Free developer account; no rev-share for most app types [known] | Days (self-serve) to ~6 weeks for App Marketplace listing [estimate] | Permissive, but Square Loyalty/Marketing compete directly | 2.5–4 |
| Clover (Fiserv) | US/CA/UK/IE/DE/AT/NL/PL [known] | Yes: REST + OAuth + webhooks and an on-device Android SDK | Yes | Yes-ish: device-side app can hook payment intents; token exposure limited [estimate] | App Market 70/30 — developer receives 70% of net subscription revenue [verified, docs.clover.com/dev/docs/monetizing-your-apps] | 4–10 weeks app review [estimate] | Fiserv discretion; payment-adjacent apps restricted; loyalty apps permitted (many exist) | 4–6 (incl. Android app) | |
| Oracle Simphony (cloud) | Global, enterprise | Yes: Simphony Transaction Services Gen2 REST [verified, docs.oracle.com/en/industries/food-beverage/simphony/omsstsg2api/] | Poll/limited push [estimate] | Only via loyalty driver prompt | Yes, via Extension Application on the workstation + Loyalty/Gift driver [known] | Oracle PartnerNetwork enrolment; sandbox charged per API call [known, oracle.com partner page corroborated]; OPN fees [estimate: USD 500–3,000/yr] | 6–12 months incl. OPN, sandbox, cert [estimate] | Oracle sells Gift & Loyalty (iCare); no explicit ban, but a chain-driven relationship | 8–14 |
| Micros 3700 / RES 3700 | Global legacy, still huge in CEE hotels | No. ISL/SIM scripts, COM Transaction Services, or direct ODBC into the Sybase micros DB [known] | No (poll DB) | No | Via SIM script + PMS/loyalty serial-TCP interface [known] | None (no programme) — but no support either | N/A, you reverse-engineer | N/A | 6–10, and it never stops hurting |
| NCR Voyix Aloha | US + EU enterprise | Aloha Connect (gated), Aloha Transaction Gateway, newer Voyix "Business Services Platform" REST [known] | Yes via ATG [known] | Weak | Yes, via Aloha Connect DLL on the BOH file server [known] | Reported 30–50% of ISV per-location revenue [known, secondary source, treat as directional]; plus a Connect fee on the merchant | 4–9 months [estimate] | NCR sells Aloha Consumer Engagement (loyalty/marketing) — direct conflict | 8–12 |
| Lightspeed Restaurant K-Series | AU/BE/NL/FR/CH | Yes, REST + webhooks, partner-gated | Yes | Weak | Partial [estimate] | Partner programme, no public rev-share [estimate] | 2–4 months [estimate] | Curated loyalty partner list; Lightspeed pushes Lightspeed Payments | 3–5 |
| Lightspeed Restaurant O-Series (ex-Gastrofix) | DE/AT/CH — the DACH one that matters | Separate API from K-Series [known] | Yes [estimate] | Weak | As above | 2–4 months [estimate] | As above | 3–5 (does not reuse K-Series work) | |
| Lightspeed L-Series / U-Series (ex-Upserve) | CA/US | Legacy, deprecating [known] | — | — | — | — | — | Do not build | |
| PAR Brink | US/UK enterprise chains | Yes — SOAP/XML, per-location API access token [known] | Near-RT polling [known] | Weak | Yes (Brink has a loyalty interface used by Punchh) [known] | PAR charges partners an integration fee + per-location monthly [estimate: USD 15–40/site/mo] | 3–6 months [estimate] | PAR owns Punchh — you are integrating into your competitor's parent | 6–9 |
| Revel Systems | US | REST exists, heavily gated, historically charged for access [known] | Yes | Weak | Limited | Partner fee + merchant API fee [estimate] | 3–6 months [estimate] | Neutral-ish, but low install base outside US | 4–6 (skip) |
| TouchBistro | US/CA/UK | Minimal public API; BD-negotiated [known] | No | No | No | N/A | Indefinite | Owns TouchBistro Loyalty (ex-TableUp) — direct competitor, will not help you | 5–8 (skip) |
| SpotOn | US | Partner API exists [known] | Yes [estimate] | Weak | Partner programme [estimate] | 2–4 months [estimate] | Sells own loyalty/marketing | 3–5 (skip for EU) | |
| Olo | US enterprise (not a POS) | Yes — ordering + Rails + Omnivore [known] | Yes | Yes (own-channel orders carry email) | N/A | Enterprise contract | 3–6 months [estimate] | Owns Wisely (guest CRM) + Omnivore; Thoma Bravo took Olo private Sept 2025, ~USD 2.0B [verified, thomabravo.com press release] | N/A for SMB EU |
| iiko / Syrve | UA/CEE/ME/UK — the one that matters for the beachhead | Yes, and unusually good: iikoCloud/Syrve Cloud API (api-eu.iiko.services) [verified, api-eu.iiko.services] + Front API .NET plugin SDK [verified, github.com/Syrve/front.api.doc, github.com/iiko/front.api.doc] | Yes | Yes if you own the loyalty prompt in the Front plugin | Yes — best write-back story on this list. External-loyalty plugin computes discounts at check time | Dealer/partner network; no published fee [estimate: 0–20% via dealer] | 1–3 months [estimate] | iikoCard/Syrve Loyalty competes, but the plugin interface is explicitly designed for third-party loyalty | 3–5 |
| r_keeper (UCS) | UA/RU/CEE, large installed base in UA | XML API over TCP (r_keeper 7 "midserver"/XML interface); newer r_keeper cloud APIs [known] | Poll/near-RT [known] | Via loyalty interface | Yes, via the loyalty/discount interface [known] | Access via UCS dealer; dealer margin [estimate] | 1–3 months via a friendly dealer [estimate] | Ships own CRM/Farcards | 3–5 |
| Poster (joinposter, UA) | UA/PL/CEE small sites | Yes — fully public REST + OAuth + webhooks + app marketplace [known] | Yes | Poster owns its own customer table; you can read it | Yes, via Poster's discount/loyalty API [known] | Marketplace rev-share [estimate: 20–30%] | 2–6 weeks [estimate] | Poster has built-in loyalty but is friendly to marketplace apps | 1.5–2.5 |
| Storyous (Teya/SaltPay, CZ/SK/PL) | CZ/SK/PL | Partner-gated API [known] | [estimate] yes | Weak | [estimate] limited | Partner deal [estimate] | 2–4 months [estimate] | Teya sells payments; loyalty attach unclear | 2–4 |
| Dotypos / Dotykačka (CZ/SK/PL) | CZ/SK/PL | Public-ish REST API + marketplace [known] | Yes [estimate] | Weak | Marketplace [estimate] | 4–10 weeks [estimate] | Neutral [estimate] | 2–3 | |
| Loyverse | UA/PL global long tail, free POS | Public REST API + webhooks [known] | Yes | Own customer table | Limited | Free [known] | Days | Neutral | 1–1.5 |
| "Presto", "SmartTouch" and other UA/CEE local vendors | UA/SK | Unverified. I do not have reliable knowledge of their API surfaces | ? | ? | ? | ? | ? | ? | Assume 2–4 each; verify before committing |
Two entries in that table are unverified and I am flagging them rather than guessing: "Presto" and "SmartTouch". Confirming them costs one afternoon: ask three local restaurateurs which POS they run and email the vendor for API docs. Do that before any of it lands in a roadmap.
#2.2 The systems that actually matter for a UA/PL/CZ/RO beachhead
Ranked by install base × API friendliness × how much CRM value you can extract:
| Rank | System | Why | Build? |
|---|---|---|---|
| 1 | Poster | Public API, self-serve, 2–6 week approval, big UA/PL SMB base, real customer + discount endpoints | Yes — read-only importer + optional live connector |
| 2 | iiko / Syrve | Large UA/CEE base incl. the chains you actually want; best write-back architecture (Front plugin); cloud API for reads | Yes — importer first, plugin only if a chain pays for it |
| 3 | r_keeper | Very large UA install base, especially older/mid-market restaurants; the classic rip-and-replace target | Importer only. Live connector needs a dealer relationship |
| 4 | Dotypos, Storyous | CZ/SK/PL entry when you go there | Defer to market entry |
| 5 | Lightspeed O-Series | Only if you attack DACH | Defer |
| 6 | Toast, Square, Clover, Aloha, Brink, Revel, TouchBistro, SpotOn, Olo | US-only or enterprise-only; each is a competitor's home turf | No for S1. Reconsider only if you go US, in which case Square + Clover first (cheapest, most permissive) |
#2.3 Notes that change estimates
- Toast's competitor clause is the single most-quoted risk and it is real but nuanced. Toast certifies loyalty partners (Punchh, Paytronix, Como, Thanx, Spendgo all ship on Toast)
[known], so "CRM on Toast" is clearly permitted in practice. The clause bites when your product starts looking like a POS — i.e. exactly the direction this project is going. Building a Toast connector as a wedge for a Toast-replacement POS is the textbook way to get de-certified.[estimate on the outcome, verified on the clause text] - Oracle's per-call sandbox billing is a real budget line and a real velocity killer. Integration test suites that re-run on every CI push are not viable against a metered sandbox. Budget a local mock + a small number of metered smoke tests.
[known, oracle.com partner page corroborated 2026-08-18] - NCR's reported 30–50% ISV revenue share comes from secondary reporting, not an NCR price list
[known, treat as directional]. Even at half that, an Aloha connector is negative-margin for a EUR 49/site CRM. Do not build it. - Rate limits are a design constraint, not a footnote. Toast is widely reported at 20 req/s per partner
[known]. A 500-site chain doing menu sync + historical backfill will hit that in minute one. Every connector needs a token-bucket scheduler, per-tenant fairness, and a backfill queue that yields to live traffic. That is ~0.75 eng-months of shared infrastructure, built once.
#3. What guest data you can actually obtain (the number that decides everything)
Identity coverage = share of checks you can attribute to a known, contactable, deduplicated person.
| Source | Identifier obtained | Realistic coverage of a site's checks | Stability | Notes |
|---|---|---|---|---|
| Your own web/app ordering | email + phone + name | 100% of that channel; channel is 10–30% of revenue at a typical SMB [estimate] | High | The only clean source you fully control |
| Delivery aggregator (Glovo/Wolt/Bolt/UE/JET) | first name + last initial; masked/relayed phone; no email | 0% durable identity, on 15–40% of revenue [known] | None | See §5. Aggregators sell you back the customer they took |
| In-store card, you own the processor | PSP card token / network token → stable person key | 60–80% of in-store checks (card mix) [estimate] | High | Requires owning payments. This is the whole argument for owning the POS |
| In-store card, someone else's POS | last4 + brand + name-on-card | Useless for dedup at scale; last4+brand collides constantly | Low | Toast/Lightspeed/Brink tier |
| In-store card, Square | card.fingerprint, stable per card per seller [known] | 50–70% of in-store checks | High | Genuine exception; verify current field semantics before relying on it |
| Loyalty code scanned at POS | your own loyalty ID | 5–25% of checks, and it is entirely a function of whether staff prompt [estimate] | High | Needs T3 write-back or staff stop asking within two weeks |
| QR pay-at-table | email for receipt + card token | 30–60% of table checks where deployed [estimate] | High | Strong wedge in FR/ES/IT; weak in UA cash culture |
| Wi-Fi captive portal | 5–15% opt-in, 30–50% junk addresses [estimate] | Low | Do not build a business on this | |
| Reservations (TheFork, OpenTable, SevenRooms, your own) | name + phone + email | 100% of booked covers; booked covers are 5–40% of covers by segment | High | Best identity source for full-service |
| Receipt/fiscal QR (PL/RO/CZ e-receipt schemes) | anonymous unless guest opts in | <5% [estimate] | Low | Regulatory plumbing, not CRM |
The arithmetic that matters. A CRM sitting on someone else's POS, with no payment rail, realistically gets:
own-channel online (20% of checks × 100%) + loyalty scans (80% of checks × 15%) ≈ 32% of checks — but only ~20 percentage points of that is high-quality — and the loyalty-scan half is only achievable if you have T3 write-back on that POS, which you will have on iiko/Syrve, Poster and Clover and essentially nowhere else without embedded work.
Owning the POS and the payment rail gets you online 20% + card-linked in-store 55% + reservations ≈ 60–75%. That factor-of-three in identity coverage is the entire product difference between a nice-to-have and a system of record.
#4. Middleware: who resells this problem, and are they a wedge or a trap
| Vendor | What it actually normalizes | POS coverage | Channel coverage | Pricing | Latency | Exposes guest identity? | Wedge or trap |
|---|---|---|---|---|---|---|---|
| HubRise (FR) | A genuine neutral data bus: catalog, orders, customers, loyalty, inventory. Public, documented, developer-friendly API | ~100+ EU apps, strong FR/UK/BE [known] | Aggregators + ordering + POS | EUR 35/site/mo std; EUR 30 at 6–30 sites; EUR 27 at 31+; dark-kitchen tiers EUR 35/55/75 by order volume; EUR 25 one-off setup per brand per platform [verified, hubrise.com/pricing] | Seconds [estimate] | Yes — has a first-class customer + loyalty model, unusual | Wedge for EU market entry. Cheapest legitimate route to "we integrate with X" |
| Deliverect (BE) | Aggregator ↔ POS order injection + menu sync. The category leader in EU | Broad, incl. many EU POS [known] | All major aggregators | Not public: one-off setup + per-location subscription + transactional fee, billed 30/90/180/365-day auto-renew [known, deliverect.com corroborated]. Street ~USD 99–300/site/mo [estimate] | Seconds | No — orders carry aggregator-masked identity | Trap for CRM, wedge for ops. Deliverect keeps expanding upward (payments, own ordering) |
| Otter (CloudKitchens) | Aggregator aggregation + own POS + own marketing | Own-stack biased | All majors | Aggressively cheap/bundled [known] | Seconds | No | Trap. Otter sells a POS and marketing; you'd be feeding a direct competitor |
| Chowly (US) | Aggregator ↔ POS injection, plus "smart/dynamic pricing" and marketing upsells | US POS | US aggregators | Not public, scales with order volume [known, chowly.com corroborated] | Seconds | No | US-only; irrelevant to beachhead |
| Cuboh (CA) | Aggregator consolidation, SMB-priced | US/CA POS | US/CA aggregators | ~USD 99–199/site/mo [estimate] | Seconds | No | Irrelevant to beachhead |
| Omnivore (owned by Olo, owned by Thoma Bravo) | The only true POS abstraction layer for read/write on tickets — the thing you'd actually want | Aloha, Micros/Simphony, Brink, Positouch, Squirrel, etc. [known] | N/A | Enterprise, not published; historically ~USD 50–150/site/mo [estimate] | Sub-second on ticket read [estimate] | Ticket-level only | Trap. Olo owns Wisely (guest CRM) and is now PE-owned [verified]. You would rent your core capability from a competitor whose new owner is optimizing for cash |
| Apicbase (BE) | Recipe/inventory/procurement, not orders | POS reads via connectors | N/A | EUR 200–500/site/mo enterprise [estimate] | Batch | No | Partner, not infrastructure |
| Tenzo (UK) | Analytics layer over POS + labour + delivery | Many | Many | EUR 100–200/site/mo [estimate] | Hourly batch [estimate] | No | Competitor-adjacent in the "restaurant brain" positioning |
| Nory (IE) | AI restaurant OS: labour + inventory + increasingly POS | Own + connectors | Some | EUR 150–400/site/mo [estimate] | Near-RT | Some | Watch closely — Nory is walking the same "full stack" path with real funding |
| n8n / Make / Zapier | Glue for the long tail | Anything with a REST API | — | EUR 20–100/mo | Minutes | — | Fine for tail accounting/marketing systems. Never for check data |
#4.1 The margin-stack problem, made concrete
Assume a CRM-only product priced at EUR 59/site/mo (defensible for SMB CRM+loyalty in PL/CZ; UA prices lower, EUR 25–40 [estimate]).
| Cost line | Via HubRise | Via Deliverect | Via Omnivore | Direct connectors |
|---|---|---|---|---|
| Middleware COGS | EUR 27–35 | EUR 99–300 | EUR 50–150 | EUR 0 |
| Messaging COGS (SMS/Viber/WhatsApp, ~1.5 msg/guest/mo) | EUR 4–12 | EUR 4–12 | EUR 4–12 | EUR 4–12 |
| Hosting + support allocation | EUR 6–10 | EUR 6–10 | EUR 6–10 | EUR 6–10 |
| Gross margin at EUR 59 | EUR 2–22 (3–37%) | negative | negative to EUR 0 | EUR 37–49 (63–83%) |
A SaaS business at 3–37% gross margin is not a SaaS business. Middleware is acceptable as a market-entry accelerant for a specific deal and as a demo prop; it is not viable as the permanent architecture of a EUR 59 product. The one partial exception is HubRise at 31+ sites (EUR 27), where a chain deal can still clear 50% GM — and HubRise is also the only one whose data model includes customers and loyalty, so it is the one worth a serious look.
#5. Delivery aggregators
#5.1 Capability and onboarding table
Path shapes below are [known] and approximate; every one must be re-confirmed against current docs before estimating precisely.
| Aggregator | Beachhead relevance | Menu push | Order injection | Store pause / 86 items | Promos via API | Onboarding gate | Guest identity given | Eng-months |
|---|---|---|---|---|---|---|---|---|
| Glovo | UA, PL, RO, ES, PT — highest priority | Bulk JSON menu upload; attribute/attribute-group model that does not map cleanly to modifier groups [known] | Webhook + accept/reject | Yes (store status, product availability) | Partial [estimate] | Signed integration agreement + partner-portal creds; 6–12 weeks [estimate] | Name + masked/relayed phone. No email. | 3–4 |
| Bolt Food | UA, RO, PL, Baltics — high priority | Partner API, docs behind login [known] | Webhook | Yes | Limited [estimate] | Integration agreement; 6–12 weeks [estimate] | Masked | 2.5–3.5 |
| Wolt | UA (pre-2022 strong), DE, CEE, Nordics | Wolt Merchant API menu import; venue online/offline endpoints; reasonable docs at developer.wolt.com [known] | Webhook + accept | Yes | Partial | Partner approval; 4–10 weeks [estimate] | Masked | 2.5–3.5 |
| Uber Eats | PL, FR, ES, PT, UK, US | PUT /v2/eats/stores/{id}/menus, full menu replace [known] | orders.notification webhook → POST /v1/eats/orders/{id}/accept_pos_order [known] | POST /v1/eats/stores/{id}/status (ONLINE/PAUSED) [known] | Yes (offers/promos APIs, market-dependent) | Uber developer account + integration certification; has forced breaking menu-API migrations historically [known] | First name + last initial, relay phone. No email. | 3–4.5 |
| Deliveroo | UK, FR, BE, IT, IE — not UA | Menu API (brand/site/menu resource tree) [known] | Order events webhook + accept/reject/sync-status | Site status API | Limited | Approved-partner queue; 8–16 weeks, slowest of the set [estimate] | Masked | 3–4.5 |
| Just Eat Takeaway (JET) | NL, DE, PL(Pyszne), IE, UK | Market-by-market; many markets still on Orderpad tablet or email [known] | Partner API where available | Yes | No | Gated per market, effectively a BD negotiation; 3–9 months [estimate] | Masked | 3–6, high variance |
| DoorDash | US/CA/AU/NZ | POST /marketplace/api/v2/stores/{id}/menus; best docs of the US set [known] | Webhook + Drive API for own-delivery | Yes | Yes | developer.doordash.com + certification; 6–12 weeks [estimate] | Masked | 3–4 |
| Grubhub | US only | Gated partner API [known] | Yes | Yes | Limited | BD-gated [estimate] | Masked | 3–5 (skip) |
#5.2 What the 3 eng-months per aggregator actually buys
Menu push is the smallest part. The real work:
| Work item | Share of the connector | Why it's hard |
|---|---|---|
| Menu/catalog mapping UI | ~35% | Aggregator models differ structurally: Glovo attribute groups vs Uber modifier groups vs Wolt options; min/max selections, nested modifiers, per-channel price uplifts (typically +15–30% to offset commission), per-channel item visibility, allergen/nutrition fields, image size rules |
| Order ingest + idempotency + reconciliation | ~20% | Duplicate webhooks, out-of-order events, cancellations after acceptance, partial refunds, aggregator-side edits, tips, courier assignment updates |
| Store status / availability / 86-ing | ~15% | Every "sold out" toggle must fan out to N channels with per-channel error handling; failure here is the top operational complaint |
| Auth, credential onboarding, per-site provisioning | ~10% | Each site must be linked by store ID; restaurant staff cannot do this; you need an internal ops tool |
| Certification + sandbox + review cycles | ~10% | Mostly wall-clock, not eng-time, but it blocks release |
| Monitoring, alerting, replay, support runbook | ~10% | You will be blamed for every missing order forever |
#5.3 The CRM truth about aggregators
Aggregators deliberately withhold guest identity. All of them. In all markets. What you get is a first name, a last initial, a relayed/masked phone number that expires, and a delivery address (sometimes truncated). No email, no stable customer ID that survives across orders, and terms that forbid marketing to that guest.
Practical implications:
- Aggregator revenue is CRM-invisible. A restaurant doing 35% of revenue via Glovo has 35% of its business permanently outside its own guest database.
- The only conversion lever is in-parcel: a printed insert or receipt line with a QR to your first-party ordering + a reward. Conversion is real but small — 2–6% of aggregator orders per campaign
[estimate]— and it is a legitimate, sellable feature ("win your customers back from Glovo"). - Delivery address + order pattern is still useful for aggregate analytics (delivery zone heatmaps, channel mix, item cannibalization) even without identity. Sell that as analytics, not CRM.
- GDPR: even the masked data you receive is personal data; you are a processor for the restaurant and the aggregator's terms typically restrict onward use. Any "we enrich aggregator orders into your guest list" feature needs legal review before it ships.
[known, EU]
Verdict on aggregators: build them. Not for CRM value — for operational value and because they are POS-agnostic and competitor-free. Order: Glovo → Bolt Food → Wolt → Uber Eats, then stop. That is ~11–15 eng-months and covers the beachhead.
#6. Google and Apple surfaces
| Surface | Status 2026 | What you can do | Access gate | Eng-months | Value |
|---|---|---|---|---|---|
| Order with Google | Dead. End-to-end ordering ended 2024-07-01; the button now link-outs to an external provider [verified, seroundtable.com / getbento.com corroborated] | Manage the "Order Online" link on the profile so it points at the restaurant's first-party ordering instead of an aggregator | Google Business Profile ownership | 0.25 | High, cheap. "We repoint your Google order button away from Glovo" is a 10-minute demo that sells |
| Reserve with Google | Live, via the Google Actions Center partner portal [known] | Availability feeds + a booking server implementing check-availability / create-booking / update-booking; puts a Reserve button on Search + Maps | Approved RwG partner; slow, opaque, months [estimate] | 2.5–3.5 | Medium. Only worth it once you have a real reservations product and full-service customers |
| Google Business Profile API | Live, free, OAuth2; access requires a per-project allowlist request [known] | Read/write locations, hours, special hours, attributes, menus, posts, media; read and reply to reviews; Performance API for calls/directions/searches | Allowlist request, days–weeks [estimate] | 1.5–2.5 | Highest ROI non-POS integration in this document. Review management + hours sync is a top-3 requested SMB feature and has nothing to do with the POS |
| Apple Business Connect | Live, free portal; bulk/API management aimed at multi-location brands [known] | Place cards, hours, photos, Showcases, action links | Apple ID + place verification; API for larger portfolios [estimate] | 0.5–1 | Low–medium. Cheap parity feature; Apple Maps traffic in CEE is a fraction of Google |
| WhatsApp Business Platform (Meta Cloud API) | Live | The actual CRM delivery channel in PL/RO/parts of UA; template messages, opt-in, per-conversation pricing | Meta Business verification + template approval; ~2–4 weeks [estimate] | 1.5–2.5 | High. Cheaper and higher-open-rate than SMS |
| Viber Business Messages | Live, dominant in UA [known] | Transactional + promo messages via Viber partners (Infobip, MessageBird, local resellers) | Via a BSP; ~2 weeks | 0.75–1.25 | High for UA specifically |
| Telegram Bot API | Live, free, dominant in UA | Loyalty wallet, order status, re-engagement, mini-apps | None | 1–2 | High for UA. A Telegram mini-app is a legitimate substitute for a native loyalty app and costs a tenth as much |
Do not skip the messaging row. In the UA/PL beachhead, the CRM's delivery channel (Viber/Telegram/WhatsApp) matters more to the customer than which POS you read from. It is also entirely under your control — no partner programme, no certification, no competitor.
#7. Accounting, payroll, inventory — connect what, where
Rule of thumb: in CEE, a correctly-formatted export file beats an API integration. Accountants want a file they can import; they do not want OAuth. A generic export engine (configurable CSV/XML templates per country, per accounting package) costs ~1.5 eng-months once and covers ~80% of demand across all four beachhead countries. Build that before any single API connector.
| Country | Accounting packages to satisfy | Mandatory/regulatory hooks | Preferred mechanism | Eng-months |
|---|---|---|---|---|
| UA | BAS Бухгалтерія (1C successor), M.E.Doc, Vchasno, Checkbox / fiscal PRRO providers [known] | PRRO fiscalization (covered in r03) | File export + a Checkbox-class PRRO API | 0.5 export + fiscal is separate |
| PL | Comarch Optima / ERP XT, wFirma, Fakturownia, iFirma, Symfonia [known] | JPK_V7 structures, KSeF e-invoicing [known — confirm current KSeF mandate dates, they have slipped repeatedly] | Fakturownia + wFirma have clean REST APIs; Comarch needs file | 0.5 export + 1.0 per API connector |
| CZ | Pohoda (Stormware), Money S3, iDoklad, Fakturoid [known] | EET is repealed [known] | Fakturoid/iDoklad REST; Pohoda XML import | 0.5 + 0.75 |
| RO | SmartBill, Oblio, SAGA, WinMentor [known] | e-Factura via ANAF SPV is mandatory [known] — this is a gate, not a nice-to-have | SmartBill/Oblio REST; ANAF SPV directly | 0.75 + 2.0–3.0 for ANAF e-Factura |
| DE (if you go west) | DATEV — non-negotiable | DSFinV-K export + GoBD + TSE [known] | DATEV-format export + DSFinV-K bundle | 2.5–4.0, and it is a market-entry gate |
| FR | NF525-certified export expectations [known] | Certification regime | Certified export | Covered in r03 |
| Payroll / scheduling | 7shifts (US/CA), Planday (Nordics/DE/UK), Papershift & Shyftplan (DE), Combo (FR), Deputy (AU/UK) [known] | — | Push worked-hours + sales-per-hour; read schedule | 0.75–1.25 each |
| Inventory / recipe | Apicbase, MarketMan, Growyze, Nory [known] | — | Push item-level sales for theoretical-usage; read stock for 86-ing | 1.0–1.5 each |
Priority for S1: export engine (1.5) → RO e-Factura only if you enter RO (2.5) → one scheduling connector (1.0) → nothing else. Inventory partners are a distraction until you have 200+ sites.
#8. Platform risk, with the receipts
"They can cut you off" is not hypothetical in this category. The pattern is consistent: platform onboards partners to fill a gap → partner category proves it has revenue → platform builds or buys it → partner terms tighten, fees appear, or access is revoked.
| Year | Event | Lesson |
|---|---|---|
| ~2020 | Toast introduces a per-location Partner Connect fee charged to the merchant for integrations [known] | Your integration became a line item the restaurant pays to your competitor to use your product |
| ongoing | Toast expands into online ordering, loyalty, email marketing, payroll, delivery, and reservations — all previously partner categories [known] | Toast's roadmap is a list of partner obituaries |
| 2021 | Olo acquires Omnivore (the neutral POS integration layer) and Wisely (guest CRM) [verified, restaurantbusinessonline.com] | The "neutral" middleware you depend on can be bought by a competitor |
| 2024-07 | Order with Google is discontinued [verified] | A channel that thousands of vendors built connectors for evaporated with ~6 months' notice |
| 2025-09 | Thoma Bravo completes acquisition of Olo, ~USD 2.0B, take-private [verified, thomabravo.com] | PE ownership of your integration layer → price increases and product pruning are the base case, not the risk case |
| ongoing | NCR Voyix gates Aloha Connect behind certification and a reported 30–50% ISV revenue share while selling Aloha Consumer Engagement [known, secondary] | Enterprise incumbents price third-party CRM out of existence rather than banning it |
| ongoing | Square sunsets Connect v1 endpoints; Toast, Uber Eats and Deliveroo have each forced breaking menu/API migrations [known] | Even friendly platforms cost you unplanned eng-months on their schedule |
| 2021–2023 | Deliveroo exits Spain, Netherlands, and other markets [known] | Connectors can become worthless because the counterparty leaves the country |
| 2022 | iiko splits into iiko (RU) and Syrve (international) [known] | Geopolitics fragments a vendor's API surface and support overnight. Directly relevant to a UA-based team |
| ongoing | PAR acquires Punchh, MENU, Data Central, Stuzo, TASK [known] | POS vendors are consolidating the entire attach stack, not just loyalty |
The structural conclusion: a CRM whose data supply is an incumbent POS API has a supplier with a 100% concentration risk, who is also a competitor, who sets the price, and who has a documented history of raising it. No amount of engineering fixes that.
#9. Strategic verdict, quantified
#9.1 The three paths side by side
| Dimension | A. CRM-only, ride the incumbents | B. Own POS only | C. Own POS, sold CRM-first (recommended) |
|---|---|---|---|
| Eng-months to sellable v1 | 14–20 (CRM core 8–12 + 3 connectors) | 60–90 (see r01/r03/r04) | 70–100 |
| Time to first paying customer | 2–4 months | 12–18 months | 6–9 months (CRM ships before POS GA) |
| Identity coverage of checks | 10–25% (no payment rail) | 45–70% | 45–70% |
| Realistic ARPU, PL/CZ SMB | EUR 39–79/site/mo | EUR 79–199/site/mo + payments take 0.15–0.4% | EUR 99–229/site/mo + payments |
| Gross margin after COGS | 60–80% direct; 3–37% via middleware | 70–85% + payment margin | 70–85% + payment margin |
| Sales motion | Easy first call ("keep your POS"), hard second call (proving ROI on 20% coverage) | Brutal: rip-and-replace, 3–9 month cycle, staff retraining, hardware capex | Easy entry, natural upgrade path at renewal/hardware refresh |
| Churn driver | Low perceived value once the novelty passes; POS vendor ships the same feature free | Operational failure (one bad Saturday night = churn) | Both, but stickier once payments are attached |
| Maintenance drag, year 2+ | 0.35–0.6 eng-months per connector per year → 4–7 eng-months/yr at 12 connectors | ~0 for POS core; aggregator connectors only | Aggregator connectors only, ~4 eng-months/yr |
| Platform risk | Existential | None | None on POS; contained on aggregators |
| Defensibility | Near zero. Anyone can call the same API | High: POS switching costs are the highest in SMB software | High |
| Fit for S1 (bootstrapped, 3–4 eng) | Fits, but converges on a low-margin agency | Does not fit alone — 60–90 eng-months ≈ 18–24 months of a 4-person team with zero revenue | Fits if sequenced: CRM revenue funds the POS build |
| Fit for S2 (funded, 15–30) | Under-ambitious for the capital | Fits | Fits, faster |
#9.2 The maintenance-drag calculation (the number people underestimate)
Per connector per year, steady state:
| Failure mode | Frequency | Cost per event |
|---|---|---|
| Auth/token/secret rotation, cert expiry | 1–2×/yr | 0.5–2 eng-days |
| Undocumented schema drift (new enum value, field becomes nullable) | 2–4×/yr | 1–3 eng-days + a production incident |
| Rate-limit or quota change | 0.5×/yr | 2–5 eng-days |
| Forced API version migration | every 18–36 months | 5–20 eng-days |
| Sandbox rot / re-certification | 0.5×/yr | 3–8 eng-days |
| Support escalations traced to the connector | continuous | 0.5–1 eng-day/month |
| Total | 0.35–0.6 eng-months/yr [estimate, but consistent with how every integration team I know budgets] |
At 12 live connectors that is 4.2–7.2 eng-months/year — 0.35 to 0.6 of an engineer, permanently, before any new feature. On a 3-engineer S1 team that is 12–20% of total capacity, and it is the least motivating work in the company. This alone argues for the smallest possible connector portfolio.
#9.3 The recommendation
Build the POS. Sell the CRM first. Use read-only importers, not live connectors, as the bridge.
Concretely:
- Aggregator connectors are the only live third-party integrations worth owning long-term. Glovo, Bolt Food, Wolt, Uber Eats. ~11–15 eng-months. POS-agnostic, competitor-free, real operational pain, sellable on day one even before your POS exists.
- Replace "POS connector" with "POS migration importer." A one-way, read-only importer for Poster, iiko/Syrve and r_keeper that pulls menu, modifier groups, tax setup, staff, table plan, guest list and 12–24 months of check history. Costs 1.5–2.5 eng-months each versus 3–5 for a live bidirectional connector, needs no partner approval where the API is public, and has zero ongoing maintenance (run it once per customer). It converts the hardest objection in POS sales ("I'll lose my history") into a 30-minute onboarding step. This is the single highest-leverage integration in the document.
- Ship one live read-only CRM connector as a lead magnet, and only one: Poster. Public API, self-serve OAuth, 2–6 week approval, right customer base. It lets you sell CRM to sites you have not yet converted and gives you a warm list for POS migration. ~1.5–2.5 eng-months. If it does not generate qualified POS pipeline in two quarters, kill it.
- Build the iiko/Syrve Front plugin only against a signed chain deal. It is the only incumbent where full T3 write-back is architecturally clean, so it is the only one worth the embedded-software cost — but only when someone is paying for it.
- Do not build: Toast, Aloha, Brink, Revel, TouchBistro, SpotOn, Olo, Micros 3700, Grubhub, Chowly, Cuboh. Wrong geography, wrong economics, or a competitor's home turf. Square and Clover become interesting only on a decision to enter the US, and then in that order (Square first: free, permissive, best identity data via card fingerprint).
- Build Google Business Profile early. 1.5–2.5 eng-months, free API, no competitor, and review management is a feature SMB restaurants ask for unprompted. It also works identically whether or not you have replaced their POS.
- Treat middleware as a demo prop, not architecture. HubRise at EUR 27–35/site is the only one with acceptable economics and the only one with a customer/loyalty data model. Use it to say "we already connect to 100+ systems" in a chain RFP; never let it become load-bearing.
#9.4 Build order with ROI
| # | Item | Eng-months | Unlocks | Kill criterion |
|---|---|---|---|---|
| 1 | Google Business Profile (reviews, hours, order-link repoint) | 2.0 | Sellable standalone; no dependency on POS | — |
| 2 | Viber + Telegram + WhatsApp messaging | 3.5 | The CRM's actual delivery channel in UA/PL | — |
| 3 | Glovo connector | 3.5 | 25–40% of beachhead delivery volume | — |
| 4 | Poster importer + live read connector | 3.5 | POS migration pipeline + CRM lead magnet | No qualified POS pipeline in 2 quarters |
| 5 | Bolt Food connector | 3.0 | UA/RO coverage | — |
| 6 | iiko/Syrve importer | 2.5 | The chains worth winning | — |
| 7 | Wolt connector | 3.0 | DE/CEE/Nordic expansion | — |
| 8 | r_keeper importer | 2.5 | Largest UA rip-and-replace target | Dealer relationship unobtainable |
| 9 | Accounting export engine (template-driven) | 1.5 | Removes the accountant objection in all 4 countries | — |
| 10 | Uber Eats connector | 4.0 | PL/FR/ES/PT | Only on Western EU entry |
| 11 | iiko/Syrve Front plugin (T3 write-back) | 4.0 | Real loyalty on someone else's POS | No signed chain deal |
| 12 | RO ANAF e-Factura | 2.5 | Romania market entry gate | Only on RO entry |
#10. Shared integration infrastructure (build once, amortize over everything)
Do not let each connector invent this. ~5.5 eng-months up front, and it is the difference between 3 eng-months and 6 per connector thereafter.
| Component | What it does | Eng-months |
|---|---|---|
| Connector runtime | Per-tenant credential vault, token refresh, OAuth dance UI, per-partner rate-limit token buckets with fairness, exponential backoff, circuit breakers | 1.5 |
| Canonical domain model | One internal representation of catalog / order / check / payment / guest that every connector maps into. Get this wrong and every connector leaks its vendor's model into your core | 1.25 |
| Idempotency + event log | Append-only inbound event store, dedup keys, replay from any point, "what did they actually send us" forensics — you will need this in every support ticket | 1.0 |
| Mapping UI framework | Reusable item/modifier/tax/store mapping screens with diff, bulk edit, validation; used by every aggregator and every importer | 1.0 |
| Observability | Per-connector per-tenant dashboards: orders in/out, latency percentiles, error taxonomy, menu-sync freshness, plus alerting that pages before the restaurant calls | 0.75 |
#Build effort
All figures are engineer-months of a competent senior engineer with heavy AI assistance. Variance drivers listed. Certification wall-clock is not included in eng-months but blocks release.
| # | Work item | Eng-months | Main variance driver |
|---|---|---|---|
| Shared infrastructure | |||
| I1 | Connector runtime (auth, rate limiting, retries, circuit breakers) | 1.5 | Number of distinct auth schemes; per-tenant credential UX |
| I2 | Canonical catalog/order/check/guest model | 1.25 | Whether it is designed before or after the first three connectors (after = 2× rework) |
| I3 | Idempotent inbound event log + replay | 1.0 | Volume expectations; whether you need per-tenant retention policies |
| I4 | Reusable mapping UI framework | 1.0 | Depth of modifier nesting supported |
| I5 | Per-connector observability + alerting | 0.75 | Existing platform telemetry maturity |
| Aggregators | |||
| A1 | Glovo | 3.5 | Attribute-group model mismatch; per-country variations; partner-portal provisioning |
| A2 | Bolt Food | 3.0 | Docs behind login; sandbox availability |
| A3 | Wolt | 3.0 | Multi-country venue models |
| A4 | Uber Eats | 4.0 | Full-menu-replace semantics; certification rework; promo APIs vary by market |
| A5 | Deliveroo | 4.0 | Longest approval queue; only if UK/FR/BE/IT |
| A6 | Just Eat Takeaway | 5.0 | Per-market API fragmentation; some markets have no API at all |
| POS importers (read-only, one-shot) | |||
| P1 | Poster importer | 1.5 | Cleanest API of the set |
| P2 | Poster live read connector + marketplace listing | 2.0 | Marketplace review; webhook reliability |
| P3 | iiko/Syrve importer (Cloud API) | 2.5 | Multi-org/multi-terminal configs; discount-model translation |
| P4 | r_keeper importer | 2.5 | XML-over-TCP, dealer-gated access, version drift across r_keeper 6/7 |
| P5 | Dotypos / Storyous importers | 2.0 each | Only on CZ/SK/PL entry |
| P6 | Generic CSV/Excel menu importer (fallback for everything else) | 1.0 | Column-mapping UX; how forgiving you make it |
| POS live/write connectors (only on demand) | |||
| P7 | iiko/Syrve Front plugin, T3 write-back | 4.0 | .NET plugin runtime, on-site deployment, version matrix across Front releases |
| P8 | Square connector (US only) | 3.0 | Straightforward; App Marketplace review |
| P9 | Clover connector + on-device Android app (US/DE/PL) | 5.0 | Two codebases (cloud + device), app review, device fleet testing |
| P10 | Toast connector (US only) | 5.0 | 8-stage certification; competitor-clause legal review |
| Discovery surfaces | |||
| G1 | Google Business Profile (locations, hours, reviews, posts, order-link) | 2.0 | Allowlist approval; review-reply moderation UX |
| G2 | Reserve with Google (Actions Center feeds + booking server) | 3.0 | Requires a real reservations product first; partner approval opaque |
| G3 | Apple Business Connect | 0.75 | Low risk; mostly a data-push job |
| Messaging channels | |||
| M1 | WhatsApp Business Platform (Meta Cloud API) | 2.0 | Template approval loops; opt-in compliance; per-country pricing logic |
| M2 | Viber Business Messages via BSP | 1.0 | BSP choice; UA-specific |
| M3 | Telegram bot + mini-app loyalty wallet | 1.75 | Whether the mini-app carries the full loyalty UI |
| Back office | |||
| B1 | Template-driven accounting export engine (CSV/XML, per country) | 1.5 | Number of target formats in v1 |
| B2 | Fakturownia / wFirma / SmartBill / Oblio / Fakturoid REST connectors | 0.75 each | Invoice-model mismatch (fiscal vs. commercial documents) |
| B3 | RO ANAF e-Factura (SPV, UBL, signing) | 2.5 | Certificate handling, XML validation, ANAF outage handling |
| B4 | DE DATEV + DSFinV-K export | 3.5 | Only on DE entry; effectively a compliance project |
| B5 | One scheduling connector (Planday or Papershift) | 1.0 | Bidirectional vs push-only |
| Ongoing | |||
| O1 | Maintenance, per live connector per year | 0.35–0.6 | Vendor's release discipline; whether you have contract-testing against recorded fixtures |
Recommended S1 v1 scope (bootstrapped): I1–I5 + A1 + A2 + P1 + P2 + P3 + G1 + M1 + M2 + M3 + B1 = 28.5 eng-months. At 3 engineers that is ~9.5 calendar months of integration work alone, running in parallel with the POS build — which is why S1 must cut something. The honest cut list: drop A2 (Bolt Food) and M1 (WhatsApp) from v1 → 23.5 eng-months.
S2 v1 scope (funded): add A3, A4, P4, G2, B3, B5 → +18 eng-months, plus a dedicated 1.5-FTE integrations pod from month 6 to absorb O1.
#Open questions / what would change this answer
- Does Poster (or Dotypos) publish partner-marketplace revenue-share terms, and are they under 20%? If Poster takes 30%+, the "Poster as lead magnet" play loses most of its economics and should become importer-only. Confirms it: the joinposter developer/partner agreement, one email to their partner team.
- Is
card.fingerprinton Square still stable per-card-per-seller in 2026, and does any EU POS expose an equivalent? If a European POS or PSP exposes a stable network token to third parties, path A (CRM-only) gets meaningfully better — identity coverage could double. Confirms it: Square Cards API docs; Adyen/Nexi/Worldline tokenization terms for ISV access. - What is the actual POS install-base split in the UA/PL beachhead? My ranking (Poster > iiko/Syrve > r_keeper > local) is
[estimate]from training data. If r_keeper is 3× Poster in the target segment, the importer build order flips. Confirms it: 30 discovery calls, or a data pull from a Ukrainian POS reseller / equipment distributor. - Will Toast's competitor clause actually be enforced against a POS-adjacent CRM? It has never, to my knowledge, been litigated publicly. If a US-market decision is ever on the table, this needs a real lawyer reading the current API Documentation License Agreement, not a search snippet. Confirms it: counsel review + conversations with 2–3 existing Toast loyalty partners about their experience.
- Is HubRise still independent, and what are its partner (not customer) terms? EUR 27–35/site is verified customer pricing; the ISV-side terms are not. HubRise being acquired by a POS or aggregator would change the "wedge" verdict to "trap" overnight — the Omnivore precedent is exactly this. Confirms it: HubRise partner agreement + a look at their cap table/news.
- What are Glovo's and Bolt Food's actual partner-onboarding requirements in Ukraine specifically — do they require a registered local entity, a minimum number of connected merchants, or an existing POS certification? A minimum-merchant threshold would create a chicken-and-egg problem that reorders the entire build plan. Confirms it: their partner-integration application forms and one call each.
Cross-references: hardware and printing constraints in r01-hardware-peripherals.md; fiscalization gates that make several of these markets pass/fail in r03-fiscal-regulatory.md; offline behaviour and the canonical check model in r04-offline-sync-domain.md.