Skip to main content

Usage, Billing, and Invoicing

Usage, Billing, and Invoicing

Overview

CMS collects or imports platform usage, generatesturns it into billing rows, displays billing grids and charts,reports, creates invoices, and calculates commissions.

Usage Collection

Usage collection depends on platform:platform.

Platform Collection model
Azure Stack CollectCollects platform usage and priceprices it through CMS meter/meter and SKU pricing.
Azure Local DiscoverDiscovers VM and disk allocation, generate UsageData, then priceprices usage through CMS.
Public Azure ImportImports Azure cost records,data, mapmaps byit resourceto groupCMS tag,subscriptions, and generateapplies CMSconfigured billing rows.uplift.
CloudStack CollectCollects CloudStack usage and priceprices it through offer/CMS offer and template pricing.

ScheduledUsage usagecan collectionrun runs throughfrom scheduled jobs.jobs Manualor regionfrom updatemanual platform actions dispatchwhere through the same platform-aware usage service path.available.

Billing Generation

Billing persistsgeneration dailycreates Billing rows generated from daily usage rows or imported Azure cost records. Daily windows use half-open date ranges, where the start is included and the end is the next day.

Monthly compatibility routes remain available:

period.Billingcanreviewed
RoutePurpose
GET /api/v1/billing/generate/{yyyy-MM}Generate dailybilling rows for athe calendarselected month.
GETbe /api/v1/billing/yearmonth/{yyyy-MM} Readby rowsdate visiblerange or as monthly resource aggregation in the selectedBilling month.
POST /api/v1/billing/generate/range?start=yyyy-MM-dd&end=yyyy-MM-ddPlatform-admin date-range generation.
GET /api/v1/billing/range?start=yyyy-MM-dd&end=yyyy-MM-ddAuthenticated date-range read.
grid.

ThePlatform applicationadministrators and scheduledservice usageautomation flowscan callgenerate GenerateMonthlyBillingRecords(period_start,billing. period_end)Other asusers thecan compatibility entry point. After the dailyreview billing migrationinformation iswhen applied,invoice that procedure wraps dailyand billing generation.visibility settings allow it.

Billing Page

The Billing grid supports:

  • DateDaily date range selection for daily rows.view.
  • Year/monthMonthly selection for monthlyresource aggregation mode.view.
  • Region, tenant, and subscription filters.
  • CSV export of the filtered rows.
  • Billing details withfor pricing,selected hosting, and resource information.rows.
  • Summary cards for the selected range and the comparable previous range.

The Billing category setting DefaultBillingAggregationMonthlyfor default aggregation controls whether the grid opens in daily or monthly aggregation mode. Users can still toggleswitch modes infor the current page session.

Billing Selection Mode

The Billing >usage Generalselection setting UseOverlapUsageSelection controls how generatedboundary-spanning usage is included in billing selects usage rows.periods.

Setting valueMode BehaviourWhat users should expect
falseStart-time selection UseUsage rowsis whosebilled usagein the period where its start time falls inside the billing day or month.falls.
trueOverlap selection UseUsage that overlaps the billing period overlapcan so boundary-spanning rows arebe included once in the applicable billingthat period.

EnablingChanging overlapthis modesetting can increase generatedchange totals becausefor rowsperiods overlappingthat theinclude beginningusage ofcrossing a date boundary. Review closed-period maytotals nowafter bechanging included.it.

Invoices

InvoicesCMS consume daily billing rows while preservingsupports monthly and quarterly invoice cadences.

Invoice type Behaviour
MonthlyInvoiceMonthly ActualUses actual consumption for the selected coverage month.
QuarterlyInvoiceQuarterly FutureUses three-montha invoiceprojected future quarter based on the previous threerecent completed months, with projection, optional override, and true-up metadata.information where available.

Invoice generation is limitedavailable to platform administratoradministrators and platform service roles.

automation.

Invoice visibility settings control whether tenants, partners, and distributors can see invoice tabs and widgets are visible to tenants, partners, and distributors. The API enforces the same visibility settings server-side. Platform roles can view invoices regardless of these visibility settings.widgets.

Billing Status

The Billing Status tab groups status by tenant and subscription. It shows overdue, issued, uninvoiced, and paid totals for lastrecent month, last quarter, the selected/current month,monthly and currentquarterly quarter-to-date.periods.

Preview and generated invoices are treated as uninvoiced for status reporting.reporting until they move into an issued, overdue, or paid workflow state.

Commissions

Commission summaries and charts are scopedavailable byto role.users Routeswith thatpartner, accept a related partnerdistributor, or distributor ID validate that non-platform callersaccess. canUsers accessonly see commission information in their permitted organisation scope.

What To Check

If expected billing or invoice data is missing, check:

  1. A region exists and is enabled.
  2. Subscriptions exist for the requestedrelevant entitytenant.
  3. before
  4. Usage returningcollection charthas data.

    run

    Operationalfor Notes

    the

    Takeperiod.

  5. a
  6. Pricing MySQLexists backupfor beforethe applyingrelevant dailyplatform, billing,region, billing selection, invoice visibility, quarterly invoicing, tenant invoice type, scheduled notification, Azure Stack SKU normalization, or Azure Stack managed disk meter repair scripts.

    Backfill daily billing only after testing in a non-production copytenant, and reviewingcatalogue reconciliationitems.

  7. output.

  8. Billing generation has run for the period.
  9. Invoice visibility settings allow the user's role family to see invoices.

Known Gaps

Manual Review Required: Historical Public Azure backfill helper work is listedan asoperator backlog.process. PublicConfirm Azurethe intended period and region before regenerating historical regeneration should currently be handled through the Azure billing ingestion path for the required region and date ranges.data.