Customer events and v1 event format
Backward compatible, no action required: existing endpoints keep their current format until they are migrated.Added- Event format
v1:id,type,api_version,created,restaurant_idanddata.object, which uses the Partner API representation of the reservation or customer. data.previous_attributeson*.updatedevents.EatNow-Signaturesignature header (t=…,v1=…); secrets prefixed withwhsec_.- Events
customer.created,customer.updated,customer.deletedandcustomer.merged(v1format only). /webhook-endpointsendpoints (scopeWEBHOOKS_WRITE): create, retrieve, list, update, delete,rotate-secretandtest. An endpoint only receives the events its API key can read.
- Endpoints created from the dashboard use the
v1format. An existing endpoint can be migrated from Settings › Integrations › Webhooks; the migration cannot be reverted.
Customer resource
Backward compatible, no action required.Added- Scopes
CUSTOMERS_READandCUSTOMERS_WRITE(CUSTOMERS_WRITEalso requiresCUSTOMERS_READ). GET /customers: cursor pagination,updated_sinceparameter, andemail,phone,external_idandtagfilters.GET /customers/{id}.POST /customers: matches an existing customer onexternal_id, phone then email;on_matchsets the behaviour on a match (return_existing,update,create_new).PATCH /customers/{id}.GET /customer-fields: the restaurant’s custom fields.POST /reservations:customer.idto link an existing customer, andcustomer.on_match.GET /reservations:customer_idfilter.
Webhook delivery and retries
Backward compatible: payload format, signature and event names are unchanged.Added- Headers
X-EatNow-Attempt,X-EatNow-Delivery-Log-Id, andX-EatNow-Test: trueon test deliveries. - Delivery history for the last 30 days, with resend, in Settings › Integrations › Webhooks.
RESERVATION_UPDATEDis now published for changes made from the POS (NowOS, Lightspeed), through the Partner API, by staff cancellations and by automatic status transitions (finished, no-show).- Deliveries are retried for 3 to 5 hours after a 5xx, 408 or 429 response,
a network error or a timeout.
X-EatNow-Deliveryis identical across retries;X-EatNow-Timestampis the event time. - Any other 4xx response is final and is not retried.
- The
X-EatNow-*header prefix is reserved: custom headers using it are no longer sent.
