Skip to Content
Autenticação

Autenticação e chaves de API

A API usa chaves de API de empresa (service accounts, não vinculadas a um usuário). Cada requisição é autenticada com a chave como Bearer token:

curl https://api.kinmu.app/v1/organization \ -H "Authorization: Bearer kinmu_sk_live_xxxxxxxx"

Natureza das chaves

A empresa é resolvida sempre a partir da chave: você nunca envia um companyId na URL nem no body.

AspectoDetalhe
Formatokinmu_sk_live_<40+ chars> (produção) · kinmu_sk_test_<40+ chars> (sandbox).
VisibilidadeSão exibidas uma única vez na criação. Depois você só verá o prefixo + os primeiros caracteres.
EmissãoPelo painel my.kinmu.app → Desenvolvedores (apenas global_admin / company_manager).
LimiteMáximo de 10 chaves ativas por empresa.
ExpiraçãoOpcional (90 / 180 / 365 dias ou sem expiração).

Scopes

Cada chave carrega scopes explícitos (privilégio mínimo). Sem o scope exigido, o endpoint responde 403 invalid_scope.

ScopePermite
org:empleados:readLer funcionários.
org:empleados:writeAdmitir, atualizar e desligar funcionários.
org:fichajes:readLer pontos e work-summaries.
org:fichajes:writeRegistrar pontos.
org:ausencias:readLer ausências.
org:ausencias:writeCriar, aprovar e recusar ausências.
org:saldos:readLer saldos de férias.
org:estructura:readLer locations e units.
org:informes:readSolicitar e baixar relatórios.
webhooks:manageGerenciar webhooks de saída.

GET /v1/organization não exige um scope específico: serve para introspecção e para validar a chave. Os relatórios exigem também o scope de leitura do seu domínio: por exemplo, absences_export exige org:ausencias:read.

Conceda a cada integração apenas os scopes de que ela precisa.

Sandbox

As chaves kinmu_sk_test_ operam sempre sobre uma empresa sandbox com dados sintéticos, isolada dos seus dados reais. Veja o guia de Sandbox.

Rotação

Rotacionar uma chave = criar uma nova e revogar a antiga. Fluxo sem downtime:

  1. Crie a nova chave com os mesmos scopes.
  2. Faça o deploy da sua integração com a nova chave.
  3. Verifique que funciona (por exemplo, um GET /v1/organization).
  4. Revogue a chave antiga.

Revogação

A revogação é imediata pelo painel: a chave deixa de funcionar no request seguinte (401 unauthenticated). Revogue na hora qualquer chave que você suspeite estar comprometida e verifique o last_used_ip dela.

Boas práticas

  • Nunca publique uma chave em código cliente, apps móveis, repositórios ou logs. São credenciais de servidor.
  • Guarde-as em um gerenciador de segredos ou em variáveis de ambiente.
  • Use uma chave por integração para poder revogar de forma granular.
  • Aplique privilégio mínimo: apenas os scopes indispensáveis.
  • Configure expiração e rotacione periodicamente.
  • Em logs, nunca registre o header Authorization.

Erros de autenticação

HTTPcodeCausa
401unauthenticatedChave ausente, inválida, revogada ou expirada.
403invalid_scopeA chave não tem o scope exigido (errors.required_scope).
403subscription_inactiveA assinatura da empresa está suspensa.
403addon_disabledO addon Public API não está ativo.

Consulte o formato completo de erros em Convenções → Erros.

Last updated on