Skip to main content
Si vous exploitez un espace de travail revendeur en marque blanche, l’API marque blanche vous permet de gérer vos propres clients finaux de façon programmatique plutôt que via le tableau de bord — construisez votre propre console d’administration, automatisez l’intégration, mettez en place des parcours d’authentification personnalisés sur votre propre domaine, ou connectez les recharges de crédits à votre système de facturation.
Chaque point de terminaison de cette page nécessite API Access, une clé API créée dans votre espace de travail en marque blanche avec la portée platform:read ou platform:write, ainsi qu’un rôle propriétaire ou administrateur. Les résultats sont toujours limités à vos propres espaces clients. Une clé émise pour un client ne peut utiliser l’API REST que tant que son espace de travail dispose également d’API Access ; émettre ou révoquer une clé n’accorde pas cette fonction.

Lister les clients de la plateforme

GET /api/v1/platform/users liste vos clients, du plus récent au plus ancien. Paginez avec limit / offset (voir la pagination) et recherchez par nom ou e-mail avec q.

Inscrire un client de la plateforme

POST /api/v1/platform/users crée un nouveau compte client et un espace de travail en votre nom. Deux modes :
  • invite (par défaut) — aucun mot de passe requis. Le compte est créé sans identifiants ; associez-le à un appel de connexion ou de génération de jeton ci-dessous pour permettre au client (ou à votre propre frontend) d’y accéder réellement.
  • password — vous choisissez d’emblée un mot de passe initial (8 caractères ou plus) pour le client.
Une adresse e-mail déjà enregistrée n’importe où sur la plateforme échoue avec 409 — le message ne révèle jamais si ce compte se trouve dans votre périmètre ou en dehors. La réponse d’inscription inclut welcome_credit avec status, requested_credits et granted_credits. Cela permet à votre interface d’intégration d’afficher si les crédits de bienvenue ponctuels ont été accordés ou nécessitent un transfert manuel ultérieur. Il s’agit d’une action d’opérateur autorisée. Elle reste disponible lorsque l’inscription en libre-service de la page de connexion hébergée est désactivée.

Configurer l’inscription et les valeurs prépayées par défaut

GET /api/v1/platform/default-limits renvoie les contrôles indépendants de l’inscription en libre-service et de l’accès prépayé, le prix prépayé à la minute en EUR, ainsi que les limites par défaut des comptes clients prépayés. PATCH met à jour n’importe quel sous-ensemble de ces réglages.
L’inscription en libre-service concerne uniquement la création de compte depuis la page de connexion hébergée de votre domaine personnalisé vérifié. Les clients existants peuvent toujours se connecter et les opérateurs peuvent continuer à créer des clients. L’accès prépayé détermine séparément si les clients sans forfait payant peuvent utiliser des crédits prépayés ; lorsqu’il est désactivé, les clients inscrits doivent choisir un forfait payant avant d’utiliser la plateforme. Les outils MCP équivalents sont get_platform_default_limits et update_platform_default_limits dans le groupe d’outils platform.

Configurer les crédits de bienvenue

GET /api/v1/platform/welcome-credits renvoie le montant ponctuel configuré, l’état d’activation des comptes prépayés et des attributions automatiques, le solde actuel de votre portefeuille, ainsi que le nombre estimé de nouveaux clients que vous pouvez actuellement financer. PATCH met à jour le montant pour les futurs clients ; 800 crédits est le point de départ recommandé, et 0 désactive les attributions automatiques.
L’enregistrement est autorisé même si le montant dépasse le solde actuel de votre portefeuille. Si le portefeuille ne peut pas couvrir l’attribution complète d’un nouveau client, l’inscription réussit tout de même avec 0 crédit de bienvenue. Ce manque n’est pas rattrapé automatiquement ; utilisez l’action de transfert de solde une fois votre portefeuille approvisionné. Les clients existants ne reçoivent jamais de crédit rétroactif, et les modifications ultérieures de ce paramètre ne s’appliquent qu’aux futurs clients.

Connecter un client de la plateforme

POST /api/v1/platform/users/login authentifie un client avec son propre e-mail et son mot de passe, et renvoie un jeton d’accès en cas de succès. Utilisez cet appel pour créer un formulaire de connexion sur votre plateforme en marque blanche plutôt que de rediriger vos clients vers la page de connexion hébergée. Les échecs de connexion renvoient la même réponse générique 401 et ne révèlent pas si un compte existe.
C’est la seule opération de l’API marque blanche sans équivalent MCP — des identifiants ne doivent jamais transiter par un appel d’outil MCP.

Créer un jeton utilisateur

