Integração APIs
Para que empresas contratantes do Open Keys® possam acionar a Jornada de compartilhamento de Dados, é necessário gerar um token no qual deverão ser indicados o client_id e o client_secret da operação, sinalizados no painel do aplicativo, menu de configurações.

URL de geração do Token - Sandbox
curl --location 'https://keycloak.celcoin.shared.fsapps.io/auth/realms/smart-keys/protocol/openid-connect/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'scopes=openid' \
--data-urlencode 'client_id=${CLIENT_ID} \
--data-urlencode 'client_secret=${CLIENT_SECRET}'
URL de geração do Token - Produção
curl --location 'https://keycloak.celcoin.shared.fsapps.io/auth/realms/smart-keys-prd/protocol/openid-connect/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'scopes=openid' \
--data-urlencode 'client_id=${CLIENT_ID} \
--data-urlencode 'client_secret=${CLIENT_SECRET}'
cURL para geração do Token
curl --location '${TOKEN_URL}' \
--header 'Content-Type: application/json' \
--data '{
"client_id":"...-2567-....-ace9-...",
"client_secret": "...8136-....-42ce-..."
}'
Response
{
"access_token": "...iJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJJUV96OE...",
"expires_in": 3600,
"refresh_expires_in": 0,
"token_type": "Bearer",
"not-before-policy": 0,
"scope": "email profile"
}
O token retornado no campo “accesstoken“ tem validade padrão de 1 hora e deve ser utilizado para realizar as chamadas subsequentes. Deve ser incluído no parâmetro_Authentication do header da requisição, precedido da palavra “Bearer “, conforme exemplo abaixo.
'Authorization': 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJJUV96OE...'
Liste os participantes do Open Finance de Dados
A chamada de API abaixo traz todas as instituições financeiras que podem ser escolhidas para realizar a aprovação do consentimento.
Solicitação de lista de participantes
curl --location --request GET 'https://api-openkeys.celcoin.dev.fsapps.io/open-keys-itp/api/participants/v1/brands?type=DATA&count=1&page=1'
Resposta da lista de participantes
[
{
"AuthorisationServerId": "95dd24d2-902e-49e1-ad0d-e02d938447ba", "AutoRegistrationSupported": false,
"AutoRegistrationNotificationWebhook": null,
"SupportsCiba": false, "SupportsDCR": false,
"SupportsRedirect": false, "ApiResources": [...],
"AuthorisationServerCertifications": [],
"CustomerFriendlyDescription": "Autorizador ambiente Desenvolvimento Engenharia Finansystech", "CustomerFriendlyLogoUri": "https://finansystech-pub.s3.sa-east-1.amazonaws.com/f_logo.svg",
"CustomerFriendlyName": "Finansystech Mock", "DeveloperPortalUri": null,
"TermsOfServiceUri": null,
"NotificationWebhookAddedDate": null,
"OpenIDDiscoveryDocument": "https://openfinance.dev.fbank.opb.obm.engdev.fsapps.io/orgs/finansystech/.well-kno",
"Issuer": "https://openfinance.dev.fbank.opb.obm.engdev.fsapps.io/orgs/finansystech",
"PayloadSigningCertLocationUri": "https://openfinance.dev.fbank.opb.obm.engdev.fsapps.io/orgs/finansystech/jwk",
"CreatedAt": 1666796087,
"ParentAuthorisationServerId": null, "DeprecatedDate": null,
"RetirementDate": null,
"SupersededByAuthorisationServerId": null,
"OrganisationId": "248cce08-0abc-4cdb-ba14-02cca03e5c74"
},
...
]
Criar consentimento de dados
Usando o token de acesso que foi gerando anteriormentte, é possível chamar o endpoint Consent Creation.
O campo AuthorisationServerId é o Brand ID que usaremos para criar o consentimento de dados. Usaremos o Brand ID do Finansystech Mock (b09ede32-83db-4019-8ca3-a9a6f9376d0b)
URL de criação do Consentimento - Sandbox
CONSENT_URL=https://api-openkeys.celcoin.dev.fsapps.io/open-keys-itp/api/data-reception/v1/consents'
URL de criação do Consentimento - Produção
CONSENT_URL=https://api-openkeys.celcoin.prd.fsapps.io/open-keys-itp/api/data-reception/v1/consents'
cURL para criação do consentimento
curl --location 'https://api-smartkeys.celcoin.dev.fsapps.io/api/smart-keys/data-reception/v1/consents' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{token}}' \
--data '{
"data": {
"loggedUser": {
"document": {
"identification": "",
"rel": "CPF"
}
},
"permissions": [
"ACCOUNTS_READ",
"ACCOUNTS_OVERDRAFT_LIMITS_READ",
"ACCOUNTS_BALANCES_READ",
"ACCOUNTS_TRANSACTIONS_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",
"CUSTOMERS_PERSONAL_ADITTIONALINFO_READ",
"CUSTOMERS_PERSONAL_IDENTIFICATIONS_READ",
"BANK_FIXED_INCOMES_READ",
"CREDIT_FIXED_INCOMES_READ",
"FUNDS_READ",
"VARIABLE_INCOMES_READ",
"TREASURE_TITLES_READ",
"RESOURCES_READ"
],
"expirationDateTime": "2024-12-30T00:00:00Z"
},
"brandId": ""
}'
Resposta de criação de consentimento
{
"authorizationUrl": "https://openfinance.dev.fbank.opb.obm.engdev.fsapps.io/orgs/finansystech/auth?client_id=4f-BS",
"id": "uNmAi0qJbzE2YsNvaLNw1QF6_7jV0b2 v8239wbRgc"
}
Será retornado um AuthorizationUrl para que seja possível redirecionar o usuário para a página de login do banco. Execute o redirecionamento usando o URL de autorização. A página de login será exibida na sequência.

