Submit fulfillments
POST/api/square/orders/submit-fulfillments
Push pending fulfillment tracking back to Square for online orders shipped in SKU. Each eligible fulfillment updates the Square order's shipment fulfillment to COMPLETED with carrier, tracking number, tracking URL, and shipped-at time.
integration_instance_id (integer, required) — the Square connection to submit for.
fulfillment_ids (array of integers, optional) — submit only these fulfillments; omit to sweep every eligible pending fulfillment on the connection.
Only fulfillments that are fulfilled, carry a tracking number, are not pickups, and have not already been submitted are pushed. Point-of-sale orders are never pushed — they are handed over at the register.
Pending fulfillments are also submitted automatically every 10 minutes. Requires the ORDERS_WRITE OAuth scope.
Request
Responses
- 200
- 401
- 403
- 422
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Validation failed — the body is a field → messages map (Laravel shape) or the platform envelope with a stable machine-readable code. Fix the payload and resubmit.
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.