Autenticação
Token Bearer das integrações, login por aparelho dos aplicativos, troca de token, IPs liberados e os erros 401 e 403.
Para: Desenvolvedores dos sistemas da prefeitura
Toda chamada à API (menos o login dos aplicativos) leva um token no cabeçalho Authorization. Existem dois tipos de cliente, e os dois usam o mesmo formato de token:
| Cliente | Como obtém o token | O que pode fazer | Validade |
|---|---|---|---|
| Integração (sistema de terceiros da prefeitura) | Criado pelo administrador da prefeitura no painel | O que os escopos e o recorte da integração permitem | Não expira; vale até ser trocado ou revogado |
| Aplicativo do GedFlow (celular, tablet) | Login com e-mail e senha de um usuário da prefeitura | O mesmo que esse usuário pode fazer no painel | 30 dias por aparelho |
O cabeçalho#
GET /api/v1/me HTTP/1.1
Host: gedflow.com.br
Authorization: Bearer 12|q8Zr3VxK0bN7yTfP2mWcL5sHdA9uJ4eGiR6oYkQ1
Accept: application/json
Envie o token inteiro, incluindo o número e a barra vertical do começo. Sempre por HTTPS.
Token de integração#
O token da integração é emitido pelo administrador da prefeitura em Integrações, e aparece uma única vez na tela, logo depois de salvar. Ninguém consegue vê-lo de novo, nem a prefeitura nem a equipe do GedFlow: se perder, é preciso gerar outro.
- Cada integração tem um token válido por vez.
- Ele carrega os escopos da integração. Se o administrador mudar os escopos, o mesmo token passa a valer com os escopos novos, sem troca.
- O token pertence a um usuário técnico da integração, que não entra nos painéis e não faz login pela API.
Como a prefeitura cria e administra a integração: Integrações com outros sistemas.
Trocar o token (rotação)#
Quando o administrador clica em Gerar novo token, o novo token aparece uma vez e o anterior deixa de valer imediatamente. Não há período de convivência entre os dois.
Para trocar sem susto:
- Combine um horário com o administrador.
- Deixe o seu sistema pronto para ler o token de uma variável de ambiente ou cofre de segredos, sem precisar de nova versão do código.
- O administrador gera o novo token e repassa por canal seguro.
- Atualize o segredo e reinicie os processos que usam a API.
- Confira com
GET /me.
Revogar ou desativar#
- Revogar apaga o token e encerra a integração de vez. As chamadas passam a receber
401. - Desativar (desmarcar Ativa) suspende a integração. As chamadas recebem
401com a mensagem "Integração inativa ou revogada." até ela ser reativada.
IPs liberados#
O administrador pode restringir a integração a uma lista de endereços, um por linha, aceitando IPs individuais e faixas CIDR:
200.150.10.20
200.150.10.0/24
Lista em branco significa qualquer IP. Uma chamada de fora da lista recebe:
{ "message": "IP não liberado para esta integração." }
com código 403.
Login dos aplicativos#
Os aplicativos do GedFlow entram com o e-mail e a senha de um usuário da prefeitura, e recebem um token por aparelho. Esse fluxo é para aplicativos usados por pessoas. Sistemas de terceiros devem usar uma integração, nunca a senha de um servidor.
Entrar#
curl https://gedflow.com.br/api/v1/auth/login \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"email":"[email protected]","password":"********","device_name":"iPhone da Ana"}'
| Campo | Obrigatório | Descrição |
|---|---|---|
email |
sim | E-mail do usuário da prefeitura. |
password |
sim | Senha do usuário. |
device_name |
sim | Nome do aparelho (até 120 caracteres). Aparece para o administrador em Aplicativos conectados. |
Resposta 201:
{
"token": "37|Hk2mP9xQ4rT7vW1yZ3bN5cF8gJ0lS6dA2eU4iO7",
"expires_at": "2026-11-02T14:30:00+00:00",
"user": { "id": "01J9ZE1A2B3C4D5E6F7G8H9J0K", "name": "Ana Souza", "tenant": "Prefeitura de Exemplo" }
}
- O token vale 30 dias (prazo padrão da plataforma). Depois disso, as chamadas recebem
401e o aplicativo deve pedir o login de novo. - E-mail ou senha errados, usuário inativo ou prefeitura inativa:
422com a mensagem "E-mail ou senha incorretos." no campoemail. A resposta é a mesma em todos os casos, de propósito. - São aceitas 5 tentativas por minuto por IP e e-mail. Acima disso,
429. - Só usuários da prefeitura entram por aqui. Usuários técnicos de integração e da equipe de digitalização, não.
Sair#
curl -X POST https://gedflow.com.br/api/v1/auth/logout \
-H "Authorization: Bearer $TOKEN_DO_APARELHO" \
-H "Accept: application/json"
Resposta 204. Só o token deste aparelho é revogado; os outros aparelhos do mesmo usuário continuam conectados. Chamar logout com um token de integração devolve 403: tokens de integração são revogados pela prefeitura, no painel.
O administrador da prefeitura também pode desconectar qualquer aparelho em Aplicativos conectados. Veja Aplicativos conectados.
O que o aplicativo pode ver#
Exatamente o que o usuário vê no painel: os mesmos setores, a mesma regra de sigilo, os mesmos campos sensíveis e as mesmas permissões. Os aplicativos não usam escopos. Toda consulta fica na trilha de auditoria em nome do usuário.
Erros 401 e 403#
| Código | Mensagem típica | O que fazer |
|---|---|---|
401 |
Não autenticado: envie um token válido no cabeçalho Authorization: Bearer. |
Token ausente, digitado errado, trocado, revogado ou (nos aplicativos) expirado. Confira o cabeçalho e peça um token novo se preciso. |
401 |
Integração inativa ou revogada. |
A prefeitura desativou ou revogou a integração. Fale com o administrador. |
403 |
IP não liberado para esta integração. |
Seu IP de saída não está na lista. Peça a inclusão. |
403 |
A integração não tem o escopo "download". |
Falta escopo. Peça ao administrador para incluir, se fizer sentido. |
403 |
Prefeitura inativa. |
O contrato da prefeitura está suspenso. Fale com a prefeitura. |
403 |
Setor fora do seu acesso. |
Ao cadastrar: o setor não está no recorte da integração. |