Microsoft.Consumption Events API Returns Only One ConsumptionCommitment Event While Lots API Returns Valid MACC Data for MCA Billing Account

cyberdevops 0 Reputation points
2026-07-03T10:32:59.29+00:00

We are investigating Microsoft Azure Consumption Commitment (MACC) data through the Azure Consumption REST APIs for a Microsoft Customer Agreement (MCA) billing account.

The Lots API successfully returns MACC commitment information, including the active commitment lot and balance details. The Events API also works, but returns only a single event, despite expectations that historical commitment consumption events should be available. According to the documentation, the Events API lists events that decrement Azure credits or Microsoft Azure Consumption Commitments and supports filtering by lotSource and lotId. [docs.azure.cn], [status.clo....microsoft]

Additionally, the Balances API returns a 404 error indicating that no billing period information can be found for the specified billing account, even though the billing account is active and the Lots and Events APIs are accessible. [github.com], [azure.microsoft.com]

We would like clarification on:

  1. Whether the Events API is expected to return the complete MACC consumption history or only the latest settlement event.
  2. Whether historical MACC consumption events require additional filtering parameters.
  3. Whether the Balances API is supported for MCA billing accounts.

Whether there are known limitations for Microsoft.Consumption/events and Microsoft.Consumption/balances when used with MCA billing accounts.

The AZ Rest API Requests

  • Request 1 - Lots API (Works)

      GET https://management.azure.com/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019_09_01/providers/Microsoft.Consumption/lots?api-version=2024-08-01
    
  • Request 2 - Events API (Returns Only One Event)

      GET https://management.azure.com/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_
    
  • Request 3 - Balances API (Returns 404)

      GET https://management.azure.com/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_
    
Azure API Management
Azure API Management

An Azure service that provides a hybrid, multi-cloud management platform for APIs.

0 comments No comments

1 answer

Sort by: Most helpful
  1. AI answer

    2026-07-03T10:33:53+00:00

    For a Microsoft Customer Agreement (MCA) billing account, MACC tracking via the Consumption APIs behaves as follows based on the documented behavior.

    1. Events API and MACC history

    For MACC, the documented Events API call is:

    GET https://management.azure.com/providers/Microsoft.Billing/billingAccounts/<billingAccountName>/providers/Microsoft.Consumption/events?api-version=2021-05-01&startDate=<startDate>&endDate=<endDate>&$filter=lotsource%20eq%20%27ConsumptionCommitment%27
    

    Key points from the documentation:

    • The Events API "returns all events that affected your MACC" for the given date range.
    • Events are described as invoiced spending that decremented the MACC, with fields such as transactionDate, charges, closedBalance, and invoiceNumber.
    • Only SettledCharges events are supported for MACC.

    Therefore:

    • The Events API is intended to return all MACC-related settlement events within the specified startDate/endDate window, not just the latest event.
    • If only one event is returned, it is typically because only one SettledCharges event exists in the specified date range, or because the date range/filter effectively narrows the result to that single event.
    1. Required filters / parameters for historical MACC events

    The MACC documentation shows the minimum required parameters:

    • startDate (required)
    • endDate (required)
    • $filter=lotsource eq 'ConsumptionCommitment' (to restrict to MACC events)

    Example:

    GET https://management.azure.com/providers/Microsoft.Billing/billingAccounts/<billingAccountName>/providers/Microsoft.Consumption/events?api-version=2021-05-01&startDate=2024-01-01&endDate=2024-12-31&$filter=lotsource%20eq%20%27ConsumptionCommitment%27
    

    The documentation does not list any additional required filters (such as lotId) to retrieve historical MACC events. Filtering by lotSource is sufficient to get all MACC events for the billing account in the specified date range.

    1. Balances API support for MCA billing accounts

    For MCA, the documented pattern for tracking credit/MACC-like balances is:

    • Use Microsoft.Consumption/lots to retrieve credit or commitment lots and their closedBalance.
    • Use Microsoft.Consumption/events to retrieve transactions that affect those lots.

    For MCA credit balance (not MACC), the documented REST pattern is:

    GET https://management.azure.com/providers/Microsoft.Billing/billingAccounts/<billingAccountId>/billingProfiles/<billingProfileId>/providers/Microsoft.Consumption/lots?api-version=2023-03-01
    

    and events via:

    GET https://management.azure.com/providers/Microsoft.Billing/billingAccounts/<billingAccountID>/billingProfiles/<billingProfileID>/providers/Microsoft.Consumption/events?api-version=2023-03-01&startDate=<date>&endDate=<date>
    

    The documentation for MCA focuses on lots and events and does not describe a Microsoft.Consumption/balances endpoint for MCA billing accounts. Instead, it explicitly states that the available balance is computed by aggregating closedBalance across active credits.

    Given this, the supported pattern for MCA is:

    • Use lots + events to derive balances.
    • A dedicated balances endpoint is not documented for MCA.
    1. Known limitations for Microsoft.Consumption/events and Microsoft.Consumption/balances with MCA

    From the documented MCA behavior:

    • Events:
      • Only SettledCharges events are supported for MACC.
      • Events are tied to invoiced spending; if there are few invoices or limited MACC-eligible spend, the number of events will be correspondingly small.
      • Events require startDate and endDate and can be filtered by lotSource = 'ConsumptionCommitment'.
    • Balances:
      • For MCA, balance information is exposed via lots (closedBalance fields) and events, not via a separate balances resource.
      • A 404 from a balances endpoint for an MCA billing account is consistent with the absence of documented support for Microsoft.Consumption/balances for MCA.

    In practice for MCA MACC:

    • Use the Lots API (Microsoft.Consumption/lots) to get MACC commitment metadata and remaining balance (closedBalance).
    • Use the Events API (Microsoft.Consumption/events with lotSource eq 'ConsumptionCommitment' and a suitable date range) to retrieve all MACC settlement events.
    • Do not rely on Microsoft.Consumption/balances for MCA; instead, compute balances from lots and events.

    References:

    AI-generated content may be incorrect. Read our transparency notes for more information.

    Was this answer helpful?

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.