Purchasing Manager API
Suppliers and purchase orders: raise one, send it, receive what arrives and record its costs.
Event-sourced purchase-order (receiving) service. Owns the PO lifecycle, expected vs confirmed costs, landed costs, and unit/lot identity capture at receipt (it is the serial-uniqueness authority). Quantity movements are commanded through the inventory service, which remains the platform's source of truth for stock levels.
- Base URL
https://purchasing.getmanifold.io- Auth
- A bearer token on every call. See the quickstart.
- OpenAPI
- purchasing-manager.openapi.json
pos
Purchase-order lifecycle: draft → authorised → partially-received → received → invoiced → closed, or cancelled.
- GET
/supplier-pricesWhat suppliers charge - PUT
/supplier-prices/{supplierId}/{sku}Set what a supplier charges for a SKU - DELETE
/supplier-prices/{supplierId}/{sku}Forget what a supplier charges for a SKU - GET
/posA page of purchase orders from the current read model - POST
/posRaise a draft purchase order with a supplier - GET
/incomingStock on its way for skus - GET
/pos/{poId}One purchase order by its po_ id - PUT
/pos/{poId}Rewrite a purchase order - DELETE
/pos/{poId}Cancel a purchase order before any goods arrive - PUT
/pos/{poId}/expectedSet the expected delivery day - POST
/pos/{poId}/authoriseAuthorise a draft PO - POST
/pos/{poId}/receiptsRecord goods arriving against an authorised PO - POST
/pos/{poId}/invoiceAuthorise the supplier invoice, confirming per-line unit costs - POST
/pos/{poId}/landed-costsAllocate an additional cost to an authorised - POST
/pos/{poId}/costsJournal an additional cost on the order by hand - POST
/pos/{poId}/costs/{costId}/reverseReverse a cost on the order - GET
/supplier-paymentsMoney paid to suppliers - POST
/supplier-paymentsRecord money paid to a supplier against what one or more of its purchase orders owe - POST
/pos/{poId}/closeClose a purchase order: done, read only from here - POST
/pos/{poId}/issuesReport what was wrong with a delivery - PUT
/pos/{poId}/shipments/{shipmentId}Record an inbound shipment carrying goods of the order - POST
/pos/{poId}/shipments/{shipmentId}/trackingRecord what the carrier said about an inbound shipment - GET
/supplier-performanceThe supplier scorecard - GET
/supplier-performance/{supplierId}One supplier's performance in depth - GET
/arrivalsWhen each open purchase order will really arrive - GET
/restock-etaWhen a unit of each SKU is likely to be in hand
settings
Organization-level purchasing policy.
- GET
/settingsThe organization's purchasing policy - PUT
/settingsReplace the organization's purchasing policy
events
The purchasing append-only event log.