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

# Transfer

> Transferências de recebíveis acumulados para conta bancária

## Campos

| Campo                | Tipo             | Descrição                                              |
| -------------------- | ---------------- | ------------------------------------------------------ |
| `transferId`         | `UUID`           | Identificador único                                    |
| `organizationId`     | `UUID`           | Referência à organização da empresa beneficiária       |
| `companyId`          | `UUID`           | Referência à empresa beneficiária                      |
| `bankAccountId`      | `UUID`           | Referência à conta bancária                            |
| `externalProvider`   | `String`         | Nome do provedor externo                               |
| `externalProviderId` | `String`         | ID da transferência no provedor externo                |
| `amount`             | `Int`            | Valor da transferência em centavos                     |
| `status`             | `TransferStatus` | Status da transferência                                |
| `transferredAt`      | `DateTime?`      | Data em que a transferência foi efetivada              |
| `createdBy`          | `UUID?`          | Usuário que criou o registro, quando aplicável         |
| `createdAt`          | `DateTime`       | Data de criação                                        |
| `updatedBy`          | `UUID?`          | Usuário que fez a última atualização, quando aplicável |
| `updatedAt`          | `DateTime`       | Data da última atualização                             |

## Relacionamentos

* Relaciona-se com [Organization](/data-modelling/tenant/organization)
* Relaciona-se com [Company](/data-modelling/tenant/company)
* Relaciona-se com [BankAccount](/data-modelling/billing/bank-account)

## Regras de Negócio

* Representa um saque do saldo disponível da empresa (consultado no provedor) para sua conta bancária.
* O valor (`amount`) é armazenado em centavos.
* O par `externalProvider` + `externalProviderId` garante idempotência.
* `transferredAt` é preenchido quando a transferência é efetivada (status `PAID`).
* A transferência não vincula recebíveis; ela movimenta o saldo já liquidado no provedor.

## Enums

### TransferStatus

O status acompanha o processamento no provedor. Default `PENDING`; `PAID` indica transferência efetivada.

| Valor        | Descrição                                      |
| ------------ | ---------------------------------------------- |
| `PENDING`    | Transferência criada, aguardando processamento |
| `PROCESSING` | Em processamento no provedor                   |
| `PAID`       | Transferência efetivada com sucesso            |
| `FAILED`     | Transferência falhou                           |
| `CANCELED`   | Transferência cancelada                        |

## Example

```json theme={null}
{
  "transferId": "0197a818-6bdc-7d65-9096-1987a5382aa1",
  "organizationId": "0197a801-1690-7590-b3cf-19599b9be3e4",
  "companyId": "0197a801-6a42-79aa-9e56-d3c85148c0fa",
  "bankAccountId": "0197a817-f0e7-7c45-bcf2-5b6e967c2b2a",
  "externalProvider": "billing_interface",
  "externalProviderId": "trf_3c35a871",
  "amount": 500000,
  "status": "PROCESSING",
  "transferredAt": null,
  "createdBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "createdAt": "2026-07-05T10:00:00.000Z",
  "updatedBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "updatedAt": "2026-07-05T10:00:00.000Z"
}
```
