Skip to main content

Overview

Once a buyer’s subscription is registered, Flexprice reports its usage to Azure automatically, going forward. Usage from before the connection was made is not reported, and you do not call Flexprice again for that buyer unless their subscription changes. Flexprice computes each mapped subscription’s usage for the elapsed period and reports it against your plan’s single metered dimension. Azure then invoices the buyer and pays you out.

What Flexprice Meters to Azure

The amount reported to Azure is the same billable amount that appears on that subscription’s Flexprice invoice for the same period. It is computed with the same rules, so Azure bills what Flexprice bills. That means the reported amount already accounts for:
  • Usage-based charges across every meter on the subscription
  • Commitment amounts, where the subscription has a committed spend
  • Overage rates, where usage exceeds the commitment
The amount is reported in cents against your single metered dimension. With the dimension priced at $0.01 per unit, Azure multiplies it back into the exact amount, down to the cent. See Create Your Azure Marketplace Offer.
Only subscriptions denominated in USD are reported. A subscription in any other currency is left unreported rather than converted.
Azure only accepts a usage quantity greater than zero. When a subscription’s computed amount for a period rounds to zero cents, Flexprice does not send a usage event for it. This is expected: there is nothing to bill, and the subscription is not left in an error state.
Flexprice reports usage to Azure on a recurring schedule. Do not expect usage to appear in Azure immediately after it happens in Flexprice.

Retries and Failures

Reporting recovers from transient failures on its own.
  • Reports are safe to retry. Each report carries a fixed effective time, so a retry is an identical request. Azure rejects it as a duplicate rather than billing twice.
  • Unaccepted reports are retried. If Azure does not accept a report, it stays unreported and is retried on the next run. No action is needed from you.
  • A rejected buyer resolves itself. If Azure reports the subscription is not active, reporting keeps retrying and succeeds once the buyer’s subscription is active again.
Azure will not accept a report older than 24 hours. A report that keeps failing for a full day stops being accepted after that, and the usage it carries is not billed to the buyer. Act on repeated reporting failures the same day they appear.
If the app on your offer’s Technical Configuration does not match the credentials on your Flexprice connection, Azure rejects every report with a 401. Confirm the tenant ID and application ID on the offer match the app whose credentials you gave Flexprice. See Set Up Authentication.

Handling Marketplace Lifecycle Events

Flexprice does not learn about Azure-side changes to a buyer’s subscription. You handle these.
If a buyer unsubscribes on Azure and you leave their Flexprice subscription active, Flexprice keeps computing usage for it and attempting to report it to Azure. Cancel the Flexprice subscription to stop this.
To detect these events, subscribe to your offer’s webhook in your own application. Flexprice does not subscribe to it.

Final Usage When a Buyer Unsubscribes

Azure keeps accepting usage for an unsubscribed SaaS subscription as long as the usage covers time before the subscription was cancelled, and is submitted inside the 24 hour limit above. See When the Marketplace Agreement Ends for how the final usage flush works and how to cancel correctly.

Troubleshooting

Next Steps

Connection Setup

Set up your Azure offer, Entra app credentials, and Flexprice connection.

Agreement Registration

Link each buyer’s Azure subscription to a Flexprice subscription.