Skip to main content
Objetivo: registrar o app → usuário aprovar no browser → chamar /v1 com Bearer token. Prefere interface? Comece em Developer → OAuth Apps.

Em poucas palavras

  • Cliente OAuth = cadastro do seu app (nome, redirect, escopos).
  • PKCE = proteção extra no fluxo pelo browser (obrigatório).
  • Access token = crachá JWT ~15 min; refresh token = renova sem novo login.
Contexto: Introdução · Escopos: Escopos

Antes de começar

  • Conta Notifique com acesso ao workspace desejado
  • Redirect URI exata (ex.: https://meuapp.com/oauth/callback)
  • Escopo mínimo (ex.: email:send para testar e-mail)
  • Base URL: https://api.notifique.dev

1. Registrar o cliente

Escolha painel ou API:

1A, Pelo painel

  1. Developer → OAuth Apps → Criar app
  2. Nome, redirect URIs e escopos
  3. Copie Client ID e Client Secret (secret só aparece uma vez)

1B, Pela API

Cadastra o app programaticamente — útil para MCP e automação.
Resposta esperada: 201 com client_id e, se confidencial, client_secret.
CLI local sem secret: "token_endpoint_auth_method": "none" e redirect http://127.0.0.1:<porta>/callback.

2. Preparar PKCE e abrir o browser

Gere antes de redirecionar:
  • code_verifier — string aleatória (43–128 caracteres)
  • code_challenge — Base64 URL-safe de SHA-256 do verifier (S256)
  • state — aleatório; valide no callback
Abra no browser (substitua os valores):
O usuário faz login, escolhe o workspace e aprova. Volta com ?code=...&state=.... Troque o code logo — expira em minutos.

3. Trocar o code por tokens

Cliente confidencial (com secret):
Cliente público: mesmo body, sem header Authorization. Resposta esperada: 200 com access_token, refresh_token e expires_in (~900 s).

4. Chamar a API

Substitua a API Key pelo access token:
Resposta esperada: 200 — mensagem na fila. Domínio do from precisa estar verificado (igual ao fluxo com API Key).

Depois do primeiro request

  • Renovar: POST /oauth/token com grant_type=refresh_token — salve sempre o refresh novo
  • Revogar: POST /oauth/revoke ou painel Apps conectados
  • Detalhes: Guia técnico · OpenAPI na aba Outros