How To Integrate Eat App with your POS system

A Step-by-Step guide to Enabling 2-Way Sync Between your POS and Eat App Using Webhooks and POS Open API (v3)

Eat App POS Integration Onboarding Guide


🏆 Goal

Achieve 100% matching of POS tickets to reservations, allowing our mutual customers to track both POS data and reservations seamlessly together.

 This includes,

  1. Automatically opening a POS ticket when a table is marked seated or occupied in Eat App.

  2. Adding a unique reservation ID to the POS ticket, which is returned on closing, to ensure accurate matching.

  3. Automatically updating the POS ticket when guests move tables in Eat App.

  4. Automatically updating Eat App when table changes happen in the POS system.

Bonus: Receive and tally the bill amount for reservations whenever the guest has pre-paid for their reservation via Eat App

Expected Journey: 

Eat app POS Integration flow diagram


🔧 Integration Steps

To integrate your POS with Eat App, you'll need to use two core APIs:

  • 🔁 Reservation Webhook – Receives real-time reservation data from Eat App
    View Docs

  • 📤 POS Open API v3 – Sends order data and updates from your POS to Eat App
    View Docs

✅ Step 1: Configure Reservation Webhook

For each restaurant:

  • Set up a Webhook URL to receive reservation events.

  • Ensure webhook delivery is enabled in the restaurant's Eat App account.

Here is a sample payload that we can send on your webhook url: 

{

restID: 'xxxxxxx',  // location id from POS

reference_id: 'xxxx-xxxx-xxxx-xxxx-xxxx', // unique reservation id from Eat app

name: 'Guest name',

phone: 'Guest phone',

no_person: 2, // cover count or pax

table_no: '1', // POS table number as mapped in Eat App

reservation_date: '2025-06-10 06:20:05

status: 'seated'

}

If you want modifications in the payload, you can reach out to us

When you receive a reservation with status = "seated":

  • Open a table/order in your POS.

  • Store the reference_id in your POS metadata:

    "metadata": {
    "eat_reservation_id": <reference_id>
    }

📘 Refer to: Reservation Webhook Docs


✅ Step 2: Send POS Orders to Eat App

Use the POS Open API v3 to create and update orders linked to reservations.

Required fields:

  • table_name (user-friendly label)

  • reservation_id

  • Accurate start_time, end_time

  • subtotal, tax, discount, total_spend

  • A unique and consistent order_id

📘 Refer to: POS Order Fields


✅ Step 3: Keep Orders & Table Status Updated

  • Send order updates as changes occur (e.g. new items, payment info).

  • Include fields like:

    • ticket.statusopen, closed, cheque_dropped, voided

    • table.status → optional, and if your pos system supports it. 

  • Always use the same order_id to when sending updated orders. 

📘 Refer to: Order Updates


✅ Step 4: Handle Reservation Changes via Webhook

When a reservation is updated (e.g., table reassignment):

  • Listen for update events via webhook.

  • Compare ticket_id from the webhook to your internal state.

  • If changed, update the POS order to match the reservation table changes to your equivalent ticket id, or, tickets with the same reservation id. 

Use these identifiers:

  • reservation_id

  • pos_service_id

  • pos_service_table_id

  • ticket_id

📘 Refer to: Reservation Updated Event


Integration Checklist

Task Done
Webhook URL configured
Webhooks enabled on Eat App account
Orders opened in POS on seated event
eat_reservation_id stored in POS order metadata
POS orders sent with correct timestamps & spend
Unique & consistent order.id used for all updates
Order/table status updates from Eat App Reservations handled
Webhook reservation changes handled so that tables are also updated.
 

🆘 Need Help?

For questions or technical support, contact the Eat App Integrations Team on support@eatapp.co