Chaves de API
Cada chave pertence a uma organização e é criada no painel por um usuário administrador. A chave completa aparece uma única vez, no momento da criação.
A chave vai no cabeçalho
Authorization de toda requisição:
Escopos
Cada chave recebe um ou mais escopos. Uma chamada fora do escopo retorna403.
A recomendação é separar funções: a integração do ERP usa
read e propose, e a aprovação fica com uma chave admin guardada em ambiente restrito, ou apenas no painel.
Rotação
- Uma organização pode ter mais de uma chave ativa ao mesmo tempo, o que permite rotação sem janela de indisponibilidade.
- O fluxo sugerido é criar a nova chave, atualizar a integração e revogar a antiga.
- Chaves revogadas deixam de funcionar na hora. Cada chave registra data de criação, último uso e autor.
Allowlist de IP
Chaves de produção podem ser restritas a uma lista de IPs ou blocos CIDR. Requisições de fora da lista retornam403 com o código ip_nao_autorizado. A proposta é tornar a allowlist obrigatória para chaves com escopo admin.
Assinatura de requisição (HMAC)
Além da chave, requisições que alteram estado (POST, PUT) podem ser assinadas com um segredo HMAC da organização, distinto da chave de API. A proposta é que a assinatura seja obrigatória para chaves com escopo admin.
A mensagem canônica junta, separados por quebra de linha: o timestamp, o método, o caminho com query string e o corpo bruto da requisição.
401, o que impede reenvio de uma requisição capturada.
Idempotência
Toda requisiçãoPOST aceita o cabeçalho Idempotency-Key, com um valor único gerado pela integração (um UUID, por exemplo).
- Repetir a mesma chave com o mesmo corpo devolve a resposta original, sem criar uma segunda operação.
- Repetir a mesma chave com corpo diferente retorna
409com o códigoconflito_idempotencia. - As chaves ficam guardadas por 24 horas.
Em resgates e aprovações, o uso de
Idempotency-Key é obrigatório. Uma falha de rede não deve gerar duas solicitações de resgate.Limites de taxa
Os limites valem por chave e são detalhados em Erros e limites. Toda resposta traz os cabeçalhosRateLimit-Limit, RateLimit-Remaining e RateLimit-Reset.