Pular para o conteúdo principal
Exceções são transações que o Matcher não consegue reconciliar automaticamente. Este guia mostra como revisar exceções, priorizar o trabalho com base na severidade e resolver itens com o nível adequado de documentação.

O que é uma exceção?


Uma exceção é criada quando uma transação de uma fonte não possui uma contrapartida válida em outra fonte. Causas comuns incluem:
  • Nenhum candidato encontrado: Nenhuma transação na outra fonte atende aos critérios da regra ativa.
  • Abaixo do limite de confiança: Candidatos existem, mas pontuam abaixo da confiança mínima (padrão: 60).
  • Rejeição por duplicidade: Uma correspondência anterior foi rejeitada e nenhum candidato alternativo permanece.
  • Desbalanceamento de fonte: Uma fonte contém transações que estão ausentes na outra.

Ciclo de vida da exceção


Exceções passam por um fluxo de trabalho simples:
  • Quando o Matcher não consegue reconciliar uma transação, ele cria uma exceção com status OPEN.
  • A partir daí, a exceção é atribuída a um analista para investigação (ASSIGNED).
  • Se a resolução depende de um sistema externo — como um chamado JIRA despachado ou callback de webhook — a exceção passa para PENDING_RESOLUTION até que a resposta externa chegue.
  • Quando o analista resolve a exceção (forçar correspondência, ajuste ou callback externo), ela transiciona para RESOLVED. A resolução não depende do despacho: uma exceção pode passar para RESOLVED a partir de OPEN, ASSIGNED ou PENDING_RESOLUTION.
Ciclo de vida da exceção do Matcher

Definições de status

StatusDescriçãoQuem Pode Transicionar
OPENNova exceção aguardando atribuiçãoSistema
ASSIGNEDAtribuída a um analista para investigaçãoSistema, Analista
PENDING_RESOLUTIONAguardando resposta externa (JIRA, callback de webhook)Sistema
RESOLVEDFechada com uma resolução auditávelAnalista, Sistema

Endpoints da máquina de estados

Os endpoints de exceção individual a seguir conduzem as transições no ciclo de vida acima. Cada um é endereçado pelo exceptionId da exceção no caminho.
EndpointMétodo e caminhoFinalidade
Atribuir exceçãoPOST /v1/exceptions/{exceptionId}/assignAtribui a exceção a um analista. Corpo: assignee (obrigatório). Retorna a exceção atualizada. (OPENASSIGNED)
Despachar exceçãoPOST /v1/exceptions/{exceptionId}/dispatchDespacha a exceção para um sistema externo de tickets (por exemplo, JIRA, ServiceNow). Corpo: DispatchRequest. Retorna um DispatchResponse. (ASSIGNEDPENDING_RESOLUTION)
Resolver exceçãoPOST /v1/exceptions/{exceptionId}/resolveResolve uma única exceção. Corpo: resolution (obrigatório), reason (opcional). Espelha a validação de resolução em lote para uma exceção. (OPENASSIGNEDPENDING_RESOLUTIONRESOLVED)
Ajustar lançamentoPOST /v1/exceptions/{exceptionId}/adjust-entryResolve uma exceção criando um lançamento contábil de ajuste. Corpo: amount, currency, effectiveAt, notes, reasonCode (todos obrigatórios). (resolve via ajuste)
Histórico da exceçãoGET /v1/exceptions/{exceptionId}/historyRetorna o histórico ordenado de transições de estado e ações da exceção (HistoryResponse). Suporta paginação por cursor/limit. (somente leitura)
Selecionar IDs de exceçãoGET /v1/exceptions/idsRetorna o conjunto completo de IDs de exceção que correspondem aos filtros atuais (contextId, status, severity, reason, …). Use para conduzir uma seleção em lote antes de chamar os endpoints em lote. (somente leitura)

Exemplo de atribuição

cURL

Exemplo de resolução

cURL

Exemplo de ajuste de lançamento

cURL

Seleção em lote com selectExceptionIDs

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

Severidade da exceção


O Matcher classifica exceções por severidade para que você possa trabalhar na fila na ordem correta.
SeveridadeCritériosSLA
CríticaValor >= 100.000 OU idade >= 120 horas24 horas
AltaValor >= 10.000 OU idade >= 72 horas72 horas
MédiaValor >= 1.000 OU idade >= 24 horas120 horas (5 dias)
BaixaTodos os outros168 horas (7 dias)

Escalação de severidade

A severidade é reavaliada conforme a exceção envelhece. A classificação usa lógica OU — o valor ou o tempo decorrido é suficiente para acionar uma severidade mais alta:
  • Uma exceção abaixo de 1.000 começa como Baixa, mas escala para Média após 24 horas.
  • Uma exceção abaixo de 10.000 escala para Alta após 72 horas.
  • Qualquer exceção não resolvida escala para Crítica após 120 horas.

Métodos de resolução


Você pode resolver uma exceção de quatro maneiras.

1. Forçar correspondência

Vincule manualmente transações quando você confirmou que elas pertencem juntas, mas o sistema não conseguiu correspondê-las. Use Forçar correspondência quando:
  • A contrapartida correta existe, mas variações bloquearam a correspondência automática.
  • Você pode explicar e documentar claramente a justificativa.
  • A variação é esperada (taxas, timing, arredondamento).

2. Criar ajuste

Crie um lançamento de ajuste para contabilizar uma variação ou equilibrar um item não correspondido. Tipos comuns de ajuste:
TipoCaso de Uso
BANK_FEETaxas bancárias não registradas no razão
FX_VARIANCEDiferenças de conversão de moeda
TIMING_DIFFERENCEAjustes de timing de liquidação
ROUNDINGPequenas diferenças de arredondamento
CORRECTIONCorreções de erros
OTHEROutras variações documentadas
Regras de validação:
  • Valores de ajuste devem ser positivos. Uma requisição com valor zero ou negativo retorna um erro 400 Bad Request.
  • Códigos de moeda devem seguir o formato ISO 4217.
  • Códigos de motivo devem usar um valor predefinido válido: AMOUNT_CORRECTION, CURRENCY_CORRECTION, DATE_CORRECTION ou OTHER.

