magot developers

Intégration bancaire — architecture

Comment une banque branche magot sur son écosystème existant (émetteur carte, core banking, identité e-banking, app mobile, SI de supervision).

1. Principes

2. Vue d'ensemble

flowchart TB
  subgraph Banque
    APP[App mobile banque<br/>+ SDK magot]
    IDP[IdP e-banking<br/>OIDC]
    CORE[Core banking]
    ISS[Processeur / émetteur carte]
    SI[SI banque<br/>CRM, fraude, reporting]
    BO[Back-office conseillers]
  end
  subgraph magot
    API[API app /v1]
    AUTHZ[Service d'autorisation<br/>temps réel]
    J[(Journal d'événements<br/>append-only)]
    OUT[Événements sortants]
  end
  APP -- token banque échangé --> API
  IDP -. fédération .-> API
  ISS -- autorisation carte < 500 ms --> AUTHZ
  API -- gel, limites --> ISS
  API -- recharges --> CORE
  CORE -- mouvements, soldes --> API
  API --> J --> OUT -- webhooks signés --> SI
  BO -- API back-office --> API
  APP -. app marque blanche .-> API

3. Ports d'intégration

3.1 Émetteur carte — autorisation temps réel (entrant)

Le processeur appelle magot à chaque autorisation ; magot répond approuvé/refusé selon les règles parentales (gel, plafond journalier et par transaction, catégories bloquées, solde).

3.2 Émetteur carte — pilotage (sortant)

IssuerAdapter : création de compte et de carte, gel/dégel, lecture du solde, relevé des transactions par curseur (réconciliation). Les plafonds sont répliqués sur la carte chez l'émetteur pour que le repli reste sûr.

3.3 Financement / core banking

Les recharges (argent de poche, demande acceptée, mission validée) déplacent de l'argent du compte du parent vers celui de l'enfant.

3.4 Identité

QuiCible
ParentIdentité de la banque : l'app de la banque échange son jeton contre un jeton magot (OAuth 2.0 Token Exchange, RFC 8693) ou le parent se connecte via l'IdP e-banking (OIDC). Les passkeys magot restent l'option de l'app marque blanche.
Appareil enfantAppairage par QR à usage unique ou code à 6 chiffres (montre) → jeton d'appareil limité à cet enfant, révocable par le parent.
Conseiller banqueSSO sur l'IdP de la banque (OIDC/SAML), rôles lecture seule / support, accès nominatif journalisé.

Aucun mot de passe magot. Les jetons sont opaques, stockés hachés, révocables.

3.5 Événements sortants

Chaque fait métier est écrit dans un journal append-only (paiement, recharge, gel de carte, demande, mission, règle modifiée, décision d'autorisation).

3.6 Back-office et configuration

4. Intégration mobile

Trois modes, cumulables :

  1. App marque blanche : l'app magot aux couleurs de la banque, publiée sur le compte développeur de la banque. Aucun développement mobile côté banque.
  2. SDK dans l'app de la banque : un Swift Package (MagotCore : client API, modèles, synchronisation, auth branchable par token provider ; MagotUI : écrans SwiftUI thémables). La banque garde son app, son login et sa charte. Android : même contrat d'API ; SDK Kotlin selon la demande.
  3. API seule : la banque construit ses propres écrans sur l'API documentée (OpenAPI).

Les apps enfant (iPhone, Apple Watch) restent des apps magot marque blanche : un enfant de 7 ans n'a pas accès à l'app e-banking de ses parents.

5. Sécurité et conformité

6. Hébergement et exploitation

7. Sandbox

Un établissement de démonstration sur api-staging.magot.ch, remis sous forme de kit : fournisseur d'identité de test, credential de webhook, virements réglés par la banque elle-même via le webhook signé, événements poussés vers une URL de test. Toute l'intégration se rejoue pas à pas avant d'écrire la moindre ligne (sandbox.md).