Account and Transaction API Specification - UK

Description

Functionality at a glance

The NBG “UK OPB - Account and Transaction v3.1.5” API follows the UK Open Banking Specification v3.1.5

This Account and Transaction API Specification describes the flows and payloads for retrieving a list of accounts and their transactions.

The API endpoints described here allow a AISP to:

  • Create the Consent with the appropriate permissions in order to be able to access the API Endpoints

  • Retrieve the list of accounts

  • Retrieve an account’s details

  • Retrieve an account’s balances

  • Retrieve an account’s transactions

  • Retrieve an account’s beneficiaries

  • Retrieve an account’s standing orders

  • Retrieve an account’s party

  • Retrieve an account’s scheduled payments

  • Retrieve an account’s statements

Quick Getting Started

  1. Login/Register to the NBG Technology HUB

  2. Go to “APPS”

  3. Select your Organization and go to step 4. If you want to create a new Organization click "CREATE AN ORGANIZATION" and follow the steps below:

    1. Enter the title of your Organization
    2. Enter a short description of your Organization (optional)
    3. Click “SUBMIT”
  4. Select the Organization of choice and click “ADD AN APPLICATION”

    1. Fill in the forms (title and short description)

    2. Check "Authorization Code" and "Client Credentials"

    3. Enter the OAuth Redirect and Post Logout URIs (these are the URIs that we will redirect the user upon logging in and logging out respectively)

      You can use the following redirect URL to easily test the API through the portal: https://developer.nbg.gr/oauth2/redoc-callback

    4. Click “SUBMIT”

    5. Store the APPs “Client ID” and “Client Secret”

  5. Go to “API PRODUCTS” and select the ACCOUNT INFORMATION - UK OPEN BANKING API

  6. Click "START USING THIS API", choose your app and click “SUBSCRIBE”

  7. Get an Access Token using the Access Token Flow and the API scopes provided in the Authentication and Authorization (OAuth2) section below

  8. Create a Sandbox

  9. Play with the API

Sandbox Flow

The Sandbox Flow matches the Production Flow. The difference lies into the Data used. Instead of live data, the Sandbox flow uses mocked data.

Production Flow

The Production Flow is described in the UK Open Banking v3.1.5 Specification

More details about the implementation specifics followed, please visit section UK OPB Implementation Specifics

Authentication and Authorization (OAuth2)

This API version uses the OAuth2 protocol for authentication and authorization, which means that a Bearer (access token) should be acquired. An access token can be retrieved using the client_id and client_secret of the APP that you created and subscribed in this API, and your own credentials (username, password) that you use to sign in the NBG Technology HUB. The scopes are defined below:

Authorization Endpoint:

  https://my.nbg.gr/identity/connect/authorize

Token Endpoint:

  https://my.nbg.gr/identity/connect/token

Authorization Code

Sandbox Scopes:

  sandbox-uk-account-info-api-v1 offline_access

Production Scopes:

  accounts offline_access

Client Credentials

Sandbox Scopes:

  sandbox-uk-account-info-api-v1

Production Scopes:

  accounts

See more here

QWAC Certificates

TPPs are required to present a QWAC certificate during API consumption. The API checks that this certificate has been provided and is valid. In sandbox mode the certificate validations are optional. To validate your certificate in sandbox implementation, please send us your QWAC certificate at developer@nbg.gr and set the HTTP Header "x-sandbox-qwac-certificate-check" with the value "true" in your requests.

SMS Challenge (One Time Password)

In order to successfully authorize an Accounts Access you will need to provide the SMS OTP (One Time Password) in the corresponding Accounts Consent UI Screen.

By default the SMS OTP will be sent to the mobile number declared upon singing up in the NBG Technology HUB.

Create your Sandbox

Create a new Sandbox application by invoking the POST /sandbox. This call will generate a new Sandbox with a unique sandbox-id.

Important! Before proceeding save the sandbox id you just created.

When you create a sandbox, users and sandbox specific data are generated as sample data.

Start Testing

Once you have your sandbox-id, you can start invoking the rest of the operations by providing the mandatory http header sandbox-id and the http headers described below.

Important notes

Request headers

The following HTTP header parameters are required for every call:

  1. Authorization. The Auth2 Token

  2. sandbox-id. Your Sandbox ID

Consent

In order to be able to effectively start using the Endpoints the appropriate Consent needs to be created and set to the ‘Authorised’ status.

In order to create the Consent you need to at least set the required permissions and the Risk sections.

Optionally you may set the

  1. ExpirationDateTime. When the Consent expires

  2. TransactionFromDateTime. Start Date to retrieve the transactions

  3. TransactionToDateTime. End Date to retrieve the transactions

Not Implemented Endpoints

The following endpoints are not implemented in the API

  1. GET /balances
  2. GET /transactions
  3. GET /beneficiaries
  4. GET /accounts/{AccountId}/direct-debits
  5. GET /direct-debits
  6. GET /standing-orders
  7. GET /accounts/{AccountId}/product
  8. GET /products
  9. GET /accounts/{AccountId}/offers
  10. GET /offers
  11. GET /scheduled-payments
  12. GET /statements

Error Codes

The error codes and their description can be found here

UK OPB Implementation Specifics

Below you may find more specific information & limitations regarding the implementation followed in the Production API.

Token Endpoint Client Authentication

At this point the supported Client Authentication method is “Client Secret Basic” - usage of “Client ID” & “Client Secret”.

For a PSU to Authorize a Consent, they need to be redirected to the appropriate Consent UI.

