> ## 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.

# Send TED (TED OUT)

> Send TED transfers to any Brazilian bank with a two-step initiate-and-confirm flow — fee preview, same-day settlement, and BACEN compliance.

TED OUT lets your customers send money to any account at any Brazilian bank. The two-step flow — initiate, then confirm — gives customers a chance to review the fee before the transfer is committed. Settlement is same-day (D+0) for transfers confirmed before 17:00 Brasília time.

## How it works for your customer

***

**Step 1 — Enter details and review fee**
The customer provides the recipient's bank details and the amount. The system calculates the fee and returns the total cost before anything is debited. The customer sees exactly what they will pay.

**Step 2 — Confirm and send**
Once the customer confirms, funds (amount + fee) are debited from their account and the transfer is submitted to the BACEN network. A confirmation number is issued immediately.

## Prerequisites

***

Before a transfer can be initiated:

* The sender must have a registered account in CRM
* The sender's balance must cover the transfer amount plus the applicable fee
* The transfer must be requested on a business day between 06:30 and 17:00 (Brasília time)

## Step 1: Initiate the transfer

***

The customer submits the recipient's details and the amount. The system validates the request, calculates the fee, and creates a transfer intent that is valid for 24 hours. No funds are moved at this stage.

See the full request specification in the [Initiate Transfer](/en/reference/midaz/plugins/ted/initiate-transfer) reference.

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

**Response (key fields):**

```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>
  **Fee direction (cash-out):** For TED OUT and P2P transfers, the fee is added on top of the transfer amount: `totalAmount = amount + feeAmount`. The sender's account is debited for the full total. This is the opposite of TED IN, where the fee is deducted from the received amount.
</Note>

<Warning>
  The transfer intent expires 24 hours after initiation. If the customer does not confirm within that window, a new initiation must be created.
</Warning>

## Step 2: Confirm the transfer

***

Once the customer reviews the fee and confirms, submit the `initiationId` to process the transfer. Funds are provisioned and the payment is sent to the BACEN network.

See the full request specification in the [Process Transfer](/en/reference/midaz/plugins/ted/process-transfer) reference.

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

**Response (key fields):**

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

## Settlement timeline

***

<Steps>
  <Step title="Confirmed (T+0s)">
    Funds are provisioned and the transfer is submitted to the BACEN network.
  </Step>

  <Step title="Acknowledged (T+2s)">
    The network confirms receipt of the payment message. Status: `PROCESSING`.
  </Step>

  <Step title="Settled (T+90s typical)">
    The destination bank confirms settlement. Status: `COMPLETED`. Confirmation number is finalized.
  </Step>

  <Step title="Customer notified (T+95s)">
    A `transfer.completed` webhook event is dispatched to your system.
  </Step>
</Steps>

**SLA:** Under 10 minutes typical. Same-day settlement (D+0) for transfers confirmed before 17:00 Brasília time.

## Operating hours

***

<Warning>
  TED operates Monday to Friday, 06:30–17:00 (Brasília, UTC-3). Transfers requested outside this window are rejected immediately — no funds are moved. The error response includes the next available time.
</Warning>

## Error handling

***

When something goes wrong, your customer's money is always accounted for:

<AccordionGroup>
  <Accordion title="Transfer rejected by the destination bank">
    The transfer is declined by the receiving institution. Provisioned funds are released immediately and the full amount (including fee) is returned to the sender's balance. Status: `REJECTED`. A `transfer.failed` webhook is sent.
  </Accordion>

  <Accordion title="Temporary network issue">
    The plugin retries automatically up to three times (configurable via `JD_MAX_RETRIES`, default `3`). If the transfer cannot be confirmed after retries, a fail-safe refund is issued and the sender's balance is restored. No manual action required.
  </Accordion>

  <Accordion title="Chargeback from destination bank">
    If the destination bank returns the funds after initial settlement (for example, account closure or regulatory hold), the amount is reversed in your ledger as a separate transaction. This is handled outside the transfer lifecycle — the original transfer record remains `COMPLETED` and a new reversal record is created.
  </Accordion>
</AccordionGroup>

<Note>
  Transfer endpoints support idempotency via the `X-Idempotency` request header. Use this header when retrying requests to avoid duplicate submissions. See [Retries and idempotency](/en/reference/retries-idempotency) for details.
</Note>

For a full list of error codes, see the [TED error reference](/en/reference/midaz/plugins/ted/ted-error-list).

## Check transfer status

***

Track the progress of a transfer at any time.

**Endpoint:** [GET /v1/transfers/{transferId}](/en/reference/midaz/plugins/ted/retrieve-transfer)

**Response (key fields):**

```json theme={null}
{
  "transferId": "019c96a0-ab10-7cde-f1a2-0e1f2a3b4c5d",
  "confirmationNumber": "20260205001",
  "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"
}
```

## Cancel a transfer

***

A transfer can be cancelled while it is in `CREATED` or `PENDING` status — before it has been submitted to the network.

**Endpoint:** [POST /v1/transfers/{transferId}/cancel](/en/reference/midaz/plugins/ted/cancel-transfer)

<Warning>
  Transfers in `PROCESSING` or later states cannot be cancelled. Once submitted to the BACEN network, the transfer must complete or fail before any reversal is possible.
</Warning>

## Common ISPB codes

***

*Last verified: 2026-02-06. Values are subject to change.*

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

For a complete list, consult the [ISPB directory](https://www.bcb.gov.br/pom/spb/estatistica/port/AODO.asp) on the Central Bank website.