POST /api/v1/platform/users/{user_id}/token crée une clé API pour un client sans avoir besoin de son mot de passe — utile pour un tableau de bord, un parcours d’intégration, ou une automatisation approuvée agissant au nom du client.
La clé en clair n’est renvoyée qu’une seule fois — stockez-la immédiatement, elle ne pourra plus être récupérée par la suite. Elle appartient au client, pas à vous : un champ scopes omis accorde un accès complet à ce client, et non les seules portées dont dispose votre propre identifiant d’opérateur.

Déconnecter un client de la plateforme

POST /api/v1/platform/users/{user_id}/logout révoque les clés API actives et les jetons OAuth du client, dans le périmètre de votre relation client. Utilisez cet appel pour forcer une déconnexion après la compromission d’un compte ou la fin de votre relation avec ce client. Répéter la requête ne pose aucun problème.

Transférer un solde

POST /api/v1/platform/users/{user_id}/balance déplace des crédits entre le solde de votre espace de travail et celui d’un client :
  • credits positif — accorde des crédits de votre portefeuille au client (la méthode standard pour approvisionner un compte client).
  • credits négatif — reprend des crédits du client vers votre portefeuille.
Dans les deux sens, le portefeuille source doit couvrir le montant — un solde de portefeuille ne descend jamais sous zéro, et une reprise qui dépasse le solde du client échoue entièrement plutôt que de s’appliquer partiellement.

Paiements personnalisés

Les paiements personnalisés vous permettent de facturer un client en dehors de son offre habituelle — des frais de mise en place ponctuels, une facture de support, ou un complément récurrent sur mesure que vous ne souhaitez pas modéliser comme une offre. Deux types :
  • Ponctuel — une charge unique d’un montant fixe.
  • Abonnement — une charge récurrente sur l’intervalle de votre choix (jour/semaine/mois/année), avec période d’essai optionnelle.
Chaque paiement est délivré via l’un de ces trois canaux :
  • charge_saved_method — débite immédiatement la carte enregistrée du client. Échoue si aucune carte n’est enregistrée, ou si la carte nécessite une étape d’authentification que le client doit effectuer lui-même (utilisez alors invoice ou payment_link).
  • invoice — crée une facture hébergée, due dans days_until_due jours (14 par défaut), et envoie au client un e-mail avec le lien de paiement.
  • payment_link — crée un lien de paiement et renvoie son URL. Le lien est à usage unique (il n’accepte plus de nouveaux paiements une fois complété) mais n’expire pas de lui-même — partagez-le quand vous êtes prêt.
amount_minor est le prix unitaire dans la plus petite unité de la devise (par ex. les centimes) ; le montant total facturé est amount_minor * quantity. Le calcul automatique des taxes s’applique dès qu’il est disponible pour votre compte de paiement — cela suppose que le client dispose déjà d’une adresse de facturation ; sinon, la requête échoue avec une indication pour en ajouter une (ou passez automatic_tax: false pour ignorer le calcul des taxes sur ce paiement). La devise doit correspondre à la devise d’affichage propre de l’espace de travail du client une fois celle-ci établie — vous ne pouvez pas facturer un client existant dans une seconde devise. GET /api/v1/platform/users/{user_id}/custom-payments liste les paiements d’un client, plus le contexte de création (son espace de travail résolu, les devises disponibles, les moyens de paiement enregistrés, et la disponibilité du calcul automatique des taxes). GET /api/v1/platform/custom-payments liste les paiements de tous les clients de votre périmètre, filtrable par status, kind, channel et une recherche (q) qui porte à la fois sur la description du paiement et sur l’e-mail du client.
Par défaut, le client reçoit un e-mail de notification pour les canaux invoice et payment_link (désactivé par défaut pour charge_saved_method, puisqu’un débit par carte génère déjà un reçu) — modifiable avec notify_customer. L’e-mail utilise votre propre expéditeur et votre marque, comme tout autre e-mail destiné aux clients sur votre plateforme. Un paiement passe par des statuts tels que pending, open, paid, active / trialing (abonnements), past_due, canceled, void, uncollectible et expired. GET /api/v1/platform/custom-payments/{payment_id} renvoie le statut actuel, les montants et le lien hébergé. Utilisez POST sur le même point de terminaison pour exécuter une action :
immediately (booléen, optionnel) ne s’applique qu’à l’action cancel sur un abonnement : true résilie immédiatement, false/omis programme la résiliation à la fin de la période en cours. Sans effet sur les factures/liens de paiement uniques ou sur toute autre action. Annuler ou passer en irrécouvrable n’est pas réversible via cette API. Limites : il n’existe pas d’action de remboursement — effectuez les remboursements directement depuis le tableau de bord de votre compte de paiement. Chaque paiement est une ligne unique (pas de remises, coupons, ni plusieurs lignes), et le prix d’un abonnement existant ne peut pas être modifié — résiliez-le et créez-en un nouveau. Les outils MCP équivalents sont list_custom_payments, get_custom_payment, create_custom_payment et run_custom_payment_action dans l’ensemble platform — voir MCP ci-dessous.

