/v1 é autenticada com uma chave de API: uma credencial secreta de máquina que pertence a uma única clínica odontológica e tem uma lista explícita de escopos. O endpoint MCP /mcp usa login e autorização com OAuth no Console.
Como a chave é enviada
Envie a chave no cabeçalhoAuthorization com o esquema Bearer, em toda requisição:
- A chave é uma string opaca, não um JWT. Não tente decodificá-la.
Authorization: Beareré o único transporte aceito. Não existe cabeçalhoX-API-Keynem parâmetro de consulta para a chave.- O nome do esquema não diferencia maiúsculas de minúsculas, mas a chave precisa ser enviada exatamente como foi emitida, sem aspas e sem quebras de linha.
Como é uma chave
O muveya guarda apenas um hash SHA-256 da chave e seus primeiros 12 caracteres (o prefixo, por exemplo
mvy_test_ab1). A chave completa é exibida uma única vez, na criação, e não pode ser recuperada depois. Se ela se perder, peça uma nova.
Uma chave, uma clínica odontológica
Uma chave fica vinculada a uma clínica odontológica no servidor no momento da criação. Isso tem três consequências:- Nenhuma requisição indica uma clínica odontológica. Nenhum caminho, parâmetro ou cabeçalho de
/v1aceita um id de tenant ou de espaço de trabalho.GET /v1/meinforma qual clínica odontológica a chave lê, comoworkspaceId. - Uma chave lê toda a clínica odontológica. Ela não é limitada pelo acesso a unidades e depósitos que vale para os membros da equipe: dentro dos seus escopos, lê todas as unidades e todos os depósitos.
- Para integrar duas clínicas odontológicas, use duas chaves. Um registro de outra clínica odontológica responde
404, exatamente como se não existisse.
Obter uma chave
1
Peça a partir de uma conta que gerencia integrações
Um membro da sua clínica odontológica com a permissão Gerenciar integrações e chaves de API (
integrations.manage) escreve para team@muveya.com. Veja Funções e permissões para saber como essa permissão é concedida.2
Diga para que serve a chave
Inclua um nome para a integração (por exemplo “Sincronização de estoque com o ERP”) e os escopos exatos de que ela precisa. Escolha-os com as receitas de privilégio mínimo em Escopos. Uma chave precisa ter pelo menos um escopo.
3
Guarde a chave assim que recebê-la
A chave é criada para esse membro e sua clínica odontológica, com exatamente os escopos que você pediu. Guarde-a imediatamente no seu gerenciador de segredos: ela é exibida uma única vez.
4
Verifique
Chame
GET /v1/me (abaixo) e confirme que workspaceId e scopes são os esperados.Quando uma chave deixa de funcionar
Uma chave só funciona enquanto o membro para quem foi criada continuar ativo na clínica odontológica:- Se esse membro for suspenso ou removido da clínica odontológica, a chave para de funcionar imediatamente.
- Reativar o membro não traz a chave de volta. O console avisa isso ao reativar alguém: as chaves de API anteriores à suspensão continuam encerradas. Peça uma chave nova.
- Se a própria clínica odontológica estiver suspensa, todas as suas chaves são recusadas.
Sua primeira chamada: GET /v1/me
GET /v1/me não exige nenhum escopo. Use-a para verificar uma chave antes de qualquer outra coisa.
200 OK
string
obrigatório
A clínica odontológica à qual a chave pertence, definida pelo servidor.
string
obrigatório
O ambiente da chave. Sempre
test na v1.string[]
obrigatório
Os escopos da chave, na forma com dois-pontos usada em toda a API (
catalog:read).Mantenha as chaves no seu servidor
- Guarde a chave em um gerenciador de segredos ou em uma variável de ambiente do servidor, e leia-a em tempo de execução.
- Nunca a coloque em código de navegador, aplicativo móvel, planilha compartilhada, repositório de código, URL, linha de log ou relatório de erros.
- Use uma chave por integração, para poder revogar uma sem parar as outras.
- Quando falar com o suporte sobre uma chave, identifique-a pelo nome ou pelo prefixo (os primeiros 12 caracteres), nunca pela chave completa.
- Se uma chave pode ter vazado, peça a revogação imediatamente e substitua-a.
Rotacionar uma chave
1
Obtenha uma segunda chave
Peça uma chave nova com os mesmos escopos (veja Obter uma chave). As duas chaves funcionam ao mesmo tempo e ambas contam para o limite de 10 chaves ativas.
2
Implante-a
Substitua a chave antiga em todos os sistemas que a usam.
3
Verifique
Chame
GET /v1/me a partir de cada sistema com a chave nova.4
Revogue a chave antiga
Peça a revogação da chave antiga (abaixo).
Revogar uma chave
Um membro com Gerenciar integrações e chaves de API (integrations.manage) escreve para team@muveya.com com o nome ou o prefixo da chave.
- A revogação vale a partir da próxima requisição. Não há cache para esperar.
- Não pode ser desfeita: uma chave revogada nunca volta a funcionar. Peça uma chave nova se ainda precisar de acesso.
- O registro da chave é mantido para a auditoria da sua clínica odontológica, assim como os eventos de criação e revogação.
Respostas 401 e 403
401 Unauthorized (Accept-Language: pt)
- O
401é idêntico para todas as causas, de propósito: ele não revela se uma chave existe. Confira primeiro o formato do cabeçalho e depois verifique com o membro que pediu a chave se ela foi revogada ou se esse membro continua ativo. - O
403não diz qual escopo está faltando. ChameGET /v1/me, compare osscopescom a tabela em Escopos e peça uma chave com os escopos certos. - Requisições recusadas com
401ou403não consomem seu orçamento de limites de uso e não trazem cabeçalhos de limite. - Um registro que pertence a outra clínica odontológica responde
404, nunca403.
O MCP usa OAuth
Uma chave de API não autenticahttps://api.muveya.com/mcp. Conecte um cliente MCP pelo login e autorização no Console.