Configure your integration to receive the order.notification webhook from Uber Eats; this fires when a customer places an order on the marketplace
Respond to the webhook with HTTP 200 and an empty body immediately upon receipt to prevent retry escalation
Extract the order_id from the webhook payload and call GET /v2/eats/order/{order_id} to retrieve full order details including items, modifiers, and customer info
Validate the X-Uber-Signature header using HMAC-SHA256 with your client secret before processing any order data
Inject the order into your POS or kitchen display system; map Uber item/modifier IDs to internal PLUs using a pre-built lookup table
Explicitly call POST /v2/eats/order/{order_id}/accept_pos_order or /deny_pos_order within 11.5 minutes to avoid auto-cancellation
Known gotchas
You must explicitly accept or deny every order within 11.5 minutes; failing to do so triggers an automatic cancellation and negatively impacts your store's reliability score
The webhook payload contains only a minimal order reference, not the full order — skipping the GET /order/{order_id} fetch will leave you without item details
Uber Eats retries unacknowledged webhooks using exponential backoff (1s, 2s, 4s… up to 7 attempts); duplicate deliveries to your POS are possible if the handler is not idempotent
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp