# Order Management

Purchase SIMs and devices directly from Soracom.

The Orders screen allows you to purchase devices and IoT SIMs directly from Soracom and manage your order history.

To open the Orders screen, first click the **☰ Menu** button, then click **Orders**.

![Screenshot of the Orders button in the main menu](https://docs.soracom.io/_astro/orders-1.DQgI1cQe_Zfw97V.webp)

From here, you can view all orders associated with your account.

> [!WARNING]
>
> For ordering eSIM Profiles, see the [eSIM Profiles documentation](https://docs.soracom.io/en/services/air/esim-profiles).

## Placing a New Order

1. From the **Product Orders** tab, click + **New Order** to begin making a purchase.

   ![Screenshot of the +New Order button on the Orders screen](https://docs.soracom.io/_astro/orders-2.CffGL_4S_XYSi5.webp)

> [!NOTE]
>
> We recommend ordering IoT SIMs from the Soracom account that will use them.
>
> IoT SIMs ordered from the User Console are automatically associated with the Soracom account used to place the order.
>
> To use IoT SIMs with a different Soracom account, you must transfer the SIMs to that account. The transfer process depends on the SIM status at the time of transfer, and you may not be able to transfer the SIMs at your preferred timing. For more information, refer to [Transferring Soracom IoT SIMs](https://docs.soracom.io/en/services/air/transfer).
>
> If you purchase a product that includes a Soracom platform coupon, the coupon is associated with the Soracom account used to place the order. Coupons cannot be transferred.

2. Set the quantity of products you would like to purchase on the **SIM Cards**, **Devices** and **Misc. (kits, etc.)** tabs and click **Next**.

   ![Screenshot of the Orders screen displaying controls for setting the quantity of products in the order](https://docs.soracom.io/_astro/orders-3.B5SmhcZJ_1DQfA8.webp)

   When purchasing from the User Console, there is a limit on the number of items that can be purchased at a time. If you would like to purchase more than the limit, create multiple orders or [contact our sales team](https://soracom.io/contact/).

> [!WARNING]
>
> Note that you can optionally insert a purchase order number or reference number in the **PO/Reference number** field. Doing so will ensure the number appears on your invoice and on the delivery statement. This can be helpful when placing multiple orders or for accounting purposes.
>
> ![Screenshot of field for PO Number](https://docs.soracom.io/_astro/new-order-1.CtFtdlnu_Z29QJLi.webp)

> [!NOTE]
>
> Some products may not be available in your region. If an item you are trying to order is not shown, [contact Soracom Support](https://docs.soracom.io/en/services/account/support#creating-a-support-request) to inquire about availability.

> [!CAUTION]
>
> Select [Soracom IoT SIMs](https://www.soracom.io/products/) are also available on Amazon. In some cases, purchasing from Amazon may be cheaper even with shipping included.

3. Select a shipping address registered in your Soracom account and click **Next**.

   ![Screenshot of selecting a shipping address in the New Order flow](https://docs.soracom.io/_astro/new-order-2.CF2N_Oew_Z1avBd9.webp)

> [!WARNING]
>
> In certain cases, an order may not be deliverable to a particular country due to availability or other restrictions. If you are unable to select a country where you would like your order to be delivered, [contact Soracom Support](https://docs.soracom.io/en/services/account/support#creating-a-support-request) for assistance.
>
> Depending on your location and shipping address, additional shipping options may be available. You may select one of these options according to your shipping preferences.

4. Read and confirm the information by checking the ☑ under agreements such as **Precautions**, **Product sales terms & conditions**, and **Important Notes for SIM Subscription Plans**, then click **Complete order** to submit your order.

   ![Screenshot of order and confirmation items](https://docs.soracom.io/_astro/orders-4.CFwTxqmJ_2mtc4p.webp)

Once you have completed your order, it will be sent to our fulfillment teams for processing. Orders will typically take 1-2 business days to process.

> [!WARNING]
>
> Your credit card will be charged once your order ships.

Once an order has been shipped, order tracking details will become visible on the **Product Orders** tab. These details will include the name of the delivery company and tracking number(s), and clicking the delivery company link will take you to the delivery company's shipment status inquiry page, where you can enter the tracking number to check the delivery status.

![Screenshot of the Product Orders tab showing details related to an order that was placed](https://docs.soracom.io/_astro/orders-6.DBJ48XM-_Z13IIcA.webp)

If you need to modify your order, cancel your existing order and create a new order.

### Configuring Initial SIM Settings

Optionally, you can pre-configure initial settings for Soracom IoT SIMs before the order has been shipped.

To set initial settings from an order:

1. Click ✏ **Configure SIM initial settings**.

   ![Screenshot of the Configure SIM Initial Settings button](https://docs.soracom.io/_astro/configure-initial-settings.ngjK0Gqt_Z2pLs3C.webp)

2. Assign settings.

   ![Screenshot of the Assign Initial Settings screen for IoT SIMs in an order](https://docs.soracom.io/_astro/assign-initial-settings.CTy3sA5Y_Z1oB75x.webp)

   - **Group**: Assign the IoT SIMs to a [Group](https://docs.soracom.io/en/services/groups).
   - **Speed class**: Select a [Speed class](https://docs.soracom.io/en/services/air/speed-class).
   - **Tags**: Add tag **Name** and **Value** pairs ([Tags](https://docs.soracom.io/en/services/air/tags)).

> [!WARNING]
>
> You can also configure the same settings from the [SIM Management screen](https://docs.soracom.io/en/services/air/registration#configuring-initial-sim-settings).

## Canceling an Order

To cancel an order that has not yet started processing, click the **Cancel** button next to the order from the **Product Orders** tab.

![Screenshot of the Product Orders tab outlining cancellation and tracking options](https://docs.soracom.io/_astro/orders-5.BFSAAQGx_241Rf3.webp)

> [!WARNING]
>
> Orders can only be canceled before processing begins. If you need to cancel an order that has already entered processing, [contact Soracom Support](https://docs.soracom.io/en/services/account/support#creating-a-support-request) as soon as possible.

## Registering an Order

If your order contains IoT SIM cards or Sigfox devices, they will be pre-registered to your account. Pre-registration simply associates each IoT SIM card or Sigfox device to your account; however, registration will not be finalized and your IoT SIM cards or Sigfox devices will not appear in your account until registration is complete.

![Screenshot of the “Finalize registration” button in the Register Order view](https://docs.soracom.io/_astro/register-order.CnW8kdpo_Z1Ekc7K.webp)

By finalizing your registration, all IoT SIM cards and Sigfox devices in your order will automatically be registered to your account. This process allows you to register large quantities of IoT SIM cards or devices without the need to enter the registration information separately for each item.

> [!WARNING]
>
> For more information on registering SIM cards or Sigfox devices to your account, refer to the [Registering Soracom IoT SIMs](https://docs.soracom.io/en/services/air/registration) and [Sigfox Device Registration](https://docs.soracom.io/en/services/sigfox/registration) documentation.

## Downloading IoT SIMs in an Order

You may find it helpful to download a list of all IoT SIMs or subscribers that were included in a specific order for use in a database or for viewing in an application. You can download a CSV file containing a list of all subscribers that were included in a particular order.

To download a CSV file containing a list of IoT SIMs included in an order:

1. Sign in to the **[User Console](https://console.soracom.io/?coverage_type=g)**. From the **☰ Menu**, open the **Orders** screen.

2. From the list of orders, find the order that contains the IoT SIMs you want to download, and click the **List SIMs in order** button.

   ![List subscribers](https://docs.soracom.io/_astro/list-subscribers.CTocBgul_Us2lY.webp)

> [!WARNING]
>
> You can also download a list of all SIMs or subscribers in your account from the SIM Management screen. For more information, refer to the [Registration: Downloading a List of Registered SIMs](https://docs.soracom.io/en/services/air/registration#downloading-a-list-of-registered-sims) instructions.

## Downloading an Order Invoice

Order invoices containing the details of orders placed through your Soracom account are available for download from the User Console.

To download an order invoice:

1. Sign in to the **[User Console](https://console.soracom.io/?coverage_type=g)**. Click your **account menu**, then select **Billing & Payment History**.

   ![Billing](https://docs.soracom.io/_astro/billing.BTxGJ27v_4NRsH.webp)

2. Locate your order.

   ![Order Invoices](https://docs.soracom.io/_astro/billing-invoices.CuyYslZ8_ZnAVLG.webp)

3. Click **Download invoice** for the order you want to view.

> [!WARNING]
>
> Invoices will be available for download for the past 18 months

## Shipping Address

The Shipping Addresses screen allows you to add, remove, or update shipping addresses tied to your account for future orders.

![Screenshot of the Shipping Addresses screen](https://docs.soracom.io/_astro/shippingaddress.DHYpffLe_KkPCd.webp)

Click **Add new shipping address** to add additional addresses that will be selectable when placing a [new order](https://docs.soracom.io/en/services/account/orders/#placing-a-new-order).

![Screenshot illustrating steps to add a new shipping address](https://docs.soracom.io/_astro/shipping-addresses.DueIpy0A_2a43gp.webp)

## Programmatic Usage

You can also use the Soracom API and Soracom CLI to place orders and register SIMs from orders.

> [!WARNING]
>
> Orders placed using the Soracom API or Soracom CLI are associated with the Soracom account used for authentication. Before placing an order programmatically, make sure you are using credentials for the account that will use the IoT SIMs and pay the monthly usage fees.

Placing an order programmatically requires the following steps:

1. **Get product codes** - Call the `listProducts` API to get a list of available products and their product codes.
2. **Get shipping address ID** - Call the `listShippingAddresses` API to get a list of shipping addresses and their IDs.
3. **Create a quotation** - Call the `createQuotation` API to generate a draft order and receive an `orderId`.
4. **Confirm the order** - Call the `confirmOrder` API with the `orderId` to place the order.
5. **Register the order** - If your order contains SIM cards, call `registerOrderedSim` with the `orderId` to register them to your account.

### Soracom API

To access the Soracom API, first use the [**auth**](https://docs.soracom.io/en/api#!/Auth/auth) API to obtain an API Key and Token. Refer to the [**API Usage Guide**](https://docs.soracom.io/en/developers/soracom-api) for instructions on how to use the API Key and Token in API requests.

#### Step 1: Get Product Codes

Use the [listProducts](https://docs.soracom.io/en/api#/Order/listProducts) API to get a list of available products. The response will include the `productCode` for each product.

**Global**

```bash
curl -X GET \
  -H 'X-Soracom-API-Key: <MY-API-KEY>' \
  -H 'X-Soracom-Token: <MY-TOKEN>' \
  https://g.api.soracom.io/v1/products
```

**Japan**

```bash
curl -X GET \
  -H 'X-Soracom-API-Key: <MY-API-KEY>' \
  -H 'X-Soracom-Token: <MY-TOKEN>' \
  https://api.soracom.io/v1/products
```

#### Step 2: Get Shipping Address ID

Use the [listShippingAddresses](https://docs.soracom.io/en/api#/ShippingAddress/listShippingAddresses) API to get a list of shipping addresses. The response will include the `shippingAddressId` for each address.

> [!WARNING]
>
> If you have not yet created a shipping address, use the [createShippingAddress](https://docs.soracom.io/en/api#/ShippingAddress/createShippingAddress) API to create one, or add a shipping address from the [User Console](https://docs.soracom.io/en/services/account/orders/#shipping-address).

**Global**

```bash
curl -X GET \
  -H 'X-Soracom-API-Key: <MY-API-KEY>' \
  -H 'X-Soracom-Token: <MY-TOKEN>' \
  https://g.api.soracom.io/v1/operators/<OPERATOR-ID>/shipping_addresses
```

**Japan**

```bash
curl -X GET \
  -H 'X-Soracom-API-Key: <MY-API-KEY>' \
  -H 'X-Soracom-Token: <MY-TOKEN>' \
  https://api.soracom.io/v1/operators/<OPERATOR-ID>/shipping_addresses
```

#### Step 3: Create a Quotation

Use the [createQuotation](https://docs.soracom.io/en/api#/Order/createQuotation) API to create a new order quotation (i.e., a draft order). You will need to provide the product codes and quantities, as well as a shipping address ID.

**Global**

```bash
curl -X POST \
  -H 'X-Soracom-API-Key: <MY-API-KEY>' \
  -H 'X-Soracom-Token: <MY-TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{
        "shippingAddressId": "<SHIPPING-ADDRESS-ID>",
        "orderItemList": [
          {
            "productCode": "<PRODUCT-CODE>",
            "quantity": 10
          }
        ],
        "shippingOptions": [
          {
            "useExpeditedShipping": false
          }
        ]
      }'
  https://g.api.soracom.io/v1/orders
```

**Japan**

```bash
curl -X POST \
  -H 'X-Soracom-API-Key: <MY-API-KEY>' \
  -H 'X-Soracom-Token: <MY-TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{
        "shippingAddressId": "<SHIPPING-ADDRESS-ID>",
        "orderItemList": [
          {
            "productCode": "<PRODUCT-CODE>",
            "quantity": 10
          }
        ],
        "shippingOptions": [
          {
            "allowNekopos": true,
            "shipmentCompany": "yamato_transport"
          }
        ]
      }' \
  https://api.soracom.io/v1/orders
```

The response will include an `orderId` that you will use in the following steps.

> [!WARNING]
>
> Creating a quotation does not submit the order for processing. You must complete the next step to confirm and submit the order.

If you need to make corrections to a quotation (such as changing products or the shipping address), simply create a new quotation. Unsubmitted quotations are automatically deleted, so there is no need to manually delete old ones.

> [!NOTE]
>
> Expedited shipping is only available for orders being shipped within the United States

#### Step 4: Confirm the Order

Use the [confirmOrder](https://docs.soracom.io/en/api#/Order/confirmOrder) API with the `orderId` to confirm and submit the order for processing:

**Global**

```bash
curl -X PUT \
  -H 'X-Soracom-API-Key: <MY-API-KEY>' \
  -H 'X-Soracom-Token: <MY-TOKEN>' \
  https://g.api.soracom.io/v1/orders/<ORDER-ID>/confirm
```

**Japan**

```bash
curl -X PUT \
  -H 'X-Soracom-API-Key: <MY-API-KEY>' \
  -H 'X-Soracom-Token: <MY-TOKEN>' \
  https://api.soracom.io/v1/orders/<ORDER-ID>/confirm
```

> [!WARNING]
>
> Orders must be confirmed within one month of being created. If one month has elapsed, the order will be automatically deleted and you will need to create a new order.

#### Canceling an Order

If you need to cancel an order before processing begins, use the [cancelOrder](https://docs.soracom.io/en/api#/Order/cancelOrder) API:

**Global**

```bash
curl -X PUT \
  -H 'X-Soracom-API-Key: <MY-API-KEY>' \
  -H 'X-Soracom-Token: <MY-TOKEN>' \
  https://g.api.soracom.io/v1/orders/<ORDER-ID>/cancel
```

**Japan**

```bash
curl -X PUT \
  -H 'X-Soracom-API-Key: <MY-API-KEY>' \
  -H 'X-Soracom-Token: <MY-TOKEN>' \
  https://api.soracom.io/v1/orders/<ORDER-ID>/cancel
```

> [!WARNING]
>
> Orders can only be canceled before processing begins. If you need to cancel an order that has already entered processing, [contact Soracom Support](https://docs.soracom.io/en/services/account/support#creating-a-support-request) as soon as possible. For more information, see [Canceling an Order](https://docs.soracom.io/en/services/account/orders/#canceling-an-order).

#### Step 5: Register the Order

If your order contains IoT SIM cards, eSIMs, or products bundled/integrated with SIMs, use the [registerOrderedSim](https://docs.soracom.io/en/api#/Order/registerOrderedSim) API to register all SIMs in the order to your account:

> [!WARNING]
>
> This step is only required for orders that contain SIM cards, eSIMs, or products bundled/integrated with SIMs. Orders containing only non-SIM products (such as devices or accessories) do not require registration.

**Global**

```bash
curl -X POST \
  -H 'X-Soracom-API-Key: <MY-API-KEY>' \
  -H 'X-Soracom-Token: <MY-TOKEN>' \
  https://g.api.soracom.io/v1/orders/<ORDER-ID>/subscribers/register
```

**Japan**

```bash
curl -X POST \
  -H 'X-Soracom-API-Key: <MY-API-KEY>' \
  -H 'X-Soracom-Token: <MY-TOKEN>' \
  https://api.soracom.io/v1/orders/<ORDER-ID>/subscribers/register
```

### Soracom CLI

To use the Soracom CLI, you must first configure it to authenticate with your account information, authorization key, or SAM user credentials.

#### Step 1: Get Product Codes

Run the following command to get a list of available products. The response will include the `productCode` for each product.

**Global**

```bash
soracom products list --coverage-type g
```

**Japan**

```bash
soracom products list --coverage-type jp
```

#### Step 2: Get Shipping Address ID

Run the following command to get a list of shipping addresses. The response will include the `shippingAddressId` for each address.

> [!WARNING]
>
> If you have not yet created a shipping address, use the `soracom shipping-addresses create` command to create one, or add a shipping address from the [User Console](https://docs.soracom.io/en/services/account/orders/#shipping-address).

**Global**

```bash
soracom shipping-addresses list --coverage-type g --operator-id <OPERATOR-ID>
```

**Japan**

```bash
soracom shipping-addresses list --coverage-type jp --operator-id <OPERATOR-ID>
```

#### Step 3: Create a Quotation

Run the following command to create a new order quotation (i.e., a draft order):

**Global**

```bash
soracom orders create --coverage-type g --body '{
  "shippingAddressId": "<SHIPPING-ADDRESS-ID>",
  "orderItemList": [
    {
      "productCode": "<PRODUCT-CODE>",
      "quantity": 10
    }
  ],
  "shippingOptions": [
    {
      "useExpeditedShipping": false
    }
  ]
}'
```

**Japan**

```bash
soracom orders create --coverage-type jp --body '{
  "shippingAddressId": "<SHIPPING-ADDRESS-ID>",
  "orderItemList": [
    {
      "productCode": "<PRODUCT-CODE>",
      "quantity": 10
    }
  ],
  "shippingOptions": [
    {
      "allowNekopos": true,
      "shipmentCompany": "yamato_transport"
    }
  ]
}'
```

The response will include an `orderId` that you will use in the following steps.

> [!WARNING]
>
> Creating a quotation does not submit the order for processing. You must complete the next step to confirm and submit the order.

#### Step 4: Confirm the Order

Run the following command to confirm and place the order:

**Global**

```bash
soracom orders confirm --coverage-type g --order-id <ORDER-ID>
```

**Japan**

```bash
soracom orders confirm --coverage-type jp --order-id <ORDER-ID>
```

#### Canceling an Order

If you need to cancel an order before processing begins, run the following command:

**Global**

```bash
soracom orders cancel --coverage-type g --order-id <ORDER-ID>
```

**Japan**

```bash
soracom orders cancel --coverage-type jp --order-id <ORDER-ID>
```

> [!WARNING]
>
> Orders can only be canceled before processing begins. If you need to cancel an order that has already entered processing, [contact Soracom Support](https://docs.soracom.io/en/services/account/support#creating-a-support-request) as soon as possible. For more information, see [Canceling an Order](https://docs.soracom.io/en/services/account/orders/#canceling-an-order).

#### Step 5: Register the Order

If your order contains IoT SIM cards, run the following command to register all SIMs in the order to your account:

> [!WARNING]
>
> This step is only required for orders that contain SIM cards. Orders containing only non-SIM products (such as devices or accessories) do not require registration.

**Global**

```bash
soracom orders register-subscribers --coverage-type g --order-id <ORDER-ID>
```

**Japan**

```bash
soracom orders register-subscribers --coverage-type jp --order-id <ORDER-ID>
```
