Purchase Orders

Update a purchase order

Updates a draft or rejected purchase order. Other statuses return 409 po_invalid_status.

patch/purchase-orders/{purchaseOrderId}

Request

  • Base URL: https://next-api.saturation.io/v1
  • URL: https://next-api.saturation.io/v1/purchase-orders/{purchaseOrderId}
  • Auth: HTTP bearer

Path parameters

purchaseOrderIdstring required

A stable resource ID, such as prj_…, txn_…, or doc_….

Example:txn_8f2a1c9e

Purchase order ID.

Query parameters

expandPurchaseOrderExpand[]

Comma list of related data to inline on a purchase order (depth ≤ 2). Unknown key returns 400 expand_invalid.

Request body

projectIdstring nullable

Project ID or slug. Set to null to unassign the purchase order.

numberstring nullable
namestring nullable
contactIdstring nullable
budgetLineIdstring nullable
dueDatestring date nullable
serviceStartAtstring date nullable
serviceEndAtstring date nullable
notesstring nullable
sortnumber nullable

Example request

{
  "name": "Camera package rental (updated)",
  "notes": "Net-45"
}

Response

The updated purchase order.

idstring required

A stable resource ID, such as prj_…, txn_…, or doc_….

workspaceIdstring required

A stable resource ID, such as prj_…, txn_…, or doc_….

projectIdstring required

A stable resource ID, such as prj_…, txn_…, or doc_….

numberstring nullable

Purchase order number, such as PO-0042.

namestring nullable

Purchase order name.

status'draft' | 'pending' | 'approved' | 'rejected' | 'actualizing' | 'paid' | 'void' required

Current purchase order status.

contactIdstring nullable

Vendor contact ID.

budgetLineIdstring nullable

Budget line ID.

dueDatestring date nullable

Payment due date.

serviceStartAtstring date nullable

First service date.

serviceEndAtstring date nullable

Last service date.

notesstring nullable

Notes about the purchase order.

sortnumber nullable

Display order within the project.

currencystring required

Purchase order currency.

exchangeRatenumber nullable required

Rate from the purchase order currency to the workspace currency.

exchangeRateSourcestring nullable required

Where the exchange rate came from.

createdByIdstring nullable

ID of the user who created the purchase order.

createdAtstring date-time required

Time the purchase order was created.

updatedAtstring date-time required

Time the purchase order was last updated.

Example response

{
  "id": "po_8f2a1c9e",
  "workspaceId": "ws_3b1",
  "projectId": "prj_demo",
  "number": "PO-0042",
  "name": "Camera package rental",
  "status": "pending",
  "contactId": "con_77a",
  "budgetLineId": "bud_5510",
  "dueDate": "2026-05-20",
  "serviceStartAt": "2026-05-21",
  "serviceEndAt": "2026-05-24",
  "notes": "Net-30",
  "sort": 1000,
  "createdById": "usr_aa1",
  "amount": {
    "amount": 152900,
    "currency": "USD"
  },
  "createdAt": "2026-05-18T14:02:11.000Z",
  "updatedAt": "2026-05-20T09:31:00.000Z"
}

Changes

No recorded changes to this operation across all 4 revisions of this API.