For this redirection to take place the TPP needs to follow the Authorization Endpoint by amending the generated “Consent ID”, like this: https://my.nbg.gr/identity/connect/authorize?consent_id={{consent_id}}&client_id={{client_id}}&scope={{scope}}&redirect_uri={{redirect_uri}}&response_type=code

Once the PSU is redirected to the Consent Authorization Screen, they need to enter their IBank (Production) or Developer Portal (Sandbox) Credentials and either Authorize or Reject the Consent.

At this point the Consent is binded with the PSU.

Debtor Account

Currently, only the “UK.OBIE.IBAN” scheme is supported.

Feedback and Questions

We would love to hear your feedback and answer your questions. Send us at developer@nbg.gr

Check out our Sandbox Postman Collection!


Created by NBG.

Entities

Below, the main entities are documented. <a name=OBExternalPermissions1Code></a>

OBExternalPermissions1Code

Attributes

TypeDescriptionExampleValues
enumSpecifies the Open Banking account access data types. This is a list of the data clusters being consented by the PSU, and requested for authorisation with the ASPSP.<ul style=“padding-left: 0”><li>ReadAccountsBasic</li><li>ReadAccountsDetail</li><li>ReadBalances</li><li>ReadBeneficiariesBasic</li><li>ReadBeneficiariesDetail</li><li>ReadDirectDebits</li><li>ReadOffers</li><li>ReadPAN</li><li>ReadParty</li><li>ReadPartyPSU</li><li>ReadProducts</li><li>ReadScheduledPaymentsBasic</li><li>ReadScheduledPaymentsDetail</li><li>ReadStandingOrdersBasic</li><li>ReadStandingOrdersDetail</li><li>ReadStatementsBasic</li><li>ReadStatementsDetail</li><li>ReadTransactionsBasic</li><li>ReadTransactionsCredits</li><li>ReadTransactionsDebits</li><li>ReadTransactionsDetail</li></ul>

<a name=OBReadData1></a>

OBReadData1

Attributes

NameDescriptionValues
PermissionsSpecifies the Open Banking account access data types. This is a list of the data clusters being consented by the PSU, and requested for authorisation with the ASPSP.array[OBExternalPermissions1Code]
ExpirationDateTimeSpecified date and time the permissions will expire. If this is not populated, the permissions will be open ended. All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00string
TransactionFromDateTimeSpecified start date and time for the transaction query period. If this is not populated, the start date will be open ended, and data will be returned from the earliest available transaction. All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00string
TransactionToDateTimeSpecified end date and time for the transaction query period. If this is not populated, the end date will be open ended, and data will be returned to the latest available transaction. All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00string

<a name=OBRisk2></a>

OBRisk2

The Risk section is sent by the initiating party to the ASPSP. It is used to specify additional details for risk scoring for Account Info.

Attributes

NameDescriptionValues

<a name=OBReadConsent1></a>

OBReadConsent1

Attributes

NameDescriptionValues
DataEntity<details><summary>OBReadData1</summary><ul><li>Permissions [array[OBExternalPermissions1Code]]</li> <li>ExpirationDateTime [string]</li> <li>TransactionFromDateTime [string]</li> <li>TransactionToDateTime [string]</li> </ul></details>
RiskEntity<details><summary>OBRisk2</summary><ul></ul></details>

<a name=ErrorCode></a>

ErrorCode

Attributes

TypeDescriptionExampleValues
enumThis is Data Type gives a low level textual error code to help categorise an error response. The applicable HTTP response code is also given.<ul style=“padding-left: 0”><li>UK.OBIE.Field.Expected</li><li>UK.OBIE.Field.Invalid</li><li>UK.OBIE.Field.InvalidDate</li><li>UK.OBIE.Field.Missing</li><li>UK.OBIE.Field.Unexpected</li><li>UK.OBIE.Header.Invalid</li><li>UK.OBIE.Header.Missing</li><li>UK.OBIE.Resource.ConsentMismatch</li><li>UK.OBIE.Resource.InvalidConsentStatus</li><li>UK.OBIE.Resource.InvalidFormat</li><li>UK.OBIE.Resource.NotFound</li><li>UK.OBIE.Rules.AfterCutOffDateTime</li><li>UK.OBIE.Rules.DuplicateReference</li><li>UK.OBIE.Signature.Invalid</li><li>UK.OBIE.Signature.InvalidClaim</li><li>UK.OBIE.Signature.MissingClaim</li><li>UK.OBIE.Signature.Malformed</li><li>UK.OBIE.Signature.Missing</li><li>UK.OBIE.Signature.Unexpected</li><li>UK.OBIE.Unsupported.AccountIdentifier</li><li>UK.OBIE.Unsupported.AccountSecondaryIdentifier</li><li>UK.OBIE.Unsupported.Currency</li><li>UK.OBIE.Unsupported.EventType</li><li>UK.OBIE.Unsupported.Frequency</li><li>UK.OBIE.Unsupported.LocalInstrument</li><li>UK.OBIE.Unsupported.Scheme</li><li>UK.OBIE.Reauthenticate</li><li>UK.OBIE.Rules.ResourceAlreadyExists</li><li>UK.OBIE.UnexpectedError</li></ul>

<a name=OBError1></a>

OBError1

Attributes

NameDescriptionValues
ErrorCodeEntity<details><summary>ErrorCode</summary><ul></ul></details>
MessageA description of the error that occurred. e.g., ‘A mandatory field isn’t supplied’ or ‘RequestedExecutionDateTime must be in future’OBIE doesn’t standardise this fieldstring
PathRecommended but optional reference to the JSON Path of the field with error, e.g., Data.Initiation.InstructedAmount.Currencystring

<a name=OBErrorResponse1></a>

OBErrorResponse1

