Skip to main content
Follow a transfer on Transfers. The item stays on Inventory. Ownership has moved when Get Inventory Item returns in_vault and fboAccountId equal to toFboAccountId. That is transfer.completed.

Create

POST /transfers. Required fields:
  • fromFboAccountId
  • toFboAccountId — must differ from the source
  • items — at least one entry, each with inventoryItemId and reason (request, trade, or rebalance)
Each item must be in_vault on the source account. inventoryItemId values must be unique. An item already on an open transfer or an open outbound request is rejected. The response status is pending_review. Webhook: transfer.status_changed with toStatus: "pending_review". The item stays in_vault on the source account. The inventory resource has no transfer id. Read the transfer from Get Transfer.
approve: true returns approved and approvedBySystem: true. The webhook toStatus is approved. There is no pending_review event. The item is unchanged. Cancel Transfer is valid only while status is pending_review.

Statuses

Transfer status on list, get, and transfer.status_changed: pending_transfer is an inventory status. Handle it if you receive it. It can be skipped. transfer.completed and transfer.status_changed with toStatus: "completed" are the same moment. That is when every item on the transfer has moved.