Skip to main content

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.

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 reference. Endpoint: POST /v1/transfers/initiate Response (key fields):
{
  "initiationId": "019c96a0-aa10-7abc-d1e2-8c9d0e1f2a3b",
  "feeAmount": 1.50,
  "totalAmount": 1001.50,
  "status": "PENDING_CONFIRMATION",
  "expiresAt": "2026-02-06T15:30:00-03:00"
}
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.
The transfer intent expires 24 hours after initiation. If the customer does not confirm within that window, a new initiation must be created.

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 reference. Endpoint: POST /v1/transfers/process Response (key fields):
{
  "transferId": "019c96a0-ab10-7cde-f1a2-0e1f2a3b4c5d",
  "confirmationNumber": "20260205001",
  "status": "PROCESSING",
  "feeAmount": 1.50,
  "totalAmount": 1001.50
}

Settlement timeline


1

Confirmed (T+0s)

Funds are provisioned and the transfer is submitted to the BACEN network.
2

Acknowledged (T+2s)

The network confirms receipt of the payment message. Status: PROCESSING.
3

Settled (T+90s typical)

The destination bank confirms settlement. Status: COMPLETED. Confirmation number is finalized.
4

Customer notified (T+95s)

A transfer.completed webhook event is dispatched to your system.
SLA: Under 10 minutes typical. Same-day settlement (D+0) for transfers confirmed before 17:00 Brasília time.

Operating hours


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.

Error handling


When something goes wrong, your customer’s money is always accounted for:
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.
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.
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.
Transfer endpoints support idempotency via the X-Idempotency request header. Use this header when retrying requests to avoid duplicate submissions. See Retries and idempotency for details.
For a full list of error codes, see the TED error reference.

Check transfer status


Track the progress of a transfer at any time. Endpoint: GET /v1/transfers/ Response (key fields):
{
  "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//cancel
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.

Common ISPB codes


Last verified: 2026-02-06. Values are subject to change.
BankISPB
Banco do Brasil00000000
Bradesco60746948
Itaú60701190
Santander90400888
Caixa Econômica00360305
Nubank18236120
Inter00416968
For a complete list, consult the ISPB directory on the Central Bank website.