Skip to main content

Open a client money account

A client money account is for managing your customers' funds. Only firms regulated under CASS (the FCA's Client Assets Sourcebook) can open client money accounts. You can choose to open a dedicated account for each of your customers, or a pooled account for holding funds from multiple customers. Learn more about bank accounts.

Prerequisites

  • You will need your organization-bank-accounts-url (shown as $ORGANIZATION_BANK_ACCOUNTS_URL in the examples below). Your organization-bank-accounts-url is one of the URLs returned when you request your organization-url. If you don't have your organization-url yet, check out our getting started guide.

  • Before you can open an account for a customer, you must determine the legal relationship that your customer has with the account. Learn about owners, controllers and beneficiaries. Any named owner or beneficiary will need to be onboarded. Check out our guides for onboarding customers.

Request

  • Set the bank-product-type to client-money-account.
  • Pick the client-money-type for the account. The most common type is general-client-money, but designated-client-money and designated-client-fund accounts are also available.
  • Set the pooled-funds field to false.
  • Set the beneficiary-url to the legal person URL who is entitled to the money in the account.
  • Optionally, pick a display-name for the account.

If you are opening the account on behalf of a CASS-regulated firm set the owner-url to the legal person URL representing that firm. By default, you will be the owner.

note

The beneficiary-url and owner-url cannot be the same legal person.

The example below shows a dedicated client money account, where $OWN_LEGAL_PERSON_URL is your organisation's legal person URL, and $CUSTOMER_LEGAL_PERSON_URL is your customer's legal person URL.

curl "https://api.griffin.com${ORGANIZATION_BANK_ACCOUNTS_URL}" \
-X 'POST' \
-H "Authorization: GriffinAPIKey $GRIFFIN_API_KEY" \
-H 'Content-Type: application/json' \
--data '
{
"display-name": "Jennifer Daly",
"bank-product-type": "client-money-account",
"client-money-type": "general-client-money",
"beneficiary-url": "$CUSTOMER_LEGAL_PERSON_URL",
"pooled-funds": false
}'

Response

A successful response looks like this.

{
"account-url": "/v0/bank/accounts/ba.XsMi7GbNTGy3urMgXXM8_g",
"pooled-funds": false,
"display-name": "Jennifer Daly",
"beneficiary-url": "$CUSTOMER_LEGAL_PERSON_URL",
"owner-url": "$OWN_LEGAL_PERSON_URL",
"controller-url": "$OWN_LEGAL_PERSON_URL",
"account-balance": {
"currency": "GBP",
"value": "0.00"
},
"available-balance": {
"currency": "GBP",
"value": "0.00"
},
"account-transactions-url": "/v0/bank/accounts/ba.XsMi7GbNTGy3urMgXXM8_g/transactions",
"created-at": "2023-10-16T13:34:17.771Z",
"account-payments-url": "/v0/bank/accounts/ba.XsMi7GbNTGy3urMgXXM8_g/payments",
"bank-product-type": "client-money-account",
"client-money-type": "general-client-money",
"bank-addresses": [],
"close-account-url": "/v0/bank/accounts/ba.XsMi7GbNTGy3urMgXXM8_g/actions/close",
"account-status": "opening"

}

This response indicates that you have successfully registered your intent to open a client money account, where your customer is the beneficiary, and your organisation is both the owner and controller. The account-status will likely be opening since there are some background preparatory tasks that need to finish befoe the account can be used. These take place automatically, so you can simply poll the account-url endpoint until the account-status is open.

NOTE: If you have created a webhook for your organisation you can also listen for the account-status-updated webhook event and track account-status.

Learn more about the account lifecycle.

Poll for status

Poll the account-url endpoint.

curl "https://api.griffin.com${ACCOUNT_URL}" \
-X 'GET' \
-H "Authorization: GriffinAPIKey $GRIFFIN_API_KEY" \
-H 'Content-Type: application/json' \

When the account-status is open, the account is ready for use.

{
"account-url": "/v0/bank/accounts/ba.XsMi7GbNTGy3urMgXXM8_g",
"pooled-funds": false,
"display-name": "Jennifer Daly",
"beneficiary-url": "$CUSTOMER_LEGAL_PERSON_URL",
"owner-url": "$OWN_LEGAL_PERSON_URL",
"controller-url": "$OWN_LEGAL_PERSON_URL",
"account-balance": {
"currency": "GBP",
"value": "0.00"
},
"available-balance": {
"currency": "GBP",
"value": "0.00"
},
"account-transactions-url": "/v0/bank/accounts/ba.XsMi7GbNTGy3urMgXXM8_g/transactions",
"created-at": "2023-10-16T13:34:17.771Z",
"account-payments-url": "/v0/bank/accounts/ba.XsMi7GbNTGy3urMgXXM8_g/payments",
"bank-product-type": "client-money-account",
"client-money-type": "general-client-money",
"bank-addresses": [],
"close-account-url": "/v0/bank/accounts/ba.XsMi7GbNTGy3urMgXXM8_g/actions/close",
"account-status": "open"

}