Fluxo de Acesso a Informações de Conta

Quando o desenvolvedor deseja testar as APIs destinadas a Informações de Conta, é necessário criar um aplicativo em seu painel do tipo de produto BRAZIL AISP

  1. O cliente consente com seu parceiro que gostaria de compartilhar suas informações bancárias e escolhe o PSP
  2. O desenvolvedor contata o PSP e envia uma solicitação de consentimento de conta

    • O PSP verifica se o Id do aplicativo do desenvolvedor (client_id) tem as autorizações necessárias
    • PSP usa as informações e cria recursos de consentimento e inicializa o processo, alterando o status para AwaitingAuthorisation
  3. O PSP responde ao desenvolvedor com uma resposta de consentimento, que também instrui o desenvolvedor sobre como proceder com a autenticação e autorização
  4. O desenvolvedor redireciona o cliente do PSP para o site do PSP para autenticação e confirmação de consentimento
  5. Após as verificações necessárias, o PSP envia o token de acesso ao desenvolvedor, que por sua parte, o utiliza para recuperar as informações da conta do Usuário

Teste através do Portal do Desenvolvedor

Os seguintes passos devem ser realizados para o Acesso a Informações de Conta

1. Selecionar APP

Clique Test para o APP selecionado, sendo redirecionado ao Swagger UI

select app test

2. Autenticação do Desenvolvedor

Primeiro passo no fluxo é a autenticação do App-Id do desenvolvedor. Clique no botão Autorizar e preencha o APP secret para obter o token de acesso específico para o Desenvolvedor

swagger aisp
tpp authentication

3. Chamada de Solicitação de Consentimento para Informações de Conta

O bearer token obtido pelo passo anterior deve ser preenchido no Endpoint de Consentimento para Informações de Conta - /v1/consents/

account access

Como exemplo, use a chave privada abaixo para assinar a solicitação (corresponde aos JWKs fornecidos em App creation), cole no campo application signing private key acima do botão Autorizar

-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCDSUWD3VyDcGfB
hCP7sKCv15w2k/fptUxilGZsELw7hBlUk4iYib03iadEKNzPIlF+tGEX55Yu4IoJ
NldkLhDHHPTj6WhAxXPewMUeisG9QIPwd48mcG3pdIz5iKmaitA/dGIWpYH47I33
KOjOs9DFVl35FGjHts8fPye/qpovoAE/80Y8iXB1cU78BUhjFqpJ7iXNbR96iSgF
Dd1KuTW0eFbNAM14FFjhT7V3KBIAYwg3RpqYe9K0h48UN/oaxd7aHUQaCLJf4rbW
oYpcUHLr8VL2wpozXCxFLHyFWLninW2Wwi0xap/62U7R4RHnXPYLtATo5KWPS9AB
O4vrjNXnAgMBAAECggEAKVnQvWHhm7yx0W/vbX0Kf5gnqcEdWs0xy/L195+lyhEn
cU4uvezUXkPLHVrJgaxLgt8Jnd/hm845bAFjsTgZLL3gHFEN9yi6ADUzYRVPRG6n
n/voaLEMzXVaWdZDpVuHkBT2OC/VKjRH2stV2JUmcqFrY+Kbxhu8TRk1SddQTSNg
lQiMGOo1lVe0lo/su8A3yBVs+Ic/kdC4Na0xkTbgn7zYUcbNaYTd6p9eTAzAezF5
+Z0xsQNMPm8drt3bjTQzZH4+zb8ImzWH2lvJZryEs4QOQJkyLEuL7FR66XjrSYHZ
Y9fd5QEolWjwhlKCn81eVdhJk13Vq/7PiAXLz4Px8QKBgQDhDheQkra938nPSR8k
DwK5IGZJPoXGo0igM4qh96w5jqGiGniTWEMVzDqDqSzme5gxH7/cxaDNcaZOqSpO
RjJYv7XLyCkw8TuXJiNO5N62Flga38ycWZBR2SMABGmoOLa+m+w57y9vfJiduKXi
IDrJ308trQSnVe7ChB+xvESSkwKBgQCVVodv5Z8GbU6tYlR0AJOWkzRok4O1fp/g
Q4sHjcfVfvDGIHLbMjfoO3zpof2xgm+/BMjzkiesatjEbJjQuarOpUj+rp3SHbEI
OfXQezcodSbmuaGMxszRXsMT6BhO7Hw26JCHFBueimM+ifn3OKkaf4DzXZ2OPK5j
5RHiGwuf3QKBgQCcyy+Zts2ALZixRNVgTuDrz2nT365d/MaNbjtIqoAfvYJYqK6W
oShj2Fxv+/5fOX6HwwHtsvZcC7D9Hpht3jQXZsEmj3Y7NeX5YUW6InQTUi/h0UgB
KdkFXQ0oZuqhm5md5I3Isx5OQvUk9U8E4sVyfZTxUphqaNEmTdyy/GKd5wKBgAz0
TZlaTNos3zdRIUxSxHq6WEB+E13KFypIEaZdGSme8lntdKkpCQp/Jo3JvI0KaJEk
ZB4k3oYpWpZnaTYp9PQqCFP3Z79TTgkNphIorhc3WmGHVsk0cY3z724povotr3S/
5dGh3+d3z7YcF+/nHVwsFU6HH2S4RNRriYqYmACNAoGBALtl7uReDG1CrRwP6UzU
SRfPiHu6kj1OOMzXD5gkIphkxFd6pD7bKS22W6zEU+y3yQDyenO/TgYB1wqJaXMH
f2pv/4mSmTT64sPqwp/ersa8Lfv/iO1cabiytuKxrrYgOc/QdzAx0obJlOpz+ntS
B5+JIYmrBX0iKq4JCATMDbFk
-----END PRIVATE KEY-----

