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

# Create a new draft purchase order

`POST /api/purchase-orders`

## Request body

- PurchaseOrderCreateDto — Details of purchase order to be created
  - `vendorId` string, required — Vendor Id
  - `type` 'standard' | 'outsideProcessing' | 'vendorCredit', required — Purchase order type
  - `contactId` string, nullable — Vendor Contact Id; defaults to the Id of the first contact belonging to the input vendor
  - `companyInfoId` string, nullable — Company Information Id; defaults to primary company info Id
  - `currencyCode` string, nullable — Currency code override; defaults to vendor currency code override, then the company's primary currency code
  - `externalReferences` object, nullable — External references associated with this entity.
  - `expectedReceiveDate` string, date-time, nullable — PO Expected receipt date

## Response `200`

Purchase order created

- PurchaseOrderDto — Represents a purchase order
  - `id` string, required — Unique id associated to this entity.
  - `number` integer, required — Number
  - `issueDate` string, date-time, nullable — PO creation date
  - `earliestReceiveDate` string, date-time, nullable — Earliest Receive Date
  - `orderDate` string, date-time, nullable — PO order date (null until status set to Ordered)
  - `expectedReceiveDate` string, date-time, nullable — PO Expected receipt date
  - `promiseDate` string, date-time, nullable — PO Promise date.
  - `vendorId` string, required — Vendor Id
  - `contactId` string, required — Vendor Contact Id
  - `paymentTermsId` string, nullable — Payment terms key identifier. Please reference /api/payment-terms endpoint.
  - `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
  - `type` 'standard' | 'outsideProcessing' | 'vendorCredit', required — Purchase order type
  - `status` 'draft' | 'needsApproval' | 'approved' | 'ordered' | 'paid' | 'cancelled', required — Purchase order status
  - `receivingStatus` 'notReceived' | 'partiallyReceived' | 'received', required — Purchase order receipt status
  - `vendorCredit` number, double, nullable — Vendor credit applied to this purchase order, if applicable
  - `discount` number, double, nullable — Discount applied to this purchase order, if applicable
  - `subTotal` number, double — Total cost of this purchase order, sans tax (if applicable)
  - `total` number, double — Total cost of this purchase order, tax included (if applicable)
  - `companyInfoId` string, required — Company Information Id;
  - `vendorNote` string, nullable — The vendor note is a string property that represents a note provided to the vendor.
  - `notes` string[], nullable — Notes
  - `externalReferences` object, nullable — External references associated with this entity.
  - `customFields` object, nullable — Custom fields that have been defined on this entity.
  - `deleted` boolean — Indicates whether this purchase order has been deleted
  - `currencyCode` string, nullable — Currency code/denomination associated to this vendor. If not provided, default to the primary currency code for the organization.
  - `vendorOrderNumber` string, nullable — The vendor's purchase order number

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