QR Code e Push
Essa sessão destina-se a documentar a inegração dos métodos de autenticação por QR Code e notificação push.
Fluxograma
Esse método de autenticação segue o seguinte esquema:

Ambientes
Homologação Bird: https://portalapihom.birdid.com.br
Homologação Vault: https://portalapicloudid.hom.vaultid.com.br
Produção Bird: https://portalapi.birdid.com.br
Produção Vault: https://portalapicloudid.vaultid.com.br
API
Início da autenticação
POST
{{BASE_URL}}/oauth/start
Headers
Content-Type
string
application/json
Request Body
client_id
string
Deve ter a identificação da aplicação.
client_secret
string
Deve ter a senha da aplicação
username (opcional)
string
Identificação do usuário por meio de CPF ou CNPJ.
lifetime
integer
Tempo de vida desejado para o token a ser gerado em segundos. Para pessoas físicas não deve ultrapassar (7 dias), e para pessoas jurídicas este limite será de (30 dias)
curl --location '{{BASE_URL}}/oauth/start' \
--header 'Content-Type: application/json' \
--data '{
"client_id":"myclient",
"client_secret":"mysecret",
"scope":"authentication_session",
"callback_url": "https://minha-aplicacao.com.br/auth/callback",
"lifetime": 36000
}'
Response Body
challenge
string
Desafio a ser informado no app no caso de notificação push
client_name
string
Nome aplicação do client_id informado
short_token
string
Token de identificação do fluxo de autenticação
ws_token
string
Token para conexão no websocket. Só é criado caso a aplicação possua permissão.
can_notify
boolean
Informa se a aplicação possui permissão para enviar notificação push.
notified
boolean
Informa se a aplicação conseguiu notificar o usuário via push. Só retorna verdadeiro caso o username tenha sido informado e a aplicação possua permissão para enviar notificação push.
qr_code
string
Código que permite a aplicação que está integrando gerar o qr code.
environment
string
Identificador do ambiente em que foi realizada a autenticação.
auth_ttl
integer
Tempo de vida em segundos do processo de autenticação.
{
"challenge": "06",
"client_name": "Minha Aplicacao",
"short_token": "68113334cb92acb46b91b8a3",
"ws_token": null,
"notified": false,
"can_notify": false,
"qr_code": "birdid://auth-request/68113334cb92acb46b91b8a3?env=vault_dev",
"envionment": "vault_dev",
"auth_ttl": 300
}
Envio de notificação
Por padrão, as aplicações não possuem permissão para enviar notificação. Essa permissão deve ser solicitada junto ao comercial da Soluti.
POST
{{BASE_URL}}/oauth/notify
Headers
Content-Type
string
application/json
Request Body
username
string
Identificação do usuário por meio de CPF ou CNPJ.
short_token
string
Propriedade recebida da chamada /oauth/start
curl --location '{{BASE_URL}}/oauth/notify' \
--header 'Content-Type: application/json' \
--data '{
"username": "64733822312",
"short_token":"68113334cb92acb46b91b8a3"
}'
Response Body
challenge
string
Desafio a ser informado no app no caso de notificação push
client_name
string
Nome aplicação do client_id informado
short_token
string
Token de identificação do fluxo de autenticação
ws_token
string
Token para conexão no websocket. Só é criado caso a aplicação possua permissão.
notified
boolean
Informa se a aplicação conseguiu notificar o usuário via push. Só retorna verdadeiro caso o username tenha sido informado e a aplicação possua permissão para enviar notificação push.
qr_code
string
Código que permite a aplicação que está integrando gerar o qr code.
callback_url
string
URL que será chamada assim que o usuário confirmar a autenticação.
{
"challenge": "06",
"client_name": "Minha Aplicacao",
"short_token": "68113677cb92acb46b91b8a4",
"ws_token": null,
"notified": true,
"qr_code": "birdid://auth-request/68113677cb92acb46b91b8a4?env=vault_dev"
}
Callback de autenticação
Assim que o usuário autoriza a autenticação no app, o sistema notifica a aplicação integrada via webhook, fornecendo um token temporário JWT para obtenção do token de acesso.
POST
{{CALLBACK_URL}}
Headers
Content-Type
string
application/json
curl --location '{{CALLBACK_URL}}' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--data '{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzaG9ydFRva2VuIjoiNjgwYTljNzcxMGRiZDM3ODM0YmQ1NTYzIiwiaWF0IjoxNzQ1NTI1OTUwLCJleHAiOjE3NDU1MjYxODB9.DRqTYJzsvGdgz0EQlayv21RzsasYq-w3z350CNfJsVc",
"short_token": "68113677cb92acb46b91b8a4"
}'
Request Body
token
string
Token JWT que deverá ser utilizado para obtenção do token de acesso.
short_token
string
Token de identificação do fluxo de autenticação
Obtenção do token de acesso
GET
{{BASE_URL}}/oauth/token
Headers
Content-Type
string
application/json
Authorization
string
Bearer token
curl --location '{{BASE_URL}}/oauth/token' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer token'
Response Body
access_token
string
Token de acesso aos serviços da Public API.
expires_in
integer
Tempo para expiração do access token.
token_type
string
Bearer.
scope
string
Escopo da autenticação.
username
string
Identificação do usuário por meio de CPF ou CNPJ.
{
"access_token": "0c95bfe4d60a3c9f1ac66fade5111849950c4297",
"expires_in": 36000,
"token_type": "bearer",
"scope": "authorization_session"
"username": "64733822312"
}
Last updated
Was this helpful?