Hi,
Thank you for reaching out to Microsoft.
As per the ask, you would like to be able to call the {userId}/onlineMeetings/{online-meeting-id}/transcripts/{transcript-id}/content graph API call without getting the "PaymentRequired" error when the 600 minutes per month per tenant per app is exceeded.
I have reviewed the steps which you have mentioned in order to enable metered API for your application and see that all known limitations have been covered to avoid the '402' error.
There are 3 known limitations that are mentioned in the documentation: https://learn.microsoft.com/en-us/graph/metered-api-setup
- Metered APIs and services in Microsoft Graph are currently available only in the Microsoft global environment and not in national cloud deployments, including Microsoft 365 GCC deployments accessed through the worldwide Microsoft Graph endpoint. For details about national clouds, see National cloud deployments.
- The target application must be a confidential client application (for example, web application, web API, or daemon/service). Public client applications (desktop and mobile applications) aren't supported.
- Azure managed identities aren't supported to call metered APIs. For more information, see Azure services that support managed identities.
I believe the second limitation mentioned above might be the reason for the '402' error in your case. Please follow the below steps to verify if the known limitation has been hit:
- To verify you are not using a 'Public Client Application', please fetch the access token used to call the API : {userId}/onlineMeetings/{online-meeting-id}/transcripts/{transcript-id}/content
- Decode the access token on jwt.ms.
- Check the 'appidacr' value on the access token. If the 'appidacr' value is '0', this indicates the application is using a public client flow.
Please see the documentation for access token and check the 'appidacr' description. https://learn.microsoft.com/en-us/entra/identity-platform/access-token-claims-reference
Please see the below documentation for Public and Confidential Client application.
https://learn.microsoft.com/en-us/entra/identity-platform/msal-client-applications
Also refer the documentation for the flow
https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-client-creds-grant-flow
Even after following the provided suggestion, the issue still persists, I recommend you raise a support case with Microsoft Graph, a Support Engineer will be able to look into this issue and assist you better. You can raise support ticket from New support request - Microsoft Entra admin center or https://admin.microsoft.com/#/support/requests.
Hope this helps.
If the answer is helpful, please click Accept Answer and kindly upvote it. If you have any further questions about this answer, please click **Comment. ** Thank you for choosing Microsoft.Hi,
Thank you for reaching out to Microsoft.
As per the ask, you would like to be able to call the {userId}/onlineMeetings/{online-meeting-id}/transcripts/{transcript-id}/content graph API call without getting the "PaymentRequired" error when the 600 minutes per month per tenant per app is exceeded.
I have reviewed the steps which you have mentioned in order to enable metered API for your application and see that all known limitations have been covered to avoid the '402' error.
There are 3 known limitations that are mentioned in the documentation: https://learn.microsoft.com/en-us/graph/metered-api-setup
- Metered APIs and services in Microsoft Graph are currently available only in the Microsoft global environment and not in national cloud deployments, including Microsoft 365 GCC deployments accessed through the worldwide Microsoft Graph endpoint. For details about national clouds, see National cloud deployments.
- The target application must be a confidential client application (for example, web application, web API, or daemon/service). Public client applications (desktop and mobile applications) aren't supported.
- Azure managed identities aren't supported to call metered APIs. For more information, see Azure services that support managed identities.
I believe the second limitation mentioned above might be the reason for the '402' error in your case. Please follow the below steps to verify if the known limitation has been hit:
- To verify you are not using a 'Public Client Application', please fetch the access token used to call the API : {userId}/onlineMeetings/{online-meeting-id}/transcripts/{transcript-id}/content
- Decode the access token on jwt.ms.
- Check the 'appidacr' value on the access token. If the 'appidacr' value is '0', this indicates the application is using a public client flow.
Please see the documentation for access token and check the 'appidacr' description.
https://learn.microsoft.com/en-us/entra/identity-platform/access-token-claims-reference
Please see the below documentation for Public and Confidential Client application.
https://learn.microsoft.com/en-us/entra/identity-platform/msal-client-applications
Also refer the documentation for the flow
https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-client-creds-grant-flow
Even after following the provided suggestion, the issue still persists, I recommend you raise a support case with Microsoft Graph, a Support Engineer will be able to look into this issue and assist you better. You can raise support ticket from New support request - Microsoft Entra admin center or https://admin.microsoft.com/#/support/requests.
Hope this helps.
If the answer is helpful, please click Accept Answer and kindly upvote it. If you have any further questions about this answer, please click Comment.
Thank you for choosing Microsoft.
Similar question: https://learn.microsoft.com/en-us/answers/questions/2236182/enable-metered-apis-and-services-in-microsoft-grap?page=1&orderby=helpful&translated=false#answers