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
<PackageReference Include="IBeam.Billing.Licensing" Version="2.9.45" />
<PackageVersion Include="IBeam.Billing.Licensing" Version="2.9.45" />
<PackageReference Include="IBeam.Billing.Licensing" />
paket add IBeam.Billing.Licensing --version 2.9.45
#r "nuget: IBeam.Billing.Licensing, 2.9.45"
#:package IBeam.Billing.Licensing@2.9.45
#addin nuget:?package=IBeam.Billing.Licensing&version=2.9.45
#tool nuget:?package=IBeam.Billing.Licensing&version=2.9.45
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.
IBillingPurchaseClaimServiceissues 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.
IBillingProviderMigrationServiceswitches 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
PlanKeyor pricePlanKey.
| Product | Versions 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. |
-
net10.0
- IBeam.Billing (>= 2.9.45)
- IBeam.Licensing (>= 2.9.45)
- IBeam.Services (>= 2.9.45)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.3)
- Microsoft.Extensions.Options (>= 10.0.3)
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.