An array of detail error codes, and messages, and URLs to documentation to help remediation.

Attributes

NameDescriptionValues
CodeHigh level textual error code, to help categorize the errors.string
IdA unique reference for the error instance, for audit purposes, in case of unknown/unclassified errors.string
MessageBrief Error message, e.g., ‘There is something wrong with the request parameters provided’string
ErrorsGets or Sets Errorsarray[OBError1]

<a name=OBExternalRequestStatus1Code></a>

OBExternalRequestStatus1Code

Attributes

TypeDescriptionExampleValues
enumSpecifies the status of consent resource in code form.<ul style=“padding-left: 0”><li>Authorised</li><li>AwaitingAuthorisation</li><li>Rejected</li><li>Revoked</li></ul>

<a name=OBReadDataConsentResponse1></a>

OBReadDataConsentResponse1

Attributes

NameDescriptionValues
ConsentIdUnique identification as assigned to identify the account access consent resource.string
CreationDateTimeDate and time at which the resource was created. All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00string
StatusEntity<details><summary>OBExternalRequestStatus1Code</summary><ul></ul></details>
StatusUpdateDateTimeDate and time at which the resource status was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00string
PermissionsSpecifies the Open Banking account access data types. This is a list of the data clusters being consented by the PSU, and requested for authorisation with the ASPSP.array[OBExternalPermissions1Code]
ExpirationDateTimeSpecified date and time the permissions will expire. If this is not populated, the permissions will be open ended. All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00string
TransactionFromDateTimeSpecified start date and time for the transaction query period. If this is not populated, the start date will be open ended, and data will be returned from the earliest available transaction. All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00string
TransactionToDateTimeSpecified end date and time for the transaction query period. If this is not populated, the end date will be open ended, and data will be returned to the latest available transaction. All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00string

<a name=Links></a>

Links relevant to the payload

Attributes

NameDescriptionValues
Self-string
First-string
Prev-string
Next-string
Last-string

<a name=Meta></a>

Meta

Meta Data relevant to the payload

Attributes

NameDescriptionValues
TotalPages-integer
FirstAvailableDateTimeAll dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone.An example is below: 2017-04-05T10:43:07+00:00string
LastAvailableDateTimeAll dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone.An example is below: 2017-04-05T10:43:07+00:00string

<a name=OBReadConsentResponse1></a>

OBReadConsentResponse1

Attributes

NameDescriptionValues
DataEntity<details><summary>OBReadDataConsentResponse1</summary><ul><li>ConsentId [string]</li> <li>CreationDateTime [string]</li> <li><details><summary>Status [OBExternalRequestStatus1Code]</summary><ul></ul></details></li><li>StatusUpdateDateTime [string]</li> <li>Permissions [array[OBExternalPermissions1Code]]</li> <li>ExpirationDateTime [string]</li> <li>TransactionFromDateTime [string]</li> <li>TransactionToDateTime [string]</li> </ul></details>
RiskEntity<details><summary>OBRisk2</summary><ul></ul></details>
LinksEntity<details><summary>Links</summary><ul><li>Self [string]</li> <li>First [string]</li> <li>Prev [string]</li> <li>Next [string]</li> <li>Last [string]</li> </ul></details>
MetaEntity<details><summary>Meta</summary><ul><li>TotalPages [integer]</li> <li>FirstAvailableDateTime [string]</li> <li>LastAvailableDateTime [string]</li> </ul></details>

<a name=OBExternalAccountType1Code></a>

OBExternalAccountType1Code

Attributes

TypeDescriptionExampleValues
enum-<ul style=“padding-left: 0”><li>Business</li><li>Personal</li></ul>

<a name=OBExternalAccountSubType1Code></a>

OBExternalAccountSubType1Code

Attributes

TypeDescriptionExampleValues
enum-<ul style=“padding-left: 0”><li>ChargeCard</li><li>CreditCard</li><li>CurrentAccount</li><li>EMoney</li><li>Loan</li><li>Mortgage</li><li>PrePaidCard</li><li>Savings</li></ul>

<a name=OBCashAccount5></a>

OBCashAccount5

Attributes

NameDescriptionValues
SchemeNameName of the identification scheme, in a coded form as published in an external list.string
IdentificationIdentification assigned by an institution to identify an account. This identification is known by the account owner.string
NameThe account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP’s online channels. Note, the account name is not the product name or the nickname of the account.string
SecondaryIdentificationThis is secondary identification of the account, as assigned by the account servicing institution. This can be used by building societies to additionally identify accounts with a roll number(in addition to a sort code and account number combination).string

<a name=OBBranchAndFinancialInstitutionIdentification5></a>

OBBranchAndFinancialInstitutionIdentification5

Attributes

NameDescriptionValues
SchemeNameName of the identification scheme, in a coded form as published in an external list.string
IdentificationUnique and unambiguous identification of the servicing institution.string

<a name=OBAccount6></a>

OBAccount6

Unambiguous identification of the account to which credit and debit entries are made.

Attributes

NameDescriptionValues
AccountIdA unique and immutable identifier used to identify the account resource. This identifier has no meaning to the account owner.string
CurrencyIdentification of the currency in which the account is held. Usage: Currency should only be used in case one and the same account number covers several currencies and the initiating party needs to identify which currency needs to be used for settlement on the account.string
AccountTypeEntity<details><summary>OBExternalAccountType1Code</summary><ul></ul></details>
AccountSubTypeEntity<details><summary>OBExternalAccountSubType1Code</summary><ul></ul></details>
DescriptionSpecifies the description of the account type.string
NicknameThe nickname of the account, assigned by the account owner in order to provide an additional means of identification of the account.string
OpeningDateDate on which the account and related basic services are effectively operational for the account owner.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00string
AccountProvides the details to identify an account.array[OBCashAccount5]
ServicerEntity<details><summary>OBBranchAndFinancialInstitutionIdentification5</summary><ul><li>SchemeName [string]</li> <li>Identification [string]</li> </ul></details>

