Autenticação

Aprenda a autenticar suas requisições nas APIs NooviChat e NooviFlow.

NooviChat — API Access Token

A NooviChat utiliza tokens de acesso da API. O token deve ser enviado no header api_access_token de cada requisição.

Obtendo o Token

  1. Acesse o painel NooviChat em Configurações > Conta > Token de API
  2. Copie o token gerado automaticamente ou gere um novo
  3. Armazene o token de forma segura (nunca exponha no frontend)

Exemplo de Uso

curl -X GET \
  "https://chat.seudominio.com/api/v1/accounts/{account_id}/conversations" \
  -H "api_access_token: YOUR_TOKEN" \
  -H "Content-Type: application/json"

Tipos de Token

User Access Token

Token vinculado a um agente. Tem acesso às mesmas permissões do usuário. Ideal para integrações que operam em nome de um atendente.

Platform App Token

Token de plataforma com acesso administrativo. Utilizado para gerenciar contas, criar usuários e operações em nível de plataforma.

Widget Público de Atendimentos — inbox.identifier

O widget público de agendamento não usa api_access_token. Em vez disso, utiliza o inbox.identifier da sua inbox como identidade de acesso, combinado com Cloudflare Turnstile para prevenção de bots.

O inbox.identifier é um UUID público associado a uma inbox específica. Encontre-o em Configurações → Inboxes → Detalhes.

Configuração do widget:

window.NooviChatBooking = {
  inboxIdentifier: "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  baseUrl: "https://chat.seudominio.com",
  turnstileSiteKey: "SEU_TURNSTILE_SITE_KEY",
  // ...
};

Internamente, cada request do widget inclui dois headers de autenticação:

  • X-Inbox-Identifier — o UUID da inbox
  • X-Turnstile-Token — token gerado pelo Cloudflare Turnstile

inbox.identifier é seguro para uso público

O inbox.identifier não concede acesso a dados privados da conta — apenas permite agendar via widget público. Ele pode ser embutido com segurança no frontend do seu site.

NooviFlow — JWT (JSON Web Token)

A NooviFlow utiliza autenticação JWT. Obtenha um token via login e envie-o no header Authorization: Bearer TOKEN em cada requisição.

Obtendo o Token

Faça uma requisição POST para o endpoint de login:

curl -X POST \
  "https://flow.seudominio.com/api/v1/auth/login" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "user@example.com",
    "password": "your_password"
  }'

Usando o Token

bash
# Inclua o token em todas as requisicoes
curl -X GET "https://flow.seudominio.com/api/v1/clients" \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Importante

Tokens JWT expiram após 24 horas. Quando receber um erro 401 Unauthorized, faça uma nova requisição de login para obter um token atualizado.

Erros de Autenticação

StatusErroDescrição
401UnauthorizedToken ausente, inválido ou expirado
403ForbiddenToken válido, mas sem permissão para o recurso

Boas Práticas

  • Armazene tokens em variáveis de ambiente ou gerenciadores de secrets
  • Nunca exponha tokens no código frontend ou em repositórios públicos
  • Implemente refresh automático para tokens JWT expirados
  • Use tokens com menor permissão possível (princípio do menor privilégio)
  • Rotacione tokens regularmente em ambientes de produção