Skip to content

Endpoint reference

The tables below are a quick scan of the routes and filters. For full request/response schemas, the interactive explorer is the richer view.

The full machine-readable contract is served publicly (no auth, no shop data) at:

GET https://prod.logistified.app/api/v1/openapi.json

Point Postman, Insomnia, or any OpenAPI 3.1 client at that URL to generate a typed client or browse every parameter and response shape.

GET endpoints need a read-scope bearer token (a write key works too). POST / PATCH / DELETE need a write-scope token.

PathReturns
GET /api/v1/purchase-ordersList (filters: status, supplierId, search, dateFrom, dateTo, paidStatus, locationId, variantId, sku, limit, cursor)
GET /api/v1/purchase-orders/{id}Full detail — header, line items, shipment, addresses, payments, documents
GET /api/v1/purchase-orders/{id}/line-itemsLine items
GET /api/v1/purchase-orders/{id}/paymentsPayments
GET /api/v1/purchase-orders/{id}/documentsDocument metadata
GET /api/v1/purchase-orders/{id}/shipmentShipment
GET /api/v1/purchase-orders/{id}/shipmentsAll shipments, each with its line allocations
GET /api/v1/purchase-orders/{id}/addressesBilling + shipping addresses
GET /api/v1/purchase-orders/{id}/receipt-scheduleReceiving / incoming schedule
GET /api/v1/purchase-orders/{id}/logActivity log
GET /api/v1/purchase-orders/{id}/creditsApplied + available supplier credits
PathDoes
POST /api/v1/purchase-ordersCreate a draft. 201 + Location. An empty body {} is a valid empty draft
PATCH /api/v1/purchase-orders/{id}Update header fields (at least one). status is not accepted here
DELETE /api/v1/purchase-orders/{id}Delete a Draft outright, or soft-delete a Cancelled order
POST /api/v1/purchase-orders/{id}/line-itemsAdd catalog line items (bulk, 1–500). 201
POST /api/v1/purchase-orders/{id}/line-items/customAdd one non-catalog line. 201
PATCH /api/v1/purchase-orders/{id}/line-itemsUpdate line items (bulk, 1–500). updateSupplier: true also writes the supplier-related values back to the supplier’s catalogue
DELETE /api/v1/purchase-orders/{id}/line-items?lineItemIds=a,bDelete line items (bulk). Can partly succeed — check failed[]
POST /api/v1/purchase-orders/{id}/statusMove the order’s status
POST /api/v1/purchase-orders/{id}/confirmRecord confirmed quantities — lines or confirmAll
POST /api/v1/purchase-orders/{id}/receiveRecord received quantities (absolute totals)
POST /api/v1/purchase-orders/{id}/unreceiveTake back received quantities (deltas)
POST /api/v1/purchase-orders/{id}/completeComplete the order and run the cost sync
POST /api/v1/purchase-orders/{id}/quick-completeReceive + sync + complete, in one call from In Progress
POST /api/v1/purchase-orders/{id}/shopify-syncPush received quantities to Shopify
POST /api/v1/purchase-orders/{id}/shopify-sync/resetClear the sync bookkeeping (Shopify untouched)

Read-only.

PathReturns
/api/v1/stock-takesList (filters: status, locationId, search, limit, cursor)
/api/v1/stock-takes/reasonsConfigured stock-take reasons
/api/v1/stock-takes/{id}Full detail — header + line items
/api/v1/stock-takes/{id}/line-itemsLine items

Read-only.

PathReturns
/api/v1/transfer-ordersList (filters: status, search, dateFrom, dateTo, fromLocationId, toLocationId, variantId, sku, limit, cursor)
/api/v1/transfer-orders/{id}Full detail — header (incl. line items), addresses, log
/api/v1/transfer-orders/{id}/line-itemsLine items
/api/v1/transfer-orders/{id}/shipmentShipment
/api/v1/transfer-orders/{id}/documentsDocument metadata
/api/v1/transfer-orders/{id}/addressesFrom + to addresses
/api/v1/transfer-orders/{id}/logActivity log