Update an order and manage order items (comprehensive CRUD)
Comprehensive order updates supporting:
- Core order fields (phase, status, externalReference, notes, deliveryAddress, dates, currency, totalAmount, properties)
- Create, update, and delete operations for order items
Order Items: Each order item references an item list entry (via itemListEntryId). An order can only have one item per item list entry (enforced by unique constraint).
Properties (JSONB) - Upsert Behavior:
- Properties are deep merged, not replaced
- Top-level keys (e.g., “sage200Evo”, “unleashed”) are merged preserving other providers
- Nested fields within a provider are also merged (e.g., adding “invoiceNo” preserves existing “salesOrderNo”)
nullis a valid value and will NOT delete keys- To delete a property section, fetch the order, modify the properties object, and send the complete modified object
Example: If an order has { unleashed: { guid: "123" } } and you PATCH with { sage200Evo: { salesOrderNo: 456 } }, the result is { unleashed: { guid: "123" }, sage200Evo: { salesOrderNo: 456 } }.
Field Descriptions:
- phase: High-level lifecycle state (DRAFT, PENDING, DELETED, ACTIVE, ARCHIVED, REJECTED, CANCELLED)
- status: Physical fulfillment/movement state (UNASSIGNED, ACCEPTED, PACKED, IN_TRANSIT, DELIVERED, RETURNED, NOT_APPLICABLE)
- All datetime fields should be ISO 8601 format (e.g., “2025-01-15T10:30:00.000Z”)
Headers
Business identifier for external auth. Find in Polinate app → Business Settings → Integrations.
"{{businessId}}"
Per-business API key for external auth. Find in Polinate app → Business Settings → Integrations.
"{{apiKey}}"
Idempotency key for POST operations
"{{idempotencyKey}}"
Path Parameters
"ord_123"
Body
Response
OK - Returns full updated order with all items
The business partnership this order belongs to
Decimal as string
DRAFT, PENDING, DELETED, ACTIVE, ARCHIVED, REJECTED, CANCELLED UNASSIGNED, ACCEPTED, PACKED, IN_TRANSIT, DELIVERED, RETURNED, NOT_APPLICABLE 
