# Get transfer (/en/docs/conta-digital/endpoints/internal-transfers/get_internal_transfer)

## GET /transactions/internal-transfer/{transferId}

`GET https://api.hub.payzu.com.br/api/v1/transactions/internal-transfer/{transferId}`

Scope: `INTERNAL_TRANSFER_READ`. Returns a transfer the account sent or received. Accepts the transfer `id` and the webhook `transferId`.

### Path params

| Field | Type | Required | Details |
| --- | --- | --- | --- |
| `transferId` | string | yes | Transfer identifier. |

### Responses

**200** Transfer.

| Field | Type | Required | Details |
| --- | --- | --- | --- |
| `id` | string | yes | Transfer identifier. The lookup accepts this `id` and the webhook `transferId`. |
| `status` | string | yes | `REQUESTED`: no result yet, after a `502` where the bank did not respond or refused temporarily. `CONFIRMED`: the amount is in the other account. `FAILED`: it did not go out. — `REQUESTED`, `CONFIRMED`, `FAILED` |
| `side` | string | yes | Side your account is on: `SENT` or `RECEIVED`. — `SENT`, `RECEIVED` |
| `amount` | integer | yes | Amount that reached the destination. In cents. |
| `serviceFee` | integer | yes | Fee. `0` on the receiving side. In cents. |
| `totalDebited` | integer | yes | `amount + serviceFee`. `0` on the receiving side. In cents. |
| `counterparty` | object | yes | The other account. |
| `counterparty.name` | string | yes | Name of the other account. |
| `counterparty.document` | string | yes | Document of the other account: masked CPF or formatted CNPJ. Empty when unknown. |
| `counterparty.pixKey` | string | yes | Key of the other account. In full in the `POST` response; in lookups and lists, CPF, email and phone keys are masked. |
| `comment` | string | null | yes | Receipt text. |
| `providerRejectedReason` | string | null | yes | Message ready to display, set when `FAILED`. |
| `callbackUrl` | string | null | yes | The `callbackUrl` sent on creation. `null` when none was sent. `null` on the receiving side. |
| `createdAt` | string | yes | Date and time in ISO 8601, UTC. — format: date-time |
| `confirmedAt` | string | null | yes | When it completed. `null` until it completes. — format: date-time |
| `failedAt` | string | null | yes | When it failed. `null` if it did not fail. — format: date-time |

**401** Missing, invalid or expired credential.

| Field | Type | Required | Details |
| --- | --- | --- | --- |
| `message` | string | yes | Description in Portuguese, ready to display. It may change at any time. |
| `code` | string | yes | Stable error code. Your system decides what to do based on it. |
| `details` | object | no | Structured error context, when available. |

**403** Not allowed: scope, IP or disabled operation.

| Field | Type | Required | Details |
| --- | --- | --- | --- |
| `message` | string | yes | Description in Portuguese, ready to display. It may change at any time. |
| `code` | string | yes | Stable error code. Your system decides what to do based on it. |
| `details` | object | no | Structured error context, when available. |

**404** Not found, or from another account.

| Field | Type | Required | Details |
| --- | --- | --- | --- |
| `message` | string | yes | Description in Portuguese, ready to display. It may change at any time. |
| `code` | string | yes | Stable error code. Your system decides what to do based on it. |
| `details` | object | no | Structured error context, when available. |