Intakes
Create a intake
Creates a intake from the header and any items in the body, and returns the stored document (201, `Location` header set). Reserves the next internal document number. Requires `Permissions.Intake.Create`.
Search intakes
Returns one page of intakes matching the filter. Body is a `PaginationRequest` — see the *Filtering & pagination* concept in the developer docs. Sortable and limitable fields depend on the instance's data-grid view. Requires `Permissions.Intake.View`.
Get a intake
Returns one intake by `documentId`, with its header, items and item variants. Requires `Permissions.Intake.View`.
Delete a intake
Deletes the intake together with its items and item variants. Cannot be undone. Call `GET {documentId}/check-delete` first to find out whether the delete is allowed. Requires `Permissions.Intake.Delete`.
Update a intake
Updates the intake header and the items sent in the body. Pass `removeItemsNotInRequest=true` to also delete the items the body leaves out. Requires `Permissions.Intake.Update`.
Cancel an intake
Reverses a processed intake: creates a copy with negated quantities, processes it so the stock movement is undone, marks the original as cancelled, and returns the reversing document. Requires `Permissions.Intake.Update`.
Check whether a intake can be deleted
Advisory pre-flight for `DELETE {documentId}`. `canBeDeleted` is false when `blockingReasons` holds `HEADER_BLOCKED` or `ITEMS_BLOCKED`. The delete re-checks inside its own transaction, so a positive answer here is an indication rather than a guarantee. Requires `Permissions.Intake.Delete`.
Add items to a intake
Appends the items in the body to an existing intake and recalculates the document totals. Requires `Permissions.Intake.Create`.
Delete intake items
Deletes the items listed in `itemIds` and recalculates the document totals. Call `GET {documentId}/items/check-delete` first to find out whether the delete is allowed. Requires `Permissions.Intake.Delete`.
Check whether intake items can be deleted
Advisory pre-flight for `DELETE {documentId}/items`. `blockingReasons` holds `ITEMS_BLOCKED` when at least one id in `itemIds` is still referenced elsewhere. At most 1000 ids per call. Requires `Permissions.Intake.Delete`.
Update a intake item
Replaces one item of the intake, identified by `itemId`, and recalculates the document totals. Requires `Permissions.Intake.Update`.
Delete a intake item variant
Deletes one variant row (a size/colour breakdown) of an item and recalculates the document totals. Call the matching `check-delete` endpoint first to find out whether the delete is allowed. Requires `Permissions.Intake.Delete`.
Check whether an item variant can be deleted
Advisory pre-flight for `DELETE {documentId}/items/{itemId}/variants/{variantId}`. `blockingReasons` holds `ITEM_VARIANT_BLOCKED` when the variant is still referenced elsewhere. Requires `Permissions.Intake.Delete`.
Get the lock state of a intake
Returns whether the intake is locked against concurrent edits and, when it is, the name of the user holding the lock. Requires `Permissions.Intake.View`.
Lock a intake
Locks the intake for the calling user so other users cannot edit or process it. Returns 400 when it is already locked. Release it with `DELETE {documentId}/lock`. Requires `Permissions.Intake.Update`.
Unlock a intake
Releases the lock on the intake. Returns 400 when the lock belongs to another user. Requires `Permissions.Intake.Update`.
Get a intake as PDF
Renders the intake with its configured print template and returns `application/pdf` inline. 404 when the document has no printable output. Requires `Permissions.Intake.View`.
Process a intake
Posts the intake to stock, applying the movement of every item, and marks the document as processed. Fails when the document is already processed, or when another user holds its lock. Reverse a processed intake with `POST {documentId}/cancel`. Requires `Permissions.Intake.Update`.
Process a write-off POST
Posts the write-off to stock, applying the movement of every item, and marks the document as processed. Fails when the document is already processed, or when another user holds its lock. Processing cannot be reversed through this API. Requires `Permissions.WriteOffs.Update`.
Create a intake POST
Creates a intake from the header and any items in the body, and returns the stored document (201, `Location` header set). Reserves the next internal document number. Requires `Permissions.Intake.Create`.