Skip to main content
Toda requisição a /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çalho Authorization 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çalho X-API-Key nem 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:
  1. Nenhuma requisição indica uma clínica odontológica. Nenhum caminho, parâmetro ou cabeçalho de /v1 aceita um id de tenant ou de espaço de trabalho. GET /v1/me informa qual clínica odontológica a chave lê, como workspaceId.
  2. 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.
  3. 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.
Uma chave não é uma pessoa. Ela não pode aprovar pedidos, confirmar entregas nem fazer nada que o produto reserva a um membro da equipe.

Obter uma chave

Ainda não existe uma tela no console para criar, listar ou revogar chaves de API. A equipe do muveya emite as chaves sob solicitação.
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.
Regras que valem para toda chave:

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.
Peça as chaves a partir de um membro que continuará responsável pela integração, como um proprietário ou administrador que tenha a permissão Gerenciar integrações e chaves de API (nenhuma função a inclui).

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).
A resposta nunca contém a chave, seu hash nem qualquer outro segredo.

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.
O construtor de requisições das páginas de Endpoints nunca envia requisições nem guarda sua chave, mas mesmo assim não cole uma chave em nenhuma página web.

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 403 não diz qual escopo está faltando. Chame GET /v1/me, compare os scopes com a tabela em Escopos e peça uma chave com os escopos certos.
  • Requisições recusadas com 401 ou 403 nã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, nunca 403.
A lista completa de códigos está em Erros.

O MCP usa OAuth

Uma chave de API não autentica https://api.muveya.com/mcp. Conecte um cliente MCP pelo login e autorização no Console.