> ## Documentation Index
> Fetch the complete documentation index at: https://docs.endstate.io/llms.txt
> Use this file to discover all available pages before exploring further.

# session.transfers.get

> Returns the status of a transfer. Accepts either an API key or a chip-tap session token. Poll until status is `confirmed`.

```ts theme={null}
get(transferId: string, options?: RequestOptions): Promise<Transfer>
```

|             |                                                                                              |
| ----------- | -------------------------------------------------------------------------------------------- |
| Endpoint    | [`GET /v1/units/{unit_id}/transfers/{transfer_id}`](/api-reference/transfers/get-a-transfer) |
| Credential  | Secret key (`end_sk_...`), Session token (`end_sess_...`)                                    |
| Retry class | `read`                                                                                       |

Retried on network failure, timeout, `429`, and `5xx`.

## Example

```ts theme={null}
const result = await session.transfers.get(transfer.id);
```

## Parameters

<ParamField body="unit_id" type="string" required />

<ParamField body="transfer_id" type="string" required />

## Returns

`200` - `Transfer`.

<ResponseField name="id" type="string" required />

<ResponseField name="unit_id" type="string" required />

<ResponseField name="to" type="string" required />

<ResponseField name="from" type="string" required />

<ResponseField name="status" type="'prepared' | 'confirmed' | 'expired' | 'failed'" required />

<ResponseField name="transaction" type="object | null">
  Payload the unit's current owner submits to complete the transfer. Returned when the transfer is created.
</ResponseField>

<ResponseField name="created_at" type="string" required />

## Errors

Branch on `error.code`, never on the HTTP status - several codes share one.

| Code                               | HTTP | Retry         |
| ---------------------------------- | ---- | ------------- |
| `auth.forbidden`                   | 403  | Do not retry  |
| `auth.unauthorized`                | 401  | Do not retry  |
| `internal.error`                   | 500  | Safe to retry |
| `session_token.invalid_or_expired` | 401  | Do not retry  |
| `session_token.wrong_chip`         | 403  | Do not retry  |
| `transfer.not_found`               | 404  | Do not retry  |
| `validation.failed`                | 400  | Do not retry  |

See [Errors and retries](/sdks/core/errors-and-retries) for the error types and how to narrow them.
