Skip to main content
Version: v1.0.0(int)

E098: Complete in-transit transfer

POST /api/materials-inventory/transfers/:ref/complete

Records the inbound leg of an in-transit transfer, closing the pair. Triggered from the Materials Inventory Transfers page, flipping an in-transit row to "Completed".

Authentication

Standard tenant route. Requires Authorization: Bearer <firebase-id-token> and X-Org-Id: <org-id>. Access: Member. Also reachable with an org-scoped PAT.

Request

No body. :ref is the transfer's TFR-MI-<seq> code (returned by E097). The destination is taken from the outbound row's to_location_id — the completer cannot pick a different one.

{ "eventDate": "2026-06-10T00:00:00Z", "notes": "..." }

An optional body may override the receipt's eventDate / notes.

Response — 200 OK

{
"id": "uuid",
"code": "MIL-002",
"materialId": "uuid",
"locationId": "uuid",
"eventType": "RECEIVE",
"quantity": "100",
"ref": "TFR-MI-042",
"toLocationId": null,
"createdAt": "2026-06-10T00:00:00Z"
}

The paired RECEIVE row, written at the destination (location_id) with the same ref as the outbound TRANSFER.

Errors

HTTPcodeCondition
404not_foundNo transfer with that ref.
409invalid_transitionTransfer already completed (or voided).

Workflow

Calls W098 Complete in-transit transfer.