1. Inbound Shipments/ASN
  2. Update Inbound Shipments
PUT
/inbound_shipments
curl --request PUT \
     --url https://sandbox.masonhub.co/dragonfly-cosmetics-demo/api/v1/inbound_shipments \
     --header 'Authorization: Bearer <token>' \
     --header 'Content-Type: application/json' \
     --data '{
  "customer_identifier": "<string>",
  "customer_purchase_order_id": "<string>",
  "inventory_location_id": "<string>",
  "expected_arrival_date": "<string>",
  "shipper_name": "<string>",
  "line_items": [],
  "carrier_information": "<value>",
  "tracking_number": "<string>",
  "shipper_city": "<string>",
  "shipper_locale": "<string>",
  "shipper_country": "<string>",
  "special_instructions": "<string>",
  "comments": "<string>"
}'

Update existing inbound shipments with new information. This endpoint supports batch updates of multiple shipments in a single request.

Only shipments with open status can be updated. Shipments that are already on dock or being received cannot be modified.

Updates require a full replacement of the shipment data. Include all fields in your request, not just the ones you want to change.

​
Request Body Schema

Send an array of complete inbound shipment objects. The schema is identical to creating shipments.

​
Required Fields

customer_identifier
required
string

Unique shipment identifier that matches the existing shipment you want to update.

customer_purchase_order_id
required
string

Your purchase order reference number for this shipment.

inventory_location_id
required
string

MasonHub location UUID where the shipment will be received.

expected_arrival_date
required
string

Expected delivery date in RFC3339 format (e.g., 2018-12-11T10:00:00Z).

shipper_name
required
string

Name of the shipping company or sender.

line_items
required
array

Array of items expected in the shipment. Each item must include:

  • customer_sku_id (string, required): Your SKU identifier
  • quantity (integer, required): Expected quantity

​
Optional Fields

carrier_information
object

Detailed carrier information object with fields:

  • name (string): Carrier company name
  • type (string): Carrier type (e.g., “TL”, “LTL”, “Parcel”)
  • contact_name (string): Primary contact name
  • driver_name (string): Driver’s name
  • driver_phone (string): Driver’s phone number
tracking_number
string

Carrier tracking number for the shipment.

shipper_city
string

City where the shipment is originating from.

shipper_locale
string

State or locale where the shipment is originating from (e.g., “MI”, “CA”).

shipper_country
string

Country code where the shipment is originating from (e.g., “US”, “CA”).

special_instructions
string

Special handling instructions for the warehouse team.

comments
string

Additional comments or notes about the shipment.

curl -X PUT "https://app.masonhub.co/{account}/api/v1/inbound_shipments" \
  -H "Authorization: Bearer your_jwt_token" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "customer_identifier": "shipment32432",
      "customer_purchase_order_id": "po234532",
      "inventory_location_id": "bf7bb516-ce52-8950-2a8b-9008f0091d93",
      "carrier_information": {
        "name": "Frankie'\''s Red Hot Carrier",
        "type": "TL",
        "contact_name": "John Jacob",
        "driver_name": "Donny James Jr",
        "driver_phone": "555-343-4213"
      },
      "tracking_number": "356732154-UPDATED",
      "shipper_name": "Freddie'\''s Pirate Army",
      "shipper_city": "Kalamazoo",
      "shipper_locale": "MI",
      "shipper_country": "US",
      "expected_arrival_date": "2018-12-12T10:00:00Z",
      "special_instructions": "Updated: Fold using provided template during put away",
      "comments": "Updated arrival date due to weather delay",
      "line_items": [
        {
          "customer_sku_id": "10000",
          "quantity": 100
        },
        {
          "customer_sku_id": "10001",
          "quantity": 25
        }
      ]
    }
  ]'
{
  "success": true,
  "data": [
    {
      "id": "bf7bb516-ce52-8950-2a8b-9008f0091d93",
      "customer_identifier": "shipment32432",
      "customer_purchase_order_id": "po234532",
      "status": "open",
      "updated_at": "2018-12-02T14:30:00Z"
    }
  ]
}

​
Update Behavior

When you update an inbound shipment:

1

Status Validation

System checks that the shipment is in open status

2

Full Replacement

All fields are replaced with the new data (not a partial update)

3

Inventory Adjustment

Expected inventory is recalculated based on the new line items

4

Callback Triggered

skuInventoryChange callbacks are sent for affected SKUs

​
Common Update Scenarios

​
Best Practices

​
Status Restrictions

Shipments can only be updated when in open status. Once a shipment moves to:

  • onDock: Shipment has arrived - contact MasonHub support for changes
  • receivingStarted: Processing has begun - updates not allowed
  • receivingComplete: Processing complete - shipment is closed