Identität · Metering · Abrechnung

Anmelden lassen. Nutzung messen. Dafür abrechnen.

Base316 vereint Identität und nutzungsbasierte Abrechnung in einer Control Plane. Ein einziger Aufruf beantwortet, ob ein Konto etwas tun darf und wer dafür bezahlt – so können Berechtigungen, Metering und Rechnungen nicht auseinanderlaufen.

  • Free inklusive Produktion
  • Keine Karte nötig
  • SDKs in 7 Sprachen
ZugriffsentscheidungPOST /v1/access/check
externalId
"acct_northwind"
feature
"ai.tokens"
externalUserId
"usr_ada"
permission
"reports.export"
requested
2.000
allowed: truePro · v3 · aktiv

Verbleibend in diesem Zeitraum

237.600

  • Genutzt in diesem Zeitraum812.400
  • Kontingent laut Plan1.000.000
  • Prepaid-Guthaben50.000
  • Berechtigende Rolleadmin · direct

Beispielzahlen. Die Felder sind die echte Antwort einer einzigen Zugriffsprüfung: die Entscheidung, die Nutzung dahinter und die Rolle, die sie gewährt hat.

  • Produktion mit Free

    Live-Schlüssel ab dem ersten Tag, keine Sandbox.

  • Sie sind der Händler

    Zahlungen gehen auf Ihr Stripe-Konto.

  • Keine Doppelabrechnung

    Jedes Nutzungsereignis trägt einen Pflichtschlüssel.

  • Exakte Beträge

    Dezimal berechnet, einmal gerundet.

  • 7 offizielle SDKs

    Keines mit Fremdabhängigkeiten.

Warum eine Plattform

Zwei Systeme, die meist auseinanderlaufen

Identität und Abrechnung sind normalerweise getrennte Produkte, verbunden über Webhooks, und sie widersprechen sich, sobald eines davon hinterherhinkt. Hier teilen sie ein Modell – und ein Aufruf beantwortet beide Hälften der Frage.

Der übliche Stack

Drei Datensätze, verbunden über Webhooks

Auth-AnbieterBenutzer · Sitzungen
Webhook: verspätet, wiederholt oder verloren
AbrechnungssystemPläne · Rechnungen
Webhook: verspätet, wiederholt oder verloren
Ihre Datenbankwer was darf
  • Ein gekündigter Plan schaltet weiter Funktionen frei, bis ein Webhook ankommt.
  • Ein neuer Benutzer existiert in der Auth, bevor die Abrechnung das Konto kennt.
  • Nutzung wird in Ihrem Code gezählt und für die Rechnung noch einmal.

Base316

Ein Datensatz, dreifach gelesen

Ein Konto · eine Planversion · ein Nutzungsjournal

Identität

Benutzer, Mandanten, Rollen und Sitzungen

Berechtigung

Was der Plan gewährt, live gemessen

Abrechnung

Rechnungen aus derselben Nutzung

  • Die Prüfung, die eine Funktion freischaltet, liest den Plan, der sie abrechnet.
  • Nutzung wird einmal gemessen, und die Rechnung wird daraus berechnet.
  • Ein Recht und ein Kontingent werden im selben Aufruf beantwortet.

Produkttour

Von der Anmeldung bis zum verbuchten Umsatz, in einem Dashboard

Sechs Stationen einer Anfrage, jeweils mit dem Screen, der sie steuert. Aufgenommen im laufenden Produkt mit Demodaten.

01 · Identität

Unsere Anmeldeseite oder Ihre eigene

Schicken Sie Ihre Benutzer auf eine gehostete Seite, die Base316 in Ihrem Branding betreibt und pflegt, und sie kommen angemeldet zurück. Passwörter, Passkeys, ein Magic Link oder der Identity Provider des Arbeitgebers – dieselbe Seite, dieselbe Sitzung. Oder behalten Sie Ihre eigenen Screens und steuern dieselben Flows über das SDK: Sitzung, MFA-Faktoren und SSO-Routing sind in beiden Fällen identisch.

