Manage pooled account members
This guide will show you how to add and remove members of a pooled safeguarding or pooled client money account.
When to do this
- You’ll need to add members when you first set up a pooled account in order to receive payments into the account.
- You’ll also need to confirm that the membership is up-to-date at least once every 24 hours while the account is open.
Prerequisites
You must have a safeguarding account or client money account which has
pooled-funds
set totrue
.You will need the:
pooled-account-membership-updates-url
to update the pooled account membership.pooled-account-memberships-url
to list the members in a pooled account.
These URLs are returned in the response when a pooled account is first created. They can also be retrieved by getting the account.
Each member you want to add must be represented by a legal person.
Only users with the compliance
role can manage pooled account members.
Add and remove members
Make a request to the pooled-account-membership-updates-url
:
POST /bank/accounts/<bank-account-id>/membership-updates
In the request body, send two lists of legal person URLs:
additions
: Legal person URLs of members to be addeddeletions
: Legal persons URLs of members to be removed
{
"additions": [
"/v0/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA"
],
"deletions": [
"/v0/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA"
]
}
A successful response body looks like this:
{
"pooled-account-memberships-url": "/bank/accounts/<bank-account-id>/membership"
}
Confirm that membership is up-to-date
Even when there are no additions or deletions, you must confirm the pooled account membership is up-to-date once every 24 hours.
To update the membership without making any changes, send two empty lists in the request body:
{
"additions": [],
"deletions": []
}
This confirms that the current pooled account membership is correct and has not changed in the last 24 hours.
Why do we have to do this? These 24 hourly updates are part of Griffin’s regulatory requirements. As a bank, we are required to have a clear snapshot of whose money is in the account at any given point of time.
List the pooled account members
Make the following request to the pooled-account-memberships-url:
GET /bank/accounts/<bank-account-id>/membership
This returns a paginated list of legal person URLs, with the date and time they were added to the pooled account.
Add the include
parameter to also return the legal person details, latest verification (if one exists), and latest risk rating (available only for customers onboarded via Verify).
A successful minimal response looks like this:
{
"pool-members": [
{
"created-at": "2019-08-24T14:15:22Z",
"legal-person-url": "/v0/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA"
},
{
"created-at": "2019-08-24T14:15:22Z",
"legal-person-url": "/v0/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA"
}
]
}
This is a successful response with all include
parameters:
{
"pool-members": [
{
"created-at": "2019-08-24T14:15:22Z",
"legal-person-url": "/v0/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA"
}
],
"links": {
"prev": null,
"next": null
},
"included": {
"verifications": [
{
"verification-url": "/v0/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA",
"updated-at": "2019-08-24T14:15:22Z",
"legal-person-url": "/v0/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
"workflow-url": "/v0/workflows/wf.ICAgICB3b3JrZmxvdy1pZA",
"created-at": "2019-08-24T14:15:22Z",
"verification-checks-url": "/v0/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA/checks",
"risk-rating": "high-risk",
"verification-status": "in-progress",
"verification-risk-assessments-url": "/v0/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA/risk-assessments"
}
],
"risk-rating-entries": [
{
"risk-rating-url": "/v0/risk-ratings/rr.ICByaXNrLXJhdGluZy1pZA",
"risk-rating": "high-risk",
"legal-person-url": "/v0/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
"notes": "string",
"manually-created-by": {
"manually-created-by-type": "ops-user"
},
"verification-url": "/v0/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA",
"previous-risk-rating": "high-risk"
}
],
"legal-persons": [
{
"latest-decision": {
"verification-url": "/v0/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA",
"decision-outcome": "accepted",
"decision-maker": "system",
"decision-notes": "string",
"created-at": "2019-08-24T14:15:22Z",
"decision-user-url": "/v0/users/ur.ICAgICAgICAgdXNlci1pZA",
"decision-user-username": "user@example.com",
"decision-ops-user": "griffin-ops-user"
},
"legal-person-type": "individual",
"latest-risk-rating-url": "/v0/risk-ratings/rr.ICByaXNrLXJhdGluZy1pZA",
"display-name": "string",
"application-status": "referred",
"legal-person-url": "/v0/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
"legal-person-decisions-url": "/v0/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/decisions",
"status-changed-at": "2019-08-24T14:15:22Z",
"created-at": "2019-08-24T14:15:22Z",
"legal-person-claims-url": "/v0/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/claims",
"legal-person-bank-payees-url": "/v0/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/bank/payees",
"legal-person-verifications-url": "/v0/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/verifications",
"legal-person-documents-url": "/v0/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/documents"
}
]
}
}