Skip to main content
OrderOut
Create Account

Integration API

The API for connecting third-party delivery orders into restaurant POS systems

REST endpoints plus signed webhooks. Sandbox-first. Idempotent by key. Build one integration; reach every supported channel and POS.

integration.ts ts
import { OrderOut } from '@orderout/sdk';

const client = new OrderOut({ apiKey: process.env.OO_KEY });

// Receive a normalized order from any supported channel
client.on('order.created', async (order) => {
  // order.channel: 'ubereats' | 'doordash' | 'grubhub' | 'chownow' | 'wix'
  // order.lineItems: normalized shape across channels
  await yourPosClient.pushOrder(order);
});

// Patch menu availability — pushes to connected channels
await client.menus.patch({
  pos: 'clover',
  itemId: 'item_123',
  available: false,
});
Example client usage

What it does

Normalizes channels

Receive identical JSON for orders from Uber Eats, DoorDash, Grubhub, ChowNow, and Wix. One handler, every supported channel.

Routes to POS

Push orders into Clover, Square, Pecan, Plateron, or Truffle. Toast and Lightspeed in private beta.

Menu sync

Bidirectional catalog updates. Item-level dual pricing and 86 actions supported across channels.

Signed webhooks

HMAC-signed delivery, retries on 5xx, idempotent by event key. Standard verification — no proprietary signature scheme.

Built for

Whoever is shipping the integration.

POS Companies

Add multi-channel order routing without writing one integration per marketplace.

Delivery Platforms

Reach connected POS systems through one webhook contract.

Online Ordering Apps

Drive direct orders into the same POS pipeline as marketplace orders.

Restaurant Tech

Read normalized orders for reporting, loyalty, accounting, and inventory.

Core flows

Orders

  • list
  • get
  • cancel

Receive orders from supported channels; cancel from your application.

Menus

  • get
  • patch
  • push

Read the live catalog; patch item availability and prices; push to channels.

Restaurants

  • list
  • get
  • patch

List connected stores; read store hours; patch open/paused state.

Webhooks

  • subscribe
  • verify
  • replay

Subscribe to events; verify HMAC signatures; replay missed events.

Delivery

  • quote
  • dispatch
  • track

Quote a delivery; dispatch through a connected courier network; track in real time.

Real examples

Channel-to-POS routes you can build today.

Uber Eats Clover
await client.orders.list({ channel: "ubereats", status: "open" })
DoorDash Square
client.on("order.created", async (o) => square.push(o))
Grubhub Pecan
await client.menus.patch({ pos: "pecan", item, available: false })

Integrator pricing

Pricing shaped to your integration

Sandbox keys are request-based. Production and Enterprise plans are quoted against volume and integration depth.

  • Sandbox Access Request access
  • Production API Custom pricing
  • Enterprise / Platform Custom contract
View pricing page

Build one integration. Reach every supported channel and POS.

Request a sandbox key and start receiving normalized orders within one business day.