Roaring logo
Log in

Global Bank Account Information

Access individual or business account information in Europe using Open Banking capability.

Global Bank Account Information

[global]
Requires addon

Documentation

Access +2600 european banks with one single entry point.

Access Real-Time Financial Data through Open Banking with our Global Bank Account Information API. The API allows secure access to bank account information with user consent, enabling businesses to retrieve real-time financial data, such as balances, transaction history, and verification details. This API streamlines financial processes, improves customer insights, and ensures compliance by providing up-to-date, trusted information directly from verified bank accounts.

With this API, you can:

  • Retrieve real-time bank account balances and transaction history
  • Verify account details for customer onboarding and financial assessments
  • Enhance insights into customer financial behavior

Use case:

A financial lender uses the Global Bank Account Information API to securely access a customer's bank transaction history and balance, improving the accuracy of loan eligibility assessments while maintaining compliance with financial regulations.

Read more in this link on how to test the service in sandbox.

Account & balance types code translation

Code
Description
CACCAccount used to post debits and credits when no specific account has been nominated
CARDAccount used for card payments only
CASHAccount used for the payment of cash
LOANAccount used for loans
OTHRAccount not otherwise specified
SVGSAccount used for savings
Code
Description
CLAVClosing available balance
CLBDAccounting Balance
FWAVBalance that is at the disposal of account holders on the date specified
INFOBalance for informational purposes
ITAVAvailable balance calculated in the course of the day
ITBDBooked balance calculated in the course of the day
OPAVOpening balance that is at the disposal of account holders at the beginning of the date specified
OPBDBook balance of the account at the beginning of the account reporting period. It always equals the closing book balance from the previous report
OTHROther Balance
PRCDBalance of the account at the end of the previous reporting period

Rows per page

Page 1 of 2

Transactions Endpoint — Pagination

Integration guide for paginating through transaction history on the Global Bank Account Data API.

Overview

The GET /account/{accountId}/transactions endpoint returns a continuation_key whenever the bank has more transactions than fit in a single response. Pass that value back to fetch the next page.

Follow-up pages are free. Only the first request in a pagination sequence is billed; every subsequent request that carries a valid continuationKey is recorded as 0 credits.

Endpoint

GET https://api.roaring.io/global/bank-account-data/1.0/account/{accountId}/transactions

Parameters

Parameter
In
Type
Description
accountIdpathstringThe account identifier returned by /auth/session.
fromDatequerystringStart of date range, inclusive. Format yyyy-MM-dd. Most banks limit the window to ~89–90 days.
toDatequerystringEnd of date range, inclusive. Format yyyy-MM-dd. Must be after fromDate.
continuationKeyquerystringOpaque token from a previous response's continuation_key. Pass this to fetch the next page for free. Expires in 1 h.

If both fromDate and toDate are omitted the bank's default window is used.

Response

{
  "transactions": [
    { "...": "..." }
  ],
  "continuation_key": "eyJjayI6Ii4uLiIsImNvIjoiYWJjLi4uIiwiYWMiOiJhY2MtMSIsImV4IjoxNzQ4ODAwMDAwfQ.6f2c1e..."
}
  • transactions — array of transaction records as returned by Enable Banking.
  • continuation_key — present only when more pages remain. When the field is missing or empty, you have reached the end of the result set.

How to paginate

  1. Make the first request with fromDate / toDate (and no continuationKey). This call is billed normally.
  2. If the response contains continuation_key, re-issue the same request with continuationKey set to that value. This call is free.
  3. Repeat step 2 until the response no longer contains continuation_key.

⚠️ When paginating, send the same accountId and the same authentication headers that you used for the first request. Tokens are bound to both — see Token rules below.

💡 fromDate and toDate are not required on follow-up requests — the bank applies the same window that produced the token. You may include them for clarity; they are ignored upstream when a continuation_key is present.

Example — iterate all pages
import requests

base_url = "https://api.roaring.io/global/bank-account-data/1.0"
headers = {
    "Authorization": "Bearer <access_token>",
    "roaring-consumer-key": "<consumer_key>",
}

params = {"fromDate": "2026-01-01", "toDate": "2026-03-31"}
all_tx = []

