---
title: "Create a sales order"
method: POST
path: "/sales_orders"
tags: ["Sales Orders"]
---

# Create a sales order

`POST /sales_orders`

**Plan: Pro.**

## Request body

- SalesOrderWrite — Create/update payload wrapped under `sales_order` (aliased to `work_order` server-side), `snake_case`. Update ignores `line_items`. Only the core fields are listed.
  - `sales_order` object, required
    - `title` string
    - `description` string
    - `txn_date` string, date
    - `company_id` string, uuid
    - `company_name` string
    - `primary_sales_rep_id` string, uuid
    - `primary_contact_id` string, uuid
    - `due_date` string, date
    - `in_hand_date` string, date
    - `shipping_date` string, date
    - `customer_po_number` string
    - `customer_po_date` string, date
    - `term_code_id` string, uuid
    - `sales_tax_id` string, uuid
    - `payment_method_id` string, uuid
    - `shipping_method_id` string, uuid
    - `downpayment_percent` number
    - `setup_charges_in_dollars` number
    - `misc_charges_in_dollars` number
    - `shipping_charges_in_dollars` number
    - `finance_charges_in_dollars` number
    - `billing_address` object
      - `name` string
      - `street` string
      - `street1` string
      - `city` string
      - `state` string
      - `zip` string
      - `country` string
    - `shipping_address` object
      - `name` string
      - `street` string
      - `street1` string
      - `city` string
      - `state` string
      - `zip` string
      - `country` string
    - `line_items` object[] — Create only (ignored on update).
      - `name` string
      - `description` string
      - `position` integer
      - `quantity` number
      - `uom` string
      - `price_in_dollars` number
      - `total_price_in_dollars` number
      - `tax_name` string
      - `tax_rate` number
      - `taxable` boolean
      - `sale_type` string
      - `product_type` string
      - `product_name` string
      - `custom_fields` object[]
        - `name` string
        - `value` string

## Response `200`

Created.