<a name=OBReadDataAccount5></a>

OBReadDataAccount5

Attributes

NameDescriptionValues
AccountUnambiguous identification of the account to which credit and debit entries are made.array[OBAccount6]

<a name=OBReadAccount5></a>

OBReadAccount5

Attributes

NameDescriptionValues
DataEntity<details><summary>OBReadDataAccount5</summary><ul><li>Account [array[OBAccount6]]</li> </ul></details>
LinksEntity<details><summary>Links</summary><ul><li>Self [string]</li> <li>First [string]</li> <li>Prev [string]</li> <li>Next [string]</li> <li>Last [string]</li> </ul></details>
MetaEntity<details><summary>Meta</summary><ul><li>TotalPages [integer]</li> <li>FirstAvailableDateTime [string]</li> <li>LastAvailableDateTime [string]</li> </ul></details>

<a name=OBCreditDebitCode></a>

OBCreditDebitCode

Attributes

TypeDescriptionExampleValues
enum-<ul style=“padding-left: 0”><li>Credit</li><li>Debit</li></ul>

<a name=OBBalanceType1Code></a>

OBBalanceType1Code

Attributes

TypeDescriptionExampleValues
enum-<ul style=“padding-left: 0”><li>ClosingAvailable</li><li>ClosingBooked</li><li>ClosingCleared</li><li>Expected</li><li>ForwardAvailable</li><li>Information</li><li>InterimAvailable</li><li>InterimBooked</li><li>InterimCleared</li><li>OpeningAvailable</li><li>OpeningBooked</li><li>OpeningCleared</li><li>PreviouslyClosedBooked</li></ul>

<a name=OBActiveOrHistoricCurrencyAndAmount></a>

OBActiveOrHistoricCurrencyAndAmount

Attributes

NameDescriptionValues
AmountA number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217.string
CurrencyA 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”.string

<a name=OBExternalLimitType1Code></a>

OBExternalLimitType1Code

Attributes

TypeDescriptionExampleValues
enum-<ul style=“padding-left: 0”><li>Available</li><li>Credit</li><li>Emergency</li><li>Pre-Agreed</li><li>Temporary</li></ul>

<a name=OBCreditLine1></a>

OBCreditLine1

Attributes

NameDescriptionValues
IncludedIndicates whether or not the credit line is included in the balance of the account. Usage: If not present, credit line is not included in the balance amount of the account.boolean
TypeEntity<details><summary>OBExternalLimitType1Code</summary><ul></ul></details>
AmountEntity<details><summary>OBActiveOrHistoricCurrencyAndAmount</summary><ul><li>Amount [string]</li> <li>Currency [string]</li> </ul></details>

<a name=OBCashBalance1></a>

OBCashBalance1

Set of elements used to define the balance details.

Attributes

NameDescriptionValues
AccountIdA unique and immutable identifier used to identify the account resource. This identifier has no meaning to the account owner.string
CreditDebitIndicatorEntity<details><summary>OBCreditDebitCode</summary><ul></ul></details>
TypeEntity<details><summary>OBBalanceType1Code</summary><ul></ul></details>
DateTimeIndicates the date (and time) of the balance.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00string
AmountEntity<details><summary>OBActiveOrHistoricCurrencyAndAmount</summary><ul><li>Amount [string]</li> <li>Currency [string]</li> </ul></details>
CreditLineSet of elements used to provide details on the credit line.array[OBCreditLine1]

<a name=OBReadDataBalance1></a>

OBReadDataBalance1

Attributes

NameDescriptionValues
BalanceSet of elements used to define the balance details.array[OBCashBalance1]

<a name=OBReadBalance1></a>

OBReadBalance1

Attributes

NameDescriptionValues
DataEntity<details><summary>OBReadDataBalance1</summary><ul><li>Balance [array[OBCashBalance1]]</li> </ul></details>
LinksEntity<details><summary>Links</summary><ul><li>Self [string]</li> <li>First [string]</li> <li>Prev [string]</li> <li>Next [string]</li> <li>Last [string]</li> </ul></details>
MetaEntity<details><summary>Meta</summary><ul><li>TotalPages [integer]</li> <li>FirstAvailableDateTime [string]</li> <li>LastAvailableDateTime [string]</li> </ul></details>

<a name=OBBeneficiaryType1Code></a>

OBBeneficiaryType1Code

Attributes

TypeDescriptionExampleValues
enumSpecifies the Beneficiary Type.<ul style=“padding-left: 0”><li>Trusted</li><li>Ordinary</li></ul>

<a name=OBBeneficiary5></a>

OBBeneficiary5

Attributes

NameDescriptionValues
AccountIdA unique and immutable identifier used to identify the account resource. This identifier has no meaning to the account owner.string
BeneficiaryTypeEntity<details><summary>OBBeneficiaryType1Code</summary><ul></ul></details>
CreditorAccountEntity<details><summary>OBCashAccount5</summary><ul><li>SchemeName [string]</li> <li>Identification [string]</li> <li>Name [string]</li> <li>SecondaryIdentification [string]</li> </ul></details>

<a name=OBReadDataBeneficiary5></a>

OBReadDataBeneficiary5

Attributes

NameDescriptionValues
Beneficiary-array[OBBeneficiary5]

<a name=OBReadBeneficiary5></a>

OBReadBeneficiary5

