magot developers

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éEffetDéfaut
display_namenom de l'établissement exposé aux apps—
product_namenom du produit dans les textes envoyés : « Ton Kids+ a reçu CHF 20.– »magot
currencydevise des montants affichés (CHF, EUR)CHF
locales, default_localelangues proposées ; langue d'un appareil qui n'en a pas choisiles quatre, fr
apns_topicidentifiant de l'app de l'établissement (marque blanche) pour les notificationsAPNS_TOPIC du service
adapters.issuer, adapters.fundingconnecteurs émetteur et core banking ; none = registre interne magotnone
required_consentsconsentements 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 vigueuraucun

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>