Visão geral
A conciliação multi-moeda converte ambos os valores das transações para uma moeda base usando a taxa de câmbio apropriada e, em seguida, aplica as regras de conciliação padrão. Se os valores convertidos estiverem dentro da tolerância, o Matcher cria uma correspondência. Caso contrário, cria uma exceção para revisão.
Como funciona
O suporte multi-moeda é integrado aos tipos de contexto existentes (
1:1, 1:N, N:M) e às regras de match — não existe um tipo de contexto “multi-moeda” separado.
Quando as transações possuem moedas diferentes, o Matcher usa os campos amountBase e currencyBase de cada transação para comparar valores convertidos. Há duas formas de preencher esses campos base:
- No momento da ingestão — o valor base e a moeda base são fornecidos a montante quando a transação é ingerida. Os valores do momento da ingestão sempre têm prioridade.
- No momento do match — quando uma transação não tem um valor base do momento da ingestão, o Matcher deriva um a partir de dicas de câmbio por transação contidas na metadata da própria transação (consulte Câmbio a partir da metadata da transação abaixo).
Componentes principais
| Componente | Onde reside | Finalidade |
|---|---|---|
amountBase / currencyBase | Campos da transação | Valores pré-convertidos para comparação |
matchBaseAmount / matchBaseCurrency | Configuração da regra | Instrui a regra a comparar valores base em vez dos originais |
fx_rate, fx_base_currency, fx_notional_expr | Metadata da transação | Dicas de câmbio por transação usadas para derivar o valor base no momento do match |
Configurando regras para multi-moeda
Habilite a comparação multi-moeda definindo
matchBaseAmount e matchBaseCurrency como true na configuração da regra.
Regra exact com correspondência de valor base
cURL
matchBaseAmount é true, a regra compara os campos amountBase em vez de amount. Quando matchBaseCurrency é true, compara currencyBase em vez de currency.
Regra tolerance com correspondência de valor base
cURL
Score de confiança
Os camposmatchScore e matchBaseScore são aceitos e validados na configuração da regra, mas não influenciam o score de confiança calculado. O mecanismo de scoring sempre usa os pesos fixos internos dos componentes (DefaultConfidenceWeights: valor 40, moeda 30, data 20, referência 10) para produzir um score de 0–100. Valores como matchScore: 100 ou matchBaseScore: 90 não são aplicados diretamente como a saída da correspondência.
Esses campos estão atualmente reservados para uso futuro (mantidos por paridade entre as configurações de regra e para métricas); defini-los não tem efeito sobre como uma correspondência é pontuada ou confirmada automaticamente hoje.
Para o modelo completo de scoring, consulte Score de confiança.
Câmbio a partir da metadata da transação
Quando uma transação chega sem um valor base do momento da ingestão, o Matcher ainda pode convertê-la no momento do match usando dicas de câmbio contidas na
metadata dessa transação. O Matcher não chama nenhum provedor de taxas externo — a taxa viaja com a linha.
A conversão só é executada quando fx_base_currency está presente, e nunca sobrescreve um valor base do momento da ingestão (a ingestão sempre vence). O amount e a currency originais nunca são alterados — a conversão muda apenas a comparação.
Campos de metadata
| Campo de metadata | Obrigatório | Finalidade |
|---|---|---|
fx_base_currency | Sim (para acionar) | A moeda base para a qual o valor é convertido. Torna-se currencyBase. |
fx_rate | Sim, a menos que fx_notional_expr esteja definido | Taxa multiplicativa. amountBase = amount * fx_rate. |
fx_notional_expr | Não | Expressão avaliada contra a metadata da transação para derivar diretamente o notional base. Quando presente, tem prioridade sobre fx_rate. |
fx_rate_source | Não | Rótulo opcional que identifica de onde a taxa veio, mantido para validação e auditoria. O padrão é metadata. |
Exemplo de transação com metadata de câmbio
amountBase = 1000.00 * 1.085 = 1085.00 e currencyBase = USD, depois compara com o outro lado usando as configurações matchBaseAmount / matchBaseCurrency da regra.
Se uma transação já carrega um valor base do momento da ingestão, essas dicas de metadata são ignoradas. Se as dicas estiverem ausentes ou malformadas (taxa não parseável, expressão falha), a transação simplesmente não participa da correspondência por valor base — a execução não é abortada.
Campos da transação
Para conciliação multi-moeda, as transações devem incluir tanto os campos de moeda original quanto os de moeda base:
| Campo | Tipo | Descrição |
|---|---|---|
amount | Decimal | Valor original da transação |
currency | String | Código ISO 4217 da moeda original |
amountBase | Decimal | Valor convertido para a moeda base |
currencyBase | String | Código ISO 4217 da moeda base |
Exemplo de transação
Exemplo: conciliação cross-currency
Origem (conta EUR):
| ID | Valor | Valor base |
|---|---|---|
| txn_001 | 1.000,00 EUR | 1.085,00 USD |
| ID | Valor | Valor base |
|---|---|---|
| txn_002 | 1.095,00 USD | 1.095,00 USD |
matchBaseAmount: true, percentTolerance: 0.02):
- Valores base: 1.095,00
- Variância: $10,00 (0,92%)
- Tolerância: 2%
- Resultado: Corresponde (0,92% < 2%)
Melhores práticas
Pré-converta valores na ingestão
Pré-converta valores na ingestão
Popule amountBase e currencyBase durante o upload de arquivo ou ingestão. Isso evita consultas de câmbio em tempo de execução e garante resultados reproduzíveis.
Reflita a incerteza de câmbio pelo desenho da regra
Reflita a incerteza de câmbio pelo desenho da regra
matchBaseScore e matchScore são campos reservados e não alteram o score de confiança calculado — o mecanismo sempre usa os pesos fixos 40/30/20/10. Para sinalizar correspondências com conversão de câmbio para revisão, desenhe a própria regra (por exemplo, tolerâncias mais rígidas ou verificações obrigatórias de referência/data) em vez de depender desses campos de score.Combine com regras de tolerância
Combine com regras de tolerância
Conversões de câmbio introduzem pequenas variâncias. Use regras TOLERANCE com matchBaseAmount para permitir diferenças de arredondamento e de timing de taxas.
Documente sua escolha de moeda base
Documente sua escolha de moeda base
Use uma moeda base consistente em todos os contextos. USD é comum para operações internacionais; use sua moeda de relatório para cenários doméstico + internacional.
Próximos passos
Pontuação de Confiança
Como as pontuações de correspondência funcionam e quais limites se aplicam.
Regras de Correspondência
Referência completa para tipos de regra e campos de configuração.

