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

# Enviar (TED OUT)

> Envie transferências TED para qualquer banco brasileiro com um fluxo de duas etapas, iniciar e confirmar: prévia da tarifa, liquidação no mesmo dia e conformidade com o BACEN.

O TED OUT deixa os seus clientes enviarem dinheiro para qualquer conta em qualquer banco brasileiro. O fluxo de duas etapas, iniciar e depois confirmar, deixa o cliente revisar a tarifa antes de o sistema efetivar a transferência.

## Como funciona para o seu cliente

***

**Etapa 1: Informar os dados e revisar a tarifa**
O cliente informa os dados bancários do destinatário e o valor. O sistema calcula a tarifa e retorna o custo total antes de debitar qualquer coisa. O cliente vê exatamente o que vai pagar.

**Etapa 2: Confirmar e enviar**
Depois que o cliente confirma, o sistema debita os fundos (valor + tarifa) da conta dele. Ele envia a transferência pelo gateway SPB da JD até a rede do BACEN e emite um número de confirmação na hora.

## Pré-requisitos

***

Antes de iniciar uma transferência:

* O remetente deve ter uma conta cadastrada no CRM.
* O saldo do remetente deve cobrir o valor da transferência mais a tarifa aplicável.
* Você deve pedir a transferência em um dia útil, entre 06:30 e 17:00 (horário de Brasília).

## Etapa 1: Iniciar a transferência

***

O cliente envia os dados do destinatário e o valor. O sistema valida a requisição, calcula a tarifa e cria uma intenção de transferência válida por 24 horas. O sistema não move fundos nesta etapa.

Veja a especificação completa da requisição na referência [Initiate Transfer](/pt/reference/interfaces/ted-jd/initiate-transfer).

**Endpoint:** POST /v1/transfers/initiate

**Resposta (campos principais):**

```json theme={null}
{
  "initiationId": "019c96a0-aa10-7abc-d1e2-8c9d0e1f2a3b",
  "feeAmount": 1.50,
  "totalAmount": 1001.50,
  "status": "PENDING_CONFIRMATION",
  "expiresAt": "2026-02-06T15:30:00-03:00"
}
```

<Note>
  **Direção da tarifa (cash-out):** nas transferências TED OUT e P2P, o plugin soma a tarifa por cima do valor da transferência, então `totalAmount = amount + feeAmount`. O plugin debita a conta do remetente pelo total completo. O TED IN funciona ao contrário e desconta a tarifa do valor recebido.
</Note>

<Warning>
  A intenção de transferência expira 24 horas depois da iniciação. Se o cliente não confirmar dentro dessa janela, crie uma nova iniciação.
</Warning>

## Etapa 2: Confirmar a transferência

***

Depois que o cliente revisa a tarifa e confirma, envie o `initiationId` para processar a transferência. O sistema provisiona os fundos e manda o pagamento para a rede do BACEN.

A maioria das integrações processa a transferência apenas com o `initiationId`. Alguns tenants assinam os payloads de TED OUT fora do plugin. Esses tenants chamam antes o `POST /v1/transfers/signing/prepare`. Depois enviam `signingArtifactId`, `payloadHash` e `signature` com o mesmo `initiationId`.

Veja a especificação completa da requisição na referência [Process Transfer](/pt/reference/interfaces/ted-jd/process-transfer).

**Endpoint:** POST /v1/transfers/process

**Resposta (campos principais):**

```json theme={null}
{
  "transferId": "019c96a0-ab10-7cde-f1a2-0e1f2a3b4c5d",
  "confirmationNumber": "20260205001",
  "status": "PROCESSING",
  "feeAmount": 1.50,
  "totalAmount": 1001.50
}
```

## Linha do tempo da liquidação

***

<Steps>
  <Step title="Enviada">
    O sistema provisiona os fundos e manda a transferência para a rede do BACEN. Status: `PROCESSING`.
  </Step>

  <Step title="Liquidada">
    O banco de destino confirma a liquidação. Status: `COMPLETED`.
  </Step>

  <Step title="Status disponível">
    O plugin expõe o status `COMPLETED` pelas APIs de transferência e de conciliação. Ele ainda não emite `transfer.completed` para o TED OUT.
  </Step>
</Steps>

O TED liquida no mesmo dia (D+0) para transferências enviadas antes das 17:00, horário de Brasília.

## Horário de funcionamento

***