Nesta tela é preciso utilizar o usuário e senha de teste, cadastrados no painel da aplicação
O sistema apresentará a página Aprovação de Compartilhamento de Dados com as informações da transação. Clique no botão “CONFIRMAR” para consentir com o compartilhamento.

O sistema redirecionará o usuário de volta para a URL cadastrada em "Redirect URI". A página URI de redirecionamento receberá os seguintes parâmetros de string de consulta:
- ticket=eyJhbGciO…
- state=HVLeXYgP6…
Consulta do consentimento
Após receber um retorno de um token dentro da tag “ticket”, é preciso inseri-lo na próxima chamada de consulta ao consentimento. Para isso, é preciso utilizar o ID do Consentimento e o ID da Jornada.
URL Get Data para consulta via ID do consentimento - Produção
DATA_URL=https:https://api-smartkeys.celcoin.prd.fsapps.io/api/smart-keys/data-reception/v1/consents/:consentId
O parâmetro status pode receber os valores: "AUTORIZED", "AWAITING_AUTORIZATION" e "REJECTED"
Response do consentimento
{
"permissions": [
"ACCOUNTS_READ",
"ACCOUNTS_OVERDRAFT_LIMITS_READ",
"ACCOUNTS_BALANCES_READ",
"ACCOUNTS_TRANSACTIONS_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",
"CUSTOMERS_PERSONAL_ADITTIONALINFO_READ",
"CUSTOMERS_PERSONAL_IDENTIFICATIONS_READ",
"BANK_FIXED_INCOMES_READ",
"CREDIT_FIXED_INCOMES_READ",
"FUNDS_READ",
"VARIABLE_INCOMES_READ",
"TREASURE_TITLES_READ",
"RESOURCES_READ"
],
"creationDateTime": "2024-03-26T20:49:57.445Z",
"status": "AWAITING_AUTHORIZATION",
"statusUpdateDateTime": "2024-03-26T20:49:57.445Z",
"expirationDateTime": "2024-12-30T00:00:00.000Z",
"loggedUser": {
"document": {
"identification": "18983969067",
"rel": "CPF"
}
},
"kind": "DATA",
"brandId": "d0d73a45-a3b5-409f-988f-895822991b19",
"clientId": "198abfd2-743f-4976-87fe-59f0fd62ba5e",
"consentId": "urn:bricks-dev:c23d332e-71b8-4b4f-8511-a3ccb304379c",
"organizationName": "Finansystech Banking Dev Auth Server",
"organizationLogo": "https://finansystech-pub.s3.sa-east-1.amazonaws.com/f_logo.svg",
"id": "f6YQWjuZkuHjqG4lti3StB4mc-bE7EmVv23MQmOr_ow",
"consentTerm": 9,
"consentTermUnit": "M"
}
Updated about 1 month ago