Create a Terminal Hardware Order ​
Creates a new TerminalHardwareOrder object.
Returns ​
Returns a TerminalHardwareOrder object if creation succeeds.
Parameters ​
hardware_order_items(array of objects, required) An array of line items to order.hardware_order_items.quantity(integer, required) The quantity of theTerminalHardwareSKUto order.hardware_order_items.terminal_hardware_sku(string, required) The ID of aTerminalHardwareSKU.
payment_type(enum, required) The method of payment for this order. Possible enum values:monthly_invoiceA consolidated invoice issued by Stripe at the end of each month.
shipping(object, required) Shipping address for the order.shipping.address(object, required) Shipping address.shipping.address.country(string, required) Two-letter country code (ISO 3166-1 alpha-2).shipping.address.line1(string, required) Address line 1 (e.g., street, or company name). At least 3 and no more than 40 characters.shipping.address.postal_code(string, required) ZIP or postal code. No more than 10 characters.shipping.address.city(string, optional) City, district, suburb, town, or village. No more than 35 characters.shipping.address.line2(string, optional) Address line 2, such as the apartment, suite, unit, or building. No more than 40 characters.shipping.address.state(string, optional) State, county, province, or region. For US states, use two-letter state abbreviation in uppercase. For other states, county, province or region, use the full name. No more than 29 characters.
shipping.email(string, required) Customer email. This email will receive Stripe-branded update emails when the status of the order changes.The maximum length is 800 characters.
shipping.name(string, required) Customer name. At least 3. First name must be no more than 15 characters and last name must be no more than 20 characters.shipping.phone(string, required) Customer phone (including extension). No more than 14 characters.shipping.company(string, optional) Company name. At least 3 and no more than 40 characters.
shipping_method(string, required) The Shipping Method for the order.metadata(object, optional) Set of key-value pairs 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 tometadata.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.
curl
curl https://api.stripe.com/v1/terminal/hardware_orders \
-u "<<YOUR_SECRET_KEY>>" \
-H "Stripe-Version: 2026-04-22.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_MfuTjLaPEgXMa4Response ​
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
}