Skip to main content
Exceções são transações que o Matcher não consegue conciliar automaticamente. Este guia mostra como revisar exceções, priorizar o trabalho pela severidade e resolver itens com o nível certo de documentação.

O que é uma exceção?


Uma exceção é criada quando uma transação de uma fonte não tem correspondente válido em outra fonte. As causas comuns incluem:
  • Nenhum candidato encontrado: nenhuma transação na outra fonte atende aos critérios da regra ativa.
  • Abaixo do limiar de confiança: existem candidatos, mas eles pontuam abaixo da confiança mínima (padrão: 60).
  • Rejeição de duplicata: uma correspondência anterior foi rejeitada e não sobrou candidato alternativo.
  • Desequilíbrio entre fontes: uma fonte contém transações que faltam na outra.

Ciclo de vida da exceção


As exceções seguem um workflow simples:
  • Quando o Matcher não consegue conciliar uma transação, ele cria uma exceção com status OPEN.
  • Ao atribuir a exceção, ela passa de OPEN para ASSIGNED. A API não expõe uma operação de remover atribuição. Você deve enviar um assignee não vazio.
  • A correspondência forçada e o ajuste de lançamento mantêm PENDING_RESOLUTION apenas enquanto a operação está em andamento. Em caso de sucesso, a exceção vai para RESOLVED. Em caso de falha, ela volta ao status OPEN ou ASSIGNED anterior.
  • A resolução direta move uma exceção OPEN ou ASSIGNED para RESOLVED.
  • O despacho envia a requisição ao conector, grava um evento de auditoria DISPATCH e emite exception.dispatched. Ele não muda o status da exceção.
Ciclo de vida de exceção do Matcher

O ciclo de vida de uma exceção no Matcher

Definições de status

Endpoints da máquina de estados

Os endpoints de exceção única a seguir mudam o ciclo de vida ou registram ações relacionadas. Cada um é identificado pelo exceptionId da exceção no caminho.
O Matcher aceita despacho WEBHOOK, JIRA, SERVICENOW e MANUAL. WEBHOOK exige uma URL fornecida pelo deploy e, quando payloads assinados são obrigatórios, um segredo compartilhado. JIRA e ServiceNow exigem a configuração do conector deles. MANUAL confirma o despacho localmente sem chamar um sistema externo. Um conector ausente retorna MTCH-0509. Um despacho não confirmado retorna MTCH-0514, então verifique o destino antes de tentar de novo, porque um registro de destino pode já existir. Veja Roteamento de exceções para o contrato completo de despacho.

Exemplo de atribuição

cURL

Exemplo de resolução

cURL

Exemplo de ajuste de lançamento

cURL

Seleção em lote com selectExceptionIDs

cURL
Use os IDs retornados nas operações em lote abaixo.

Severidade da exceção


O Matcher classifica as exceções por severidade para você trabalhar a fila na ordem certa. Esses limiares repriorizam a exceção. Eles não criam um prazo de SLA. Um callback de entrada pode informar dueAt, e os agregados do dashboard medem o cumprimento desses prazos fornecidos externamente. Defina a política de tempo de resposta no sistema externo que envia o callback.

Escalonamento de severidade

A severidade é reavaliada conforme a exceção envelhece. A classificação usa lógica OU. Basta o limiar de valor ou o limiar de idade para disparar uma severidade maior:
  • Uma exceção abaixo de 1.000 começa como Baixa, mas escala para Média depois de 24 horas.
  • Uma exceção abaixo de 10.000 escala para Alta depois de 72 horas.
  • Qualquer exceção não resolvida escala para Crítica depois de 120 horas.

Métodos de resolução


O Matcher expõe três ações de resolução de exceção.

1. Resolver diretamente

Feche uma exceção com um resolution obrigatório e um reason opcional quando não é preciso correspondência forçada nem ajuste.

2. Correspondência forçada

Vincule transações manualmente quando você confirmou que elas formam um par, mas o sistema não conseguiu fazer a correspondência. Use a correspondência forçada quando:
  • O correspondente correto existe, mas variações bloquearam a correspondência automática.
  • Você consegue explicar e documentar a justificativa com clareza.
  • A variação é esperada (tarifas, tempo, arredondamento).

3. Criar ajuste

Crie um lançamento de ajuste para registrar uma variação ou equilibrar um item não conciliado. Códigos de motivo do ajuste: Regras de validação:
  • Os valores de ajuste devem ser positivos. Uma requisição com valor zero ou negativo retorna um erro 400 Bad Request.
  • POST /v1/exceptions/{exceptionId}/adjust-entry exige um código de moeda ISO 4217 válido. POST /v1/matching/adjustments aceita qualquer string de moeda não vazia e não valida se ela pertence à ISO 4217.
  • reasonCode deve usar AMOUNT_CORRECTION, CURRENCY_CORRECTION, DATE_CORRECTION ou OTHER.

