Halifax Open Data Commercial Credit Cards API

Public, unauthenticated OBIE Open Data API publishing commercial credit card product reference data. Confirmed live (HTTP 200, JSON) at the v2.2 base.

OpenAPI Specification

openbanking-opendata-standard-swagger.json Raw ↑
{
  "swagger": "2.0",
  "info": {
    "version": "v1.3",
    "title": "Open Data API",
    "description": "Latest Swagger specification for OpenData"
  },
  "host": "developer.openbanking.org.uk",
  "basePath": "/reference-implementation/open-banking/v1.3",
  "schemes": ["https"],
  "produces": ["application/prs.openbanking.opendata.v1.3+json"],
  "tags": [{
    "name": "Branch",
    "description": "Endpoint for getting Branch data"
  }, {
    "name": "ATM",
    "description": "Endpoint for getting ATM data"
  }, {
    "name": "PCA",
    "description": "Endpoint for getting Personal Current Account data"
  }, {
    "name": "BCA",
    "description": "Endpoint for getting Business Current Account data"
  }, {
    "name": "SME",
    "description": "Endpoint for getting Unsecured SME Loan data"
  }, {
    "name": "CCC",
    "description": "Endpoint for getting Commercial Credit Card data"
  }],
  "paths": {
    "/branches": {
      "get": {
        "tags": ["Branch"],
        "description": "Gets a list of all `Branch` 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 `Branch` 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": {
                    "title": "Branch",
                    "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
                      },
                      "BranchName": {
                        "description": "Name by which a party is known and which is usually used to identify that party",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 35
                      },
                      "BranchIdentification": {
                        "description": "Unique and unambiguous identification of a retail branch of a financial institution",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 35
                      },
                      "BranchType": {
                        "description": "Information on the type of branch",
                        "type": "string",
                        "enum": ["Physical", "Mobile"]
                      },
                      "Address": {
                        "description": "Postal Address",
                        "type": "object",
                        "properties": {
                          "StreetName": {
                            "description": "Name of a street or thoroughfare",
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 70
                          },
                          "BuildingNumberOrName": {
                            "description": "Number or Name that identifies the position of a building on a street",
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 350
                          },
                          "PostCode": {
                            "description": "Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail",
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 16
                          },
                          "OptionalAddressField": {
                            "description": "Directions for customers",
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 350
                          },
                          "TownName": {
                            "description": "Name of a built-up area, with defined boundaries, and a local government",
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 35
                          },
                          "CountrySubDivision": {
                            "description": "Identifies a subdivision of a country such as state, region, county",
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 35
                          },
                          "Country": {
                            "description": "Nation with its own government",
                            "type": "string",
                            "pattern": "[A-Z]{2}"
                          }
                        },
                        "required": ["Country"],
                        "additionalProperties": false
                      },
                      "BranchDescription": {
                        "description": "Description of the branch",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 140
                      },
                      "BranchPhoto": {
                        "description": "Image related to the branch",
                        "type": "string",
                        "format": "uri"
                      },
                      "TelephoneNumber": {
                        "description": "Collection of information that identifies a phone number, as defined by telecom services.",
                        "type": "string",
                        "pattern": "^[+][0-9]{1,3}-[0-9()+-]{1,30}$"
                      },
                      "AlternatePhone": {
                        "type": "array",
                        "items": {
                          "description": "Alternative Phone Number",
                          "type": "object",
                          "properties": {
                            "AlternateTelephoneNumber": {
                              "description": "Collection of information that identifies a phone number, as defined by telecom services.",
                              "type": "string",
                              "pattern": "^[+][0-9]{1,3}-[0-9()+-]{1,30}$"
                            },
                            "AlternateTelephoneNumberDescription": {
                              "description": "Description of the telephone number",
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 35
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "FaxNumber": {
                        "description": "Collection of information that identifies a FAX number, as defined by telecom services.",
                        "type": "array",
                        "items": {
                          "description": "Collection of information that identifies a phone number, as defined by telecom services.",
                          "type": "string",
                          "pattern": "^[+][0-9]{1,3}-[0-9()+-]{1,30}$"
                        }
                      },
                      "GeographicLocation": {
                        "description": "Geographic Coordinates",
                        "type": "object",
                        "properties": {
                          "Latitude": {
                            "description": "The Latitude measured in decimal format according to ISO 213",
                            "type": "string",
                            "pattern": "^-?\\d{1,3}\\.\\d{1,8}$"
                          },
                          "Longitude": {
                            "description": "The longitude measured in decimal format according to ISO 213",
                            "type": "string",
                            "pattern": "^-?\\d{1,3}\\.\\d{1,8}$"
                          }
                        },
                        "required": ["Latitude", "Longitude"],
                        "additionalProperties": false
                      },
                      "DaysOfTheWeek": {
                        "description": "Description on when the mobile branch is available. e.g. The weekend of Glastonbury festival; or Mondays and during the shrimp season also Wednesdays",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 35
                      },
                      "StopName": {
                        "description": "Name of the stop of the mobile branch",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 15
                      },
                      "ArrivalTime": {
                        "description": "Time that the mobile branch is scheduled to arrive",
                        "type": "string",
                        "pattern": "^(([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9].\\d{3})|(^24:00:00\\.000)(?:Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$"
                      },
                      "DepartureTime": {
                        "description": "Time that the mobile branch is scheduled to depart",
                        "type": "string",
                        "pattern": "^(([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9].\\d{3})|(^24:00:00\\.000)(?:Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$"
                      },
                      "ParkingLocation": {
                        "description": "Place where the mobile branch is located, such as between the news agent and the church.",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 50
                      },
                      "OpeningTimes": {
                        "description": "Branch Opening Times",
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "OpeningDay": {
                              "description": "Day of the week",
                              "enum": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday", "Public and Bank Holiday"],
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 35
                            },
                            "OpeningTime": {
                              "description": "ISOTime, local time hh:mm:ss.sss or time in utc hh:mm:ss.sssZ or time with timezone hh:mm:ss.sss+hh:mm hh:mm:ss.sss-hh:mm",
                              "type": "string",
                              "pattern": "^(([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9].\\d{3})|(^24:00:00\\.000)(?:Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$"
                            },
                            "ClosingTime": {
                              "description": "ISOTime, local time hh:mm:ss.sss or time in utc hh:mm:ss.sssZ or time with timezone hh:mm:ss.sss+hh:mm hh:mm:ss.sss-hh:mm",
                              "type": "string",
                              "pattern": "^(([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9].\\d{3})|(^24:00:00\\.000)(?:Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$"
                            },
                            "UnavailableStartTime": {
                              "description": "ISOTime, local time hh:mm:ss.sss or time in utc hh:mm:ss.sssZ or time with timezone hh:mm:ss.sss+hh:mm hh:mm:ss.sss-hh:mm",
                              "type": "string",
                              "pattern": "^(([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9].\\d{3})|(^24:00:00\\.000)(?:Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$"
                            },
                            "UnavailableFinishTime": {
                              "description": "ISOTime, local time hh:mm:ss.sss or time in utc hh:mm:ss.sssZ or time with timezone hh:mm:ss.sss+hh:mm hh:mm:ss.sss-hh:mm",
                              "type": "string",
                              "pattern": "^(([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9].\\d{3})|(^24:00:00\\.000)(?:Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$"
                            }
                          },
                          "required": ["OpeningDay", "OpeningTime", "ClosingTime"]
                        },
                        "minItems": 1,
                        "additionalProperties": false
                      },
                      "PlannedBranchClosure": {
                        "type": "array",
                        "items": {
                          "description": "Planned branch closure",
                          "type": "object",
                          "properties": {
                            "StartDate": {
                              "description": "Date when a branch is due to close temporarily or permanently",
                              "type": "string",
                              "pattern": "^[0-9]{4}-(0[1-9]|(1[0|1|2]))-((0[1-9])|((1|2)[0-9])|(30|31))$"
                            },
                            "EndDate": {
                              "description": "Date when a branch is due to re-open following temporary closure",
                              "type": "string",
                              "pattern": "^[0-9]{4}-(0[1-9]|(1[0|1|2]))-((0[1-9])|((1|2)[0-9])|(30|31))$"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "AccessibilityTypes": {
                        "description": "Information about the accessibility",
                        "type": "string",
                        "enum": ["AudioCashMachine", "AutomaticDoors", "ChairAccess", "DriveThru", "ExternalRamp", "InductionLoop", "InternalRamp", "LevelAccess", "LowerLevelCounter", "WheelchairAccess"]
                      },
                      "BranchSelfServeServiceName": {
                        "type": "array",
                        "items": {
                          "description": "Information about self service branch services",
                          "type": "string",
                          "enum": ["AccountVerificationService", "AssistedServiceCounter", "BusinessDepositTerminal", "CashChequeDepositMachineCoin", "CashChequeDepositMachineNoCoin", "ExternalAtmAudio", "ExternalAtmNoAudio", "ExternalQuickServicePoint", "InternalAtmAudio", "InternalAtmNoAudio", "InternalQuickServicePoint", "LodgementDevice", "OnlineBankingPoint", "QuickDeposit", "SaturdayCounterService", "SelfServiceAccountOpening", "StatementPrinter"]
                        },
                        "uniqueItems": true
                      },
                      "BranchOtherSelfServices": {
                        "description": "Self Services not described in BranchSelfServeServiceName",
                        "type": "array",
                        "items": {
                          "description": "maxLength 350 text",
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 350
                        }
                      },
                      "BranchMediatedServiceName": {
                        "description": "Information about mediated branch facilities",
                        "type": "array",
                        "items": {
                          "description": "Information about mediated branch facilities",
                          "type": "string",
                          "enum": ["BureauDeChange", "BusinessCounter", "CardIssuanceFacility", "CounterServices", "DriveThru", "MortgageAdvisor", "NightSafe", "OnDemandCurrency", "PremierCounter", "VideoBanking", "WheelChairAccess"]
                        },
                        "uniqueItems": true
                      },
                      "BranchOtherMediatedServices": {
                        "description": "Mediated Services not described in BranchMediatedServiceName",
                        "type": "array",
                        "items": {
                          "description": "maxLength 350 text",
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 350
                        }
                      },
                      "BranchFacilitiesName": {
                        "description": "Information about branch facilities",
                        "type": "array",
                        "items": {
                          "description": "Information about branch facilities",
                          "type": "string",
                          "enum": ["BusinessITSupport", "CollectionLockers", "MeetingRooms", "Parking", "Wifi"]
                        },
                        "uniqueItems": true
                      },
                      "CustomerSegment": {
                        "description": "Customer segment which the branch is able to service",
                        "type": "array",
                        "items": {
                          "description": "Customer segment which the branch is able to service",
                          "type": "string",
                          "enum": ["Business", "Corporate", "Personal", "Premier", "Private", "Select", "SME", "Wealth"]
                        },
                        "uniqueItems": true
                      },
                      "BranchOtherFacilities": {
                        "description": "Any other facilities not mentioned in BranchFacilitiesName",
                        "type": "array",
                        "items": {
                          "description": "maxLength 350 text",
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 350
                        }
                      },
                      "ATMAtBranch": {
                        "description": "Indicated whether an ATM is at the branch",
                        "type": "boolean"
                      }
                    },
                    "required": ["Organisation", "BranchIdentification", "BranchType", "CustomerSegment", "Address", "TelephoneNumber", "OpeningTimes", "ATMAtBranch"],
                    "additionalProperties": false
                  }
                }
              },
              "required": ["meta", "data"],
              "additionalProperties": false
            }
          },
          "400": {
            "description": "You have sent a request which could not be understood.",
            "headers": {
              "Strict-Transport-Security": {
                "type": "string",
                "description": "HTTPS strict transport security header"
              },
              "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"
              },
              "Status Code": {
                "type": "integer",
                "description": "The HTTP status code defining the error",
                "default": 400
              }
            },
            "schema": {
              "title": "400 Error object",
              "type": "object",
              "properties": {
                "status": {
                  "type": "string",
                  "enum": ["400"]
                },
                "title": {
                  "type": "string",
                  "enum": ["Bad request"]
                },
                "description": {
                  "type": "string",
                  "enum": ["You have sent a request which could not be understood."]
                }
              },
              "required": ["status", "title", "description"],
              "additionalProperties": false
            }
          },
          "408": {
            "description": "Your client has failed to submit a request, and a timeout has occurred.",
            "headers": {
              "Strict-Transport-Security": {
                "type": "string",
                "description": "HTTPS strict transport security header"
              },
              "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"
              },
              "Status Code": {
                "type": "integer",
                "description": "The HTTP status code defining the error",
                "default": 400
              }
            },
            "schema": {
              "title": "408 Error object",
              "type": "object",
              "properties": {
                "status": {
                  "type": "string",
                  "enum": ["408"]
                },
                "title": {
                  "type": "string",
                  "enum": ["Client timeout"]
                },
                "description": {
                  "type": "string",
                  "enum": ["Your client has failed to submit a request, and a timeout has occurred."]
                }
              },
              "required": ["status", "title", "description"],
              "additionalProperties": false
            }
          },
          "429": {
            "description": "You have requested this resource too often. Slow down.",
            "headers": {
              "Strict-Transport-Security": {
                "type": "string",
                "description": "HTTPS strict transport security header"
              },
              "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"
              },
              "Status Code": {
                "type": "integer",
                "description": "The HTTP status code defining the error",
                "default": 400
              }
            },
            "schema": {
              "title": "429 Error object",
              "type": "object",
              "properties": {
                "status": {
                  "type": "string",
                  "enum": ["429"]
                },
                "title": {
                  "type": "string",
                  "enum": ["Too many requests"]
                },
                "description": {
                  "type": "string",
                  "enum": ["You have requested this resource too often. Slow down."]
                }
              },
              "required": ["status", "title", "description"],
              "additionalProperties": false
            }
          },
          "500": {
            "description": "An error occurred on the server. No further information is available.",
            "headers": {
              "Strict-Transport-Security": {
                "type": "string",
                "description": "HTTPS strict transport security header"
              },
              "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"
              },
              "Status Code": {
                "type": "integer",
                "description": "The HTTP status code defining the error",
                "default": 400
              }
            },
            "schema": {
              "title": "500 Error object",
              "type": "object",
              "properties": {
                "status": {
                  "type": "string",
                  "enum": ["500"]
                },
                "title": {
                  "type": "string",
                  "enum": ["Internal server error"]
                },
                "description": {
                  "type": "string",
                  "enum": ["An error occurred on the server. No further information is available."]
                }
              },
              "required": ["status", "title", "description"],
              "additionalProperties": false
            }
          },
          "503": {
            "description": "The service is temporarily unavailable.",
            "headers": {
              "Strict-Transport-Security": {
                "type": "string",
                "description": "HTTPS strict transport security header"
              },
              "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"
              },
              "Status Code": {
                "type": "integer",
                "description": "The HTTP status code defining the error",
                "default": 400
              }
            },
            "schema": {
              "title": "503 Error object",
              "type": "object",
              "properties": {
                "status": {
         

# --- truncated at 32 KB (410 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/halifax/refs/heads/main/openapi/openbanking-opendata-standard-swagger.json