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

CampoTipoObrigatórioDescrição
codeStringSimcode retornado na aprovação do consentimento
id_tokenStringSimid_token retornado na aprovação do consentimento
stateStringSimstate 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.