<Warning>
  Peça transferências TED apenas em dias úteis, das 06:30 às 17:00 (Brasília, UTC-3, por padrão). O plugin rejeita na hora qualquer transferência fora dessa janela e não move fundos. Ele também rejeita nos feriados bancários do BACEN. A resposta de erro indica o próximo horário disponível.
</Warning>

## Tratamento de erros

***

O plugin sempre mantém o dinheiro do seu cliente contabilizado quando algo dá errado:

<AccordionGroup>
  <Accordion title="Transferência rejeitada pelo banco de destino">
    A instituição recebedora recusa a transferência. O plugin libera na hora os fundos provisionados e devolve o valor completo, incluindo a tarifa, ao saldo do remetente. Status: `REJECTED`. O plugin envia um webhook `transfer.rejected`.
  </Accordion>

  <Accordion title="Problema temporário de rede">
    O plugin repete automaticamente, até três tentativas por padrão. Se o resultado continua desconhecido depois das tentativas (um 5xx ou um timeout do JD SPB), o plugin não reverte a transferência sozinho. Ele preserva a retenção e passa a transferência ao worker de conciliação, que a resolve contra o ledger. Se a conciliação esgota as tentativas, o plugin marca a transferência para revisão manual do operador (`MANUAL_REVIEW`). O plugin nunca perde os fundos, mas a resolução pode demorar. Uma rejeição 4xx clara é diferente: ela reverte a retenção na hora (veja o caso de rejeição acima).
  </Accordion>

  <Accordion title="Devolução do banco de destino">
    O banco de destino pode devolver os fundos depois da liquidação, por exemplo em um encerramento de conta ou em uma retenção regulatória. O plugin estorna o valor no seu ledger como uma transação separada. Essa devolução fica fora do ciclo de vida da transferência. O registro da transferência original continua `COMPLETED`, e o plugin cria um novo registro de estorno.
  </Accordion>
</AccordionGroup>

<Note>
  Cada requisição de transferência que altera dados deve incluir um header `X-Idempotency` (no máximo 255 caracteres). Reutilize a mesma chave quando repetir uma requisição para evitar envios duplicados. Veja [Novas tentativas e idempotência](/pt/reference/retries-idempotency) para os detalhes.
</Note>

Para a lista completa de códigos de erro, veja a [referência de erros do TED](/pt/reference/interfaces/ted-jd/ted-error-list).

## Consultar o status da transferência

***

Acompanhe o andamento de uma transferência a qualquer momento.

**Endpoint:** [GET /v1/transfers/{transferId}](/pt/reference/interfaces/ted-jd/retrieve-transfer)

**Resposta (campos principais):**

```json theme={null}
{
  "transferId": "019c96a0-ab10-7cde-f1a2-0e1f2a3b4c5d",
  "confirmationNumber": "20260205001",
  "senderAccountId": "019c96a0-a910-7abc-d1e2-8c9d0e1f2a3b",
  "type": "TED_OUT",
  "status": "COMPLETED",
  "amount": 1000.00,
  "feeAmount": 1.50,
  "totalAmount": 1001.50,
  "createdAt": "2026-02-05T15:30:00-03:00",
  "completedAt": "2026-02-05T15:35:12-03:00"
}
```

## Cancelar uma transferência

***

Você pode cancelar uma transferência enquanto ela está no status `CREATED` ou `PENDING`, antes de o plugin enviá-la à rede.

**Endpoint:** [POST /v1/transfers/{transferId}/cancel](/pt/reference/interfaces/ted-jd/cancel-transfer)

<Warning>
  Você não pode cancelar uma transferência em `PROCESSING` ou em um estado posterior. Depois que o plugin a envia à rede do BACEN, a transferência deve ser concluída ou falhar antes de qualquer estorno.
</Warning>

## Códigos ISPB comuns

***

*Última verificação: 2026-02-06. Os valores podem mudar.*

| Banco           | ISPB     |
| --------------- | -------- |
| Banco do Brasil | 00000000 |
| Bradesco        | 60746948 |
| Itaú            | 60701190 |
| Santander       | 90400888 |
| Caixa Econômica | 00360305 |
| Nubank          | 18236120 |
| Inter           | 00416968 |

Para a lista completa, consulte o [diretório de ISPB](https://www.bcb.gov.br/pom/spb/estatistica/port/AODO.asp) no site do Banco Central.
