Skip to content

Update a Sales Order

ShipEngine allows users to update sales orders manually via the API.

Minimum Required Information

  • order_date
  • ship_to for every sales order item, if any

Important Notes

Important

Your sales order will be completely replaced with the information you provide in the request. Key identifying information like external_order_id and order_source cannot be changed.

API Endpoint

PUT /v-beta/sales_orders/:sales_order_id

Example Request

PUT /v-beta/sales_orders/32e18d70-52e0-5002-ab7a-ae33843c2187 HTTP/1.1
Host: api.shipengine.com
API-Key: __YOUR_API_KEY_HERE__
Content-Type: application/json
{
  "order_date": "2019-07-25T15:24:46.657Z",
  "payment_details": {
    "subtotal": {"currency": "usd", "amount": 200},
    "estimated_shipping": {"currency": "usd", "amount": 10},
    "estimated_tax": {"currency": "usd", "amount": 5},
    "grand_total": {"currency": "usd", "amount": 215}
  },
  "customer": {
    "name": "Amanda Miller",
    "phone": "555-555-5555",
    "email": "example@example.com"
  },
  "bill_to": {
    "email": "example@example.com",
    "address": {
      "name": "Amanda Miller",
      "phone": "555-555-5555",
      "address_line1": "525 S Winchester Blvd",
      "city_locality": "San Jose",
      "state_province": "CA",
      "postal_code": "95128",
      "country_code": "US",
      "address_residential_indicator": "yes"
    }
  },
  "ship_to": {
    "name": "Amanda Miller",
    "phone": "555-555-5555",
    "address_line1": "525 S Winchester Blvd",
    "city_locality": "San Jose",
    "state_province": "CA",
    "postal_code": "95128",
    "country_code": "US",
    "address_residential_indicator": "yes"
  },
  "sales_order_items": [{
    "sales_order_item_id": "02202633-d038-5cfc-bdc2-777968435771",
    "line_item_details": {
      "name": "ball of string A",
      "sku": "ball of string A"
    },
    "price_summary": {
      "unit_price": {"currency": "usd", "amount": 200}
    },
    "ship_to": {
      "name": "Amanda Miller",
      "phone": "555-555-5555",
      "address_line1": "525 S Winchester Blvd",
      "city_locality": "San Jose",
      "state_province": "CA",
      "postal_code": "95128",
      "country_code": "US",
      "address_residential_indicator": "yes"
    },
    "quantity": 4,
    "is_gift": false
  }]
}

Key Limitations

Updating Sales Order Items

  • You can only update existing sales order items
  • Cannot add or remove items from a sales order
  • Include all items in your request, even unchanged ones
  • Items are identified by sales_order_item_id

Order Source Restrictions

You may only use the API to update sales orders with an api order source. Amazon or Shopify orders must be updated through their respective platforms.

Shipping Addresses

  • Specify ship_to for the entire order OR for each individual item
  • If specified at order level, applies to all items
  • Can specify at both levels if addresses are identical