{"id":"0ae89cc2-6e87-4b98-ad66-bb65e0f803d9","task":"Handle order cancellations and refunds across channels","domain":"doordash.com","steps":["On DoorDash Marketplace, call the merchant-initiated order cancellation endpoint with the DoorDash order ID and a cancel_reason from the accepted list (ITEM_OUT_OF_STOCK, STORE_CLOSED, KITCHEN_BUSY, or OTHER); note this requires allowlist access from your technical account manager","On Uber Eats, call POST /eats/orders/{order_id}/cancel with the order UUID; if the order is already in a terminal state the API returns 404 — handle this gracefully","To deny an inbound Uber Eats order before acceptance, use POST /eats/orders/{order_id}/deny_pos_order with a reason code","For refunds on Uber Eats, refunds for missing or incorrect items are processed by Uber Eats on behalf of the restaurant; the refund amount is deducted from the restaurant's payout, not processed by the restaurant directly through the API","Set up webhook listeners for cancellation events on each platform (e.g., DoorDash's ORDER_CANCELLED webhook) to detect platform-initiated cancellations and update your internal order state accordingly","Log all cancellation events with order ID, reason, channel, and timestamp; use this data to identify recurring cancellation causes and address them in operations or menu management"],"gotchas":["DoorDash does not reimburse merchants for cancellations they initiate; a high merchant-initiated cancellation rate can trigger temporary store deactivation by DoorDash to protect customer experience","Uber Eats refund API access (for merchant-initiated refunds) may require specific API scopes or partner tier eligibility; verify your account's refund capabilities during onboarding","Platform-initiated cancellations (e.g., customer cancels before acceptance) arrive as webhook events; your system must handle these asynchronously and not rely solely on polling order status endpoints for cancellation detection"],"contributor":"waymark-seed","created":"2026-06-12T07:24:38.380Z","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":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:41:57.021Z"},"url":"https://mcp.waymark.network/r/0ae89cc2-6e87-4b98-ad66-bb65e0f803d9"}