Coutts Products API
The Products API from Coutts — 2 operation(s) for products.
The Products API from Coutts — 2 operation(s) for products.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/coutts-products-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Account and Transaction API Specification Products API
description: 'Swagger for Account and Transaction API Specification.
**Please Note**: There are no optional fields, if a field is not marked as “Required” it is a Conditional field.
'
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: 4.0.1
servers:
- url: /open-banking/v4.0/aisp
tags:
- name: Products
paths:
/accounts/{AccountId}/product:
get:
tags:
- Products
summary: Get Product for an AccountId
description: Enables an AISP to retrieve the account product information for a specific PSU account.
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'
- $ref: '#/components/parameters/x-client-id'
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
description: Enables an AISP to retrieve the account product information for account(s) that the PSU has consented to.
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'
- $ref: '#/components/parameters/x-client-id'
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:
OB_Amount1_2:
description: Amount charged for an overdraft 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}$
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
OB_OverdraftFeeType1Code:
description: Overdraft fee type
type: string
enum:
- FBAO
- FBAR
- FBEB
- FBIT
- FBOR
- FBOS
- FBSC
- FBTO
- FBUB
- FBUT
- FTOT
- FTUT
OB_OtherCodeType1_1:
type: object
required:
- Name
- Description
description: Other application frequencies that are not available 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
OBError1:
type: object
properties:
ErrorCode:
$ref: '#/components/schemas/OBExternalStatusReason1Code'
Message:
description: 'A description of the error that occurred. e.g., ''A mandatory field isn''t supplied'' or ''RequestedExecutionDateTime must be in future''
OBL 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
additionalProperties: false
minProperties: 1
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
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
Name_4:
description: Long name associated with the code
type: string
minLength: 1
maxLength: 70
OB_OtherCodeType1_3:
type: object
required:
- Name
- Description
description: Other Fee 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
OB_InterestCalculationMethod1Code:
description: Methods of calculating interest
type: string
enum:
- ITCO
- ITOT
- ITSI
OB_FeeFrequency1Code_3:
description: How frequently the fee/charge is calculated
type: string
enum:
- FEAC
- FEAO
- FECP
- FEDA
- FEHO
- FEI
- FEMO
- FEOA
- FEOT
- FEPC
- FEPH
- FEPO
- FEPS
- FEPT
- FEPTA
- FEPTP
- FEQU
- FESM
- FEST
- FEWE
- FEYE
Number_1:
description: fee/charges are captured dependent on the number of occurrences rather than capped at a particular amount
type: integer
OB_FeeFrequency1Code_2:
description: How frequently the fee/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
Description_3:
description: Description to describe the purpose of the code
type: string
minLength: 1
maxLength: 350
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
OB_MinMaxType1Code:
description: Min Max type
type: string
enum:
- FMMN
- FMMX
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}$
OBReadProduct2:
type: object
required:
- Data
description: Product details of Other Product which is not available in the standard list
properties:
Data:
type: object
description: Aligning with the read write specs structure.
properties:
Product:
type: array
items:
type: object
description: Product details associated with the Account
required:
- AccountId
- ProductType
properties:
ProductName:
description: The name of the Product used for marketing purposes from a customer perspective. I.e. what the customer would recognise.
type: string
example: 321 Product
minLength: 1
maxLength: 350
ProductId:
description: Identifier within the parent organisation for the product. Must be unique in the organisation
type: string
example: 51B
minLength: 1
maxLength: 40
AccountId:
$ref: '#/components/schemas/AccountId'
SecondaryProductId:
description: Any secondary Identification which supports Product Identifier to uniquely identify the current account banking products.
type: string
example: CA78
minLength: 1
maxLength: 70
ProductType:
description: Descriptive code for the product category. For a full list refer to `OBInternalProductType1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)<br /><br /> If ProductType - "Other" is chosen, the object OtherProductType must be populated with name, and description.
type: string
example: PersonalCurrentAccount
enum:
- BusinessCurrentAccount
- CommercialCreditCard
- Other
- PersonalCurrentAccount
- SMELoan
MarketingStateId:
description: Unique and unambiguous identification of a Product Marketing State.
type: string
example: '22878123'
minLength: 1
maxLength: 35
OtherProductType:
type: object
required:
- Name
- Description
description: This field provides extension to the ProductType enumeration. If ProductType - "Other" is chosen, this field must be populated with name, and description for ASPSP specific product type.
properties:
Name:
description: Name of "Other" product type.
type: string
example: e-Wallet
minLength: 1
maxLength: 350
Description:
description: Description of "Other" product type
type: string
example: Virtual wallet
minLength: 1
maxLength: 350
ProductDetails:
type: object
properties:
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.
Read more: Market Segmentation http://www.investopedia.com/terms/m/marketsegmentation.asp#ixzz4gfEEalTd '
type: string
enum:
- GEAS
- GEBA
- GEBR
- GEBU
- GECI
- GECS
- GEFB
- GEFG
- GEG
- GEGR
- GEGS
- GEOT
- GEOV
- GEPA
- GEPR
- GERE
- GEST
- GEYA
- GEYO
- PSCA
- PSES
- PSNC
- PSNP
- PSRG
- PSSS
- PSST
- PSSW
FeeFreeLength:
description: The length/duration of the fee free period
type: integer
FeeFreeLengthPeriod:
description: The unit of period (days, weeks, months etc.) of the promotional length
type: string
enum:
- PACT
- PDAY
- PHYR
- PMTH
- PQTR
- PWEK
- PYER
MonthlyMaximumCharge:
description: The maximum relevant charges that could accrue as defined fully in Part 7 of the CMA order
type: string
pattern: ^(-?\d{1,14}){1}(\.\d{1,4}){0,1}$
Notes:
type: array
items:
description: Optional additional notes to supplement the Core product details
type: string
minLength: 1
maxLength: 2000
OtherSegment:
$ref: '#/components/schemas/OB_OtherCodeType1_0'
CreditInterest:
type: object
required:
- TierBandSet
description: Details about the interest that may be payable to the Account holders
properties:
TierBandSet:
type: array
items:
type: object
description: The group of tiers or bands for which credit interest can be applied.
required:
- TierBandMethod
- Destination
- TierBand
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 product holder''s account balance'
type: string
enum:
- INBA
- INTI
- INWH
CalculationMethod:
$ref: '#/components/schemas/OB_InterestCalculationMethod1Code'
Destination:
description: Describes whether accrued interest is payable only to the BCA or to another bank account
type: string
enum:
- INOT
- INPA
- INSC
Notes:
type: array
items:
description: Optional additional notes to supplement the Tier Band Set details
type: string
minLength: 1
maxLength: 2000
OtherCalculationMethod:
$ref: '#/components/schemas/OB_OtherCodeType1_0'
OtherDestination:
$ref: '#/components/schemas/OB_OtherCodeType1_0'
TierBand:
type: array
items:
type: object
description: Tier Band Details
required:
- TierValueMinimum
- ApplicationFrequency
- FixedVariableInterestRateType
- AER
properties:
Identification:
description: Unique and unambiguous identification of a Tier Band for the Product.
type: string
minLength: 1
maxLength: 35
TierValueMinimum:
description: Minimum deposit value for which the credit interest tier applies.
type: string
pattern: ^(-?\d{1,14}){1}(\.\d{1,4}){0,1}$
TierValueMaximum:
description: Maximum deposit value for which the credit interest tier applies.
type: string
pattern: ^(-?\d{1,14}){1}(\.\d{1,4}){0,1}$
CalculationFrequency:
description: How often is credit interest calculated for the account.
type: string
enum:
- FQAT
- FQDY
- FQHY
- FQMY
- FQOT
- FQQY
- FQSD
- FQWY
- FQYY
ApplicationFrequency:
description: How often is interest applied to the Product for this tier/band i.e. how often the financial institution pays accumulated interest to the customer's account.
type: string
enum:
- FQAT
- FQDY
- FQHY
- FQMY
- FQOT
- FQQY
- FQSD
- FQWY
- FQYY
DepositInterestAppliedCoverage:
description: Amount on which Interest applied.
type: string
enum:
- INBA
- INTI
- INWH
FixedVariableInterestRateType:
$ref: '#/components/schemas/OB_InterestFixedVariableType1Code'
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. \nRead more: Annual Equivalent Rate (AER) http://www.investopedia.com/terms/a/aer.asp#ixzz4gfR7IO1A"
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 account holder's account.
type: string
enum:
- INBB
- INFR
- INGR
- INLR
- INNE
- INOT
BankInterestRate:
description: Bank Interest for the product
type: string
pattern: ^(-?\d{1,3}){1}(\.\d{1,4}){0,1}$
Notes:
type: array
items:
description: Optional additional notes to supplement the Tier Band details
type: string
minLength: 1
maxLength: 2000
OtherBankInterestType:
type: object
required:
- Name
- Description
description: Other interest rate types which are not available in the standard code list
properties:
Code:
$ref: '#/components/schemas/OB_CodeMnemonic'
Name:
$ref: '#/components/schemas/Name_4'
Description:
$ref: '#/components/schemas/Description_3'
OtherApplicationFrequency:
$ref: '#/components/schemas/OB_OtherCodeType1_1'
OtherCalculationFrequency:
$ref: '#/components/schemas/OB_OtherCodeType1_2'
minItems: 1
minItems: 1
Overdraft:
type: object
required:
- OverdraftTierBandSet
description: Borrowing details
properties:
Notes:
type: array
items:
description: Associated Notes about the overdraft rates
type: string
minLength: 1
maxLength: 2000
OverdraftTierBandSet:
type: array
items:
type: object
description: Tier band set details
required:
- TierBandMethod
- OverdraftTierBand
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."
type: string
enum:
- INBA
- INTI
- INWH
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.
type: string
enum:
- OVCO
- OVOD
- OVOT
Identification:
description: Unique and unambiguous identification of a Tier Band for a overdraft product.
type: string
minLength: 1
maxLength: 35
AuthorisedIndicator:
description: Indicates if the Overdraft is authorised (Y) or unauthorised (N)
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.'
type: string
pattern: ^(-?\d{1,14}){1}(\.\d{1,4}){0,1}$
Notes:
type: array
items:
description: Optional additional notes to supplement the overdraft Tier Band Set details
type: string
minLength: 1
maxLength: 2000
OverdraftTierBand:
type: array
items:
type: object
description: Provides overdraft details for a specific tier or band
required:
- TierValueMin
properties:
Identification:
description: Unique and unambiguous identification of a Tier Band for a overdraft.
type: string
minLength: 1
maxLength: 35
TierValueMin:
description: Minimum value of Overdraft Tier/Band
type: string
pattern: ^(-?\d{1,14}){1}(\.\d{1,4}){0,1}$
TierValueMax:
description: Maximum value of Overdraft Tier/Band
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.'
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
type: integer
AgreementLengthMax:
description: Specifies the maximum length of a band for a fixed overdraft agreement
type: integer
AgreementPeriod:
description: Specifies the period of a fixed length overdraft agreement
type: string
enum:
- PACT
- PDAY
- PHYR
- PMTH
- PQTR
- PWEK
- PYER
OverdraftInterestChargingCoverage:
description: Refers to which interest rate is applied when interests are tiered. For example, if an overdraft balance is 2k and the interest tiers are:- 0- 500 0.1%, 500-1000 0.2%, 1000-10000 0.5%, then the applicable interest rate could either be 0.5% of the entire balance (since the account balance sits in the top interest tier) or (0.1%*500)+(0.2%*500)+(0.5%*1000). In the 1st situation, we say the interest is applied to the Whole of the account balance, and in the 2nd that it is Tiered .
# --- truncated at 32 KB (312 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/coutts/refs/heads/main/openapi/coutts-products-api-openapi.yml