app.base316.comDemodaten
In Base316 konfigurierte gehostete Anmeldeseiten mit einer Live-Vorschau der Seite, die Endnutzer sehen

Plattform

Wofür Sie sonst vier Anbieter bräuchten

Identität, Abrechnung, Mandanten und Prepaid-Nutzung – auf einem gemeinsamen Modell Ihrer Konten.

01 · Identität

Der Identity Provider, kein Wrapper um einen

Ein Issuer pro Umgebung, bewusst nach dem Vorbild von Cognito gestaltet, sodass eine Anwendung, die bereits auf einen User Pool zeigt, ohne Codeänderung umgestellt werden kann.

  • OIDC und SAML 2.0. Authorization Code mit PKCE, Refresh-Rotation, JWKS und Userinfo. SAML nur SP-initiiert, weil eine unaufgeforderte Assertion an keine Anfrage gebunden werden kann.
  • Enterprise-SSO nach E-Mail-Domain. Eine geschäftliche Adresse wird an den Identity Provider des Arbeitgebers weitergeleitet statt an eine Passwortprüfung, und Just-in-Time-Provisioning legt das Konto bei der ersten Anmeldung an.
  • Eigene Felder, typisiert. Legen Sie einmal fest, was Sie über Ihre Benutzer wissen müssen. Das SDK liefert es typisiert zurück – generiert aus einer echten Umgebung statt von Hand geschrieben.
api.base316.com/hosted/sign-in
Die gehostete Anmeldeseite, die Endnutzer sehen, mit Namen und Farbe des Kunden

02 · Abrechnung

Nutzungsbasierte Abrechnung, die korrekt abschließt

Die Grundgebühr im Voraus nach einer Testphase, Nutzung im Nachhinein, anteilige Berechnung beim Planwechsel und eine Gutschrift für den ungenutzten Teil. Geldbeträge werden dezimal berechnet und einmal gerundet.

  • Ein Aufruf entscheidet über die Berechtigung. Er beantwortet, ob ein Konto eine Funktion nutzen darf – gemessen an seinem Limit plus Guthaben – und sagt bei einer Ablehnung, warum, statt nur false zurückzugeben.
  • Sie bleiben Merchant of Record. Direct Charges über Stripe Connect werden auf Ihrem eigenen Konto abgerechnet. Sie behalten Ihr Stripe-Dashboard, und Rückbuchungen landen auf Ihrem Saldo, nicht auf unserem.
  • Angebote, Zahlungsziele und Offline-Zahlung. Der Großteil des B2B-Umsatzes läuft nie über eine Karte. Erstellen Sie ein Angebot, geben Sie es zur Freigabe, und verbuchen Sie die Überweisung auf der Rechnung – auch als Teilzahlung.
app.base316.com
Der Umsatz eines Projekts: monatlich wiederkehrender Umsatz je Währung normalisiert, und was noch offen ist

03 · Mandanten und Rollen

Die Benutzer, Mandanten und Rollen Ihrer Kunden

Ein Endnutzer gehört über eine Mitgliedschaft zu einer Organisation, und die Mitgliedschaft trägt eine Rolle. Rollen vergeben Rechte aus einem Berechtigungskatalog, den Ihre eigene Anwendung definiert – so ist die Frage, was eine Person darf, eine Frage mit Antwort statt einer Konvention.

  • Ein Aufruf für beide Fragen. `access.check` nimmt eine Funktion oder ein Recht entgegen. Derselbe Aufruf beantwortet „Ist dieses Konto berechtigt?“ und „Darf dieser Benutzer das?“, sodass Autorisierung und Abrechnung bei derselben Anfrage nie uneins sein können.
  • Rollen, die Sie definieren. Owner, Admin und Member sind nur ein Ausgangspunkt. Eine Rolle ist ein Schlüssel und eine Liste von Rechten, und die Rechte-Schlüssel sind Strings, die Ihr Code bereits prüft.
  • Ein Mandant ist kein Kunde. Die Organisation, bei der sich Ihr Benutzer anmeldet, und das Konto, dem Sie Rechnungen stellen, sind getrennte Datensätze, verknüpft, wo sie übereinstimmen. Ein Unternehmen kann mehrere Mandanten sein – oder mehrere Unternehmen eine Rechnung.
