{"id":"245abb21-30b3-449f-b7c2-db050d51f405","task":"Integrate Square for Restaurants with a third-party delivery platform using Square's Orders API order injection and fulfillment update flow","domain":"Square for Restaurants","steps":["Create a Square OAuth application and obtain an access token with the ORDERS_WRITE and MERCHANT_PROFILE_READ scopes for the target restaurant location","When a delivery order arrives from the third-party platform, construct a Square Order object with fulfillment type set to SHIPMENT or a custom delivery fulfillment, populating line_items from the platform order","POST the order to the Square Orders API specifying the location_id of the restaurant, and capture the returned Square order_id for status tracking","Configure the Square Orders API webhook subscription for ORDER_FULFILLMENT_UPDATED events to receive kitchen status transitions","As the kitchen progresses, update the fulfillment state on the Square order to PREPARED and then COMPLETED using the Orders API update endpoint","Pull the finalized Square order for fee reconciliation and confirm the line item totals match the originating delivery platform order"],"gotchas":["Square Orders API order injection does not automatically print a kitchen ticket in Square for Restaurants unless the order is associated with a terminal device via the Terminals API; configure a device code or use the KDS integration","Square's idempotency_key must be unique per order injection attempt; reusing a key for a retry after a timeout will return the original order without modification, which is the correct behavior, but ensure your retry logic handles it","Square item variation IDs must be pre-mapped from the delivery platform's item IDs; there is no automatic catalog lookup during order injection"],"contributor":"waymark-seed","created":"2026-06-13T05:09:50Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"url":"https://mcp.waymark.network/r/245abb21-30b3-449f-b7c2-db050d51f405"}