🎉ShipEngine is becoming ShipStation API🎉

Over the next few months you'll notice the ShipEngine website, documentation portal, and dashboard being rebranded as ShipStation API. For our ShipEngine customers, you don't need to take any action or change any of your integrations in any way. All endpoints will remain the same and continue to function as they always have.

To learn more about what's coming, review our [New ShipStation API page](/content/docs/new-shipstation-api/index.html).

# Create a Sales Order Manually

ShipStation API allows users to create sales orders manually via the API.

At a minimum, you will need the following pieces of information to create your sales order:

- `external_order_id`
- `order_date`
- `ship_to` for every sales order item, if any

You may also provide most of the additional information available on a sales order, as seen below.

## Example

**POST /v-beta/sales_orders**

```
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85

POST /v-beta/sales_orders HTTP/1.1

{
  "external_order_id": "1111",
  "external_order_number": "2222",
  "order_source": {
    "order_source_id": "9ab83300-39ba-4159-96f8-0d0ef6dfcbfa"
  },
  "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": "amanda.miller@email.com"
  },
  "bill_to": {
    "email": "amanda.miller@email.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": [
    {
      "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
    }
  ]
}
```

## Order source for the sales order

You can leave the `order_source` empty in your request and a default `api` order source will be created automatically for you if no `api` order source exists. If you already have an `api` order source connected to your account, it will be used if none is specified in the request. However, if you have multiple connected `api` order sources, you must specify which one you'd like to use in your request.

> **INFO:**
>
> ### Third-party order sources
>
> You may only create sales orders via the API with an `api` order source, meaning you cannot manually create sales orders for your Amazon or Shopify order source. Sales orders from Amazon, Shopify, or any other third-party order source must be imported by connecting that order source.

## Different shipping addresses for different sales order items

You may specify your `ship_to` address either for the sales order as a whole, or for each individual sales order item. If you specify the `ship_to` address for the sales order, the address will apply across all of the sales order items. You may also specify the `ship_to` address for the sales order as well as all the items, as long as the addresses are identical.
