Skip to content
Melted cheese over smash burgers on a flat-top grill

Ordering API

Place real restaurant orders from your app.

Watch an order move

Building the cart

building

Layout builds it on the restaurant's own ordering site.

ready

Your app shows the total and the card. Nothing is charged yet.

placing

The person said yes. Layout pays the restaurant.

placed

The restaurant's own receipt came back.

One engine, two doors

The same checks and the same money rules sit behind both.

REST

For the app you build. Carts, orders and webhooks over HTTPS.

api.layout.link

MCP

For AI agents. The same orders as tools an assistant can call.

mcp.layout.link

Texts stay rare

Layout only texts your user a code when they create their account or when its fraud checks flag a large order.

482913

Your backend hears it all

Every event is signed, sent again when your endpoint misses it, and readable later from the events feed.

  • order.carted

    The cart is ready to confirm

  • order.placed

    The restaurant confirmed it

  • order.updated

    The pickup time arrived

  • order.unconfirmed

    Layout can't tell yet, so it never retries

  • order.refunded

    Money went back to the card

Practice every ending

Sandbox builds carts from real menus and ends them however you pick. Nothing is ordered or charged.

PlacedFailedUnconfirmedCard declinedPrice changedStore closedPickup laterCode neededCard challenge

Questions, answered

Read the docs

Seconds at a restaurant Layout already knows. At one it has not ordered from before, often one to three minutes. Your app polls the cart or waits for a webhook.

Layout. It pays the restaurant and charges the person's card for the total they approved. People connect a card through Sign in with Layout or a card link, so card numbers never reach your app.

It reads unconfirmed, which means Layout cannot tell whether the restaurant received it. Treat it as pending and never build it again, so nobody is charged twice.

Sandbox works the moment you sign up. Production opens after approval, which you request from the console.

Food ordering,
without the ordering