openapi: 3.0.0
info:
title: Account and Transaction API Specification Account Access Consents CCC 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: CCC
description: Endpoint for getting Commercial Credit Card data
paths:
/commercial-credit-cards:
get:
tags:
- CCC
description: Gets a list of all `Commerical Credit Card` objects.
parameters:
- name: If-Modified-Since
type: string
description: Used for conditional request, to retrieve data only if modified since a given date
in: header
required: false
- name: If-None-Match
type: string
description: Used for conditional request, to retrieve data only if the given Etag value does not match
in: header
required: false
responses:
'200':
description: Successful response with a list of `Commercial Credit Card` data
headers:
Strict-Transport-Security:
type: string
description: HTTPS strict transport security header
default: max-age=31536000
Etag:
type: string
description: A unique ID identifying whether this resource has changed
Cache-Control:
type: string
description: Describes how long this response can be cached
default: max-age=28800
X-Frame-Options:
type: string
description: Prevent this request from being loaded in any iframes
default: DENY
X-Content-Type-Options:
type: string
description: Ensures each page has a content type and prevents browsers from doing MIME type sniffing
default: nosniff
schema:
type: object
properties:
meta:
title: Meta data
type: object
properties:
LastUpdated:
type: string
format: date-time
TotalResults:
type: integer
Agreement:
type: string
enum:
- Use of the APIs and any related data will be subject to the terms of the Open Licence and subject to terms and conditions
License:
description: Open Banking License
type: string
format: uri
enum:
- https://www.openbanking.org.uk/open-licence
TermsOfUse:
description: Open Banking Terms of Use
type: string
format: uri
enum:
- https://www.openbanking.org.uk/terms
required:
- LastUpdated
- TotalResults
- Agreement
- License
- TermsOfUse
additionalProperties: false
data:
type: array
items:
description: Commercial Credit Card
type: object
properties:
Organisation:
description: Organisation
type: object
properties:
ParentOrganisation:
description: Parent organisation
type: object
properties:
LEI:
description: The LEI ID of the organisation
type: string
pattern: ^[A-Z0-9]{18,18}[0-9]{2,2}$
BIC:
description: The BIC from the organisation
type: string
pattern: '[A-Z]{6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3})?'
OrganisationName:
description: Organisation Name
type: object
properties:
LegalName:
description: Legal Name of the organisation
type: string
minLength: 1
maxLength: 35
required:
- LegalName
additionalProperties: false
required:
- OrganisationName
additionalProperties: false
Brand:
description: Brand
type: object
properties:
TrademarkIPOCode:
description: 'The Intellectual Property Office (IPO) is the official body responsible for intellectual property (IP) rights including patents, designs, trademarks and copyright. (Code: UK or EU only)'
type: string
enum:
- UK
- EU
TrademarkID:
description: 'The trademark number that has been registered with the Intellectual Property Office. Note: The 2 letter IPO prefix should be omitted'
type: string
minLength: 1
maxLength: 35
required:
- TrademarkIPOCode
- TrademarkID
additionalProperties: false
required:
- ParentOrganisation
- Brand
additionalProperties: false
ProductName:
description: Name of the Commercial Credit Card
type: string
ProductType:
description: Descriptive code for the product category
type: string
enum:
- CommercialCreditCards
ProductSegment:
description: Marketing or industry segment that the product is designed for
type: array
items:
description: Marketing or industry segment that the product is designed for
type: string
enum:
- Cashback
- Corporate
- General
- Reward
- SME
ProductIdentifier:
description: Identifier within the parent organisation for the product. Must be unique in the organisation
type: string
ProductURL:
description: URL provided by the organisation which redirects to the product (on live products only). There might be more than one product at a given URL
type: array
items:
type: string
format: uri
minItems: 1
Description:
description: Product description
type: string
KeyFeatures:
description: Product key features
type: string
PaymentHoliday:
description: Indicates whether a payment holiday is possible
type: boolean
PaymentHolidayDescription:
description: Detailed description on the payment holiday if available
type: string
OtherKeyFeatures:
description: Additional Features of the card
type: string
TsandCs:
description: URL provided by the parent organisation which redirects to the current T&Cs. Only applies on live products
type: array
items:
type: string
minItems: 1
Details:
description: 'Commercial Credit Card Group '
type: object
properties:
CCSubType:
description: CCC Subtype Code
type: string
enum:
- FutureMultipleTerms
- Promotional
- Regular
CommercialCreditCardItem:
description: 'Commercial Credit Card Item '
type: object
properties:
StartPromotionOrFutureTerms:
description: Describes the start date
type: string
pattern: ^[0-9]{4}-(0[1-9]|(1[0|1|2]))-((0[1-9])|((1|2)[0-9])|(30|31))$
StopPromotionOrFutureTerms:
description: Describes the end date
type: string
pattern: ^[0-9]{4}-(0[1-9]|(1[0|1|2]))-((0[1-9])|((1|2)[0-9])|(30|31))$
LengthPromotionalInDays:
description: Describes the length if only a duration is given instead of a date
type: integer
DateOfChange:
description: Date of the change if it refers to future terms
type: string
pattern: ^[0-9]{4}-(0[1-9]|(1[0|1|2]))-((0[1-9])|((1|2)[0-9])|(30|31))$
MinimumCreditLimit:
description: Minimum £500, maximum subject to status
type: string
pattern: ^-?\d{1,10}\.\d{1,2}$
RepaymentFrequency:
description: Repayment frequency
type: string
enum:
- Daily
- Flexible
- Fortnightly
- HalfYearly
- Monthly
- Quarterly
- Weekly
- Yearly
APRRate:
description: Annual Percentage Rate
type: string
pattern: ^-?\d{1,3}\.\d{1,4}$
BalanceTransferInterestRatePeriod:
description: The period used to define the specific interest rate for balance transfers
type: string
enum:
- Annual
- Monthly
PurchaseRate:
description: Purchase rate
type: string
pattern: ^-?\d{1,3}\.\d{1,4}$
BalanceTransferRate:
description: Balance transfer rate
type: string
pattern: ^-?\d{1,3}\.\d{1,4}$
CashAdvanceRate:
description: Cash advance rate
type: string
pattern: ^-?\d{1,3}\.\d{1,4}$
OverLimitFee:
description: Fee applicable if the card was credited over its limit
type: string
pattern: ^-?\d{1,10}\.\d{1,2}$
MaximumNumberOfCardsPermitted:
description: The maximum numbers of cards per account
type: integer
CardScheme:
description: Card Scheme Code
type: string
enum:
- Cashcard
- CreditMastercard
- CreditVisa
AbilityToSetIndividualLimits:
description: The ability to set separate limts on different cards in one account
type: boolean
AccessToOnlineDataReportingTool:
description: Describes whether the account have access to an online tool for reprting on expenditure
type: boolean
CashWithdrawalsAllowed:
description: Describes whether cash withdrawals are allowed
type: boolean
ConvenienceCheque:
description: Describes whether the card account allow convenience cheques
type: boolean
DaysInterestFreeCreditIfPaymentFull:
description: Describes how many interest free days are given if the card is fully paid at each term
type: integer
AnnualAccountFeeType:
description: Details on annual account fee, such as non payable when there is a turnover above a certain sum
type: string
IssuingEmergencyCardsFees:
description: Amount payable for issuing an emergency card
type: string
pattern: ^-?\d{1,10}\.\d{1,2}$
AnnualFeeAmount:
description: Standard fee on the card
type: string
pattern: ^-?\d{1,10}\.\d{1,2}$
ChequeFeePercent:
description: Percentage fee on convenience cheques
type: string
pattern: ^-?\d{1,3}\.\d{1,4}$
CashbackPercent:
description: Percent of cashback on amount spend
type: string
pattern: ^-?\d{1,3}\.\d{1,4}$
FeesOnCheque:
description: Percentage fee on a convenince cheques
type: string
pattern: ^-?\d{1,10}\.\d{1,2}$
MinimumRepaymentPercentage:
description: Minimum repayment as percentage
type: string
pattern: ^-?\d{1,3}\.\d{1,4}$
MinimumRepaymentAmount:
description: Minimum repayment amount
type: string
pattern: ^-?\d{1,10}\.\d{1,2}$
PaymentDaysAfterStatement:
description: How many days after statement is the payment expected
type: integer
AllocationofRepayment:
description: Allocation rules for repayment
type: string
RepaymentNotes:
description: Additional notes
type: string
MinimumLendingAmount:
description: The minimum lending available
type: string
pattern: ^-?\d{1,10}\.\d{1,2}$
StatementAtAccountLevel:
description: Describes whether there is a statement at account level
type: boolean
StatementAtPersonalLevel:
description: Describes whether there is a statement at card level
type: boolean
PaymentSchemeExchangeRate:
description: The base exchange rate used in settlement of the transaction between issuer and scheme
type: string
pattern: ^-?\d{1,3}\.\d{1,4}$
ExchangeRateAdjustment:
description: The margin added, by certain card issuers, to the scheme rate in order to arrive at the exchange rate qouted as the reference exchange rate to the cardholder
type: string
pattern: ^-?\d{1,3}\.\d{1,4}$
PaymentSchemeExchangeFee:
description: Any payment network fee applied to some or all non-sterling transactions that the card issuer recover directly from the cardholder
type: string
pattern: ^-?\d{1,10}\.\d{1,2}$
PaymentSchemeExchangeFeeRate:
description: Any payment network fee rate applied to some or all non-sterling transactions that the card issuer recover directly from the cardholder
type: string
pattern: ^-?\d{1,3}\.\d{1,4}$
NonSterlingTransactionFee:
description: A fee applied to all non-Sterling card transactions
type: string
pattern: ^-?\d{1,10}\.\d{1,2}$
NonSterlingTransactionFeeRate:
description: A fee rate applied to all non-Sterling card transactions
type: string
pattern: ^-?\d{1,3}\.\d{1,4}$
NonSterlingPurchaseFee:
description: An additional fee applied to certain card retail transactions
type: string
pattern: ^-?\d{1,10}\.\d{1,2}$
NonSterlingPurchaseFeeRate:
description: An additional fee rate applied to certain card retail transactions
type: string
pattern: ^-?\d{1,3}\.\d{1,4}$
NonSterlingCashFee:
description: An additional fee applied to certain card cash withdrawals. This fee also applies to cash near fees such as gambling
type: string
pattern: ^-?\d{1,10}\.\d{1,2}$
NonSterlingCashFeeRate:
description: An additional fee rate applied to certain card cash withdrawals. This fee also applies to cash near fees such as gambling
type: string
pattern: ^-?\d{1,3}\.\d{1,4}$
ForeignPurchaseFee:
description: Additional card fee applied to sterling retail transactions made abroad
type: string
pattern: ^-?\d{1,10}\.\d{1,2}$
ForeignPurchaseFeeRate:
description: Additional card fee rate applied to sterling retail transactions made abroad
type: string
pattern: ^-?\d{1,3}\.\d{1,4}$
ForeignCashFee:
description: Additional card fee applied to sterling cash withdrawal made abroad
type: string
pattern: ^-?\d{1,10}\.\d{1,2}$
ForeignCashFeeRate:
description: Additional card fee rate applied to sterling cash withdrawal made abroad
type: string
pattern: ^-?\d{1,3}\.\d{1,4}$
required:
- MinimumCreditLimit
- RepaymentFrequency
- APRRate
- PurchaseRate
- CashAdvanceRate
- CardScheme
- AccessToOnlineDataReportingTool
- CashWithdrawalsAllowed
- ConvenienceCheque
- DaysInterestFreeCreditIfPaymentFull
- IssuingEmergencyCardsFees
- AnnualFeeAmount
- PaymentDaysAfterStatement
- StatementAtAccountLevel
- StatementAtPersonalLevel
- ExchangeRateAdjustment
additionalProperties: false
required:
- CCSubType
- CommercialCreditCardItem
additionalProperties: false
Eligibility:
description: Eligibility
type: object
properties:
AgeRestricted:
description: Indicates a customer's age is part of eligibility criteria
type: boolean
MinimumAge:
description: Minimum age, in years, required to hold an account
type: integer
MaximumAge:
description: Maximum age, in years, allowed to hold the account
type: integer
MaximumAgeToOpen:
description: Maximum age, in years, to open an account
type: integer
OtherFinancialHoldingRequired:
description: Indicates that it is necessary to hold another product with the bank in order to be eligible for this product or feature
type: boolean
Description:
description: One paragraph detailing the eligibility
type: string
IncomeTurnoverRelated:
description: Indicates if eligibility linked to income
type: boolean
SingleJointIncome:
description: Minimum Income Source. For certain products a minimum income is required. This can be mandated as to the single income or to a joint income. This field describes this
type: string
enum:
- Joint
- SoleIncome
- SoleOrJoint
- Turnover
MinimumIncomeTurnoverAmount:
description: Minimum income / Turnover required to hold the product
type: string
pattern: ^-?\d{1,10}\.\d{1,2}$
MinimumIncomeTurnoverCurrency:
description: Minimum income / Turnover Currency
type: string
pattern: '[A-Z]{3}'
IncomeCondition:
description: Stipulates any particular definition of income that applies to the income eligibility and/or method by which income must paid into the account (eg Salary DD)
type: string
MinIncomeTurnoverPaidIntoAccount:
description: Minimum Income Amount required to paid into the account
type: integer
MinimumIncomeFrequency:
description: The frequency that the minimum mentioned before is deposited in the account. Yearly is very important for premium accounts
type: string
enum:
- AcademicTerm
- HalfYearly
- Monthly
- Quarterly
- Weekly
- Yearly
AnnualBusinessTurnover:
description: Annual Business Turnover
type: string
pattern: ^-?\d{1,10}\.\d{1,2}$
AnnualBusinessTurnoverCurrency:
description: Annual Business Turnover Currency
type: string
pattern: '[A-Z]{3}'
ResidencyRestricted:
description: Indicates a customer's residency forms part of the eligibility criteria
type: boolean
ResidencyRestrictedRegion:
description: Indicates a customer must be current resident of a geographic area/country
type: string
enum:
- UK
- EEA
- EU
- EFTA
- GB - ENG
- GB - NIR
- GB - SCT
- GB - WLS
- IRL
MaxNumberOfAccounts:
description: Maximum number of the same prodcut the customer may hold
type: string
ThirdSectorOrganisations:
description: Is the product available to operate as a Clubs or Societies account?
type: boolean
MinimumDeposit:
description: A minimum deposit required to hold this account
type: boolean
OpeningDepositMinimum:
description: Minimum Amount to be held on account
type: string
pattern: ^-?\d{1,10}\.\d{1,2}$
OpeningDepositMinimumCurrency:
description: The currency of the Minimum Amount to be depositing at opening
type: string
pattern: '[A-Z]{3}'
MinimumOperatingBalanceExists:
description: Is there a Minimum Operating Balance?
type: boolean
MinimumOperatingBalance:
description: Minimum Operating Balance
type: string
pattern: ^-?\d{1,10}\.\d{1,2}$
MinimumOperatingBalanceCurrency:
description: Minimum Operating Balance currency
type: string
pattern: '[A-Z]{3}'
MaximumOpeningAmount:
description: A maximum amount to be deposited at opening
type: boolean
OpeningDepositMaximumAmount:
description: Maximum Amount to be depositing at opening
type: string
pattern: ^-?\d{1,10}\.\d{1,2}$
OpeningDepositMaximumCurrency:
description: The currency of the Minimum Amount to be depositing at opening
type: string
pattern: '[A-Z]{3}'
EligibilityName:
description: Free text description, denotes non standard eligibilities not included in the code list
type: string
EligibilityType:
description: Eligibility type
type: string
enum:
- AnyBusinessCustomer
- BusinessOnly
- CreditCard
- CreditScoring
- EmailAddress
- ExistingCustomers
- IdAndV
- Mortgage
- NoArrearsOnLoan
- NoCustomerInArrears
- NoOverOverdraftThirtyDays
- NoSoleUkAccountOrBankrupt
- NTB
- NTBBusiness
- SoleStudentAccount
- SoleUkAccount
- StudentsOnly
- TwoMonthsOfCourseStart
- UCASFulltimeTwoYears
EligibilityNotes:
description: Optional additional notes to supplement the eligibility conditions. Only used for very specific conditions
type: string
PreviousBankruptcy:
description: Describes if a previous bankruptcy / insolvency disqualfies for this account Details in ELI-280
type: boolean
MarketingEligibility:
type: array
items:
description: Specific eligibility for marketing
type: string
enum:
- ExistingCustomers
- NewCustomersOnly
- SwitchersOnly
- StartUp
uniqueItems: true
required:
- AgeRestricted
- OtherFinancialHoldingRequired
- Description
- IncomeTurnoverRelated
- ResidencyRestricted
- ThirdSectorOrganisations
- PreviousBankruptcy
additionalProperties: false
Benefits:
description: Benefit
type: object
properties:
Benefit:
description: Describe one or more benefits if they exist
type: boolean
BenefitGroup:
type: array
items:
description: Benefit Interest Group
type: object
properties:
BenefitSubType:
description: Benefit Subtype Code
type: string
enum:
- FutureMultipleTerms
- Promotional
- Regular
BenefitItem:
description: Benefit Item
type: object
properties:
StartPromotionOrFutur
# --- truncated at 32 KB (47 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/open-banking-uk/refs/heads/main/openapi/open-banking-uk-ccc-api-openapi.yml