Pular para o conteúdo principal
Regras de match definem como o Matcher compara transações entre fontes. Você pode impor matches estritos, permitir variância controlada ou modelar lógica mais avançada com condições compostas.

Como as regras funcionam


Quando uma execução de matching inicia, o Matcher avalia as regras em ordem de prioridade.
  • As regras são avaliadas do menor número de prioridade para o maior.
  • A primeira regra que produz um match determina o resultado.
  • Se nenhuma regra faz match, a transação se torna uma exceção.
Esta abordagem garante matching determinístico enquanto permite regras progressivamente mais flexíveis como fallbacks.

Tipos de regra


Exact

Requer um match estrito nos campos configurados.
  • Melhor para: Matches determinísticos onde valores devem alinhar 1:1.

Tolerance

Permite variância controlada no matching de valores.
  • Melhor para: Padrões de variância conhecidos como taxas, arredondamento ou diferenças de câmbio.

Date lag

Permite diferenças de data entre transações.
  • Melhor para: Atrasos de lançamento entre sistemas.

Criando regras de match


Regra exact

cURL
curl -X POST "https://api.matcher.example.com/v1/config/contexts/{contextId}/rules" \
 -H "Authorization: Bearer $TOKEN" \
 -H "Content-Type: application/json" \
 -d '{
   "type": "EXACT",
   "priority": 1,
   "config": {
     "fields": ["amount", "currency", "date"]
   }
 }'

Response

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "contextId": "969a11cd-6b7d-4e71-b82b-0828e0603149",
  "type": "EXACT",
  "priority": 1,
  "config": {
    "fields": ["amount", "currency", "date"]
  },
  "createdAt": "2026-02-02T16:40:00Z",
  "updatedAt": "2026-02-02T16:40:00Z"
}
Referência da API: Criar regra de match

Regra tolerance

cURL
curl -X POST "https://api.matcher.example.com/v1/config/contexts/{contextId}/rules" \
 -H "Authorization: Bearer $TOKEN" \
 -H "Content-Type: application/json" \
 -d '{
   "type": "TOLERANCE",
   "priority": 2,
   "config": {
     "tolerancePercent": 1.0,
     "toleranceAbsolute": 5.0
   }
 }'
Exemplo:
  • Transação A: R$1.000,00
  • Transação B: R$1.008,00
  • Variância: 0,8% → Match (dentro da tolerância de 1%)

Regra date lag

cURL
curl -X POST "https://api.matcher.example.com/v1/config/contexts/{contextId}/rules" \
 -H "Authorization: Bearer $TOKEN" \
 -H "Content-Type: application/json" \
 -d '{
   "type": "DATE_LAG",
   "priority": 3,
   "config": {
     "maxDays": 3
   }
 }'

Prioridade de regras


As regras são avaliadas por prioridade. Números menores são executados primeiro.

Estratégia de prioridade

PrioridadeTipo de regraCaso de uso
1–10EXACTMatches determinísticos
11–50TOLERANCEVariância pequena e esperada
51–100DATE_LAGDiferenças de data entre sistemas

Reordenar regras

Você pode reordenar regras fornecendo os IDs das regras na ordem desejada:
cURL
curl -X POST "https://api.matcher.example.com/v1/config/contexts/{contextId}/rules/reorder" \
 -H "Authorization: Bearer $TOKEN" \
 -H "Content-Type: application/json" \
 -d '{
   "ruleIds": [
     "550e8400-e29b-41d4-a716-446655440001",
     "550e8400-e29b-41d4-a716-446655440002",
     "550e8400-e29b-41d4-a716-446655440000"
   ]
 }'
Referência da API: Reordenar regras de match

Testando regras


Teste as regras em modo dry-run antes de confirmar os matches.
cURL
curl -X POST "https://api.matcher.example.com/v1/matching/contexts/{contextId}/run" \
 -H "Authorization: Bearer $TOKEN" \
 -H "Content-Type: application/json" \
 -d '{
   "mode": "DRY_RUN"
 }'
O modo dry run avalia todas as regras e mostra matches potenciais sem persistir os resultados.

Gerenciando regras


Listar regras

cURL
curl -X GET "https://api.matcher.example.com/v1/config/contexts/{contextId}/rules" \
 -H "Authorization: Bearer $TOKEN"

Response

O endpoint de listagem retorna uma visão resumida das regras. Para ver os detalhes completos de configuração de uma regra específica, use o endpoint individual da regra ou a resposta de criação que inclui o objeto config completo.
{
  "items": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "contextId": "969a11cd-6b7d-4e71-b82b-0828e0603149",
      "type": "EXACT",
      "priority": 1,
      "config": {
        "fields": ["amount", "currency", "date"]
      },
      "createdAt": "2026-02-02T16:40:00Z",
      "updatedAt": "2026-02-02T16:40:00Z"
    }
  ],
  "limit": 20,
  "hasMore": false
}
Referência da API: Listar regras de match

Atualizar uma regra

cURL
curl -X PUT "https://api.matcher.example.com/v1/config/contexts/{contextId}/rules/{ruleId}" \
 -H "Authorization: Bearer $TOKEN" \
 -H "Content-Type: application/json" \
 -d '{
   "priority": 5,
   "type": "TOLERANCE",
   "config": {
     "tolerancePercent": 2.0
   }
 }'
Referência da API: Atualizar regra de match

Excluir uma regra

cURL
curl -X DELETE "https://api.matcher.example.com/v1/config/contexts/{contextId}/rules/{ruleId}" \
 -H "Authorization: Bearer $TOKEN"
Referência da API: Excluir regra de match

Boas práticas


Comece com regras exatas. Adicione regras de tolerância apenas para a variância que você pode justificar e explicar.
Use gaps (1, 10, 20, 50) para que você possa inserir regras sem renumerar todo o seu conjunto.
Trate atualizações de regras como mudanças de produção. Valide taxas de match e volume de exceções antes de confirmar.
Uma regra deve documentar a variância que cobre e o risco que introduz.
Se uma regra nunca faz match, ela pode ser desnecessária. Se faz match com muita frequência, pode ser muito ampla.
Alta tolerância aumenta falsos positivos. Use como fallback e revise os resultados cuidadosamente.

Próximos passos