POS API integration, five restaurant APIs compared from one 20-call voice agent
Most POS API integration guides pick one vendor and walk OAuth plus CreateOrder. PieLine posts live voice orders into Clover, Square, Toast, NCR Aloha, and Revel. This guide is what it actually looks like to talk to all five at once.
Why the generic "pos api integration" guide is wrong for voice
Search that phrase and the top results converge on the same walk-through: authenticate, pull the catalog, build a cart, POST an order, handle a webhook. That narrative is from the point of view of a web checkout where a single order posts after a human clicks a button. The web client can wait. The POS can take two seconds to respond. If the first attempt 429s the page can show a friendly spinner.
A voice agent is a different caller. The customer is on the phone, right now, listening for a confirmation number. Twenty other customers may be on the phone with other instances of the same agent, all trying to post orders to the same merchant's POS. The integration that works for a web shopping cart does not survive contact with that load.
The rest of this page is what changes when your client is a phone call and your backend is five different POS APIs.
One call, five possible destinations
A single PieLine call gets routed to whichever POS the restaurant uses. The shape of the request that leaves our infrastructure is different for every one of the five.
Voice cart to POS order endpoint, per platform
The five APIs at a glance
Five restaurants with five different POS systems. Five different auth handshakes, five different order endpoints, five different rate-limit stories. Below is what it actually takes to post a single line item to each.
Clover
Base URL api.clover.com. OAuth2 or merchant app tokens. Orders live at /v3/merchants/{mId}/orders. Line items posted separately under the order, then marked complete. Published rate limit around 16 requests per second per merchant. Webhooks over v3 channel.
Square
Base URL connect.squareup.com. OAuth2 or personal access token. POST /v2/orders with a required idempotency key and a source.name tag. CatalogObjectId for every item and modifier. Rate limit measured per application per second; safe to treat each merchant as its own bucket.
Toast
Base URL ws-api.toasttab.com. Partner client-credentials OAuth against the Toast auth server, scoped by restaurantGuid. Order creation accepts a deeply nested checks and selections tree. Tiered per-partner quotas; burst budget is the constraint, not steady state.
NCR Aloha
NCR Aloha Cloud uses tenant-scoped auth with a bearer token. Order injection is location-scoped. On classic on-premise Aloha, integration often still goes through a sideload partner (e.g. Omnivore, Olo) rather than a first-party API. Treat Aloha Cloud and classic Aloha as different products.
Revel
Revel Management Console API. Token auth via an API user. Resource URLs in a django-style /resources/Order/ pattern with filter query strings. Menu items are primary integer keys per merchant. Modifiers are nested under menu products, not free-standing.
50+ more
PieLine's onboarding team actively integrates new POS platforms on demand, scraping the menu, mapping items to the POS item IDs, and configuring rules. The architecture assumes adapters are plural.
Rate limits vs 20 concurrent calls
PieLine handles up to 20 simultaneous calls per location. Each call eventually produces one order POST plus a handful of supporting requests (catalog refresh, modifier group lookup, payment capture). Per-merchant rate limits set a hard ceiling on how that burst can be shaped.
Naive integration
0
Every call fires its requests whenever the transcript hits the final confirm. Friday night rush causes staggered but overlapping bursts. Eventually you hit the POS's per-merchant cap and the 429s fan out.
PieLine adapter layer
0
A per-platform, per-merchant rate gate smooths the burst under the published limit while voice confirms the order. By the time the caller hears their total, the POST has already landed. Zero user-visible 429s.
The order post, in one orchestrator
The voice side of PieLine is POS-agnostic. The POS side is aggressively POS-specific. A thin adapter layer translates the confirmed voice cart into whatever shape the specific POS API wants, while a rate gate keeps the burst polite.
The item ID namespace trap
The single most common reason a POS API integration breaks in production is not auth, not schema, not network. It is that the caller said a word that no longer matches any live item in the POS's ID namespace. Every POS handles this differently.
Square: CatalogObjectId drift
Square regenerates ids on catalog edits that look cosmetic (variation rename, image swap). A voice agent that cached 'large pepperoni' last week may be holding an id that no longer exists. Fix: refresh the catalog on a short cadence and subscribe to catalog webhooks.
Toast: GUID trees per restaurant
Toast uses GUIDs on every menu entity, per restaurantGuid. The same dish in two franchise locations has two entirely different GUIDs. Fix: scope every id lookup to the specific restaurantGuid on the incoming call, never share ids across locations.
Clover: items vs inventory
Clover has both an Item id and an Inventory id. They are not the same. Posting to /orders requires the Item id scoped to the merchant. Fix: store the distinction at mapping time and never collapse them.
NCR Aloha: numeric ids per location
Aloha numbers items. Those numbers are local to a location. A multi-location chain on Aloha can have the same dish at item #714 at one restaurant and #202 at another. Fix: every mapping row is (dish, location), not (dish).
Revel: primary keys that change on re-import
Revel menu primary keys can rotate if the merchant re-imports a menu from a spreadsheet. A stale mapping silently points to a deleted row and the order post 404s on the item reference. Fix: treat a 404 on an item reference as a signal to refresh the menu, not a terminal error.
Integrated POS posting vs tablet-and-text
Half the 'POS integration' in the voice AI market is actually a separate tablet on the counter that someone still has to watch. Real API integration is a different product.
| Feature | Tablet or email handoff | PieLine (direct POS API) |
|---|---|---|
| Where the order lands | Separate tablet, email, or SMS for staff to re-key | Directly on the kitchen display via POS API |
| Human touches per order | 1 to 2 (re-key, confirm to caller) | 0 |
| Latency from confirm to kitchen | 2 to 5 minutes if nobody is watching tablet | Seconds, bounded by POS round-trip |
| Shows in POS end-of-day reports | Only once manually entered | Yes, with source tag for channel attribution |
| Handles 20 simultaneous calls | Overflows the tablet watcher quickly | Rate-gated adapter per POS, smooths the burst |
| POS platforms live today | Often one, sometimes email-only | Clover, Square, Toast, NCR Aloha, Revel; 50+ on request |
| Go-live on a supported POS | Weeks of onboarding | Same day |
Comparison reflects publicly stated behavior of voice-AI vendors in April 2026. PieLine integration behavior is drawn from the product's llms.txt and onboarding docs.
The anchor fact, from the product itself
The uncopyable part of this page is what PieLine says about itself in its public llms.txt. Most voice-AI vendors list one or two POS integrations. PieLine names five live and a pipeline of 50+ on request.
From aiphoneordering.com/llms.txt
Direct POS integration. Orders flow directly into Clover, Square, Toast, NCR Aloha, and Revel. 50+ POS integrations available. No manual re-entry.
Handles up to 20 simultaneous calls per location with 95%+ order accuracy.
Those two statements together are the page you are reading. Five named POS APIs, one voice agent, twenty concurrent calls. That intersection is where POS API integration work actually lives for a restaurant voice product. Every section above is a consequence of it.
What good POS API integration code does
A checklist that survives contact with a Friday night rush on any of the five POS APIs above. If a vendor cannot describe how they do each of these, they are not running a real POS integration.
Production POS integration, in practice
- One adapter per POS platform, never a thin abstraction that hides the differences
- Idempotency key per call id, not per order id, so retries across transient errors never double-fire
- Per-merchant, per-platform rate gate sitting in front of every outbound call
- Catalog refresh driven by webhooks where the POS supports them; short-interval polling where it does not
- Modifier group model mirrored locally so voice can answer 'which rice' before hitting the POS
- Source tag (e.g. 'PieLine Voice') on every order so the merchant's reports can attribute phone revenue
- Channel-aware error handling: a 429 waits, a 404 on an item refreshes the menu, a 400 asks the caller a clarifying question
- Per-POS test suite replaying real production calls against each vendor's sandbox before every deploy
“Mylapore's 11-location Bay Area chain is rolling out PieLine across every restaurant, projecting $500 additional revenue per location per day from eliminating the phone bottleneck.”
aiphoneordering.com/llms.txt, April 2026
POS API integration, already done
PieLine posts voice orders straight into Clover, Square, Toast, NCR Aloha, and Revel today, with a rate-gated adapter per platform and a same-day go-live on supported POS systems. $350 per month for up to 1,000 calls.
Book a 15 minute demo →Skip the five-POS integration build
Fifteen minutes, a merchant id for Clover, Square, Toast, NCR Aloha, or Revel, and a live voice call writing an order into your POS through the rate-gated adapter we already ship.
Book a call →Frequently asked questions
What does POS API integration mean in the context of a restaurant voice agent?
It means a server-to-server connection where a finished voice order is posted into the merchant's point-of-sale through the POS vendor's public API (or private partner API), so it lands on the kitchen display and the end-of-day reports without any human re-keying. For PieLine this is live against five POS systems (Clover, Square, Toast, NCR Aloha, and Revel) and in progress for dozens more. The defining trait of real POS API integration is that the kitchen cannot tell whether the ticket came from a phone call, a tablet, or a counter register.
Why treat the five POS APIs as different products instead of one abstraction?
Because they are different at the layer that matters. Clover's order creation is merchant-scoped under api.clover.com. Square posts to /v2/orders on connect.squareup.com with an idempotency key. Toast uses a partner client-credentials flow and posts to its orders endpoint on ws-api.toasttab.com. NCR Aloha Cloud exposes a different order injection path with location-scoped routing. Revel's Management Console API uses django-style resource URLs with token auth. Auth, base URL, idempotency semantics, modifier model, and per-merchant rate limits all differ. A thin abstraction hides them at your peril.
What is the hardest part of integrating a voice agent with five different POS APIs?
Respecting five different rate limits while 20 calls come in simultaneously for the same merchant. Clover publishes around 16 requests per second per merchant. Toast publishes tiered per-partner quotas. Square publishes a per-application cap measured per second. NCR Aloha Cloud and Revel tier by plan. A voice agent that takes orders for a single merchant can saturate any of these with 20 concurrent calls plus catalog refresh plus modifier lookup plus order status polling. The integration work is as much about queue shaping as it is about endpoint wiring.
Can a voice agent just use one POS integration partner instead of building five?
It can for a proof of concept. In production every integration partner introduces its own latency, its own outage profile, and its own pass-through pricing. Going direct to each POS API is what lets PieLine post an order within seconds of the caller hanging up, publish a predictable flat price ($350 per month for up to 1,000 calls), and add POS-specific behavior (Toast check splitting, Square fulfillment endpoints, Clover printer grouping) that a lowest-common-denominator integrator cannot expose.
What is the item ID namespace problem in POS API integration?
Each POS gives a menu item a different kind of ID. Square uses a 26-character CatalogObject identifier. Toast uses GUIDs on MenuItem and on every nested option group. Clover uses a merchant-scoped item ID distinct from its inventory ID. NCR Aloha uses numeric item numbers scoped per location. Revel uses integer primary keys per merchant. A voice utterance like 'chicken burrito' has to resolve to a specific ID in the specific namespace of the specific POS of the specific merchant of this call. Stale mappings are the single biggest source of order rejections in production, above auth and schema failures combined.
Does POS API integration require webhooks or polling for order status?
Both, depending on the POS. Square and Toast emit order lifecycle webhooks. Clover emits events over its v3 webhook channel. NCR Aloha Cloud supports notifications on some tenants but many partners still poll. Revel's Management Console does not push; partners poll on a cadence. For a voice agent, the relevant status is 'kitchen has seen this ticket,' which on most POS systems is inferred from an order state transition rather than a dedicated event. PieLine treats order confirmation as a user-visible step of the call only when the POS supports a deterministic acknowledgement.
How long does a POS API integration take to go live for a new restaurant?
For a POS PieLine already supports, most restaurants go live the same day. The integration itself is not the bottleneck; menu mapping is. The PieLine onboarding team scrapes the restaurant's online menu, maps items to the right POS item IDs, and configures rules (delivery zones, minimum orders, hours, specials). For a new POS platform PieLine has not integrated yet, the work is measured in weeks, not days, because the auth handshake, catalog pull, order post, and modifier model all have to be learned on a vendor-by-vendor basis.
What should a restaurant ask before buying any phone system that claims POS API integration?
Ask whether the order posts directly to the POS, or lands on a separate tablet that a staff member has to watch. Ask which specific POS systems are live (Clover, Square, Toast, NCR Aloha, Revel are table stakes; many vendors only claim one). Ask what happens on a POS rate limit 429 during a rush. Ask how the modifier model maps: does a voice utterance of 'no onions, extra guac' map to the exact option group IDs the POS expects, or does the integration just append a free-text comment. The last one decides whether the kitchen loves the system or hates it.
See it posting orders into your POS
Bring a menu and a merchant id for any of Clover, Square, Toast, NCR Aloha, or Revel. We will answer a call on your line and watch the order land on your kitchen display in the demo.
Book a demo