- Uma tabela de tarifas define quanto de tarifa calcular: a moeda, o arredondamento e um ou mais itens de tarifa (fixo, percentual, escalonado ou baseado em expressão).
- Uma regra de tarifa decide quando uma tabela de tarifas se aplica. Ela pertence a um contexto de conciliação, aponta para um lado da correspondência e carrega predicados que os metadados de uma transação devem satisfazer. Quando os predicados batem, a regra seleciona a tabela de tarifas dela.
O que o tratamento de tarifas resolve
A conciliação falha quando um lado de uma transação inclui tarifas ou encargos que o outro lado não registra. Um gateway de pagamento desconta uma tarifa de processamento antes de liquidar. Um banco cobra uma tarifa de transferência. Um adquirente compensa tarifas contra os repasses. Sem tarifas modeladas, o Matcher trata essas diferenças como divergências de valor e gera exceções, mesmo quando você espera e documenta a diferença. As tabelas de tarifas descrevem o encargo, e as regras de tarifa escolhem quando usá-lo durante a normalização de tarifa habilitada.
Como as regras e as tabelas se encaixam
Uma regra de tarifa não contém o valor nem o cálculo da tarifa. Ela referencia uma tabela de tarifas por ID e a aplica às transações que os predicados dela selecionam.
- Você cria uma tabela de tarifas uma vez no nível do tenant. Muitas regras em muitos contextos podem reusá-la.
- Você cria uma regra de tarifa dentro de um contexto. Ela define um
side, umfeeScheduleId, umaprioritye uma lista depredicates. - Quando o Matcher processa um contexto com a normalização de tarifa habilitada, ele avalia as regras de tarifa do lado relevante em ordem de
priority(a menor primeiro). A primeira regra que bate seleciona a tabela referenciada.
Uma regra de tarifa sozinha não muda os valores de comparação. A avaliação de regras de tarifa afeta a conciliação de tarifas apenas quando o contexto define
feeNormalization como NET ou GROSS, o lado relevante tem regras e as moedas da transação e da tabela coincidem.Estrutura da regra de tarifa
Uma regra de tarifa pertence a um contexto e tem os campos a seguir.
Predicados
Cada predicado testa um campo de metadados da transação com um operador.
Operadores disponíveis:
Os campos ausentes são avaliados como
false para cada operador, exceto EXISTS.
Estrutura da tabela de tarifas
Uma tabela de tarifas é uma entidade no nível do tenant que calcula uma tarifa a partir de um valor bruto.
Itens de tarifa
Cada item declara umname, uma priority (ordem de aplicação, relevante para CASCADING), um structureType e uma structure específica do tipo.
Como gerenciar tabelas de tarifas
As tabelas de tarifas têm escopo de tenant e são gerenciadas independentemente de qualquer contexto.
Como criar uma tabela de tarifas
Esta tabela calcula uma tarifa de processamento de 2,9% sobre o valor bruto, denominada em BRL.cURL
Como simular uma tabela de tarifas
Antes de ligar uma tabela a uma regra, simule-a contra um valor bruto para confirmar a tarifa calculada.cURL
netAmount, totalFee e um detalhamento por item.
Uma tabela de tarifas não pode ser excluída enquanto uma regra de tarifa ou o histórico de variação de tarifa a referenciar. A requisição de exclusão retorna
409 Conflict com o código MTCH-0108 e inclui os contextos bloqueadores em errors sob fee-schedule.delete.blocking-contexts. Remova ou reaponte antes as referências atuais das regras. As referências históricas de variação continuam bloqueando a exclusão.Como gerenciar regras de tarifa
As regras de tarifa são criadas dentro de um contexto e referenciam uma tabela de tarifas.
Como criar uma regra de tarifa
Esta regra aplica a tabela de tarifas criada acima às transações do lado direito cujos metadados deinstitution são iguais a Banco do Brasil.
cURL
Fluxo de ponta a ponta
O tratamento de tarifas esperadas segue três etapas:
1
Crie a tabela de tarifas
Defina uma vez, no nível do tenant, como a tarifa é calculada, com
POST /v1/fee-schedules. Opcionalmente valide-a com o endpoint de simulação. Anote o id retornado.2
Crie a regra de tarifa no contexto
Dentro do contexto de conciliação, crie uma regra de tarifa com
POST /v1/contexts/{contextId}/fee-rules. Defina feeScheduleId com o id da tabela, escolha o side, defina uma priority única e adicione os predicates que selecionam as transações às quais a tarifa se aplica.3
Aplique durante a correspondência
Defina o
feeNormalization do contexto como NET ou GROSS. Durante a correspondência, o Matcher avalia as regras de cada lado relevante em ordem de priority. Uma regra que bate muda o valor de comparação apenas quando a tabela dela e a transação usam a mesma moeda.Boas práticas
Reutilize tabelas entre contextos
Reutilize tabelas entre contextos
Uma tabela de tarifas tem escopo de tenant e pode ser referenciada por muitas regras. Defina uma tabela uma vez (por exemplo “Card Processing - Visa”) e aponte para ela as regras de contextos diferentes. Editar a tabela atualiza cada regra que a usa.
Mantenha as prioridades únicas e intencionais
Mantenha as prioridades únicas e intencionais
As prioridades são únicas dentro de um contexto e compartilhadas entre as regras
LEFT, RIGHT e ANY. Ordene-as da mais específica para a mais geral, para uma regra estreita vencer antes de um fallback amplo.Delimite as regras com predicados precisos
Delimite as regras com predicados precisos
Os predicados são combinados com AND e testados contra os metadados da transação. Combine operadores (
EQUALS, IN, BETWEEN, EXISTS) para mirar exatamente as transações às quais uma tarifa se aplica e evitar atribuição indevida de tarifa.Simule antes de ligar uma tabela a uma regra
Simule antes de ligar uma tabela a uma regra
Use
POST /v1/fee-schedules/{scheduleId}/simulate para confirmar que uma tabela produz a tarifa esperada para valores representativos antes de referenciá-la em uma regra.Reaponte as regras antes de excluir uma tabela
Reaponte as regras antes de excluir uma tabela
Uma tabela referenciada por uma regra ou pelo histórico de variação de tarifa não pode ser excluída (
409 MTCH-0108). A resposta de conflito lista os contextos bloqueadores em errors sob fee-schedule.delete.blocking-contexts. Atualize ou remova antes as referências atuais das regras; as referências históricas de variação continuam bloqueando a exclusão.Próximos passos
Regras de correspondência
Configure como o Matcher compara transações depois de considerar as tarifas esperadas.
Roteamento de exceções
Revise a atribuição explícita, o despacho e o comportamento de callback para exceções que o tratamento de tarifas não cobre.
API de tabelas de tarifas
Referência completa da API para os endpoints de tabela de tarifas.
API de regras de tarifa
Referência completa da API para os endpoints de regra de tarifa.

