---
title: "Update Purchase Order Item"
method: PATCH
path: "/v2/po/{poID}/items/{poItemID}"
tags: ["Routes", "Purchase Orders", "Items"]
---

# Update Purchase Order Item

`PATCH /v2/po/{poID}/items/{poItemID}`

This request updates a Purchase Order Item. Considering the validation for this route is non-trivial -- keep in mind that before this update takes place, we validate the resulting PO Item, so the itemType must be valid with any existing or updated properties. For example, if you have a PO Item of itemType 1 (Part) and attempt to send a PATCH that only provides a checklistID, you will get an error back saying that this is an invalid combination.

To remove an associated ID, pass in the value 0.

itemType | Int | Optional | A number describing what type of PO Item this is. Valid values are: 1 (Part), 2 (Service), 4 (Other). If itemType is 1, name and taskID cannot be present and partID is required. If itemType is 2 or 4, name is required and partID cannot be present. If itemType is 2, a checklistID is required.
name | String | Optional | A short line-item title for this PO Item.
description | String | Optional | A more detailed description for this PO Item.
glID | Int | Optional | The ID of the General Ledger that this PO Item will belong to.
taskID | Int | Optional | The ID of the Task that this PO Item will belong to.
assetID | Int | Optional | The ID of the Asset that this PO Item will belong to.
partID | Int | Optional | The ID of the Part that this PO Item will belong to.
quantity | Int | Optional | A number for how many items are represented in this line. If not provided, the minimum and default values are 1.
rate | Float | Optional | A decimal (precision 4) representing the cost of one of the item(s). Default is 0.0000
tax | Float | Optional | A decimal (precision 4) representing the amount of tax on the item(s) as a percent. Default is 0.0000
discount | Float | Optional | A decimal (precision 4) representing the discounted cost on the item(s) as a percent. Default is 0.0000
shipping | Float | Optional | A decimal (precision 4) representing the cost of shipping for the item(s). Default is 0.0000

## Request body

- object
  - `itemType` integer
  - `glID` integer
  - `assetID` integer
  - `partID` integer
  - `quantity` integer
  - `rate` number
  - `tax` number
  - `discount` integer
  - `shipping` number

## Response `200`

Update Purchase Order Item

- object
  - `success` boolean

## Other responses

- `400` — The request was malformed — either invalid JSON syntax or a validation failure (missing required field, wrong type, etc.).
- `401` — No `Authorization` header was provided on the request.
- `403` — The supplied credentials are invalid, the customer account is inactive, or the credentials do not have permission to perform this action.
- `404` — The referenced resource does not exist or is not visible to the authenticated customer.
- `409` — The request conflicts with the current state of the resource (e.g. a uniqueness constraint or a referenced parent that is in the wrong state).
- `429` — The per-minute or per-hour rate limit for this credential and method has been exhausted. Inspect the `X-RateLimit-*` headers to determine when to retry.
- `500` — An unhandled server-side error. The body message is generic (`System unavailable...`) when the underlying cause is a database fault; otherwise it reflects the raised error.

---

[API](https://skmtc.net/limblecmms/apis/limble-api-v2.md) · [All operations](https://skmtc.net/limblecmms/apis/limble-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/limblecmms/limble-api-v2/versions/20801e23f7f2/schema)
