Directory multivaluta
(Sezione Operazioni e Gestione)
1) Attività e ambito di applicazione
Il catalogo multivaluta è un'unica fonte di verità su prezzi/commissioni/tasse per diverse valute, regioni e canali. Fornisce:- vetrina dei prezzi corretta (UX, fiducia),
- riproducibilità dei calcoli (controllo, restituzioni),
- prevedibilità economica (margine/tasse),
- compliance (imposte, sanzioni, restrizioni valutarie).
2) Modello di dati
Entità:- 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; come JPY = 0, USD/EUR = 2, KWD = 3; per crypto - fino a 8)
- «rounding _ mode»: «HALF _ UP», «BANKERS», «FLOOR »/« CEIL» (tasse/regolatori)
3) Fonti e criteri FX (tassi di cambio)
Fonti: provider di corsi (commerciali/banche centrali), personale TWAP/mediana.
Criteri di aggiornamento: frequenza (1-15 minuti per volatili, 1 giorno per stabili), ritardo di pubblicazione.
Markaps: 'rate (1 + fx _ markup _ bps)' al lato del client; regole trasparenti per canale/regione.
La finestra di quotazione garantita (rate lock) è 5-30 min con 'fx _ version'nell'ordine.
Anti-salto: kap di cambiamento per tick, circuito-breakers, fallback per l'ultima quotazione valida.
Versioning: ogni pubblicazione di corso ha «variante», «effettiva _ from»; Conserva la storia per ritorni/controversie.
4) Strategie di prezzo
Base + FX - Memorizza il prezzo di base in «core» (ad esempio EUR), e lo converte in vetrina.
Per-currency fogli - Prezzi predefiniti per valute chiave (migliore UX, prevedibilità).
Mixed: top 10 valute - predefinito, «coda lunga» - on-the-fly.
Charm-pricing: `X. 99/95/90 per regione, controlla l'accumulo degli errori di arrotondamento.
Commissione/raccolta: payment fee, cross-border fee, network fee (crypto) - nella directory o nella fase «Checkout Pricing».
5) Tasse e «inclusione»
VAT/GST abilitato/escluso: EU - più frequente VAT-inclusivo; B2B può essere senza IVA.
Tassazione federale/statale/locale; per i giochi online - incassi specifici.
Valori soglia: l'imposta cambia da giro/categoria/regione (threshold).
Arrotondamento delle tasse: per-item vs per-basket; le modalità di arrotondamento e l'ordine di calcolo devono essere definiti.
Eur. report: memorizza «tax _ rule _ version» nell'assegno/ricevuta.
6) Arrotondamenti e precisione
Arrotondare all'ultimo passo della visualizzazione; nei calcoli, conservare «alta precisione» (fino a 8-9 caratteri).
Per crypto, utilizzare la libreria decimale (senza la libreria mobile binaria).
Paniere anti-drift: «bankers rounding» per le somme, ma arrotondamento UX per la visualizzazione; fissa «rounding _ scope».
Regola dell'importo: l'importo delle righe dopo l'arrotondamento deve corrispondere al totale: utilizzare la distribuzione degli ultimi centesimi/centesimi (penny distribuzione).
7) Cataloghi, promo e bandi
Promo-правила: `if region=A and currency in [EUR,USD] then discount=10% cap=50`.
Ordine di applicazione: (1) prezzo di base (2) sconti di (3) tasse (4) addebiti di (5) arrotondamento.
Suddivisione: proporzionale alla scheda delle posizioni prima dello sconto; per i rimborsi.
Promo Threshold: spedizione/bonus gratuiti in caso di total≥X nella valuta del cestino; conservare l'equivalente in valuta di base, ma fissare la versione FX.
8) Integrazione con i pagamenti e la compilazione
Disponibilità in valuta: non tutte le valute sono disponibili per ogni giocatore/regione/provider di pagamenti.
Guaranteed FX - Autorizzazione prefisso per «fx _ variante» fissata; durante l'esportazione - Richiesta di conferma del nuovo prezzo.
CUS/sanzioni: blocchi valute/banche/token, restrizioni alla conversione.
Rimborsi/marceback: riconteggio per ordine storico'fx _ version' Commissione di restituzione per directory alla data della transazione.
9) Architettura e contratto API
Lettura catalogo:- `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 {quete _ id, firma} '→ la ricevuta con l'hashtag e le firme.
- `PriceListUpdated`, `FXRatePublished`, `TaxRuleChanged`, `PromoChanged` — с `version/effective_from`.
10) Cache e prestazioni
Edge-cache: chiave «pricelist: region: currency: sku: variante»; TTL per valute stabili è più alto.
Warmup: riscaldamento delle categorie top in base al lancio della campagna.
SWR (stale-while-revalidate) - per le vetrine checkout - solo fresh.
Partial invalidation: disabilità con tag «sku», «category», «pricelist _ variante».
SLO: p95, 120 ms per la vetrina, p95, 250 ms per la quota, . 95% di disponibilità.
11) Osservazione e verifica
Traccia: 'trace _ id', 'pricelist _ version', 'fx _ version', 'tax _ rule _ version'in tutti gli eventi.
Immutabilità: registri WORM di pubblicazioni di fogli/corsi; Tagli Merkle, firme di rilascio (DSE).
Receipts: assegno/ricevuta con mappatura completa e hashtag di carico utile; conservare 7-10 anni (regolatore).
Dashboard - Variazione vitrina↔checkout, frequenza di arrotondamenti su/giù, errori FX, tempo di blocco del corso (lock TTL), promo REI.
12) Localizzazione della visualizzazione
Formato di valuta: carattere/codice (€, €, $, AED), posizione del simbolo, separatori, spazio.
Le regole locali sono "₴ 1.234,56" vs "$1,234. 56”.
Psicologia: i prezzi magici («.99») non sono sempre appropriati in fintech/giochi; testare per-regione.
Firme legali: «Il prezzo include l'IVA», «La commissione della rete è addebitata separatamente».
13) Casi speciali
Valute senza frazionamento: JPY/ISK - minor _ units = 0.
Minor units a tre zampe: KWD/BHD = 3.
Kripto: BTC/ETH/USDT fino a 8 caratteri, network fee separato; stablecoins ≠ «rotta 1:1» al cross border.
Doppio prezzo: «valuta del catalogo» «valuta di prelievo» (tasso di cambio bancario del Merchant). Documentare lo spread.
Sport/Giochi - Limiti per le vincite massime nella valuta di catalogo - memorizza gli equivalenti per «fx _ version» del round.
14) SLO/SLI e metriche di successo
Correttezza: percentuale di ordini in cui total _ checkout = total _ quete (© 1 minor unit per le regole di distribuzione) ≥ 99. 99%.
FX stabile: la percentuale di operazioni nella finestra rate lock è del 99%.
Economia: margine/unità vs piano; Deviazione dovuta a FX/arrotondamenti (bps).
UX: velocità di quota p95, percentuale di scarti sul calcolo dei prezzi, vetrine NPS.
Controllo: 100% degli assegni salvati con «_ variante» e firma.
15) Playbook incidenti
«Il prezzo della vetrina è nel cestino»
1. freeze cache disabili, 2) rifresh price forzato, 3) paragonare «pricelist _ variante »/« fx _ variante», 4) compenso di criterio.
«Il salto FX distrugge i margini»:1. includere un aumento di markup/cap sconti, 2) ridurre lock TTL, 3) passare alla fonte fallback.
«L'imposta non quadra»:1. verifica dì tax _ rule _ version ', 2) validazione rounding _ scope, 3) hotfix delle regole e ripetizione dei cestini.
«Promo dà un prezzo negativo»:1. regole di protezione (min _ price), 2) disattivare il vetro, 3) recalculazione e controllo.
16) Sicurezza e compliance
Policy-as-code - Controllo delle modifiche ai fogli price/FX/tasse tramite PR + firme di rilascio.
Ruoli/disponibilità: un principio a 4 occhi sulla pubblicazione dei prezzi/FX.
Logi/ricevute - Eventi di pubblicazione firmati e checkout.
Restrizioni regionali: proibizione delle singole valute/token geo-politico.
17) Esperimenti e ottimizzazione
A/B: charm-pricing, prezzi predefiniti vs on-the-fly, formato di visualizzazione.
Markup dinamico: dipendenza dalla volatilità della coppia/ora del giorno.
Analisi coorte: restituzioni/marceback per valuta, sensibilità all'arrotondamento.
Strategie cache: l'impatto SWR/TTL sulla conversione e la precisione.
18) Assegno foglio di implementazione
- Definire la valuta di base e il criterio per-currency fogli.
- Configura la raccolta/pubblicazione di FX con versioning, markap e lock TTL.
- Formalizza l'ordine e l'ordine di calcolo/arrotondamento (per-item o per-basket).
- Implementare l'API catalogo/quote/commit + ricevute firmate.
- Includere la cache edge e la disabilità granulare SWR per le vetrine.
- Accetta dashboard (vitrina↔checkout, FX errori, tasse, margine bps).
- Immettere ruoli/firme per la pubblicazione di prezzi/corsi, registri WORM.
- Preparare le playbook: prezzi portati, balzo FX, convenzioni fiscali.
- Disattiva l'origine FX, promo-burst, cambia l'imposta.
- Rivolvera regolarmente minor _ units/visualizzazione per regione.
19) FAQ
È necessario mantenere i prezzi in ogni valuta?
Non è necessario. Combinare i dati predefiniti per le valute top e la conversione per la coda, in modo da bilanciare UX e costi.
Perché il totale dopo l'arrotondamento non batte?
A causa delle differenze per-item vs per-basket. Fissare un approccio e utilizzare penny distribuzione.
Come faccio a fare un rimborso tra un mese?
Per le storiche «pricelist _ variante», «fx _ version» e «tax _ rule _ version» salvate nella ricevuta.
Che mi dici del crypto?
Usa la precisione decimale, rete fee separata, non promettere 1:1 alla fiat; fissa il percorso e la finestra dell'azione.
Il catalogo multivalore è una combinazione di matematica precisa, regole rigorose e cache intelligente. Versionare tutto (prezzi/corsi/tasse), fissare la finestra di quotazione, determinare l'ordine di calcolo e arrotondamento, firmare gli assegni e tenere visibili i dashboard. Così si ottiene una vetrina onesta, calcoli riprodotti e un'economia gestita in tutte le valute e regioni.