Add a line item to an existing purchase order. The PO must be in
draft or open status. If the PO is in draft and this is the
first item, the PO auto-transitions to open and a
purchase_order.sent event is emitted.
If a line for the same (product_id, variant_id) already exists on
the PO, the incoming quantity is merged onto the existing line
(de-dupe) rather than creating a duplicate row.
unit_cost is optional. When omitted, the canonical
findBestPurchasePolicy resolver applies the best purchase pricing
policy (effective-date filter + multiplier support). Kit products
are rejected (create POs per component instead). Variant-parent
products are rejected unless a specific variant_id is provided.
Rejected with 422 if the PO is pending_approval; withdraw and revise.
purchasing:writeDocumentation Index
Fetch the complete documentation index at: https://docs.arcuserp.com/llms.txt
Use this file to discover all available pages before exploring further.
API key issued per entity via Settings > Developers > API Keys.
Each key carries scopes (e.g. orders:read, products:write).
Bearer token format: Authorization: Bearer ark_live_ent_Test keys use ark_test_ent_. Both are issued per entity
via Settings > Developers > API Keys.
Optional idempotency key for safe retries (Stripe-style).
255The product (SKU) to add. Cannot be a kit. If the product has variants, variant_id is also required.
Quantity ordered. Must be positive.
x >= 0.0001Optional variant of product_id.
Optional unit cost override. Omit to auto-apply best purchase-pricing policy.
Optional pricing policy id to lock against (for audit trail).
Optional sort order on the PO; defaults to 0.
Line item added (or merged into existing line of same product+variant).
A line item on an order. Sub-resource of Order.