Pular para o conteúdo principal
O MED 2.0 (Mecanismo Especial de Devolução) é o mecanismo aprimorado do BACEN para recuperar fundos em casos de fraude, golpe e erro operacional. O MED 1.0 trata disputas de uma única transação por relatos de infração. O MED 2.0 introduz um fluxo de Recuperação de Fundos que rastreia como os fundos fraudulentos se moveram por várias contas. O fluxo coordena bloqueio, análise e devoluções entre as instituições participantes. O Plugin Pix Indireto (BTG) expõe todo o ciclo de vida da Recuperação de Fundos como endpoints REST. Ele também envia eventos de webhook, então seu sistema fica em sincronia com cada mudança de status.
O MED 2.0 é uma exigência do BACEN para participantes do Pix. O plugin implementa o fluxo de Recuperação de Fundos, então você pode atender a essa exigência pela sua conexão indireta com o BTG.

Conceitos


Ciclo de vida e status


Uma Recuperação de Fundos passa pelos seguintes estados:
Recuperação de Fundos

Endpoints


Todos os endpoints de Recuperação de Fundos ficam no domínio DICT.

Criar uma recuperação de fundos


Regras de validação

O plugin trata um maxTransactions ou maxHops igual a 0 como não enviado. Ele recusa qualquer outro valor de minTransactionAmount, maxTransactions ou maxHops fora dessas regras com PIX-0004. O BTG define o limite superior de maxTransactions. Quando o BTG recusa um parâmetro do grafo de rastreamento, o plugin retorna PIX-0295, e o objeto fields pode trazer a faixa que o BTG aceita. Uma chamada bem-sucedida retorna HTTP 201. A resposta contém a nova recuperação de fundos e os dados do seu grafo de rastreamento. O plugin persiste o registro localmente com status CREATED.

Grafo de rastreamento


O plugin busca o grafo de rastreamento no BTG a cada chamada. O grafo não tem estado local. Ele lista as pessoas, contas e transações do fluxo de fraude, com o valor devolvível de cada transação.
A resposta inclui:
  • parameters: os parâmetros de geração do grafo
  • persons[]: pessoas físicas e jurídicas envolvidas
  • accounts[]: contas do fluxo, com o ISPB do participante de cada uma
  • transactions[]: transações Pix com valores, valores devolvíveis e transactionDepth, a profundidade da transação no grafo (a transação raiz é 1)
O BTG monta o grafo com os trackingGraphParameters da chamada de criação. Os parâmetros de consulta min_transaction_amount, max_transactions, hop_window e max_hops estão obsoletos, e o grafo não os usa.

Solicitar devoluções


Quando a recuperação chega a ANALYSED, solicite a devolução dos fundos bloqueados:
O plugin chama o BTG, move a recuperação para REFUNDING e retorna HTTP 200. Acompanhe o status de cada devolução com Listar devoluções.

Header X-Purpose (transferências MED 2.0)


As transferências de devolução do MED 2.0 devem carregar uma finalidade de transação. O endpoint de cash-out aceita um header X-Purpose opcional que o plugin envia ao BTG como transactionType.
WITHDRAWAL e CHANGE devem corresponder à cobrança que a transferência paga. Se não corresponderem, o plugin retorna HTTP 400 com o erro PIX-0496. Os valores REFUND_AUTOMATIC_PIX e INSTALLMENT_PIX retornam HTTP 400 com o erro PIX-0429 (Unsupported Purpose).
As respostas de transferência também trazem o valor de purpose (Consultar uma transferência Pix e os endpoints de listagem). Os registros existentes assumem TRANSFER como padrão.

Campos de correlação


Duas entidades existentes carregam um campo bacenFundsRecoveryId que liga uma disputa à recuperação que a originou: Os registros criados fora do fluxo MED 2.0 não carregam esse campo. Os relatos de infração também carregam transactionDepth: a profundidade da transação do relato no grafo de rastreamento do DICT, em que a transação raiz é 1. O DICT define esse valor. Quando o DICT não o envia, o campo fica ausente.

Webhooks


Dois webhooks de entrada do BTG conduzem o fluxo de Recuperação de Fundos. Cada um produz um evento de saída correspondente para o seu sistema: Os dois usam flowType: DICT. Veja o guia de Webhooks para formato do envelope, novas tentativas e roteamento. Evento de entidade de recuperação de fundos:
Evento de ciclo de vida (repasse):
Valores de body.event do ciclo de vida: FUNDS_RECOVERY_ANALYSED, FUNDS_RECOVERY_COMPLETED, FUNDS_RECOVERY_INFORMATION_UPDATED, FUNDS_RECOVERY_CANCELLED.

Aviso de descontinuação


Não use Criar um relato de infração nem Encerrar um relato de infração em novas integrações. O MED 2.0 descontinua os dois endpoints e gerencia os relatos de infração pelo fluxo de Recuperação de Fundos. Os endpoints continuam funcionando por compatibilidade retroativa. As novas integrações devem usar as APIs de Recuperação de Fundos.

Próximos passos