WinShopAPI docs
ReferenceDocuments

Internal transfer

Create a internal transfer

Creates a internal transfer 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.InternalTransfer.Create`.

Search internal transfers

Returns one page of internal transfers 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.InternalTransfer.View`.

Get a internal transfer

Returns one internal transfer by `documentId`, with its header, items and item variants. Requires `Permissions.InternalTransfer.View`.

Delete a internal transfer

Deletes the internal transfer 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.InternalTransfer.Delete`.

Update a internal transfer

Updates the internal transfer header and the items sent in the body. Pass `removeItemsNotInRequest=true` to also delete the items the body leaves out. Requires `Permissions.InternalTransfer.Update`.

Check whether a internal transfer 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.InternalTransfer.Delete`.

Process a internal transfer (deprecated)

**Deprecated.** Use `POST {documentId}/process` instead — this alias behaves identically and will be removed. Requires `Permissions.InternalTransfer.Update`.

Add items to a internal transfer

Appends the items in the body to an existing internal transfer and recalculates the document totals. Requires `Permissions.InternalTransfer.Create`.

Delete internal transfer 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.InternalTransfer.Delete`.

Check whether internal transfer 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.InternalTransfer.Delete`.

Update a internal transfer item

Replaces one item of the internal transfer, identified by `itemId`, and recalculates the document totals. Requires `Permissions.InternalTransfer.Update`.

Delete a internal transfer 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.InternalTransfer.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.InternalTransfer.Delete`.

Get the lock state of a internal transfer

Returns whether the internal transfer is locked against concurrent edits and, when it is, the name of the user holding the lock. Requires `Permissions.InternalTransfer.View`.

Lock a internal transfer

Locks the internal transfer 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.InternalTransfer.Update`.

Unlock a internal transfer

Releases the lock on the internal transfer. Returns 400 when the lock belongs to another user. Requires `Permissions.InternalTransfer.Update`.

Get a internal transfer as PDF

Renders the internal transfer with its configured print template and returns `application/pdf` inline. 404 when the document has no printable output. Requires `Permissions.InternalTransfer.View`.

Process a internal transfer

Posts the internal transfer 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.InternalTransfer.Update`.