---
title: "Update purchase order"
method: PATCH
path: "/api/v1/purchaseOrders/{id}"
tags: ["Purchase Order"]
---

# Update purchase order

`PATCH /api/v1/purchaseOrders/{id}`

Updates an existing purchase order as long as no writing protection is active. When the writing protection is active only isConfirmed, confirmedVia, confirmedDeliveryDate and salesOrderConfirmationReference can be updated.

## Path parameters

- `id` string, required — Resource identifier.

## Request body

- object
  - `date` string, date — Date of the purchase order.
  - `project` object — Reference to another resource
    - `id` string, required — Resource identifier.
  - `supplier` object
    - `id` string — Resource identifier.
    - `honorific` string
    - `name` string
    - `department` string
    - `subDepartment` string
    - `extraAddressLine` string
    - `street` string
    - `zipCode` string
    - `city` string
    - `state` string
    - `country` string
    - `contactPerson` string
    - `telephone` string
    - `telefax` string
    - `email` string
  - `requestForQuotation` object — Reference to another resource
    - `id` string, required — Resource identifier.
  - `bodyIntroduction` string — Text above the position table in the PDF.
  - `bodyOutroduction` string — Text below the position table in the PDF.
  - `salesOrderConfirmationReference` string — Reference of the sales order confirmation. Can be updated even if the write protection is active.
  - `isConfirmationRequested` boolean — Shows if a confirmation is requested.
  - `suppliersOfferReference` string — Offer reference of the supplier.
  - `internalDesignation` string — Internal designation of the purchase order.
  - `language` object — Language of the purchase order.
    - `iso2` string
  - `isConfirmed` boolean — Shows if the purchase order is confirmed. Can be updated even if the write protection is active.
  - `confirmedVia` 'Internet' | 'E-Mail' | 'Telephone' | 'Telefax' | 'Letter' | 'Other' — Determines how the purchase order was confirmed. Can be updated even if the write protection is active.
  - `financials` object — Financial information about the purchase order.
    - `paymentMethod` object — Reference to another resource
      - `id` string, required — Resource identifier.
    - `paymentTerms` object — Information about payment terms of the purchase order.
      - `paymentTargetDiscount` number, float
      - `paymentTargetDays` number
      - `paymentTargetDiscountDays` number
      - `paymentTargetDiscountAmount` number, float
      - `isPaymentTargetDiscountApplied` boolean
    - `costCenter` string — The assigned cost center for the purchase order.
    - `tax` object — Tax information of the purchase order.
      - `taxation` 'Domestic' | 'EU delivery' | 'Import' | 'Tax free domestic'
      - `vatId` string
      - `taxDisplay` 'Automatic' | 'Net' | 'Gross'
    - `currency` 'EUR' | 'USD' | 'JPY' | 'BGN' | 'CZK' | 'DKK' | 'GBP' | 'HUF' | 'PLN' | 'RON' | 'SEK' | 'CHF' | 'ISK' | 'NOK' | 'HRK' | 'RUB' | 'TRY' | 'AUD' | 'BRL' | 'CAD' | 'CNY' | 'HKD' | 'IDR' | 'ILS' | 'INR' | 'KRW' | 'MXN' | 'MYR' | 'NZD' | 'PHP' | 'SGD' | 'THB' | 'ZAR' | 'ARS' | 'CLP' | 'SAR' | 'AED' | 'QAR' — Currency matches one of currency values as specified in ISO-4217.
  - `delivery` object — Delivery information of the purchase order.
    - `deliveryTerms` object — Reference to another resource
      - `id` string, required — Resource identifier.
    - `hasDifferentDeliveryAddress` boolean
    - `deliveryAddress` object
      - `honorific` string
      - `name` string
      - `department` string
      - `subDepartment` string
      - `extraAddressLine` string
      - `street` string
      - `zipCode` string
      - `city` string
      - `state` string
      - `country` string
      - `contactPerson` string
    - `dates` object
      - `desiredDeliveryDate` string, date, nullable — Desired delivery date of the purchase order.
      - `confirmedDeliveryDate` string, date, nullable — Confirmed delivery date of the purchase order. Can be updated even if the write protection is active.
  - `formatting` object — Formatting settings for the PDF of a purchase order.
    - `hideLetterHead` boolean
    - `hidePrices` boolean
    - `hideProductNumbers` boolean
    - `showLongProductNumbers` boolean
    - `hideProductDescriptions` boolean
    - `showOwnProductNumberInColumn` boolean
  - `internalComment` string — Internal comment about the purchase order.
  - `liabilitiesInfo` string — Information for liabilities.
  - `positions` object[]
    - `id` string — Resource identifier.
    - `project` object — Reference to another resource
      - `id` string, required — Resource identifier.
    - `product` object — Reference to position Product, only one value is allowed at a time
      - `id` string — Resource identifier.
      - `sku` string
      - `externalReferenceNumber` string
    - `name` string
    - `description` string
    - `quantity` number, float
    - `delivered` number, float
    - `price` object — Money object with amount and currency
      - `amount` string, float — A string representing the amount
      - `currency` 'EUR' | 'USD' | 'JPY' | 'BGN' | 'CZK' | 'DKK' | 'GBP' | 'HUF' | 'PLN' | 'RON' | 'SEK' | 'CHF' | 'ISK' | 'NOK' | 'HRK' | 'RUB' | 'TRY' | 'AUD' | 'BRL' | 'CAD' | 'CNY' | 'HKD' | 'IDR' | 'ILS' | 'INR' | 'KRW' | 'MXN' | 'MYR' | 'NZD' | 'PHP' | 'SGD' | 'THB' | 'ZAR' | 'ARS' | 'CLP' | 'SAR' | 'AED' | 'QAR' — Currency matches one of currency values as specified in ISO-4217.
    - `tax` object — Tax information of the purchase order position.
      - `vatCategory` 'standard' | 'reduced' | 'free'
      - `taxText` string
      - `rate` number, float
    - `isDeleted` boolean

## Response `204`

Operation completed successfully, no response body

## Other responses

- `400` — IETF RFC 9457 Problem API compliant response
- `401` — Unable to authenticate the client
- `403` — Unable to authorize the client
- `404` — Resource was not found or not enough access privileges
- `409` — Request conflict with the current state of the target resource
- `415` — Resource representation send in the request is not supported.
- `429` — Too many API calls made.

---

[API](https://skmtc.net/xentral/apis/xentral-api.md) · [All operations](https://skmtc.net/xentral/apis/xentral-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/xentral/xentral-api/revisions/8a27ba392442/schema)
