SecuAAS Docs
Scanyze MSP

Programme MSP Scanyze

Gérer plusieurs clients Scanyze depuis un portail unifié — MSP / White-Label / Reseller — facturation, marque blanche, API

Programme MSP / Partenaires Scanyze

Le programme partenaires Scanyze s'adresse aux organisations qui revendent ou opèrent Scanyze pour le compte de leurs clients : MSSP (Managed Security Service Providers), MSP (Managed Service Providers), agences de sécurité, cabinets de conseil, intégrateurs.

Trois tiers sont disponibles, alignés sur des modèles d'affaires distincts. Source de vérité : secuscan-api/internal/migrations/000099_partner_tiers.up.sql, 000127_partner_tiers_rename_reseller_msp_whitelabel.up.sql, 000152_reseller_tier.up.sql.

Les 3 tiers de partenariat

TierSlug DBCas d'usageTarif partenariat
ResellerresellerRevente simple, le client final paye Scanyze directement, le reseller touche un cashbackGratuit
MSP / MSSPmspGestion technique multi-clients, facturation MSP-aux-clients possibleGratuit (engagement min 1500 $/mois wholesale)
White-Labelwhite-labelMarque blanche complète + custom domain199 $/mois (offert au-delà de 1500 $/mois wholesale)

Différences détaillées

CapacitéResellerMSPWhite-Label
Tenants gérés max25100Illimité
Utilisateurs / tenant max525Illimité
Discount sur le pricing wholesale30%40%40%
White-label rapportsNonOuiOui
Custom domain (scan.maboite.com)NonNonOui
API partenaireOuiOuiOui
Support priorityNonOuiOui
Certification technique requiseNonOuiOui
Engagement wholesale minimum0 $1500 $/mois5000 $/mois (1500 $ pour gratuité du tier)

Différence MSP vs Tenant régulier

Depuis la migration 000169 (Phase 1 — split MSP from Tenant), un MSP est traité comme une entité distincte dans le schéma de données :

ConceptTenant régulierMSP
Table principaletenants (avec tenant_type='regular')msp_accounts + un tenants dédié avec tenant_type='msp_internal'
Modules de scan utilisésOui (consomme directement les scans)Non — un MSP n'utilise jamais directement les modules. S'il veut scanner ses propres assets, il doit créer un client tenant sous lui-même.
Apparaît dans /admin/tenantsOuiNon — filtré (visible uniquement dans /admin/msp)
FacturationPlan Scanyze classiqueModèle reseller ou direct (voir Facturation MSP)
BrandingCustom branding par tenantWhite-label MSP applicable à tous ses tenants gérés

Le tenant msp_internal sert uniquement à l'authentification des utilisateurs MSP — il ne consomme aucun module de scan.

Quotas illimités + bypass SecuCFO (v0.129.4)

Depuis la v0.129.4, les tenants msp_internal sont automatiquement créés avec :

  • Quotas illimités sur tous les modules (max_targets=-1, max_scans_month=-1, monthly_ai_credits=-1, etc.)
  • Bypass SecuCFO : pas de souscription Scanyze à payer (la facturation MSP est portée par le contrat partenaire au niveau de msp_accounts)
  • tenant_type='msp_internal' appliqué dès la création (et non a posteriori)

Pour les tests internes du MSP (par exemple scanner ses propres assets), le partenaire peut créer un client interne tenant sous son MSP avec le mode direct ou reseller.

Plan whitelist sur les clients gérés (v0.129.4)

Quand un MSP crée un client (via /partner/clients/new), seuls les plans suivants sont sélectionnables :

  • Free
  • Starter
  • Pro
  • Business

Le plan Enterprise n'est jamais provisionnable depuis l'UI MSP — il exige une négociation directe avec SecuAAS et un contrat custom.

Phase 2 — dual-write msp_accounts + msp_managed_tenants (v0.130.1)

