Copilot Cost Management API: como o admin de M365 vai controlar o gasto de créditos de IA
O Microsoft 365 Copilot deixou de ser só "licença fixa por usuário". Com a cobrança baseada em uso (usage-based billing) e os Copilot Credits, cada agente, cada chamada a serviços de IA e cada novo recurso de Agent Builder passam a consumir um saldo medido — e isso é dinheiro de verdade saindo do orçamento de TI sem que ninguém tenha assinado uma PO para cada chamada.[2]
Em outubro de 2026 a Microsoft lançou a Cost Management API do Copilot, dentro do Microsoft Graph, justamente para resolver esse ponto cego: dar ao administrador visibilidade e controle programático sobre quanto cada usuário, grupo ou agente está gastando — antes que o boleto chegue maior do que o esperado.[1][5]
Neste artigo eu mostro o que essa API faz, como ela se encaixa no painel Cost Management do admin center, e como montar uma política de gasto via Graph para não deixar o consumo de créditos correr solto.
O problema que isso resolve
Historicamente, licenciamento de M365 Copilot era previsível: X licenças, X custo fixo por mês. Com o modelo de créditos, serviços como Agent Builder, Cowork, Retrieval API e outros agentes consomem créditos de um pool que pode ser pré-pago (Copilot Credit Pre-purchase Plan), pago por uso (pay-as-you-go) ou uma combinação dos dois.[2]
Sem controle, um usuário pode criar um agente que roda em loop, ou um time pode adotar um serviço novo sem avisar o financeiro, e o consumo de créditos explode no meio do mês. A Cost Management API existe para isso: políticas de gasto (spending policies) que limitam quanto uma audiência pode consumir por período, com alertas antes do limite ser atingido.[1]
É importante entender o escopo: a API é denominada em créditos, não em moeda. Ela não devolve preço, fatura ou previsão de custo em R$/US$ — isso continua vivendo no painel de billing do admin center. O que ela expõe é saldo, política e consumo em unidades de crédito.[1]
Onde isso aparece no admin center
Antes de ir para a API, vale conhecer a experiência visual, porque é de lá que vem o modelo mental da API. No Microsoft 365 admin center, em Copilot > Cost Management, existe a aba Configuration, onde você cria políticas de gasto (spending policies):[4]
- Escopo por identidade (todos os usuários ou grupos específicos) ou por recurso (agentes/ambientes específicos).
- Limite mensal por política (quanto o grupo todo pode gastar no mês) e limite mensal por usuário (teto individual dentro da política).
- Alertas de administrador por limiar de uso (ex.: avisar quando a política atingir 80% do limite).
- Notificações ao próprio usuário quando ele se aproxima do teto.
- Seleção do método de cobrança (créditos pré-pagos primeiro, depois pay-as-you-go).
A Microsoft recomenda um piso mínimo de 2.000 créditos por usuário por mês como orçamento mensal — abaixo disso a interface ainda permite salvar, mas sugere um valor maior para não travar a experiência do usuário no meio do mês.[4]
O ponto chave: políticas de gasto não reservam créditos. Elas são apenas um limite — se o usuário sai da política (ex.: troca de grupo), ele passa a consumir sob a política que se aplicar a ele, e o consumo anterior fica registrado no histórico independentemente disso.[4]
A API, por dentro
A Cost Management API vive sob /copilot/costManagement no Microsoft Graph (atualmente em /beta) e cobre cinco áreas:[1]
-
Saldo da locação —
getTenantCreditBalance, uma foto do saldo de créditos por método de cobrança. -
Spending policies — CRUD completo (
spendingPolicies), com dois tipos:allUsersSpendingPolicy(toda a locação) ouselectedGroupsSpendingPolicy(grupos específicos). -
Escopo de audiência — vincular/desvincular grupos a uma política via referências
$ref. -
Configurações por serviço — habilitar/excluir serviços de IA individuais dentro de uma política (
serviceSettings). -
Alertas de limiar (notify-only) e seus destinatários, e diagnóstico de consumo por usuário (
userBalances), para entender por que um usuário específico está ou não consumindo um serviço.
As permissões seguem a família CopilotCostManagement-*, sempre delegadas (conta corporativa), exceto a leitura do saldo da locação, que também aceita permissão de aplicação (CopilotCostManagement.Read.All). Como sempre no Graph: escolha a permissão de menor privilégio para a operação que você precisa.[1]
| Permissão | Para que serve |
|---|---|
CopilotCostManagement.Read.All |
Ler o saldo de créditos da locação |
CopilotCostManagement-Policy.Read.All |
Ler políticas, configurações por serviço e alertas |
CopilotCostManagement-Policy.ReadWrite.All |
Criar/editar/excluir políticas e alertas |
CopilotCostManagement-Assignment.ReadWrite.All |
Vincular/desvincular grupos a uma política |
CopilotCostManagement-UserData.Read.All |
Diagnosticar saldo e consumo de um usuário específico |
Mão na massa: lendo o saldo e criando uma política
Com um token já obtido (app registration ou delegado, conforme sua necessidade), o fluxo básico em PowerShell com o módulo Microsoft Graph fica assim:
# Conectar com a permissão necessária
Connect-MgGraph -Scopes "CopilotCostManagement.Read.All"
# Ler o saldo de créditos da locação
Invoke-MgGraphRequest -Method GET `
-Uri "https://graph.microsoft.com/beta/copilot/costManagement/getTenantCreditBalance"
Para criar uma política de gasto limitando um grupo de TI a um teto mensal, primeiro é preciso permissão de escrita:
Connect-MgGraph -Scopes "CopilotCostManagement-Policy.ReadWrite.All"
$body = @{
"@odata.type" = "#microsoft.graph.selectedGroupsSpendingPolicy"
displayName = "Politica TI - Agentes Copilot"
periodLimit = @{ value = 50000 } # limite do mes para o grupo
perUserLimit = @{ value = 2000 } # limite por usuario no mes
} | ConvertTo-Json -Depth 5
Invoke-MgGraphRequest -Method POST `
-Uri "https://graph.microsoft.com/beta/copilot/costManagement/spendingPolicies" `
-Body $body -ContentType "application/json"
Dois detalhes que custam tempo de debug se ignorados:
-
Toda política nasce
disabled. Para uma política de grupo, ela só viraenableddepois que você vincula pelo menos um grupo via$refno endpoint deassignedGroups.[3] -
Mutações usam ETag (
If-Match). QualquerPATCH/DELETEem política, configuração de serviço ou alerta exige o ETag mais recente do objeto pai — leia a política antes de cada mutação e use o ETag retornado, sem cachear de uma chamada anterior.[3] -
O tipo de audiência não pode ser alterado depois. Se você criou como
allUsersSpendingPolicye precisa mudar para grupos específicos, é preciso excluir e recriar a política — e isso zera a contabilidade de consumo daquele objeto.[3]
Depois de vincular o grupo, configure o alerta de limiar (ex.: notificar quando o consumo atingir 80%) via emailThresholdSettings, e adicione os destinatários (normalmente o próprio time de TI) com recipients/$ref.[1]
Por que isso importa agora
Esse lançamento acompanha outras novidades de outubro de 2026 no ecossistema Copilot — como o suporte a Agent2Agent (A2A) para agentes declarativos usando o Microsoft Agent 365, que também exige governança central no admin center antes de aprovar conexões entre agentes.[5] O padrão é claro: conforme mais agentes e integrações passam a rodar "sozinhos" dentro do M365, a Microsoft está empurrando controle financeiro e de governança para a camada de API, pensada para automação — não só para clique manual no portal.
Para quem administra um tenant de médio/grande porte, a recomendação prática é:
- Habilitar visibilidade primeiro: leia o saldo da locação e o consumo atual antes de criar qualquer limite agressivo.
- Comece com uma política de alerta sem bloqueio rígido, veja o comportamento real de consumo por 2-4 semanas.
- Só depois disso, ajuste os tetos por grupo/usuário com base em dado real, não em chute.
Conclusão
A Cost Management API fecha uma lacuna real de governança: até agora, o crescimento de agentes e serviços de IA no M365 Copilot não tinha um ponto de controle programático de gasto — só o painel manual. Agora é possível automatizar política, alerta e diagnóstico de consumo via Graph, o que facilita integrar isso em runbooks de PowerShell, dashboards internos ou até alertas automáticos para o time financeiro. Se sua organização já usa Copilot com cobrança por uso, vale revisar o painel Cost Management esta semana — antes que o crédito do mês acabe sem aviso.
Sources
[1] https://learn.microsoft.com/en-us/microsoft-365/copilot/extensibility/api/admin-settings/cost-management/overview — Microsoft 365 Copilot Cost Management API overview
[2] https://learn.microsoft.com/en-us/microsoft-365/copilot/usage-based-billing-overview-copilot-credits — Usage-Based Billing and Cost Management for Copilot Credits
[3] https://learn.microsoft.com/en-us/microsoft-365/copilot/extensibility/api/admin-settings/cost-management/resources/spendingpolicy — spendingPolicy resource type
[4] https://learn.microsoft.com/en-us/microsoft-365/copilot/usage-based-billing-manage-copilot-credits — Managing AI experiences enabled by usage-based billing
[5] https://learn.microsoft.com/en-us/microsoft-365/copilot/extensibility/whats-new — What's New for Microsoft 365 Copilot Developers
Top comments (0)