---
title: "Update a sales order"
method: PUT
path: "/api/sales-orders/{salesOrderId}"
tags: ["Sales Order"]
---

# Update a sales order

`PUT /api/sales-orders/{salesOrderId}`

## Path parameters

- `salesOrderId` string, required

## Request body

- SalesOrderUpdateDto — Represents an update on an SalesOrder.
  - `externalReferences` object, nullable — Arbitrary key-value-pair like data that can be used to later on search for this line item.
  - `customerPoNumber` string, nullable — CustomerPoNumber
  - `priority` 'low' | 'moderate' | 'high' — Priority of the sales order
  - `deliveryDueDate` string, date-time, nullable — The date the SO needs to be delivered to the customer. Note: this does not affect individual line update delivery dates. Only the calendar date is used, exactly as written; any time or UTC offset is ignored.
  - `publicNote` string, nullable — Note to customer. This will appear on PDFs.

## Response `200`

Sales order item

- SalesOrderDto — Represents a sales order
  - `id` string, required — Unique id associated to this entity.
  - `number` integer, required — Number
  - `orderedDate` string, date-time, required — Sales order ordered date (generally the creation date but can be post/pre-dated).
  - `customerPoNumber` string, nullable — CustomerPoNumber
  - `externalQuoteUrl` string, nullable — A reference URL that points to an external quote entity.
  - `createdFromQuoteId` string, nullable — Unique identifier of the quote that this sales order was created from. Please reference /api/quotes endpoints.
  - `customerId` string, required — The id of the customer that the sales order is for
  - `deliveryDueDate` string, date-time, nullable — The date the SO needs to be delivered to the customer
  - `productionDueDate` string, date-time, nullable — The date that production needs to be completed by
  - `sentToProductionDateUtc` string, date-time, nullable — The datetime in UTC that the SO status was updated to Send to Production
  - `billingAddress` CommonAddressDto — Address definition
    - `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.
    - `phone` string, tel, nullable — Phone number.
    - `email` string, email, nullable — Email address
  - `paymentTermsId` string, nullable — The payment terms assigned to this sales order.
  - `paymentTerms` CommonReferenceDto — Represents a reference to a document in a DB collection
    - `id` string, nullable — Unique Id associated to the referenced object
    - `name` string, nullable — Descriptive name associated to the object
  - `discount` number, double, nullable — Total discount for the SO when a Discount Line as been aded
  - `subtotal` number, double — Subtotal for the SO
  - `salesPersonId` string, nullable — Unique identifier of the sales person attached to this sales order. Please reference /api/users endpoints.
  - `publicNote` string, nullable — Note to customer. This will appear on PDFs.
  - `deleted` boolean — Indicates whether this sales order has been deleted
  - `companyId` string, nullable — Company identifier. Please reference /api/companies endpoint.
  - `createdUtc` string, date-time, required — Date this record was created (UTC).
  - `modifiedUtc` string, date-time, nullable — Date this record was modified (UTC). Of note, this does account for children items (line items).
  - `usesV3Shipping` boolean — Indicate if this sales order uses V3 shipping.
  - `status` 'draft' | 'needsApproval' | 'approved' | 'inProgress' | 'complete', required — Sales order status
  - `priority` 'low' | 'moderate' | 'high' — Priority of the sales order
  - `shipByDate` string, date-time, nullable — The date this sales order should ship by, as shown on the sales order in the app: the earliest ship by date across the order's non-cancelled shipments, or, when no shipment has one, the earliest delivery due date less the customer's shipping lead time.
  - `deposit` CommonDepositDto — Deposit information
    - `depositType` 'fixed' | 'percentage' | 'none', required — Deposit type.
    - `amount` number, double, nullable — This represents the literal amount of the deposit if FulcrumProduct.PublicApi.Dto.Common.DepositDto.DepositType == FulcrumProduct.PublicApi.Dto.Common.Enum.SalesOrderDepositRequirementEnum.Fixed or the percentage (0 - 100) when see cref="DepositType"/> == FulcrumProduct.PublicApi.Dto.Common.Enum.SalesOrderDepositRequirementEnum.Percentage
    - `accountingCodeId` string, nullable — Accounting code key identifier. Please reference /api/accounting-codes endpoint.
    - `amountInvoiced` number, double, nullable — The amount that has already been invoiced.
  - `externalReferences` object, nullable — External references associated with this entity.
  - `customFields` object, nullable — Custom fields that have been defined on this entity.
  - `contact` CustomerContactDto — A customer contact
    - `id` string, required — Id
    - `firstName` string, required — First name
    - `lastName` string, required — Last name
    - `position` string, nullable — Position / Job Title
    - `cellPhone` string, nullable — Cellphone number
    - `phone` string, nullable — Phone number
    - `email` string, email, nullable — Email address

## Other responses

- `404` — Sales order did not exist

---

[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)
