API Reference

Account Notification Service

Account Notification Service sends you instant notifications when changes occur on your payment account, you can also set up triggers for specific credit or debit entries. This enables you to enhance your business by gaining instant insight into the account, and making better decisions through relevant and personalized notifications.

👍

To get additional transaction details, you can choose to integrate with Business Account Insight.

This API helps your business process by providing you notifications directly in your ERP or TMS software. No wait or polling required.

To know more read the manual that connects to your use case:

Relevant scope(s) for oauth2 access code flow

Scope nameDescription
ans.subscription.read-writeAllow read and write for account notifications service subscriptions
bai.accountinformation.readAllow 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.

OperationTypeLimit (API calls / s)Counts towards shared limit
GET /transactions/{notificationId}Individual10No
GET /subscriptionsShared6Yes
POST /subscriptionsShared6Yes
GET /subscriptions/{subscriptionId}Shared6Yes
PUT /subscriptions/{subscriptionId}Shared6Yes
DELETE /subscriptions/{subscriptionId}Shared6Yes
All (premium) Oauth callsShared6Yes

Subscriptions

Request for subscriptions

Integrate with the subscription management endpoints so that you can retrieve, create, or update subscriptions

  • To create a subscription, go to POST /subscriptions
  • To update a subscription, go to PUT /subscriptions/{subscriptionId}
  • To delete a subscription, go to DELETE /subscriptions/{subscriptionId}

To set up triggers for specific events using the Account Notification Service (ANS) API, subscribe to events for receiving instant notifications. You can customize these triggers based on a set of rules such as range of amount, credit/debit, or a transaction attribute.

The POST/GET/PUT/DELETE subscriptions 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.

{
  "account": {
    "accountNumber": "NL52RABO0125618484",
    "currencyCode": "EUR"
  },
  "transactionCriteria": [
    {
      "amount": {
        "minTransactionAmount": 100,
        "maxTransactionAmount": 500
      },
      "remittanceInformationUnstructured": "Invoice*"
    }
  ],
  "endDate": "2024-12-01T14:07:56.302663",
  "pushUri": "https://tpp.com/notify"
}

In the above example an amount range and transactionId description is used with a wildcard.

📘

A wildcard (*) is a character that can be used as a substitute for any of a defined subset of characters. In the context of the API ANS, a wildcard can be used to represent one or more characters when setting up triggers for specific entries. For example, you can use a wildcard to represent any transaction subscription name that starts with a specific letter or sequence of letters, this allows you to create more flexible and powerful triggers for receiving instant notifications.

Receive instant notification

When a subscribed event is triggered, you should instantly receive a notification using the location as specified in pushUri field.

❗️

Acknowledge notifications immediately upon receipt. This prevents delays and unnecessary retries. To ensure timely responses, a shorter timeout setting will be introduced soon.

Retry mechanism

To ensure optimal service, it is crucial to maintain high availability due to the fast exchange of data. Therefore, measures must be taken to ensure the pushURI is accessible when a notification is sent. In case, we are unable to deliver the notification to the pushURI, we attempt retry up to three times:

  • First retry: after 2 minutes
  • Second retry: after 13 minutes
  • Third and final retry: after 29 minutes
{
  "subscriptionId": "123-2233-4567-3333",
  "timestamp": "2024-02-27T11:10:00",
  "notificationType": "TRANSACTION",
  "notificationId": "faDSUaiUTdjlI2rGEsjM3R9tb9V584bD5YLZyz6cB2uWVT__2DyDVGl4jqM2Zao60nesScBihGjMzHOSsJmQvw-uI4MHhalaUbU0.9"
}

Get transaction details

You can use the notificationId as received in the notification message to retrieve the transaction details.

📘

For each transaction that matches the notification subscription, a notification with corresponding notificationId is sent to the pushUri.

Account present in the Sandbox environment:

IBAN
NL52RABO0125618484

Transactions

Receive instant notification

When a subscribed event is triggered, you instantly receive a notification using the location as specified in pushUri field.

{
  "subscriptionId": "59bca412-6d40-469f-9b39-59f4617e95dd",
  "timestamp": "2024-02-27T11:10:00",
  "notificationType": "TRANSACTION",
  "notificationId": "URTr9CEFoW1oopHI780kuX0gz59mW9WEbz56RhiwHoK-qdzBCUIg4v_Sbng33Xg3KdyCMwGbOb8P_Mh1BKQ-cTXa2phM5WNXWvY2.9"
}

Get transaction details

For each transaction that matches the notification subscription, a notification with corresponding notificationId is sent to the pushUri.

After receiving the request, a response containing the transaction details is sent.

Request

Make a GET transactions call to retrieve the transaction details belonging to a notificationId.

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.

To retrieve transaction details of a specific notification using a GET transactions/{notificationId} request, you use the notificationId in the URL:

GET https://api.rabobank.nl/openapi/payments/insight/transactions/URTr9CEFoW1oopHI780kuX0gz59mW9WEbz56RhiwHoK-qdzBCUIg4v_Sbng33Xg3KdyCMwGbOb8P_Mh1BKQ-cTXa2phM5WNXWvY2.9

Response

To retrieve the transaction details connected to a notification use a GET transactions request.

{
  "account": {
    "currency": "EUR",
    "iban": "NL52RABO0125618484"
  },
  "transactions": {
    "booked": {
      "bookingDate": "2020-01-01",
      "creditorAccount": {
        "currency": "EUR",
        "iban": "NL52RABO0125618484"
      },
      "creditorAgent": "RABONL2U",
      "debtorAccount": {
        "iban": "NL02RABO0368909954"
      },
      "debtorName": "My Company",
      "entryReference": "1",
      "initiatingPartyName": "Paper Boy",
      "raboBookingDateTime": "2020-01-01T14:21Z",
      "raboDetailedTransactionType": "133",
      "raboTransactionTypeName": "sp",
      "remittanceInformationUnstructured": "Betaling\nCadeau\nverjaardag",
      "transactionAmount": {
        "value": "109.0",
        "currency": "EUR"
      },
      "ultimateCreditor": "Ultimate One",
      "ultimateDebtor": "Ultimate Deb",
      "valueDate": "2020-01-01",
      "balanceAfterBooking": {
        "balanceType": "InterimBooked",
        "balanceAmount": {
          "value": "109.0",
          "currency": "EUR"
        }
      }
    }
  }
}

To view the GET parameters, read the endpoint description for GET /transactions.