app.base316.com
Endnutzer in einem Base316-Projekt, jeweils mit ihrem Mandanten und der Rolle, die ihre Rechte trägt

04 · Prepaid-Nutzung

Nutzung verkaufen, bevor sie anfällt

Nicht jedes Produkt rechnet einen Monat im Nachhinein ab. Verkaufen Sie ein Paket Tokens, ein Kontingent an Minuten oder ein Aufladeguthaben, und lassen Sie dieselben Meter es abbauen – so sind das, was ein Kunde kauft, und das, was er verbraucht, eine Zahl statt zwei, die abgeglichen werden müssen.

  • Guthaben gegen einen Meter. Eine Gutschrift ist eine Menge einer gemessenen Funktion, mit Ablaufdatum. Die Nutzung baut sie ab, bevor sie abrechenbar wird, sodass ein Kunde nie für etwas zahlt, das er bereits gekauft hat.
  • Ein Wallet, das Rechnungen bezahlt. Ein Prepaid-Guthaben pro Konto, das auf eine Rechnung angerechnet wird, bevor eine Karte belastet wird – mit einem Schwellenwert, der meldet, wenn es knapp wird.
  • Abgelehnt vor der Ausgabe. Fragen Sie nach der Menge, die Sie gleich verbrauchen. Eine Anfrage, die das Kontingent überschreiten würde, wird abgelehnt, bevor die Arbeit passiert – statt als Mehrverbrauch auf einer Rechnung aufzutauchen, mit der niemand gerechnet hat.
app.base316.com
Der Katalog eines Projekts: die Meter, die Nutzung zählen, die Funktionen, die ein Plan gewährt, und die Pläne, die sie verkaufen

Für Entwickler

Ein Aufruf – und er sagt Ihnen, warum

Ein bloßes false schickt jemanden ins Dashboard, um zu raten. Jede Ablehnung enthält den Grund, das Limit, was verbraucht ist und was übrig bleibt – damit die Fehlermeldung, die Ihr Kunde sieht, etwas Nützliches sagen kann. Dieselbe Oberfläche gibt es als REST-API, sieben Client-Bibliotheken, eine CLI und einen MCP-Server.

400
API-Operationen in der veröffentlichten OpenAPI-Spezifikation
7
offizielle SDKs, von TypeScript bis C#
0
Fremdabhängigkeiten in jedem davon
entitlement.ts
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,
  },
}

So funktioniert es

Vier Aufrufe, und Sie rechnen ab

Client installieren, Benutzer anmelden, festhalten, was passiert, und vor der Arbeit fragen. Pläne, anteilige Berechnung, Rechnungen, Mahnwesen und Berichte ergeben sich daraus, ohne dass sich sonst etwas in Ihrem Code ändert.

  1. 01

    Installieren und mit Ihrem Schlüssel verbinden

    Ein Client für die gesamte Oberfläche: Auth, Zugriff, Ereignisse, Kunden und Abonnements. Das Präfix des Schlüssels sagt, für welche Umgebung er gilt, sodass ein Sandbox-Schlüssel nicht versehentlich Produktionsdaten berühren kann.

    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.
  2. 02

    Anmeldung auf Ihre oder unsere Art

    Leiten Sie Benutzer auf eine Seite, die Base316 hostet und in Ihrem Branding gestaltet, und tauschen Sie den zurückgegebenen Code gegen eine Sitzung. Oder behalten Sie Ihre eigenen Screens und rufen dieselben Flows direkt auf – Sitzung, MFA-Faktoren und SSO-Routing sind in beiden Fällen identisch.

    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);
  3. 03

    Erfassen, was Ihre Kunden nutzen

    Senden Sie ein Ereignis dort, wo die Arbeit passiert. Der Idempotenzschlüssel ist Pflicht und nicht optional, weil ein Wiederholungsversuch nach einem Netzwerk-Timeout dieselbe Arbeit nicht doppelt abrechnen darf – und nur Sie wissen, was „dieselbe Arbeit“ bedeutet.

    usage.ts
    await 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.
  4. 04

    Vor der Arbeit fragen

    Derselbe Aufruf nimmt eine Funktion oder ein Recht entgegen und beantwortet so „Hat dieses Konto noch Kontingent?“ und „Darf dieser Benutzer das?“. Eine Ablehnung enthält den Grund, das Limit und was übrig ist – genug, um jemandem etwas Nützliches zu sagen statt nur „Nein“.

    gate.ts
    const { 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",
    });
