Identité · Mesure d'usage · Facturation
Connectez-les. Mesurez leur usage. Facturez-le.
Base316 réunit l'identité et la facturation à l'usage dans un seul plan de contrôle. Un seul appel indique si un compte peut faire quelque chose et qui le paie : droits d'accès, mesure d'usage et factures ne peuvent plus diverger.
- Free inclut la production
- Sans carte pour commencer
- SDK dans 7 langages
- externalId
- "acct_northwind"
- feature
- "ai.tokens"
- externalUserId
- "usr_ada"
- permission
- "reports.export"
- requested
- 2 000
Restant sur la période
237 600
- Utilisé sur la période812 400
- Quota du forfait1 000 000
- Crédits prépayés50 000
- Rôle autorisantadmin · direct
Chiffres d'illustration. Les champs sont la réponse réelle d'une vérification d'accès : la décision, l'usage qui la fonde et le rôle qui l'a accordée.
La production avec Free
Des clés live dès le premier jour, pas un sandbox.
Vous êtes le marchand
Les paiements sont réglés sur votre compte Stripe.
Aucune double facturation
Chaque événement d'usage porte une clé obligatoire.
Des montants exacts
Calculés en arithmétique décimale, arrondis une fois.
7 SDK officiels
Aucune dépendance tierce, dans aucun.
Pourquoi une seule plateforme
Deux systèmes qui finissent par diverger
L'identité et la facturation sont d'ordinaire des produits distincts reliés par des webhooks, et ils se contredisent dès que l'un d'eux prend du retard. Ici, ils partagent un même modèle — et un seul appel répond aux deux moitiés de la question.
La stack habituelle
Trois enregistrements, reliés par des webhooks
- Un forfait résilié continue de débloquer des fonctionnalités jusqu'à l'arrivée d'un webhook.
- Un nouvel utilisateur existe dans l'authentification avant que la facturation ne connaisse le compte.
- L'usage est compté dans votre code, puis recompté pour la facture.
Base316
Un enregistrement, lu de trois façons
Un compte · une version de forfait · un registre d'usage
Identité
Utilisateurs, tenants, rôles et sessions
Droit d'accès
Ce que le forfait accorde, mesuré en direct
Facturation
Des factures issues du même usage
- La vérification qui débloque une fonctionnalité lit le forfait qui la facture.
- L'usage est mesuré une fois, et la facture est calculée à partir de lui.
- Une permission et un quota sont évalués dans le même appel.
Visite du produit
De la connexion au chiffre d'affaires encaissé, dans un seul tableau de bord
Six étapes d'une même requête, chacune avec l'écran qui la pilote. Capturées dans le produit en fonctionnement, avec des données de démonstration.
01 · Identité
Notre page de connexion, ou la vôtre
Envoyez vos utilisateurs vers une page hébergée que Base316 habille à vos couleurs et maintient, et ils reviennent connectés. Mots de passe, passkeys, lien magique ou fournisseur d'identité de leur employeur — la même page, la même session. Ou gardez vos propres écrans et pilotez les mêmes flux via le SDK : la session, les facteurs MFA et le routage SSO sont identiques dans les deux cas.
Plateforme
Ce que vous achèteriez sinon à quatre fournisseurs
Identité, facturation, multi-tenant et usage prépayé, sur un même modèle de vos comptes.
01 · Identité
Le fournisseur d'identité, pas une surcouche
Un émetteur par environnement, volontairement calqué sur Cognito, pour qu'une application déjà pointée vers un user pool puisse être redirigée sans modifier son code.
- OIDC et SAML 2.0. Authorization code avec PKCE, rotation des refresh tokens, JWKS et userinfo. SAML uniquement initié par le SP, car une assertion non sollicitée n'a aucune requête à laquelle se rattacher.
- SSO entreprise par domaine e-mail. Une adresse professionnelle est dirigée vers le fournisseur d'identité de l'employeur plutôt que vers une vérification de mot de passe, et le provisionnement just-in-time crée le compte à la première connexion.
- Vos propres champs, typés. Déclarez une fois ce que vous devez savoir sur vos utilisateurs. Le SDK vous le renvoie typé, généré à partir d'un environnement réel plutôt qu'écrit à la main.

