Account details, including balances, for a specified account.


The principles are defined in Principles for delivery of information via DSOP Control information common standard.

Input parameters

Values set by data consumer.

It is the data providers responsibility to validate all requests from the data consumers and to make sure that all requests are validated well enough. See some recommendations regarding validation of requests in Control API.

Parameter Description  
accountReference (M) A unique reference to the account, but should not be the account number and not simply decoded to an account number. -
AccountInfoRequestID (M) Consumers case reference id/number Link to Overall description of the DSOP Control API
CorrelationID (M) Unique identifier for the technical request Link to Overall description of the DSOP Control API
Legal-Mandate* (M) Legal basis the data providers should validate. Formatted encoded text. See the specific DSOP Service documentation for the valid legal mandates
AdditionalReferenceID* (O) Reference ID when Legal-Mandate is not adequate alone. Should be validated according to the Legal-Mandate. Formatted encoded text. Required for some DSOP Services. More information in More information in Overall description of the DSOP Control API
AdditionalReferenceIDType* (O) What type of reference to expect in AdditionalReferenceID Required for some DSOP Services. More information in More information in Overall description of the DSOP Control API
RequesterID (O) RequesterID identifies the user who makes the request at the public agency. The public agencies are free to pseudonymise RequesterID so that the financial institutions cannot link this ID to the agency’s user or natural person. In turn, the public agency must be able to link RequesterID to a user in the public agency. It is important that RequesterID remains constant per user and is not reused for new users. Even though this parameter is technically optional, it could become logically mandatory for a given DSOP service.
fromDate (M) Date (included) from which the time period for the data delivery starts. -
toDate (M) Date (included) from which the time period for the data delivery ends. The amount on balance will be the one of toDate if financial institutions are able to provide historical balances. If not the consumer should use today’s date for ‘toDate’. -

*It is recommended to validate AdditionalReferenceID and AdditionalReferenceIDType according to the legal-mandate.

Responses

Values in response from the data providers.

All fields are to be provided as long as the data provider holds the data, regardless of whether the fields are marked as mandatory or not. This is according to the legal basis.

Value Level 1 Level 2 Level 3
responseDetails (D)      
  responseDetails.status (D)    
  responseDetails.message (D)    
account (D)      
  account.status (D)    
  account.servicer (D)    
    account.servicer.identifier (MC)  
      account.servicer.identifier.countryOfResidence (D)
      account.servicer.identifier.value (MC)
      account.servicer.identifier.type (MC)
    account.servicer.name (D)  
  account.accountIdentifier (MC)    
  account.accountReference (MC)    
  account.type (D)    
  account.currency (D)    
  account.name (D)    
  account.balances (D)    
    account.balances.creditLineIncluded (D)  
    account.balances.amount (D)  
    account.balances.creditDebitIndicator (D)  
    account.balances.registered (D)  
    account.balances.type (D)  
    account.balances.creditLineAmount (D)  
    account.balances.creditLineCurrency (D)  
    account.balances.currency (D)  
  account.primaryOwner (D)    
    account.primaryOwner.permission (D)  
    account.primaryOwner.identifier (D)  
      account.primaryOwner.identifier.countryOfResidence (D)
      account.primaryOwner.identifier.value (MC)
      account.primaryOwner.identifier.type (MC)
    account.primaryOwner.name (D)  
    account.primaryOwner.startDate (D)  
    account.primaryOwner.endDate (D)  
  account.startDate (D)    
  account.endDate (D)    

Description of all response elements in the API

responseDetails

Deliver
Status that informs the data consumer of the degree of completeness of the response from the data provider.

responseDetails.status

Deliver

Indicates whether the data delivery is a complete answer, or whether there is data offline the data provider is aware of that cannot be retrieved through the API.

  • partial: If there is any data the data provider is aware of that can be retrieved manually and is not part of the API response, or if the provider wishes to be contacted via another channel by the consumer.
  • complete: If there is no more available data the data provider is aware of that can be retrieved manually. All known data has been returned in the response.

responseDetails.status is not to be used as an indicator for paginating.

[partial, complete]

responseDetails.message

Deliver

