> ## Documentation Index
> Fetch the complete documentation index at: https://developers.xfaster.net/llms.txt
> Use this file to discover all available pages before exploring further.

# Restaurant overview

> When to use the Restaurant kit.

Use this kit for **restaurant POS systems**: orders with choices, add-ons, deals and pizzas, accepted with a prep time and marked ready from the POS.

## Who does what

| Direction | Who calls | Purpose |
| - | - | - |
| New and changed orders | XFaster → your endpoint | A signed webhook with the full order |
| Order actions | Your POS → XFaster | Received, accept, prep time, reject, ready, collected |
| Menu and store | Your POS → XFaster | The whole menu, items on/off, prices, busy, open/close, hours |
| Menu (POS-hosted) | XFaster → your menu URL | XFaster pulls your menu ([POS-hosted mode](/restaurant/pos-hosted)) |

## How an order flows

<Steps>
  <Step title="order.created">XFaster sends a signed webhook to your endpoint.</Step>
  <Step title="Confirm">The webhook carries the order. Print it, then `POST /orders/{id}/received`.</Step>
  <Step title="Accept">`POST /orders/{id}/accept` with `prep_time_minutes`. Kitchen tickets print on the XFaster side as usual.</Step>
  <Step title="Ready">`POST /orders/{id}/ready` when the food is packed. The courier is sent according to it.</Step>
  <Step title="Done">The courier picks up and delivers, or you mark a pickup order `collected`.</Step>
</Steps>

## Statuses

| `status` | Meaning |
| - | - |
| `new` | Waiting for the store to accept |
| `preparing` | Accepted, `ready_by` says when |
| `ready` | Ready for the courier or the customer |
| `picked_up` | The courier has the food |
| `delivered` / `collected` | Done (delivery / pickup) |
| `cancelled` | Cancelled, failed or refunded |

<Note>
  Delivery customers never see "ready". For them the order stays "preparing" until the courier picks it up.
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.