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_id
from an existing shipment that hasn't been fulfilled yet tracking_number
from your carrier- a valid
carrier_code
that 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.