Business Account Insight is a part of Rabo BoekhoudKoppeling and Rabo Banking Link. This API supports all third parties and direct customers.
To receive real-time updates regarding changes to your account, you can integrate with the Account Notification Services.
This API allows you or your clients (with Rabobank business payment and savings accounts) to receive account information, such as actual balances and transaction details through your application using Rabobank.
Using BAI, you can optimize the customer journey in your web service.
To know more read the manual that connects to your use case:
Relevant scope(s) for oauth2 access code flow
Scope name | Description |
---|---|
bai.accountinformation.read | Allow read from Business Account Insight services |
Make sure that you use the Authorization and Token URL as provided by the Authorization Services.
Rate Limiting
A default rate limit plan is set for all APIs. The rate limit can be shared or individual (defined per operation). The table below describes the rate limiting for this product.
Operation | Type | Limit (API calls / s) | Counts towards shared limit |
---|---|---|---|
GET /accounts | Shared | 20 | Yes |
GET /accounts/{account-id} | Shared | 20 | Yes |
GET /accounts/{account-id}/balances | Shared | 20 | Yes |
GET /accounts/{account-id}/transactions | Shared | 20 | Yes |
All (premium) Oauth calls | Shared | 20 | Yes |
Accounts API
Requests
The GET accounts requests must contain a digital signature. You can generate this digital signature using the private key of your certificate. For the Sandbox environment, you can use an example certificate available in the Signing documentation.
To retrieve the list of connected accounts you can GET /accounts
. To retrieve account details of a specific account using a GET /accounts/{account-id}
request you use the account-id in the URL:
GET https://api-sandbox.rabobank.nl/openapi/sandbox/payments/insight/accounts/Wp-xhZMGEWRIIgVjPwTC1aKJJ0VCRZ_4bScUVXof7e0
To view full list of GET parameters, go to:
GET /accounts
GET /accounts/{account-id}
Response
You can retrieve the connected accounts for account insight using a GET /accounts
request.
To view the GET parameters, read the endpoint description for GET /accounts
.
To view the expected errors, go to Errors BAI.
{
"accounts": [
{
"_links": {
"account": "/accounts/Wp-xhZMGEWRIIgVjPwTC1aKJJ0VCRZ_4bScUVXof7e0",
"balances": "/accounts/Wp-xhZMGEWRIIgVjPwTC1aKJJ0VCRZ_4bScUVXof7e0/balances",
"transactions": "/accounts/Wp-xhZMGEWRIIgVjPwTC1aKJJ0VCRZ_4bScUVXof7e0/transactions"
},
"currency": "EUR",
"iban": "NL52RABO0125618484",
"name": "Some alias 1",
"ownerName": "Some company 1",
"resourceId": "Wp-xhZMGEWRIIgVjPwTC1aKJJ0VCRZ_4bScUVXof7e0",
"status": "enabled"
},
{
"_links": {
"account": "/accounts/hBS4MQ0Oc4LLJRiUiE_R94_-zoU4B2vwnPkXmsGh_bA",
"balances": "/accounts/hBS4MQ0Oc4LLJRiUiE_R94_-zoU4B2vwnPkXmsGh_bA/balances",
"transactions": "/accounts/hBS4MQ0Oc4LLJRiUiE_R94_-zoU4B2vwnPkXmsGh_bA/transactions"
},
"currency": "EUR",
"iban": "NL80RABO1127000002",
"name": "Some alias 2",
"ownerName": "Some company 2",
"resourceId": "hBS4MQ0Oc4LLJRiUiE_R94_-zoU4B2vwnPkXmsGh_bA",
"status": "enabled"
}
]
}
To view the GET parameters, read the endpoint description for GET/accounts/{account-id}
.
{
"_links": {
"account": "/accounts/Wp-xhZMGEWRIIgVjPwTC1aKJJ0VCRZ_4bScUVXof7e0",
"balances": "/accounts/Wp-xhZMGEWRIIgVjPwTC1aKJJ0VCRZ_4bScUVXof7e0/balances",
"transactions": "/accounts/Wp-xhZMGEWRIIgVjPwTC1aKJJ0VCRZ_4bScUVXof7e0/transactions"
},
"currency": "EUR",
"iban": "NL52RABO0125618484",
"name": "Some alias 1",
"ownerName": "Some company 1",
"resourceId": "Wp-xhZMGEWRIIgVjPwTC1aKJJ0VCRZ_4bScUVXof7e0",
"status": "enabled"
}
Account-id's present in the Sandbox environment:
IBAN | account-id |
---|---|
NL52RABO0125618484 | Wp-xhZMGEWRIIgVjPwTC1aKJJ0VCRZ_4bScUVXof7e0 |
NL80RABO1127000002 | hBS4MQ0Oc4LLJRiUiE_R94_-zoU4B2vwnPkXmsGh_bA |
Balances API
Requests
The GET balances requests must contain a digital signature. You can generate this digital signature using the private key of your certificate. For the Sandbox environment, you can use an example certificate available in the Signing documentation.
You can retrieve the balance of a specific account using a GET accounts/{account-id}/balances
request using the account-id(s)
in the URL:
GET https://api-sandbox.rabobank.nl/openapi/sandbox/payments/insight/accounts/Wp-xhZMGEWRIIgVjPwTC1aKJJ0VCRZ_4bScUVXof7e0/balances
This returns the current expected and interimBooked balance, also the closingBooked balance from the day before.
Historical EODB balances of a specific account
To retrieve historical End Of Day Balance balances of a specific account, use closingBookedReferenceDate
in the query param, as below:
GET https://api-sandbox.rabobank.nl/openapi/sandbox/payments/insight/accounts/Wp-xhZMGEWRIIgVjPwTC1aKJJ0VCRZ_4bScUVXof7e0/balances?closingBookedReferenceDate=2024-10-30
closingBookedReferenceDate
must contain a date in the past up to 15 months.
This returns the requested closingBooked
balance with the ReferenceDate
, along with the current expected and interimBooked balance.
To view full list of GET parameters, go to:
GET /accounts/{account-id}/balances
Response
To view the GET parameters, read the endpoint description for GET /accounts/{account-id}/balances
.
The
closingBooked
balance is calculated in the first hour after midnight. During the calculation, theclosingBooked
balance is not available and only theexpected
balance is returned.
The interim booked balance is not available for savings accounts.
To view the expected errors, go to Errors BAI.
{
"account": {
"currency": "EUR",
"iban": "NL52RABO0125618484"
},
"balances": [
{
"balanceAmount": {
"amount": "10",
"currency": "EUR"
},
"balanceType": "expected",
"lastChangeDateTime": "2023-02-01T14:07:17.000Z"
},
{
"balanceAmount": {
"amount": "30",
"currency": "EUR"
},
"balanceType": "closingBooked",
"referenceDate": "2023-01-31"
}
],
"piggyBanks": [
{
"piggyBankName": "Car",
"piggyBankBalance": "1200.00"
},
{
"piggyBankName": "Vacation",
"piggyBankBalance": "800.00"
}
]
}
To access piggy bank information, users must provide separate consent. When consent is given all existing savings piggy banks are returned in the response.
If there are no piggy banks related to the account, only the account balances are provided.
Account-id's present in the Sandbox environment:
IBAN | account-id |
---|---|
NL52RABO0125618484 | Wp-xhZMGEWRIIgVjPwTC1aKJJ0VCRZ_4bScUVXof7e0 |
NL80RABO1127000002 | hBS4MQ0Oc4LLJRiUiE_R94_-zoU4B2vwnPkXmsGh_bA |
Transactions API
Requests
The GET transactions requests must contain a digital signature. You can generate this digital signature using the private key of your certificate. For the Sandbox environment, you can use an example certificate available in the Signing documentation.
You can retrieve the transactions of a specific account using a GET accounts/{account-id}/transactions
request using the account-id(s)
in the URL:
GET <https://api-sandbox.rabobank.nl/openapi/sandbox/payments/insight/accounts/Wp-xhZMGEWRIIgVjPwTC1aKJJ0VCRZ_4bScUVXof7e0/transactions?bookingStatus=Booked&dateFrom=2020-07-18T02:41:10.529Z&dateTo=2021-10-19T02:41:10.529Z&size=10>
DateTo - parameter
End Booking DateTime should be in UTC format.
We recommend filling the dateTo value five minutes prior to the current date and time, because it takes some time for the transactions to be available in the system.
To view full list of GET parameters, go to:
GET/accounts/{account-id}/transactions
Response
To view the GET parameters, read the endpoint description for GET/accounts/{account-id}/transactions
.
To view the expected errors, go to Errors BAI.
{
"account": {
"currency": "EUR",
"iban": "NL52RABO0125618484"
},
"transactions": {
"_links": {
"account": "/accounts/Wp-xhZMGEWRIIgVjPwTC1aKJJ0VCRZ_4bScUVXof7e0",
"next": "/accounts/Wp-xhZMGEWRIIgVjPwTC1aKJJ0VCRZ_4bScUVXof7e0/transactions?bookingStatus=booked&dateFrom=2020-07-18T02:41:10.529Z&dateTo=2021-10-19T02:41:10.529Z&size=500&nextPageToken=ckP10o26_WXzc1YYMecNZvc71b1BIPVXKT8UhG4GMDShKA4i-hGdLJ2xTgZAnHUa"
},
"booked": [
{
"bookingDate": "2021-10-18",
"creditorAccount": {
"currency": "EUR",
"iban": "NL52RABO0125618484"
},
"debtorAccount": {
"iban": "NL62RABO0838250920"
},
"debtorName": "Business ST A",
"entryReference": "13140",
"initiatingPartyName": "TRX ST",
"raboBookingDateTime": "2021-10-18T14:21Z",
"raboDetailedTransactionType": "633",
"raboTransactionTypeName": "st",
"reasonCode": "AG01",
"remittanceInformationUnstructured": "Description ST 1",
"transactionAmount": {
"value": "6000.0",
"currency": "EUR"
},
"valueDate": "2021-10-18",
"balanceAfterBooking": {
"balanceType": "InterimBooked",
"balanceAmount": {
"value": "6082.17",
"currency": "EUR"
}
}
}
]
}
}
Account-id's present in the Sandbox environment:
IBAN | account-id |
---|---|
NL52RABO0125618484 | Wp-xhZMGEWRIIgVjPwTC1aKJJ0VCRZ_4bScUVXof7e0 |
NL80RABO1127000002 | hBS4MQ0Oc4LLJRiUiE_R94_-zoU4B2vwnPkXmsGh_bA |
Scenario's for testing together with the Batch Transaction Details API present in the Sandbox environment:
IBAN | account-id | dateFrom | dateTo | batchEntryReference | NoOfTransactions |
---|---|---|---|---|---|
NL52RABO0125618484 | Wp-xhZMGEWRIIgVjPwTC1aKJJ0VCRZ_4bScUVXof7e0 | 2025-07-01T00:00:00Z | 2025-07-31T23:59:59Z | OM1B000000645366 | 250 |
NL80RABO1127000002 | hBS4MQ0Oc4LLJRiUiE_R94_-zoU4B2vwnPkXmsGh_bA | 2025-07-01T00:00:00Z | 2025-07-31T23:59:59Z | OM1B000000645365 | 1500 |
NL80RABO1127000002 | hBS4MQ0Oc4LLJRiUiE_R94_-zoU4B2vwnPkXmsGh_bA | 2024-10-01T00:00:00Z | 2024-10-30T23:59:59Z | OM1B000000645364 | 550 |