In case of responseDetails.status = partial, responseDetails.message must be used and will indicate the reason why not all data has been delivered through the API in order to inform the data consumers about the situation, and enable them to decide if it is necessary to send a digital letter to the Data provider or not. A description of the different messages to return is available in the document DSOP Control - Functional specification - Messages in relation with partial.pdf.

account

Deliver

account.status

Deliver

Indicates the current status of an account/agreement on the request date

  • enabled: Any status of the account where a party can currently use the balance.
  • disabled: Any status of an account where no party can use the account, either temporarily or permanently. The account balance and properties are still available for viewing and listing. Accounts blocked due to bankruptcy shall return the value disabled.
  • deleted: Any status of an account where the account, balance and properties are no longer available at all.
[enabled, disabled, deleted]

account.servicer

Deliver

Financial institution that is servicing the account/agreement.

account.servicer.identifier

Mandatory conditional
Financial institution that is servicing the account/agreement.

account.servicer.identifier.countryOfResidence

Deliver

countryCode. The country the financial institution belongs to. From ISO 3166-1/Alpha-2 code.

account.servicer.identifier.value

Mandatory conditional

Organization number of the financial institution servicing the account.

account.servicer.identifier.type

Mandatory conditional

  • countryIdentificationCode: The national registration code for businesses, enterprise, organizations and companies that is retrieved from the National register for organizations. In Norway this would be from BRREG.
  • nationalIdentityNumber: Used for persons. The national identity code for persons. In Norway this would be P or D numbers from FREG.
[countryIdentificationCode, nationalIdentityNumber]

account.servicer.name

Deliver

Financial institution that is servicing the account/agreement.

account.accountIdentifier

Mandatory conditional

Account number (or agreement number). For accounts it is generally 11 characters long but the value can be shorter or longer for some specific products such as credit cards, leasing agreements, other. This value is what the data consumer will use as a reference when contacting the financial institution via alternate channels to request more information, if necessary.

account.accountReference

Mandatory conditional

A unique reference to the account/agreement that will be used in the path to the other endpoints of the API. This reference should not be the real account number and should not be simply decoded to an account number. The financial institutions are free to put more information in this reference in order to get necessary context to be used by the other endpoints.

account.type

Deliver

All accounts/agreements for a bank must be mapped into one of the account types that are stated in this list below:

  1. loanAccount: Account for funds borrowed by a financial institution to the party.
  2. salaryAccount: Account for funds used on an ongoing basis by a person.
  3. currencyAccount: Account for settlements and transactions in a fixed foreign currency.
  4. savingsAccount: Account for funds used for savings.
  5. clientAccount: Account for client funds (keeping clients funds separate from those of the business).
  6. taxDeductionAccount: Account for funds used to pay advance tax for employees.
  7. businessAccount: Account for funds that are used on an ongoing basis by a company / business.
  8. creditCardAccount: Account/agreements for funds used by credit cards.
  9. leasingAccount: Account for leasing agreements.
  10. prepaidCardAccount: Account for funds used by a prepaid card.
  11. accountWithoutBalance: Account types without balance (no activa). This type has to be used if the Financial Institution returns such accounts. For example, some banks may return CashPool subaccounts or depot accounts with this type, as well as some others. This will typically differ from banks to banks.
  12. otherAccount: other type of account that cannot be grouped into the other eleven categories or unknown type of account.

Note: It is expected all the accounts/agreements that are or have been serviced by the financial institution are must be grouped into the twelve valid values listed above.

[loanAccount, salaryAccount, currencyAccount, savingsAccount, clientAccount, taxDeductionAccount, businessAccount, creditCardAccount, leasingAccount, prepaidCardAccount, accountWithoutBalance, otherAccount]

account.currency

Deliver

CurrencyCode of the account/agreement, ISO Standard 4217.

account.name

Will not be delivered

This field will not be delivered and will be deleted from the datamodell in the next major version of the API.

account.balances

Deliver

Balance on the account, both booked and available. This applies for both current and historical balance. Data providers must assess if only booked balance is to be returned for historical balance, especially in cases where the available balance is not relevant or meaningful.

account.balances.creditLineIncluded

Deliver

This indicates whether credit limit is included in balance or not. If true, the value in creditLineAmount should be used to calculate the balance.

