Skip to main content
When a customer checks out on any connected channel, Fire spark notifies your integration with a webhook. You do not poll for new orders — Fire spark pushes events to the URL you configure for the merchant.

How orders reach your kitchen

This is the same flow whether the order came from your app, Uber Eats, or a kiosk:
1

Customer places an order

The order is created in Fire spark with line items, totals, store, channel, fulfillment type, and payment state.
2

Fire spark notifies your integration

Your server receives a webhook with the event type and order identifier.
3

order.injected sends the ticket to your POS

When Fire spark fires order.injected, your integration receives the full order payload. This is the moment to create the ticket in your POS or RMS — using the payment, fulfillment, and line-item state exactly as included in the event, without waiting for a separate API call.
4

Your POS updates Fire spark

As the order progresses in your operational system, call Update order status so every channel stays aligned.
For marketing and operations teams: order.injected means “send this order to the kitchen system now.” Fire spark does not rewrite the order at injection time — the POS receives the order in whatever state it is in when the event fires (for example paid and ready to prepare, or still pending payment if your channel allows that).

Configure your endpoint

Register an HTTPS webhook URL in the merchant integration settings in the Fire spark dashboard. Fire spark sends POST requests to that URL for each subscribed event.
Requires an integration configured for the merchant. See Introduction for the full integration setup flow.

Event types

Treat order.injected as the operational handoff. Earlier events such as order.created are useful for logging and analytics; the kitchen ticket should be created when order.injected arrives unless your integration design explicitly handles a different event.

Webhook payload

Each delivery is a JSON object with a consistent envelope:

data object

Order status fields in the payload

These fields describe the order state at the time the webhook fires. On order.injected, map them directly into your POS ticket.

Handling order.injected

  1. Read data.order_id and the full data.order object from the payload.
  2. Map fulfillment_id, store_id, channel_id, brand_id, and line id values to your POS catalog (same external ids used during menu sync). Use line metadata for POS-specific hints that do not belong on the order-level metadata object.
  3. Create the ticket in your POS or RMS using the totals, customer, and status fields as sent — do not assume the order is always PAID or PREPARING; respect the values in the payload.
  4. Return HTTP 200 (or another 2xx) promptly. Perform slow POS calls asynchronously after responding if needed.
  5. When your POS changes fulfillment progress, call Update order status.
If your endpoint returns an error for order.injected, Fire spark retries delivery. Guard against creating duplicate POS tickets — check whether order_id was already injected before opening a new ticket.

Fetching an order manually

If you receive order.created or order.updated without the full order object, call Get order with the external order_id. Requires the orders:read scope.

Get order

Retrieve the full order by external id

Update order status

Report POS fulfillment progress back to Fire spark