Automation for partners
Microsoft Cost Management is natively available for direct partners who onboarded their customers to a Microsoft Customer Agreement and purchased an Azure Plan. Partners and their customers can use Cost Management APIs common tasks. For more information about nonautomation scenarios, see Cost Management for Partners.
Note
Although specific API versions are shown in the examples in this article, we recommend that you use the latest API version available. Newer API versions might have improved functionality. Later API versions support previous versions.
Microsoft Cost Management APIs - Direct and indirect providers
Partners with access to billing scopes in a partner tenant can use the following APIs to view invoiced costs.
Partners can call APIs at the subscription scope regardless of the cost policy, as long as they have access to the subscription. Other users with access to the subscription, like the customer or reseller, can call the APIs only after the partner enables the cost policy for the customer tenant.
To get a list of billing accounts
GET https://management.azure.com/providers/Microsoft.Billing/billingAccounts?api-version=2019-10-01-preview
To get a list of customers
GET https://management.azure.com/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/customers?api-version=2019-10-01-preview
To get a list of subscriptions
GET https://management.azure.com/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingSubscriptions?api-version=2019-10-01-preview
To get a list of invoices for a specific period
GET https://management.azure.com/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices?api-version=2019-10-01-preview&periodStartDate={periodStartDate}&periodEndDate={periodEndDate}
The API call returns an array of invoices that has elements similar to the following JSON code.
{ "id": "/providers/Microsoft.Billing/billingAccounts/{billingAccountID}/billingProfiles/{BillingProfileID}/invoices/{InvoiceID}", "name": "{InvoiceID}", "properties": { "amountDue": { "currency": "USD", "value": x.xx }, ... }
To query for usage details, use the preceding returned ID field value and replace it in the following example as the scope.
GET https://management.azure.com/{id}/providers/Microsoft.Consumption/UsageDetails?api-version=2019-10-01
The example returns the usage records associated with the specific invoice.
To get the policy for customers to view costs
GET https://management.azure.com/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/customers/{customerID}/policies/default?api-version=2019-10-01-preview
To set the policy for customers to view costs
PUT https://management.azure.com/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/customers/{customerID}/policies/default?api-version=2019-10-01-preview
To get Azure service usage for a billing account
We recommend that you configure an Export for these scenarios. For more information, see Retrieve large usage datasets with exports.
To download a customer's Azure service usage
We recommend that you configure an Export for this scenario as well. If you need to download the data on demand, however, you can use the Cost Details API. For more information, see Get small cost datasets on demand.
To get or download the price sheet for consumed Azure services
First, use the following post.
POST https://management.azure.com/providers/Microsoft.Billing/BillingAccounts/{billingAccountName}/billingProfiles/{billingProfileID}/pricesheet/default/download?api-version=2019-10-01-preview&format=csv" -verbose
Then, call the asynchronous operation property value. For example:
GET https://management.azure.com/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileID}/pricesheetDownloadOperations/{operation}?sessiontoken=0:11186&api-version=2019-10-01-preview
The preceding get call returns the download link containing the price sheet.
To get aggregated costs
POST https://management.azure.com/providers/microsoft.billing/billingAccounts/{billingAccountName}/providers/microsoft.costmanagement/query?api-version=2019-10-01
Create a budget for a partner
PUT https://management.azure.com/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/providers/Microsoft.CostManagement/budgets/partnerworkshopbudget?api-version=2019-10-01
Create a budget for a customer
PUT https://management.azure.com/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/customers/{customerID}/providers/Microsoft.Consumption/budgets/{budgetName}?api-version=2019-10-01
Delete a budget
DELETE https://management.azure.com/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/providers/Microsoft.CostManagement/budgets/{budgetName}?api-version=2019-10-01
Related content
- Learn more about Cost Management automation at Cost Management automation overview. Automation scenarios.
- Get started with Cost Management for partners.
- Retrieve large usage datasets with exports.
- Understand usage details fields.