SIGNALS Documentation
API Reference

Purchase Orders

Event-sourced purchase orders with send, receive, and cancel lifecycle.

Purchase Orders API

Event-sourced purchase orders for sub-hire procurement with send, receive, and cancel lifecycle.

Endpoints

Method URL Description
GET /api/v1/purchase_orders List purchase orders
GET /api/v1/purchase_orders/{id} Show a purchase order
POST /api/v1/purchase_orders Create draft PO
PUT /api/v1/purchase_orders/{id} Update draft PO
DELETE /api/v1/purchase_orders/{id} Delete draft PO
POST /api/v1/purchase_orders/{id}/send Send to supplier
POST /api/v1/purchase_orders/{id}/receive Record receipt
POST /api/v1/purchase_orders/{id}/cancel Cancel PO

Authentication

Requires purchase_orders:read (GET) or purchase_orders:write (POST/PUT/DELETE) with purchase_orders.view, purchase_orders.create, purchase_orders.edit, purchase_orders.delete, purchase_orders.send, purchase_orders.receive permissions as applicable.

Cost fields require costs.view — users without it see POs without cost breakdown.

List purchase orders

GET /api/v1/purchase_orders

Filters

number, status, po_type, supplier_id, warehouse_id, rental_id, expected_at, starts_at, ends_at, sent_at, received_at, cancelled_at, created_at, updated_at.

Includes

?include=supplier,warehouse,rental,items

Receive

POST /api/v1/purchase_orders/{id}/receive

Records goods received and triggers virtual stock intake workflow. Body validates receipt lines and quantities per ReceivePurchaseOrderData.

Response shape

Money totals as decimal strings. Collection key: purchase_orders; singular: purchase_order.

Webhooks

purchase_order.created, purchase_order.sent, purchase_order.received, purchase_order.cancelled.