A free program from Microsoft that provides developers with the tools, resources, and sandbox environments needed to build solutions for Microsoft 365.
I managed to resolve this issue, so sharing what worked for me in case it helps others.
In my case, the MCA billing account was already:
- Active
- Had an active billing profile
- Had a valid payment method
- Had active invoice sections
- I was Billing Account Owner
- Spending limit was Off
However, the Microsoft 365 Developer Program still showed:
No billing accounts found
The important discovery was that the MCA billing profile did not actually have Microsoft Azure Plan enabled in the backend, even though Azure Portal showed “Microsoft Azure Plan” as an option when creating a subscription.
How I checked it
I used Azure Cloud Shell (Bash) and the Azure Billing REST API.
First, list your billing accounts:
az rest --method get \
--url "https://management.azure.com/providers/Microsoft.Billing/billingAccounts?api-version=2024-04-01" \
--query "value[].{Name:name,DisplayName:properties.displayName,Agreement:properties.agreementType,Status:properties.accountStatus}" \
-o table
Take the Name value for your Microsoft Customer Agreement billing account:
BA='<YOUR-MCA-BILLING-ACCOUNT-NAME>'
Then check the billing profile:
az rest --method get \
--url "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/${BA}/billingProfiles?api-version=2024-04-01" \
--query "value[].{Status:properties.status,SpendingLimit:properties.spendingLimit,EnabledAzurePlans:properties.enabledAzurePlans}" \
-o json
Mine returned:
"EnabledAzurePlans": []
I also checked which invoice sections were eligible to create Azure subscriptions:
az rest --method post \
--url "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/${BA}/listInvoiceSectionsWithCreateSubscriptionPermission?api-version=2024-04-01" \
-o json
and got:
{
"value": []
}
So the MCA existed, but Azure Billing did not consider the Azure Plan properly enabled.
What fixed it
I went to:
Azure Portal → Subscriptions → Create subscription
and created a new subscription using:
the affected MCA billing account → its billing profile → an existing invoice section → Microsoft Azure Plan
After doing that, I ran the REST query again and got:
"EnabledAzurePlans": [
{
"skuDescription": "Microsoft Azure Plan",
"skuId": "0001"
}
]
I then refreshed the Microsoft 365 Developer Program sandbox setup and the billing account immediately appeared. I was able to create the E5 Instant Sandbox successfully.
So in my case, creating another invoice section did not fix it. I already had multiple active invoice sections.
The thing that actually fixed the issue was creating an Azure subscription under the affected MCA, which triggered Microsoft Azure Plan to become enabled on the billing profile.
Important: you don’t need to deploy resources into that Azure subscription just to perform this fix. The Azure subscription itself can remain empty. Billable Azure resources are what generate usage charges.
Also, if you already have another active Azure subscription, check which billing account it belongs to. My existing subscription did not help because it was not under the MCA billing profile being validated by the Developer Program.