openapi: 3.0.0
info:
title: Account and Transaction API Specification Account Access Products API
description: Swagger for Account and Transaction API Specification
termsOfService: https://www.openbanking.org.uk/terms
contact:
name: Service Desk
email: ServiceDesk@openbanking.org.uk
license:
name: open-licence
url: https://www.openbanking.org.uk/open-licence
version: 3.1.11
servers:
- url: /open-banking/v3.1/aisp
tags:
- name: Products
paths:
/accounts/{AccountId}/product:
get:
tags:
- Products
summary: Get Products
operationId: GetAccountsAccountIdProduct
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/x-fapi-auth-date'
- $ref: '#/components/parameters/x-fapi-customer-ip-address'
- $ref: '#/components/parameters/x-fapi-interaction-id'
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/x-customer-user-agent'
responses:
200:
$ref: '#/components/responses/200AccountsAccountIdProductRead'
400:
$ref: '#/components/responses/400Error'
401:
$ref: '#/components/responses/401Error'
403:
$ref: '#/components/responses/403Error'
404:
$ref: '#/components/responses/404Error'
405:
$ref: '#/components/responses/405Error'
406:
$ref: '#/components/responses/406Error'
429:
$ref: '#/components/responses/429Error'
500:
$ref: '#/components/responses/500Error'
security:
- PSUOAuth2Security:
- accounts
/products:
get:
tags:
- Products
summary: Get Products
operationId: GetProducts
parameters:
- $ref: '#/components/parameters/x-fapi-auth-date'
- $ref: '#/components/parameters/x-fapi-customer-ip-address'
- $ref: '#/components/parameters/x-fapi-interaction-id'
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/x-customer-user-agent'
responses:
200:
$ref: '#/components/responses/200ProductsRead'
400:
$ref: '#/components/responses/400Error'
401:
$ref: '#/components/responses/401Error'
403:
$ref: '#/components/responses/403Error'
404:
$ref: '#/components/responses/404Error'
405:
$ref: '#/components/responses/405Error'
406:
$ref: '#/components/responses/406Error'
429:
$ref: '#/components/responses/429Error'
500:
$ref: '#/components/responses/500Error'
security:
- PSUOAuth2Security:
- accounts
components:
schemas:
ISODateTime:
description: "All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00"
type: string
format: date-time
OB_InterestRateType1Code_0:
description: Rate type for overdraft fee/charge (where it is charged in terms of a rate rather than an amount)
type: string
enum:
- INBB
- INFR
- INGR
- INLR
- INNE
- INOT
OB_Amount1_4:
description: Cap amount charged for a fee/charge (where it is charged in terms of an amount rather than a rate)
type: string
pattern: ^(-?\d{1,14}){1}(\.\d{1,4}){0,1}$
OB_FeeFrequency1Code_0:
description: Frequency at which the overdraft charge is applied to the account
type: string
enum:
- FEAC
- FEAO
- FECP
- FEDA
- FEHO
- FEI
- FEMO
- FEOA
- FEOT
- FEPC
- FEPH
- FEPO
- FEPS
- FEPT
- FEPTA
- FEPTP
- FEQU
- FESM
- FEST
- FEWE
- FEYE
OB_OtherCodeType1_6:
type: object
required:
- Name
- Description
description: Other application frequencies not covered in the standard code list
properties:
Code:
$ref: '#/components/schemas/OB_CodeMnemonic'
Name:
$ref: '#/components/schemas/Name_4'
Description:
$ref: '#/components/schemas/Description_3'
additionalProperties: false
OBErrorResponse1:
description: An array of detail error codes, and messages, and URLs to documentation to help remediation.
type: object
properties:
Code:
description: High level textual error code, to help categorize the errors.
type: string
minLength: 1
maxLength: 40
Id:
description: A unique reference for the error instance, for audit purposes, in case of unknown/unclassified errors.
type: string
minLength: 1
maxLength: 40
Message:
description: Brief Error message, e.g., 'There is something wrong with the request parameters provided'
type: string
minLength: 1
maxLength: 500
Errors:
items:
$ref: '#/components/schemas/OBError1'
type: array
minItems: 1
required:
- Code
- Message
- Errors
additionalProperties: false
Number_1:
description: fee/charges are captured dependent on the number of occurrences rather than capped at a particular amount
type: integer
OB_OtherCodeType1_5:
type: object
required:
- Name
- Description
description: Other fee rate type which is not in the standard rate type list
properties:
Code:
$ref: '#/components/schemas/OB_CodeMnemonic'
Name:
$ref: '#/components/schemas/Name_4'
Description:
$ref: '#/components/schemas/Description_3'
additionalProperties: false
Meta:
title: MetaData
type: object
description: Meta Data relevant to the payload
properties:
TotalPages:
type: integer
format: int32
FirstAvailableDateTime:
$ref: '#/components/schemas/ISODateTime'
LastAvailableDateTime:
$ref: '#/components/schemas/ISODateTime'
additionalProperties: false
OB_InterestCalculationMethod1Code:
description: Methods of calculating interest
type: string
enum:
- ITCO
- ITOT
- ITSI
OB_InterestRateType1Code_1:
description: Rate type for Fee/Charge (where it is charged in terms of a rate rather than an amount)
type: string
enum:
- INBB
- INFR
- INGR
- INLR
- INNE
- INOT
OB_Period1Code:
description: Period e.g. day, week, month etc. for which the fee/charge is capped
type: string
enum:
- PACT
- PDAY
- PHYR
- PMTH
- PQTR
- PWEK
- PYER
OBError1:
type: object
properties:
ErrorCode:
description: Low level textual error code, e.g., UK.OBIE.Field.Missing
type: string
x-namespaced-enum:
- UK.OBIE.Field.Expected
- UK.OBIE.Field.Invalid
- UK.OBIE.Field.InvalidDate
- UK.OBIE.Field.Missing
- UK.OBIE.Field.Unexpected
- UK.OBIE.Header.Invalid
- UK.OBIE.Header.Missing
- UK.OBIE.Reauthenticate
- UK.OBIE.Resource.ConsentMismatch
- UK.OBIE.Resource.InvalidConsentStatus
- UK.OBIE.Resource.InvalidFormat
- UK.OBIE.Resource.NotFound
- UK.OBIE.Rules.AfterCutOffDateTime
- UK.OBIE.Rules.DuplicateReference
- UK.OBIE.Signature.Invalid
- UK.OBIE.Signature.InvalidClaim
- UK.OBIE.Signature.Malformed
- UK.OBIE.Signature.Missing
- UK.OBIE.Signature.MissingClaim
- UK.OBIE.Signature.Unexpected
- UK.OBIE.UnexpectedError
- UK.OBIE.Unsupported.AccountIdentifier
- UK.OBIE.Unsupported.AccountSecondaryIdentifier
- UK.OBIE.Unsupported.Currency
- UK.OBIE.Unsupported.Frequency
- UK.OBIE.Unsupported.LocalInstrument
- UK.OBIE.Unsupported.Scheme
Message:
description: 'A 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 field'
type: string
minLength: 1
maxLength: 500
Path:
description: Recommended but optional reference to the JSON Path of the field with error, e.g., Data.Initiation.InstructedAmount.Currency
type: string
minLength: 1
maxLength: 500
Url:
description: URL to help remediate the problem, or provide more information, or to API Reference, or help etc
type: string
required:
- ErrorCode
- Message
additionalProperties: false
minProperties: 1
Links:
type: object
description: Links relevant to the payload
properties:
Self:
type: string
format: uri
First:
type: string
format: uri
Prev:
type: string
format: uri
Next:
type: string
format: uri
Last:
type: string
format: uri
additionalProperties: false
required:
- Self
OBSupplementaryData1:
type: object
properties: {}
additionalProperties: true
description: Additional information that can not be captured in the structured fields and/or any other specific block.
OB_OtherCodeType1_8:
type: object
required:
- Name
- Description
description: Other fee rate type which is not available in the standard code set
properties:
Code:
$ref: '#/components/schemas/OB_CodeMnemonic'
Name:
$ref: '#/components/schemas/Name_4'
Description:
$ref: '#/components/schemas/Description_3'
additionalProperties: false
Number_0:
description: Indicates whether the advertised overdraft rate is guaranteed to be offered to a borrower by the bank e.g. if it�s part of a government scheme, or whether the rate may vary dependent on the applicant�s circumstances.
type: integer
OB_OtherCodeType1_2:
type: object
required:
- Name
- Description
description: Other calculation frequency which is not available in the standard code set.
properties:
Code:
$ref: '#/components/schemas/OB_CodeMnemonic'
Name:
$ref: '#/components/schemas/Name_4'
Description:
$ref: '#/components/schemas/Description_3'
additionalProperties: false
OB_MinMaxType1Code:
description: Min Max type
type: string
enum:
- FMMN
- FMMX
OB_InterestFixedVariableType1Code:
description: Type of interest rate, Fixed or Variable
type: string
enum:
- INFI
- INVA
OB_FeeFrequency1Code_1:
description: How often is the overdraft fee/charge calculated for the account.
type: string
enum:
- FEAC
- FEAO
- FECP
- FEDA
- FEHO
- FEI
- FEMO
- FEOA
- FEOT
- FEPC
- FEPH
- FEPO
- FEPS
- FEPT
- FEPTA
- FEPTP
- FEQU
- FESM
- FEST
- FEWE
- FEYE
OB_Rate1_0:
description: Rate charged for overdraft fee/charge (where it is charged in terms of a rate rather than an amount)
type: string
pattern: ^(-?\d{1,3}){1}(\.\d{1,4}){0,1}$
OB_FeeFrequency1Code_4:
description: Period e.g. day, week, month etc. for which the fee/charge is capped
type: string
enum:
- FEAC
- FEAO
- FECP
- FEDA
- FEHO
- FEI
- FEMO
- FEOA
- FEOT
- FEPC
- FEPH
- FEPO
- FEPS
- FEPT
- FEPTA
- FEPTP
- FEQU
- FESM
- FEST
- FEWE
- FEYE
OBBCAData1:
type: object
title: BCA
properties:
ProductDetails:
type: object
title: ProductDetails
properties:
Segment:
description: "Market segmentation is a marketing term referring to the aggregating of prospective buyers into groups, or segments, that have common needs and respond similarly to a marketing action. Market segmentation enables companies to target different categories of consumers who perceive the full value of certain products and services differently from one another.\n\nRead more: Market Segmentation http://www.investopedia.com/terms/m/marketsegmentation.asp#ixzz4gfEEalTd \nWith respect to BCA products, they are segmented in relation to different markets that they wish to focus on. "
title: Segment
type: array
items:
description: "Market segmentation is a marketing term referring to the aggregating of prospective buyers into groups, or segments, that have common needs and respond similarly to a marketing action. Market segmentation enables companies to target different categories of consumers who perceive the full value of certain products and services differently from one another.\n\nRead more: Market Segmentation http://www.investopedia.com/terms/m/marketsegmentation.asp#ixzz4gfEEalTd \nWith respect to BCA products, they are segmented in relation to different markets that they wish to focus on. "
type: string
enum:
- ClientAccount
- Standard
- NonCommercialChaitiesClbSoc
- NonCommercialPublicAuthGovt
- Religious
- SectorSpecific
- Startup
- Switcher
FeeFreeLength:
description: The length/duration of the fee free period
title: FeeFreeLength
type: number
format: float
FeeFreeLengthPeriod:
description: The unit of period (days, weeks, months etc.) of the promotional length
title: FeeFreeLengthPeriod
type: string
enum:
- Day
- Half Year
- Month
- Quarter
- Week
- Year
Notes:
description: Optional additional notes to supplement the Core product details
title: Notes
type: array
items:
description: maxLength 2000 text
type: string
minLength: 1
maxLength: 2000
additionalProperties: false
CreditInterest:
description: Details about the interest that may be payable to the BCA account holders
type: object
title: CreditInterest
properties:
TierBandSet:
description: The group of tiers or bands for which credit interest can be applied.
type: array
title: TierBandSet
items:
description: The group of tiers or bands for which credit interest can be applied.
type: object
properties:
TierBandMethod:
description: 'The methodology of how credit interest is paid/applied. It can be:-
1. Banded
Interest rates are banded. i.e. Increasing rate on whole balance as balance increases.
2. Tiered
Interest rates are tiered. i.e. increasing rate for each tier as balance increases, but interest paid on tier fixed for that tier and not on whole balance.
3. Whole
The same interest rate is applied irrespective of the BCA balance'
title: TierBandMethod
type: string
enum:
- Banded
- Tiered
- Whole
CalculationMethod:
description: Methods of calculating interest
title: CalculationMethod
type: string
enum:
- Compound
- SimpleInterest
Destination:
description: Describes whether accrued interest is payable only to the BCA or to another bank account
title: Destination
type: string
enum:
- PayAway
- SelfCredit
Notes:
description: Optional additional notes to supplement the Tier Band Set details
title: Notes
type: array
items:
description: maxLength 2000 text
type: string
minLength: 1
maxLength: 2000
TierBand:
description: Tier Band Details
type: array
title: TierBand
items:
description: Tier Band Details
type: object
properties:
Identification:
description: Unique and unambiguous identification of a Tier Band for a BCA.
title: Identification
type: string
minLength: 1
maxLength: 35
TierValueMinimum:
description: Minimum deposit value for which the credit interest tier applies.
title: TierValueMinimum
type: string
pattern: ^(-?\d{1,14}){1}(\.\d{1,4}){0,1}$
TierValueMaximum:
description: Maximum deposit value for which the credit interest tier applies.
title: TierValueMaximum
type: string
pattern: ^(-?\d{1,14}){1}(\.\d{1,4}){0,1}$
CalculationFrequency:
description: How often is credit interest calculated for the account.
title: CalculationFrequency
type: string
enum:
- Daily
- HalfYearly
- Monthly
- Other
- Quarterly
- PerStatementDate
- Weekly
- Yearly
ApplicationFrequency:
description: How often is interest applied to the BCA for this tier/band i.e. how often the financial institution pays accumulated interest to the customer's BCA.
title: ApplicationFrequency
type: string
enum:
- Daily
- HalfYearly
- Monthly
- Other
- Quarterly
- PerStatementDate
- Weekly
- Yearly
DepositInterestAppliedCoverage:
description: Amount on which Interest applied.
title: DepositInterestAppliedCoverage
type: string
enum:
- Banded
- Tiered
- Whole
FixedVariableInterestRateType:
description: Type of interest rate, Fixed or Variable
title: FixedVariableInterestRateType
type: string
enum:
- Fixed
- Variable
AER:
description: "The annual equivalent rate (AER) is interest that is calculated under the assumption that any interest paid is combined with the original balance and the next interest payment will be based on the slightly higher account balance. Overall, this means that interest can be compounded several times in a year depending on the number of times that interest payments are made. \n\nRead more: Annual Equivalent Rate (AER) http://www.investopedia.com/terms/a/aer.asp#ixzz4gfR7IO1A"
title: AER
type: string
pattern: ^(-?\d{1,3}){1}(\.\d{1,4}){0,1}$
BankInterestRateType:
description: Interest rate types, other than AER, which financial institutions may use to describe the annual interest rate payable to the BCA.
title: BankInterestRateType
type: string
enum:
- Gross
- Other
BankInterestRate:
description: Bank Interest for the BCA product
title: BankInterestRate
type: string
pattern: ^(-?\d{1,3}){1}(\.\d{1,4}){0,1}$
Notes:
description: Optional additional notes to supplement the Tier Band details
title: Notes
type: array
items:
description: maxLength 2000 text
type: string
minLength: 1
maxLength: 2000
OtherBankInterestType:
description: Other interest rate types which are not available in the standard code list
type: object
title: OtherBankInterestType
properties:
Code:
description: The four letter Mnemonic used within an XML file to identify a code
title: Code
type: string
pattern: ^\w{0,4}$
minLength: 0
maxLength: 4
Name:
description: Long name associated with the code
title: Name
type: string
minLength: 1
maxLength: 70
Description:
description: Description to describe the purpose of the code
title: Description
type: string
minLength: 1
maxLength: 350
additionalProperties: false
required:
- Name
- Description
OtherApplicationFrequency:
description: Other application frequencies that are not available in the standard code list
type: object
title: OtherApplicationFrequency
properties:
Code:
description: The four letter Mnemonic used within an XML file to identify a code
title: Code
type: string
pattern: ^\w{0,4}$
minLength: 0
maxLength: 4
Name:
description: Long name associated with the code
title: Name
type: string
minLength: 1
maxLength: 70
Description:
description: Description to describe the purpose of the code
title: Description
type: string
minLength: 1
maxLength: 350
additionalProperties: false
required:
- Name
- Description
OtherCalculationFrequency:
description: Other calculation frequency which is not available in the standard code set.
type: object
title: OtherCalculationFrequency
properties:
Code:
description: The four letter Mnemonic used within an XML file to identify a code
title: Code
type: string
pattern: ^\w{0,4}$
minLength: 0
maxLength: 4
Name:
description: Long name associated with the code
title: Name
type: string
minLength: 1
maxLength: 70
Description:
description: Description to describe the purpose of the code
title: Description
type: string
minLength: 1
maxLength: 350
additionalProperties: false
required:
- Name
- Description
required:
- TierValueMinimum
- ApplicationFrequency
- FixedVariableInterestRateType
- AER
minItems: 1
required:
- TierBandMethod
- Destination
- TierBand
minItems: 1
additionalProperties: false
required:
- TierBandSet
Overdraft:
description: Borrowing details
type: object
title: Overdraft
properties:
Notes:
description: Associated Notes about the overdraft rates
title: Notes
type: array
items:
description: maxLength 2000 text
type: string
minLength: 1
maxLength: 2000
OverdraftTierBandSet:
description: Tier band set details
type: array
title: OverdraftTierBandSet
items:
description: Tier band set details
type: object
properties:
TierBandMethod:
description: "The methodology of how overdraft is charged. It can be:\n'Whole' Where the same charge/rate is applied to the entirety of the overdraft balance (where charges are applicable). \n'Tiered' Where different charges/rates are applied dependent on overdraft maximum and minimum balance amount tiers defined by the lending financial organisation\n'Banded' Where different charges/rates are applied dependent on overdraft maximum and minimum balance amount bands defined by a government organisation."
title: TierBandMethod
type: string
enum:
- Banded
- Tiered
- Whole
OverdraftType:
description: An overdraft can either be 'committed' which means that the facility cannot be withdrawn without reasonable notification before it's agreed end date, or 'on demand' which means that the financial institution can demand repayment at any point in time.
title: OverdraftType
type: string
enum:
- Committed
- OnDemand
Identification:
description: Unique and unambiguous identification of a Tier Band for a overdraft product.
title: Identification
type: string
minLength: 1
maxLength: 35
AuthorisedIndicator:
description: Indicates if the Overdraft is authorised (Y) or unauthorised (N)
title: AuthorisedIndicator
type: boolean
BufferAmount:
description: 'When a customer exceeds their credit limit, a financial institution will not charge the customer unauthorised overdraft charges if they do not exceed by more than the buffer amount. Note: Authorised overdraft charges may still apply.'
title: BufferAmount
type: string
pattern: ^(-?\d{1,14}){1}(\.\d{1,4}){0,1}$
Notes:
description: Optional additional notes to supplement the overdraft Tier Band Set details
title: Notes
type: array
items:
description: maxLength 2000 text
type: string
minLength: 1
maxLength: 2000
OverdraftTierBand:
description: Provides overdraft details for a specific tier or band
type: array
title: OverdraftTierBand
items:
description: Provides overdraft details for a specific tier or band
type: object
properties:
Identification:
description: Unique and unambiguous identification of a Tier Band for a overdraft.
title: Identification
type: string
minLength: 1
maxLength: 35
TierValueMin:
description: Minimum value of Overdraft Tier/Band
title: TierValueMin
type: string
pattern: ^(-?\d{1,14}){1}(\.\d{1,4}){0,1}$
TierValueMax:
description: Maximum value of Overdraft Tier/Band
title: TierValueMax
type: string
pattern: ^(-?\d{1,14}){1}(\.\d{1,4}){0,1}$
EAR:
description: 'EAR means Effective Annual Rate and/or Equivalent Annual Rate (frequently
used interchangeably), being the actual annual interest rate of an Overdraft.'
title: EAR
type: string
pattern: ^(-?\d{1,3}){1}(\.\d{1,4}){0,1}$
RepresentativeAPR:
description: An annual percentage rate (APR) is the annual rate charged for borrowing or earned through an investment. APR is expressed as a percentage that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction but does not take compounding into account.
title: RepresentativeAPR
type: string
pattern: ^(-?\d{1,3}){1}(\.\d{1,4}){0,1}$
AgreementLengthMin:
description: Specifies the minimum length of a band for a fixed overdraft agreement
title: AgreementLengthMin
type: number
format: float
AgreementLengthMax:
description: Specifies the maximum length
# --- truncated at 32 KB (309 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/natwest/refs/heads/main/openapi/natwest-products-api-openapi.yml