02 · Facturation
Une facturation à l'usage qui tombe juste
L'abonnement payé d'avance après tout essai, l'usage à terme échu, le prorata lors d'un changement de forfait et un avoir pour la part inutilisée. Les montants sont calculés en décimal et arrondis une seule fois.
- Un appel décide du droit d'accès. Il indique si un compte peut utiliser une fonctionnalité, au regard de sa limite plus ses crédits, et explique pourquoi en cas de refus au lieu de renvoyer false.
- Vous restez le merchant of record. Les paiements directs de Stripe Connect sont réglés sur votre propre compte : vous gardez votre tableau de bord Stripe et les rétrofacturations touchent votre solde, pas le nôtre.
- Devis, conditions de paiement et paiement hors ligne. L'essentiel du chiffre d'affaires B2B ne passe jamais par une carte. Établissez le devis, soumettez-le pour approbation, puis enregistrez le virement sur la facture — y compris un paiement partiel.

03 · Tenants et rôles
Les utilisateurs, tenants et rôles de vos clients
Un utilisateur final appartient à une organisation via une adhésion, et l'adhésion porte un rôle. Les rôles accordent des permissions issues d'un catalogue défini par votre propre application : ce qu'une personne peut faire devient une question qui a une réponse, et non une convention.
- Un appel pour les deux questions. `access.check` accepte une fonctionnalité ou une permission. Le même appel répond à « ce compte y a-t-il droit ? » et à « cet utilisateur peut-il le faire ? », de sorte que l'autorisation et la facturation ne peuvent jamais diverger sur une même requête.
- Des rôles que vous définissez. Owner, admin et member ne sont qu'un point de départ. Un rôle est une clé et une liste de permissions, et les clés de permission sont des chaînes que votre code vérifie déjà.
- Un tenant n'est pas un client. L'organisation à laquelle se connecte votre utilisateur et le compte que vous facturez sont des enregistrements distincts, liés quand ils correspondent. Une entreprise peut être plusieurs tenants, ou plusieurs entreprises une seule facture.

04 · Usage prépayé
Vendre l'usage avant qu'il soit consommé
Tous les produits ne facturent pas un mois à terme échu. Vendez un pack de tokens, un bloc de minutes ou un solde rechargeable, et laissez les mêmes compteurs le décompter : ce que le client achète et ce qu'il consomme ne forment qu'un seul chiffre, pas deux à rapprocher.
- Des crédits sur un compteur. Une attribution est une quantité d'une fonctionnalité mesurée, avec une date d'expiration. L'usage la consomme avant de devenir facturable, de sorte qu'un client n'est jamais facturé pour ce qu'il avait déjà acheté.
- Un portefeuille qui règle les factures. Un solde prépayé par compte, imputé sur la facture avant toute tentative de paiement par carte, avec un seuil qui signale quand il s'épuise.
- Refusé avant la dépense. Demandez la quantité que vous vous apprêtez à utiliser. Une requête qui dépasserait le quota est refusée avant que le travail ait lieu, au lieu d'apparaître comme un dépassement sur une facture que personne n'attendait.

