Manual Do Desenvolvedor v6.0
Manual Do Desenvolvedor v6.0
API STUDIO
BANCO BRADESCO
https://banco.bradesco
ÍNDICE
OBJETIVO ....................................................................................................... 4
AUTENTICAÇÃO .............................................................................................. 5
1. Criação de um Client ID .......................................................................... 5
AUTORIZAÇÃO ................................................................................................ 7
1. Gerando token de acesso em homologação .............................................. 7
1.1 Criando um JWT assinado ............................................................ 7
a) Header ................................................................................ 8
b) Payload............................................................................... 9
c) Assinatura ........................................................................ 10
1.2 JWT convertido em base64 ....................................................... 11
1.3 A Chamada do token .................................................................. 11
CONSUMO DE UMA API APÓS GERAÇÃO DO BEARER TOKEN ......................... 14
1. Consumo em homologação ....................................................................... 14
2. Consumo em produção ......................................................................... 19
TEMPLATES PARA CONTATO COM O SUPORTEAPI ......................................... 20
1. Cadastro de um client ID...................................................................... 20
2. Renovações .......................................................................................... 20
3. Solicitação de Suporte Técnico e dúvidas ............................................. 21
GUIA DE REFERÊNCIA ................................................................................... 23
Base64 ....................................................................................................... 24
Header........................................................................................................ 24
Requisição .................................................................................................. 25
Endpoint ..................................................................................................... 25
Chave pública e privada .............................................................................. 25
JWS ............................................................................................................ 25
Access Token.............................................................................................. 25
Body ........................................................................................................... 25
Header........................................................................................................ 25
URL............................................................................................................. 25
Payload....................................................................................................... 25
Query Parameters....................................................................................... 25
OBJETIVO
Nesse processo, o sistema que quer se conectar em nossas APIs precisa ser
previamente conhecido pelo Bradesco. Para isso é necessário seguir os passos
abaixo:
1. Criação de um Client ID
• Anexar o certificado (chave pública) no formato .cer, .crt ou .pem, com validade
mínima de 4 meses e máxima de 3 anos. Lembrando que, para o ambiente
de homologação (teste), o certificado deverá ser um auto assinado.
O nome da API citado no exemplo anterior, deverá ser o nome do serviço a ser
consumido, ou seja, caso o cliente deseje consumir um serviço de cobrança, por
exemplo, o modelo deverá ser:
Existem algumas regras específicas para os certificados digitais aceitos pelo Bradesco,
sobretudo, no ambiente produtivo. Confira abaixo:
• TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, e/ou
• TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
Se sua solicitação estiver dentro dos requisitos definidos pelo banco, em até 3 dias
úteis forneceremos um Client ID /Client Key de acesso.
Com o Client ID / Client Key será possível sua aplicação provar que possui
autenticidade para usar nossas APIs. O próximo passo é garantir que existe
autoridade para usar determinada API, esse passo será feito através da geração de
um dado chamado Access Token ou token JWT.
AUTORIZAÇÃO
Assim como especificado pelo padrão OAuth 2.0, sempre que você quer consumir
uma API é necessário provar que sua aplicação tem autorização e autenticidade para
usá-la.
1. Gerando token de acesso em homologação (access token/token JWT)
Para acessar uma API do Bradesco no ambiente de homologação, você deve gerar
o token a partir da URL abaixo:
• https://proxy.api.prebanco.com.br/auth/server/v1.1/token
O JWT é uma estrutura JSON formada por três partes: um header, um payload e
uma assinatura da concatenação do header+payload separados por ponto. Cada um
dos três itens são uma estrutura JSON apartada. Existe um padrão para cada um
desses campos e como usá-los corretamnete, será descrito a seguir:
a. Header
O payload contém campos que também são conhecidos como claims. Esses campos
incluem declarações de segurança verificáveis, como a identidade do usuário, tempo
e as permissões.
• O campo aud sempre possuirá a URL de token completa que está sendo
utilizada para o ambiente que você está realizando a sua requisição.
• O campo sub será a sua clientkey (client Id), a mesma que nós do suporteAPI
enviamos por e-mail após o cadastramento no nosso ambiente.
• O campo iat será o horário atual em segundos. Sempre que for gerar um novo token,
é necessário atualizá-lo.
• O campo exp é o mesmo "iat" porém, 1hr a frente, ou 3600 somado ao número do
“iat”. Sempre que for gerar um token, é necessário atualizá-lo também.
• O campo jti nada mais é do que o "iat" em milissegundos e não segundos. Para
simplificar, você pode reaproveitar o "iat" e concatenar três zeros no final do valor, assim
ele se tornará um "jti" válido.
c. Assinatura
Header:
Payload:
1.2 JWT formado após a conversão em base64 e concatenação com o “.”
Após criar o JWS, será possível solicitar um token JWT (Bearer Token) para
acessar as APIs, esse token ele possui duração de 1Hr do momento da sua geração, e
deverá ser utilizado nas chamadas enquanto for válido.
A requisição para chamada de um Bearer Token deverá conter os seguintes itens:
• Método: POST
• Headers
• Body
o grant_type : urn:ietf:params:oauth:grant-type:jwt-bearer
Lembrando que, o bearer token possui validade de uma hora. É crucial que o
mesmo bearer token gerado seja reutilizado em todas as requisições nos
endpoints de serviço durante este período. Essa reutilização evita que toda chamada
de negócio necessite ser gerado um novo token, consequentemente, evitará
possíveis bloqueios de chamada por parte do sistema de segurança do banco.
CONSUMO DE UMA API APÓS GERAÇÃO DO BEARER TOKEN
1. Consumo em homologação
Após todo o processo de criação e geração de um token JWT (Bearer Token),
agora iremos demonstrar como consumir um endpoint de qualquer OPEN API server-
to-server do banco.
Os campos necessários para chamar as nossas APIs são padrões para todas as OPEN
APIs do banco, ou seja, independentemente da API que você esteja requisitando, os
campos abaixo serão sempre obrigatórios, alguns outros campos podem existir,
porém, nesse caso, a mudança estará especificada no manual do produto que o cliente for
consumir:
Logo abaixo consta a explicação de cada um deles e como obter o valor dos mesmos:
O campo “Authorization” é um campo que recebe o token JWT (Bearer Token) que
foi gerado nos passos anteriores, ele deve vir acompanhado da palavra Bearer, assim
como está na imagem acima.
• Na terceira linha do arquivo, serão os Parâmetros da requisição caso eles existam para aquele
determinado endpoint. Caso não exista parâmetros, a linha deverá ficar em branco e
será pulada utilizando a quebra de linha “\n”.
• Na sua quarta linha, será inserido o Body da requisição, caso não exista um
body para a sua chamada, ela deverá seguir o mesmo modelo do parâmetro, ou seja,
deverá ficar em branco e e será pulada utilizando a quebra de linha “\n”.
Ponto importante: O body da sua requisição deve ser sempre passado em uma única
linha no formato de string, sem espaços entre os valores existentes no JSON, essa
recomendação serve tanto para o request.txt quanto para a sua requisição propriamente
dita.
• Na oitava e última linha, trará o Algoritmo usado para assinar o JWT, no campo header “X-
Brad-Algorithm”, que será o valor: SHA256
• IMPORTANTE, todas as Quebras de linha, devem ser em formato line feed \n (UNIX)
Todas essas informações devem ser escritas em um arquivo texto simples, uma
linha abaixo da outra, com o arquivo sendo assinado ao final do preenchimento
desses dados. A string gerada nessa assinatura deverá ser usada no campo X-Brad-
Signature.
o T = parâmetro fixo;
manhã
Sugerimos o uso do seguinte formato abaixo, ignorando os segundos e o fuso horário da sua
localidade:
Após concluir os preenchimentos dos parâmetros presentes nos nossos headers,
a requisição ficará da seguinte maneira:
Realizado o teste acima, você estará pronto para integrar em outras OPEN APIs do
banco.
2. Consumo em Produção
Este arquivo contêm uma “chave pública e uma “chave privada”, ao qual a chave-
pública deverá ser extraída do arquivo “.pfx” para envio ao Bradesco. Solicite a
empresa emissora do certificado para que lhe forneça os arquivos de chave pública
e privada do mesmo.
00.000.000/0000.00
certificados e avisos;
2. Renovações
Para renovações de certificados vencidos ou prestes a vencer em ambiente de Homologação
ou Produção, seguir o padrão abaixo:
00.000.000/0000.00
certificados autoassinados
Em caso de dúvidas para conectividade com nossas APIs, entre em contato pelo e-
mail: [email protected]. Para acionamento do suporte favor enviar o
e-mail no padrão abaixo:
00.000.000/0000-00
possíveis:
o Ambiente (Homologação)
o Body do request
o Body do response
00.000.000/0000-00
•
GUIA DE REFERÊNCIA
Vale ressaltar que a chave privada nunca deve ser compartilhada, pois é ela que
garante a autenticidade da chave pública, que será compartilhada conosco.
A chave pública deverá ser compartilhada com o Bradesco e a chave privada deverá
ficar sob sua tutela e não ser compartilhada com ninguém. As validações de
autoridade serão feitas através da comparação dessas chaves.
GLOSSÁRIO
Open API
Interfaces de programação de aplicativos abertas e disponíveis publicamente para
acesso e integração.
Protocolo mTLS
Autenticação de Transporte de Camada Dupla (mutual TLS), onde tanto o cliente
quanto o servidor autenticam uns aos outros com base em seus certificados digitais.
Certificado digital
Arquivo eletrônico que contém informações de identificação e autenticação para
um usuário, dispositivo ou aplicativo.
OAuth 2.0
Protocolo de autorização para aplicativos de terceiros que permite o acesso seguro
a recursos protegidos de um serviço ou aplicativo.
Autenticação
Processo de verificação de identidade de um usuário ou sistema antes de conceder
acesso a recursos protegidos.
Autorização
Processo de permitir ou negar o acesso de um usuário ou sistema a recursos
específicos após a autenticação.
Client ID
Identificador exclusivo atribuído a um aplicativo cliente registrado em um sistema
de autenticação e autorização.
Client Key
Chave criptográfica privada usada para autenticar um aplicativo cliente em um
sistema de autenticação e autorização.
Token
JWT
JSON Web Token, um padrão aberto para transmitir informações seguras como
tokens de autenticação ou autorização em um formato JSON.
Base64
Método de codificação para representar dados binários em ASCII para transmissão
em sistemas que não aceitam dados binários diretamente.
Header
Parte da mensagem HTTP que contém informações sobre a requisição ou resposta.
Requisição
Mensagem enviada por um cliente para solicitar uma ação a ser executada por um
servidor.
Endpoint
URL que um cliente pode acessar para interagir com um serviço ou aplicativo.
JWS
JSON Web Signature, um formato para assinar digitalmente informações JSON.
Access Token
Token de autorização usado para acessar recursos protegidos em um serviço ou
aplicativo.
Body
Parte da mensagem HTTP que contém os dados transmitidos na requisição ou
resposta.
Header
Parte da mensagem HTTP que contém informações sobre a requisição ou resposta.
URL
Endereço da Web que identifica um recurso específico que pode ser acessado por
um cliente.
Payload
Dados transmitidos na parte do corpo de uma mensagem.
Query Parameters
Informações adicionais transmitidas na parte da URL de uma requisição HTTP que
podem ser usadas para filtrar ou modificar os resultados retornados.