IBeam.Billing.Licensing 2.9.45

dotnet add package IBeam.Billing.Licensing --version 2.9.45
                    
NuGet\Install-Package IBeam.Billing.Licensing -Version 2.9.45
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="IBeam.Billing.Licensing" Version="2.9.45" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="IBeam.Billing.Licensing" Version="2.9.45" />
                    
Directory.Packages.props
<PackageReference Include="IBeam.Billing.Licensing" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add IBeam.Billing.Licensing --version 2.9.45
                    
#r "nuget: IBeam.Billing.Licensing, 2.9.45"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package IBeam.Billing.Licensing@2.9.45
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=IBeam.Billing.Licensing&version=2.9.45
                    
Install as a Cake Addin
#tool nuget:?package=IBeam.Billing.Licensing&version=2.9.45
                    
Install as a Cake Tool

IBeam.Billing.Licensing

IBeam.Billing.Licensing is the optional bridge from commercial billing state to durable IBeam license grants.

dotnet add package IBeam.Billing.Licensing

Why This Is Separate

IBeam.Billing records payment and commercial state. IBeam.Licensing authorizes runtime application use. This package lets a host opt into translating billing subscriptions, provider prices, cancellations, payment failures, and manual contracts into license grants without making either core package depend on the other.

Quick Start

builder.Services.AddIBeamBillingLicenseReconciliation(options =>
{
    options.PriceMappings.Add(new BillingPricePlanMappingOptions
    {
        ProviderName = "stripe",
        PriceId = "price_pro_monthly",
        PlanKey = "hubbsly-pro"
    });
});

Then reconcile a billing subscription after checkout, invoice payment, webhook ingestion, or manual account setup:

var result = await reconciler.ReconcileAsync(
    tenantId,
    new ReconcileBillingLicenseRequest
    {
        Subscription = subscription,
        EventType = "invoice.paid"
    },
    ct);

Behavior

  • Verified paid purchases automatically receive one stable GUID license key when this bridge is registered.
  • Before Identity onboarding, the fulfilled purchase is the durable unclaimed grant and retains its plan and total seat limit.
  • One-seat and multi-seat purchases both create one license key; an expansion purchase can explicitly retain an existing key.
  • Provider customer and subscription references remain replaceable billing bindings and never become license identity.
  • IBillingPurchaseClaimService issues a short-lived one-time claim token after fulfillment; only its SHA-256 hash is stored.
  • After Identity verifies the signed-in user's email, the host supplies that user id, verified email, and selected tenant to ClaimAsync.
  • A successful claim materializes the pre-created GUID key as the tenant license and assigns the buyer the first seat.
  • Same-user retries are idempotent; expired, wrong-buyer, reused, and cross-tenant claims are rejected.
  • Payment success creates or renews a tenant license.
  • Manual invoice, annual contract, and support-managed subscriptions can use the same reconciler.
  • Renewals and seat changes retain the existing license GUID and seat assignments.
  • Individual licenses start at one seat and expand into multi-user licenses; multi-user licenses default to a three-seat minimum.
  • Seat reductions can preserve assigned capacity, explicitly allow an over-assigned state, or reject the change.
  • Payment failure can suspend, expire, enter a policy-driven grace period, or ignore the matching license.
  • Cancellation and refund behavior can suspend, expire, revoke now, or schedule revocation through metadata.
  • IBillingProviderMigrationService switches a subscription between processors only after the target state reconciles to the existing license key.
  • Provider migrations retain binding history, keep exactly one active binding, and use provider-scoped idempotency keys for safe retries.
  • Price mappings can come from configuration or be inferred from subscription PlanKey or price PlanKey.
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on IBeam.Billing.Licensing:

Package Downloads
IBeam.Billing.Api

ASP.NET Core endpoint wiring for IBeam billing administration and provider-event ingestion.

IBeam.Commerce.Repositories.AzureTable

Azure Table Storage providers for IBeam licensing, billing, and credit stores.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.9.45 93 8/10/2026
2.9.44 95 8/3/2026
2.9.43 96 7/29/2026