Configuration par établissement
Chaque banque a sa configuration, stockée avec l'établissement
(tenant.config), versionnée et validée : une clé inconnue ou une
valeur invalide est refusée, jamais ignorée en silence.
Contenu
{
"display_name": "Banque Cantonale",
"product_name": "Kids+",
"currency": "CHF",
"locales": ["fr", "de", "it", "en"],
"default_locale": "fr",
"apns_topic": "ch.banque.kids",
"adapters": { "issuer": "none", "funding": "none" },
"required_consents": [
{ "kind": "child_data_processing", "version": "2026-09", "actions": ["funding", "pairing"] }
]
}
| Clé | Effet | Défaut |
|---|---|---|
display_name | nom de l'établissement exposé aux apps | — |
product_name | nom du produit dans les textes envoyés : « Ton Kids+ a reçu CHF 20.– » | magot |
currency | devise des montants affichés (CHF, EUR) | CHF |
locales, default_locale | langues proposées ; langue d'un appareil qui n'en a pas choisi | les quatre, fr |
apns_topic | identifiant de l'app de l'établissement (marque blanche) pour les notifications | APNS_TOPIC du service |
adapters.issuer, adapters.funding | connecteurs émetteur et core banking ; none = registre interne magot | none |
required_consents | consentements parentaux exigés avant une action : card_issuance (émission de la carte), funding (recharges, demandes acceptées, missions validées), pairing (appairage d'un appareil enfant). version absente = toute version en vigueur | aucun |
Tout est facultatif : une configuration vide donne le comportement magot standard.
Consentement manquant
L'action est refusée avec un code exploitable par l'app, qui propose alors le bon consentement au parent :
403 { "error": "consent required: child_data_processing (version 2026-09)",
"code": "consent_required",
"details": { "kind": "child_data_processing", "version": "2026-09" } }
Une nouvelle version des conditions (version changée) oblige chaque parent
à consentir de nouveau avant la prochaine recharge.
Pour les apps
GET /v1/tenant (authentifié) rend la configuration utile à l'app de
l'établissement ou au SDK : nom, produit, devise, langues, consentements
attendus et pour quelles actions.
Modifier une configuration
tsx scripts/set-tenant-config.ts <tenant> config.json --expect-version <N>
- validée avant écriture ;
--expect-version: la version en base doit êtreN(elle devientN+1) — deux modifications concurrentes ne s'écrasent pas ;- ancienne et nouvelle configuration sont inscrites au journal d'audit ;
- le service la prend en compte en moins d'une minute, sans redémarrage.