3. Baixa contábil (write-off)

Faça a baixa contábil de uma transação que não possui contrapartida válida. Isso deve ser raro e tipicamente requer aprovação. Motivos de baixa contábil (write-off):
MotivoDescrição
DUPLICATE_ENTRYTransação foi lançada duas vezes
CANCELLEDTransação foi revertida ou cancelada
NOT_APPLICABLENão pertence ao escopo desta reconciliação
BELOW_THRESHOLDValor está abaixo do limite de investigação
APPROVED_VARIANCEVariação aprovada pela gerência

4. Dividir transação

Use a divisão quando uma transação deve corresponder a múltiplas contrapartidas.

Requisitos de auditoria


Toda resolução cria um registro de auditoria. Alguns tipos de resolução requerem evidências e aprovações mais fortes.

Documentação necessária por tipo de resolução

ResoluçãoCampos NecessáriosAprovação Necessária
Forçar correspondênciareason, notesNão (exceto se valor > limite)
Ajusteadjustment_type, amount, descriptionSe valor > $1.000
Baixa contábil (write-off)reason, notes, reference_documentSempre
Divisãosplits[] com valores e alvosNã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 múltiplas exceções a um membro da equipe de uma vez:
cURL

Resolução em lote

Resolva múltiplas exceções com uma resolução compartilhada:
cURL
A resposta inclui os arrays succeeded e failed, para que você possa lidar com falhas parciais de forma elegante.

Despacho em lote

Despache múltiplas exceções para um sistema externo:
cURL

Comentários de exceções


Comentários dão a cada exceção uma trilha de auditoria com notas de investigação e discussão da equipe — algo inestimável quando outra pessoa precisa assumir ou revisar o caso mais tarde. Adicione um comentário conforme um analista trabalha um item:
cURL
A listagem (GET) retorna a thread do mais recente para o mais antigo com paginação por cursor/limit, e um comentário pode ser removido pelo seu commentId.
AçãoMétodo e caminhoCampos principais
Adicionar comentárioPOST /v1/exceptions/{exceptionId}/commentscontent (corpo do comentário)
Listar comentáriosGET /v1/exceptions/{exceptionId}/commentscursor, limit (paginação)
Excluir comentárioDELETE /v1/exceptions/{exceptionId}/comments/{commentId}commentId no caminho

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. Disputas rastreiam evidências, mudanças de estado e o resultado final. Liste disputas com GET /v1/disputes (filtre por state, por exemplo OPEN) ou recupere uma pelo seu disputeId.

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 diretamente para WON ou LOST sem nunca coletar evidências.
  • Uma disputa LOST pode ser reaberta de volta para OPEN.
  • WON é terminal.
O conjunto completo de transições válidas:
Estado de origemPróximos estados permitidosNotas
DRAFTOPENA disputa é aberta para investigação
OPENPENDING_EVIDENCE, WON, LOSTPode resolver diretamente ou solicitar evidências primeiro
PENDING_EVIDENCEOPEN, WON, LOSTRetorna para OPEN ou resolve assim que as evidências forem revisadas
WON(nenhum)Estado terminal
LOSTOPENUma disputa perdida pode ser reaberta

Fluxo de trabalho de resolução de exceções


Use este fluxo para manter revisões consistentes e amigáveis para auditoria.
1

Triagem

Revise a fila por severidade e SLA. Comece com Crítica e Alta.
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 para correspondências próximas abaixo do limite.
  • Procure por padrões (mesma contrapartida, formatos de referência recorrentes).
3

Resolver

Escolha a resolução que melhor reflete a realidade e a política.
  • Forçar correspondência: Você encontrou a contrapartida correta.
  • Ajustar: Você precisa de um lançamento de ajuste para variação.
  • Dividir: Uma transação mapeia para múltiplas contrapartidas.
  • Baixa contábil (write-off): Nenhuma contrapartida existe e a política permite (aprovação necessária).
4

Documentar

Capture detalhes suficientes para que outra pessoa possa reproduzir sua decisão depois:
  • O que você verificou
  • O que você concluiu
  • Links ou IDs para evidências de suporte
5

Despachar se necessário

Se a exceção requer tratamento externo, despache-a para o JIRA ou um endpoint de webhook. A exceção passa para PENDING_RESOLUTION até que um callback confirme o resultado.

Boas práticas


Comece com itens Crítica e Alta. Eles carregam o maior risco e os prazos mais apertados.
Notas não são opcionais. Trate-as como parte da resolução:
  • O que você verificou
  • Por que esta resolução está correta
  • Quaisquer IDs de tickets, extratos ou confirmações
Exceções repetidas geralmente apontam para problemas de configuração:
  • Mesma contrapartida → Normalize nomes ou mapeamento
  • Mesma janela de datas → Valide completude da ingestão
  • Mesma fonte → Revise mapeamento de campos e convenções de sinal
Se você força correspondências regularmente, suas regras ou tolerâncias precisam de atenção.
Use regras de atribuição para reduzir o tempo de triagem e manter a propriedade clara.
Se você faz baixa contábil frequentemente, revisite limites, escopo do contexto ou qualidade de dados upstream.

Próximos passos


Gerando Relatórios

Crie relatórios de reconciliação, exporte resultados e suporte auditorias.

Roteamento de Exceções

Configure regras de severidade, SLAs e atribuição automática.