Attributes

NameDescriptionValues
DataEntity<details><summary>OBReadDataBeneficiary5</summary><ul><li>Beneficiary [array[OBBeneficiary5]]</li> </ul></details>
LinksEntity<details><summary>Links</summary><ul><li>Self [string]</li> <li>First [string]</li> <li>Prev [string]</li> <li>Next [string]</li> <li>Last [string]</li> </ul></details>
MetaEntity<details><summary>Meta</summary><ul><li>TotalPages [integer]</li> <li>FirstAvailableDateTime [string]</li> <li>LastAvailableDateTime [string]</li> </ul></details>

<a name=OBParty2></a>

OBParty2

Attributes

NameDescriptionValues
PartyIdA unique and immutable identifier used to identify the customer resource. This identifier has no meaning to the account owner.string
NameName by which a party is known and which is usually used to identify that party.string

<a name=OBReadDataParty2></a>

OBReadDataParty2

Attributes

NameDescriptionValues
PartyEntity<details><summary>OBParty2</summary><ul><li>PartyId [string]</li> <li>Name [string]</li> </ul></details>

<a name=OBReadParty2></a>

OBReadParty2

Attributes

NameDescriptionValues
DataEntity<details><summary>OBReadDataParty2</summary><ul><li><details><summary>Party [OBParty2]</summary><ul><li>PartyId [string]</li> <li>Name [string]</li> </ul></details></li></ul></details>
LinksEntity<details><summary>Links</summary><ul><li>Self [string]</li> <li>First [string]</li> <li>Prev [string]</li> <li>Next [string]</li> <li>Last [string]</li> </ul></details>
MetaEntity<details><summary>Meta</summary><ul><li>TotalPages [integer]</li> <li>FirstAvailableDateTime [string]</li> <li>LastAvailableDateTime [string]</li> </ul></details>

<a name=OBReadDataParty3></a>

OBReadDataParty3

Attributes

NameDescriptionValues
Party-array[OBParty2]

<a name=OBReadParty3></a>

OBReadParty3

Attributes

NameDescriptionValues
DataEntity<details><summary>OBReadDataParty3</summary><ul><li>Party [array[OBParty2]]</li> </ul></details>
LinksEntity<details><summary>Links</summary><ul><li>Self [string]</li> <li>First [string]</li> <li>Prev [string]</li> <li>Next [string]</li> <li>Last [string]</li> </ul></details>
MetaEntity<details><summary>Meta</summary><ul><li>TotalPages [integer]</li> <li>FirstAvailableDateTime [string]</li> <li>LastAvailableDateTime [string]</li> </ul></details>

<a name=SandboxRequest></a>

SandboxRequest

Request to create a new sandbox

Attributes

NameDescriptionValues
sandboxIdSandbox Idstring

<a name=ErrorResponse></a>

ErrorResponse

Attributes

NameDescriptionValues
errorMessage-string

<a name=SandboxRetryCacheEntry></a>

SandboxRetryCacheEntry

Keeps the number of calls without x-fapi-customer-ip-address header present

Attributes

NameDescriptionValues
cacheKeyCache keystring
countNumber of retries ( up to 4 )integer
expirationTimestampExpiration timestamp of the entrystring

<a name=SandboxBankAccountInfo></a>

SandboxBankAccountInfo

General account information

Attributes

NameDescriptionValues
currencyCurrency (EUR, USD …)string
ibanAccount’s IBANstring
accountTypeAccount’s type (Business, Personal)string
accountSubTypeAccount’s sub-type (ChargeCard, CreditCard, CurrentAccount …)string
descriptionAccount’s descriptionstring
aliasAccount’s aliasstring
openingDateAccount’s opening datestring
availableBalanceAccount’s available balancenumber
ledgerBalanceAccount’s ledger balancenumber
overdraftLimitAccount’s overdraft limitnumber

<a name=SandboxParty></a>

SandboxParty

Connected party information

Attributes

NameDescriptionValues
idParty idstring
nameNamestring

<a name=SandboxBeneficiary></a>

SandboxBeneficiary

Beneficiary information

Attributes

NameDescriptionValues
nameBeneficiary namestring

<a name=SandboxStandingOrder></a>

SandboxStandingOrder

Standing order information

Attributes

NameDescriptionValues
descriptionStanding order short descriptionstring
frequencyStanding order frequencystring
firstPaymentDateStanding order first collection datestring
nextPaymentDateStanding order next collection datestring
finalPaymentDateStanding order final collection datestring
lastPaymentDateStanding order last executed payment datestring
statusStanding order status (Active, Inactive)string
amountStanding order amountnumber

<a name=SandboxScheduledPayment></a>

SandboxScheduledPayment

Scheduled payment information

Attributes

NameDescriptionValues
descriptionScheduled payment’s short descriptionstring
executionDateScheduled payment’s execution datestring
amountAmountnumber
senderReferenceDebtor / Sender referencestring

<a name=SandboxStatement></a>

SandboxStatement

Statement information

Attributes

NameDescriptionValues
numberStatement numberstring
yearStatement yearinteger
monthStatement monthinteger

<a name=SandboxTransaction></a>

SandboxTransaction

Transaction information

Attributes

NameDescriptionValues
referenceTransaction referencestring
amountAmountnumber
currencyCurrency (EUR, USD …)string
creditDebitCredit / Debit indicatorstring
valueDateTimeValeurstring
bookingDateTimeBooking date timestring
descriptionDescriptionstring
accountingBalanceBalancenumber
relatedAccountRelated accountstring
relatedNameRelated accountstring
transactionCodeTransaction codestring

<a name=SandboxBankAccount></a>

