Enterprise editie
Facturatie
In het kort
Sectie met titel “In het kort”NextPDF Enterprise volgt het verbruik van compute units (CU) per tenant af tegen een planquota en past een configureerbaar overschrijdingsbeleid toe: hard blokkeren, blokkeren met retry-richtlijnen, of doorgaan en waarschuwen. Het stuurt ook gededupliceerde verbruikswaarschuwingen bij drempels van 80%, 100% en budgetoverschrijding. Deze pagina beschrijft het waarneembare facturatiegedrag en het publieke contract.
Beschikbaarheid en licenties
Sectie met titel “Beschikbaarheid en licenties”Deze capaciteit wordt geleverd in NextPDF Enterprise (nextpdf/enterprise) en wordt geactiveerd met een licentie-envelop op Enterprise-niveau. Een implementatie zonder die entitlement laadt de klassen van de capaciteit niet. Vergelijk edities en vraag een licentie aan.
Billing is een basis-Enterprise-capaciteit zonder aparte vlag per functie; de plan-tiers en hun inbegrepen quota worden opgelost via het planregister.
Conceptueel overzicht
Sectie met titel “Conceptueel overzicht”Billing meet het verbruik in compute units. Elke tenant draait onder een plan; elk plan draagt een inbegrepen CU-quota en een capaciteitenset. Er worden drie standaard plan-tiers geleverd — Standard, Advanced en High Control — met progressief grotere inbegrepen quota en progressief bredere capaciteitensets (de hogere tiers voegen de add-on-packs Intelligence en Privacy toe). Het register is de canonieke opzoekbron; een white-label-implementatie kan het construeren met aangepaste definities.
Het overschrijdingsbeleid bepaalt wat er gebeurt wanneer een tenant zijn inbegrepen quota overschrijdt. Een hard-stop-beleid blokkeert de verwerking onmiddellijk en draagt HTTP 402-semantiek. Een soft-stop-beleid blokkeert met retry-richtlijnen en draagt HTTP 429. Een budget-alert-beleid blokkeert nooit — de verwerking gaat door en in plaats daarvan worden waarschuwingen verstuurd, met HTTP 200. Alleen hard-stop en soft-stop blokkeren; de quotamanager roept een quota-overschreden-conditie alleen op wanneer het beleid blokkeert en de inbegrepen quota daadwerkelijk is overschreden.
De waarschuwingsservice evalueert het verbruik aan de hand van drempels in oplopende volgorde — 80%-waarschuwing, 100%-waarschuwing, daarna budgetoverschrijding — en elk waarschuwingstype wordt hoogstens eenmaal per factuurperiode per tenant verstuurd. Budgetoverschrijding vereist strikte overschrijding, niet alleen het bereiken van 100%. De waarschuwingsstatus wordt bijgehouden via een repository-interface, zodat de deduplicatie over verzoeken heen behouden blijft, en de service biedt een duidelijke operatie om de waarschuwingsstatus te resetten bij de overgang naar een nieuwe factuurperiode.
Waarom het zo werkt
Sectie met titel “Waarom het zo werkt”Billing is gebouwd als een pure beslissingslaag, niet als een opslagsysteem. Quotacontroles, overschrijdingsberekeningen en waarschuwingsevaluatie draaien in het geheugen tegen een PlanDefinition en één huidig-verbruikcijfer, zonder I/O op het controlepad. Persistentie zit buiten die beslissing: de status voor waarschuwingsdeduplicatie is alleen bereikbaar via de AlertStateRepositoryInterface die een operator aanlevert, wat de duurzaamheid en de grens van de factuurperiode onder controle van de host houdt. De overschrijdingsuitkomst is een kleine expliciete enum die elk beleid koppelt aan een vaste HTTP-status, zodat de blokkeer-of-doorgaan-beslissing deterministisch en auditeerbaar blijft. Die scheiding laat hetzelfde facturatieoppervlak onveranderd draaien, van één enkele instantie tot een gemeterde multi-tenant-vloot.
Ontwerpachtergrond: NextPDF in productie draaien.
Publiek API-oppervlak
Sectie met titel “Publiek API-oppervlak”composer require nextpdf/enterprise:^3De ondersteunde integratiepunten zijn het planregister (get, has, defaultRegistry), de quotamanager (checkQuota, remainingQuota, usagePercentage), de overschrijdingscalculator (calculate, die een onveranderlijk overschrijdingsresultaat retourneert), de overschrijdingsbeleids-enum (httpStatusCode, isBlocking) en de facturatiewaarschuwingsservice (evaluate, clearAlerts). De waarschuwingsstatus-repository is een interface — lever een in-memory implementatie voor tests of een duurzame voor productie.
Codevoorbeeld — Snelstart
Sectie met titel “Codevoorbeeld — Snelstart”use NextPDF\Enterprise\Billing\OverageCalculator;use NextPDF\Enterprise\Billing\PlanRegistry;use NextPDF\Enterprise\Billing\SaaSPlan;
$plan = PlanRegistry::defaultRegistry()->get(SaaSPlan::Standard);$result = (new OverageCalculator())->calculate($plan, currentCu: 1_250.0);
$result->isOverage; // true — 1,250 CU against a 1,000 CU included quota$result->overageCu; // 250.0$result->usageRatio; // 1.25Codevoorbeeld — Productie
Sectie met titel “Codevoorbeeld — Productie”use NextPDF\Enterprise\Billing\OveragePolicy;use NextPDF\Enterprise\Billing\QuotaExceededException;use NextPDF\Enterprise\Billing\QuotaManager;
$manager = new QuotaManager($registry, OveragePolicy::SoftStop);
try { $manager->checkQuota($tenant, SaaSPlan::Advanced, $currentCu);} catch (QuotaExceededException $e) { // SoftStop → answer with 429 + Retry-After up to the reset instant. return $this->retryAfter($e->resetsAt);}
foreach ($alertService->evaluate($tenant, $plan, $planDef, $currentCu) as $alert) { $this->notify($tenant, $alert->severity(), $alert);}Randgevallen en valkuilen
Sectie met titel “Randgevallen en valkuilen”- Budget-alert blokkeert nooit. Onder een budget-alert-beleid roept
checkQuotaniets op, ook ver voorbij de quota; vertrouw op de verstuurde waarschuwingen, niet op een uitzondering. - Budgetoverschrijding vereist strikte overschrijding. Precies 100% bereiken stuurt de 100%-waarschuwing, niet budgetoverschrijding; budgetoverschrijding vereist verbruik strikt boven de inbegrepen quota.
- Waarschuwingen dedupliceren per periode. Elk waarschuwingstype wordt eenmaal per tenant per factuurperiode verstuurd. Wis de waarschuwingsstatus bij de periodeovergang, anders worden waarschuwingen de volgende periode niet opnieuw verstuurd.
- Inbegrepen quota van nul of niet ingesteld. Een plan met een niet-positieve inbegrepen quota rapporteert een verbruiksratio van 0.0 in plaats van te delen door nul.
- De periodereset is de grens van de volgende maand. Het standaard quota-overschreden-resetmoment is de eerste dag van de volgende kalendermaand om middernacht.
Prestaties
Sectie met titel “Prestaties”Quotacontroles, overschrijdingsberekening en waarschuwingsevaluatie zijn constante-tijd in-memory operaties tegen een plandefinitie en het aangeleverde huidige-verbruikcijfer. Er is geen I/O op het controlepad, tenzij jouw waarschuwingsstatus-repository-implementatie die uitvoert.
Beveiligingsnotities
Sectie met titel “Beveiligingsnotities”Facturatiebeslissingen worden afgeleid uit een tenant-gescopt huidig-verbruikcijfer dat door de caller wordt aangeleverd; de tenant-identiteit moet uit een geauthenticeerde context komen, nooit uit door de client aangeleverde invoer. Het facturatieoppervlak handhaaft quota en stuurt waarschuwingen — het authenticeert de tenant niet zelf.
Conformiteit
Sectie met titel “Conformiteit”De uitkomsten van het overschrijdingsbeleid dragen standaard HTTP-statussemantiek: payment-required (402) voor hard-stop, too-many-requests (429) met retry-richtlijnen voor soft-stop, en success (200) voor budget-alert, volgens de IETF HTTP-semantiekspecificatie (RFC 9110) voor de klassen 402, 429 en 2xx. RFC 9110 is voor deze pagina niet opgehaald uit het RAG-corpus; deze mapping is afgeleid uit de in de code gedeclareerde statuscodes en de bekende HTTP-semantiekspecificatie, en is hier gemarkeerd als code-gedeclareerd in plaats van RAG-geverifieerd.
Gedragscontract
Sectie met titel “Gedragscontract”- Het verbruik wordt gemeten in compute units; elke tenant draait onder een plan met een inbegrepen CU-quota en een capaciteitenset.
- Het overschrijdingsbeleid is een van hard-stop (402, blokkerend), soft-stop (429 met retry-richtlijnen, blokkerend) of budget-alert (200, niet-blokkerend); een quota-overschreden-conditie wordt alleen opgeroepen wanneer het beleid blokkeert en de inbegrepen quota daadwerkelijk is overschreden.
- Waarschuwingen evalueren in oplopende volgorde (80%-waarschuwing, 100%-waarschuwing, budgetoverschrijding) en elk type wordt hoogstens eenmaal per factuurperiode per tenant verstuurd; budgetoverschrijding vereist strikte overschrijding.
- Een niet-positieve inbegrepen quota rapporteert een verbruiksratio van 0.0 in plaats van te delen door nul.
- Quotacontroles, overschrijdingsberekening en waarschuwingsevaluatie zijn constante-tijd in-memory operaties zonder I/O op het controlepad, tenzij de waarschuwingsstatus-repository die uitvoert.
Publicatiegrens
Sectie met titel “Publicatiegrens”Deze pagina documenteert alleen extern waarneembaar gedrag en het ondersteunde publieke API-oppervlak. Interne namespace-paden, helperklassen, mechanismetabellen, runbook-bestandsnamen en ticketprefixen vallen buiten het bereik.
Core-fallback
Sectie met titel “Core-fallback”NextPDF Core (Apache-2.0) heeft geen facturatie-, quota- of overschrijdingsoppervlak — geen enkel; deze capaciteit heeft geen equivalent op Core-niveau. Core-verwerking wordt door NextPDF niet gemeten, niet quota-gated en niet van waarschuwingen voorzien.
Pro-fallback
Sectie met titel “Pro-fallback”NextPDF Pro heeft geen facturatie-, quota- of overschrijdingsoppervlak — geen enkel; deze capaciteit heeft geen equivalent op Pro-niveau. Het planregister, de quotamanager, de overschrijdingscalculator en de waarschuwingsservice worden uitsluitend in het pakket nextpdf/enterprise geleverd.
Enterprise-grensnotitie
Sectie met titel “Enterprise-grensnotitie”Het planregister, het overschrijdingsbeleid en de waarschuwingsdeduplicatie worden op gedragsniveau beschreven. De waarschuwingsstatus-repository is een interface; duurzame persistentie wordt door de host geleverd, en de interne opslagstrategie voor de waarschuwingsstatus valt buiten het bereik van het publieke oppervlak.
Implementatiegrens
Sectie met titel “Implementatiegrens”Facturatiebeslissingen worden afgeleid uit een tenant-gescopt huidig-verbruikcijfer dat door de caller wordt aangeleverd. De operator is eigenaar van de implementatie van de waarschuwingsstatus-repository, de persistentie ervan en het schema voor de overgang naar een nieuwe factuurperiode. NextPDF Enterprise handhaaft quota en stuurt waarschuwingen, maar authenticeert de tenant niet zelf en persisteert het verbruik niet zelf.
Juridisch-compliancegrens
Sectie met titel “Juridisch-compliancegrens”Er geldt geen exportcontrolebeperking voor het facturatieoppervlak. Planinclusies, quota en commerciële voorwaarden worden bepaald door je licentieovereenkomst, niet door handhaving tijdens runtime. Deze documentatie is geen juridisch of contractueel oordeel; raadpleeg je eigen adviseurs en je overeenkomst voor de plan-scope.