These are example use cases, chosen because they cover the most common integration flow. For the complete list of resources, endpoints, payloads, and fields, the API Reference is the single source of truth — always check it. The details here are deliberately kept high-level so they don’t drift from the canonical schema.
Create products first
Before any order or receipt can reference a product, the product must exist in Clarus. When a product is created upstream for a customer that stores stock in the warehouse, create the same product in Clarus and store its returned ID against the source record. Post the product to the products endpoint, then keep the returned Clarus product ID — future calls reference it directly without another lookup. Put your own product ID inexternal_system_reference1 for reconciliation.
Create goods in receipts
When an inbound order is created upstream, push it to Clarus so the warehouse team can receive against it.Look up the product storage unit
A product can have multiple storage units (single units, cases, pallets). Before creating the receipt, query the product’s storage units and use the one with priority 0. That value goes into the storage unit field on the receipt line.
Post the receipt
Send the receipt header (reference, expected date, warehouse, account) with one or more lines. Provide line-level batch, pallet, and storage-unit quantities only if you have them — they can be captured during receipt instead.
Create sales orders (goods out)
When a sales order is created upstream, push it to Clarus so it can be picked and dispatched. Send the order header, one or more lines, and the delivery address.- The delivery address is passed as a related address block. Use an ISO 3166-1 alpha-2 country code, for example
GB,BE, orDE. - Use the generic reference fields (
string1–5, and so on) for data such as Incoterm or customs status, as agreed for your integration. - Store the returned goods out ID, then track dispatch progress with webhooks or polling.