while True:
    r = requests.get(
        f"{base_url}/account/{account_id}/transactions",
        params=params,
        headers=headers,
    )
    r.raise_for_status()
    body = r.json()

    all_tx.extend(body.get("transactions", []))

    token = body.get("continuation_key")
    if not token:
        break
    params = {"continuationKey": token}
# First page (billed)
curl -H "Authorization: Bearer $TOKEN" \
     -H "roaring-consumer-key: $CONSUMER_KEY" \
     "https://api.roaring.io/global/bank-account-data/1.0/account/$ACC/transactions?fromDate=2026-01-01&toDate=2026-03-31"

# Next page (free)
curl -H "Authorization: Bearer $TOKEN" \
     -H "roaring-consumer-key: $CONSUMER_KEY" \
     "https://api.roaring.io/global/bank-account-data/1.0/account/$ACC/transactions?continuationKey=eyJjay..."

Billing

Request
Charge
First call (no continuationKey)Standard rate
Follow-up call with a valid continuationKey0 credits
Follow-up call where the token fails verificationstatus 400 — not charged

Free-tier accounting is performed server-side; no action is required from your side beyond passing the token back.

Token rules

Treat the continuation_key as opaque — do not parse or modify it; format and length may change without notice.

The token is bound to the request that produced it:

  • It only works with the same roaring-consumer-key that received it.
  • It only works with the same accountId.
  • It is valid for 1 hour. After that, restart the sequence with a fresh first request.

If any of these conditions are violated the call returns 400 Invalid or expired continuation key and is not charged.

Errors

Condition
Status
Body
Missing accountId400"Missing require parameter: authCode"
fromDate not in yyyy-MM-dd400"From date param should comply yyyy-MM-dd format"
toDate not in yyyy-MM-dd400"To date param should comply yyyy-MM-dd format"
fromDate not before toDate400"Date parameter 'fromDate' should be before 'toDate'"
continuationKey tampered, expired, or not yours400"Invalid or expired continuation key"
Date range exceeds the bank's allowed window4xxForwarded from bank, typically "Wrong transactions period requested". Most banks cap the window at 89–90 days.

A 400 response on a follow-up page is not charged, so a failed pagination call has no billing impact.

FAQ

How do I know when I've reached the last page? The last response has no continuation_key field (or returns it empty). Stop iterating at that point.

Can I skip ahead or go backwards? No. The continuation_key represents the bank's cursor state, so pages must be fetched in order. If you need an earlier page, restart from the first request.

Does the token survive a service restart on my side? Yes, for up to 1 hour. The token is self-contained — you may persist it across processes as long as the expiry hasn't passed and the consumer/account context is the same.

What if walking the full history takes longer than 1 hour? Restart the sequence with a fresh first request. In practice an hour is generous; most full walks complete in seconds.

Endpoints

Gets account details

gethttps://api.roaring.io/global/bank-account-data/1.0/account/details/{accountId}

Parameters path

accountId

required

string
Account id

Response schema: application/json

  • type

    No description provided.

Get account transactions

Fetches transactions for a given account. Dates must be in yyyy-MM-dd format. The maximum allowed transaction period depends on the bank (ASPSP) and is typically limited to 89-90 days. Requesting a longer period may result in a 'Wrong transactions period requested' error from the bank. If no dates are provided, the bank's default period is used. Use the optional 'strategy' parameter to request the longest history the bank will return, rather than only the requested window.

gethttps://api.roaring.io/global/bank-account-data/1.0/account/{accountId}/transactions

Parameters path

accountId

required

string
Account id

Parameters query

fromDate
string
Start date for transactions (inclusive, format: yyyy-MM-dd). The maximum transaction history period depends on the bank (ASPSP), but is typically limited to 90 days. Example: 2025-01-01
toDate
string
End date for transactions (inclusive, format: yyyy-MM-dd). Must be after fromDate. Example: 2025-03-31
continuationKey
string
Continuation key for paginating through results
strategy
string ("default" | "longest")
Optional transaction fetch strategy. 'default' (the behaviour when omitted) applies fromDate/toDate literally. 'longest' asks the bank for the earliest available transaction and everything after it - toDate is ignored and fromDate is treated as a starting hint, so use it for a first full sync. Not every bank supports extended history; unsupported values are rejected with 400.

