Skip to main content

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.

caution

Only users with the compliance role can create and submit Outsourced applications.

There are four steps to onboarding via Outsourced

  1. Capture the customer information - done on your platform
  2. Create the legal persons
  3. Run the verification
  4. View the verification outcome and onboarding decision

1. Capture the customers information

You will need the following information about the customer

LTDSole traderIndividual
Company nameFull nameFull name
Company registration numberBusiness nameAddress
Business typeBusiness type (sole trader)Date of birth
Industry code (SIC)Industry code (SIC)US citizen confirmation
Business sizeBusiness sizeTax 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 addressResidential address
Company registered addressDate of birth
Tax residency/iesUS citizen confirmation
Tax identifier number/sTax residency/ies
Risk ratingTax 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.

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.

info

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-updated webhook 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
StatusDescription
pendingVerification has been created but processing has not yet begun
in-progressVerification checks are actively being performed
failedAn internal system error has occurred during verification
checks-declinedVerification was terminated early due to failing one or more workflow checks
checks-completeVerification 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-url endpoint
  • Listening for decision-created webhook 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.