Registros de resolução


O Matcher registra no histórico da exceção e no stream de auditoria as ações de resolução que têm suporte. O Matcher não expõe contratos de resolução para divisão de exceção nem para baixa independente, e não aplica limiares de aprovação por valor nessas ações. Aplique qualquer exigência adicional de aprovação pelos controles da sua organização.

Operações em lote


Ao lidar com grandes volumes de exceções, os endpoints em lote permitem processar até 100 exceções em uma única requisição.

Atribuição em lote

Atribua várias exceções a um membro do time de uma vez:
cURL

Resolução em lote

Resolva várias exceções com uma resolução compartilhada:
cURL
A resposta inclui os arrays succeeded e failed, então você pode tratar falhas parciais de forma controlada.

Despacho em lote

Despache várias exceções para um sistema externo:
cURL

Comentários da exceção


Os comentários dão a cada exceção uma trilha de auditoria com notas de investigação e discussão do time. Adicione um comentário conforme o analista trabalha um item:
cURL
A listagem (GET) retorna a thread completa, do mais antigo para o mais novo. Você não pode adicionar comentários depois que uma exceção é resolvida. Apenas o autor do comentário pode excluí-lo, e o comentário deve pertencer à exceção identificada na URL.

Disputas


Quando uma exceção precisa de investigação formal ou envolve uma parte externa (um chargeback, uma consulta ao banco), escale-a para uma disputa. As disputas acompanham evidências, mudanças de estado e o resultado final. Liste as disputas com GET /v1/disputes (filtre por state, por exemplo OPEN) ou obtenha uma pelo disputeId dela.

Estados e transições de disputa

Uma disputa tem cinco estados: DRAFT, OPEN, PENDING_EVIDENCE, WON e LOST. O fluxo não é estritamente linear:
  • PENDING_EVIDENCE é opcional. Uma disputa OPEN pode ir direto para WON ou LOST sem nunca coletar evidências.
  • Uma disputa LOST pode ser reaberta para OPEN.
  • WON é terminal.
O conjunto completo de transições válidas:

Workflow de resolução de exceções


Use este fluxo para manter as revisões consistentes e auditáveis.
1

Triagem

Revise a fila por severidade e SLA. Comece pelas Críticas e Altas.
2

Investigar

Use o payload da exceção para entender o que falhou e quais candidatos existem.
  • Leia reason_details para ver por que a correspondência falhou.
  • Revise candidates em busca de correspondências próximas abaixo do limiar.
  • Procure padrões (mesma contraparte, formatos de referência recorrentes).
3

Resolver

Escolha a resolução que melhor reflete a realidade e a política.
  • Resolver diretamente: você pode fechar a exceção sem correspondência forçada nem ajuste.
  • Correspondência forçada: você encontrou o correspondente correto.
  • Ajustar: você precisa de um lançamento de ajuste para a variação.
4

Documentar

Registre detalhe suficiente para outra pessoa refazer a sua decisão depois:
  • O que você verificou
  • O que você concluiu
  • Links ou IDs das evidências de apoio
5

Despachar se necessário

Se a exceção exige tratamento externo, despache-a por um conector configurado. O despacho registra a ação, mas não muda o status da exceção. WEBHOOK exige uma URL fornecida pelo deploy. JIRA e ServiceNow exigem a configuração do conector deles. Se um conector retorna MTCH-0514, verifique o destino antes de tentar de novo, porque um registro de destino pode já existir.

Boas práticas


Comece pelos itens Críticos e Altos. Eles carregam o maior risco e os prazos mais apertados.
As notas não são opcionais. Trate-as como parte da resolução:
  • O que você verificou
  • Por que essa resolução está correta
  • Quaisquer IDs de ticket, extratos ou confirmações
Exceções que se repetem costumam apontar problemas de configuração:
  • Mesma contraparte → Normalize nomes ou mapeamento
  • Mesma janela de datas → Valide se a ingestão está completa
  • Mesma fonte → Revise o mapeamento de campos e as convenções de sinal
Se você usa correspondência forçada com frequência, as suas regras ou tolerâncias precisam de atenção.
Atribua as exceções pelos endpoints de atribuição. O Matcher não aplica regras de atribuição automaticamente.

Próximos passos


Geração de relatórios

Crie relatórios de conciliação, exporte resultados e apoie auditorias.

Roteamento de exceções

Revise os conceitos de severidade, SLA e roteamento de exceções.