Gets aspsps statuses

gethttps://api.roaring.io/global/bank-account-data/1.0/aspsps_statuses

Gets auth session

gethttps://api.roaring.io/global/bank-account-data/1.0/auth/session

Parameters query

authCode
string
Auth code

Gets auth url

Starts a bank authorization and returns the URL the PSU must visit. The optional 'validityDays' query parameter sets how long the resulting AIS session (consent) stays valid before the PSU must re-authenticate. If omitted it defaults to 180 days. The requested value is automatically capped to the target bank's maximum supported consent validity (maximum_consent_validity, as reported by the bank) and to the 180-day PSD2 regulatory ceiling, so a longer request never causes the bank to reject the session. The resolved values are returned in this response as validityDays and validUntil (so the caller can see when a request was capped), and the same expiry is later echoed as access.valid_until by the 'Gets auth session' endpoint. To see each bank's maximum upfront, read maxValidityDays from the 'Fetch a list of available banks' response. The response also contains 'origin', the scheme and host of the returned url (e.g. https://tilisy.enablebanking.com). Callers who redirect the PSU to the url can ignore it. Callers who instead embed Enable Banking's enablebanking-auth-flow widget must pass it in the widget's required origin attribute, and should read it from each response rather than hardcoding it, since the auth host is changing.

posthttps://api.roaring.io/global/bank-account-data/1.0/auth/url

Parameters query

bankName

required

string
Bank name
countryCode

required

string
banks country
redirectUrl

required

string
Url which user will be redirected after successful authorization
language
string
Two-letter lowercase language code in ISO 639-1 format. If omitted, defaults to the banks country language
psuType
string
Optional PSU type (e.g. business or personal)
validityDays
string
Optional desired AIS session validity, in days from now. Defaults to 180 days.Automatically capped to the bank's maximum supported consent validity and to the 180-day PSD2 regulatory ceiling. Must be a positive integer. The resolved expiry is returned as access.valid_until by 'Gets auth session'.
Request body schemaapplication/json
Open banking credentials request
authOption
stringAuthentication option name
cardNumber
string
companyId
string
currencyCode
string
email
string
iban
string
password
string
personalCode
string
phoneNumber
string
type
stringBank account type
userId
string

Gets auth url (path)

Deprecated, use 'Gets auth url' with query params instead. The optional 'validityDays' query parameter controls how long the AIS session (consent) stays valid; see the non-deprecated 'Gets auth url' endpoint for details. The response also carries the 'origin' of the returned url, needed by callers embedding Enable Banking's auth widget.

posthttps://api.roaring.io/global/bank-account-data/1.0/auth/url/{country}/{bankName}

Parameters path

bankName

required

string
Bank name
country

required

string
banks country

Parameters query

redirectUrl

required

string
Url which user will be redirected after successful authorization
language
string
Two-letter lowercase language code in ISO 639-1 format. If omitted, defaults to the banks country language
psuType
string
Optional PSU type (e.g. business or personal)
validityDays
string
Optional desired AIS session validity, in days from now. Defaults to 180 days.Automatically capped to the bank's maximum supported consent validity and to the 180-day PSD2 regulatory ceiling. Must be a positive integer. The resolved expiry is returned as access.valid_until by 'Gets auth session'.
Request body schemaapplication/json
Open banking credentials request
authOption
stringAuthentication option name
cardNumber
string
companyId
string
currencyCode
string
email
string
iban
string
password
string
personalCode
string
phoneNumber
string
type
stringBank account type
userId
string

Fetch a list of available banks

Each bank record includes maxValidityDays — the maximum AIS session (consent) validity the bank supports, in days. Use it to decide the validityDays to pass to 'Gets auth url' (requests above a bank's maximum are capped).

gethttps://api.roaring.io/global/bank-account-data/1.0/banks/{psuType}

Parameters path

psuType

required

string
psu type

Parameters query

countryCode
string
Country connected to bank

Deletes session

deletehttps://api.roaring.io/global/bank-account-data/1.0/session/{sessionId}

Parameters path

sessionId

required

string
Session id