handle instacart connect order updates and cancellations correctly based on fulfillment lifecycle stage
domain: docs.instacart.com · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Determine the order's current lifecycle stage: created (no shopper assigned), shopper assigned (not yet picking), or picking in progress (before checkout)
Before a shopper is assigned, use the update-order (PUT) endpoint to freely modify item lists, delivery windows, or instructions
After a shopper is assigned but before picking starts, restrict updates to the subset of changes Instacart's fulfillment guide permits at that stage
Once the shopper has started picking items, treat most order content as locked and use the cancel-order endpoint only if cancellation is still permitted at that stage
Consult the lifecycle_changes reference before building update/cancel logic, since permitted actions differ by both lifecycle stage and actor role
Known gotchas
The set of fields you're allowed to change shrinks as the order progresses through shopper-assignment and picking stages — an update call that worked pre-assignment can be rejected once picking has started
Permitted actions also depend on which role is making the change (retailer-initiated vs customer-initiated), not just the lifecycle stage
Attempting to cancel or update an order that has already reached checkout can fail or leave the order in an inconsistent state between Instacart and the retailer's system
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?