Get webhook settings
Your current webhook configuration — both destinations, in one read.
legacyUrl is included so you can see what OneTablet still has on file for the legacy feed; the URL itself is never settable through this API — legacyUrlEnabled is. Never returns an api key.
A brand-new organization with neither destination configured gets back every field absent/false, never a 404 — "nothing configured yet" is a valid, readable state, not an error.
Safe to retry: this operation is read-only and idempotent.
Request
{}Responses
Headers
- x-mealco-tx-idstringoptional
The correlation id for this call, echoed on every response — a 200 exactly as much as a 400, 401 or 500. Quote it when reporting a problem and we can find every log line for the request, in every service it touched. You may also send your own x-mealco-tx-id on the request and we adopt it, so your correlation id becomes ours. Not marked required for one reason: a request whose JSON body is malformed is rejected before it reaches an operation, so no id exists yet and that single response carries neither this header nor the txId field of the error body. Everything that reaches an operation carries it.
- legacyUrlstring
The legacy orders-only feed's registered url. READ-ONLY through this API — absent when nothing is configured. Delivery to it is also gated by OneTablet's own order-notifications switch for your organization, and by
legacyUrlEnabledbelow. - legacyUrlEnabledboolean
A pause switch for
legacyUrlONLY — the sibling ofnewUrlEnabledfor the legacy destination. UnlikelegacyUrlitself, this IS settable throughsetAllWebhookSettings: it is how a partner finishes migrating off the legacy feed without OneTablet clearinglegacyUrlas a support action.falsesilenceslegacyUrlalone; it has no effect onnewUrl. It defaultstrue, so a destination nobody has ever switched off keeps delivering — including across asetAllWebhookSettingscall that does not mention this field at all. - newUrlstring
The new signed (
v2=ES256) destination. Absent when nothing is registered. - newUrlEventsstring[]
Which events are delivered to
newUrl. GovernsnewUrlONLY — the legacy feed has no per-event list and is always orders-only. Absent/empty whennewUrlis absent.Possible values: [order.created, order.status.updated, order.rejected, order.cancelled, order.delivery.updated, store.status.changed, report.completed, menu.publication.completed] - newUrlEnabledboolean
A pause switch for
newUrlONLY.falsesilences the new feed; it has no effect onlegacyUrl, which has its own switch,legacyUrlEnabled.
About Settings
Read and set where OneTablet delivers your webhooks.
Your organization is resolved from the authenticated api key and is never a field on any request or response here, so no caller can point another organization's feed at their own server.
Two destinations, one configuration. legacyUrl is the pre-existing orders-only feed — the URL itself is read-only here (OneTablet controls where legacy delivers, and clears it only as a support action), and legacyUrlEnabled is the self-serve switch that lets you turn legacy delivery off yourself. newUrl is the signed (v2=, ES256) destination you register for yourself, together with newUrlEvents (which events it receives) and newUrlEnabled (its own pause switch). Any combination of legacyUrlEnabled / newUrlEnabled is valid at once — legacy-only, dual-run while migrating, or new-only once you are done — and registering or pausing one destination never touches the other.
The naming carries the semantics. newUrlEvents and newUrlEnabled govern newUrl ONLY; legacyUrlEnabled governs legacyUrl ONLY — the legacy feed has no per-event subscription list and is always orders-only. Do not read newUrlEnabled: false as "webhooks are off" — it silences newUrl alone, exactly as legacyUrlEnabled: false silences only legacyUrl.