Creating Fulfillments
Create a fulfillment by marking a shipment as shipped without creating a label. Fulfillments represent the completion of the shipping process and notify customers and order sources that their orders have been shipped.
Requirements
To create fulfillments, you need:
- a valid
shipment_idfrom an existing shipment that hasn't been fulfilled yet tracking_numberfrom your carrier- a valid
carrier_codethat matches your configured carriers - your account email to be verified
Create Fulfillments Endpoint
This endpoint can be used to create multiple fulfillments at once.
POST /v2/fulfillments
- Production https://api.shipstation.com/v2/fulfillments
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://api.shipstation.com/v2/fulfillments \
-H 'Content-Type: application/json' \
-H 'api-key: YOUR_API_KEY_HERE' \
-d '{
"fulfillments": [
{
"shipment_id": "se-12345678",
"tracking_number": "1Z12345E1234567890",
"carrier_code": "ups",
"ship_date": "2024-01-15T10:00:00Z",
"notify_customer": true,
"notify_order_source": true
}
]
}'Response
application/json
{ "has_errors": false, "fulfillments": [ { … } ] }
Error Handling
The create fulfillments endpoint processes requests in batch but returns individual results. Even if some fulfillments fail, others may succeed.
Partial Success Operation
This endpoint supports partial success. If some fulfillments fail to create, the successful ones will still be processed and 200 will be returned. Always check the has_errors flag and individual error_message fields to understand the results.