Aller au contenu principal

Cas d’usage

Facturation multi-tenant (architecture B2B2B)

Un tenant SSII, N sub-tenants clients finaux

Scell.io expose deux niveaux d'isolation : le tenant (compte de l'éditeur SaaS / SSII partenaire) et les sub-tenants (clients finaux du partenaire). Chaque sub-tenant possède son propre numéroteur de factures, ses templates PDF, ses séries de numérotation conformes ISCA. Le tenant parent utilise sa clé `sk_live_*` et passe l'identifiant `sub_tenant_id` dans chaque requête de création de facture. Les données sont strictement isolées en base via `tenant_id`/`sub_tenant_id`. Idéal pour les SSII françaises qui revendent une couche e-invoicing à leurs clients tout en gardant un seul contrat Scell.io.

À retenir

  • 1 clé `sk_live_*` parent, N sub-tenants enfants
  • Numéroteur de facture indépendant par sub-tenant
  • Templates PDF (logo, couleurs) par sub-tenant
  • Champ `sub_tenant_id` dans le body (méthode recommandée ; header `X-Sub-Tenant-Id` accepté en alias historique)
  • Webhooks routés au tenant parent avec `sub_tenant_id` dans le payload
  • Balance partagée au niveau tenant parent (facturation centralisée)

Exemple de code

import { ScellClient } from '@scell/sdk';
const scell = new ScellClient({ apiKey: process.env.SCELL_SECRET_KEY! });

// 1. Créer un sub-tenant pour un client final
const subTenant = await scell.subTenants.create({
  name: 'Boulangerie Dupont SARL',
  legal_id: '12345678901234',
  invoice_numbering_prefix: 'BD',
});

// 2. Émettre une facture au nom de ce sub-tenant
const invoice = await scell.invoices.create({
  sub_tenant_id: subTenant.id,
  format: 'factur-x',
  buyer: { siret: '98765432109876', name: 'Client Final SAS' },
  lines: [{ description: 'Prestation', quantity: 1, unit_price: 1000, vat_rate: 20 }],
});

Voir aussi

Vos préférences cookies

Nous utilisons des cookies pour améliorer votre expérience. Les cookies essentiels sont toujours actifs. Politique cookies.