Pour les développeurs
Un appel, et il vous dit pourquoi
Un simple false envoie quelqu'un deviner dans le tableau de bord. Chaque refus indique la raison, la limite, ce qui a été utilisé et ce qui reste — pour que l'erreur que voit votre client puisse dire quelque chose d'utile. La même surface existe en API REST, sept bibliothèques clientes, une CLI et un serveur MCP.
- 400
- opérations d'API dans la spécification OpenAPI publiée
- 7
- SDK officiels, de TypeScript à C#
- 0
- dépendance tierce dans chacun d'eux
const decision = await base316.access.check({
externalId: "acct_globex",
feature: "api.calls",
requested: 1,
});
// Refused, and it says why — not a bare false.
{
allowed: false,
reason: "USAGE_LIMIT_EXCEEDED",
usage: {
used: 1_000_000,
limit: 1_000_000,
credits: 0,
remaining: 0,
},
}Comment ça marche
Quatre appels, et vous facturez
Installez le client, connectez vos utilisateurs, enregistrez ce qui se passe et demandez avant de faire le travail. Forfaits, prorata, factures, relances et rapports en découlent sans que rien d'autre ne change dans votre code.
01
Installez-le et pointez-le vers votre clé
Un seul client pour toute la surface : authentification, accès, événements, clients et abonnements. Le préfixe de la clé indique à quel environnement elle appartient, de sorte qu'une clé sandbox ne peut pas toucher aux données de production par accident.
install.ts# Node, or any of six others pnpm add @base316/sdk import { Base316 } from "@base316/sdk"; const base316 = new Base316(); // Reads BASE316_SECRET_KEY from the environment.02
La connexion, à votre façon ou à la nôtre
Envoyez les utilisateurs vers une page hébergée par Base316 à vos couleurs, et échangez le code renvoyé contre une session. Ou gardez vos propres écrans et appelez directement les mêmes flux — la session, les facteurs MFA et le routage SSO sont identiques dans les deux cas.
signin.ts// Our hosted page — send them here, they come back with a code. const session = await base316.auth.exchangeCode({ code }); // Or your own screens, against the same flows. await base316.auth.signUp({ email, password }); await base316.auth.session(token);03
Enregistrez ce que vos clients utilisent
Envoyez un événement là où le travail a lieu. La clé d'idempotence est obligatoire et non facultative, car une nouvelle tentative après un timeout réseau ne doit pas facturer deux fois le même travail — et vous seul savez ce que « le même travail » signifie.
usage.tsawait base316.events.record({ event: "api.call", externalId: "acct_globex", payload: { count: 1 }, idempotencyKey: requestId, }); // Required, not optional: a retry after a timeout // must not bill the same work twice.04
Demandez avant de faire le travail
Le même appel accepte une fonctionnalité ou une permission ; il répond donc à « ce compte a-t-il encore du quota ? » et à « cet utilisateur peut-il le faire ? ». Un refus indique la raison, la limite et ce qui reste — de quoi dire quelque chose d'utile au lieu d'un simple « non ».
gate.tsconst { allowed, reason, usage } = await base316.access.check({ externalId: "acct_globex", feature: "api.calls", }); if (!allowed) { return tooManyRequests(reason); } // The same call, asking about a person in that account. await base316.access.check({ externalId: "acct_globex", userId, permission: "billing.manage", });
Sécurité
Le tenant vient de la clé, jamais de la requête
L'espace de travail, le projet et l'environnement de chaque requête sont lus depuis la clé d'API qui l'a émise. Un id dans une URL ou dans un corps de requête ne prouve jamais une permission.
Une isolation testée comme le ferait un attaquant
La substitution d'ids entre tenants fait partie de la suite de tests. Une ressource qui ne vous appartient pas et une ressource inexistante reçoivent la même réponse.
Des secrets que nous ne pouvons pas divulguer
Les clés secrètes ne sont stockées que sous forme d'empreinte SHA-256 et ne sont affichées qu'une fois. Les identifiants de fournisseurs que vous nous confiez sont chiffrés en AES-256-GCM.
Le Sandbox ne peut pas atteindre la production
Chaque projet dispose d'un environnement Sandbox et d'un environnement Production, et le préfixe de la clé est revérifié par rapport à l'environnement à chaque requête.
Des pages hébergées sans JavaScript
Les pages de connexion sont rendues côté serveur sous une politique de contenu stricte, avec PKCE, protection CSRF et codes à usage unique valables 60 secondes.
Tarifs
Commencez gratuitement. Évoluez quand les limites se font sentir.
Des forfaits simples qui évoluent avec votre équipe. Passez à la vitesse supérieure quand vous êtes prêt.
Gratuit
Explorez le produit sans engagement.
- 1 project, with production access
- 1,000 end users · 100 customers
- 100k metered events a month
- Multi-factor authentication included
- 7-day event retention
- Fonctionnalités produit essentielles
- Support communautaire
Pro
Pour les équipes qui collaborent entre workspaces.
14 jours d'essai gratuit
- 5 projects · 5 seats
- 25,000 end users · 5,000 customers
- 5M metered events a month
- Invoicing, payment collection and dunning
- Custom branding and impersonation
- 90-day event retention
- Fonctionnalités produit avancées
- Jusqu'à 5 membres
- Support par e-mail
Scale
Pour les produits à fort trafic en production.
- Unlimited projects and API keys · 20 seats
- 250,000 end users · unlimited customers
- 50M metered events a month
- Custom authentication domain
- 400-day event retention
- Projets et clés d'API illimités
- 250 000 utilisateurs runtime, 50 M d'événements mesurés
- Domaine d'authentification personnalisé
- Rétention des événements sur 400 jours
Entreprise
Sécurité, support et conditions adaptés à votre organisation.
- Negotiated limits rather than a table
- Enterprise SSO, SAML 2.0 and your own issuer
- Dedicated support and an agreed response time
- Invoicing on your terms, security review, DPA
- Support dédié
- Workspaces illimités
Questions
Les questions des équipes avant de changer
Des réponses franches sur la facturation, l'identité et la migration.
Pour commencer
Livrez le produit, pas le moteur de facturation
Free est une vraie offre avec accès à la production, pas un sandbox. Commencez là et passez au niveau supérieur quand les limites se font vraiment sentir.
- Accès à la production avec Free
- Sans carte pour commencer
- Modèles d'import pour Chargebee, Lago, Stripe et Clerk
Choisissez votre point de départ
