Authorization: Bearer sk_...), un compte doit exister, être vérifié (KYC), puis générer sa première clé. Ces étapes préalables ne peuvent PAS se faire avec une clé API — pour une raison structurelle simple : la clé n’existe pas encore. Elles utilisent un jeton de session (JWT), obtenu par connexion classique email/mot de passe, exactement comme le tableau de bord app.saspay.me lui-même. Une fois votre première clé générée, vous n’avez plus jamais besoin de JWT pour intégrer l’API.
Tout ce mécanisme est utilisable en API pure (pas seulement depuis le tableau de bord) si vous voulez automatiser votre propre onboarding — les mêmes appels sont ceux que fait l’interface web.
1. Créer votre compte utilisateur
2. Vérifier votre email
403 email_not_verified.
3. Vous connecter (obtenir un jeton de session)
Réponse
Si l’authentification à deux facteurs est activée sur le compte, cette réponse contient
pending_2fa_token au lieu de tokens — une étape supplémentaire (POST /auth/login/verify-2fa/) est alors nécessaire. Non détaillée ici, hors périmètre de l’intégration API pure.access dans le header Authorization: Bearer <access> pour toutes les requêtes des étapes suivantes — ce n’est pas une clé API, c’est un jeton de session classique, à ne jamais confondre avec sk_live_.../sk_test_....
4. Créer votre marchand (votre “boutique”)
kyc_status: "NONE" et is_active: false — inutilisable tant que le KYC n’est pas validé.
5. Soumettre votre dossier KYC
Même endpoint et même flux que documentés dans KYC — la seule différence ici est le header d’authentification (Authorization: Bearer <jeton de session> plutôt qu’une clé API, puisqu’aucune clé n’existe encore à ce stade).
6. Attendre la validation
Un administrateur SasPay examine le dossier. Vous recevez un email dès qu’une décision est prise. Une fois validé,merchant.kyc_status passe à "VERIFIED" et is_active à true.
7. Créer votre première clé API
Réponse
environment:"LIVE"(préfixesk_live_, argent réel) ou"SANDBOX"(préfixesk_test_, tests sans argent réel).scope:"PAYIN","PAYOUT"ou"BOTH"(défaut). Une cléPAYINseule ne peut pas initier de retrait, et inversement — limitez le scope d’une clé exposée côté frontend/serveur web à ce qui est strictement nécessaire.