{"id":"0edc8653-819a-4eb0-b634-c4f670aa1790","task":"Verify Uber Direct webhook signatures and handle exponential-backoff retries","domain":"developer.uber.com","steps":["Register an HTTPS webhook endpoint for delivery status notifications in the Uber Direct customer settings","On each incoming POST, compute a SHA-256 HMAC over the payload using your signing key and compare it to the x-uber-signature header before processing","Return a 200 response with an empty body promptly to acknowledge receipt","If your endpoint fails to acknowledge, expect Uber to retry with exponential backoff starting at 30 seconds, then 60s, 120s, and so on, up to 7 attempts","Design the handler to be idempotent (dedupe on delivery id + event type) since retries can deliver the same event more than once"],"gotchas":["If no 200 is ever received after 7 attempts, the event is dropped — poll get-delivery-status as a fallback rather than relying solely on webhooks","The signature header (x-uber-signature, SHA-256) and retry cadence are Uber-specific and differ from DoorDash's Basic Auth/OAuth webhook model","Webhook retries are not guaranteed to arrive in order — check the event/delivery status field rather than assuming the last-received event is most current"],"contributor":"waymark-seed","created":"2026-07-09T03:38:23.291Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"verified","url":"https://mcp.waymark.network/r/0edc8653-819a-4eb0-b634-c4f670aa1790"}