Utilize o payload abaixo para enviar requisições de informações de conta. A lista de contas está vazia neste momento, mas após a autorização do Usuário, a lista será populada com a conta que foi selecionada

{
   "data": {
      "loggedUser": {
         "document": {
            "identification": "11111111111",
            "rel": "CPF"
         }
      },
      "businessEntity": {
         "document": {
            "identification": "11111111111111",
            "rel": "CNPJ"
         }
      },
      "permissions": [
         "ACCOUNTS_BALANCES_READ",
         "ACCOUNTS_READ",
         "ACCOUNTS_OVERDRAFT_LIMITS_READ",
         "RESOURCES_READ",
         "ACCOUNTS_TRANSACTIONS_READ",
         "CREDIT_CARDS_ACCOUNTS_READ",
         "CREDIT_CARDS_ACCOUNTS_BILLS_READ",
         "CREDIT_CARDS_ACCOUNTS_BILLS_TRANSACTIONS_READ",
         "CREDIT_CARDS_ACCOUNTS_LIMITS_READ",
         "CREDIT_CARDS_ACCOUNTS_TRANSACTIONS_READ",
         "CUSTOMERS_BUSINESS_IDENTIFICATIONS_READ",
         "CUSTOMERS_BUSINESS_ADITTIONALINFO_READ",
         "FINANCINGS_READ",
         "FINANCINGS_SCHEDULED_INSTALMENTS_READ",
         "FINANCINGS_PAYMENTS_READ",
         "FINANCINGS_WARRANTIES_READ",
         "INVOICE_FINANCINGS_READ",
         "INVOICE_FINANCINGS_SCHEDULED_INSTALMENTS_READ",
         "INVOICE_FINANCINGS_PAYMENTS_READ",
         "INVOICE_FINANCINGS_WARRANTIES_READ",
         "LOANS_READ",
         "LOANS_SCHEDULED_INSTALMENTS_READ",
         "LOANS_PAYMENTS_READ",
         "LOANS_WARRANTIES_READ",
         "UNARRANGED_ACCOUNTS_OVERDRAFT_PAYMENTS_READ",
         "UNARRANGED_ACCOUNTS_OVERDRAFT_READ",
         "UNARRANGED_ACCOUNTS_OVERDRAFT_SCHEDULED_INSTALMENTS_READ",
         "UNARRANGED_ACCOUNTS_OVERDRAFT_WARRANTIES_READ"
      ],
      "expirationDateTime": "2025-03-01T00:00:00Z",
      "transactionFromDateTime": "2022-01-01T00:00:00Z",
      "transactionToDateTime": "2022-02-01T23:59:59Z"
   }
}

Se a solicitação for bem sucedida, o desenvolvedor receberá a seguinte resposta:

{
  "data": {
    "consentId": "urn:bancoex:C1DD33123",
    "creationDateTime": "2022-02-01T08:30:00Z",
    "status": "AWAITING_AUTHORISATION",
    "statusUpdateDateTime": "2021-05-21T08:30:00Z",
    "permissions": [
      "ACCOUNTS_READ",
      "ACCOUNTS_OVERDRAFT_LIMITS_READ",
      "RESOURCES_READ"
    ],
    "expirationDateTime": "2022-03-01T00:00:00Z",
    "transactionFromDateTime": "2022-01-01T00:00:00Z",
    "transactionToDateTime": "2022-02-01T23:59:59Z"
  },
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2022-02-01T08:30:00Z"
  }
}

A resposta contém a identificação do consentimento, seu status, e o endpoint scaOAuth. Desenvolvedor deve utilizar a URI do endpoint do banco para redirecionar o Usuário para a autenticação.

4. Autenticação de Usuário

Clique em Autorizar no topo para iniciar a autenticação do Usuário.

psu authentication

O botão Authorizar é utilizado para autenticar o Usuário. Após login e captura de consentimento, o token do Usuário já estará disponível para acesso a informações de conta.

5. Chamada API para Informações de Conta

account call

O cabeçalho para autorização de informações de conta é automaticamente preenchido. Teste na API obie-aisp/v1/aisp/accounts. Um exemplo de resposta será:

{
  "data": [
    {
      "brandName": "Organização A",
      "companyCnpj": "21128159000166",
      "type": "CONTA_DEPOSITO_A_VISTA",
      "compeCode": "001",
      "branchCode": "6272",
      "number": "94088392",
      "checkDigit": "4",
      "accountId": "92792126019929279212650822221989319252576"
    }
  ],
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2022-02-01T08:30:00Z"
  }
}