IBeam.Billing.Services
2.9.45
See the version list below for details.
dotnet add package IBeam.Billing.Services --version 2.9.45
NuGet\Install-Package IBeam.Billing.Services -Version 2.9.45
<PackageReference Include="IBeam.Billing.Services" Version="2.9.45" />
<PackageVersion Include="IBeam.Billing.Services" Version="2.9.45" />
<PackageReference Include="IBeam.Billing.Services" />
paket add IBeam.Billing.Services --version 2.9.45
#r "nuget: IBeam.Billing.Services, 2.9.45"
#:package IBeam.Billing.Services@2.9.45
#addin nuget:?package=IBeam.Billing.Services&version=2.9.45
#tool nuget:?package=IBeam.Billing.Services&version=2.9.45
IBeam.Billing.Services
IBeam.Billing.Services provides the service-layer implementation for IBeam billing records, provider-event ingestion, and local in-memory persistence.
dotnet add package IBeam.Billing.Services
For ASP.NET Core endpoints, use the future IBeam.Billing.Api package.
What This Package Contains
| Area | Type(s) | Purpose |
|---|---|---|
| Offer catalog | ConfigurationBillingOfferCatalogProvider |
Reads provider-neutral checkout offers and total-seat pricing from IBeam:Billing:Offers. |
| Gateway resolver | BillingCheckoutGatewayResolver |
Selects a registered checkout provider adapter by provider name. |
| Pending purchases | BillingPurchaseService, InMemoryBillingPurchaseStore |
Tracks anonymous pre-Identity purchases with correlation and provider-event idempotency. |
| Customers | BillingCustomerService |
Create, update, get, and list tenant billing customers. |
| Subscriptions | BillingSubscriptionService |
Track provider subscriptions, contract state, plan/price references, and seats. |
| Invoices | BillingInvoiceService |
Track invoices, payment state, due dates, and safe hosted invoice references. |
| Provider events | BillingProviderEventService |
Idempotently ingest provider or marketplace events by provider event id. |
| Store | InMemoryBillingStore |
Default development/test persistence for customers, subscriptions, invoices, and provider events. |
| DI | AddIBeamBillingServices(...) |
Registers the billing service stack and IBeam service-operation support. |
Quick Start
using IBeam.Billing.Services;
builder.Services.AddIBeamBillingServices(builder.Configuration);
Example offer configuration:
{
"IBeam": {
"Billing": {
"Offers": [
{
"Key": "hubbsly-pro-monthly",
"ProductKey": "hubbsly",
"PlanKey": "hubbsly-pro",
"DisplayName": "Hubbsly Pro",
"BillingPeriod": "monthly",
"Currency": "USD",
"SeatPolicy": {
"DefaultTotalSeats": 3,
"MinimumTotalSeats": 3,
"SeatIncrement": 1
},
"Pricing": {
"PerSeatAmount": 25.00
},
"ProviderPrices": [
{
"ProviderName": "stripe",
"PriceId": "price_pro_monthly",
"BillingMode": "self-service-monthly"
}
]
}
]
}
}
}
Provider checkout quantity should be set from the resulting quote's TotalSeats. The offer always represents one license.
The bundled store is in-memory and intended for local development, tests, and prototypes. Production applications should replace IBillingStore with Azure Table, SQL, EF, or an application-owned provider.
builder.Services.AddIBeamBillingServices(builder.Configuration);
builder.Services.AddScoped<IBillingStore, MyBillingStore>();
Register the replacement after AddIBeamBillingServices so the host application's store wins.
Service Operations
Billing service methods are tagged with IBeamOperation names for policy, audit, and service-base consumers.
| Service | Class Operation | Representative Method Operations |
|---|---|---|
| Customers | billing.customers |
billing.customers.list, billing.customers.create, billing.customers.update |
| Subscriptions | billing.subscriptions |
billing.subscriptions.list, billing.subscriptions.create, billing.subscriptions.update |
| Invoices | billing.invoices |
billing.invoices.list, billing.invoices.create, billing.invoices.update |
| Provider events | billing.provider-events |
billing.provider-events.record, billing.provider-events.list |
Provider Event Idempotency
BillingProviderEventService.RecordEventAsync creates a stable idempotency key from ProviderName and ProviderEventId. Replaying the same provider event returns the original billing event record instead of creating a duplicate.
Billing And Licensing Boundary
Billing services record commercial state. They do not directly authorize application access. A later reconciler can consume billing records and provider events, then update IBeam.Licensing grants, renewals, suspensions, revocations, seats, and credit grants.
| 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.Services (>= 2.9.45)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.3)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.3)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.3)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on IBeam.Billing.Services:
| Package | Downloads |
|---|---|
|
IBeam.Billing.Api
ASP.NET Core endpoint wiring for IBeam billing administration and provider-event ingestion. |
GitHub repositories
This package is not used by any popular GitHub repositories.