Conceitos
Integre em quatro passos
1
Configure a instituição
Faça isso uma vez, com o papel
editor. Defina os limites de uso com PUT /v1/policy/limits; eles são obrigatórios antes da primeira TED. Para TEDs recebidas, defina os vínculos de ISPB com organização com PUT /v1/policy/ispb-bindings. Opcionalmente, defina um cut-off com PUT /v1/policy/window.2
Envie a TED
Envie O envio retorna
X-Account-Id (a conta debitada) e X-Idempotency (uma chave nova para cada pagamento). Para mostrar a tarifa antes de confirmar, chame POST /v1/transfers/fee-quotes com os mesmos campos.201 com o status que a TED atingiu nesta chamada, normalmente SUBMITTED.3
Acompanhe até a liquidação
Consulte
GET /v1/transfers/{transferId} até status chegar a SETTLED, REJECTED ou CANCELLED, ou faça a subscription dos eventos transfer.*. Em REJECTED, rejection.source e rejection.code informam quem recusou e por quê.4
Trate as TEDs recebidas
Liste-as com
GET /v1/incoming-transfers. O crédito ao cliente é automático. Apenas status=MANUAL_REVIEW exige uma decisão do operador (POST /v1/incoming-transfers/{incomingTransferId}/resolve-review), e POST /v1/incoming-transfers/{incomingTransferId}/return devolve uma TED que já foi creditada.Status
Uma TED enviada passa por estes status. Os status finais são
SETTLED, REJECTED e CANCELLED.
Uma TED recebida vai de
RECEIVED (decisão em andamento) para CREDITED (creditada ao cliente), RECORDED (conta própria da instituição, final), RETURN_REQUESTED (o TED Lerian não pode creditá-la) ou MANUAL_REVIEW (aguarda um operador; veja reviewReason). Ela vai de RETURN_REQUESTED para RETURNED quando é devolvida. slaDeadlineAt é o prazo regulatório de 60 minutos a partir da liquidação interbancária.
Autenticação e permissões
Cada chamada, exceto os health checks públicos, envia
Authorization: Bearer <token> emitido pelo Access Manager. Os papéis padrão são editor (todas as operações), operator (todas as operações, exceto as escritas de política e de vínculos de ISPB) e viewer (leituras, exceto as leituras de conciliação).
Sem a permissão, ou com uma licença do produto que não é válida para a organização:
403 TED-0071. Token ausente ou inválido: 401 TED-0070.
Convenções
- Tenant. Nunca do path, da query ou do body.
- Valores. Strings decimais em BRL com duas casas decimais (
"1500.00"), nunca números JSON. - Datas. RFC 3339 em UTC (
2026-10-22T13:05:12Z); dias comoYYYY-MM-DD. A janela de funcionamento usa o fuso horário da instituição (America/Sao_Paulo). - Idempotência. Cada operação com efeito exige
X-Idempotency(de 1 a 128 caracteres ASCII; use um UUID). A mesma chave com o mesmo body retorna a resposta original comX-Idempotency-Replayed: truee nenhum efeito novo. Um body diferente retorna422TED-0012. Se a primeira requisição ainda estiver em processamento, você recebe409TED-0013(tente de novo apósRetry-After). O replay duraX-TTLsegundos (padrão 300). NoPOST /v1/transfers, a chave fica vinculada à transferência que criou. - Proteção contra duplicidade.
POST /v1/transferspode recusar com409TED-0014uma requisição materialmente idêntica enviada pouco depois de outra, mesmo com uma chave diferente. Consulte a transferência existente. - Paginação. As listas retornam
items,limit,next_cursoreprev_cursor. Peça atélimit=100(padrão 20) e siganext_cursoraté ele sernull. O cursor é opaco. - Correlação. Envie
X-Request-Id(UUID) ou receba um gerado. Ele volta em cada resposta e identifica a chamada para o suporte. - Eventos. Cada transição é publicada como um CloudEvent com
ce-typestudio.lerian.br-ted.<resource>.<event>:transfer.*,incoming_transfer.*eincoming_return.*. A entrega é pelo menos uma vez; deduplique porce-id. - Ambientes. A URL base é por instalação (BYOC ou Lerian Cloud), e a Lerian a fornece.
Erros
Cada erro é
application/problem+json (RFC 9457) com um code estável. Trate os erros pelo code. errors lista os campos inválidos de um 422.
Um 503 significa que a requisição não teve efeito: tente de novo mais tarde com o mesmo X-Idempotency. Há três exceções:
TED-1000: o ledger não confirmou o resultado, e a operação já pode estar no ledger. Leia o status do recurso antes de agir de novo.TED-0080em um envio: a transferência já pode existir. Procure-a comGET /v1/transfersantes de enviá-la de novo.TED-1010em um cancelamento: a resposta do conector do STR é desconhecida, e a solicitação de cancelamento continua registrada. Tente de novo com o mesmoX-Idempotencye o mesmoreason.
429 com Retry-After: trate-a pelo status e aguarde esse tempo antes de tentar de novo.
Em um envio,
TED-0031, TED-1001, TED-1011 e TED-1013 nunca chegam como resposta de erro. Eles chegam em rejection.code de uma transferência com status REJECTED, na resposta 201 ou em uma consulta posterior.
A lista de erros traz cada código com a causa e a correção.