[true, false]

account.balances.amount

Deliver

The amount of the balance. This value is always positive. Use account.balances.creditDebitIndicator to indicate if the amount is positive (credit) or negative (debit).

account.balances.creditDebitIndicator

Deliver

Indicates whether balance is positive or negative. Credit is positive and debit is negative.

[credit, debit]

account.balances.registered

Deliver

Date and time of amount returned in the balance ISO Date: YYYY-MM-DDThh:mm:ssZ for UTC or YYYY-MM-DDThh:mm:ss+hh for other timezones. Registered response may differ between booked and available balance For example +02 for CEST. 2020-05-07T12:00:00Z = 2020-05-07T14:00:00+02

account.balances.type

Deliver

Available balance and booked balance. For request on today’s date, available balance per request date must be provided, as well as booked balance. For a specified period, the booked balance for stated “toDate” must be delivered.

[availableBalance, bookedBalance]

account.balances.creditLineAmount

Deliver

Amount of credit line. Credit line amount to be included in order to calculate the actual balance. To be used if creditLineIncluded = true.

account.balances.creditLineCurrency

Deliver

CurrencyCode. Currency of the credit line in ISO Standard.

account.balances.currency

Deliver

CurrencyCode for the balance amount. ISO Standard.

account.primaryOwner

Deliver

Party (person or organization) who owns or owned the account/agreement during the requested time period.

account.primaryOwner.permission

Deliver

Specifies the type of role/right the party has for an account/agreement.

  • rightToUseAlone: Can issue transactions changing the balance of the account/agreement on their own.
  • rightToUseWithOther: Can only issue transactions changing the balance of the account/agreement together with other party.
  • rightToSeeOnly: Can only view account/agreement details, but not issue transactions.
[rightToUseAlone, rightToUseWithOther, rightToSeeOnly]

account.primaryOwner.identifier

Deliver
Information about the owner of the account/agreement.

account.primaryOwner.identifier.countryOfResidence

Deliver

CountryCode. The country the person or organization belongs to. In ISO 3166-1/Alpha-2 code format.

account.primaryOwner.identifier.value

Mandatory conditional

Personal identification number, D-number or organization number.

account.primaryOwner.identifier.type

Mandatory conditional
Type of value. Either a national identity number for a person or a business identification number.

[countryIdentificationCode, nationalIdentityNumber]

account.primaryOwner.name

Deliver

Name of the party that owns the account/agreement.

account.primaryOwner.startDate

Deliver

Start date for when the party gained their rights as an owner of the account/agreement regardless of the requested time period. This is the last period to be specified if the account/agreement is closed and re-opened. May be null if the data provider does not have a date. ISODate (yyyy-mm-dd).

account.primaryOwner.endDate

Deliver

End date for when the party lost their rights as an owner of the account/agreement regardless of the requested time period. This is the last period to be specified if the account/agreement is closed and re-opened. Null if the party is currently still the owner of the account/agreement. ISODate (yyyy-mm-dd).

account.startDate

Deliver

Date when account was created regardless of the requested time period. If a data provider has more than one startDate and/or endDate for an account/agreement (it has been closed and reopened or recycled) where current parties had or have a role on the account, the latest dates shall be reported. The endDate shall always come after (be newer than) the startDate. If the account is currently open, no endDate shall be given.

account.endDate

Deliver

Date when account was closed regardless of the requested time period. If a data provider has more than one startDate and/or endDate for an account/agreement (it has been closed and reopened or recycled) where current parties had or have a role on the account, the latest dates shall be reported. The endDate shall always come after (be newer than) the startDate. If the account/agreement is currently open/active, Null shall be returned.

Change log

Date Change
16.01.26 Improved specification language for multiple data fields to ensure better interpretability. No behaviour or interface changes. Refer to the linked PDF for details.
06.06.25 Making the description of account.balances more precise.
21.05.25 Change in description of account.balances.creditLineIncluded.
From: Credit limit should not be included in balance, so this field should always be false.
To: If true, the value in creditLineAmount should be used to calculate the balance.
20.03.24 New version of the DSOP Control API generating extensive changes throughout all documentation.
03.05.23 Added data model for V.1.2, includes responseDetails