Skip to content
Developer preview: the API may change before general availability. Request access

A job finished

POST

A menu import or publish finished. Check status; partially_failed and failed list what went wrong.

webhook-id
required
string

Unique delivery ID; equal to the event ID. Use it to ignore duplicates.

webhook-timestamp
required
string

Unix timestamp (seconds) when the delivery was signed.

webhook-signature
required
string

Standard Webhooks signature (v1,<base64 HMAC-SHA256>).

Media typeapplication/json
object
id
required
string
type
required
string
created_at
required
string format: date-time
merchant_id
required
string
location_id
string | null
connection_id
required
string
origin
required

What caused the change. Ignore events where application_id is your own.

object
type
string
Allowed values: channel api loops_app loops_team system
application_id
string | null
data
required

Event-specific payload.

object
key
additional properties
any
data
required
object
id
required
string
type
required
string
Allowed values: menu_import menu_publish
brand_id
string
status
required

pending and running while in progress. succeeded: everything applied. partially_failed: some results failed (publish only). failed: nothing applied.

string
Allowed values: pending running succeeded partially_failed failed
errors

For a failed import, every problem found. An import is all or nothing.

Array<object>
object
external_ref

The menu item the problem is about, if any.

string | null
field
string | null
code
required
string
message
required
string
results

For a publish, one result per location and delivery app.

Array<object>
object
location_id
required
string
channel_connection_id
required
string
channel
required
string
status
required
string
Allowed values: pending succeeded failed
errors

Items the delivery app rejected, and why.

Array<object>
object
external_ref

The menu item the problem is about, if any.

string | null
field
string | null
code
required
string
message
required
string
created_at
required
string format: date-time
completed_at
string | null format: date-time

Return any 2xx within 10 seconds to acknowledge.