Diretórios multivaltos
(Seção Operações e Gerenciamento)
1) Tarefa e campo de aplicação
O catálogo multiverso é uma única fonte de verdade sobre preços/comissões/impostos para diferentes moedas, regiões e canais. Ele fornece:- vitrine de preços correta (UX, confiança),
- Reprodução de cálculos (auditoria, devoluções),
- previsibilidade econômica (margem/impostos),
- Complaens (impostos, sanções, restrições cambiais).
2) Modelo de dados (árbitro)
Entidades:- Product/SKU: `{sku_id, title, attributes, region_policies[]}`
- PriceList: `{pricelist_id, base_currency, effective_from, effective_to, version}`
- PriceItem: `{sku_id, base_price, base_currency, tax_class, pricing_model, promo_refs[]}`
- FXRate: `{pair: EUR→USD, rate, source, method, precision, effective_from, version}`
- `minor_units` (ISO 4217; JPY = 0, USD/EUR = 2, KWD = 3; para crypto - até 8)
- 'rounding _ modo': 'HALF _ UP', 'BANKERS', 'FLOOR '/' CEIL' (impostos/reguladores)
3) Fontes e políticas FX (taxas de câmbio)
Fontes: provedores de cursos (comerciais/bancos centrais), sua própria TWAP/mediana.
Política de atualização: frequência (1-15 min para voláteis, 1 dia para estáveis), atraso na publicação.
Marcaps: 'rate (1 + fx _ markup _ bps)' para o lado do cliente; regras transparentes per-canal/região.
A janela de cotação garantida (rate lock) é de 5 a 30 min com 'fx _ versão' no pedido.
Anti-salto: mudança por tique, circuito-breakers, fallback para a última cotação de valor.
Versioning: Cada publicação de cursos tem «version», «effectiva _ from»; guarde a história para devoluções/disputas.
4) Estratégias de preços
Base + FX: armazenando o preço básico em um «núcleo» (EUR, por exemplo), convertendo na vitrine.
Para-currency folhas: preços pré-calculados para moedas-chave (melhor UX, previsibilidade).
Mixed: top 10 das moedas, «cauda longa», on-the-fly.
Charm-pricing: `X. Por região, controle a acumulação de erros de arredondamento.
Comissões/taxas: payment fee, cross-border fee, network fee (crypto) - no diretório ou na etapa «Checkout Pricing».
5) Impostos e «inclusão»
VAT/GST incluído/excluído: EU - mais frequente VAT-inclusive; B2B pode ser sem IVA.
Camadas de impostos: federal/estadual/local; para jogos online - taxas específicas.
Limite: o imposto varia de circulação/categoria/região (threshold).
Arredondar impostos: per-item vs per-basket; os modos de arredondamento e ordem de cálculo devem ser definidos.
Yur. relatório: guarde 'tax _ rule _ version' no cheque/recibo.
6) Arredondamentos e precisão
Arredondar no último passo de exibição; no cálculo, guarde «alta precisão» (até 8-9 caracteres).
Use as bibliotecas decimal (sem flutuante binário) para crypto.
Cesta anti-drift: «bankers rounding» para somas, mas X-arredondado para exibição; fique com 'rounding _ scope'.
Regra do valor: a soma das linhas após as circunscrições deve corresponder ao total - use a distribuição dos últimos cêntimos/centavos (penny distribuição).
7) Diretórios, promoções e bandos
Promo-правила: `if region=A and currency in [EUR,USD] then discount=10% cap=50`.
Ordem de aplicação: (1) preço básico → (2) descontos → (3) impostos → (4) taxas → (5) arredondamento.
Distribuição do Bundle: proporcional à aba de posições até o desconto; para devoluções.
Promoção Threshold: entrega gratuita/bônus quando total≥X na moeda da cesta; armazenem o equivalente em moeda básica, mas registrem a versão FX.
8) Integração com pagamentos e complicações
Disponibilidade de câmbio: nem todas as moedas estão disponíveis para cada jogador/região/provedor de pagamento.
Guaranteed FX: permissão de prefixo por «fx _ versão» fixada; durante a exportação - pedido de confirmação do novo preço.
KUS/Sanções: barras de moedas/bancos/tokens, restrições de conversão.
Devoluções/chargeback: recalculação histórica 'fx _ versão' do pedido; comissão de retorno - por diretório na data da transação.
9) Arquitetura e contrato API
Leitura do catálogo:- `GET /catalog/prices? sku=…¤cy=…®ion=…&pricelist=…`
- Ответ: `{unit_price, currency, fx_version, pricelist_version, tax_breakdown[], fees[], display_price, rounding_mode}`
- `POST /pricing/quote { items[], region, currency, buyer_type }`
- Ответ: `{items_priced[], subtotal, discounts, taxes[], fees[], total, fx_version, lock_ttl, signature}`
- 'POST/pricing/commit
- `PriceListUpdated`, `FXRatePublished`, `TaxRuleChanged`, `PromoChanged` — с `version/effective_from`.
10) Em dinheiro e desempenho
Edge-dinheiro: chave 'pricelist: region: currency: sku: version'; O TTL para moedas estáveis é mais alto.
Warmup: Aquecimento das categorias top de lançamento da campanha.
SWR (stale-while-revalidate): para vitrines; checkout - apenas fresh.
Partial invalidation: deficiência por marcas de formatação 'sku', 'category', 'pricelist _ version'.
SLO: p95 ≤ 120 ms para vitrine, p95 ≤ 250 ms para cote, ≥99. 95% de disponibilidade.
11) Observação e auditoria
Traçado: 'trace _ id', 'pricelist _ versão', 'fx _ versão', 'tax _ rule _ versão' em todos os eventos.
Permanência: revistas WORM de publicações de listras/cursos; Corte de Merkle, assinaturas de lançamento (DSSE).
Receipts: cheque/recibo com disposição completa e hashtag de carga útil; guardar 7-10 anos (regulador).
Dashboards: variação de vitrina↔checkout, frequência de arredondamentos para cima/para baixo, erros FX, tempo de bloqueio de curso (lock TTL), RI promo.
12) Localização de exibição
Formato de moeda: símbolo/código (₴, €, $, AED), posição, separadores, espaço.
Regras locais: "₴ 1 234,56" vs "$1,234. 56”.
Psicologia: preços mágicos ('.99') nem sempre são apropriados em fintechs/jogos; teste para a região.
Assinaturas legais: «O preço inclui IVA», «A comissão da rede é cobrada separadamente».
13) Casos especiais
Moedas sem fração: JPY/ISK - menor _ units = 0.
Minor units de três nobres: KWD/BHD = 3.
Cripto: BTC/ETH/USDT - até 8 caracteres, rede fee separadamente; stablecoins ≠ «curso 1:1» no cruzamento border.
Preço duplo: «câmbio do catálogo» ≠ «moeda de cancelamento» (taxa de câmbio bancária). Documente o spread.
Esportes/jogos: limites para ganhos máximos na moeda do catálogo - armazenar equivalentes por 'fx _ versão' round.
14) SLO/SLI e métricas de sucesso
Correção: proporção de pedidos onde total _ checkout = total _ quote (£1 menor unit para as regras de distribuição) ≥ 99. 99%.
Estabilidade FX: a taxa de operações na janela rate lock ≥ de 99%.
Economia: margem/unidade vs plano; desvios por FX/arredondados (bps).
UX: Velocidade de cota p95, proporção de alíquotas na contagem de preços, vitrine NPS.
Auditoria: 100% dos cheques salvos com '_ versão' e assinatura.
15) Playbooks incidentes
«O preço na vitrine está na cesta»:1. freeze dinheiro deficiente, 2) forçar refresh chapa, 3) comparar 'pricelist _ versão '/' fx _ versão', 4) compensação política.
«O salto FX destrói as margens»:1. incluir mais markup/kap descont, 2) reduzir lock TTL, 3) mudar para a fonte fallback.
«O imposto não bate»:1. verificar 'tax _ rule _ versão', 2) validação de rounding _ scope, 3) regras hotfix e cestas de reposição.
«A promoção dá um preço negativo»:1. regras de proteção (min _ price), 2) desativar o vidro, 3) recalculação e auditoria.
16) Segurança e complacência
Policy-as-código: Controle de alterações nas folhas de price/FX/impostos por meio do PR + assinaturas de lançamentos.
Funções/acessibilidade: princípio de 4 olhos para publicações de preços/FX.
Logs/recibos: eventos de publicação assinados e checkout.
Restrições regionais: proibição de moedas/tokens individuais; geo-político.
17) Experiências e otimização
A/B: charm-pricing, preços pré-calculados vs on-the-fly, formato de exibição.
Dinâmico markup: dependência da volatilidade par/hora do dia.
Análise de linha: devoluções/marceback em moedas, sensibilidade ao arredondamento.
Estratégias em dinheiro: efeitos SWR/TTL sobre conversão e precisão.
18) Folha de cheque de implementação
- Definir a moeda básica e a política para-currency.
- Configure a coleta/publicação do FX com versionagem, marcapés e lock TTL.
- Formalizar TaxRule e ordem de cálculo/arredondamento (per-item ou per-basket).
- Implementar API de diretório/cote/commit + recibos assinados.
- Incluir edge-dinheiro e deficiência granular; SWR para vitrines.
- Iniciar dashboards (vitrina↔checkout, FX erros, impostos, margem bps).
- Digitar papéis/assinaturas para publicações de preços/cursos, revistas WORM.
- Preparar playbooks: preço de saída, aumento de FX, concordâncias fiscais.
- Desativar «GameDay de diretório»: desativação da fonte FX, promoção-burst, mudança de imposto.
- Revalidar regularmente minor _ units/exibição por região.
19) FAQ
É preciso manter os preços em cada moeda?
Não é necessário. Combine o pré-cálculo para a alta moeda e a conversão para a cauda - assim se equilibram UX e custos.
Porque é que o total, depois das redondezas, não bate?
Devido às diferenças per-item vs per-basket. Use uma abordagem e use «penny distribuição».
Como fazer o reembolso daqui a um mês?
Pelos históricos 'pricelist _ version', 'fx _ versão' e 'tax _ rule _ versão' salvos no recibo.
E o crypto?
Use precisão decimal, rede fee separadamente, não prometa 1:1 para o fiato; fixa o curso e a janela de ação.
Resumo: O catálogo multiverso é uma combinação de matemática exata, políticas rígidas e um rígido cachê. Versionize tudo (preços/cursos/impostos), fixe a janela de cotação, deturpe a ordem de computação e arredondamento, assine os artefatos de cheque e mantenha os dashboards visíveis. Assim você terá uma vitrine justa, cálculos reproduzidos e uma economia controlada em todas as moedas e regiões.