Skip to main content
Após executar um job de correspondência, você precisa revisar os resultados. Este guia explica como interpretar os resultados, entender as pontuações de confiança e rejeitar grupos propostos ou revogar grupos confirmados.

Ciclo de vida do status da correspondência


As correspondências avançam por um ciclo de vida definido:
  • Quando o motor de correspondência encontra um par de transações que pertencem juntas, ele cria uma correspondência com status PROPOSED.
  • Correspondências elegíveis criadas pelo motor (pontuação 90 ou acima) pelas regras EXACT e TOLERANCE são confirmadas automaticamente de imediato. Correspondências manuais são criadas com status CONFIRMED. Correspondências FUZZY e DATE_LAG permanecem em PROPOSED e nunca são confirmadas automaticamente.
  • Correspondências que não são confirmadas automaticamente permanecem em PROPOSED. A API pública de grupos de correspondência não expõe confirmação manual, mas você pode rejeitar um grupo proposto por meio da operação unmatch e de um motivo obrigatório.
  • Rejeitar um grupo PROPOSED devolve suas transações ao pool de não correspondidas. Um grupo CONFIRMED só pode ser revogado quando o Matcher também consegue reverter cada efeito residual/de item em aberto aplicado por essa confirmação; se tiver êxito, essas mudanças e a devolução das transações ocorrem de forma atômica.
Correspondências FUZZY e DATE_LAG nunca são confirmadas automaticamente. A confirmação automática com pontuação ≥ 90 se aplica a correspondências elegíveis EXACT e TOLERANCE criadas pelo motor. Uma correspondência manual é criada com status CONFIRMED. Uma correspondência produzida por uma regra FUZZY ou DATE_LAG permanece em PROPOSED, independentemente de sua pontuação — mesmo uma correspondência FUZZY com pontuação 90+. Você pode rejeitá-la por meio da operação unmatch; não existe uma operação pública de confirmação manual. Veja Pontuação de confiança.

Ciclo de vida do status de uma correspondência.

Definições de status

Níveis de confiança


O Matcher atribui uma pontuação de confiança (0-100) a cada correspondência proposta. A pontuação determina como a correspondência é tratada.

Níveis de confiança

Entendendo a pontuação

A pontuação de confiança é calculada a partir de componentes ponderados: Exemplo de detalhamento da pontuação:

Entendendo variações


Quando correspondências têm diferenças, revise os detalhes da variação:

Variação de valor

Causas comuns de variação de valor:
  • Taxas bancárias
  • Diferenças de conversão de moeda
  • Diferenças de arredondamento
  • Pagamentos parciais

Variação de data

Causas comuns de variação de data:
  • Tempo de liquidação
  • Diferenças de fuso horário
  • Data de lançamento vs. data da transação
  • Processamento em finais de semana/feriados

Candidatos a correspondência, itens em aberto e ajustes


À medida que você trabalha uma fila de revisão, três perguntas surgem repetidamente: por que o motor propôs esse pareamento?, o que ainda está pendente após uma correspondência parcial? e como eu lanço uma pequena diferença para que ambos os lados se equilibrem? O Matcher responde a cada uma delas com uma superfície dedicada — candidatos a correspondência, itens em aberto e ajustes.

Listar candidatos a correspondência

Recupere as propostas de candidatos ranqueadas que o motor considerou para uma transação — o “porquê” por trás de uma correspondência proposta, incluindo as contribuições por componente.
cURL
GET /v1/matching/candidates aceita os parâmetros de consulta contextId, transactionId e limit, e retorna um CandidateProposalsResponse. O valor padrão de limit é 50 e ele aceita valores de 1 a 200. O seletor de candidatos examina no máximo 5.000 transações não correspondidas do lado oposto e retorna apenas candidatos 1:1. Ele aplica o mecanismo de pontuação compartilhado aos dados brutos, sem a normalização de tarifas em tempo de execução nem a correspondência por faixa de variação cambial usadas por uma execução de correspondência.

Listar itens em aberto

Itens em aberto são saldos residuais deixados quando uma transação é apenas parcialmente compensada. Acompanhe-os para expor valores que ainda precisam ser liquidados ou que envelheceram além do seu limite.
cURL
GET /v1/matching/contexts/{contextId}/open-items suporta um filtro status, além da paginação limit/cursor.

Status de itens em aberto

O ciclo de vida normal flui OPENPARTIALLY_CLEAREDCLEARED, com qualquer item ainda em aberto podendo se tornar AGED assim que ultrapassa o limite de envelhecimento. Um unmatch bem-sucedido de grupo confirmado reverte os efeitos residuais daquele grupo. Se não restar nenhuma contribuição ativa por trás da obrigação, o item termina em WITHDRAWN: ele foi retirado, não compensado nem envelhecido.

Criar um ajuste

