Como funciona
- Um cliente de outro banco começa uma transferência TED para uma das contas da sua instituição
- A cada 60 segundos (padrão
JD_POLL_INTERVAL_SECONDS), o plugin consulta a rede do JD SPB em busca de novas transferências de entrada - O plugin procura a conta do destinatário no seu CRM pelo número do documento que vem na mensagem da transferência
- O plugin credita a conta do destinatário automaticamente, menos a tarifa de cashin, se você configurou uma
Linha do tempo de detecção e processamento
As etapas abaixo mostram o que acontece depois que o banco de origem envia a transferência:
Tempo típico: o crédito é concluído dentro de um ciclo de polling. Com o intervalo padrão de 60 segundos, os fundos chegam em cerca de um minuto.
Estados da transferência
Tarifa de recebimento (cashin)
A sua organização pode cobrar uma tarifa nas transferências de entrada. Quando você habilita a cobrança, o plugin desconta a tarifa do valor antes de creditar o destinatário. O destinatário recebe o valor líquido. Você define o valor e a configuração da tarifa por organização pelo Fees Engine. Fórmula:
credited amount = transfer amount − fee
Exemplo: uma transferência de R 2,50 credita R$ 997,50 na conta do destinatário. É o oposto do TED OUT, onde o plugin soma a tarifa por cima e o remetente paga mais.
O que acontece quando o destinatário não é encontrado
Se o plugin não consegue casar o número do documento da transferência recebida com uma conta no seu CRM, ele devolve a transferência ao banco de origem automaticamente. O cliente que enviou recebe o dinheiro de volta. O seu time não faz nada, e nenhum fundo fica sem contabilização. O plugin registra a mensagem recebida como uma transferência de entrada não entregável no armazenamento
undeliverable_incoming_transfers. Depois, despacha uma devolução (retorno STR0010) ao banco de origem. Esse caminho não cria um registro de transferência creditada com status FAILED.
Consultar as transferências recebidas
Use o endpoint List Transfers para recuperar todas as transferências de entrada. Filtre por
type=TED_IN para ver apenas as transferências recebidas.
Endpoint: GET /v1/transfers
Resposta (campos principais):
Endpoints operacionais
Três endpoints de operador controlam o laço de polling do TED IN. Eles servem a scripts e runbooks, não ao tráfego de usuário final.
Para o corpo da requisição, a resposta, os códigos de status e os códigos de erro, veja a especificação OpenAPI do TED (operações
triggerTEDInPoller, replayTEDInPoller e resumeTEDInPoller).
Três caminhos distintos de dead-letter
O plugin usa três armazenamentos de falha separados. Eles não são intercambiáveis, e você deve monitorar cada um de forma independente:
- Falhas de parsing da JD: o plugin as guarda em
jd_incoming_parse_failures. A mensagem chegou da JD, mas o plugin não conseguiu interpretá-la (XML malformado, tipo de mensagem desconhecido). Esse armazenamento precisa de triagem manual. - Transferências de entrada não entregáveis: o plugin as guarda em
undeliverable_incoming_transfers. O parsing funcionou, mas o plugin não conseguiu aplicar o crédito (por exemplo, não achou a conta do destinatário). Esse caminho pode disparar uma devolução automática ao banco de origem. - DLQ de webhooks: a fila de novas tentativas das entregas de webhook de saída que falharam, em
/v1/webhooks/dlq. Não tem relação com a ingestão do TED IN. É o canal de eventos de saída para os clientes que integram.
Webhooks
Configure um webhook para receber notificações em tempo real quando as transferências chegam. O evento
transfer_incoming.completed dispara assim que o plugin credita uma transferência. Veja Webhooks para a configuração e os detalhes do payload de cada evento.
Conciliação
Para a conciliação contábil e financeira, cada registro de transferência traz estes campos:
O plugin persiste os registros de transferência para conciliação e auditoria.
Garantias de processamento
O plugin garante que nunca perde uma transferência e nunca credita a mesma duas vezes:
- Sem créditos duplicados: cada mensagem de transferência carrega um número de sequência único. O plugin rejeita qualquer tentativa de processar a mesma mensagem duas vezes.
- Nova tentativa automática em caso de falha: o plugin repete os erros transitórios (como uma interrupção momentânea de serviço) com backoff exponencial antes de registrar qualquer estado de falha.
- Fila de dead-letter para problemas sem solução: se o plugin não consegue processar uma transferência depois de todas as novas tentativas, ele move a transferência para uma fila de dead-letter, para revisão manual. O plugin nunca descarta uma transferência silenciosamente.