- SalesOrder — Full sales order (internally a WorkOrder). Includes charges, line items, addresses, related transactions and payments. Only the most-used fields are listed; the response may include additional nested detail.
  - `className` string
  - `active` boolean
  - `id` string, uuid
  - `title` string
  - `description` string, nullable
  - `txnDate` string, date, nullable
  - `txnNumber` string
  - `totalPriceInDollars` number, nullable — US dollars.
  - `totalTaxInDollars` number, nullable — US dollars.
  - `totalPriceWithTaxInDollars` number, nullable — US dollars.
  - `totalPaymentsInDollars` number, nullable — US dollars.
  - `balanceInDollars` number, nullable — US dollars.
  - `workflowState` string, nullable
  - `dueDate` string, date, nullable
  - `inHandDate` string, date, nullable
  - `shippingDate` string, date, nullable
  - `customerPoNumber` string, nullable
  - `customerPoDate` string, date, nullable
  - `downpaymentPercent` number, nullable
  - `invoiced` boolean, nullable
  - `fullyInvoiced` boolean, nullable
  - `setupChargesInDollars` number, nullable — US dollars.
  - `setupChargesTaxable` boolean
  - `miscChargesInDollars` number, nullable — US dollars.
  - `miscChargesTaxable` boolean
  - `miscChargesLabel` string, nullable
  - `shippingChargesInDollars` number, nullable — US dollars.
  - `shippingChargesTaxable` boolean
  - `financeChargesInDollars` number, nullable — US dollars.
  - `financeChargesTaxable` boolean
  - `companyId` string, uuid, nullable
  - `primarySalesRepId` string, uuid, nullable
  - `primaryContactId` string, uuid, nullable
  - `billingAddressId` string, uuid, nullable
  - `shippingAddressId` string, uuid, nullable
  - `termCodeId` string, uuid, nullable
  - `salesTaxId` string, uuid, nullable
  - `shippingMethodId` string, uuid, nullable
  - `productionManagerId` string, uuid, nullable
  - `projectManagerId` string, uuid, nullable
  - `designerId` string, uuid, nullable
  - `paymentMethodId` string, uuid, nullable
  - `createdAt` string, date-time
  - `updatedAt` string, date-time
  - `company` NamedRef — Lightweight reference to a related record.
    - `id` string, uuid
    - `name` string
  - `primaryContact` NamedRef — Lightweight reference to a related record.
    - `id` string, uuid
    - `name` string
  - `primarySalesRep` Party — A person reference (sales rep, PM, designer) with initials.
    - `id` string, uuid
    - `name` string, nullable
    - `initials` string, nullable
  - `productionManager` Party — A person reference (sales rep, PM, designer) with initials.
    - `id` string, uuid
    - `name` string, nullable
    - `initials` string, nullable
  - `projectManager` Party — A person reference (sales rep, PM, designer) with initials.
    - `id` string, uuid
    - `name` string, nullable
    - `initials` string, nullable
  - `designer` Party — A person reference (sales rep, PM, designer) with initials.
    - `id` string, uuid
    - `name` string, nullable
    - `initials` string, nullable
  - `project` NamedRef — Lightweight reference to a related record.
    - `id` string, uuid
    - `name` string
  - `createdBy` NamedRef — Lightweight reference to a related record.
    - `id` string, uuid
    - `name` string
  - `updatedBy` NamedRef — Lightweight reference to a related record.
    - `id` string, uuid
    - `name` string
  - `billingAddress` Address
    - `id` string
    - `addressType` string, nullable
    - `name` string, nullable
    - `nameStreet` string, nullable
    - `nameStreetCity` string, nullable
    - `street` string, nullable
    - `street1` string, nullable
    - `suburb` string, nullable
    - `city` string, nullable
    - `zip` string, nullable
    - `state` string, nullable
    - `country` string, nullable
    - `attentionTo` string, nullable
    - `coordinates` object
      - `latitude` number, nullable
      - `longitude` number, nullable
  - `shippingAddress` Address
    - `id` string
    - `addressType` string, nullable
    - `name` string, nullable
    - `nameStreet` string, nullable
    - `nameStreetCity` string, nullable
    - `street` string, nullable
    - `street1` string, nullable
    - `suburb` string, nullable
    - `city` string, nullable
    - `zip` string, nullable
    - `state` string, nullable
    - `country` string, nullable
    - `attentionTo` string, nullable
    - `coordinates` object
      - `latitude` number, nullable
      - `longitude` number, nullable
  - `shippingMethod` NamedRef — Lightweight reference to a related record.
    - `id` string, uuid
    - `name` string
  - `paymentMethod` NamedRef — Lightweight reference to a related record.
    - `id` string, uuid
    - `name` string
  - `tax` object
    - `id` string, uuid
    - `name` string, nullable
    - `rate` number, nullable
    - `rateInPercent` string, nullable
  - `termCode` object
    - `id` string, uuid
    - `name` string, nullable
    - `type` string, nullable
    - `days` integer, nullable
  - `lineItems` SalesOrderLineItem[]
    - `id` string, uuid
    - `workOrderId` string, uuid
    - `companyId` string, uuid, nullable
    - `position` integer
    - `name` string, nullable
    - `description` string, nullable
    - `fullDescription` string, nullable
    - `quantity` number
    - `uom` string, nullable
    - `volumeDiscountPercent` number, nullable
    - `volumeDiscountInDollars` number, nullable
    - `rangeDiscountPercent` number, nullable
    - `rangeDiscountInDollars` number, nullable
    - `costInDollars` number, nullable — US dollars.
    - `suggestedPriceInDollars` number, nullable — US dollars.
    - `priceInDollars` number, nullable — US dollars.
    - `totalCostInDollars` number, nullable — US dollars.
    - `totalPriceInDollars` number, nullable — US dollars.
    - `totalTaxInDollars` number, nullable — US dollars.
    - `workflowState` string, nullable
    - `productId` string, uuid, nullable
    - `productType` string, nullable
    - `productName` string, nullable
    - `saleType` string, nullable
    - `jobId` string, uuid, nullable
    - `taxable` boolean
    - `taxName` string, nullable
    - `taxRate` number, nullable
    - `priceOverride` boolean, nullable
    - `parentLineItemId` string, uuid, nullable
    - `customFields` object[]
      - `name` string
      - `type` string, nullable
      - `value` string, nullable
    - `job` object
      - `id` string, uuid
      - `name` string, nullable
      - `workflowState` string, nullable
  - `relatedTransactions` object[]
    - `txnId` string, uuid
    - `txnNumber` string
    - `txnDate` string, date, nullable
    - `txnName` string, nullable
    - `txnType` string, nullable
    - `txnTotal` number, nullable
  - `orderPayments` object[]
    - `orderPaymentId` string, uuid
    - `orderPaymentTxnNumber` string
    - `orderPaymentPaidOn` string, date, nullable
    - `orderPaymentAmount` number, nullable
  - `signatures` Signature[]
    - `name` string
    - `location` string, nullable
    - `signatureUrl` string, nullable
    - `createdAt` string, date-time

## Other responses

- `422` — Unprocessable entity - field errors keyed by attribute.

---

[API](https://skmtc.net/shopvox/apis/shopvox-public-api.md) · [All operations](https://skmtc.net/shopvox/apis/shopvox-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/shopvox/shopvox-public-api/versions/7ac1ff5d444a/schema)
