Pular para o conteúdo principal
O TED IN deixa a sua instituição receber transferências de qualquer banco brasileiro. O plugin detecta, valida e credita cada transferência. Quando um cliente de outro banco envia um TED para a sua instituição, os fundos chegam à conta do destinatário em minutos. Uma transferência que o plugin não consegue creditar nem devolver sozinho aguarda um operador.

Como funciona


  1. Um cliente de outro banco começa uma transferência TED para uma das contas da sua instituição
  2. Quando o polling do TED IN está ligado (JD_POLLING_ENABLED), o plugin consulta a rede do JD SPB em busca de novas transferências de entrada a cada 60 segundos (padrão JD_POLL_INTERVAL_SECONDS)
  3. O plugin procura a conta do destinatário no seu CRM pelo número do documento que vem na mensagem da transferência
  4. O plugin credita a conta do destinatário, menos a tarifa de cashin, se você configurou uma. O plugin lança o crédito no ledger do destinatário no Midaz, conforme o roteamento do ledger daquela organização, daquele ledger e do tipo de transferência
Diagrama do fluxo de TED IN

Créditos ao cliente


O plugin também credita o destinatário em sete créditos ao cliente que o banco pagador envia como outras mensagens STR. Cada um tem o próprio tipo de transferência: Cada um desses tipos precisa do próprio vínculo no roteamento do ledger. O plugin nunca os lança no vínculo de TED_IN. Um STR0041R2 cuja tarifa bancária não é zero não é creditado: o plugin o retém com o motivo CLASSIFICATION_FAILED. No modo de tarifa legacy, o plugin-fees calcula a tarifa de cada tipo pelo pacote de tarifas do próprio tipo, nunca pelo de TED_IN. Sem pacote para o tipo, o plugin credita o valor inteiro.

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. No modo de tarifa legacy, o plugin desconta a tarifa do valor antes de creditar o destinatário, e o destinatário recebe o valor líquido. No modo de tarifa native, ele desconta apenas uma tarifa que o pacote de tarifas tira do valor. Você define o valor e a configuração da tarifa por organização pelo Fees Engine. Fórmula, para uma tarifa descontada: credited amount = transfer amount − fee Exemplo: uma transferência de R1.000,00comumatarifadescontadadeR 1.000,00 com uma tarifa descontada 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.
No modo de tarifa legado, uma resposta de tarifa inválida, inclusive uma tarifa igual ou superior ao valor bruto, segue fees.fail_closed_default. Com false (padrão), o plugin credita o valor bruto com tarifa zero e registra a falha da tarifa. Com true, recusa o crédito e devolve os fundos por STR0010. O caminho de tarifa nativa do ledger é separado; veja Configuração do TED.

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, a política de tenant jd_polling.auto_return_authorized decide o que acontece. Nos dois casos, o plugin não credita nada e não cria nenhum registro de transferência.
  • false (padrão): o plugin não devolve nada. Ele retém a mensagem com o motivo RECIPIENT_NOT_FOUND_RETURN_UNAUTHORIZED. Um operador liquida os fundos fora do plugin e depois registra o resultado com Fechar o crédito não liquidado do TED IN. O fechamento não move dinheiro.
  • true: o plugin devolve a transferência ao banco de origem (devolução STR0010), e o cliente que enviou recebe o dinheiro de volta.
O plugin devolve a transferência ao banco de origem, independentemente do que essa política diga, nestes casos:
  • A conta do destinatário não existe no ledger ou corresponde a mais de uma conta no seu CRM.
  • O ledger recusa o crédito.
  • A tarifa não pode ser resolvida e fees.fail_closed_default é true.

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 os TEDs recebidos, por um tipo TED_IN_STR para ver um tipo de crédito ao cliente, e por ledgerId para ver as transferências de um ledger. Endpoint: GET /v1/transfers Resposta (campos principais):
Para todas as opções de parâmetros de consulta, veja a referência List Transfers.

Endpoints operacionais


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

Devolver uma transferência recebida


Você pode devolver um TED IN concluído ao banco pagador com Return a Transfer. A requisição precisa da permissão transfers:return.
  1. O plugin coloca uma retenção do valor creditado na conta do destinatário.
  2. O plugin envia um STR0010 voluntário (código de motivo de devolução 70), que devolve o valor bruto do TED IN ao banco pagador.
  3. Quando o STR liquida o STR0010, o plugin estorna o crédito original no ledger. A devolução passa a COMPLETED.
Se a devolução é recusada, o plugin cancela a retenção, e a devolução passa a REJECTED. A devolução é uma nova transferência TED_OUT sem tarifa, e o originalTransferId dela nomeia o TED IN. Observe estas regras:
  • Apenas um TED recebido como STR0008R2 pode ser devolvido. Um crédito ao cliente não pode, e um crédito entre cores também não (422 BTF-0118).
  • Um TED IN tem no máximo uma devolução ativa.
  • A devolução roda apenas dentro da janela de funcionamento. Em 24 de dezembro e no último dia útil do ano, a janela das devoluções fecha no máximo às 13:00.
  • A devolução é lançada no vínculo de TED_OUT do ledger do TED IN.
  • Você não pode cancelar uma devolução.
Um chargeback (STR0010R2) de um TED IN cuja devolução ainda está em andamento aguarda até a devolução terminar. Um chargeback que chega depois que a devolução saiu aguarda um operador.

Mensagens que aguardam um operador


Monitore cada uma destas filas separadamente. Elas não são intercambiáveis: A DLQ de webhooks é um caminho diferente: ela guarda as entregas de webhook de saída que falharam, não as transferências de entrada. Veja Webhooks.

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


  • Sem créditos duplicados: o plugin guarda cada mensagem da JD uma vez, pelo número de sequência dela (NumCabSeq). Ele também deduplica os créditos por número de controle, ISPB do remetente e valor.
  • Mensagem primeiro: o plugin guarda cada mensagem antes de processá-la. Uma mensagem que ele não consegue terminar continua não processada, e o próximo ciclo de polling a processa de novo.
  • Filas de operador: uma mensagem que o plugin não consegue creditar nem devolver aguarda nas filas acima.