Statements v3.1

Statements v3.1

Version Control

Version

Date

Author

Comments

Version

Date

Author

Comments

3.0

Sep 7, 2018 

OB R/W API Team

This is the baseline version. No change from RC3.

3.1-draft1

Sep 11, 2018 

OB R/W API Team

This is the initial draft version for 3.1.

Errata

  • Grammatical Fixes

3.1-draft2

Oct 5, 2018 

OB R/W API Team

Draft2 Changes:

  • Updated example URLs to version 3.1.

3.1-draft3

Oct 18, 2018 

OB R/W API Team

Draft3 Changes:

  • Data Model updated with a typed field for various statement element types to reference in Namespaced Enumerations page.

3.1

Nov 30, 2018

OB R/W API Team

Version 3.1 final release.

No changes from Version 3.1 RC1.

Endpoints

Endpoints for the resource and available methods.

Resource

HTTP Operation

Endpoint

Mandatory?

Scope

Grant Type

Idempotency Key

Parameters

Request Object

Response Object

Resource

HTTP Operation

Endpoint

Mandatory?

Scope

Grant Type

Idempotency Key

Parameters

Request Object

Response Object

1

statements

GET

GET /accounts/{AccountId}/statements

Conditional

accounts

Authorization Code

No

Pagination

Filtering

 

OBReadStatement1

2

statements

GET

GET /accounts/{AccountId}/statements/{StatementId}

Conditional

accounts

Authorization Code

No

Pagination

 

OBReadStatement1

3

statements

GET

GET /accounts/{AccountId}/statements/{StatementId}/file

Optional

accounts

Authorization Code

No

 

 

File

4

transactions

GET

GET /accounts/{AccountId}/statements/{StatementId}/transactions

Conditional

accounts

Authorization Code

No

Pagination

 

OBReadTransaction3

5

statements

GET

GET /statements

Optional

accounts

Authorization Code

No

Pagination

Filtering

 

OBReadStatement1

GET /accounts/{AccountId}/statements

An ASPSP may provide this endpoint for AISPs to retrieve the statements information resource for the AccountId (which is retrieved in the call to GET /accounts).

GET /accounts/{AccountId}/statements/{StatementId}

An ASPSP may provide this endpoint for AISPs to retrieve the statement information resource for a specific statement in the AccountId (which is retrieved in the call to GET /accounts).

GET /accounts/{AccountId}/statements/{StatementId}/file

An ASPSP may provide this endpoint for AISPs to retrieve a non-json representation of a specific statement.

GET /accounts/{AccountId}/statements/{StatementId}/transactions

An ASPSP may provide this endpoint for AISPs to retrieve transactions that appear on the selected statement.

The data model for the returned objects is documented in the transactions resource.

GET /statements

An ASPSP may provide this endpoint for AISPs to retrieve statement information for all accounts that the PSU has consented to. This will retrieve the statement resources for all authorised accounts linked to the account-request.

Data Model

The OBReadStatement1 object will be used for the call to:

  • GET /statements

  • GET /accounts/{AccountId}/statements

  • GET /accounts/{AccountId}/statements/{StatementId}

The call to

  • GET /accounts/{AccountId}/statements/{StatementId}/file

will return unstructured data in binary (e.g., pdf, doc) or text (e.g., csv) formats. This will be specified in the Accept header by the AISP.

The OBReadTransaction3 object (documented in the transactions resource) will be used the call to:

  • GET /accounts/{AccountId}/statements/{StatementId}/transactions

Resource Definition

A resource that describes summary details for an account statement period.

For a specific date range, an account (AccountId) may have no statements, or may have multiple statements.

The /statements endpoint (if implemented by the ASPSP) must return all statements within the requested date range for all accounts selected during the authorisation of the account-request.

If an AISP would like to access a specific statement (StatementId) to retrieve a formal statement download or transactions for a specific statement - the AISP must specify the account (the AccountId) via the URI request path i.e., via:

  • GET /accounts/{AccountId}/statements/{StatementId}/file - to download the statement.

  • GET /accounts/{AccountId}/statements/{StatementId}/transactions - to return the transactions relating to a statement.

UML Diagram

Notes:

  • The statements resource must only be used for data that can be returned for a statement period.

  • StartDateTime, EndDateTime and CreationDateTime are mandatory for the statements resource. If an ASPSP does not display these dates in an online channel, the ASPSP must populate these dates with sensible values. E.g., the StartDateTime could be the day after the previous statement EndDateTime, and the CreationDateTime could be the day after the EndDateTime.

Filtering

Limited support for filtering is provided on the statements resource.

Statements may be filtered based on their StartDateTime and EndDateTime using the fromStatementDateTime and toStatementDateTime parameters.

The ASPSP must treat the following as valid input:

  • non-working days (e.g. a Sunday or a Bank holiday) or any other days on which no transactions are recorded

  • dates that fall outside the range for which transaction information is provided through APIs

  • dates that fall outside the range for which a consent authorisation is available.

In the above situations, the ASPSP must return statements where the StartDateTime and EndDateTime are both between the fromStatementDateTime and toStatementDateTime parameters.

Filtering Examples
// All statements from 1st Jan, 2015 GET /statements?fromStatementDateTime=2015-01-01T00:00:00   // All statements in 2016 GET /statements?fromStatementDateTime=2016-01-01T00:00:00&toStatementDateTime=2016-12-31T23:59:59   // All statements in a specific account up to 31-Mar-2017 GET /accounts/1/statements?toStatementDateTime=2017-03-31T23:59:59

