Autenticação do webhook (OAuth 2.0)#
Por padrão, as chamadas de webhook são enviadas sem autenticação. Se o seu endereço de
recebimento exige chamadas autenticadas, a API Jusbrasil Soluções suporta OAuth 2.0 no
fluxo client credentials: antes de entregar os eventos, a API obtém um access_token
no seu servidor de autenticação e envia cada chamada de webhook com o cabeçalho
Authorization: Bearer <access_token>.
Como funciona#
Você cadastra as credenciais do seu servidor de autenticação:
token_url,client_ideclient_secret.Quando não há token válido em cache, a API faz um
POSTnotoken_urlcomgrant_type=client_credentialsno corpo e as credenciais em HTTP Basic (Authorization: Basic base64(client_id:client_secret)). O servidor de autenticação deve responderHTTP 200com um JSON contendo o campoaccess_token.A chamada de webhook é enviada com
Authorization: Bearer <access_token>.O token é reutilizado por até 55 minutos. O campo
expires_inda resposta não é considerado: se o seu endereço de webhook responder401ou403, a API descarta o token, obtém um novo e reenvia a chamada uma vez.
Se não for possível obter o token (resposta diferente de HTTP 200, resposta sem
access_token ou servidor indisponível) ou se a chamada continuar recebendo 401 ou
403 com o token novo, a entrega é tratada como falha e segue a
política de retentativas.
Nota
Somente o fluxo client credentials é suportado. O token_url deve ser um
endereço HTTP ou HTTPS acessível pela internet, e redirecionamentos não são
seguidos. O client_secret é armazenado de forma cifrada e nunca é retornado nas
consultas à API.
Como configurar#
Pela tela web: acesse o painel administrativo da empresa, seção Configuração da integração via API, bloco Autenticação do webhook (OAuth 2.0). Preencha Nome, Token URL, Client ID e Client Secret e clique em Salvar autenticação. A autenticação passa a valer para os endereços de webhook da empresa, inclusive os cadastrados depois.
Pela API, com o token de acesso de um usuário administrador da empresa:
curl -X POST 'https://op.digesto.com.br/api/webhook_auth_config' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <token>' \
-d '{
"user_company_id": 12345,
"auth_type_id": 1,
"name": "OAuth do meu sistema",
"active": true,
"config_metadata": {
"token_url": "https://auth.exemplo.com/oauth/token",
"client_id": "meu-client-id",
"client_secret": "meu-client-secret"
}
}'
Campos do corpo:
Campo |
Obrigatório |
Descrição |
|---|---|---|
|
Sim |
ID da sua empresa. Não é preenchido automaticamente a partir do usuário autenticado. |
|
Sim |
Tipo de autenticação. Use |
|
Sim |
Nome para identificar a configuração (até 100 caracteres). |
|
Não |
Se a configuração já entra em uso. Padrão |
|
Sim |
Credenciais do servidor de autenticação (tabela abaixo). |
Campos de config_metadata:
Campo |
Obrigatório |
Descrição |
|---|---|---|
|
Sim |
Endpoint que emite o |
|
Sim |
Identificador do cliente no servidor de autenticação. |
|
Sim |
Segredo do cliente. Nunca é retornado em consultas. |
|
Não |
Como as credenciais são enviadas ao |
Consultando a configuração#
curl -X GET 'https://op.digesto.com.br/api/webhook_auth_config' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <token>'
A resposta lista as configurações da empresa, incluindo id, name, active,
token_url, client_id e token_request_client_type. O client_secret não é
retornado.
Regras#
Cada empresa pode ter uma única configuração de autenticação ativa. Para ativar outra, desative a atual antes.
Para alterar as credenciais, informe
token_url,client_ideclient_secretjuntos noPATCH.A desativação é feita via
PATCHcom"active": false; não há exclusão. Com a configuração desativada, as chamadas de webhook voltam a ser enviadas sem autenticação.Com a autenticação ativa, a requisição
POSTde teste feita ao cadastrar ou alterar um endereço de webhook aceita respostas401e403como prova de que o endereço está acessível, já que a chamada de teste não envia token.
Exemplo de atualização de credenciais:
curl -X PATCH 'https://op.digesto.com.br/api/webhook_auth_config/1' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <token>' \
-d '{
"config_metadata": {
"token_url": "https://auth.exemplo.com/oauth/token",
"client_id": "meu-client-id",
"client_secret": "meu-novo-client-secret"
}
}'
Exemplo de desativação:
curl -X PATCH 'https://op.digesto.com.br/api/webhook_auth_config/1' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <token>' \
-d '{"active": false}'