Para realizar requisições nos endpoints de AaaS (Account as a Service) é necessário o envio de uma assinatura assimétrica, conforme detalhado no fluxo a seguir:
Para realizar as chamadas à API, você deve utilizar a uma BaseURL fornecida pelo nosso time de suporte. Entre em contato com nosso suporte para para receber a BaseURL adequada para seu ambiente de homologação ou produção.
Todas as requisições devem, obrigatoriamente, utilizar o protocolo HTTPS. Requisições via HTTP simples serão rejeitadas por motivos de segurança e integridade dos dados.
1
Geração de pares de chave
O primeiro passo é gerar um par de chaves assimétricas, sendo uma pública, que posteriormente deverá ser enviada via Painel IBaas, e uma privada, que é de uso exclusivo e deve ser extremamente protegida, pois a sua violação compromete a segurança de suas requisições.
2
Envio de chave pública
Você deve acessar o seu painel e realizar a importação da chave pública gerada. Com isso, uma API Key será retornada. Guarde-a, pois será utilizada posteriormente.
3
Geração de token de acesso
Agora, você deverá gerar um token que deve conter os seguintes claims:
iat - Deve ser a data/hora em que o token foi gerado, representada como um timestamp em segundos (número inteiro). Ex.: 1738233408. É recomendado considerar uma margem de até 10 segundos para trás em relação ao horário atual do seu sistema, para evitar que o iat fique no futuro em caso de pequenos desvios de relógio.
method - O método que a requisição está sendo feita, em uppercase: POST, GET, PUT, PATCH ou DELETE;
endpoint - O endpoint que está sendo utilizado (Deve ser exatamente ao que está sendo utilizado para fazer a requisição). Ex.: ✔️ /v1/aaas/account/111a111a-11aa-11aa-11aa-111111aaaaaa/statement ❌ v1/aaas/account/111a111a-11aa-11aa-11aa-111111aaaaaa/statement ❌ /v1/aaas/account/{account_id}/statement ❌ /v1/aaas/account/111a111a-11aa-11aa-11aa-111111aaaaaa/statement/
query_params - Os parâmetros de query da URL. Caso não existam, envie uma string vazia. Ex.: ✔️ start_date=2025-01-01&end_date=2025-01-30 ❌ ?start_date=2025-01-01&end_date=2025-01-30
api_key - A chave de API retornada anteriormente;
payload_encrypted - É gerado da hash SHA256 do json do body, em formato de string. Se a requisição não possuir body, deve ser o hash SHA256 de uma string vazia.
4
Envio da requisição
A requisição deve ser feita com os seguintes Headers:
X-api-key - O valor deve ser a chave de API retornada anteriormente;
X-auth-token - O valor deve ser o token que acabou de ser gerado, com o prefix "Bearer ".
Para gerar as chaves, os seguintes comandos podem ser utilizados: Esse comando é responsável pela geração de sua chave privada:
E a partir de sua chave privada, a chave pública será gerada:
Proteja sua chave privada!
Sua chave privada é exclusivamente sua e deve ser mantida em sigilo absoluto. Compartilhar essa chave compromete a segurança de suas transações e pode expor dados confidenciais. Garantir a proteção dessas informações é fundamental para evitar acessos indevidos e manter a integridade das suas operações.
A sua chave pública deve ser enviada através do painel de controle IBaaS.
📌Para alcançarmos um excelente nível de segurança, o envio de chave pública só poderá ser realizado quando a dupla autenticação com TOTP estiver ativa.
Acesse o painel com as credenciais recebidas, clique no icone no canto superior direito (1), e clique em "Suas informações" (2); No submenu "Dupla autenticação", clique em "Ativar" (3); Um QrCode surgirá, e deve ser escaneado utilizando um aplicativo de TOTP, como o Google Authenticator ou Microsoft Authenticator; Insira o código gerado e clique em "Ativar"; Salve as chaves de recuperação geradas em um local seguro; Excelente A dupla autenticação está ativa! Agora realize login novamente para que a atualização surta efeito.Agora, vamos importar a chave pública na tenant: Clique no menu lateral "Tenants" (1); Clique em "Ver tenant" (2), na tenant que você deseja importar a chave;Agora, clique em "Adicionar Chave Pública" (1), cole sua chave, e clique em "Adicionar"; Sua chave foi salva e a Chave de API foi gerada (2):
O token só pode ser utilizado uma vez, sendo exclusivo para a requisição;
O iat não pode ser maior que o momento corrente;
A diferença de tempo do iat em relação ao momento atual não pode ser superior a 5 minutos;
O método (claim: method) deve estar em uppercase e incluso em: GET, POST, PATCH, PUT e DELETE;
O endpoint deve conter uma barra no começo e nenhuma no final. Ex.: /v1/users/public-keys/test;
As keys e values que serão hasheados com SHA256 devem estar na mesma ordem em quem serão enviados no body. A alteração da ordem implica em conflitos na validação.