Gérer les clés API

Dans l’espace revendeur, ouvrez Settings → API & MCP. Faites défiler les connexions MCP jusqu’à Create a new API key, saisissez un nom, puis choisissez Create key. API Access et le rôle propriétaire ou administrateur sont requis.
API & MCP — entrée des paramètres ; les clés API se trouvent plus bas

API & MCP — entrée des paramètres ; les clés API se trouvent plus bas

Chaque espace de travail — y compris les espaces clients créés via cette API — peut gérer ses propres clés API via /api/v1/api-keys ou Settings → API & MCP dans le tableau de bord. Un identifiant appartenant à un utilisateur peut aussi générer directement une clé pour un autre espace de travail de la même marque dont cet utilisateur est actuellement propriétaire ou administrateur, en appelant /api/v1/workspaces/{workspace_id}/api-keys. Ce point de terminaison imbriqué est une fonctionnalité multi-espaces générale et ne nécessite pas d’accès en marque blanche.
Une clé ne peut jamais créer une autre clé disposant d’un accès plus large qu’elle-même : les scopes d’une nouvelle clé doivent être un sous-ensemble des portées de l’identifiant appelant. GET /api/v1/api-keys liste les clés d’un espace de travail sans exposer leurs secrets ; DELETE /api/v1/api-keys/{id} en révoque une.

MCP

Tout ce qui précède est aussi disponible sous forme d’outils MCP, regroupés dans le groupe platform (ainsi que list_api_keys / create_api_key / revoke_api_key dans le groupe settings). Connectez-vous avec le sélecteur de groupes :
Il n’existe pas d’outil login_platform_user — la connexion reste réservée à REST, pour la raison indiquée plus haut. Les outils MCP acceptent soit un user_id, soit un email pour identifier le client cible ; REST prend toujours user_id depuis le chemin de l’URL.

Inclure des services dans une offre client

Dans Plans, choisissez les fonctions et la capacité supplémentaire comprises dans le prix récurrent. Les clients les voient comme Inclus dans l’offre. Les achats de capacité supplémentaires s’ajoutent à cette allocation ; une fonction incluse n’est pas facturée une seconde fois. Les services ponctuels restent des achats séparés. L’éditeur affiche les frais de plateforme, leur taxe, une réserve estimée pour le traitement des paiements et votre contribution restante par client, avant vos propres frais et impôts. Les offres annuelles utilisent les prix annuels disponibles ; sinon l’éditeur indique explicitement douze périodes de coûts mensuels. Les crédits inclus restent une allocation mensuelle pour les deux intervalles. La confirmation du paiement active les services achetés. Une résiliation programmée conserve l’accès jusqu’à la fin de la période payée. Un renouvellement impayé bloque les services payants ; un paiement réussi rétablit le contrat acheté. Le solde de crédits achetés reste séparé. Après résiliation, votre politique existante pour les comptes gratuits s’applique. Dupliquez une offre ayant des abonnements avant de modifier son prix ou ses services inclus. La copie commence inactive pour permettre sa vérification.

Gérer les services inclus avec l’API

GET /api/v1/reseller/plans avec settings:read retourne vos offres et les codes disponibles. PUT /api/v1/reseller/plans/{id}/inclusions avec settings:write remplace les services inclus d’une offre éligible. Ces opérations nécessitent les droits de propriétaire ou d’administrateur de votre espace en marque blanche. Les outils MCP sont list_reseller_plans et update_reseller_plan_inclusions. Ils configurent l’offre sans débiter les clients ni créer d’abonnement payant.

Mots de passe clients et e-mails du compte

Ouvrez Utilisateurs → sélectionner le client → Accès au compte pour envoyer un e-mail de réinitialisation ou définir un nouveau mot de passe. La modification directe est possible uniquement si le compte est utilisé exclusivement au sein de votre marque. Pour les comptes ayant également accès à d’autres marques ou espaces de la plateforme, envoyez un e-mail de réinitialisation afin que le client garde le contrôle de son identifiant global. Les e-mails du compte utilisent votre domaine vérifié, votre marque et votre expéditeur SMTP configuré : invitations, récupération du mot de passe, confirmations de changement d’adresse, codes et notifications de sécurité activées. Un changement d’adresse peut nécessiter une confirmation depuis l’ancienne et la nouvelle adresse. Un échec d’envoi ne bascule pas vers une autre marque. Vérifiez vos paramètres SMTP en cas de problème. Utilisez GET /api/v1/platform/users/{user_id}/password?workspace_id=... pour vérifier les droits. POST sur le même endpoint accepte l’espace, l’action reset ou set et un mot de passe pour set. Les outils MCP get_platform_user_password_access et manage_platform_user_password appliquent les mêmes limites clients. La réinitialisation utilise votre expéditeur SMTP. Ne journalisez jamais les mots de passe.