Lance um ajuste contábil para contabilizar uma variação (taxa bancária, diferença de câmbio, arredondamento, baixa contábil e assim por diante) contra um grupo de correspondência ou transação.
cURL
POST /v1/matching/adjustments requer o parâmetro de consulta contextId. Campos do corpo:
String
obrigatório
Valor do ajuste
String
obrigatório
String de moeda não vazia. O Matcher não valida a associação ao padrão ISO 4217 para esse ajuste.
String
obrigatório
DEBIT ou CREDIT
String
obrigatório
BANK_FEE, FX_DIFFERENCE, ROUNDING, WRITE_OFF ou MISCELLANEOUS
String
obrigatório
Motivo de negócio para o ajuste
String
obrigatório
Descrição legível por humanos
UUID
Grupo de correspondência ao qual o ajuste se aplica
UUID
Transação à qual o ajuste se aplica
Pelo menos um dos campos matchGroupId ou transactionId é obrigatório.

Rejeitando ou revogando grupos de correspondência


Use a operação unmatch para rejeitar um grupo PROPOSED ou revogar um grupo CONFIRMED. Após uma operação bem-sucedida, o Matcher devolve as transações do grupo ao status UNMATCHED para que elas possam ser correspondidas novamente. Use DELETE /v1/matching/groups/{matchGroupId} com o parâmetro de consulta obrigatório contextId e um reason no corpo da solicitação (operationId unmatch):
cURL
Um unmatch bem-sucedido retorna 204 No Content. O campo reason é obrigatório (não vazio). Para um grupo CONFIRMED, o Matcher verifica a reversão de residuais/itens em aberto antes de alterar o grupo ou suas transações; uma operação bem-sucedida adiciona de forma atômica as entradas compensatórias no ledger, revoga o grupo e devolve suas transações para UNMATCHED.
A operação unmatch exige um motivo não vazio. Para um grupo confirmado, ela ou reverte os efeitos residuais/de itens em aberto junto com o grupo e suas transações, ou retorna 409 Conflict antes de alterar qualquer coisa. Uma entrada posterior ainda ativa sobre o residual bloqueia a reversão anterior; uma obrigação mais recente e ativa com a mesma identidade também bloqueia a operação quando restaurar um item terminal causaria conflito.

Quando rejeitar ou revogar

Cenários comuns para rejeitar ou revogar um grupo:
  • Correspondência incorreta confirmada: A correspondência foi aprovada mas as transações na verdade pertencem a registros diferentes
  • Nova informação: Dados adicionais mostram que a correspondência está errada
  • Correção na origem: O sistema de origem emitiu uma correção ou reversão
  • Transação duplicada: Uma das transações era uma duplicata que deveria ser removida

O que acontece após unmatch

Quando a correspondência de um grupo é desfeita:
  1. Os residuais confirmados são verificados primeiro: O Matcher verifica se cada efeito residual/de item em aberto de um grupo CONFIRMED pode ser revertido. Se uma entrada posterior ou uma obrigação mais recente em conflito bloquear a reversão, a operação retorna 409 Conflict e deixa o grupo, as transações e os itens em aberto inalterados.
  2. O status da correspondência muda: Um grupo CONFIRMED passa a REVOKED; um grupo ainda em PROPOSED passa a REJECTED.
  3. Transações retornadas: Em caso de sucesso, todas as transações associadas retornam ao status UNMATCHED.
  4. Os efeitos de itens em aberto são revertidos: Em um unmatch de grupo confirmado, as entradas compensatórias do ledger retiram os efeitos residuais do grupo na mesma transação. Se não restar contribuição ativa por trás de uma obrigação, ela passa ao status terminal WITHDRAWN e não é carregada para a próxima execução.
  5. Motivo registrado: O grupo armazena o motivo fornecido para rejeição ou revogação.
  6. Evento de streaming emitido: Um evento match_group.unmatched é emitido apenas quando o grupo estava previamente em CONFIRMED.
  7. Nova correspondência possível: As transações podem ser correspondidas novamente na próxima execução após um unmatch bem-sucedido.

Melhores práticas


Revise primeiro as correspondências com as menores pontuações de confiança. Estas são mais propensas a estar incorretas e precisam de mais atenção.
Os limites de confiança são fixos no sistema. Correspondências elegíveis EXACT e TOLERANCE criadas pelo motor com pontuações de 90 ou acima são confirmadas automaticamente. Correspondências manuais são criadas CONFIRMED. Pontuações entre 60 e 89 permanecem em PROPOSED, e pontuações abaixo de 60 se tornam exceções. Esses valores não são configuráveis por contexto. As correspondências FUZZY e DATE_LAG são a exceção: elas nunca são confirmadas automaticamente e permanecem em PROPOSED, independentemente da pontuação. Use o ajuste de regras (prioridade, valores de tolerância) para influenciar quantas correspondências caem em cada faixa.
Forneça um motivo específico ao rejeitar um grupo proposto ou revogar um grupo confirmado. A operação unmatch exige esse motivo e o armazena com o grupo.
Revise o grupo e suas transações de origem antes de usar a operação unmatch. O Matcher expõe essa operação por grupo; ele não expõe confirmação em lote.
Independentemente da pontuação de confiança, dê atenção extra a correspondências de alto valor. O impacto de uma correspondência incorreta é proporcional ao valor.

Próximos passos


Resolvendo exceções

Lide com transações que não puderam ser correspondidas automaticamente.

Pontuação de confiança

Aprofunde-se em como as pontuações de confiança são calculadas.