Callback do Consentimento
Sweeping Accounts V2 - Callback Payment Initiation API
Visão Geral
Esta API permite a confirmação de aprovação do consentimento de sweeping accounts na detentora, então seu status passa a ser AUTHORISED.
Endpoint
POST /open-keys/itp/api/v2/payment-initiation/callback
Estrutura da Requisição
Payload Completo
{
"code": "{{callback_code}}",
"id_token": "{{callback_id_token}}",
"state": "{{callback_state}}"
}Campos da Requisição
Nível Raiz
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
code | String | Sim | code retornado na aprovação do consentimento |
id_token | String | Sim | id_token retornado na aprovação do consentimento |
state | String | Sim | state retornado na aprovação do consentimento |
Exemplo de Requisição (cURL)
curl --location 'https://api.exemplo.com/open-keys/itp/api/v2/payment-initiation/callback' \
--header 'Content-Type: application/json' \
--data '{
"code": "{{callback_code}}",
"id_token": "{{callback_id_token}}",
"state": "{{callback_state}}"
}'Exemplo de Requisição (JavaScript/Node.js)
const axios = require('axios');
let data = JSON.stringify({
"code": "{{callback_code}}",
"id_token": "{{callback_id_token}}",
"state": "{{callback_state}}"
});
let config = {
method: 'post',
maxBodyLength: Infinity,
url: 'https://api.exemplo.com/open-keys/itp/api/v2/payment-initiation/callback',
headers: {
'Content-Type': 'application/json'
},
data : data
};
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
Exemplo de Requisição (Python)
import requests
import json
url = "https://api.exemplo.com/open-keys/itp/api/v2/payment-initiation/callback"
payload = json.dumps({
"code": "{{callback_code}}",
"id_token": "{{callback_id_token}}",
"state": "{{callback_state}}"
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Resposta da API
Sucesso (200 OK)
A API retorna um objeto contendo:
{
"brandId": "69025598418e4eda09274a00",
"redirectUrl": "http://localhost:8080/callback",
"data": {
"creditors": [
{
"name": "João Silva",
"cpfCnpj": "12345678909",
"personType": "PESSOA_NATURAL"
}
],
"loggedUser": {
"document": {
"identification": "12345678909",
"rel": "CPF"
}
},
"recurringConfiguration": {
"sweeping": {
"totalAllowedAmount": "10000.00",
"transactionLimit": "150.00",
"periodicLimits": {
"day": {
"quantityLimit": 5,
"transactionLimit": "25.00"
},
"week": {
"quantityLimit": 5,
"transactionLimit": "100.00"
},
"month": {
"quantityLimit": 5,
"transactionLimit": "300.00"
},
"year": {
"quantityLimit": 5,
"transactionLimit": "10000.00"
}
},
"startDateTime": "2025-11-27T16:00:00Z"
}
}
},
"journeySessionId": "692984fb19d981221c9d242c",
"applicationId": "68a482d2b3ee755e8bbdec8a",
"paymentInitiationApi": "SWEEPING_ACCOUNTS_V2",
"tokenId": "692984fb764d31221c1e01cc",
"createdAt": "2025-11-28T11:18:19.384Z",
"updatedAt": "2025-11-28T11:18:28.488Z",
"authorizationUrl": "https://api-openfinance.opb.bricks.demo.fsapps.io/orgs/bricks/auth?client_id=CSYrcp9dzeRdUWbuXLFiF&request_uri=urn%3Aietf%3Aparams%3Aoauth%3Arequest_uri%3ASclR4cO5ruUf5amgJcoMu",
"ofConsentId": "6929850319d981221c9d242f",
"id": "692984fb19d981221c9d242d",
"ofPayments": [],
"ofConsent": {
"paymentInitiationId": "692984fb19d981221c9d242d",
"consentId": "urn:bricks-demo:231be033-3f54-4d7f-8783-cb037a60e687",
"organization_id": "c55ceb2e-c9fb-4989-8ed1-39208d6d7951",
"brand_id": "3a40d894-f3c2-47e3-97c2-d9a04cdac63c",
"authorization_url": "https://api-openfinance.opb.bricks.demo.fsapps.io/orgs/bricks/auth?client_id=CSYrcp9dzeRdUWbuXLFiF&request_uri=urn%3Aietf%3Aparams%3Aoauth%3Arequest_uri%3ASclR4cO5ruUf5amgJcoMu",
"consent_id": "urn:bricks-demo:231be033-3f54-4d7f-8783-cb037a60e687",
"code_verifier": "3cvQ7XgBLdzQbHUirulBDbI4EJD90oexuPGEFQHNCSU",
"nonce": "9bUszWowvhD_juk7i0Y2o0omCcIYzYi1-lUVRMgCC3c",
"state": "692984fb19d981221c9d242d",
"redirect_uri": "https://smartkeys-wl.celcoin.hml.fsapps.io/callback",
"scope": "openid recurring-payments recurring-consent:urn:bricks-demo:231be033-3f54-4d7f-8783-cb037a60e687",
"consentTerm": 0,
"consentTermUnit": "M",
"creationDateTime": "2025-11-28T11:18:22.000Z",
"creditors": [
{
"personType": "PESSOA_NATURAL",
"cpfCnpj": "12345678909",
"name": "João Silva"
}
],
"events": [
{
"date": "2025-11-28T11:18:22.000Z",
"event": "AWAITING_AUTHORISATION"
},
{
"date": "2025-11-28T11:18:27.606Z",
"event": "REDIRECTED"
},
{
"date": "2025-11-28T11:21:35.181Z",
"event": "CODE_GENERATED"
},
{
"date": "2025-11-28T11:21:41.452Z",
"event": "AUTHORISED"
}
],
"journey": [],
"kind": "AUTOMATIC_PAYMENT",
"loggedUser": {
"document": {
"identification": "12345678909",
"rel": "CPF"
}
},
"organizationLogo": "https://finansystech-pub.s3.sa-east-1.amazonaws.com/f_logo.svg",
"organizationName": "Finansystech Banking Demo Auth Server",
"ownerBrandId": "3a40d894-f3c2-47e3-97c2-d9a04cdac63c",
"ownerId": "c55ceb2e-c9fb-4989-8ed1-39208d6d7951",
"recurringConfiguration": {
"sweeping": {
"totalAllowedAmount": "10000.00",
"transactionLimit": "150.00",
"periodicLimits": {
"day": {
"quantityLimit": 5,
"transactionLimit": "25.00"
},
"week": {
"quantityLimit": 5,
"transactionLimit": "100.00"
},
"month": {
"quantityLimit": 5,
"transactionLimit": "300.00"
},
"year": {
"quantityLimit": 5,
"transactionLimit": "10000.00"
}
},
"startDateTime": "2025-11-27T16:00:00.000Z",
"useOverdraftLimit": true
}
},
"recurringConsentId": "urn:bricks-demo:231be033-3f54-4d7f-8783-cb037a60e687",
"status": "AUTHORISED",
"statusUpdateDateTime": "2025-11-28T11:21:41.452Z",
"transactions": [],
"access_token": "CvrxLpyqWGM-8nwy7pA3rDTrCAjCOSZQCSZjTug-N65",
"expires_at": 1764329801,
"id_token": "eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IlZMdThGLXgybk9JRlp2em5RcmwwbDQ1TkdmS0Y0aFpHQ0pUNy1peTVpRWcifQ.eyJzdWIiOiI3OWI1ZjU0OTE4NjI4Y2M3ZjZhOTAwYTM4NmQxNGEwNCIsImFjciI6InVybjpicmFzaWw6b3BlbmJhbmtpbmc6bG9hMiIsIm5vbmNlIjoiOWJVc3pXb3d2aERfanVrN2kwWTJvMG9tQ2NJWXpZaTEtbFVWUk1nQ0MzYyIsImF0X2hhc2giOiJFRENYbl9ZQ2xTYU9KVllOc0p5cWJBIiwiYXVkIjoiQ1NZcmNwOWR6ZVJkVVdidVhMRmlGIiwiZXhwIjoxNzY0MzMyNTAxLCJpYXQiOjE3NjQzMjg5MDEsImlzcyI6Imh0dHBzOi8vYXBpLW9wZW5maW5hbmNlLm9wYi5icmlja3MuZGVtby5mc2FwcHMuaW8vb3Jncy9icmlja3MifQ.Xd1-ybxA3xwpdTVLIlAp_-BAF_Ftj5V0gWcHI5fElhSR7UGlsOviLUak0esB6AFgpGqHjoQJwQnmYpN2D5h5KDgUENYs0kSLC6V6Z3nTi4ED3IJg_Ycp0IiI-tTgSUzHK9GCE-YrZsZEIjXQmgJbST-OKcURssWvJYPfsQ5uEt3cHUOqJy4kI4OOaCZSIjVdOXKWcx9vgZvQMWQv8Ueq9AqbjbtL_AxD_QYfPfJTpPq--V-Sm0i9USPn3_GV86didkpM5QxU3UIokNrzaiGvfRc_PgF_pNSTN_YlrPZcVciSY2JS7zVzZ59eVQFaO0tQou0CRxS0N7vAj92ySUF5mQ",
"refresh_token": "f_mrIlM5Hw1TboI-5XOTJFaPZvu6ABCkHXdTo1j5v8h",
"token_type": "Bearer",
"id": "6929850319d981221c9d242f"
},
"brand": {
"AuthorisationServerId": "3a40d894-f3c2-47e3-97c2-d9a04cdac63c",
"ApiFamilyType": {
"payments-pix-recurring-payments-automatic": true,
"payments-pix-recurring-payments": true,
"enrollments": true,
"payments-pix": true
},
"CustomerFriendlyDescription": "Finansystech Banking Demo Auth Server",
"CustomerFriendlyLogoUri": "https://finansystech-pub.s3.sa-east-1.amazonaws.com/f_logo.svg",
"CustomerFriendlyName": "Finansystech Banking Demo Auth Server",
"Flags": {
"Suporta Contas PF": [
"Suporta Contas PF"
],
"Suporta Contas PJ": [
"Suporta Contas PJ"
]
},
"OpenIDDiscoveryDocument": "https://api-openfinance.opb.bricks.demo.fsapps.io/orgs/bricks/.well-known/openid-configuration",
"OrganisationId": "69025584418e4eda0927453c",
"OrganisationName": "CELCOIN INSTITUICAO DE PAGAMENTO S.A.",
"ParentAuthorisationServerId": null,
"id": "69025598418e4eda09274a00"
},
"journeySession": {
"journeyId": "6927467b7220f7158cb60b3f",
"paymentInitiationData": {
"creditors": [
{
"name": "João Silva",
"cpfCnpj": "12345678909",
"personType": "PESSOA_NATURAL"
}
],
"loggedUser": {
"document": {
"identification": "12345678909",
"rel": "CPF"
}
},
"recurringConfiguration": {
"sweeping": {
"totalAllowedAmount": "10000.00",
"transactionLimit": "150.00",
"periodicLimits": {
"day": {
"quantityLimit": 5,
"transactionLimit": "25.00"
},
"week": {
"quantityLimit": 5,
"transactionLimit": "100.00"
},
"month": {
"quantityLimit": 5,
"transactionLimit": "300.00"
},
"year": {
"quantityLimit": 5,
"transactionLimit": "10000.00"
}
},
"startDateTime": "2025-11-27T16:00:00Z"
}
}
},
"redirectUrl": "http://localhost:8080/callback",
"paymentInitiationApi": "SWEEPING_ACCOUNTS_V2",
"applicationClientId": "openkeys_287f10e6-7917-4ff7-8291-e885a9e9076d",
"applicationId": "68a482d2b3ee755e8bbdec8a",
"tokenId": "692984fb764d31221c1e01cc",
"journeySessionStageId": "692984fb19d981221c9d242b",
"status": "AUTHORISED",
"statusHistory": [
{
"updatedAt": "2025-11-28T11:18:19.361Z",
"status": "PENDING"
},
{
"updatedAt": "2025-11-28T11:18:28.463Z",
"status": "AWAITING_AUTHORISATION"
},
{
"updatedAt": "2025-11-28T11:21:42.274Z",
"status": "AUTHORISED"
}
],
"createdAt": "2025-11-28T11:18:19.361Z",
"updatedAt": "2025-11-28T11:21:42.274Z",
"paymentInitiationId": "692984fb19d981221c9d242d",
"id": "692984fb19d981221c9d242c",
"token": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI2OTI5ODRmYjc2NGQzMTIyMWMxZTAxY2MiLCJpc3MiOiJvcGVuLWtleXMtaXRwLXYyIiwiYXpwIjoib3BlbmtleXNfMjg3ZjEwZTYtNzkxNy00ZmY3LTgyOTEtZTg4NWE5ZTkwNzZkIiwic2NvcGUiOiJqb3VybmV5IiwiaWF0IjoxNzY0MzI4Njk5LCJleHAiOjE3NjQzMzIzNTl9.QARQ_xWcNzCtMPILJYSiYFEAp527Zk0wmk0knsWgvus",
"createdAt": "2025-11-28T11:18:19.280Z",
"updatedAt": "2025-11-28T11:18:19.280Z",
"id": "692984fb764d31221c1e01cc"
}
}
}Erros Comuns
422 Unprocessable Entity
{
"name": "ValidationError",
"message": "Parameters validation error!",
"code": 422,
"type": "VALIDATION_ERROR",
"data": [
{
"type": "required",
"message": "The 'state' field is required.",
"field": "state",
"action": "v2.open-keys.itp.payment-initiation.ofCallback"
}
]
}Causas comuns:
- Campos obrigatórios ausentes
404 Not Found
{
"name": "EntityNotFoundError",
"message": "Entity not found",
"code": 404,
"type": null,
"data": {
"id": "sass"
}
}Solução: Verifique se o state informado está correto.
Updated about 5 hours ago