Tenants, provisioning et credentials
Lister les tenants du partenaire
GET /v1/tenants retourne l'ensemble des tenants affiliés au partenaire authentifié. Aucun partnerId n'est attendu dans la requête.
GET https://partners-api.sandbox.mybcs.fr/v1/tenants
Authorization: Bearer <access_token>
User-Agent: BCSolutions
La réponse expose notamment l'identifiant interne du tenant, le tenantSlug, le nom, l'organisation, l'utilisateur principal et différents indicateurs de statut opérateur.
Créer un tenant partenaire
POST /v1/tenants crée un tenant côté landlord et l'affilie automatiquement au partenaire authentifié. Le tenant est créé à l'état draft et n'est pas provisionné automatiquement.
Par défaut, un tenant correspond à une seule unité légale. La création d'un tenant doit donc être réalisée pour l'unité légale qui sera ensuite créée et onboardée dans ce tenant.
Une exception est possible pour un groupe de sociétés : plusieurs unités légales appartenant au même groupe peuvent être rattachées à un tenant commun lorsque ce modèle d'administration mutualisée a été retenu. Cette exception ne doit pas être utilisée pour regrouper des entreprises juridiquement indépendantes ou des clients sans lien de groupe.
Les établissements d'une même unité légale ne nécessitent pas chacun un tenant : ils restent rattachés à l'unité légale concernée.
POST https://partners-api.sandbox.mybcs.fr/v1/tenants
Authorization: Bearer <access_token>
User-Agent: BCSolutions
Content-Type: application/json
{
"tenantSlug": "acme-fr",
"name": "Acme France",
"organizationName": "Acme France SAS",
"principalUserFirstName": "Marie",
"principalUserLastName": "Durand",
"principalUserEmail": "marie.durand@acme.example",
"databaseMode": "shared_schema",
"defaultTheme": "default",
"defaultTimezone": "Europe/Paris",
"defaultLocale": "fr",
"allowUiAccess": true,
"onboardingMode": "MANUAL"
}
Le champ principalUserEmail correspond à l'adresse e-mail de l'utilisateur principal du tenant. Cette adresse est utilisée comme identifiant de connexion au Portail Client.
principalUserEmail doit être unique sur l'ensemble de la plateforme eas'Invoice PA. Une même adresse e-mail ne peut pas être utilisée pour plusieurs tenants différents.
onboardingMode
Les valeurs possibles sont :
"MANUAL": tenant créé sans passer par le parcours d'onboarding. Disponible uniquement en SANDBOX si l'option MANUEL est activée sur le compte partenaire ;"AUTO": le tenant suit le parcours d'onboarding.
Le tenantSlug retourné après création devient la clé de ciblage fonctionnelle sur les routes ultérieures.
Le provisioning doit être lancé séparément après création.
Lancer le provisioning canonique
POST https://partners-api.sandbox.mybcs.fr/v1/tenants/{tenantSlug}/provision
Authorization: Bearer <access_token>
User-Agent: BCSolutions
Réponse 202 :
{
"jobRunId": "<job_run_id>",
"tenantSlug": "acme-fr",
"status": "queued",
"queuedAt": "2026-05-01T10:15:30Z"
}
La réponse confirme la prise en compte du dispatch, pas la fin du workflow technique.
Le contrat exposé met l'accent sur le lancement explicite du provisioning canonique et sur la réponse de dispatch du job.
Récupérer le clientId du tenant
Cette étape permet de récupérer la première partie des credentials techniques d'accès à tenant-public-api.
POST https://partners-api.sandbox.mybcs.fr/v1/tenants/{tenantSlug}/public-api-access
Authorization: Bearer <access_token>
User-Agent: BCSolutions
Réponse 200 :
{
"apiAccessId": "<api_access_id>",
"clientId": "<client_id>",
"userId": "<user_id>",
"generatedAt": "2026-05-01T10:15:30Z"
}
La réponse contient apiAccessId, clientId, userId et generatedAt.
Le clientId ne change pas pour un tenant entre différents appels à cette API.
Vérifiez la méthode HTTP, les paramètres et le schéma de réponse dans le Swagger Partner APIs SANDBOX, qui fait foi pour le contrat technique de cet endpoint.
Générer et révéler le clientSecret
Cette étape permet de remettre au client final un nouveau clientSecret, deuxième partie des credentials techniques d'accès à tenant-public-api.
POST https://partners-api.sandbox.mybcs.fr/v1/tenants/{tenantSlug}/public-api-access/{apiAccessId}/rotate
Authorization: Bearer <access_token>
User-Agent: BCSolutions
Réponse 200 :
{
"apiAccessId": "<api_access_id>",
"clientId": "<client_id>",
"clientSecret": "<client_secret>",
"userId": "<user_id>",
"generatedAt": "2026-05-01T10:15:30Z"
}
Le secret est révélé lors de l'appel. Un nouvel appel génère un nouveau clientSecret.
Déclenchez cet appel uniquement lorsque le client final est prêt à recevoir le secret ou lorsque votre propre dispositif de stockage sécurisé est prêt à le capturer.
Un appel à cet endpoint réinitialise le clientSecret.
Réinitialiser le mot de passe du tenant admin
Cette opération permet de redémarrer le processus d'initialisation du mot de passe de l'administrateur du tenant lorsque cet utilisateur a accès au Portail Client.
POST https://partners-api.sandbox.mybcs.fr/v1/tenants/{tenantSlug}/principal-user/reset-password
Authorization: Bearer <access_token>
User-Agent: BCSolutions
Réponse 200 :
{
"tenantSlug": "p-les-cigales-hr53241y76",
"email": "pimoucha+cigalestest@gmail.com",
"status": "sent"
}