Client-BibliothekenTypeScriptPythonGoRubyPHPJavaC#

Sicherheit

Der Mandant kommt aus dem Schlüssel, nie aus der Anfrage

Workspace, Projekt und Umgebung jeder Anfrage werden aus dem API-Schlüssel gelesen, der sie gestellt hat. Eine ID in einer URL oder im Body ist nie ein Nachweis für eine Berechtigung.

  • Isolation, getestet wie von einem Angreifer

    Das Vertauschen von IDs zwischen Mandanten ist Teil der Testsuite. Eine Ressource, die Ihnen nicht gehört, und eine, die nicht existiert, erhalten dieselbe Antwort.

  • Secrets, die wir nicht preisgeben können

    Secret Keys werden nur als SHA-256-Digest gespeichert und einmal angezeigt. Zugangsdaten von Anbietern, die Sie uns geben, werden mit AES-256-GCM verschlüsselt.

  • Die Sandbox erreicht die Produktion nicht

    Jedes Projekt hat eine Sandbox- und eine Production-Umgebung, und das Präfix des Schlüssels wird bei jeder Anfrage erneut gegen die Umgebung geprüft.

  • Gehostete Seiten ohne JavaScript

    Anmeldeseiten werden serverseitig unter einer strikten Content-Policy gerendert, mit PKCE, CSRF-Schutz und einmalig gültigen 60-Sekunden-Codes.

Preise

Kostenlos starten. Upgraden, wenn die Limits greifen.

Einfache Pläne, die mit deinem Team wachsen. Upgrade, wenn du bereit bist.

Free

Das Produkt ohne Verpflichtung erkunden.

0 $
  • 1 project, with production access
  • 1,000 end users · 100 customers
  • 100k metered events a month
  • Multi-factor authentication included
  • 7-day event retention
  • Kernfunktionen des Produkts
  • Community-Support
Empfohlen

Pro

Für Teams, die über Workspaces zusammenarbeiten.

49 $/Monat

14 Tage kostenlose Testphase

  • 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
  • Erweiterte Produktfunktionen
  • Bis zu 5 Mitglieder
  • E-Mail-Support

Scale

Für Produkte mit hohem Produktionsvolumen.

249 $/Monat
  • 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
  • Unbegrenzte Projekte und API-Schlüssel
  • 250.000 Runtime-Nutzer, 50 Mio. gemessene Ereignisse
  • Eigene Authentifizierungs-Domain
  • 400 Tage Ereignis-Aufbewahrung

Enterprise

Sicherheit, Support und Konditionen für deine Organisation.

Individuell
  • 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
  • Dedizierter Support
  • Unbegrenzte Workspaces

Fragen

Was Teams vor dem Wechsel fragen

Klare Antworten zu Abrechnung, Identität und Umstieg.

Loslegen

Bauen Sie Ihr Produkt, nicht die Abrechnung

Free ist ein echter Tarif mit Produktionszugang, keine Sandbox. Starten Sie dort und upgraden Sie, wenn die Limits wirklich greifen.

  • Produktionszugang mit Free
  • Keine Karte nötig
  • Import-Vorlagen für Chargebee, Lago, Stripe und Clerk