Permission Codes

The resource differs depending on the permissions (ReadStatementsBasic and ReadStatementsDetail) used to access resource (the OBReadStatement1 object). In the event the resource is accessed with both ReadStatementsBasic and ReadStatementsDetail, the most detailed level (ReadStatementsDetail) must be used.

  • These objects must not be returned without the ReadStatementsDetail permission:

  • OBReadStatement1/Data/Statement/StatementAmount

  • Calls to GET /accounts/{AccountId}/statements/{StatementId}/file

  • If the ReadStatementsDetail is granted by the PSU:

    • OBReadStatement1/Data/Statement/StatementAmount may be returned if applicable to the statement and ASPSP (0..n)

For the call to GET /accounts/{AccountId}/statements/{StatementId}/transactions:

  • The ReadTransactionsBasic or ReadTransactionsDetail (in addition to the appropriate ReadTransactionsCredits and/or ReadTransactionsDebits) permission codes will be required. The ASPSP must apply the same access to GET /accounts/{AccountId}/statements/{StatementId}/transactions as GET /accounts/{AccountId}/transactions

  • If the ReadPAN permission is granted by the PSU - the ASPSP may choose to populate the unmasked PAN - if the PAN is being populated in the response for these fields:

    • OBReadTransaction3/Data/Transaction/CreditorAgent/Identification

    • OBReadTransaction3/Data/Transaction/DebtorAccount/Identification

    • OBReadTransaction3/Data/Transaction/CardInstrument/Identification

Data Dictionary

Name

Occurrence

XPath

EnhancedDefinition

Class

Codes

Pattern

Name

Occurrence

XPath

EnhancedDefinition

Class

Codes

Pattern

OBReadStatement1

 

OBReadStatement1

 

OBReadStatement1

 

 

Data

1..1

OBReadStatement1/Data

 

OBReadDataStatement1

 

 

Statement

0..n

OBReadStatement1/Data/Statement

Provides further details on a statement resource.

OBStatement1

 

 

AccountId

1..1

OBReadStatement1/Data/Statement/AccountId

A unique and immutable identifier used to identify the account resource. This identifier has no meaning to the account owner.

Max40Text

 

 

StatementId

0..1

OBReadStatement1/Data/Statement/StatementId

Unique identifier for the statement resource within an servicing institution. This identifier is both unique and immutable.

Max40Text

 

 

StatementReference

0..1

OBReadStatement1/Data/Statement/StatementReference

Unique reference for the statement. This reference may be optionally populated if available.

Max35Text

 

 

Type

1..1

OBReadStatement1/Data/Statement/Type

Statement type, in a coded form.

OBExternalStatementType1Code

AccountClosure
AccountOpening
Annual
Interim
RegularPeriodic

 

StartDateTime

1..1

OBReadStatement1/Data/Statement/StartDateTime

Date and time at which the statement period starts.

ISODateTime

 

 

EndDateTime

1..1

OBReadStatement1/Data/Statement/EndDateTime

Date and time at which the statement period ends.

ISODateTime

 

 

CreationDateTime

1..1

OBReadStatement1/Data/Statement/CreationDateTime

Date and time at which the resource was created.

ISODateTime

 

 

StatementDescription

0..n

OBReadStatement1/Data/Statement/StatementDescription

Other descriptions that may be available for the statement resource.

Max500Text

 

 

StatementBenefit

0..n

OBReadStatement1/Data/Statement/StatementBenefit

Set of elements used to provide details of a benefit or reward amount for the statement resource.

OBStatementBenefit1

 

 

Type

1..1

OBReadStatement1/Data/Statement/StatementBenefit/Type

Benefit type, in a coded form.

OBExternalStatementBenefitType1Code

 

 

Amount

1..1

OBReadStatement1/Data/Statement/StatementBenefit/Amount

Amount of money associated with the statement benefit type.

OBActiveOrHistoricCurrencyAndAmount

 

 

Amount

1..1

OBReadStatement1/Data/Statement/StatementBenefit/Amount/Amount

A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217.

OBActiveCurrencyAndAmount_SimpleType

 

^\d{1,13}\.\d{1,5}$

Currency

1..1

OBReadStatement1/Data/Statement/StatementBenefit/Amount/Currency

A code allocated to a currency by a Maintenance Agency under an international identification scheme, as described in the latest edition of the international standard ISO 4217 "Codes for the representation of currencies and funds".

ActiveOrHistoricCurrencyCode

 

^[A-Z]{3,3}$

StatementFee

0..n

OBReadStatement1/Data/Statement/StatementFee

Set of elements used to provide details of a fee for the statement resource.

OBStatementFee1

 

 

CreditDebitIndicator

1..1

OBReadStatement1/Data/Statement/StatementFee/CreditDebitIndicator

Indicates whether the amount is a credit or a debit.

Usage: A zero amount is considered to be a credit amount.

OBCreditDebitCode

Credit

Debit

 

Type

1..1

OBReadStatement1/Data/Statement/StatementFee/Type

Fee type, in a coded form.

OBExternalStatementFeeType1Code

 

 

Amount

1..1

OBReadStatement1/Data/Statement/StatementFee/Amount

Amount of money associated with the statement fee type.

OBActiveOrHistoricCurrencyAndAmount