SandboxBankAccount

Sandbox bank account

Attributes

NameDescriptionValues
infoEntity<details><summary>SandboxBankAccountInfo</summary><ul><li>currency [string]</li> <li>iban [string]</li> <li>accountType [string]</li> <li>accountSubType [string]</li> <li>description [string]</li> <li>alias [string]</li> <li>openingDate [string]</li> <li>availableBalance [number]</li> <li>ledgerBalance [number]</li> <li>overdraftLimit [number]</li> </ul></details>
partyEntity<details><summary>SandboxParty</summary><ul><li>id [string]</li> <li>name [string]</li> </ul></details>
beneficiariesList of account’s beneficiariesarray[SandboxBeneficiary]
standingOrdersList of account’s standing ordersarray[SandboxStandingOrder]
scheduledPaymentsList of account’s scheduled paymentsarray[SandboxScheduledPayment]
statementsList of account’s statementsarray[SandboxStatement]
transactionsList of account’s transactionsarray[SandboxTransaction]

<a name=SandboxCardInfo></a>

SandboxCardInfo

Sandbox card information

Attributes

NameDescriptionValues
numberCard numberstring
descriptionDescriptionstring
holderNameHolder namestring
expirationExpiration date (05/2022)string
typeTypestring
subTypeSub typestring
availableBalanceAvailable balancenumber
ledgerBalanceLedger balancenumber
creditLimitCredit limit ( applicable to credit cards )number

<a name=SandboxCard></a>

SandboxCard

Sandbox card

Attributes

NameDescriptionValues
infoEntity<details><summary>SandboxCardInfo</summary><ul><li>number [string]</li> <li>description [string]</li> <li>holderName [string]</li> <li>expiration [string]</li> <li>type [string]</li> <li>subType [string]</li> <li>availableBalance [number]</li> <li>ledgerBalance [number]</li> <li>creditLimit [number]</li> </ul></details>
partyEntity<details><summary>SandboxParty</summary><ul><li>id [string]</li> <li>name [string]</li> </ul></details>
statementsCard statementsarray[SandboxStatement]
transactionsCard transactionsarray[SandboxTransaction]

<a name=SandboxUser></a>

SandboxUser

User data

Attributes

NameDescriptionValues
userIdConnected user idstring
retryCacheEntriesRetry cache entriesarray[SandboxRetryCacheEntry]
accountsList of accountsarray[SandboxBankAccount]
cardsList of cardsarray[SandboxCard]

<a name=Sandbox></a>

Sandbox

Sandbox model

Attributes

NameDescriptionValues
sandboxIdSandbox idstring
usersList of usersarray[SandboxUser]

<a name=OBExternalScheduleType1Code></a>

OBExternalScheduleType1Code

Attributes

TypeDescriptionExampleValues
enum-<ul style=“padding-left: 0”><li>Arrival</li><li>Execution</li></ul>

<a name=OBScheduledPayment3></a>

OBScheduledPayment3

Attributes

NameDescriptionValues
AccountIdA unique and immutable identifier used to identify the account resource. This identifier has no meaning to the account owner.string
ScheduledPaymentIdA unique and immutable identifier used to identify the scheduled payment resource. This identifier has no meaning to the account owner.string
ScheduledPaymentDateTimeThe date on which the scheduled payment will be made.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone.An example is below: 2017-04-05T10:43:07+00:00string
ScheduledTypeEntity<details><summary>OBExternalScheduleType1Code</summary><ul></ul></details>
ReferenceUnique reference, as assigned by the creditor, to unambiguously refer to the payment transaction. Usage: If available, the initiating party should provide this reference in the structured remittance information, to enable reconciliation by the creditor upon receipt of the amount of money. If the business context requires the use of a creditor reference or a payment remit identification, and only one identifier can be passed through the end-to-end chain, the creditor’s reference or payment remittance identification should be quoted in the end-to-end transaction identification.string
DebtorReferenceA reference value provided by the PSU to the PISP while setting up the scheduled payment.string
InstructedAmountEntity<details><summary>OBActiveOrHistoricCurrencyAndAmount</summary><ul><li>Amount [string]</li> <li>Currency [string]</li> </ul></details>
CreditorAccountEntity<details><summary>OBCashAccount5</summary><ul><li>SchemeName [string]</li> <li>Identification [string]</li> <li>Name [string]</li> <li>SecondaryIdentification [string]</li> </ul></details>

<a name=OBReadDataScheduledPayment3></a>

OBReadDataScheduledPayment3

Attributes

NameDescriptionValues
ScheduledPayment-array[OBScheduledPayment3]

<a name=OBReadScheduledPayment3></a>

OBReadScheduledPayment3

Attributes

NameDescriptionValues
DataEntity<details><summary>OBReadDataScheduledPayment3</summary><ul><li>ScheduledPayment [array[OBScheduledPayment3]]</li> </ul></details>
LinksEntity<details><summary>Links</summary><ul><li>Self [string]</li> <li>First [string]</li> <li>Prev [string]</li> <li>Next [string]</li> <li>Last [string]</li> </ul></details>
MetaEntity<details><summary>Meta</summary><ul><li>TotalPages [integer]</li> <li>FirstAvailableDateTime [string]</li> <li>LastAvailableDateTime [string]</li> </ul></details>

<a name=OBExternalStandingOrderStatus1Code></a>

OBExternalStandingOrderStatus1Code

Attributes

TypeDescriptionExampleValues
enum-<ul style=“padding-left: 0”><li>Active</li><li>Inactive</li></ul>

<a name=OBStandingOrder5></a>

OBStandingOrder5

Attributes

