Table of Contents outline true style none
...
Version | Date | Author | Comments |
---|---|---|---|
3.0-draft1 | 18-Apr-2018 | OB R/W API Team | Initial draft for Version 3.0
|
3.0-draft3 | 18-May-2018 | OB R/W API Team | Renamed "Account Request" to "Account Access Consent" renamed AccountRequestId to ConsentId In Endpoint section - removed reference to "must respond with a 404 (Not Found) for requests to that URL." and moved to Read Write API page. |
3.0-draft4 | OB R/W API Team | Draft4 changes:
| |
3.0-draft5 | OB R/W API Team | Errata:
Draft5 changes:
| |
3.0-draft6 | OB R/W API Team |
| |
3.0-draft7 | OB R/W API Team | Errata:
Updates:
| |
3.0-RC2 | OB R/W API Team | Errata:
Updates:
| |
3.0-RC3 | OB R/W API Team | Added a section on Security / Consent Authorisation / Consent Re-authentication to clarify that PSUs can be re-authenticated as per definitions in the root document. Updated Security / Consent Authorisation / Changes to Selected Accounts to reflect that selected accounts may change at the point of re-authentication Updated references to consent "re-authorisation" to consent "re-authentication" Added Swagger-based API specification files encoded in JSON and YAML. | |
3.0 | OB R/W API Team | This is the baseline version. No change from RC3. Swagger URLs updated to point to latest stable version. |
Overview
This specification describes the Account Information and Transaction API flows and payloads.
...
GET
- An AISP must not access a Consent on an older version, via the Id for a Consent created in a newer version
- E.g., An account-access-consent created in v3 accessed via v2 account-request
- An ASPSP must allow a Consent to be accessed in a newer version
- An ASPSP must ensure Permissions set associated with a Consent are unchanged when accessed in a different version
- E.g., An account-request created in v2 will have the same details when accessed via v2 and v3 (as an account-access-consent)
- An ASPSP must ensure a Consent's fields are unchanged when accessed in a different version
- An ASPSP may allow expired Consents to be accessed in a newer version
- An ASPSP may choose to populate new fields introduced in a resource from previous version sensible defaults (if mandatory) or not populate at all (if not mandatory)
- E.g., OBReadResponse1/Data/StatusUpdateDateTime introduced in v2 accessed with v1 AccountRequestId can be populated with Last accessed date time, if not already available in the system of records
...
Account Information Resources
GET
- An AISP may use a token that is bound to a Consent in a previous version, to access an endpoint of a newer version
- An AISP may use an Id for a Consent created in a previous version to retrieve Account Information resources in a newer version
- E.g., AccountRequestId from v2 can be used as ConsentId in v3, to GET /accounts
- An AISP must not use an Id for a Consent from a newer version to access Account Information resources in a previous version
- E.g., ConsentId for an account-access-consent created in v3, must not be used to access v2 Account Information endpoints
- An AISP must not use an Id for a Consent from a previous version to access a resource introduced in a newer version (as the Consent will not have Permissions required to access the new resource)
- An ASPSP must allow an AISP to use an Id for a Consent from a previous version to access Account Information resource endpoints in a newer version
- E.g., AccountRequestId created in v2 must be allowed to access Account Information resource endpoints in v3
- An ASPSP must reject the request to access a resource, for which a Consent's Permissions set doesn't permit
- An ASPSP may choose to populate new fields introduced in a resource from previous version sensible defaults (if mandatory) or not populate at all
- E.g., OBReadResponse1/Data/StatusUpdateDateTime introduced in Version2 accessed with V1 AccountRequestId can be populated with Last accessed date time, if not already available in the system of records
...
Permissions | Endpoints | Business Logic | Data Cluster Description |
---|---|---|---|
ReadAccountsBasic | /accounts /accounts/{AccountId} | Ability to read basic account information | |
ReadAccountsDetail | /accounts /accounts/{AccountId} | Access to additional elements in the payload | Ability to read account identification details |
ReadBalances | /balances /accounts/{AccountId}/balances | Ability to read all balance information | |
ReadBeneficiariesBasic | /beneficiaries /accounts/{AccountId}/beneficiaries | Ability to read basic beneficiary details | |
ReadBeneficiariesDetail | /beneficiaries /accounts/{AccountId}/beneficiaries | Access to additional elements in the payload | Ability to read account identification details for the beneficiary |
ReadDirectDebits | /direct-debits /accounts/{AccountId}/direct-debits | Ability to read all direct debit information | |
ReadStandingOrdersBasic | /standing-orders /accounts/{AccountId}/standing-orders | Ability to read basic standing order information | |
ReadStandingOrdersDetail | /standing-orders /accounts/{AccountId}/standing-orders | Access to additional elements in the payload | Ability to read account identification details for beneficiary of the standing order |
ReadTransactionsBasic | /transactions /accounts/{AccountId}/transactions /accounts/{AccountId}/statements/{StatementId}/transactions | Permissions must also include at least one of:
| Ability to read basic transaction information |
ReadTransactionsDetail | /transactions /accounts/{AccountId}/transactions /accounts/{AccountId}/statements/{StatementId}/transactions | Access to additional elements in the payload Permissions must also include at least one of
| Ability to read transaction data elements which may hold silent party details |
ReadTransactionsCredits | /transactions /accounts/{AccountId}/transactions /accounts/{AccountId}/statements/{StatementId}/transactions | Access to credit transactions. Permissions must also include one of:
| Ability to read only credit transactions |
ReadTransactionsDebits | /transactions /accounts/{AccountId}/transactions /accounts/{AccountId}/statements/{StatementId}/transactions | Access to debit transactions. Permissions must also includeone of:
| Ability to read only debit transactions |
ReadStatementsBasic | /statements /accounts/{AccountId}/statements | Ability to read basic statement details | |
ReadStatementsDetail | /statements /accounts/{AccountId}/statements /accounts/{AccountId}/statements/{StatementId}/file | Access to additional elements in the payload Access to download the statement file (if the ASPSP makes this available). | Ability to read statement data elements which may leak other information about the account |
ReadProducts | /products /accounts/{AccountId}/product | Ability to read all product information relating to the account | |
ReadOffers | /offers /accounts/{AccountId}/offers | Ability to read all offer information | |
ReadParty | /accounts/{AccountId}/party | Ability to read party information on the account owner. | |
ReadPartyPSU | /party | Ability to read party information on the PSU logged in. | |
ReadScheduledPaymentsBasic | /scheduled-payments /accounts/{AccountId}/scheduled-payments | Ability to read basic statement details | |
ReadScheduledPaymentsDetail | /scheduled-payments /accounts/{AccountId}/scheduled-payments | Access to additional elements in the payload | |
ReadPAN | All API endpoints where PAN is available as a structured field | Request to access to PAN in the clear | Request to access PAN in the clear across the available endpoints. If this permission code is not in the account-access-consent, the AISP will receive a masked PAN. While an AISP may request to access PAN in the clear, an ASPSP may still respond with a masked PAN if:
|
...
Permission - Detail Codes | Data Element Name | Occurrence | XPath |
---|---|---|---|
ReadAccountsDetail | Account | 0..1 | OBReadAccount2/Data/Account/Account |
ReadAccountsDetail | Servicer | 0..1 | OBReadAccount2/Data/Account/Servicer |
ReadBeneficiariesDetail | CreditorAgent | 0..1 | OBReadBeneficiary2/Data/Beneficiary/CreditorAgent |
ReadBeneficiariesDetail | CreditorAccount | 0..1 | OBReadBeneficiary2/Data/Beneficiary/CreditorAccount |
ReadStandingOrdersDetail | CreditorAgent | 0..1 | OBReadStandingOrder3/Data/StandingOrder/CreditorAgent |
ReadStandingOrdersDetail | CreditorAccount | 0..1 | OBReadStandingOrder3/Data/StandingOrder/CreditorAccount |
ReadTransactionsDetail | TransactionInformation | 0..1 | OBReadTransaction3/Data/Transaction/TransactionInformation |
ReadTransactionsDetail | Balance | 0..1 | OBReadTransaction3/Data/Transaction/Balance |
ReadTransactionsDetail | MerchantDetails | 0..1 | OBReadTransaction3/Data/Transaction/MerchantDetails |
ReadTransactionsDetail | CreditorAccount | 0..1 | OBReadTransaction3/Data/Transaction/CreditorAccount |
ReadTransactionsDetail | DebtorAccount | 0..1 | OBReadTransaction3/Data/Transaction/DebtorAccount |
ReadStatementsDetail | StatementAmount | 0..* | OBReadStatement1/Data/Statement/StatementAmount |
ReadScheduledPaymentsDetail | CreditorAgent | 0..1 | OBReadScheduledPayment1/Data/ScheduledPayment/CreditorAgent |
ReadScheduledPaymentsDetail | CreditorAccount | 0..1 | OBReadScheduledPayment1/Data/ScheduledPayment/CreditorAccount |
In addition the ReadStatementsDetail is required to access the statement file download via: /accounts/{AccountId}/statements/{StatementId}/file
...
- The camt.052 header section and trailer sections have been removed - as these are not required for a RESTful API
- Resources have been identified, and payload structures have been designed for these resources - rather than a full message (i.e., camt.052) that encompasses all resources in a report format. This has meant we've designed separate endpoints and payloads to cover:
- accounts
- balances
- beneficiaries
- direct-debits
- offers
- party
- products
- standing-orders
- statements
- transactions
- scheduled-payments
- New payloads have been designed for beneficiaries, direct-debits, standing-orders, and products resources - as these are not in the ISO 20022 standard (or the camt.052 message)
- A DateTime element has been used instead of a complex choice element of Date and DateTime (across all API endpoints). Where time elements do not exist in ASPSP systems - the expectation is the time portion of the DateTime element will be defaulted to 00:00:00+00:00
- Variations for the accounts structure include:
- Standardised inline with the Payment API account structures
- Contains elements to identify an account Nickname, SecondaryIdentification
- Variations for the balances structure include:
- Adding a Type into the CreditLine section - to allow for multiple credit line types affecting the available balance
- DateTime element has been specified instead of a complex choice of Date and DateTime
Variations for the transactions structure include:
Renaming "entry" to "transaction" for consistency - as this is the language used in the CMA Order, and PSD2
DateTime elements used instead of a complex choice of Date and DateTime
Flattening of the structure for BankTransactionCode and ProprietaryBankTransactionCode
Additional information for an AddressLine, MerchantDetails, and a running Balance
...
OBExternalStatementAmountType1Code | UK.OBIE.ArrearsClosingBalance | The balance that is in arrears at the end of the statement period. |
OBExternalStatementAmountType1Code | UK.OBIE.AvailableBalance | The available balance is the difference between the credit limit and the account balance – how much is avaialble to spend. |
OBExternalStatementAmountType1Code | UK.OBIE.AverageBalanceWhenInCredit | The average daily balance when the account is in crebit during the statement period. |
OBExternalStatementAmountType1Code | UK.OBIE.AverageBalanceWhenInDebit | The average daily balance when the account is in debit during the statement period. |
OBExternalStatementAmountType1Code | UK.OBIE.AverageDailyBalance | The average daily balance during the statement period. An average daily balance adds the closing balances at the end of each day in a given period of time and divides the sum by the number of calendar days in that period. |
OBExternalStatementAmountType1Code | UK.OBIE.BalanceTransferClosingBalance | The component of balance that relates to balance transfers at the end of the statement period. |
OBExternalStatementAmountType1Code | UK.OBIE.CashClosingBalance | The component of balance that relates to cash at the end of the statement period. |
OBExternalStatementAmountType1Code | UK.OBIE.ClosingBalance | The ending balance or closing balance at the end of the current statement period. |
OBExternalStatementAmountType1Code | UK.OBIE.CreditLimit | The credit limit is the total amount of credit available to a borrower, including any amount already borrowed. |
OBExternalStatementAmountType1Code | UK.OBIE.CurrentPayment | The total payments received since the last period. |
OBExternalStatementAmountType1Code | UK.OBIE.DirectDebitPaymentDue | The total direct debit payments due for current statement period. |
OBExternalStatementAmountType1Code | UK.OBIE.FSCSInsurance | The amount under which the FSCS scheme will protect consumers when authorised financial services firms fail. |
OBExternalStatementAmountType1Code | UK.OBIE.MinimumPaymentDue | The minimum payment required for the current statement period. |
OBExternalStatementAmountType1Code | UK.OBIE.PendingTransactionsBalance | The total pending transactions balance at the end of the statement period. |
OBExternalStatementAmountType1Code | UK.OBIE.PreviousClosingBalance | The closing balance of the previous statement. |
OBExternalStatementAmountType1Code | UK.OBIE.PreviousPayment | The previous payment amount in the last statement period. |
OBExternalStatementAmountType1Code | UK.OBIE.PurchaseClosingBalance | The component of balance that relates to purchases at the end of the statement period. |
OBExternalStatementAmountType1Code | UK.OBIE.StartingBalance | The new balance or starting balance carried forward since last statement period. |
OBExternalStatementAmountType1Code | UK.OBIE.TotalAdjustments | Total adjustments to the account during the statement period. |
OBExternalStatementAmountType1Code | UK.OBIE.TotalCashAdvances | A cash advance is a short-term loan from a bank or alternative lender. The term also refers to a service provided by many credit card issuers allowing cardholders to withdraw a certain amount of cash. |
OBExternalStatementAmountType1Code | UK.OBIE.TotalCharges | The total charges including interest, late payment fee during the statement period. |
OBExternalStatementAmountType1Code | UK.OBIE.TotalCredits | Total amount credited in the account during the statement period. |
OBExternalStatementAmountType1Code | UK.OBIE.TotalDebits | Total amount debited (money taken out from account) from the account during the statement period. |
OBExternalStatementAmountType1Code | UK.OBIE.TotalPurchases | The total transactions made during that statement period. |
OBExternalStatementBenefitType1Code | UK.OBIE.Cashback | Cash back amount received during the statement period. |
OBExternalStatementBenefitType1Code | UK.OBIE.Insurance | Insurance amount during the statement period. |
OBExternalStatementBenefitType1Code | UK.OBIE.TravelDiscount | Trave discound amount received during the statement period. |
OBExternalStatementBenefitType1Code | UK.OBIE.TravelInsurance | Travel insurance amount during the statement period. |
OBExternalStatementDateTimeType1Code | UK.OBIE.BalanceTransferPromoEnd | The date the balance transfer promo rate will end. |
OBExternalStatementDateTimeType1Code | UK.OBIE.DirectDebitDue | The date that the direct debit payment is due for the current statement. |
OBExternalStatementDateTimeType1Code | UK.OBIE.LastPayment | The date than an account holder must make the payment for the previous statement period. |
OBExternalStatementDateTimeType1Code | UK.OBIE.LastStatement | The date on which the last statement was made available to account holder. |
OBExternalStatementDateTimeType1Code | UK.OBIE.NextStatement | The date on which the next statement will be made available to account holder. |
OBExternalStatementDateTimeType1Code | UK.OBIE.PaymentDue | The date than an account holder must make the payment for the current statement period. |
OBExternalStatementDateTimeType1Code | UK.OBIE.PurchasePromoEnd | The date the purchase promo rate will end. |
OBExternalStatementDateTimeType1Code | UK.OBIE.StatementAvailable | The date on which the current statement was made available to account holder. |
OBExternalStatementFeeType1Code | UK.OBIE.Annual | Annual fees charged during the statement period. |
OBExternalStatementFeeType1Code | UK.OBIE.BalanceTransfer | Balance transfer fees charged during the statement period. |
OBExternalStatementFeeType1Code | UK.OBIE.CashAdvance | Cash advance fees charged during the statement period. |
OBExternalStatementFeeType1Code | UK.OBIE.CashTransaction | Cash transaction fees charged during the statement period. |
OBExternalStatementFeeType1Code | UK.OBIE.ForeignCashTransaction | Foreign cash transaction fees charged during the statement period. |
OBExternalStatementFeeType1Code | UK.OBIE.ForeignTransaction | Foreign transaction fees charged during the statement period. |
OBExternalStatementFeeType1Code | UK.OBIE.Gambling | Gambling transaction fees charged during the statement period. |
OBExternalStatementFeeType1Code | UK.OBIE.LatePayment | Late payment fees charged during the statement period. |
OBExternalStatementFeeType1Code | UK.OBIE.MoneyTransfer | Money transfer fees charged during the statement period. |
OBExternalStatementFeeType1Code | UK.OBIE.Monthly | Monthly account fees charged during the statement period. |
OBExternalStatementFeeType1Code | UK.OBIE.Overlimit | Over limit fees charged during the statement period.. |
OBExternalStatementFeeType1Code | UK.OBIE.PostalOrder | Postal order fees charged during the statement period. |
OBExternalStatementFeeType1Code | UK.OBIE.PrizeEntry | Prize entry fees charged during the statement period. |
OBExternalStatementFeeType1Code | UK.OBIE.StatementCopy | Statement copy fees charged during the statement period. |
OBExternalStatementFeeType1Code | UK.OBIE.Total | Total fees charges during the statement period. |
OBExternalStatementInterestType1Code | UK.OBIE.BalanceTransfer | Interest on balance transfers. |
OBExternalStatementInterestType1Code | UK.OBIE.Cash | Interest on cash advances. |
OBExternalStatementInterestType1Code | UK.OBIE.EstimatedNext | The estimated interest that will be charged if the closing balance is not paid in full. |
OBExternalStatementInterestType1Code | UK.OBIE.Purchase | Interest on purchases. |
OBExternalStatementInterestType1Code | UK.OBIE.Total | Total interest charges during the statement period. |
OBExternalStatementRateType1Code | UK.OBIE.AnnualBalanceTransfer | Annual interest rate charged on balance transfer from other service provider. |
OBExternalStatementRateType1Code | UK.OBIE.AnnualBalanceTransferAfterPromo | Annual interest rate charged on balance transfer from other service provider after promotional period. |
OBExternalStatementRateType1Code | UK.OBIE.AnnualBalanceTransferPromo | Annual interest rate charged on balance transfer from other service provider during promotional period. |
OBExternalStatementRateType1Code | UK.OBIE.AnnualCash | Annual interest rate charged on cash advance. |
OBExternalStatementRateType1Code | UK.OBIE.AnnualPurchase | Annual interest rate charged on purchases. |
OBExternalStatementRateType1Code | UK.OBIE.AnnualPurchaseAfterPromo | Annual interest rate charged on purchases from after promotional period. |
OBExternalStatementRateType1Code | UK.OBIE.AnnualPurchasePromo | Annual interest rate charged on purchases from during promotional period. |
OBExternalStatementRateType1Code | UK.OBIE.MonthlyBalanceTransfer | Monthly interest rate charged on balance transfer from other service provider. |
OBExternalStatementRateType1Code | UK.OBIE.MonthlyCash | Monthly interest rate charged on cash advance. |
OBExternalStatementRateType1Code | UK.OBIE.MonthlyPurchase | Monthly interest rate charged on purchases. |
OBExternalStatementValueType1Code | UK.OBIE.AirMilesPoints | Air miles points at the end of the statement period. |
OBExternalStatementValueType1Code | UK.OBIE.AirMilesPointsBalance | Air miles points at the end of the statement period. |
OBExternalStatementValueType1Code | UK.OBIE.Credits | Total number of credits in statement period. |
OBExternalStatementValueType1Code | UK.OBIE.Debits | Total number of debits in statement period. |
OBExternalStatementValueType1Code | UK.OBIE.HotelPoints | Hotel points at the end of the statement period. |
OBExternalStatementValueType1Code | UK.OBIE.HotelPointsBalance | Hotel points at the end of the statement period. |
OBExternalStatementValueType1Code | UK.OBIE.RetailShoppingPoints | Retail shopping points at the end of the statement period. |
OBExternalStatementValueType1Code | UK.OBIE.RetailShoppingPointsBalance | Retail shopping points at the end of the statement period. |
...
The Swagger Specification for Account Information APIs can be downloaded from the following links: