Hoppa till innehållet

API and integrations Reference Transfer orders

Svenska

Transfer orders

Stock transfers between warehouses, from release through shipping to receipt. Addressed by orderNumber.

7 calls GET POST Base URL https://api.erp.fluit.cloud/preview

Authentication, error codes, rate limits, idempotency and pagination apply to every call and are documented once under Getting started.

GET /transfer-orders

List transfer orders

Returns a paginated list of stock transfers, sorted by orderNumber. ?modifiedSince= returns both created and modified transfers, so it can be used for delta sync; deletions are reported by GET /preview/deletions.

Query parameters

Field Type Description
search string Matches the order number, case-insensitively and on partial words.
status enum Filters on how far the transfer has got. Draft Released Picking ReadyToShip InTransit PartiallyReceived Received Cancelled
fromWarehouseCode string Returns only the transfers leaving this warehouse.
toWarehouseCode string Returns only the transfers arriving at this warehouse.
modifiedSince string(date-time) Returns only records created or changed at or after this instant (ISO 8601 UTC datetime). A change anywhere inside the record counts, including on its lines.
page integer Page to return, 1-based. Default 1.
pageSize integer Number of records per page. Default 50, max 200.

Responses

200 PagedResult_PublicTransferOrderResponse

Paginated response: the fields below sit in items[], wrapped in totalCount, page, pageSize, totalPages, hasPreviousPage and hasNextPage. Paginated

Field Type Description
createdDate string(date-time) UTC timestamp when the transfer was created.
fromWarehouseCode string · nullable Code of the warehouse the stock leaves.
lines TransferOrderLine[] · nullable The transfer's lines.
links Links Hypermedia links for a public API resource. Exposed as a computed `links` property on the public response DTOs so that create and read responses carry the same self-reference — the canonical URL is derived from the business key already present on the DTO and can never drift from the route it points at.
modifiedDate string(date-time) · nullable UTC timestamp when the transfer was last modified. Null if never modified.
notes string · nullable Free-text notes. Null if not set.
orderNumber string · nullable Unique transfer order number.
receivedDate string(date-time) · nullable UTC timestamp when the transfer was received. Null until received.
requestedDate string(date) · nullable Requested arrival date (ISO 8601 date). Null if not set.
shippedDate string(date-time) · nullable UTC timestamp when the transfer was shipped. Null until shipped.
shippingMethodName string · nullable Name of the shipping method / carrier. Null if not set.
status enum Status of a stock transfer between warehouses. Draft Released Picking ReadyToShip InTransit PartiallyReceived Received Cancelled
toWarehouseCode string · nullable Code of the warehouse the stock arrives at.
400 ProblemDetails ?status= got a value outside its list.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 Errors

Examples

curl
curl "https://api.erp.fluit.cloud/preview/transfer-orders" \
  -H "X-Api-Key: fluit_live_sk_..."
Response 200
{
  "hasNextPage": true,
  "hasPreviousPage": true,
  "items": [
    {
      "createdDate": "2026-06-11T09:24:13.418",
      "fromWarehouseCode": "MAIN",
      "lines": [
        {
          "fromLocationCode": "STD",
          "itemName": "Widget A",
          "itemNumber": "WIDGET-A",
          "lineNumber": 1,
          "notes": "string",
          "pickedQuantity": "10",
          "receivedQuantity": "10",
          "requestedQuantity": "10",
          "shippedQuantity": "10",
          "toLocationCode": "STD"
        }
      ],
      "links": {
        "self": "string"
      },
      "modifiedDate": "2026-06-11T09:24:13.418",
      "notes": "string",
      "orderNumber": "SO-2026-1041",
      "receivedDate": "2026-06-11T09:24:13.418",
      "requestedDate": "2026-06-11",
      "shippedDate": "2026-06-11T09:24:13.418",
      "shippingMethodName": "Parcel, next day",
      "status": "Draft",
      "toWarehouseCode": "MAIN"
    }
  ],
  "page": 1,
  "pageSize": 50,
  "totalCount": 137,
  "totalPages": 3
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

POST /transfer-orders

Create a transfer order

Creates a stock transfer between two warehouses in Draft status and returns it in the same shape as GET /preview/transfer-orders/{orderNumber}. The transfer and its lines are created in one transaction — if any line fails, nothing is created.

Show the full description

Release it with POST /preview/transfer-orders/{orderNumber}/release to allocate stock and let the source warehouse pick. To move stock between locations inside one warehouse, use POST /preview/inventory/movements instead. Known error codes: Warehouse.NotFound, Item.NotFound, TransferOrder.SameWarehouse.

transfer-orders:write Requires Idempotency-Key

Body required

Field Type Description
fromWarehouseCode Required string Warehouse the stock leaves.
lines CreateTransferOrderLine[] · nullable Lines to create atomically with the transfer.
notes string · nullable Free-text notes on the transfer.
requestedDate string(date) · nullable Requested arrival date.
shippingMethodCode string · nullable Shipping method / carrier code.
toWarehouseCode Required string Warehouse the stock arrives at. Must differ from the source.

Responses

201 PublicTransferOrderResponse
  • Location — URL of the newly created resource.
Field Type Description
createdDate string(date-time) UTC timestamp when the transfer was created.
fromWarehouseCode string · nullable Code of the warehouse the stock leaves.
lines TransferOrderLine[] · nullable The transfer's lines.
links Links Hypermedia links for a public API resource. Exposed as a computed `links` property on the public response DTOs so that create and read responses carry the same self-reference — the canonical URL is derived from the business key already present on the DTO and can never drift from the route it points at.
modifiedDate string(date-time) · nullable UTC timestamp when the transfer was last modified. Null if never modified.
notes string · nullable Free-text notes. Null if not set.
orderNumber string · nullable Unique transfer order number.
receivedDate string(date-time) · nullable UTC timestamp when the transfer was received. Null until received.
requestedDate string(date) · nullable Requested arrival date (ISO 8601 date). Null if not set.
shippedDate string(date-time) · nullable UTC timestamp when the transfer was shipped. Null until shipped.
shippingMethodName string · nullable Name of the shipping method / carrier. Null if not set.
status enum Status of a stock transfer between warehouses. Draft Released Picking ReadyToShip InTransit PartiallyReceived Received Cancelled
toWarehouseCode string · nullable Code of the warehouse the stock arrives at.
400 ProblemDetails A warehouse code or item number does not exist, the source and destination warehouse are the same, or a field failed validation.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 409 Errors

Examples

curl
curl -X POST "https://api.erp.fluit.cloud/preview/transfer-orders" \
  -H "X-Api-Key: fluit_live_sk_..." \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d @body.json
Dated with locations and carrier
{
  "fromWarehouseCode": "HUVUD",
  "lines": [
    {
      "fromLocationCode": "A-01-01",
      "itemNumber": "ART-1001",
      "quantity": "20",
      "toLocationCode": "INKOMMANDE"
    }
  ],
  "notes": "Weekly store replenishment",
  "requestedDate": "2026-09-01",
  "shippingMethodCode": "INTERN-BIL",
  "toWarehouseCode": "BUTIK-1"
}
One line
{
  "fromWarehouseCode": "HUVUD",
  "lines": [
    {
      "itemNumber": "ART-1001",
      "quantity": "20"
    }
  ],
  "toWarehouseCode": "BUTIK-1"
}
Response 201
{
  "createdDate": "2026-06-11T09:24:13.418",
  "fromWarehouseCode": "MAIN",
  "lines": [
    {
      "fromLocationCode": "STD",
      "itemName": "Widget A",
      "itemNumber": "WIDGET-A",
      "lineNumber": 1,
      "notes": "string",
      "pickedQuantity": "10",
      "receivedQuantity": "10",
      "requestedQuantity": "10",
      "shippedQuantity": "10",
      "toLocationCode": "STD"
    }
  ],
  "links": {
    "self": "string"
  },
  "modifiedDate": "2026-06-11T09:24:13.418",
  "notes": "string",
  "orderNumber": "SO-2026-1041",
  "receivedDate": "2026-06-11T09:24:13.418",
  "requestedDate": "2026-06-11",
  "shippedDate": "2026-06-11T09:24:13.418",
  "shippingMethodName": "Parcel, next day",
  "status": "Draft",
  "toWarehouseCode": "MAIN"
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

GET /transfer-orders/{orderNumber}

Get a transfer order by order number

Returns a stock transfer with its lines, including the requested, picked, shipped and received quantity per line — the four numbers that together say where the goods currently are. Responses carry a weak ETag; pass it back in If-None-Match to get 304 Not Modified while the record is unchanged.

transfer-orders:read Supports ETag

Path parameters

Field Type Description
orderNumber Required string Order number of the transfer order to read.

Responses

200 PublicTransferOrderResponse
  • ETag — Weak validator for this representation. Pass it back in If-None-Match to get 304 Not Modified while the record is unchanged.
Field Type Description
createdDate string(date-time) UTC timestamp when the transfer was created.
fromWarehouseCode string · nullable Code of the warehouse the stock leaves.
lines TransferOrderLine[] · nullable The transfer's lines.
links Links Hypermedia links for a public API resource. Exposed as a computed `links` property on the public response DTOs so that create and read responses carry the same self-reference — the canonical URL is derived from the business key already present on the DTO and can never drift from the route it points at.
modifiedDate string(date-time) · nullable UTC timestamp when the transfer was last modified. Null if never modified.
notes string · nullable Free-text notes. Null if not set.
orderNumber string · nullable Unique transfer order number.
receivedDate string(date-time) · nullable UTC timestamp when the transfer was received. Null until received.
requestedDate string(date) · nullable Requested arrival date (ISO 8601 date). Null if not set.
shippedDate string(date-time) · nullable UTC timestamp when the transfer was shipped. Null until shipped.
shippingMethodName string · nullable Name of the shipping method / carrier. Null if not set.
status enum Status of a stock transfer between warehouses. Draft Released Picking ReadyToShip InTransit PartiallyReceived Received Cancelled
toWarehouseCode string · nullable Code of the warehouse the stock arrives at.
304 Empty body.
  • ETag — Weak validator for this representation. Pass it back in If-None-Match to get 304 Not Modified while the record is unchanged.
404 ProblemDetails No transfer order with that order number.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 Errors

Examples

curl
curl "https://api.erp.fluit.cloud/preview/transfer-orders/{orderNumber}" \
  -H "X-Api-Key: fluit_live_sk_..."
Response 200
{
  "createdDate": "2026-06-11T09:24:13.418",
  "fromWarehouseCode": "MAIN",
  "lines": [
    {
      "fromLocationCode": "STD",
      "itemName": "Widget A",
      "itemNumber": "WIDGET-A",
      "lineNumber": 1,
      "notes": "string",
      "pickedQuantity": "10",
      "receivedQuantity": "10",
      "requestedQuantity": "10",
      "shippedQuantity": "10",
      "toLocationCode": "STD"
    }
  ],
  "links": {
    "self": "string"
  },
  "modifiedDate": "2026-06-11T09:24:13.418",
  "notes": "string",
  "orderNumber": "SO-2026-1041",
  "receivedDate": "2026-06-11T09:24:13.418",
  "requestedDate": "2026-06-11",
  "shippedDate": "2026-06-11T09:24:13.418",
  "shippingMethodName": "Parcel, next day",
  "status": "Draft",
  "toWarehouseCode": "MAIN"
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

GET /transfer-orders/{orderNumber}/lines

List transfer order lines

Returns the lines on a transfer order, sorted by line number ascending. The same lines are also embedded in GET /preview/transfer-orders/{orderNumber}; this endpoint exists so that a transfer order with many lines can be paged through rather than arriving as one unbounded array.

Show the full description

Returns 404 TransferOrder.NotFound if no transfer order has that number.

transfer-orders:read Paginated

Path parameters

Field Type Description
orderNumber Required string Order number of the transfer order whose lines to list.

Query parameters

Field Type Description
page integer Page to return, 1-based. Default 1.
pageSize integer Number of records per page. Default 50, max 200.

Responses

200 PagedResult_PublicTransferOrderLineResponse

Paginated response: the fields below sit in items[], wrapped in totalCount, page, pageSize, totalPages, hasPreviousPage and hasNextPage. Paginated

Field Type Description
fromLocationCode string · nullable Source location code. Null when not pinned to a location.
itemName string · nullable Display name of the item.
itemNumber string · nullable Item number being transferred.
lineNumber integer Line number, unique within the transfer order.
notes string · nullable Free-text notes on the line. Null if not set.
pickedQuantity decimal Quantity picked at the source warehouse. Serialised as a decimal string.
receivedQuantity decimal Quantity received at the destination. Serialised as a decimal string.
requestedQuantity decimal Quantity requested. Serialised as a decimal string.
shippedQuantity decimal Quantity shipped. Serialised as a decimal string.
toLocationCode string · nullable Destination location code. Null when not pinned to a location.
404 ProblemDetails No transfer order with that order number.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 Errors

Examples

curl
curl "https://api.erp.fluit.cloud/preview/transfer-orders/{orderNumber}/lines" \
  -H "X-Api-Key: fluit_live_sk_..."
Response 200
{
  "hasNextPage": true,
  "hasPreviousPage": true,
  "items": [
    {
      "fromLocationCode": "STD",
      "itemName": "Widget A",
      "itemNumber": "WIDGET-A",
      "lineNumber": 1,
      "notes": "string",
      "pickedQuantity": "10",
      "receivedQuantity": "10",
      "requestedQuantity": "10",
      "shippedQuantity": "10",
      "toLocationCode": "STD"
    }
  ],
  "page": 1,
  "pageSize": 50,
  "totalCount": 137,
  "totalPages": 3
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

POST /transfer-orders/{orderNumber}/lines/{lineNumber}/receive

Receive a transfer order line

Books a received quantity into the destination warehouse and returns the whole transfer order so the caller can see the remaining quantities without a second request. Receive lines one at a time; partial receipts are allowed and move the transfer to PartiallyReceived until every line is fully received.

Show the full description

You cannot receive more than was shipped — ship the quantity first. toLocationCode must be a location in the destination warehouse. Known error codes: TransferOrder.NotFound, TransferOrderLine.NotFound, TransferOrder.CannotReceiveInStatus, TransferOrder.CannotReceiveMoreThanShipped.

transfer-orders:write Requires Idempotency-Key

Path parameters

Field Type Description
orderNumber Required string Order number of the transfer order the goods arrived on.
lineNumber Required integer Line number of the line being received, as reported in lineNumber on the transfer order.

Body required

Field Type Description
batchNumber string · nullable Batch / lot number, for batch-tracked items.
quantity decimal Quantity received. Must be greater than zero and at most the shipped quantity.
serialNumber string · nullable Serial number, for serial-tracked items.
toLocationCode string · nullable Location to receive into. Defaults to the line's destination location.

Responses

200 PublicTransferOrderResponse
Field Type Description
createdDate string(date-time) UTC timestamp when the transfer was created.
fromWarehouseCode string · nullable Code of the warehouse the stock leaves.
lines TransferOrderLine[] · nullable The transfer's lines.
links Links Hypermedia links for a public API resource. Exposed as a computed `links` property on the public response DTOs so that create and read responses carry the same self-reference — the canonical URL is derived from the business key already present on the DTO and can never drift from the route it points at.
modifiedDate string(date-time) · nullable UTC timestamp when the transfer was last modified. Null if never modified.
notes string · nullable Free-text notes. Null if not set.
orderNumber string · nullable Unique transfer order number.
receivedDate string(date-time) · nullable UTC timestamp when the transfer was received. Null until received.
requestedDate string(date) · nullable Requested arrival date (ISO 8601 date). Null if not set.
shippedDate string(date-time) · nullable UTC timestamp when the transfer was shipped. Null until shipped.
shippingMethodName string · nullable Name of the shipping method / carrier. Null if not set.
status enum Status of a stock transfer between warehouses. Draft Released Picking ReadyToShip InTransit PartiallyReceived Received Cancelled
toWarehouseCode string · nullable Code of the warehouse the stock arrives at.
400 ProblemDetails The quantity is zero or less, it exceeds what was shipped, or toLocationCode is not a location in the destination warehouse.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable
404 ProblemDetails No transfer order with that order number, or no line with that line number on it.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable
409 ProblemDetails The transfer is in a status that cannot receive goods.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 Errors

Examples

curl
curl -X POST "https://api.erp.fluit.cloud/preview/transfer-orders/{orderNumber}/lines/{lineNumber}/receive" \
  -H "X-Api-Key: fluit_live_sk_..." \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d @body.json
Partial receipt into a named location
{
  "batchNumber": "L-2026-14",
  "quantity": "12",
  "toLocationCode": "INKOMMANDE"
}
Receive the full quantity
{
  "quantity": "20"
}
Response 200
{
  "createdDate": "2026-06-11T09:24:13.418",
  "fromWarehouseCode": "MAIN",
  "lines": [
    {
      "fromLocationCode": "STD",
      "itemName": "Widget A",
      "itemNumber": "WIDGET-A",
      "lineNumber": 1,
      "notes": "string",
      "pickedQuantity": "10",
      "receivedQuantity": "10",
      "requestedQuantity": "10",
      "shippedQuantity": "10",
      "toLocationCode": "STD"
    }
  ],
  "links": {
    "self": "string"
  },
  "modifiedDate": "2026-06-11T09:24:13.418",
  "notes": "string",
  "orderNumber": "SO-2026-1041",
  "receivedDate": "2026-06-11T09:24:13.418",
  "requestedDate": "2026-06-11",
  "shippedDate": "2026-06-11T09:24:13.418",
  "shippingMethodName": "Parcel, next day",
  "status": "Draft",
  "toWarehouseCode": "MAIN"
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

POST /transfer-orders/{orderNumber}/release

Release a transfer order

Moves the transfer from Draft to Released, which allocates stock at the source warehouse and makes the lines available for picking.

transfer-orders:write Requires Idempotency-Key

Path parameters

Field Type Description
orderNumber Required string Order number of the draft transfer order to release.

Responses

204 Empty body.
400 ProblemDetails The transfer is not in Draft, or it has no lines to release.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable
404 ProblemDetails No transfer order with that order number.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 409 Errors

Examples

curl
curl -X POST "https://api.erp.fluit.cloud/preview/transfer-orders/{orderNumber}/release" \
  -H "X-Api-Key: fluit_live_sk_..." \
  -H "Idempotency-Key: $(uuidgen)"
Response 400
{
  "detail": "string",
  "instance": "string",
  "status": 42,
  "title": "string",
  "type": "string"
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

POST /transfer-orders/{orderNumber}/ship

Ship a transfer order

Ships the picked quantities from the source warehouse: every line's shipped quantity is set to its picked quantity, the stock leaves the source warehouse and the transfer moves to InTransit. Lines that were not picked ship as zero, so pick before shipping if you expect the full quantity to move.

transfer-orders:write Requires Idempotency-Key

Path parameters

Field Type Description
orderNumber Required string Order number of the picked transfer order to ship.

Responses

204 Empty body.
400 ProblemDetails Not every line has been picked, so there is nothing to ship on at least one of them.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable
404 ProblemDetails No transfer order with that order number.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable
409 ProblemDetails The transfer is neither ReadyToShip nor Picking, so there is nothing to ship.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 Errors

Examples

curl
curl -X POST "https://api.erp.fluit.cloud/preview/transfer-orders/{orderNumber}/ship" \
  -H "X-Api-Key: fluit_live_sk_..." \
  -H "Idempotency-Key: $(uuidgen)"
Response 400
{
  "detail": "string",
  "instance": "string",
  "status": 42,
  "title": "string",
  "type": "string"
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

Schemas

The objects this group's calls refer to. The field tables above go one level deep and link here rather than repeating the same schema on every endpoint.

CreateTransferOrderLine

CreateTransferOrderLineInput
Field Type Description
fromLocationCode string · nullable Source location. Defaults to the source warehouse's pick logic.
itemNumber Required string Item to transfer.
notes string · nullable Free-text notes on the line.
quantity decimal Quantity to transfer. Must be greater than zero.
toLocationCode string · nullable Destination location. Defaults to the destination warehouse's receiving location.

TransferOrderLine

PublicTransferOrderLineResponse

A line on a stock transfer.

Field Type Description
fromLocationCode string · nullable Source location code. Null when not pinned to a location.
itemName string · nullable Display name of the item.
itemNumber string · nullable Item number being transferred.
lineNumber integer Line number, unique within the transfer order.
notes string · nullable Free-text notes on the line. Null if not set.
pickedQuantity decimal Quantity picked at the source warehouse. Serialised as a decimal string.
receivedQuantity decimal Quantity received at the destination. Serialised as a decimal string.
requestedQuantity decimal Quantity requested. Serialised as a decimal string.
shippedQuantity decimal Quantity shipped. Serialised as a decimal string.
toLocationCode string · nullable Destination location code. Null when not pinned to a location.