NameDescriptionValues
AccountIdA unique and immutable identifier used to identify the account resource. This identifier has no meaning to the account owner.string
StandingOrderIdA unique and immutable identifier used to identify the standing order resource. This identifier has no meaning to the account owner.string
FrequencyIndividual Definitions: IntrvlMnthDay - An interval specified in months(between 01, 02, 03, 04, 06, 12, 24), specifying the day within the month(01 to 31) Full Regular Expression: ^(IntrvlMnthDay:(0[1,2,3,4,6]12
ReferenceUnique reference, as assigned by the creditor, to unambiguously refer to the payment transaction. Usage: If available, the initiating party should provide this reference in the structured remittance information, to enable reconciliation by the creditor upon receipt of the amount of money. If the business context requires the use of a creditor reference or a payment remit identification, and only one identifier can be passed through the end-to-end chain, the creditor’s reference or payment remittance identification should be quoted in the end-to-end transaction identification.string
FirstPaymentDateTimeThe date on which the first payment for a Standing Order schedule will be made.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone.An example is below: 2017-04-05T10:43:07+00:00string
NextPaymentDateTimeThe date on which the next payment for a Standing Order schedule will be made.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone.An example is below: 2017-04-05T10:43:07+00:00string
LastPaymentDateTimeThe date on which the last (most recent) payment for a Standing Order schedule was made.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone.An example is below: 2017-04-05T10:43:07+00:00string
FinalPaymentDateTimeThe date on which the final payment for a Standing Order schedule will be made.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone.An example is below: 2017-04-05T10:43:07+00:00string
StandingOrderStatusCodeEntity<details><summary>OBExternalStandingOrderStatus1Code</summary><ul></ul></details>
FirstPaymentAmountEntity<details><summary>OBActiveOrHistoricCurrencyAndAmount</summary><ul><li>Amount [string]</li> <li>Currency [string]</li> </ul></details>
NextPaymentAmountEntity<details><summary>OBActiveOrHistoricCurrencyAndAmount</summary><ul><li>Amount [string]</li> <li>Currency [string]</li> </ul></details>
LastPaymentAmountEntity<details><summary>OBActiveOrHistoricCurrencyAndAmount</summary><ul><li>Amount [string]</li> <li>Currency [string]</li> </ul></details>
FinalPaymentAmountEntity<details><summary>OBActiveOrHistoricCurrencyAndAmount</summary><ul><li>Amount [string]</li> <li>Currency [string]</li> </ul></details>
CreditorAccountEntity<details><summary>OBCashAccount5</summary><ul><li>SchemeName [string]</li> <li>Identification [string]</li> <li>Name [string]</li> <li>SecondaryIdentification [string]</li> </ul></details>

<a name=OBReadDataStandingOrder5></a>

OBReadDataStandingOrder5

Attributes

NameDescriptionValues
StandingOrder-array[OBStandingOrder5]

<a name=OBReadStandingOrder6></a>

OBReadStandingOrder6

Attributes

NameDescriptionValues
DataEntity<details><summary>OBReadDataStandingOrder5</summary><ul><li>StandingOrder [array[OBStandingOrder5]]</li> </ul></details>
LinksEntity<details><summary>Links</summary><ul><li>Self [string]</li> <li>First [string]</li> <li>Prev [string]</li> <li>Next [string]</li> <li>Last [string]</li> </ul></details>
MetaEntity<details><summary>Meta</summary><ul><li>TotalPages [integer]</li> <li>FirstAvailableDateTime [string]</li> <li>LastAvailableDateTime [string]</li> </ul></details>

<a name=OBExternalStatementType1Code></a>

OBExternalStatementType1Code

Attributes

TypeDescriptionExampleValues
enum-<ul style=“padding-left: 0”><li>AccountClosure</li><li>AccountOpening</li><li>Annual</li><li>Interim</li><li>RegularPeriodic</li></ul>

<a name=OBStatement2></a>

OBStatement2

Provides further details on a statement resource.

Attributes

NameDescriptionValues
AccountIdA unique and immutable identifier used to identify the account resource. This identifier has no meaning to the account owner.string
StatementIdUnique identifier for the statement resource within an servicing institution. This identifier is both unique and immutable.string
StatementReferenceUnique reference for the statement. This reference may be optionally populated if available.string
TypeEntity<details><summary>OBExternalStatementType1Code</summary><ul></ul></details>
StartDateTimeDate and time at which the statement period starts.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone.An example is below: 2017-04-05T10:43:07+00:00string
EndDateTimeDate and time at which the statement period starts.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone.An example is below: 2017-04-05T10:43:07+00:00string
CreationDateTimeDate and time at which the statement period starts.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone.An example is below: 2017-04-05T10:43:07+00:00string

<a name=OBReadDataStatement2></a>

OBReadDataStatement2

Attributes

NameDescriptionValues
StatementProvides further details on a statement resource.array[OBStatement2]

<a name=OBReadStatement2></a>

OBReadStatement2

Attributes

NameDescriptionValues
DataEntity<details><summary>OBReadDataStatement2</summary><ul><li>Statement [array[OBStatement2]]</li> </ul></details>
LinksEntity<details><summary>Links</summary><ul><li>Self [string]</li> <li>First [string]</li> <li>Prev [string]</li> <li>Next [string]</li> <li>Last [string]</li> </ul></details>
MetaEntity<details><summary>Meta</summary><ul><li>TotalPages [integer]</li> <li>FirstAvailableDateTime [string]</li> <li>LastAvailableDateTime [string]</li> </ul></details>

<a name=OBEntryStatus1Code></a>

OBEntryStatus1Code

Attributes

TypeDescriptionExampleValues
enum-<ul style=“padding-left: 0”><li>Booked</li><li>Pending</li></ul>

<a name=ProprietaryBankTransactionCodeStructure1></a>

ProprietaryBankTransactionCodeStructure1

Set of elements to fully identify a proprietary bank transaction code.

Attributes

NameDescriptionValues
CodeProprietary bank transaction code to identify the underlying transaction.string
IssuerIdentification of the issuer of the proprietary bank transaction code.string

<a name=OBTransactionCashBalance></a>

OBTransactionCashBalance

Set of elements used to define the balance as a numerical representation of the net increases and decreases in an account after a transaction entry is applied to the account.

Attributes

NameDescriptionValues
CreditDebitIndicatorEntity<details><summary>OBCreditDebitCode</summary><ul></ul></details>
TypeEntity<details><summary>OBBalanceType1Code</summary><ul></ul></details>
AmountEntity<details><summary>OBActiveOrHistoricCurrencyAndAmount</summary><ul><li>Amount [string]</li> <li>Currency [string]</li> </ul></details>

<a name=OBCashAccount6></a>

OBCashAccount6

Unambiguous identification of the account of the creditor, in the case of a debit transaction.

Attributes

NameDescriptionValues
SchemeNameName of the identification scheme, in a coded form as published in an external list.string
IdentificationIdentification assigned by an institution to identify an account. This identification is known by the account owner.string
NameThe account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP’s online channels. Note, the account name is not the product name or the nickname of the account.string

<a name=OBTransaction6></a>

OBTransaction6

Provides further details on an entry in the report.

Attributes

NameDescriptionValues
AccountIdA unique and immutable identifier used to identify the account resource. This identifier has no meaning to the account owner.string
TransactionReferenceUnique reference for the transaction. This reference is optionally populated, and may as an example be the FPID in the Faster Payments context.string
CreditDebitIndicatorEntity<details><summary>OBCreditDebitCode</summary><ul></ul></details>
StatusEntity<details><summary>OBEntryStatus1Code</summary><ul></ul></details>
BookingDateTimeDate and time when a transaction entry is posted to an account on the account servicer’s books. Usage: Booking date is the expected booking date, unless the status is booked, in which case it is the actual booking date.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone.An example is below: 2017-04-05T10:43:07+00:00string
ValueDateTimeDate and time at which assets become available to the account owner in case of a credit entry, or cease to be available to the account owner in case of a debit transaction entry. Usage: If transaction entry status is pending and value date is present, then the value date refers to an expected/requested value date. For transaction entries subject to availability/float and for which availability information is provided, the value date must not be used.In this case the availability component identifies the number of availability days.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone.An example is below: 2017-04-05T10:43:07+00:00string
TransactionInformationFurther details of the transaction. This is the transaction narrative, which is unstructured text.string
AmountEntity<details><summary>OBActiveOrHistoricCurrencyAndAmount</summary><ul><li>Amount [string]</li> <li>Currency [string]</li> </ul></details>
ProprietaryBankTransactionCodeEntity<details><summary>ProprietaryBankTransactionCodeStructure1</summary><ul><li>Code [string]</li> <li>Issuer [string]</li> </ul></details>
BalanceEntity<details><summary>OBTransactionCashBalance</summary><ul><li><details><summary>CreditDebitIndicator [OBCreditDebitCode]</summary><ul></ul></details></li><li><details><summary>Type [OBBalanceType1Code]</summary><ul></ul></details></li><li><details><summary>Amount [OBActiveOrHistoricCurrencyAndAmount]</summary><ul><li>Amount [string]</li> <li>Currency [string]</li> </ul></details></li></ul></details>
CreditorAccountEntity<details><summary>OBCashAccount6</summary><ul><li>SchemeName [string]</li> <li>Identification [string]</li> <li>Name [string]</li> </ul></details>
DebtorAccountEntity<details><summary>OBCashAccount6</summary><ul><li>SchemeName [string]</li> <li>Identification [string]</li> <li>Name [string]</li> </ul></details>

<a name=OBReadDataTransaction6></a>

OBReadDataTransaction6

Attributes

NameDescriptionValues
TransactionProvides further details on an entry in the report.array[OBTransaction6]

<a name=OBReadTransaction6></a>

OBReadTransaction6

Attributes

NameDescriptionValues
DataEntity<details><summary>OBReadDataTransaction6</summary><ul><li>Transaction [array[OBTransaction6]]</li> </ul></details>
LinksEntity<details><summary>Links</summary><ul><li>Self [string]</li> <li>First [string]</li> <li>Prev [string]</li> <li>Next [string]</li> <li>Last [string]</li> </ul></details>
MetaEntity<details><summary>Meta</summary><ul><li>TotalPages [integer]</li> <li>FirstAvailableDateTime [string]</li> <li>LastAvailableDateTime [string]</li> </ul></details>

Authentication

<!– ReDoc-Inject: <security-definitions> –>

Use this page to mock Account and Transaction API Specification - UK in your testing and development.

Run our mock API sample using the open source WireMock library, or in the free edition of WireMock Cloud. You'll have a working API server simulating the behavior of Account and Transaction API Specification - UK, which will allow you to keep building and testing even if the actual API you isn't currently available.

Related mocks

Afterbanks API

La estandarización de la conexión con

ATM Locator API

ApiDapp

Event Notification API Specification - TPP Endpoints

Swagger for Event Notification API

VAT API

A developer friendly API to help your

NaviPlan API

An API for accessing NaviPlan plan data

Ready to accelerate your development flow

Shorter release cycles, more predictable schedules and fewer defects in production.
Start Mocking for Free *Free forever. No credit card needed