Data structures
The following data structures are used within EnableNow.
Customer
A business customer of EnableNow. A customer is able to use the API's and systems provider by EnableNow.
App
An app is an entity a customer can create. Each app has it's own unique OAuth client ID which links the App to the customer.
User
A user is an end-user who uses the front-end provided by EnableNow for an app of the customer.
A user is linked directly to an app.
A user has an EnableNow ID, but also has a unique external_user_id.
A user can have multiple consents, even from different banks.
When using consent based access, users are not stored in the system.
Consent
A user can provides one or more consents to a bank. A consent is linked to a user and accounts.
A consent is created when a consent endpoint request is made through the AppScreen. This is the start of the consent process.
A consent can contain multiple accounts.
During authentication an access token and refresh token will be requested and stored in the token Key Vault.
A consent has one of the following statuses:
Status | Description |
---|---|
INITIALIZED | The consent has been created but not yet authenticated |
AUTHENTICATING | The consent is in the process of being authenticated |
AUTHENTICATED | The consent is authenticated |
UPDATING | The consent is updating its transactions |
UPDATED | The consent has updated its transactions |
FAILING | Consent has failed to update its transactions |
INVALIDATED | Consent is invalidated, might be expired or replaced by a newer consent |
ERROR | Consent is in error state |
TIMEDOUT | Consent was INITIALIZED but has timed out after period of inactivity |
Failing state
The FAILING state is triggered after a transaction update request fails. After 20 consecutive failures, the consent state is converted to ERROR and the automatic transaction updates will ignore this consent. If a consent succeeds the transaction update when it is in the FAILING state, the counter of consecutive failures will reset to 0.
TimedOut state
The consent will receive the TIMEDOUT state automatically when a consent is created, but the end user does not complete the consent process within 4 hours of its creation.
Account
An account is a bank account from a user. It has it's own unique identifier which links this account to the consent.
The IBAN number is a unique account number in the banking world. However, the same IBAN can be linked multiple times in different Consents, for instance when a 2 users give consent of the same account when using a shared account. Some banks do not use IBAN numbers for some accounts. So a unique EnableNow AccountId is used for managing the ID of the account.
Transaction
A transaction is a bank transaction from an account.
There is one generic transaction model which all bank services should return.
Bank
A bank, also called an ASPSP or a provider. The financial institution to provide the consent and transaction data.
All banks that can be used within EnableNow can be found in the providers page.