TSB Bank CCC API
Endpoint for getting Commercial Credit Card data
Endpoint for getting Commercial Credit Card data
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/tsb-bank-ccc-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:
version: v1.3
title: Open Data CCC API
description: Latest Swagger specification for OpenData
servers:
- url: https://developer.openbanking.org.uk/reference-implementation/open-banking/v1.3
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
description: Used for conditional request, to retrieve data only if modified since a given date
in: header
required: false
schema:
type: string
- name: If-None-Match
description: Used for conditional request, to retrieve data only if the given Etag value does not match
in: header
required: false
schema:
type: string
responses:
'200':
description: Successful response with a list of `Commercial Credit Card` data
headers:
Strict-Transport-Security:
description: HTTPS strict transport security header
schema:
type: string
default: max-age=31536000
Etag:
description: A unique ID identifying whether this resource has changed
schema:
type: string
Cache-Control:
description: Describes how long this response can be cached
schema:
type: string
default: max-age=28800
X-Frame-Options:
description: Prevent this request from being loaded in any iframes
schema:
type: string
default: DENY
X-Content-Type-Options:
description: Ensures each page has a content type and prevents browsers from doing MIME type sniffing
schema:
type: string
default: nosniff
content:
application/prs.openbanking.opendata.v1.3+json:
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
MarketingEligibi
# --- truncated at 32 KB (50 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tsb-bank/refs/heads/main/openapi/tsb-bank-ccc-api-openapi.yml