---
title: "Read the state of a network transfer"
method: GET
path: "/network-transfers/{transfer_id}"
tags: ["Network Transfers"]
---

# Read the state of a network transfer

`GET /network-transfers/{transfer_id}`

## Request

- Base URL: `https://developers.ozav.io/v2`
- URL: `https://developers.ozav.io/v2/network-transfers/{transfer_id}`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

**Reads a transfer; creating one is not callable** (`coming_soon`). This route returns the state of a
network transfer that exists; `POST /network-transfers` answers `403 INSUFFICIENT_SCOPE` for every key.

A transfer of another holder answers `404`. `in_progress` covers everything between leaving the origin
network and arriving at the destination. While it is in progress, do not retry: a second request would
move the amount again.

## Path parameters

- `transfer_id` string, uuid, required

## Response `200`

The transfer state.

- object
  - `data` NetworkTransfer: One network transfer of your own balance. `status` is smaller than the internal state machine. There is no "expired": internally that means the attestation window passed and will be requested again, and showing the word to a client would say the money was lost about a transfer that is going fine.
    - `id` string, uuid
    - `status` 'pending' | 'running' | 'submitted' | 'refused' | 'failed' | 'indeterminate': Six states, and the difference between them is money, so it is stated one by one. This mirrors `YieldApplication.status`. `pending` - accepted and queued. Nothing has been attempted yet. `running` - being attempted right now. Wait; do not order again. `submitted` - it left the source network and is on its way. This is not a failure and not a completion: the arrival is confirmed on the destination network, and this field does not yet report it. `refused` - a gate declined it and no money left your balance. `detail` says which gate. Fixing what it names and ordering again is safe. `failed` - it was attempted and nothing left your balance, and that is known. Safe to order again. `indeterminate` - it stopped without knowing whether the amount left your balance. Do not order it again: a second attempt may move the amount twice, and moving between networks cannot be undone. Support has been notified and a person confirms it on the network.
    - `source_chain` string
    - `destination_chain` string
    - `asset` string
    - `amount` string: Decimal integer string, smallest unit of `asset`.
    - `spread_bps` integer, nullable: The spread rate that applies to this transfer, in integer basis points, frozen when it was accepted. It is the rate, not an amount deducted: the transfer moves the full `amount` you requested. Null until then. The network cost is a separate line and is never folded into this.
    - `delivery` 'in_progress' | 'completed' | 'failed' | 'null', nullable: Whether the amount arrived on the destination network. This is a different question from `status`, and both matter. `status` is about the order: accepted, running, submitted, refused, failed, indeterminate. It stops at `submitted` once the amount leaves the source network, and stays there. `delivery` is about the money: `in_progress` while it is crossing, `completed` once it is credited on the destination network, and `failed` if the crossing ended without crediting. `null` means there is no crossing yet: the order has not left. It does not mean the amount failed to arrive.
    - `detail` string, nullable: Why, for `refused`, `failed` and `indeterminate`. Null otherwise. For `indeterminate` it carries the do-not-retry text.
    - `created_at` string, date-time

## Other responses

- `401`: Missing or invalid API key.
- `404`: The resource does not exist, is not visible to the caller, or the id was malformed for this position (see "Resource ids" under Errors). These share one status; `code` and `message` tell them apart.

---

[API](https://skmtc.dev/ozav/apis/ozav-api.md) - [All operations](https://skmtc.dev/ozav/apis/ozav-api/llms.txt) - [OpenAPI document](https://skmtc.dev/ozav/apis/ozav-api/revisions/4133dc2109d7?raw)
