ClearBank Customer API
The Customer API from ClearBank — 6 operation(s) for customer.
The Customer API from ClearBank — 6 operation(s) for customer.
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/clearbank-customer-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: ClearBank Retail V2 Customer API
contact:
name: API Support
url: https://clear.bank
email: fiapisupport@clear.bank
version: 2.0-customers-retail
tags:
- name: Customer
paths:
/customers/v2/customers/{customerId}:
get:
tags:
- Customer
summary: Retrieves a customer by their customer ID.
operationId: V2CustomerGet
parameters:
- name: Authorization
in: header
description: Your API token, retrieved from the web portal.
required: true
schema:
type: string
- name: DigitalSignature
in: header
description: Signed hash of the body of the request. The hash is signed by your private key.
required: true
schema:
type: string
- name: X-Request-Id
in: header
description: A unique identifier for the request.
required: true
schema:
type: string
- name: customerId
in: path
description: The ID of the customer.
required: true
schema:
type: string
format: uuid
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/RetailCustomerGetResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
application/problem+json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
/customers/v2/customers/{customerId}/related-parties:
get:
tags:
- Customer
summary: Retrieves the related party data of a customer by their customer ID.
operationId: V2RelatedPartiesGet
parameters:
- name: Authorization
in: header
description: Your API token, retrieved from the web portal.
required: true
schema:
type: string
- name: DigitalSignature
in: header
description: Signed hash of the body of the request. The hash is signed by your private key.
required: true
schema:
type: string
- name: X-Request-Id
in: header
description: A unique identifier for the request.
required: true
schema:
type: string
- name: customerId
in: path
description: The ID of the original customer.
required: true
schema:
type: string
format: uuid
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
value:
type: array
items:
$ref: '#/components/schemas/RelatedPartyGetResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
application/problem+json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
post:
tags:
- Customer
summary: 'Adds a new related party to an existing customer. Note that relationships must be unique: if a relationship already exists that links the same two customers with the same relationship type, your request will be rejected.'
operationId: V2RelatedPartyPost
parameters:
- name: Authorization
in: header
description: Your API token, retrieved from the web portal.
required: true
schema:
type: string
- name: DigitalSignature
in: header
description: Signed hash of the body of the request. The hash is signed by your private key.
required: true
schema:
type: string
- name: X-Request-Id
in: header
description: A unique identifier for the request.
required: true
schema:
type: string
- name: customerId
in: path
description: The ID of the original customer.
required: true
schema:
type: string
format: uuid
requestBody:
description: Information required to add related party to customer.
content:
application/json:
schema:
$ref: '#/components/schemas/CreateRelatedPartyRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/CreatedRelatedPartyResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
application/problem+json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'422':
description: Unprocessable Content
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
application/problem+json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
'403':
description: Forbidden
/customers/v2/customers/{customerId}/current-addresses:
post:
tags:
- Customer
summary: Updates a customer's current address while maintaining their previous addresses history.
operationId: V2CustomersCurrentAddressPost
parameters:
- name: Authorization
in: header
description: Your API token, retrieved from the web portal.
required: true
schema:
type: string
- name: DigitalSignature
in: header
description: Signed hash of the body of the request. The hash is signed by your private key.
required: true
schema:
type: string
- name: X-Request-Id
in: header
description: A unique identifier for the request.
required: true
schema:
type: string
- name: customerId
in: path
description: The ID of the customer.
required: true
schema:
type: string
format: uuid
requestBody:
description: Information required to update the customer's address
content:
application/json:
schema:
$ref: '#/components/schemas/CurrentAddressRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerSubresourceCreatedResponse'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'422':
description: Unprocessable Content
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
application/problem+json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
'403':
description: Forbidden
/customers/v2/customers/{customerId}/related-parties/{relatedCustomerId}/{relatedPartyType}:
delete:
tags:
- Customer
summary: Removes a related party link between two customers.
operationId: V2RelatedPartyDelete
parameters:
- name: Authorization
in: header
description: Your API token, retrieved from the web portal.
required: true
schema:
type: string
- name: DigitalSignature
in: header
description: Signed hash of the body of the request. The hash is signed by your private key.
required: true
schema:
type: string
- name: X-Request-Id
in: header
description: A unique identifier for the request.
required: true
schema:
type: string
- name: customerId
in: path
description: The ID of the customer.
required: true
schema:
type: string
format: uuid
- name: relatedCustomerId
in: path
description: The ID of the related customer to unlink.
required: true
schema:
type: string
format: uuid
- name: relatedPartyType
in: path
description: The type of related party. Used to disambiguate where a party is related in more than one way.
required: true
schema:
$ref: '#/components/schemas/RelatedPartyType'
responses:
'204':
description: No Content
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
application/problem+json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'422':
description: Unprocessable Content
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
application/problem+json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
'403':
description: Forbidden
/customers/v2/customers/{customerId}/identity-documents/{idCountryOfIssue}-{idType}:
put:
tags:
- Customer
summary: Adds or updates a customer's identity document. Returns 200 OK when updating an existing ID, or 201 Created when adding a new ID.
operationId: V2CustomerIdentityDocumentPut
parameters:
- name: Authorization
in: header
description: Your API token, retrieved from the web portal.
required: true
schema:
type: string
- name: DigitalSignature
in: header
description: Signed hash of the body of the request. The hash is signed by your private key.
required: true
schema:
type: string
- name: X-Request-Id
in: header
description: A unique identifier for the request.
required: true
schema:
type: string
- name: customerId
in: path
description: The ID of the customer.
required: true
schema:
type: string
format: uuid
- name: idCountryOfIssue
in: path
description: Country of issue.
required: true
schema:
$ref: '#/components/schemas/CountryCode'
- name: idType
in: path
description: Type of identity document.
required: true
schema:
$ref: '#/components/schemas/IdType'
requestBody:
description: The updated details of the identity document.
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateIdentityDocumentRequest'
responses:
'200':
description: OK
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerSubresourceCreatedResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
application/problem+json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'422':
description: Unprocessable Content
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
application/problem+json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
'403':
description: Forbidden
delete:
tags:
- Customer
summary: Removes a customer's identity document.
operationId: V2CustomerIdentityDocumentDelete
parameters:
- name: Authorization
in: header
description: Your API token, retrieved from the web portal.
required: true
schema:
type: string
- name: DigitalSignature
in: header
description: Signed hash of the body of the request. The hash is signed by your private key.
required: true
schema:
type: string
- name: X-Request-Id
in: header
description: A unique identifier for the request.
required: true
schema:
type: string
- name: customerId
in: path
description: The ID of the customer.
required: true
schema:
type: string
format: uuid
- name: idCountryOfIssue
in: path
description: Country of issue.
required: true
schema:
$ref: '#/components/schemas/CountryCode'
- name: idType
in: path
description: Type of identity document.
required: true
schema:
$ref: '#/components/schemas/IdType'
responses:
'204':
description: No Content
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
application/problem+json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
/customers/v2/customers/{customerId}/tax-residencies/{countryOfTaxResidence}:
put:
tags:
- Customer
summary: Adds or updates a customer's tax residency entry for the specified country. Returns 200 OK when updating an existing tax residency, or 201 Created when adding a new tax residency.
operationId: V2CustomerTaxResidencyPut
parameters:
- name: Authorization
in: header
description: Your API token, retrieved from the web portal.
required: true
schema:
type: string
- name: DigitalSignature
in: header
description: Signed hash of the body of the request. The hash is signed by your private key.
required: true
schema:
type: string
- name: X-Request-Id
in: header
description: A unique identifier for the request.
required: true
schema:
type: string
- name: customerId
in: path
description: The ID of the customer.
required: true
schema:
type: string
format: uuid
- name: countryOfTaxResidence
in: path
description: Country of tax residence.
required: true
schema:
$ref: '#/components/schemas/CountryCode'
requestBody:
description: Tax residency details (TIN or reason for no TIN).
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateTaxResidencyRequest'
responses:
'200':
description: OK
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerSubresourceCreatedResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
application/problem+json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'422':
description: Unprocessable Content
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
application/problem+json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
'403':
description: Forbidden
delete:
tags:
- Customer
summary: Removes a customer's tax residency entry for the specified country.
operationId: V2CustomerTaxResidencyDelete
parameters:
- name: Authorization
in: header
description: Your API token, retrieved from the web portal.
required: true
schema:
type: string
- name: DigitalSignature
in: header
description: Signed hash of the body of the request. The hash is signed by your private key.
required: true
schema:
type: string
- name: X-Request-Id
in: header
description: A unique identifier for the request.
required: true
schema:
type: string
- name: customerId
in: path
description: The ID of the customer.
required: true
schema:
type: string
format: uuid
- name: countryOfTaxResidence
in: path
description: Country of tax residence to remove.
required: true
schema:
$ref: '#/components/schemas/CountryCode'
responses:
'204':
description: No Content
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
application/problem+json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'422':
description: Unprocessable Content
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
application/problem+json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
'403':
description: Forbidden
components:
schemas:
CurrentAddressRequest:
required:
- addressType
- buildingNameNumber
- streetName
- city
- country
- postalCode
type: object
properties:
addressType:
$ref: '#/components/schemas/AddressType'
buildingNameNumber:
minLength: 1
maxLength: 100
pattern: '[^!$%^_=+><?|;~@`]'
type:
- string
- 'null'
description: The building name or number of this address. Must not contain postal code.
example: '322'
streetName:
type:
- string
- 'null'
minLength: 1
maxLength: 100
pattern: '[^!$%^_=+><?|;~@`]'
description: This address' street name. Must not contain postal code.
example: Long Road
city:
minLength: 1
type:
- string
- 'null'
description: City of the customer's address.
example: Cyan City
county:
minLength: 1
type:
- string
- 'null'
description: County of the customer's address. Must not contain the values of buildingNameNumber or streetName fields.
example: Greenshire
postalCode:
minLength: 1
type:
- string
- 'null'
description: Postal code of the customer's address. If this address is in the UK, must be a valid UK postcode and conform to the regex pattern.
example: PG15 8AB
pattern: ^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z])))) [0-9][A-Za-z]{2})$
country:
$ref: '#/components/schemas/CountryCode'
validFrom:
type:
- string
- 'null'
description: Date from which the address is valid. Defaults to today if unspecified.
format: date
example: '2022-05-22'
additionalProperties: false
description: The customer's current address.
PersonalDetailsGetResponse:
type: object
properties:
firstName:
minLength: 1
maxLength: 255
type:
- string
- 'null'
description: Customer's first name
example: Kirsty
pattern: '[^0-9!$%^_=+><?|;~@£&()/\\[\]{}:",#`¬]{1,255}'
middleName:
type:
- string
- 'null'
description: Customer's middle name
example: Jane
surname:
minLength: 1
maxLength: 255
type:
- string
- 'null'
description: Customer's surname
example: Friar
pattern: '[^0-9!$%^_=+><?|;~@£&()/\\[\]{}:",#`¬]{1,255}'
email:
type:
- string
- 'null'
description: Customer's email address. Must be RFC compliant.
example: kristy.fr@mymail.com
telephone:
type:
- string
- 'null'
minLength: 3
maxLength: 20
description: The customer's telephone number. Must start with '00' in place of '+', and include the country-code.
example: '00441234555777'
pattern: ^(00)[0-9]{1,18}$
countryOfResidence:
$ref: '#/components/schemas/CountryCode'
dateOfBirth:
type:
- string
- 'null'
description: Customer's Date of Birth
format: date
example: '1985-12-22'
nationalIdentificationNumber:
type:
- string
- 'null'
description: Updated national identification number (if changed).
example: PC112233D
additionalProperties: false
description: Customer's personal details
CreateRelatedPartyRequest:
required:
- relatedCustomerId
- relatedPartyType
type: object
properties:
relatedCustomerId:
type: string
description: The ID of the customer to be linked as a related party.
format: uuid
relatedPartyType:
$ref: '#/components/schemas/RelatedPartyType'
ownershipPercentage:
type:
- integer
- 'null'
description: The ownership percentage of the related party. Only allowed for UBO relationships.
format: int32
example: 100
additionalProperties: false
description: A request to link one customer to another as a related party.
ValidationProblemDetails:
type: object
properties:
type:
type:
- string
- 'null'
description: A URI reference [RFC3986] that identifies the problem type. This specification encourages that, when dereferenced, it provides human-readable documentation for the problem type (e.g., using HTML [W3C.REC-html5-20141028]). When this member is not present, its value is assumed to be "about:blank".
title:
type:
- string
- 'null'
description: A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see[RFC7231], Section 3.4).
status:
type:
- integer
- 'null'
description: The HTTP status code([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
format: int32
detail:
type:
- string
- 'null'
description: A human-readable explanation specific to this occurrence of the problem.
instance:
type:
- string
- 'null'
description: A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
errors:
type:
- object
- 'null'
additionalProperties:
type: array
items:
type: string
description: The validation errors.
additionalProperties: {}
description: A machine-readable format for specifying errors in HTTP API responses based on https://tools.ietf.org/html/rfc7807
CreatedRelatedPartyResponse:
type: object
properties:
customerId:
type: string
description: Unique identifier of the original customer.
format: uuid
relatedCustomerId:
type: string
description: Unique identifier of the newly linked customer.
format: uuid
additionalProperties: false
description: Response containing information about the created related party.
SpecialStatusValue:
enum:
- Vulnerability_Health_VisualImpairmentBraille
- Vulnerability_Health_VisualImpairmentLargeText
- Vulnerability_Health_AudioImpairment
- Vulnerability_Health_Other
- Vulnerability_LifeEvents
- Vulnerability_Resilience
- Vulnerability_Capability
type: string
example: Vulnerability_LifeEvents
description: Supported special statuses.
CustomerStatus:
enum:
- Active
type: string
example: Active
description: Represents the status of a customer in the system. This will always be 'Active'.
ProblemDetails:
type: object
properties:
type:
type:
- string
- 'null'
description: A URI reference [RFC3986] that identifies the problem type. This specification encourages that, when dereferenced, it provides human-readable documentation for the problem type (e.g., using HTML [W3C.REC-html5-20141028]). When this member is not present, its value is assumed to be "about:blank".
title:
type:
- string
- 'null'
description: A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see[RFC7231], Section 3.4).
status:
type:
- integer
- 'null'
description: The HTTP status code([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
format: int32
detail:
type:
- string
- 'null'
description: A human-readable explanation specific to this occurrence of the problem.
instance:
type:
- string
- 'null'
description: A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
description: A machine-readable format for specifying errors in HTTP API responses based on https://tools.ietf.org/html/rfc7807
AddressGetResponse:
type: object
properties:
addressType:
$ref: '#/components/schemas/AddressType'
buildingNameNumber:
type:
- string
- 'null'
description: The building name or number at this address.
example: '322'
streetName:
type:
- string
- 'null'
description: The customer's address' street name.
example: Long Road
county:
type:
- string
- 'null'
description: County of the customer's address.
example: Greenshire
city:
type:
- string
- 'null'
minLength: 1
description: City of the customer's address.
example: Cyan City
postalCode:
type:
- string
- 'null'
description: Postal code of the customer's address. If this address is in the UK, must be a valid UK postcode and conform to the regex pattern.
example: PG15 8AB
pattern: ^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z])))) [0-9][A-Za-z]{2})$
country:
$ref: '#/components/schemas/CountryCode'
validFrom:
type:
- string
- 'null'
description: The date from which the customer started living at this address.
format: date
example: '2022-05-15'
validTo:
type:
- string
- 'null'
description: The date at which the customer stopped living at this address.
format: date
isCurrentAddress:
type:
- boolean
- 'null'
description: Indicates if this is the customer's current address.
additionalProperties: false
description: The details of the customer's address history.
RelatedPartyType:
enum:
- Director
- UBO
- ControllingPerson
type: string
example: UBO
description: Related party types.
RetailCustomerGetResponse:
type: object
properties:
id:
type: string
description: The unique identifier of the customer. You should keep note of this, as you'll need it to amend or access the customer later.
format: uuid
example: 0e7ce040-b157-44a4-ba29-ed5e9b259cd3
institutionId:
type: string
description: The unique identifier of the institution associated with this customer.
format: uuid
example: 2500fbf8-787f-425d-b630-bde0d1c6ff58
status:
$ref: '#/components/schemas/CustomerStatus'
type:
$ref: '#/components/schemas/CustomerType'
personalDetails:
$ref: '#/components/schemas/PersonalDetailsGetResponse'
kycAml:
$ref: '#/components/schemas/KycAmlGetResponse'
taxDetails:
$ref: '#/components/schemas/TaxDetailsGetResponse'
specialStatuses:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/SpecialStatusValue'
description: 'The customer''s special statuses, if any. Possible values include: ''Vulnerability_Health_VisualImpairmentBraille'', ''Vulnerability_Healt
# --- truncated at 32 KB (43 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/clearbank/refs/heads/main/openapi/clearbank-customer-api-openapi.yml