Outsourced onboarding
In outsourcing we do not complete third party checks on the data sent to our system, this is done by you. We are validating that required data exists and that the customer is not out of appetite for industry, jurisdiction or risk profile purposes.
Outsourced onboarding is for firms which Griffin has a pre-existing agreement with to outsource the onboarding processes to. If you don't have this agreement in place, this onboarding guide does not apply to you.
Only users with the compliance role can create and submit Outsourced applications.
There are four steps to onboarding via Outsourced
- Capture the customer information - done on your platform
- Create the legal persons
- Run the verification
- View the verification outcome and onboarding decision
1. Capture the customers information
You will need the following information about the customer
| LTD | Sole trader | Individual |
|---|---|---|
| Company name | Full name | Full name |
| Company registration number | Business name | Address |
| Business type | Business type (sole trader) | Date of birth |
| Industry code (SIC) | Industry code (SIC) | US citizen confirmation |
| Business size | Business size | Tax residency/ies |
| Number of employees* | Number of employees* | Tax identifier number/s |
| Balance sheet size* | Balance sheet size* | Risk rating |
| Estimated annual turnover* | Estimated annual turnover* | |
| Company trading address | Residential address | |
| Company registered address | Date of birth | |
| Tax residency/ies | US citizen confirmation | |
| Tax identifier number/s | Tax residency/ies | |
| Risk rating | Tax identifier number/s | |
| ↓ Director & PSC info ↓ | Risk rating | |
| Full name | ||
| Address | ||
| Date of birth | ||
| US citizen confirmation | ||
| Tax residency/ies | ||
| Tax identifier number/s |
*Requested but not required
Note this is the data we will hold on our system, a larger set of data requirements will be required from the customer by the outsourcing party to complete full CDD and risk rate the customers.
2. Create the legal persons
In the API, your customer is represented as a legal person, and each of the data points above represent one claim about them. Create an corporate or individual legal person to represent the customer and then add claims about them, example below of an individual legal person.
curl "https://api.griffin.com/v0/organizations/${ORGANIZATION_ID}/legal-persons" \
-H "Authorization: GriffinAPIKey$GRIFFIN_API_KEY" \
-H 'Content-Type: application/json' \
-d \
'{
"display-name": "DAVIS, Henry",
"legal-person-type": "individual",
"claims": [
{
"claim-type": "individual-identity",
"given-name": "Henry",
"surname": "Davis",
"date-of-birth": "1991-05-10"
},
{
"claim-type": "individual-residence",
"street-name": "Example Street",
"city": "Test Town",
"postal-code": "TE1 2ST",
"country-code": "GB",
"building-number": "19"
},
{
"claim-type": "us-citizen",
"us-citizen?": true
},
{
"claim-type": "tax-residency",
"tax-residency": "GB"
},
{
"claim-type": "tax-identification-number",
"tax-identification-number": "123456789"
},
{
"claim-type": "external-risk-rating",
"external-risk-rating": "low-risk"
]
}'
A successful response will display the URL for the newly created legal person (e.g./v0/legal-persons/lp.njk7tIWvQJGPEFIdDmS9yQ) in the response's Location header and in the response body. Save this URL for the next step.
In this example, you create the legal person and their claims in one go, but you can also create a legal person first and then add claims individually. For more detail on claims, see the API reference.
3. Run the verification
3.1 Retrieve your workflows
If your onboarding a customer for the first time you will need to retrieve your [workflows] in order to submit the verification. Retrieve and cache your workflow IDs.
curl "https://api.griffin.com/v0/organizations/${ORGANIZATION_ID}/workflows" -H "Authorization: GriffinAPIKey $GRIFFIN_API_KEY"
Example response:
{
"workflows": [
{
"workflow-url": "/v0/workflows/wf.G3yYmojQV32I814_5JLTEQ",
"display-name": "Outsourced Individual",
"legal-person-type": "individual"
},
]
}
3.2 Submit
Submit the corporate or individual legal person for verification, as shown below.
curl 'https://api.griffin.com/v0/legal-persons/lp.Kfd8_BhpSdCqFKRYXa8d45/verifications' \
-H "Authorization: GriffinAPIKey $GRIFFIN_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"workflow-url": "/v0/workflows/wf.G3yYmojQV32I814_5JLTEQ"}'
A successful response will look like this. Grab the verification-url for monitoring later.
{
"created-at": "2024-02-10T10:47:51.959Z",
"display-name": "DAVIS, Henry",
"legal-person-type": "individual",
"legal-person-url": "/v0/legal-persons/lp.Kfd8_BhpSdCqFKRYXa8d45",
"updated-at": "2024-02-10T10:47:51.959Z",
"verification-status": "pending",
"verification-url": "/v0/verifications/vn.BhpS_dCqFKRYXa8d457fgA",
"workflow-url": "/v0/workflows/wf.G3yYmojQV32I814_5JLTEQ"
}
4. View the verification outcome and onboarding decision
Verification Status
The verification has successfully completed when verification-status reaches checks-complete. You can track this by:
- Polling the
verification-url - Listening for
verification-updatedwebhook events
Example response:
{
"created-at": "2024-02-11T10:47:51.959Z",
"display-name": "DAVIS, Henry",
"legal-person-type": "individual",
"legal-person-url": "/v0/legal-persons/lp.Kfd8_BhpSdCqFKRYXa8d45",
"risk-rating": "low-risk",
"updated-at": "2022-08-15T10:48:03.215Z",
"verification-status": "checks-complete",
"verification-url": "/v0/verifications/vn.BhpS_dCqFKRYXa8d457fgA",
"workflow-url": "/v0/workflows/wf.G3yYmojQV32I814_5JLTEQ"
}
Verification Statuses Explained
| Status | Description |
|---|---|
pending | Verification has been created but processing has not yet begun |
in-progress | Verification checks are actively being performed |
failed | An internal system error has occurred during verification |
checks-declined | Verification was terminated early due to failing one or more workflow checks |
checks-complete | Verification has successfully completed all required checks |
Verification Status Flow
Decision Process
After reaching checks-complete, the system will either:
- Generate an automated decision
- Refer the application for manual review (followed by a manual decision)
Tracking Decisions
Monitor decisions by:
- Polling the
legal-person-decisions-urlendpoint - Listening for
decision-createdwebhook events
Application Status & Decision Flow
In context
Both the verification status and the decisions can be seen in context on the legal person entity.
curl 'https://api.griffin.com/v0/legal-persons/lp.Kfd8_BhpSdCqFKRYXa8d45' -H "Authorization: GriffinAPIKey $GRIFFIN_API_KEY"
The response will include application-status and also the latest-decision when one exists, as shown below:
{
"latest-decision":
{
"verification-url": "/v0/verifications/vn.BhpS_dCqFKRYXa8d457fgA",
"decision-outcome": "accepted",
"decision-maker": "user",
"decision-notes": "No red flags here",
"decision-user-url": "/v0/users/ur.ICAgICAgICAgdXNlci1pZA",
"created-at": "2024-08-11T10:47:51.959Z"
},
"display-name": "DAVIS, Henry",
"application-status": "accepted",
"status-changed-at": "2024-02-11T10:47:51.959Z",
"created-at": "2024-02-10T10:47:51.959Z",
...
}
Once you have an accepted decision, you're good to go 🎉
What's next? Open an account! See here to get started.