Last updated

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

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.