Consentimento para compartilhamento de dados
Esta documentação descreve os procedimentos e padrões para a criação de consentimentos de compartilhamento de dados, permitindo que clientes (PF e PJ) autorizem o acesso às suas informações financeiras de forma segura.
O que é um Consentimento de Dados?
O Consentimento é o pilar central do Open Finance. É a manifestação livre, informada e inequívoca pela qual o cliente (detentor dos dados) autoriza o compartilhamento de seus dados ou a iniciação de pagamentos entre instituições. No contexto de recepção de dados, o consentimento define:Quem está compartilhando (CPF/CNPJ).Quais dados serão compartilhados (Permissões).Por quanto tempo (Data de expiração, limitada a 12 meses).Para qual finalidade (Uso específico dos dados).
Tipos de Dados e Permissões
As permissões são agrupadas em clusters de dados que o cliente pode escolher compartilhar.
Abaixo, os principais tipos de dados consumíveis no Open Finance Brasil:
Categorias de Dados
Dados Cadastrais: Informações de identificação (nome, CPF/CNPJ, endereços) e dados de contato.
Informações de Contas: Saldos, limites e extratos de contas de depósito à vista, poupança e pagamento.
Cartão de Crédito: Limites, faturas e transações de cartões.
Operações de Crédito: Empréstimos, financiamentos, adiantamentos de recebíveis e direitos creditórios.
Investimentos: Fundos, rendas fixas, previdência e outros ativos.
Permissões de um consentimento
As permissões de um consentimento são o escopo de acesso que o usuário concede à instituição receptora. No Open Finance, o cliente escolhe exatamente quais categorias de informações ele aceita compartilhar.
No modelo brasileiro, essas permissões são padronizadas e agrupadas em clusters. Isso significa que, ao solicitar acesso ao saldo, a API automaticamente requer permissões de um grupo específico para garantir que os dados complementares também estejam disponíveis.
Tabela de Agrupamento de Permissões (Open Finance Brasil)
| Categoria de Dados | Agrupamento | Permissions (API) | Seleção de Recurso |
|---|---|---|---|
| Dados Cadastrais (PF/PJ) | Informações Cadastrais | CUSTOMER_MANAGE_REGISTRATION_DATA_READ, RESOURCES_READ | Não |
| Dados Cadastrais (PF/PJ) | Informações Complementares | CUSTOMER_BUSINESS_IDENTIFICATION_READ, CUSTOMER_BUSINESS_QUALIFICATION_READ, RESOURCES_READ | Não |
| Contas | Dados de Saldo e Limites | ACCOUNTS_READ, ACCOUNTS_BALANCES_READ, RESOURCES_READ | Sim |
| Contas | Dados de Transações | ACCOUNTS_READ, ACCOUNTS_TRANSACTIONS_READ, RESOURCES_READ | Sim |
| Cartão de Crédito | Limites e Faturas | CREDIT_CARDS_ACCOUNTS_READ, CREDIT_CARDS_ACCOUNTS_BILLS_READ, RESOURCES_READ | Sim |
| Cartão de Crédito | Transações | CREDIT_CARDS_ACCOUNTS_READ, CREDIT_CARDS_ACCOUNTS_TRANSACTIONS_READ, RESOURCES_READ | Sim |
| Operações de Crédito | Empréstimos e Financiamentos | LOANS_READ, FINANCINGS_READ, UNARRANGED_ACCOUNTS_OVERDRAFT_READ, INVOICE_FINANCINGS_READ, RESOURCES_READ | Sim |
| Investimentos | Investimentos | INVESTMENTS_FIXED_INCOME_READ, INVESTMENTS_VARIABLE_INCOME_READ, INVESTMENTS_FUNDS_READ, INVESTMENTS_TREASURY_BONDS_READ, RESOURCES_READ | Sim |
| Câmbio | Operações de Câmbio | EXCHANGES_READ, RESOURCES_READ | Não |
Criação de Consentimento (PF e PJ)
A API de criação de consentimento (POST /consents/v1/consents) é o primeiro passo da jornada. Ela gera uma intenção de compartilhamento que deve ser autorizada pelo cliente na instituição detentora.
Request (PF e PJ) O payload diferencia-se principalmente pelo objeto loggedUser e businessEntity.
Endpoint: POST /baas/v1/open/dat/consents
{
"brandId": "06c19499-3412-4125-84b7-d0fbc98b5019" ,
"data": {
"loggedUser": {
"document": {
"identification": "53666796052",
"rel": "CPF"
}
},
"permissions": [
"ACCOUNTS_BALANCES_READ",
"ACCOUNTS_OVERDRAFT_LIMITS_READ",
"ACCOUNTS_READ",
"ACCOUNTS_TRANSACTIONS_READ",
"BANK_FIXED_INCOMES_READ",
"CREDIT_CARDS_ACCOUNTS_BILLS_READ",
"CREDIT_CARDS_ACCOUNTS_BILLS_TRANSACTIONS_READ",
"CREDIT_CARDS_ACCOUNTS_LIMITS_READ",
"CREDIT_CARDS_ACCOUNTS_READ",
"CREDIT_CARDS_ACCOUNTS_TRANSACTIONS_READ",
"CREDIT_FIXED_INCOMES_READ",
"CUSTOMERS_BUSINESS_ADITTIONALINFO_READ",
"CUSTOMERS_BUSINESS_IDENTIFICATIONS_READ",
"FINANCINGS_PAYMENTS_READ",
"FINANCINGS_READ",
"FINANCINGS_SCHEDULED_INSTALMENTS_READ",
"FINANCINGS_WARRANTIES_READ",
"FUNDS_READ",
"INVOICE_FINANCINGS_PAYMENTS_READ",
"INVOICE_FINANCINGS_READ",
"INVOICE_FINANCINGS_SCHEDULED_INSTALMENTS_READ",
"INVOICE_FINANCINGS_WARRANTIES_READ",
"LOANS_PAYMENTS_READ",
"LOANS_READ",
"LOANS_SCHEDULED_INSTALMENTS_READ",
"LOANS_WARRANTIES_READ",
"RESOURCES_READ",
"TREASURE_TITLES_READ",
"UNARRANGED_ACCOUNTS_OVERDRAFT_PAYMENTS_READ",
"UNARRANGED_ACCOUNTS_OVERDRAFT_READ",
"UNARRANGED_ACCOUNTS_OVERDRAFT_SCHEDULED_INSTALMENTS_READ",
"UNARRANGED_ACCOUNTS_OVERDRAFT_WARRANTIES_READ",
"VARIABLE_INCOMES_READ"
]
}
}
{
"brandId": "06c19499-3412-4125-84b7-d0fbc98b5019" ,
"data": {
"loggedUser": {
"document": {
"identification": "75500434934",
"rel": "CPF"
}
},
"businessEntity": {
"document": {
"identification": "11537584000155",
"rel": "CNPJ"
}
},
"permissions": [
"ACCOUNTS_BALANCES_READ",
"ACCOUNTS_OVERDRAFT_LIMITS_READ",
"ACCOUNTS_READ",
"ACCOUNTS_TRANSACTIONS_READ",
"BANK_FIXED_INCOMES_READ",
"CREDIT_CARDS_ACCOUNTS_BILLS_READ",
"CREDIT_CARDS_ACCOUNTS_BILLS_TRANSACTIONS_READ",
"CREDIT_CARDS_ACCOUNTS_LIMITS_READ",
"CREDIT_CARDS_ACCOUNTS_READ",
"CREDIT_CARDS_ACCOUNTS_TRANSACTIONS_READ",
"CREDIT_FIXED_INCOMES_READ",
"CUSTOMERS_BUSINESS_ADITTIONALINFO_READ",
"CUSTOMERS_BUSINESS_IDENTIFICATIONS_READ",
"FINANCINGS_PAYMENTS_READ",
"FINANCINGS_READ",
"FINANCINGS_SCHEDULED_INSTALMENTS_READ",
"FINANCINGS_WARRANTIES_READ",
"FUNDS_READ",
"INVOICE_FINANCINGS_PAYMENTS_READ",
"INVOICE_FINANCINGS_READ",
"INVOICE_FINANCINGS_SCHEDULED_INSTALMENTS_READ",
"INVOICE_FINANCINGS_WARRANTIES_READ",
"LOANS_PAYMENTS_READ",
"LOANS_READ",
"LOANS_SCHEDULED_INSTALMENTS_READ",
"LOANS_WARRANTIES_READ",
"RESOURCES_READ",
"TREASURE_TITLES_READ",
"UNARRANGED_ACCOUNTS_OVERDRAFT_PAYMENTS_READ",
"UNARRANGED_ACCOUNTS_OVERDRAFT_READ",
"UNARRANGED_ACCOUNTS_OVERDRAFT_SCHEDULED_INSTALMENTS_READ",
"UNARRANGED_ACCOUNTS_OVERDRAFT_WARRANTIES_READ",
"VARIABLE_INCOMES_READ"
]
}
}
Response de Sucesso (201 Created)
Retorna o consentId necessário para as próximas etapas (redirecionamento para autenticação).
{
"data": {
"consentId": "urn:celcoin:692d800bfd35c73b8d02ee6c",
"creationDateTime": "2024-04-16T12:00:00Z",
"status": "AWAITING_AUTHORISATION",
"expirationDateTime": "2025-12-31T23:59:59Z",
"permissions": [
"ACCOUNTS_READ",
"ACCOUNTS_BALANCES_READ",
"ACCOUNTS_TRANSACTIONS_READ",
"RESOURCES_READ"
]
},
"links": {
"self": "https://api.celcoin.com.br/open-banking/consents/v1/consents/urn:celcoin:692d800bfd35c73b8d02ee6c"
},
"meta": {
"totalPages": 1,
"totalRecords": 1
}
}Status do consentimento
| Status | Descrição | Pode consumir dados? |
|---|---|---|
| AWAITING_AUTHORISATION | Aguardando o usuário autorizar no banco de origem. | Não |
| AUTHORISED | Autorizado com sucesso pelo usuário. | Sim |
| REJECTED | O usuário negou a autorização ou houve falha. | Não |
| REVOKED | O compartilhamento foi cancelado pelo usuário ou instituição. | Não |
| EXPIRED | O prazo de validade expirou. | Não |
Rate Limits (Limites de Requisição)
Para garantir a estabilidade do ecossistema, o Open Finance Brasil estabelece limites de taxa (Rate Limits) para o consumo de APIs:
| Escopo do Limite | Valor de Referência |
|---|---|
| Global (Geral) | 300 TPS (Transactions Per Second) |
| Por Instituição | 50 TPS |
| Por Endereço IP | 8 TPS |
Recomenda-se que as instituições receptoras implementem estratégias de Retry Exponencial ao receberem erros 429 Too Many Requests.
Gestão de Consentimentos
Após a criação da intenção de compartilhamento, é fundamental que a aplicação consiga gerenciar esses registros, seja para verificar se um consentimento já está pronto para uso ou para encerrar um compartilhamento a pedido do usuário.
Listar Consentimentos
Esta rota é utilizada para recuperar o histórico de consentimentos gerados. Ela é essencial para decidir o fluxo de experiência do usuário (UX):
Se o consentimento está AUTHORISED: A aplicação pode seguir para o consumo dos dados.
Se o consentimento está AWAITING_AUTHORISATION ou REJECTED: A aplicação deve redirecionar o usuário para o fluxo de autenticação ou solicitar uma nova tentativa.
Endpoint: GET /baas/v1/open/dat/consents
Principais Filtros (Query Parameters):
| Filtros | Descrição | Exemplo |
|---|---|---|
| Status | Permite filtrar por estados específicos | AUTHORISED, REVOKED, EXPIRED |
| Page | Paginação | 1 |
Exemplo de Resposta:
{
"data": [
{
"consentId": "urn:celcoin:692d800bfd35c73b8d02ee6c",
"status": "AUTHORISED",
"creationDateTime": "2024-04-16T12:00:00Z",
"expirationDateTime": "2025-04-16T12:00:00Z",
"permissions": ["ACCOUNTS_READ", "RESOURCES_READ"]
}
],
"meta": {
"totalRecords": 1,
"totalPages": 1
}
}Revogar Consentimento
A revogação é o ato de interromper definitivamente o compartilhamento de dados antes da sua data de expiração original. Por norma do Open Finance, o usuário tem o direito soberano de cancelar o acesso aos seus dados a qualquer momento.
Endpoint: DELETE /baas/v1/open/dat/consents/consentId
Request
curl --location --request DELETE 'https://sandbox.openfinance.celcoin.com.br/baas/v1/open/dat/consents/consentId' \
--header 'Authorization: Bearer ***** '
O usuário pode realizar a revogação de duas formas:
Via API Celcoin: Através da interface da sua aplicação, chamando o endpoint acima.
Diretamente na Instituição Transmissora: O usuário pode entrar no app do banco onde ele autorizou os dados (ex: Banco do Brasil, Itaú) e cancelar o consentimento por lá.
Importante: Uma vez que o consentimento é revogado (seja pela API ou pelo banco detentor), o status mudará para REVOKED e não será mais possível realizar chamadas de consumo de dados (como consulta de saldo ou extrato) utilizando aquele consentId.
Regras de Negócio para Revogação
Irreversibilidade: Um consentimento revogado não pode ser reativado. Um novo fluxo de consentimento deve ser iniciado se o usuário desejar compartilhar os dados novamente.
Sincronização: Quando o usuário revoga no banco de origem, a Celcoin recebe essa atualização via webhook ou na próxima consulta de status, garantindo a conformidade com a LGPD.
Updated about 1 hour ago