Skip to main content
POST
Fulfill Order

Fulfill Order

Creates a fulfillment record for an order, marking items as shipped. You can fulfill all items at once or create partial fulfillments.

Request

Path Parameters

orderId
string
required
The unique order ID

Body Parameters

tracking_number
string
Tracking number for the shipment
tracking_company
string
Shipping carrier name (e.g., “UPS”, “FedEx”, “USPS”, “DHL”)
tracking_url
string
Full tracking URL
status
string
default:"pending"
Initial fulfillment status. One of pending, open, success, cancelled, error, failure. A shipped state (success) advances the order to shipped / partial based on the line items covered.
service_id
string
Fulfillment service ID associated with this fulfillment.
notify_customer
boolean
default:"true"
Whether to send a shipping notification email to the customer. Only sent when the fulfillment moves the order into a shipped/partial state.
line_items
array
Specific line items to fulfill. If not provided (empty), the fulfillment is treated as covering the whole order.

Response

On success (201 Created) the created fulfillment is returned under data.fulfillment.
status
integer
HTTP status (201 on success).
state
string
success or error.
message
string
Human-readable message, or null on success.
data.fulfillment
object
The created fulfillment object.

Example Response

Tracking Company

tracking_company is stored verbatim as the carrier label — there is no fixed list of accepted values and no carrier normalization. Send the carrier name you want shown (e.g. "UPS", "FedEx") and, where useful, the full tracking_url.

Error Codes

StatusDescription
400Invalid request body (e.g. a line item missing id/quantity, or a malformed tracking_url)
401Invalid or missing access token
403App doesn’t have the write_orders scope
404Order with the specified ID does not exist
500Unexpected server error while creating the fulfillment