Pular para o conteúdo principal

Chaves de API

Chaves de API permitem integrar o NotifyChain com seus sistemas de forma programatica.

Acessando

  1. No menu lateral, clique em Configuracoes
  2. Selecione Chaves de API

Criar Chave de API

Passo 1: Nova Chave

  1. Clique em Nova Chave de API
  2. Preencha:
    • Nome: Identificador (ex: "Integracao ERP", "Tracker Web")
    • Descricao (opcional): Para que sera usada

Passo 2: Copiar Chave

Apos criar, a chave completa e exibida uma unica vez:

nc_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Importante

Copie e armazene a chave em local seguro. Ela nao podera ser visualizada novamente.

Passo 3: Confirmar

Clique em Entendi, ja copiei para fechar o modal.

Tipos de Chave

Chaves de Producao

Prefixo: nc_live_

  • Acesso a dados reais
  • Envios reais de email
  • Eventos processados normalmente

Chaves de Teste

Prefixo: nc_test_

  • Dados isolados de teste
  • Emails nao sao enviados (simulados)
  • Eventos nao afetam segmentos de producao

Usando a Chave

No Tracker JavaScript

<script
src="https://cdn.notifychain.io/tracker.js"
data-api-key="nc_live_xxxxx"
></script>

Na API REST

curl -X POST https://api.notifychain.io/v1/events \
-H "Authorization: Bearer nc_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"event": "Compra Realizada",
"userId": "user-123",
"properties": {
"total": 299.90
}
}'

Em SDKs

// Node.js
const NotifyChain = require('@notifychain/sdk');
const client = new NotifyChain('nc_live_xxxxx');

await client.track('Compra Realizada', {
userId: 'user-123',
properties: { total: 299.90 }
});

Seguranca

Armazenamento

Nunca armazene chaves em:

  • Codigo fonte (especialmente publico)
  • Repositorios Git
  • Logs
  • Mensagens ou emails

Use:

  • Variaveis de ambiente
  • Secrets managers (AWS Secrets, Vault, etc.)
  • Arquivos de configuracao protegidos

Exemplo com Variaveis de Ambiente

# .env (nao commitar!)
NOTIFYCHAIN_API_KEY=nc_live_xxxxx
// codigo
const apiKey = process.env.NOTIFYCHAIN_API_KEY;

Rotacao de Chaves

Recomendamos rotacionar chaves periodicamente:

  1. Crie uma nova chave
  2. Atualize suas aplicacoes
  3. Verifique que tudo funciona
  4. Delete a chave antiga

Chaves Comprometidas

Se uma chave foi exposta:

  1. Acesse imediatamente o painel
  2. Delete ou desative a chave
  3. Crie uma nova
  4. Atualize todas as aplicacoes
  5. Revise logs por uso indevido

Permissoes (Em breve)

Futuramente, chaves poderao ter escopos limitados:

EscopoPermissao
events:writeEnviar eventos
events:readLer eventos
contacts:writeCriar/atualizar contatos
contacts:readLer contatos
campaigns:readLer campanhas
campaigns:writeCriar/gerenciar campanhas

Monitoramento

Ultimo Uso

Na lista de chaves, veja:

  • Ultimo uso: Data/hora do ultimo request
  • Nunca usada: Chave criada mas nao utilizada

Metricas

Acesse estatisticas por chave:

  • Requests por dia/hora
  • Erros (401, 429, etc.)
  • Latencia media

Alertas

Configure alertas para:

  • Chave nao usada ha X dias
  • Taxa de erro elevada
  • Volume incomum

Limites de Uso

Rate Limits

PlanoLimite
Free100 req/min
Starter1.000 req/min
Pro10.000 req/min
EnterpriseCustomizado

Resposta de Rate Limit

{
"error": "rate_limit_exceeded",
"message": "Too many requests",
"retry_after": 60
}

Header:

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1705123456
Retry-After: 60

Boas Praticas para Rate Limits

// Implementar exponential backoff
async function sendWithRetry(data, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
return await send(data);
} catch (error) {
if (error.status === 429) {
const delay = Math.pow(2, i) * 1000;
await sleep(delay);
} else {
throw error;
}
}
}
}

Editando Chave

Voce pode editar:

  • Nome
  • Descricao

Nao e possivel:

  • Ver a chave novamente
  • Alterar a chave em si

Excluindo Chave

  1. Na lista, clique nos tres pontos
  2. Selecione Excluir
  3. Confirme a exclusao
Impacto

Aplicacoes usando a chave excluida receberao erro 401 imediatamente.

Boas Praticas

Uma Chave por Servico

Crie chaves separadas para cada sistema/integracao. Facilita rotacao e auditoria.

Nomes Descritivos

Use nomes que identifiquem claramente o uso:

  • "Backend API Producao"
  • "Tracker Website Principal"
  • "Integracao Hubspot"
Ambientes Separados

Use chaves de teste em desenvolvimento e staging. Reserve chaves de producao para producao.

Nao Exponha

Chaves do frontend (tracker) sao publicas por natureza. Nao use a mesma chave para backend.