Pular para o conteúdo principal

Autenticação

Todas as requisições à API Owem utilizam Basic Authentication. Você precisa de:
  • API Key: Identificador público da sua credencial
  • API Secret: Chave secreta (exibida apenas uma vez)

Formato do Header

Authorization: Basic {Base64(API_KEY:API_SECRET)}

Gerando o Token

const API_KEY = process.env.OWEM_API_KEY;
const API_SECRET = process.env.OWEM_API_SECRET;

const token = Buffer.from(`${API_KEY}:${API_SECRET}`).toString("base64");

const headers = {
Authorization: `Basic ${token}`,
"Content-Type": "application/json",
};

Obtendo Credenciais

1

Acesse o Painel Owem

Entre em app.owem.com.br com sua conta.
2

Navegue até Credenciais

Vá para Configurações → Credenciais.
3

Gere novas credenciais

Clique em Gerar Nova Chave e copie o API Secret imediatamente.
O API Secret é exibido apenas uma vez. Armazene-o em um local seguro.

Segurança

Allowlist de IPs

Para maior segurança, a API Owem exige que as requisições venham de IPs fixos previamente cadastrados.
Adicione o IP público do seu servidor à allowlist no painel Owem antes de fazer requisições.
AçãoCaminho
Adicionar IPConfigurações → Segurança → IPs Permitidos
Remover IPConfigurações → Segurança → IPs Permitidos
A propagação de novas regras de IP pode levar até 10 minutos.

Validação de Webhooks

Ao receber webhooks da Owem, valide o IP de origem:
Range de IPs Owem
34.134.50.53
35.238.101.57
const OWEM_IPS = ["34.134.50.53", "35.238.101.57"]

function validateWebhookOrigin(req) {
  const clientIp = req.headers["x-forwarded-for"] || req.socket.remoteAddress
  return OWEM_IPS.includes(clientIp)
}

HTTPS Obrigatório

Todas as requisições devem usar HTTPS com TLS 1.2+.
Requisições HTTP (sem TLS) serão rejeitadas.

Boas Práticas

Variáveis de Ambiente

Nunca exponha credenciais no código. Use variáveis de ambiente ou gerenciadores de segredos.

Rotação de Chaves

Rotacione suas credenciais periodicamente e após qualquer suspeita de vazamento.

Logs Seguros

Nunca logue o API Secret. Mascare credenciais em logs de debug.

Escopo Mínimo

Use credenciais diferentes para produção e desenvolvimento.

Erros de Autenticação

HTTPCódigoDescrição
401UNAUTHORIZEDCredenciais inválidas ou ausentes
403FORBIDDENIP não está na allowlist
404API_KEY_NOT_FOUNDAPI Key não existe
{
  "requestId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "success": false,
  "status": 401,
  "message": "Authorization header required with Basic token"
}