BaaS Providers
YaniPay s'appuie sur des fournisseurs Banking-as-a-Service (BaaS) pour offrir des services bancaires complets : comptes IBAN, cartes VISA/Mastercard, virements SEPA et conformite reglementaire.
Qu'est-ce que le BaaS ?
Le Banking-as-a-Service(BaaS) est un modele qui permet a des entreprises non bancaires d'integrer des services financiers (comptes, cartes, virements) dans leurs produits via des APIs, sans avoir a obtenir une licence bancaire propre.
Concretement, un fournisseur BaaS detient l'agrement reglementaire (ACPR en France) et expose ses capacites bancaires sous forme d'API. YaniPay consomme ces APIs pour proposer des comptes IBAN, des cartes de paiement et des virements SEPA a ses utilisateurs, tout en restant concentre sur l'experience utilisateur et la logique metier.
Pourquoi le BaaS ?
Time-to-market
Lancer des services bancaires en semaines plutot qu'en annees. Pas besoin d'obtenir une licence bancaire propre.
Conformite
Le fournisseur BaaS gere la conformite reglementaire (KYC/KYB niveau 2, LCB-FT, DSP2) sous sa licence ACPR.
Scalabilite
Infrastructure bancaire qui scale automatiquement. Pas de gestion de serveurs bancaires ni de core banking en interne.
Couts
Modele pay-per-use. Pas d'investissement initial massif en infrastructure bancaire ni en equipes conformite dediees.
Swan vs Treezor
YaniPay supporte deux fournisseurs BaaS europeens. Le choix du fournisseur se fait via la variable d'environnement BAAS_PROVIDER.
| Critere | Swan | Treezor |
|---|---|---|
| Type d'API | GraphQL | REST |
| Fondee en | 2019 | 2016 |
| Financement | 160M EUR (Series B) | Filiale Societe Generale |
| Licence | Etablissement de paiement (ACPR) | Etablissement de monnaie electronique (ACPR) |
| Siege | Paris, France | Paris, France |
| Points forts | DX moderne, GraphQL, webhooks temps reel, onboarding fluide | Maturite, couverture fonctionnelle large, adosse a la SocGen |
| Simulator local | apps/swan-partner-frontend-main/ | ./treezor-simulator/ — port 3001 |
Architecture globale
YaniPay utilise un Adapter Pattern(Factory) pour abstraire le fournisseur BaaS. Le code metier ne connait que l'interface BaaSProvider, jamais l'implementation concrete (Swan ou Treezor).
Configuration du fournisseur
BAAS_PROVIDER dans votre fichier .env.local.Interface BaaSProvider
Tous les fournisseurs BaaS implementent cette interface commune. Elle garantit l'interchangeabilite des providers sans modifier le code metier.
1 export interface BaaSProvider { 2 readonly name: 'swan' | 'treezor'; 3 4 // Accounts 5 createAccount(input: CreateAccountInput): Promise<BaaSAccount>; 6 getAccount(id: string): Promise<BaaSAccount | null>; 7 getBalance(id: string): Promise<{ balanceCents: number; currency: string }>; 8 9 // Cards 10 createCard(input: CreateCardInput): Promise<BaaSCard>; 11 lockCard(id: string): Promise<BaaSCard>; 12 unlockCard(id: string): Promise<BaaSCard>; 13 14 // SEPA Transfers 15 initiateTransfer(input: InitiateTransferInput): Promise<BaaSTransfer>; 16 17 // Onboarding / KYC 18 onboardUser(input: OnboardUserInput): Promise<BaaSOnboardingResult>; 19 20 // Health 21 healthCheck(): Promise<{ healthy: boolean; latencyMs: number }>; 22 }
Chaque methode retourne une Promise typee. Les types BaaSAccount, BaaSCard, BaaSTransfer et BaaSOnboardingResult sont des interfaces normalisees qui masquent les differences entre les reponses Swan (GraphQL) et Treezor (REST).
Factory Pattern
La factory getBaaSProvider()retourne un singleton du fournisseur configure. Le choix se fait via la variable d'environnement BAAS_PROVIDER (swan ou treezor).
1 import { getBaaSProvider } from '@platform/core/baas/factory'; 2 3 // Singleton — provider selected via BAAS_PROVIDER env var 4 const baas = getBaaSProvider(); 5 6 // Create an account 7 const account = await baas.createAccount({ 8 platformUserId: 'usr_123', 9 currency: 'EUR', 10 country: 'FR', 11 }); 12 13 console.log(account.iban); // FR76 3000 4028 3798 ... 14 console.log(account.status); // 'active'
La factory instancie SwanProvider ou TreezorProviderselon la configuration, puis met en cache l'instance pour les appels suivants. Cela garantit une seule connexion au fournisseur BaaS par processus.
Stripe — Paiements par carte
Desactive en production
Stripe est desactive par defaut (ENABLE_STRIPE=false). Les routes Stripe renvoient une erreur 503 si la variable d'environnement n'est pas explicitement activee.
Stripe est integre pour le traitement des paiements par carte (CB, Visa, Mastercard) et les abonnements. La cle secrete STRIPE_SECRET_KEY et le secret webhook STRIPE_WEBHOOK_SECRET sont optionnels au demarrage mais necessaires pour activer le module.
# Stripe — desactive par defaut
ENABLE_STRIPE=false
STRIPE_SECRET_KEY=sk_test_...
STRIPE_WEBHOOK_SECRET=whsec_...Onfido — Verification KYC
Workflow Studio non operationnel sans credentials
Le workflow Onfido Studio necessite des identifiants externes (API token + Workflow ID). Sans ces credentials, les routes KYC renvoient un stub et l'onboarding reste en mode degrade.
Onfido est utilise pour la verification d'identite (KYC niveau 2) : verification de documents (CNI, passeport) et biometrie faciale. Les webhooks Onfido sont securises par HMAC-SHA256 via le token ONFIDO_WEBHOOK_TOKEN.
# Onfido — KYC
ONFIDO_API_TOKEN=api_sandbox_...
ONFIDO_WEBHOOK_TOKEN=...
# ONFIDO_WORKFLOW_ID=wfl_... # requis pour StudioConfiguration mobile
L'application React Native (Expo) pointe vers le serveur VPS de developpement par defaut. La base URL est configuree dans mobile/src/services/api.tset bascule automatiquement entre le serveur Expo dev et l'URL de production selon l'environnement.
# Mobile — API base URL
# Dev VPS (OVH, Ubuntu 25.04)
API_BASE_URL=http://51.77.222.1:3000
# Production
# API_BASE_URL=https://yanipay.com/apiTreezor Simulator
3001 (chemin : ./treezor-simulator/). Demarrer avec pnpm dev dans ce repertoire avant de tester les routes Treezor.Demarrer
Explorez la documentation detaillee de chaque fournisseur et des fonctionnalites associees :
Swan
Integration GraphQL, comptes, cartes et virements SEPA
Treezor
Integration REST, e-money et services de paiement — port 3001
Onboarding
Flux KYC/KYB et creation de compte utilisateur
Architecture
Factory pattern, adapters et diagrammes detailles
Last updated: 2026-04-09