# Create Order POST https://api.shipbob.com/2026-01/order Content-Type: application/json Creates a new order in ShipBob’s system that will be queued for fulfillment. Orders can be created using either product reference IDs (SKUs) or ShipBob product IDs, with reference IDs being the recommended approach. Reference: https://developer.shipbob.com/api/orders/create-order ## OpenAPI Specification ```yaml openapi: 3.1.1 info: title: Create Order version: endpoint_orders.createOrder paths: /2026-01/order: post: operationId: create-order summary: Create Order description: >- Creates a new order in ShipBob’s system that will be queued for fulfillment. Orders can be created using either product reference IDs (SKUs) or ShipBob product IDs, with reference IDs being the recommended approach. tags: - - subpackage_orders parameters: - name: Authorization in: header description: Authentication using Personal Access Token (PAT) token or OAuth2 required: true schema: type: string - name: shipbob_channel_id in: header description: >- Retrieve your channel ID from the [GET /channel](/api/channels/get-channels) endpoint. Use the channel ID that has write scopes. required: true schema: type: string format: int32 responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/Orders.OrderViewModel' '400': description: Bad Request content: {} '401': description: No access right at this time content: {} '403': description: No access content: {} '422': description: Client Error content: {} requestBody: content: application/json: schema: $ref: '#/components/schemas/Orders.CreateOrderModel' components: schemas: Orders.Financials: type: object properties: total_price: type: - number - 'null' format: double description: Sum of all line item prices, discounts, and taxes in USD Orders.AddProductToOrderByReferenceIdModel: type: object properties: external_line_id: type: - integer - 'null' description: >- Numeric assignment per item. Used as a reference number for multiple purposes such as split orders, split containers, etc. gtin: type: - string - 'null' description: >- Global Trade Item Number - unique and internationally recognized identifier assigned to item by company GS1 name: type: - string - 'null' description: >- Name of the product. Required if there is not an existing ShipBob product with a matching reference_id value. quantity: type: integer description: The quantity of this product ordered quantity_unit_of_measure_code: type: - string - 'null' description: >- Defined standard for measure for an item (each, inner pack, case, pallet). Values: EA, INP, CS and PL reference_id: type: string description: >- Unique reference id (also known as sku or seller_sku) of the product. sku: type: - string - 'null' description: Product SKU unit_price: type: - number - 'null' format: double description: Price for one item upc: type: - string - 'null' description: Universal Product Code - Unique external identifier required: - name - quantity - reference_id Orders.AddProductToOrderByProductIdModel: type: object properties: external_line_id: type: - integer - 'null' description: >- Numeric assignment per item. Used as a reference number for multiple purposes such as split orders, split containers, etc. id: type: integer description: Unique id of the product quantity: type: integer description: The quantity of this product ordered quantity_unit_of_measure_code: type: - string - 'null' description: >- Defined standard for measure for an item (each, inner pack, case, pallet). Values: EA, INP, CS and PL required: - id - quantity OrdersCreateOrderModelProductsItems: oneOf: - $ref: '#/components/schemas/Orders.AddProductToOrderByReferenceIdModel' - $ref: '#/components/schemas/Orders.AddProductToOrderByProductIdModel' Orders.AddressViewModel: type: object properties: address1: type: string description: First line of the address address2: type: - string - 'null' description: Second line of the address city: type: string description: The city company_name: type: - string - 'null' description: Name of the company receiving the shipment country: type: string description: The country (Must be ISO Alpha-2 for estimates) state: type: - string - 'null' description: The state or province zip_code: type: - string - 'null' format: postal-code description: The zip code or postal code required: - address1 - city - country Orders.AddressType: type: string enum: - value: MarkFor - value: ShipFrom Orders.RetailerProgramDataAddressViewModel: type: object properties: address1: type: string description: First line of the address address2: type: - string - 'null' description: Second line of the address city: type: string description: The city company_name: type: - string - 'null' description: Name of the company receiving the shipment country: type: string description: The country (Must be ISO Alpha-2 for estimates) state: type: - string - 'null' description: The state or province zip_code: type: - string - 'null' format: postal-code description: The zip code or postal code type: $ref: '#/components/schemas/Orders.AddressType' required: - address1 - city - country - type OrdersRecipientInfoViewModelAddress: oneOf: - $ref: '#/components/schemas/Orders.AddressViewModel' - $ref: '#/components/schemas/Orders.RetailerProgramDataAddressViewModel' Orders.RecipientInfoViewModel: type: object properties: address: $ref: '#/components/schemas/OrdersRecipientInfoViewModelAddress' description: Address of the recipient email: type: - string - 'null' format: email description: Email address of the recipient name: type: string description: Name of the recipient phone_number: type: - string - 'null' description: Phone number of the recipient required: - address - name Orders.RetailerProgramDataViewModel: type: object properties: addresses: type: - array - 'null' items: $ref: '#/components/schemas/Orders.RetailerProgramDataAddressViewModel' description: "Ship From - Certain retailers want to display the ship from address as their return facility, not Shipbob’s warehouse address /// \r\nMark For Address - Final destination address" customer_ticket_number: type: - string - 'null' description: Customer Ticket Number delivery_date: type: - string - 'null' format: date-time description: Expected delivery date department: type: - string - 'null' description: Identifies a merchant's store department doNotShipBeforeDate: type: - string - 'null' format: date-time description: The date the retailer does not want the order shipped by. mark_for_store: type: - string - 'null' description: Store Number purchase_order_number: type: string description: >- First initial documentation sent from buyer to seller with item(s) and quantities. retailer_program_type: type: string description: Identifies retailer-merchant combination shipByDate: type: - string - 'null' format: date-time description: The date the retailer has requested the order to ship by. Orders.SalesChannel: type: string enum: - value: amazon - value: bigcommerce - value: ebay - value: faire - value: macy - value: magento - value: shein - value: shopify - value: squarespace - value: targetplus - value: temu - value: tiktok - value: unleashed - value: walmart - value: woocommerce Orders.CarrierShipType: type: string enum: - value: Parcel - value: Freight Orders.PaymentShipTerm: type: string enum: - value: Collect - value: ThirdParty - value: Prepaid - value: MerchantResponsible Orders.ShippingTermsViewModel: type: object properties: carrier_type: $ref: '#/components/schemas/Orders.CarrierShipType' payment_term: $ref: '#/components/schemas/Orders.PaymentShipTerm' Orders.TagViewModel: type: object properties: name: type: string description: The key of the tag value: type: string description: The value of the tag required: - name - value Orders.OrderType: type: string enum: - value: DTC - value: DropShip - value: B2B Orders.CreateOrderModel: type: object properties: financials: $ref: '#/components/schemas/Orders.Financials' gift_message: type: - string - 'null' description: Gift message associated with the order location_id: type: - integer - 'null' description: >- Desired Fulfillment Center Location ID. If not specified, ShipBob will determine the location that fulfills this order. order_number: type: - string - 'null' description: >- User friendly orderId or store order number that will be shown on the Orders Page. If not provided, referenceId will be used origin_platform_program: type: - string - 'null' description: Origin platform program for the order. Accepts a program name. products: type: array items: $ref: '#/components/schemas/OrdersCreateOrderModelProductsItems' description: >- Products included in the order. Products identified by reference_id must also include the product name if there is no matching ShipBob product. purchase_date: type: - string - 'null' format: date-time description: Date this order was purchase by the end user recipient: $ref: '#/components/schemas/Orders.RecipientInfoViewModel' reference_id: type: string description: Unique and immutable order identifier from your upstream system retailer_program_data: $ref: '#/components/schemas/Orders.RetailerProgramDataViewModel' sales_channel: $ref: '#/components/schemas/Orders.SalesChannel' shipping_method: type: string description: >- Client-defined shipping method matching what the user has listed as the shipping method on the Ship Option Mapping setup page in the ShipBob Merchant Portal. If they don’t match, we will create a new one and default it to Standard shipping_terms: $ref: '#/components/schemas/Orders.ShippingTermsViewModel' tags: type: - array - 'null' items: $ref: '#/components/schemas/Orders.TagViewModel' description: >- Key value pair array to store extra information at the order level for API purposes. ShipBob won't display the info in the ShipBob Merchant Portal or react based on this data. type: $ref: '#/components/schemas/Orders.OrderType' required: - products - recipient - reference_id - shipping_method - type Orders.ChannelInfoViewModel: type: object properties: id: type: integer description: Unique id of the channel name: type: - string - 'null' description: Name of the channel Orders.ProductInfoViewModel: type: object properties: external_line_id: type: - integer - 'null' description: >- Numeric assignment per item. Used as a reference number for multiple purposes such as split orders, split containers, etc. gtin: type: - string - 'null' description: >- Global Trade Item Number - unique and internationally recognized identifier assigned to item by company GS1 id: type: - integer - 'null' description: Unique id of the product quantity: type: integer description: The quantity of this product ordered quantity_unit_of_measure_code: type: - string - 'null' description: >- Defined standard for measure for an item (each, inner pack, case, pallet). Values: EA, INP, CS and PL reference_id: type: - string - 'null' description: Unique reference id of the product sku: type: - string - 'null' description: Stock keeping unit for the product unit_price: type: - number - 'null' format: double description: Price for one item upc: type: - string - 'null' description: Universal Product Code - Unique external identifier Orders.FulfillmentStatus: type: string enum: - value: AwaitingInventoryAllocation - value: AwaitingReset - value: Unavailable - value: PendingOnTime - value: FulfilledOnTime - value: PendingLate - value: FulfilledLate Orders.FulfillmentCenterViewModel: type: object properties: id: type: integer description: Id of the fulfillment center name: type: - string - 'null' description: Name of the fulfillment center Orders.MeasurementsViewModel: type: object properties: depth_in: type: integer description: Total depth in inches length_in: type: integer description: Total length in inches total_weight_oz: type: integer description: Total weight in ounces width_in: type: integer description: Total width in inches Orders.PackageMaterialType: type: string enum: - value: Unknown - value: Box - value: BubbleMailer - value: PolyMailer - value: FragileBox - value: PosterTube - value: Custom - value: Bookfold - value: OwnContainer - value: Undefined Orders.InventoryViewModel: type: object properties: expiration_date: type: - string - 'null' format: date-time description: Expiration date of the inventory id: type: integer description: Unique id of the inventory is_dangerous_goods: type: boolean description: Is inventory Dangerous Good lot: type: - string - 'null' description: Lot number of the inventory name: type: - string - 'null' description: Name of the inventory item quantity: type: integer description: Quantity of the inventory item to be included in the fulfillment quantity_committed: type: integer description: >- The quantity of the inventory item allocated from the assigned fulfillment center and committed to the order. If quantity committed is less than order quantity, then the inventory item is out of stock at the assigned fulfillment center. serial_numbers: type: - array - 'null' items: type: string description: Serial number of the inventory Orders.ShipmentProductViewModel: type: object properties: id: type: integer description: Unique id of the product inventory_items: type: - array - 'null' items: $ref: '#/components/schemas/Orders.InventoryViewModel' description: >- Information about fulfillable inventory items belonging to this product name: type: - string - 'null' description: Name of the product reference_id: type: - string - 'null' description: Unique reference id of the product sku: type: - string - 'null' description: Stock keeping unit for the product Orders.CartonDetailsViewModel: type: object properties: products: type: - array - 'null' items: $ref: '#/components/schemas/Orders.ShipmentProductViewModel' description: List of what is packed in this carton Orders.CartonMeasurementsViewModel: type: object properties: depth_in: type: number format: double description: Total depth in inches length_in: type: number format: double description: Total length in inches total_weight_oz: type: number format: double description: Total weight in ounces width_in: type: number format: double description: Total width in inches Orders.CartonViewModel: type: object properties: barcode: type: - string - 'null' description: Barcode assigned to this carton carton_details: type: - array - 'null' items: $ref: '#/components/schemas/Orders.CartonDetailsViewModel' description: Details about the contents of this carton id: type: integer description: ID assigned to this carton measurements: $ref: '#/components/schemas/Orders.CartonMeasurementsViewModel' type: type: - string - 'null' description: Type of this carton container Orders.ParentCartonViewModel: type: object properties: barcode: type: - string - 'null' description: Barcode assigned to this carton cartons: type: - array - 'null' items: $ref: '#/components/schemas/Orders.CartonViewModel' description: Cartons packed inside this parent container measurements: $ref: '#/components/schemas/Orders.CartonMeasurementsViewModel' type: type: - string - 'null' description: Type of this carton container OrdersRecipientViewModelAddress: oneOf: - $ref: '#/components/schemas/Orders.AddressViewModel' - $ref: '#/components/schemas/Orders.RetailerProgramDataAddressViewModel' Orders.RecipientViewModel: type: object properties: address: oneOf: - $ref: '#/components/schemas/OrdersRecipientViewModelAddress' - type: 'null' description: Address of the recipient email: type: - string - 'null' format: email description: Email address of the recipient full_name: type: - string - 'null' description: FullName of the recipient name: type: - string - 'null' description: Name of the recipient phone_number: type: - string - 'null' format: tel description: Phone number of the recipient Orders.OrderStatusEnum: type: string enum: - value: None - value: Processing - value: Completed - value: Exception - value: OnHold - value: Cancelled - value: CleanSweeped - value: LabeledCreated - value: ImportReview Orders.StatusInformationViewModel: type: object properties: validation_messages: type: - array - 'null' items: type: string Orders.StatusDetailViewModel: type: object properties: description: type: - string - 'null' description: Describes what the status detail means exception_fulfillment_center_id: type: - integer - 'null' extra_information: $ref: '#/components/schemas/Orders.StatusInformationViewModel' id: type: integer description: The id of the status detail inventory_id: type: - integer - 'null' description: Inventory Id the detail applies to (if applicable) name: type: - string - 'null' description: Short name of the status detail Orders.TrackingViewModel: type: object properties: bol: type: - string - 'null' description: >- Bill of lading (BOL) number. Document acknowledging receipt of cargo for shipment. carrier: type: - string - 'null' description: Carrier of the shipment carrier_service: type: - string - 'null' description: The carrier's service which was used for this shipment pro_number: type: - string - 'null' description: Tracking number used for freight carriers scac: type: - string - 'null' description: >- Standard Carrier Alpha Code (SCAC). Unique 2-4 letter code used to identify transportation companies. shipping_date: type: - string - 'null' format: date-time description: Date freight was shipped on tracking_number: type: - string - 'null' description: Tracking number of the shipment tracking_url: type: - string - 'null' description: URL to the website where a shipment can be tracked Orders.ShipmentViewModel: type: object properties: actual_fulfillment_date: type: - string - 'null' format: date-time description: "The datetime of ShipBob’s completion of the fulfillment operation as promised.\r\nCurrently, this means the shipment has been picked, packed, and label has been printed." created_date: type: string format: date-time description: Date this shipment was created delivery_date: type: - string - 'null' format: date-time description: The datetime of Shipment delivered to customer. estimated_fulfillment_date: type: - string - 'null' format: date-time description: "The datetime of ShipBob’s commitment for completing\r\nthe shipment and handing to the carrier for delivery." estimated_fulfillment_date_status: $ref: '#/components/schemas/Orders.FulfillmentStatus' gift_message: type: - string - 'null' description: Gift message associated with the shipment id: type: integer description: Unique id of the shipment insurance_value: type: - number - 'null' format: double description: Monetary amount that this shipment was insured for invoice_amount: type: - number - 'null' format: double description: Monetary amount that was invoiced for this shipment invoice_currency_code: type: - string - 'null' is_tracking_uploaded: type: boolean description: "Indicates whether the Shipment was marked with tracking information\r\nuploaded to a third-party system where the order originated." last_tracking_update_at: type: - string - 'null' format: date-time description: Timestamp for the last time this shipment had a tracking update last_update_at: type: - string - 'null' format: date-time description: Date this shipment was last updated location: $ref: '#/components/schemas/Orders.FulfillmentCenterViewModel' measurements: $ref: '#/components/schemas/Orders.MeasurementsViewModel' order_id: type: integer description: Id of the order this shipment belongs to package_material_type: $ref: '#/components/schemas/Orders.PackageMaterialType' parent_cartons: type: - array - 'null' items: $ref: '#/components/schemas/Orders.ParentCartonViewModel' description: Carton information for this shipment products: type: - array - 'null' items: $ref: '#/components/schemas/Orders.ShipmentProductViewModel' description: Information about the products contained in this shipment recipient: $ref: '#/components/schemas/Orders.RecipientViewModel' reference_id: type: - string - 'null' description: >- Client-defined external unique id of the order this shipment belongs to require_signature: type: boolean description: If a shipment requires signature ship_option: type: - string - 'null' description: Name of the shipping option used for this shipment status: $ref: '#/components/schemas/Orders.OrderStatusEnum' status_details: type: - array - 'null' items: $ref: '#/components/schemas/Orders.StatusDetailViewModel' description: Additional details about the shipment status tracking: $ref: '#/components/schemas/Orders.TrackingViewModel' Orders.OrderStatus: type: string enum: - value: Processing - value: Exception - value: PartiallyFulfilled - value: Fulfilled - value: Cancelled - value: ImportReview Orders.OrderViewModel: type: object properties: channel: $ref: '#/components/schemas/Orders.ChannelInfoViewModel' created_date: type: string format: date-time description: Date this order was created financials: $ref: '#/components/schemas/Orders.Financials' gift_message: type: - string - 'null' description: Gift message associated with the order id: type: integer description: Unique id of the order order_number: type: - string - 'null' description: >- User friendly orderId or store order number that will be shown on the Orders Page. If not provided, referenceId will be used products: type: - array - 'null' items: $ref: '#/components/schemas/Orders.ProductInfoViewModel' description: List of products included in the order purchase_date: type: - string - 'null' format: date-time description: Date this order was purchase by the end user recipient: $ref: '#/components/schemas/Orders.RecipientInfoViewModel' reference_id: type: - string - 'null' description: Client-defined external unique id of the order retailer_program_data: $ref: '#/components/schemas/Orders.RetailerProgramDataViewModel' shipments: type: - array - 'null' items: $ref: '#/components/schemas/Orders.ShipmentViewModel' description: Shipments affiliated with the order shipping_method: type: - string - 'null' description: Client-defined shipping method shipping_terms: $ref: '#/components/schemas/Orders.ShippingTermsViewModel' status: $ref: '#/components/schemas/Orders.OrderStatus' tags: type: - array - 'null' items: $ref: '#/components/schemas/Orders.TagViewModel' description: Client-defined order tags type: $ref: '#/components/schemas/Orders.OrderType' ``` ## SDK Code Examples ```python Orders_createOrder_example import requests url = "https://api.shipbob.com/2026-01/order" payload = { "products": [ { "name": "Medium Blue T-Shirt", "quantity": 1, "reference_id": "TShirtBlueM" } ], "recipient": { "address": { "address1": "100 Nowhere Blvd", "address2": "Suite 100", "city": "Gotham City", "company_name": "Wayne Enterprises", "country": "US", "state": "NJ", "zip_code": "07093" }, "name": "John Doe", "email": "john@example.com", "phone_number": "555-555-5555" }, "reference_id": "string", "shipping_method": "Standard", "type": "DTC", "financials": { "total_price": 0.1 }, "location_id": 0, "order_number": "string", "purchase_date": "2019-08-24T14:15:22Z" } headers = { "shipbob_channel_id": "shipbob_channel_id", "Authorization": "Bearer ", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript Orders_createOrder_example const url = 'https://api.shipbob.com/2026-01/order'; const options = { method: 'POST', headers: { shipbob_channel_id: 'shipbob_channel_id', Authorization: 'Bearer ', 'Content-Type': 'application/json' }, body: '{"products":[{"name":"Medium Blue T-Shirt","quantity":1,"reference_id":"TShirtBlueM"}],"recipient":{"address":{"address1":"100 Nowhere Blvd","address2":"Suite 100","city":"Gotham City","company_name":"Wayne Enterprises","country":"US","state":"NJ","zip_code":"07093"},"name":"John Doe","email":"john@example.com","phone_number":"555-555-5555"},"reference_id":"string","shipping_method":"Standard","type":"DTC","financials":{"total_price":0.1},"location_id":0,"order_number":"string","purchase_date":"2019-08-24T14:15:22Z"}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Orders_createOrder_example package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.shipbob.com/2026-01/order" payload := strings.NewReader("{\n \"products\": [\n {\n \"name\": \"Medium Blue T-Shirt\",\n \"quantity\": 1,\n \"reference_id\": \"TShirtBlueM\"\n }\n ],\n \"recipient\": {\n \"address\": {\n \"address1\": \"100 Nowhere Blvd\",\n \"address2\": \"Suite 100\",\n \"city\": \"Gotham City\",\n \"company_name\": \"Wayne Enterprises\",\n \"country\": \"US\",\n \"state\": \"NJ\",\n \"zip_code\": \"07093\"\n },\n \"name\": \"John Doe\",\n \"email\": \"john@example.com\",\n \"phone_number\": \"555-555-5555\"\n },\n \"reference_id\": \"string\",\n \"shipping_method\": \"Standard\",\n \"type\": \"DTC\",\n \"financials\": {\n \"total_price\": 0.1\n },\n \"location_id\": 0,\n \"order_number\": \"string\",\n \"purchase_date\": \"2019-08-24T14:15:22Z\"\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("shipbob_channel_id", "shipbob_channel_id") req.Header.Add("Authorization", "Bearer ") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Orders_createOrder_example require 'uri' require 'net/http' url = URI("https://api.shipbob.com/2026-01/order") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["shipbob_channel_id"] = 'shipbob_channel_id' request["Authorization"] = 'Bearer ' request["Content-Type"] = 'application/json' request.body = "{\n \"products\": [\n {\n \"name\": \"Medium Blue T-Shirt\",\n \"quantity\": 1,\n \"reference_id\": \"TShirtBlueM\"\n }\n ],\n \"recipient\": {\n \"address\": {\n \"address1\": \"100 Nowhere Blvd\",\n \"address2\": \"Suite 100\",\n \"city\": \"Gotham City\",\n \"company_name\": \"Wayne Enterprises\",\n \"country\": \"US\",\n \"state\": \"NJ\",\n \"zip_code\": \"07093\"\n },\n \"name\": \"John Doe\",\n \"email\": \"john@example.com\",\n \"phone_number\": \"555-555-5555\"\n },\n \"reference_id\": \"string\",\n \"shipping_method\": \"Standard\",\n \"type\": \"DTC\",\n \"financials\": {\n \"total_price\": 0.1\n },\n \"location_id\": 0,\n \"order_number\": \"string\",\n \"purchase_date\": \"2019-08-24T14:15:22Z\"\n}" response = http.request(request) puts response.read_body ``` ```java Orders_createOrder_example import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.shipbob.com/2026-01/order") .header("shipbob_channel_id", "shipbob_channel_id") .header("Authorization", "Bearer ") .header("Content-Type", "application/json") .body("{\n \"products\": [\n {\n \"name\": \"Medium Blue T-Shirt\",\n \"quantity\": 1,\n \"reference_id\": \"TShirtBlueM\"\n }\n ],\n \"recipient\": {\n \"address\": {\n \"address1\": \"100 Nowhere Blvd\",\n \"address2\": \"Suite 100\",\n \"city\": \"Gotham City\",\n \"company_name\": \"Wayne Enterprises\",\n \"country\": \"US\",\n \"state\": \"NJ\",\n \"zip_code\": \"07093\"\n },\n \"name\": \"John Doe\",\n \"email\": \"john@example.com\",\n \"phone_number\": \"555-555-5555\"\n },\n \"reference_id\": \"string\",\n \"shipping_method\": \"Standard\",\n \"type\": \"DTC\",\n \"financials\": {\n \"total_price\": 0.1\n },\n \"location_id\": 0,\n \"order_number\": \"string\",\n \"purchase_date\": \"2019-08-24T14:15:22Z\"\n}") .asString(); ``` ```php Orders_createOrder_example request('POST', 'https://api.shipbob.com/2026-01/order', [ 'body' => '{ "products": [ { "name": "Medium Blue T-Shirt", "quantity": 1, "reference_id": "TShirtBlueM" } ], "recipient": { "address": { "address1": "100 Nowhere Blvd", "address2": "Suite 100", "city": "Gotham City", "company_name": "Wayne Enterprises", "country": "US", "state": "NJ", "zip_code": "07093" }, "name": "John Doe", "email": "john@example.com", "phone_number": "555-555-5555" }, "reference_id": "string", "shipping_method": "Standard", "type": "DTC", "financials": { "total_price": 0.1 }, "location_id": 0, "order_number": "string", "purchase_date": "2019-08-24T14:15:22Z" }', 'headers' => [ 'Authorization' => 'Bearer ', 'Content-Type' => 'application/json', 'shipbob_channel_id' => 'shipbob_channel_id', ], ]); echo $response->getBody(); ``` ```csharp Orders_createOrder_example using RestSharp; var client = new RestClient("https://api.shipbob.com/2026-01/order"); var request = new RestRequest(Method.POST); request.AddHeader("shipbob_channel_id", "shipbob_channel_id"); request.AddHeader("Authorization", "Bearer "); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"products\": [\n {\n \"name\": \"Medium Blue T-Shirt\",\n \"quantity\": 1,\n \"reference_id\": \"TShirtBlueM\"\n }\n ],\n \"recipient\": {\n \"address\": {\n \"address1\": \"100 Nowhere Blvd\",\n \"address2\": \"Suite 100\",\n \"city\": \"Gotham City\",\n \"company_name\": \"Wayne Enterprises\",\n \"country\": \"US\",\n \"state\": \"NJ\",\n \"zip_code\": \"07093\"\n },\n \"name\": \"John Doe\",\n \"email\": \"john@example.com\",\n \"phone_number\": \"555-555-5555\"\n },\n \"reference_id\": \"string\",\n \"shipping_method\": \"Standard\",\n \"type\": \"DTC\",\n \"financials\": {\n \"total_price\": 0.1\n },\n \"location_id\": 0,\n \"order_number\": \"string\",\n \"purchase_date\": \"2019-08-24T14:15:22Z\"\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift Orders_createOrder_example import Foundation let headers = [ "shipbob_channel_id": "shipbob_channel_id", "Authorization": "Bearer ", "Content-Type": "application/json" ] let parameters = [ "products": [ [ "name": "Medium Blue T-Shirt", "quantity": 1, "reference_id": "TShirtBlueM" ] ], "recipient": [ "address": [ "address1": "100 Nowhere Blvd", "address2": "Suite 100", "city": "Gotham City", "company_name": "Wayne Enterprises", "country": "US", "state": "NJ", "zip_code": "07093" ], "name": "John Doe", "email": "john@example.com", "phone_number": "555-555-5555" ], "reference_id": "string", "shipping_method": "Standard", "type": "DTC", "financials": ["total_price": 0.1], "location_id": 0, "order_number": "string", "purchase_date": "2019-08-24T14:15:22Z" ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.shipbob.com/2026-01/order")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```