Compte de paiement et activité financière

Avant l’activation du compte de paiement, Connecter les paiements vous guide dans la vérification. Ensuite, Paiements et virements propose une vue d’ensemble, les paiements clients, les virements bancaires, un onglet Rapport de solde et les paramètres du checkout. Le tableau de bord affiche le solde de votre compte de paiement. Les montants conservent leur devise de règlement réelle. L’action de tableau de bord externe ouvre celui pris en charge par votre compte connecté. Le rapport de solde propose des filtres de période, de devise et de fuseau horaire ainsi que des exports CSV. Lorsqu’ils sont disponibles, une offre de virements instantanés et un graphique du volume des paiements apparaissent dans la vue d’ensemble. Les virements instantanés nécessitent des fonds éligibles. Financement, après Checkout, apparaît lorsque le financement professionnel est disponible pour votre compte. Les virements et les demandes de financement nécessitent votre propre accès authentifié et toute vérification supplémentaire du compte de paiement. Utilisez GET /api/v1/reseller/billing ou l’outil MCP get_reseller_billing du jeu billing avec billing:read. Ces opérations exigent un rôle owner ou admin dans votre espace en marque blanche et API Access. L’aperçu par défaut renvoie le statut et les soldes disponibles/en attente. Utilisez view=payments ou view=payouts pour l’activité et limit de 1 à 100 (25 par défaut). Passez next_cursor comme cursor dans les 24 heures pour la page suivante ; null indique la fin. Les curseurs sont liés au compte et à la vue. Avant l’activation, les soldes restent vides et les demandes d’activité renvoient 409. Ces opérations sont en lecture seule : aucun remboursement, virement, changement de compte bancaire ou création de session de connexion au tableau de bord. Utilisez view=transactions pour consulter le journal du solde : montants signés, variations nettes, catégories publiques et dates de disponibilité. Utilisez next_cursor pour parcourir l’historique. Les exports de rapports et les demandes de financement sont des opérations interactives du compte ; l’API publique et MCP offrent un accès en lecture et ne soumettent aucune demande ni aucun virement. Une bannière du compte affiche les tâches de vérification en attente après l’inscription, y compris celles qui limitent temporairement les paiements. Elle reste masquée en l’absence de notifications. La section fiscale du Checkout comprend les paramètres fiscaux et les immatriculations fiscales. Les détails sont aussi disponibles en lecture seule via view=tax ; l’interface authentifiée du compte de paiement permet aussi des modifications interactives. La gestion fiscale est aussi disponible via API et MCP avec billing:write et un accès propriétaire/administrateur : PUT /api/v1/reseller/tax/settings modifie les valeurs par défaut et l’adresse ; POST /api/v1/reseller/tax/registrations crée ou planifie la collecte ; PATCH /api/v1/reseller/tax/registrations modifie le début ou l’expiration. Consultez les paramètres avec GET /api/v1/reseller/tax/settings. Les outils sont get_reseller_tax_settings, update_reseller_tax_settings, create_reseller_tax_registration et update_reseller_tax_registration. Utilisez la référence opaque de la vue fiscale (valable 24 heures) et une clé unique pour les nouvelles demandes, réutilisée lors des tentatives identiques. Les immatriculations ne peuvent pas être supprimées et n’inscrivent pas votre entreprise auprès des autorités fiscales. Toute modification doit suivre les instructions explicites du propriétaire.

Accès aux sources de connaissances

Les opérateurs en marque blanche peuvent activer séparément Exploration de site web, Synchronisation du stockage cloud et Synchronisation automatique dans les forfaits clients et les paramètres prépayés par défaut. La synchronisation automatique contrôle l’actualisation planifiée des deux types de sources ; la fonction de source correspondante doit aussi être activée. Le propre espace de l’opérateur suit son propre forfait, indépendamment des clients. Les sources cloud nécessitent également Paramètres → Espace de travail → Fonctionnalités bêta dans chaque espace client. Les contenus nouveaux ou modifiés consomment toujours des crédits ; l’activation ne comprend pas de traitement gratuit. Consultez les autorisations avec GET /api/v1/reseller/plans et modifiez-les avec PATCH /api/v1/reseller/plans/{id}/knowledge-sources (settings:write). L’outil MCP correspondant est update_reseller_plan_knowledge_sources. Les changements s’appliquent aux clients utilisant ce forfait. Les paramètres prépayés utilisent l’API et les outils MCP des limites par défaut décrits ci-dessus.