Manage virtual accounts
Manage virtual accounts
Virtual accounts are publicly addressable accounts with their own IBAN. Also known as shadow accounts, virtual accounts are linked to real accounts and are used to separate out funds held in real accounts for the purposes of improved reconciliation and liquidity management. The responsibility of managing and reconciling virtual accounts rests with you, giving you complete control of such accounts.
Virtual accounts are only compatible with General Segregated Accounts. Virtual accounts can be created, suspended or activated, and closed via our API.
To comply with the Funds Transfer Regulation, it is important that the naming of virtual accounts reflects the legal name of the customer.
Create an account (virtual)
post/mccy/v1/VirtualAccounts
This endpoint is used to create a new virtual account.
Parameters
- Authorization string, header, Required
Your API token, obtained from the ClearBank Portal.
- DigitalSignature string, header, Required
Signed hash of the body of the request. The hash is signed by your private key.
- X-Request-Id string, header, Required
A unique identifier for the request; valid for 24 hours, max length 83.
Request Payload (application/json)
- accountId string, Required
Unique identifier for the real account associated with the virtual account.
- virtualAccount object, Required
Set of elements used to identify a virtual account.
request
{"accountId": "98efba88-c43e-41c5-9d47-0938f2fe7192","virtualAccount": {"owner": "James Smith","identifiers": [{"identifier": "GB29CLRB40391731926000","kind": "Iban"}]}}
Response (application/json)
- 201 Created
- 400 Bad Request
- 404 Not Found
- 422 Client Error
Created
{"id": "3fb8a2ce-064a-4de6-8e92-def9fce8772c","accountId": "98efba88-c43e-41c5-9d47-0938f2fe7192","owner": "James Smith","status": "Active","identifiers": [{"identifier": "GB29CLRB40391731926000","kind": "Iban"}],"statusReason": "AccountHolderBankrupt","statusInformation": "Received documentation"}
Bad Request
{"type": "string","title": "string","status": 0,"detail": "string","instance": "string","property1": null,"property2": null}
Not Found
{"type": "string","title": "string","status": 0,"detail": "string","instance": "string","property1": null,"property2": null}
Client Error
{"type": "string","title": "string","status": 0,"detail": "string","instance": "string","property1": null,"property2": null}
Associated Webhooks
Get information for an account (virtual)
get/mccy/v1/VirtualAccounts/{virtualAccountId}
This endpoint is used to retrieve details related to a virtual account.
Parameters
- Authorization string, header, Required
Your API token, obtained from the ClearBank Portal.
- DigitalSignature string, header, Required
Generated from your HTTP METHOD, Query Path, X-Request-Id, and X-Request-Time values.
- X-Request-Id string, header, Required
A unique identifier for the request; valid for 24 hours, max length 83.
- X-Request-Time string, header, Required
The current UNIX timestamp in seconds. This value will be rejected if it is more than 60 seconds late.
- virtualAccountId string, path, Required
The unique identifier for the virtual account.
Response (application/json)
- 200 OK
- 400 Bad Request
- 404 Not Found
OK
{"id": "3fb8a2ce-064a-4de6-8e92-def9fce8772c","accountId": "98efba88-c43e-41c5-9d47-0938f2fe7192","owner": "James Smith","status": "Active","identifiers": [{"identifier": "GB29CLRB40391731926000","kind": "Iban"}],"statusReason": "AccountHolderBankrupt","statusInformation": "Received documentation"}
Bad Request
{"type": "string","title": "string","status": 0,"detail": "string","instance": "string","property1": null,"property2": null}
Not Found
{"type": "string","title": "string","status": 0,"detail": "string","instance": "string","property1": null,"property2": null}
Amend the properties of an account (virtual)
patch/mccy/v1/VirtualAccounts/{virtualAccountId}
This endpoint is used to amend the properties of an existing virtual account.
Parameters
- virtualAccountId string, path, Required
The unique identifier for the virtual account.
- Authorization string, header, Required
Your API token, obtained from the ClearBank Portal.
- DigitalSignature string, header, Required
Signed hash of the body of the request. The hash is signed by your private key.
- X-Request-Id string, header, Required
A unique identifier for the request; valid for 24 hours, max length 83.
Request Payload (application/json)
- owner string, Required
The name used to identify the legal owner of the virtual account.
- Minimum length
- 1
- Maximum length
- 140
request
{"owner": "James Smith-Jones"}
Response (application/json)
- 200 OK
- 400 Bad Request
- 403 Forbidden
- 404 Not Found
OK
{"id": "3fb8a2ce-064a-4de6-8e92-def9fce8772c","accountId": "98efba88-c43e-41c5-9d47-0938f2fe7192","owner": "James Smith","status": "Active","identifiers": [{"identifier": "GB29CLRB40391731926000","kind": "Iban"}],"statusReason": "AccountHolderBankrupt","statusInformation": "Received documentation"}
Bad Request
{"type": "string","title": "string","status": 0,"detail": "string","instance": "string","property1": null,"property2": null}
Forbidden
{"type": "string","title": "string","status": 0,"detail": "string","instance": "string","property1": null,"property2": null}
Not Found
{"type": "string","title": "string","status": 0,"detail": "string","instance": "string","property1": null,"property2": null}
Associated Webhooks
Update the status of an account (virtual)
patch/mccy/v1/VirtualAccounts/{virtualAccountId}/status
This endpoint is used to update the status of an existing virtual account.
Parameters
- virtualAccountId string, path, Required
The unique identifier for the virtual account.
- Authorization string, header, Required
Your API token, obtained from the ClearBank Portal.
- DigitalSignature string, header, Required
Signed hash of the body of the request. The hash is signed by your private key.
- X-Request-Id string, header, Required
A unique identifier for the request; valid for 24 hours, max length 83.
Request Payload (application/json)
- status string, Required
Desired status of the virtual account.
- Enum array
- Active, Suspended
- statusReason string
Reason to support the desired status of the virtual account.
- Enum array
- AccountHolderBankrupt, AccountHolderDeceased, AccountSwitched, CompanyNoLongerTrading, DissatisfiedCustomer, DuplicateAccount, FinancialCrime, FraudConfirmed, FraudFirstParty, FraudThirdParty, InternallyDormant, KYCRequired, LegallyDisputed, PotentialSanctionedIndividual, SanctionedIndividual, SuspectMoneyLaundering, TransactionDispute, Other
- information string
Additional information to support the specified status reason.
- Minimum length
- 0
- Maximum length
- 100
request
{"status": "Suspended","statusReason": "FinancialCrime","information": "Suspected fraudulent activity"}
Response (application/json)
- 200 OK
- 400 Bad Request
- 404 Not Found
OK
{"id": "3fb8a2ce-064a-4de6-8e92-def9fce8772c","accountId": "98efba88-c43e-41c5-9d47-0938f2fe7192","owner": "James Smith","status": "Active","identifiers": [{"identifier": "GB29CLRB40391731926000","kind": "Iban"}],"statusReason": "AccountHolderBankrupt","statusInformation": "Received documentation"}
Bad Request
{"type": "string","title": "string","status": 0,"detail": "string","instance": "string","property1": null,"property2": null}
Not Found
{"type": "string","title": "string","status": 0,"detail": "string","instance": "string","property1": null,"property2": null}
Associated Webhooks
Close an account (virtual)
delete/mccy/v1/VirtualAccounts/{virtualAccountId}
This endpoint is used to close an existing virtual account. Once a virtual account has been closed, it cannot be reopened.
Parameters
- virtualAccountId string, path, Required
The unique identifier for the virtual account.
- accountCloseReason string, query
Reason for why the account is being closed. Available options include: Other, AccountHolderDeceased, AccountSwitched, CompanyNoLongerTrading, DuplicateAccount.
- Authorization string, header, Required
Your API token, obtained from the ClearBank Portal.
- DigitalSignature string, header, Required
Generated from your HTTP METHOD, Query Path, X-Request-Id, and X-Request-Time values.
- X-Request-Id string, header, Required
A unique identifier for the request; valid for 24 hours, max length 83.
- X-Request-Time string, header, Required
The current UNIX timestamp in seconds. This value will be rejected if it is more than 60 seconds late.
Response (application/json)
- 204 No Content
- 404 Not Found
- 422 Client Error
Not Found
{"type": "string","title": "string","status": 0,"detail": "string","instance": "string","property1": null,"property2": null}
Client Error
{"type": "string","title": "string","status": 0,"detail": "string","instance": "string","property1": null,"property2": null}