in_vault and fboAccountId equal to toFboAccountId. That is transfer.completed.
Create
POST /transfers. Required fields:
fromFboAccountIdtoFboAccountId— must differ from the sourceitems— at least one entry, each withinventoryItemIdandreason(request,trade, orrebalance)
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
Transferstatus 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.