Transactions
To access transactions, use the Transactions API endpoint. The transactions are sent through a collection of transactions within a data array and a nextPageToken. The last page returns a null value for nextPageToken.
Transaction history
After a user provides consent to a bank, transactions are fetched from the bank to EnableNow with a maximum of 18 months of transaction history.
Structure
{
"data": [
{
"id": "aeeffb5c-4800-5f6f-8797-7f488351553d",
"accountNumber": "NL12ABNA9999876523",
"accountId": "faa409f9-ff20-4462-4729-08dbfaecde2e",
"description": "Description",
"bookDate": "2021-12-23",
"transactionDateTime": "2021-12-23T21:40:38.26Z",
"amount": 229.6,
"balanceAfterTransaction": 1229.82,
"currency": "EUR",
"counterpartDescription": "ACME Inc.",
"counterpartAccountNumber": "NL28ABNA9998422205",
"providerProperties": {
"providerKey": "ABNANL2A",
"transactionId": "GT020008680598410AO",
"transactionType": "658",
"transactionTypeName": null,
"reasonCode": null,
"purposeCode": null,
"balanceAfterTransaction": 1229.82
},
"category": {
"l0Name": "Retail",
"l1Name": "Inflows",
"l2Name": "Income",
"l3Name": "Fixed income",
"code": "R010101"
}
},
{
"id": "d8906f3a-5128-54cf-840f-1a82c5562b73",
"accountNumber": "NL12ABNA9999876523",
"accountId": "faa409f9-ff20-4462-4729-08dbfaecde2e",
"description": "Description",
"bookDate": "2021-12-23",
"transactionDateTime": "2021-12-23T21:40:38.31Z",
"amount": -181.5,
"balanceAfterTransaction": 1000.22,
"currency": "EUR",
"counterpartDescription": "ACME Inc.",
"counterpartAccountNumber": "NL04INGB9999552978",
"providerProperties": {
"providerKey": "ABNANL2A",
"transactionId": "9855P5427870677S0AQ",
"transactionType": "654",
"transactionTypeName": null,
"reasonCode": null,
"purposeCode": null,
"balanceAfterTransaction": 1000.22
},
"category": {
"l0Name": "Retail",
"l1Name": "Inflows",
"l2Name": "Income",
"l3Name": "Variable income",
"code": "R010102"
}
}
],
"nextPageToken": "wjUIWnL2qgXbmjdq"
}
Inside the data collection, the transaction object consists of the following properties:
Property | Type | Availability | Description |
---|---|---|---|
id | UUID (v5) | Required | Unique ID for this transaction. |
accountNumber | string | Optional | Account IBAN number for this transaction in uppercase. Can be null for accounts which have no IBAN number (i.e. savings accounts) |
accountId | string | Required | Unique EnableNow account ID for this account |
description | string | Required | The description of the transaction |
bookDate | string (YYYY-MM-DD) | Required | The booking date of the transaction |
transactionDateTime | string | Required | DateTime of the transaction in UTC time, note, that some banks only provide the date, not the time |
amount | decimal | Required | The amount of this transaction, this value is negative for debit transactions |
balanceAfterTransaction | decimal | Optional | When balance data is provided by the provider, this is the calculated balance after this transaction. This value is negative for negative balances |
currency | string | Required | ISO 3 letter currency value in uppercase |
counterpartDescription | string | Optional | Description of the counterpart party |
counterpartAccountNumber | string | Optional | Account IBAN number of the counterpart party In uppercase |
The Category object is only returned when you are using the Categorization features and a Categorization Job
has run for the selected transactions.
For more information about the structure of the Category object, refer to the Categorization documentation.
Provider Properties
Provider properties is an object with properties that contain specific (meta)data related to the transaction. Not all banks provide all details.
The structure and content of the provider properties object are subject to change. Banks may alter the way they provide additional metadata about transactions, which can affect the properties available within this object. It's important to note that these properties can be modified or new ones can be added without any changes to our API. This means integrations using provider properties should be designed with flexibility and resilience in mind to handle potential modifications seamlessly.
Property | Type | Availability | Description |
---|---|---|---|
providerKey | string | Required | The bank identifier |
transactionId | string | Optional | Unique ID from the bank for this transaction |
transactionType | string | Optional | The bank specific mutation of type code of this transaction |
transactionTypeName | string | Optional | The bank specific mutation of type name of this transaction |
reasonCode | string | Optional | The bank specific reason code of this transaction. Reason codes are used to provide details about errors regarding direct debits. |
purposeCode | string | Optional | The bank specific purpose code of this transaction. Purpose codes allows a user to classify payments, informing the bank the purpose for the credit transfer, for example Salary, Savings, Rent, etc. |
balanceAfterTransaction | decimal | Optional | The account balance after the transaction |
remittanceInfo | string | Optional | Structured remittance information refers to a set of predefined and standardized data fields included in a payment message, used to provide specific details about the transaction, such as invoice numbers, payment references, or other identifiers. |
remittanceInfoType | string | Optional | The type of the structured remittance information (example: SCOR) |
remittanceInfoIssuer | string | Optional | The identification of the issuer of the reference document type (example: ISO) |
Fields per provider
The currently available fields and mapping from the raw PSD2 output is specified per provider:
Bank / Provider | Transaction Type | Transction Type Name | ReasonCode | PurposeCode | remittanceInfo | remittanceInfoType | remittanceInfoIssuer |
---|---|---|---|---|---|---|---|
EnableNow Sandbox Bank | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
ABN AMRO | MutationCode | Not available | Not available | Not available | Not available | Not available | Not available |
Rabobank | RaboDetailedTransactionType | RaboTransactionTypeName | ReasonCode | PurposeCode | remittanceInformationStructured | Not available | Not available |
ING | Not available | TransactionType | Not available | Not available | remittanceInformationStructured.reference | remittanceInformationStructured.referenceType | remittanceInformationStructured.referenceIssuer |
Knab | Not available | ProprietaryBankTransactionCode | Not available | Not available | remittanceInformationStructured | Not available | Not available |
SNS Bank | Not available | ProprietaryBankTransactionCode | ReturnInformationCode | PurposeCode | remittanceInformationStructured.reference | Not available | remittanceInformationStructured.referenceIssuer |
ASN Bank | Not available | ProprietaryBankTransactionCode | ReturnInformationCode | PurposeCode | remittanceInformationStructured.reference | Not available | remittanceInformationStructured.referenceIssuer |
RegioBank | Not available | ProprietaryBankTransactionCode | ReturnInformationCode | PurposeCode | remittanceInformationStructured.reference | Not available | remittanceInformationStructured.referenceIssuer |
Bunq | SubType | Type | Not available | Not available | Not available | Not available | Not available |
Van Lanschot | Not available | ProprietaryBankTransactionCode | Not available | Not available | Not available | Not available | Not available |
Triodos | Not available | ProprietaryBankTransactionCode | Not available | Not available | Not available | Not available | Not available |
Revolut | ProprietaryBankTransactionCode.Code | Not available | Not available | Not available | Not available | Not available | Not available |