Zudo Works

Sales and purchasing endpoints

Method & pathBodyPermission
GET /customers · POST · PATCH /:id · `POST /:id/deactivatereactivate`name, email?, phone?, billing_address?, shipping_address?, notes?sales.read / sales.write
GET /sales-orders · GET /sales-orders/:idfilters status, customer_id, from, to, searchsales.read
GET /sales-orders/reservationsreserved quantity per item from confirmed orderssales.read
POST /sales-orderscustomer_id, order_date, due_date?, customer_reference?, notes?, lines[{ item_id, quantity, unit_price, notes? }] → QT-…sales.write
PUT /sales-orders/:idsame (draft / sent only)sales.write
`POST /sales-orders/:id/sendconfirmfulfilcancel`— (confirm allocates SO-… and reserves stock)sales.write
GET /vendors · POST · PATCH /:id · `POST /:id/deactivatereactivate`name, email?, phone?, address?, payment_terms?, notes?purchasing.read / purchasing.write
GET /purchase-orders · GET /purchase-orders/:idfilters status, vendor_id, from, to, searchpurchasing.read
POST /purchase-ordersvendor_id, order_date, expected_date?, vendor_reference?, notes?, lines[{ item_id, quantity, unit_cost, notes? }] → PO-…purchasing.write
PUT /purchase-orders/:idsame (drafts)purchasing.write
`POST /purchase-orders/:id/sendcancel`—purchasing.write
POST /purchase-orders/:id/receivewarehouse_id, movement_date, idempotency_key, lines[{ line_id, quantity }] → posts RCV; partial allowedstock.post
GET /planning/requirementsper item: demand, supply, shortage, make-or-buyplanning.read
POST /planning/purchase-ordersvendor_id, item_ids[], order_date? → draft PO from shortagespurchasing.write

Last updated