---
title: "Create a new draft sales order"
method: POST
path: "/api/sales-orders"
tags: ["Sales Order"]
---

# Create a new draft sales order

`POST /api/sales-orders`

## Request body

- SalesOrderCreateDto — Details of sales order to be created
  - `customerId` string, required — The id of the customer to be created
  - `orderedDate` string, date-time, nullable — The ordered date of the sales order. For supplied values, only the calendar date is used, exactly as written; any time or UTC offset is ignored. If not supplied, defaults to the current UTC timestamp.
  - `customerPoNumber` string, nullable — Optional customer supplied purchase order number
  - `shippingAddress` CommonAddressCreateDto — Address with additional context
    - `name` string, nullable — Name of the address (Bob's Shipping, Primary, Reno Warehouse, etc).
    - `address1` string, required — Primary address line.
    - `address2` string, nullable — Second address line.
    - `address3` string, nullable — Third address line.
    - `city` string, required — Address city
    - `stateProvince` string, nullable — Address state/province.
    - `postalCode` string, required — Postal/zip code.
    - `country` string, nullable — Country identifier.
    - `shippingLeadTime` integer, nullable — Lead time for shipping contents.
    - `primaryBilling` boolean — Signifies if this is a primary billing address.
    - `primaryShipping` boolean — Signifies if this is a primary billing address.
    - `email` string, email, nullable — Email address
    - `phone` string, nullable — Associated phone number
    - `fax` string, nullable — Associated fax number
    - `notes` string, nullable — General notes associated to this customer address
  - `billingAddress` CommonAddressCreateDto — Address with additional context
    - `name` string, nullable — Name of the address (Bob's Shipping, Primary, Reno Warehouse, etc).
    - `address1` string, required — Primary address line.
    - `address2` string, nullable — Second address line.
    - `address3` string, nullable — Third address line.
    - `city` string, required — Address city
    - `stateProvince` string, nullable — Address state/province.
    - `postalCode` string, required — Postal/zip code.
    - `country` string, nullable — Country identifier.
    - `shippingLeadTime` integer, nullable — Lead time for shipping contents.
    - `primaryBilling` boolean — Signifies if this is a primary billing address.
    - `primaryShipping` boolean — Signifies if this is a primary billing address.
    - `email` string, email, nullable — Email address
    - `phone` string, nullable — Associated phone number
    - `fax` string, nullable — Associated fax number
    - `notes` string, nullable — General notes associated to this customer address
  - `contact` CustomerContactCreateDto — A customer contact
    - `firstName` string, required — First name
    - `lastName` string, nullable — Last name
    - `position` string, nullable — Position / Job Title
    - `phone` string, nullable — Phone number
    - `cellPhone` string, nullable — Cellphone number
    - `email` string, email, nullable — Email address
  - `externalReferences` object, nullable — Arbitrary key-value-pair like data that can be used to later on search for the Sales Order
  - `externalQuoteUrl` string, nullable — A reference URL that points to an external quote entity.
  - `dueDate` string, date-time, nullable — The due date of the sales order. This indicates the expected date of completion. Only the calendar date is used, exactly as written; any time or UTC offset is ignored.
  - `paymentTermsId` string, nullable — Payment terms key identifier. Please reference /api/payment-terms endpoint.
  - `salesPersonId` string, nullable — Sales Person identifier. Please reference /api/users endpoint. If not provided, the salesperson defined on the customer will be used.
  - `publicNote` string, nullable — Note to customer. This will appear on PDFs.
  - `priority` 'low' | 'moderate' | 'high' — Priority of the sales order
  - `companyId` string, nullable — Company identifier. Please reference /api/companies endpoint. If not provided, the primary company will be used (if available).
  - `productionDueDate` string, date-time, nullable — The date that the production of items on the sales order needs to be completed by. Only the calendar date is used, exactly as written; any time or UTC offset is ignored.
  - `shippingMethodId` string, nullable — Shipping method identifier. Please reference /api/shipping-methods endpoint.
  - `deposit` CommonDepositCreateDto — Deposit creation.
    - `depositType` 'fixed' | 'percentage' | 'none', required — Deposit type.
    - `amount` number, double, nullable — This represents the literal amount of the deposit if FulcrumProduct.PublicApi.Dto.Common.DepositCreateDto.DepositType == FulcrumProduct.PublicApi.Dto.Common.Enum.SalesOrderDepositRequirementEnum.Fixed or the percentage (0 - 100) when FulcrumProduct.PublicApi.Dto.Common.DepositCreateDto.DepositType == FulcrumProduct.Domain.SalesOrders.SalesOrderDepositRequirement.Percentage
    - `accountingCodeId` string, nullable — Accounting code key identifier. Please reference /api/accounting-codes endpoint.

## Response `200`

Sales order created

- CreatedResponseDto — Response for a created record
  - `id` string, required — The id of the created record

## Other responses

- `400` — Validation issues with input

---

[API](https://skmtc.net/fulcrumpro/apis/fulcrum-publicapi.md) · [All operations](https://skmtc.net/fulcrumpro/apis/fulcrum-publicapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fulcrumpro/fulcrum-publicapi/versions/1b5649cff14a/schema)
