# Create a Terminal Hardware Order

Creates a new `TerminalHardwareOrder` object.

## Request

```curl
curl https://api.stripe.com/v1/terminal/hardware_orders \
  -u "<<YOUR_SECRET_KEY>>" \
  -H "Stripe-Version: 2026-07-29.dahlia; terminal_hardware_orders_beta=v5" \
  -d "hardware_order_items[0][terminal_hardware_sku]=thsku_OEu70OWVaQ0DG3" \
  -d "hardware_order_items[0][quantity]=2" \
  -d payment_type=monthly_invoice \
  -d "shipping[address][line1]=1234 Main St." \
  -d "shipping[address][city]=San Francisco" \
  -d "shipping[address][state]=CA" \
  -d "shipping[address][postal_code]=94111" \
  -d "shipping[address][country]=US" \
  -d "shipping[phone]=15555555555" \
  --data-urlencode "shipping[email]=test@example.com" \
  -d "shipping[name]=Jenny Rosen" \
  -d shipping_method=thsm_MfuTjLaPEgXMa4
```

### Response

```json
{
  "id": "thor_1Nj6mu2eZvKYlo2CRG74vB9n",
  "object": "terminal.hardware_order",
  "amount": 13602,
  "created": 1692995962,
  "currency": "usd",
  "hardware_order_items": [
    {
      "amount": 11800,
      "currency": "usd",
      "quantity": 2,
      "terminal_hardware_sku": {
        "id": "thsku_OEu70OWVaQ0DG3",
        "amount": 450,
        "country": "US",
        "currency": "usd",
        "product": "thpr_NGubNsbUoS1oik"
      }
    }
  ],
  "livemode": true,
  "metadata": {},
  "payment_type": "monthly_invoice",
  "po_number": null,
  "shipment_tracking": [],
  "shipping": {
    "address": {
      "city": "San Francisco",
      "country": "US",
      "line1": "1234 Main Street",
      "line2": "",
      "postal_code": "94111",
      "state": "CA"
    },
    "amount": 800,
    "company": "Rocket Rides",
    "currency": "usd",
    "email": "test@example.com",
    "name": "Jenny Rosen",
    "phone": "15555555555"
  },
  "shipping_method": "thsm_MfuTjLaPEgXMa4",
  "status": "pending",
  "tax": 1002,
  "total_tax_amounts": [
    {
      "amount": 1002,
      "inclusive": false,
      "rate": {
        "display_name": "Sales Tax",
        "jurisdiction": "LOS ANGELES",
        "percentage": 8.25
      }
    }
  ],
  "updated": null
}
```

## Returns

Returns a `TerminalHardwareOrder` object if creation succeeds.

## Parameters

- [`hardware_order_items`](https://docs.stripe.com/api/terminal/hardware_orders/create.md?query=hardware_order_items) (array of objects, required)
  An array of line items to order.

- `payment_type` (enum, required)
  The method of payment for this order.
Possible enum values:
  - `monthly_invoice`
    A consolidated invoice issued by Stripe at the end of each month.

- [`shipping`](https://docs.stripe.com/api/terminal/hardware_orders/create.md?query=shipping) (object, required)
  Shipping address for the order.

- `shipping_method` (string, required)
  The [Shipping Method](https://docs.stripe.com/api/terminal/hardware_shipping_methods/object.md) for the order.

- `metadata` (map, optional)
  Set of [key-value pairs](https://docs.stripe.com/api/metadata.md) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.

- `po_number` (string, optional)
  The purchase order number will appear on the packing slip, shipping label, and monthly billing invoice. No more than 15 characters.