Depuis la v0.130.1, la création d'un client MSP est dual-write :

  1. Insertion dans tenants (le tenant Scanyze classique)
  2. Insertion dans msp_managed_tenants (référencement du lien MSP → client)
  3. Insertion / mise à jour dans msp_accounts (état du MSP au moment de la création)

Le middleware MSPActAsTenantMiddleware résout les délégations via msp_managed_tenants JOIN msp_accounts.auth_tenant_id en priorité (avec fallback legacy mssp_organizations + partner_accounts). Si le msp_accounts.status != 'active' (suspendu / révoqué), la délégation act_as_tenant est rejetée immédiatement (most-restrictive wins).

Ceci ferme la possibilité d'impersonation cross-MSP (un MSP A ne peut pas voir / opérer un client du MSP B même via JWT manipulé).

Modèles de facturation

Deux modèles, configurables par MSP (champ billing_model dans msp_accounts) :

Mode reseller

  • Le MSP facture ses clients au prix qu'il décide (avec sa propre marge).
  • Scanyze facture le MSP mensuellement avec une facture consolidée regroupant tous les tenants gérés.
  • Le MSP applique son discount_percent sur le pricing wholesale.
  • Idéal pour : MSSP avec son propre pricing et son propre cycle de facturation.

Mode direct

  • Le client final paye Scanyze directement (carte de crédit ou facture).
  • Le MSP touche un cashback récurrent sur la base d'un rebate_pct (typiquement 20%).
  • Le MSP n'a pas besoin de gérer la facturation — Scanyze s'en charge.
  • Idéal pour : revendeur, agence qui veut prescrire Scanyze sans porter le risque crédit client.

Chaque MSP peut choisir le mode par client via le toggle billing_delegated sur le tenant managé (table msp_managed_tenants.billing_delegated).

Cashback Reseller

Pour le tier Reseller, chaque MSP a un code unique (REV-XXXXXX) géré dans reseller_codes. Quand un nouveau tenant s'inscrit avec ce code en query string (/register?ref=REV-XXXXXX), il est attribué au reseller via reseller_signups.tenant_id.

Le reseller touche un cashback de 20% (configurable jusqu'à 30%) sur les paiements du tenant attribué pendant les 12 premiers mois. Le cashback est versé mensuellement, en complément ou en réduction de la facture wholesale du reseller.

act_as_tenant — opérer comme un client

Un utilisateur MSP peut prendre temporairement le contexte d'un tenant managé pour effectuer des opérations en tant que ce tenant :

  • Cliquer sur un tenant dans /partner/clients
  • Cliquer sur Opérer comme ce client
  • Le contexte de session bascule : sidebar, dashboard, droits = ceux du tenant managé
  • Toutes les actions sont journalisées dans audit_logs avec action='msp_act_as_tenant' et le client final voit ces actions dans son audit trail
  • Cliquer sur Quitter le contexte pour revenir au portail MSP

Cette feature est volontairement transparente côté client final (visible dans son audit) pour respecter la traçabilité.

Sections de cette documentation

  • Onboarding — comment devenir partenaire, activation, premier client
  • Gestion des clients — créer, suspendre, plans, quotas
  • Facturation — mode reseller vs direct, factures consolidées, cashback
  • White-label — branding, custom domain, rapports avec votre marque
  • API MSP — endpoints /partner/*, API keys MSP
  • Reporting — dashboard MSP, MRR, posture moyenne, alertes critiques
  • Best practices — flow client recommandé, plans à proposer, comm

Sources de cette page

  • Migrations : 000099 (tiers initiaux), 000127 (renommage), 000152 (reseller code), 000153/000154 (MSP extensions + API keys), 000169 (split MSP from tenant)
  • Backend : secuscan-api/internal/api/handlers/partner.go, partner_msp.go, admin_partners.go, compliance_msp.go
  • Frontend : secuscan-web/app/(dashboard)/partner/

Documentation à jour pour Scanyze v0.130.x — Phase 1 du split MSP/Tenant complétée.

On this page