Cas d’usage
Gestion des sub-tenants (CRUD via /tenant/sub-tenants)
Créer, lister, mettre à jour et désactiver des sub-tenants
L'API `/api/v1/tenant/sub-tenants` expose un CRUD complet pour gérer les sub-tenants depuis le compte parent : `POST` pour créer (renvoie sub_tenant_id + publishable key `pk_*`), `GET /` pour lister (pagination cursor-based), `GET /{id}` pour récupérer, `PATCH /{id}` pour mettre à jour (template, branding, métadonnées), `DELETE /{id}` pour désactiver (soft delete, données conservées 10 ans pour conformité fiscale (Code de commerce L123-22 / LPF L102 B)). La désactivation empêche toute nouvelle facture mais ne supprime pas les données existantes (obligation fiscale 10 ans). Pour réactiver : `POST /{id}/reactivate`. Chaque sub-tenant a son propre numéroteur et son propre journal fiscal.
À retenir
- CRUD complet : POST, GET, PATCH, DELETE
- Pagination cursor-based (next_cursor)
- DELETE = soft delete (conservation 10 ans, Code de commerce L123-22 / LPF L102 B)
- Réactivation via `POST /{id}/reactivate`
- Publishable key `pk_*` retournée à la création
- Métadonnées custom (JSON) pour rapprochement CRM
Exemple de code
import { ScellClient } from '@scell/sdk';
const scell = new ScellClient({ apiKey: process.env.SCELL_SECRET_KEY! });
// Lister tous les sub-tenants actifs (paginé)
let cursor: string | undefined;
do {
const page = await scell.subTenants.list({ limit: 100, cursor, status: 'active' });
for (const st of page.data) {
console.log(`${st.id}\t${st.name}\t${st.invoice_numbering_prefix}`);
}
cursor = page.next_cursor;
} while (cursor);
// Désactiver un sub-tenant (les factures existantes restent accessibles)
await scell.subTenants.delete('st_abc123');
// Réactiver plus tard
await scell.subTenants.reactivate('st_abc123');