Getting Started Guides
Authenticate your customers using Identity Verification (IDV). For example, Customers may need to be verified before they can be issued a bank account.
You can verify Individual and Business Customers. If you verify a Business Customer, any Beneficial Owners attached to the Customer will also be verified as part of the IDV process.
In this guide, you’ll learn how to:
Sandbox Account: Sign up for a RocketKOR sandbox account. When your sandbox account is created, one or more Service Accounts will be created for your Business Account. A Service Account is a non-human user of a Business Account that performs functions (such as creating transactions) via the RocketKOR APIs on behalf of the Business Account.
Authentication: Before you can call the APIs, you must authenticate a Service Account by exchanging the account’s API key and secret for an access token.
Customer Account: Ensure the Business Customer or Individual Customer has an active Customer Account.
Beneficial Owners: For Business Customers, add any Beneficial Owners to the Customer Account.
List the available IDV profiles for the Business Account and determine which profile to use for the Customer. For example, a Business Customer will need a different profile than an Individual Customer. In addition, some profiles may perform basic checks while others may perform more extensive checks.
In the request, use the identityAccountTypes query parameter to list profiles for Business Customers (BUSINESS_CUSTOMER) or Individual Customers (INDIVIDUAL_CUSTOMER).
GET /v1/identity-verification-profiles
Returns a list of Identity Verification Profile objects. Review the response and determine which IDV profile is most appropriate for the Customer Account you want to verify.
Once you’ve selected an IDV profile, make a note of the profile requirements. In the next steps, you’ll check the Customer Account and Beneficial Owners to ensure they contain this information. These requirements include:
Also make a note of the profile ID (id). You’ll need this ID in step 5 when you submit an IDV application for the Customer.
The following example shows an IDV profile to verify a Business Customer and their Beneficial Owners.
{
"id": "kyb-profile-1",
"name": "Business and Beneficiary check",
"allowedAccountTypes": [
"BUSINESS_CUSTOMER"
],
"allowedAccountStatuses": [
"ACTIVE"
],
"minimumInformationRequired": {
"business": {
"info": [
"TAX_ID",
"PRIMARY_EMAIL_ADDRESS",
"PRIMARY_PHONE_NUMBER"
],
"name": [
"BUSINESS_LEGAL_NAME"
],
"documents": {
"formation": []
},
"physicalAddress": [
"LINE1",
"CITY",
"STATE",
"POSTAL_CODE",
"COUNTRY"
]
},
"beneficiary": {
"info": [
"DATE_OF_BIRTH",
"SSN",
"PRIMARY_EMAIL_ADDRESS",
"PRIMARY_PHONE_NUMBER"
],
"name": [
"FIRST",
"LAST"
],
"documents": {
"passport": [
"ISSUING_COUNTRY",
"EXPIRY_DATE"
],
"drivingLicense": [
"ISSUING_COUNTRY",
"EXPIRY_DATE"
]
},
"physicalAddress": [
"LINE1",
"CITY",
"STATE",
"POSTAL_CODE",
"COUNTRY"
]
}
}
}
Retrieve the Customer Account and ensure it has the required status and information listed in the IDV profile you selected in step 1.
GET /v1/customers/{customerId}
In the request, pass the Customer Account ID to the customerId parameter.
Returns the Business Customer or Individual Customer object. These objects contain the Customer Account details.
Check the response to ensure the required fields are present. If necessary, use the Update a Business Customer or Update an Individual Customer API to add any missing information to the Customer Account.
The following example shows a response for a Business Customer Account.
{
"id": "69248436-39f5-4074-9823-76d2580c82a6",
"status": "ACTIVE",
"addresses": [
{
"type": "PHYSICAL",
"streetLine1": "200 King St",
"streetLine2": "Suite 310",
"cityName": "Greenville",
"stateCode": "MO",
"countryCode": "USA",
"zipCode": "63368",
"primary": true
}
],
"type": "BUSINESS",
"businessName": "ACME",
"contacts": [
{
"firstName": "Jack",
"lastName": "Smith",
"primary": true,
"primaryPhoneNumber": {
"number": "+14151234",
"type": "WORK",
},
"primaryEmail": {
"value": "jsmith@acme.com",
}
}
],
"legalName": "ACME Corporation",
"primaryPhone": "+14151234",
"website": "https://www.acme.com",
"dateOfFormation": "2010-01-31",
"legalEntityType": "CORP",
"taxIdCountryCode": "USA",
"taxId": "12-3456789",
...
}
If you’re verifying a Business Customer Account, retrieve any Beneficial Owners and ensure they have the required information listed in the IDV profile you selected in step 1.
GET /v1/customers/{customerId}/beneficiaries/{beneficiaryId}
In the request:
Returns the Beneficial Owner object.
Check the response to ensure the required fields are present. If necessary, use the Update a Beneficial Owner API to add any missing information to the Beneficial Owner.
{
"parentId": "69248436-39f5-4074-9823-76d2580c82a6",
"id": "997dec9d-afcb-4843-a9e3-5333b6228229",
"firstName": "Natalie",
"lastName": "Smith",
"sex": "FEMALE",
"primaryPhoneNumber": {
"number": "+17512312345",
"type": "MOBILE",
},
"primaryEmail": {
"value": "nsmith@example.com",
},
"dateOfBirth": "1981-05-11",
"socialId": "123-45-6789",
"addresses": [
{
"type": "PHYSICAL",
"streetLine1": "400 Richmond St",
"cityName": "New York",
"stateCode": "NY",
"countryCode": "USA",
"zipCode": "10001",
"primary": true
}
],
...
}
Some IDV profiles require that identity documents exist for the Customer Account and any Beneficial Owners.
Check the IDV profile you selected in step 1 to see if there are any required documents. If so, use the List All Documents API to see if these documents have already been uploaded.
If an identity document is missing from a Customer or Beneficial Owner, you’ll need to add the document.
To do this, you’ll need the Customer Account ID or Beneficial Owner ID. You’ll also need to provide the following information about the document. After sending a request with this information, you’ll upload the document by calling the content URL provided in the response.
|
Parameter |
Description |
|---|---|
|
holderId |
Customer Account ID or Beneficial Owner ID. |
|
holderType |
Type of account holder. Value must be CUSTOMER or BENEFICIARY. |
|
documentType |
Type of document. The following values are supported:
|
|
name |
Name of the document. |
|
description |
Description of the document. Required if documentType is formation, tax, ownership, or other. |
|
extension |
Document file extension (JPG, JPEG, PNG, or PDF). |
|
contentLength |
File content size in bytes. |
|
number |
Document number. Required if documentType is driving-license or passport. |
|
issuingCountryCode |
Country code where the document was issued. Required if documentType is driving-license or passport. |
|
issuingStateCode |
State or province code where the document was issued. Required if documentType is driving-license. |
|
expiryDate |
Expiry date for the document. Required if documentType is driving-license or passport. |
POST /v1/documents
{
"holderId": "69248436-39f5-4074-9823-76d2580c82a6",
"holderType": "CUSTOMER",
"documentType": "formation",
"name": "Company Formation Document",
"description": "Articles of Incorporation",
"extension": "PDF",
"contentLength": 81169,
"number": "123-456-789",
"issuingCountryCode": "US",
"issuingStateCode": "NY",
"expiryDate": "2030-02-03"
}
Returns the Document object which includes a content url.
You can now upload the document by calling the url with an HTTP PUT request.
{
"id": "b175994b-fd5b-46d6-aba9-73638902f4a0",
"businessAccountId": "733df8ac-5d93-4e5a-b665-36a1525353d8",
"holderId": "69248436-39f5-4074-9823-76d2580c82a6",
"holderType": "CUSTOMER",
"documentType": "formation",
"name": "Company Formation Document",
"description": "Articles of Incorporation",
"number": "123-456-789",
"issuingCountryCode": "US",
"issuingStateCode": "NY",
"extension": "PNG",
"contentLength": 81169,
"expiryDate": "2030-02-03",
"url": {
"value": "https://documents.rocketkor.net/7260554c5",
"allowed": "PUT",
"expiresIn": 600
}
...
}
Now that the account information and identity document updates are complete, the next step is to submit an IDV application for the Customer. This application will be sent to a trusted third-party IDV provider for processing. If the Customer has any Beneficial Owners, the Beneficial Owners will be automatically included in the verification process.
To submit an IDV application, you’ll need:
POST /v1/identity-verifications
{
"accountId": "69248436-39f5-4074-9823-76d2580c82a6",
"identityVerificationProfileId": "kyb-profile-1"
}
Returns the URI of the newly created IDV application in the Location header.
{
201 Identity verification application created successfully. Application resource URI is returned in the Location header.
}
Check the current status of the IDV application.
You can search for the application based on the filters such as the Customer Account ID (accountId), the Customer Account type (BUSINESS_CUSTOMER, INDIVIDUAL_CUSTOMER), the IDV profile used for the application (identityVerificationProfileId), and the date the application was created (createdDateFrom, createdDateTo).
Note You can also use IDV watchlist events to receive notifications when an update is made to an IDV application’s status.
GET /v1/identity-verifications
Returns an array of Identity Verification Application objects, based on the request filters.
This object contains the IDV application details such as the current application status (latestStatus) and final application outcome (outcome). It also contains details for the Customer Account and any Beneficial Owners that were verified for the Customer Account (entities).
The following example shows a response for a Business Customer Account with a Beneficial Owner.
{
"id": "56de0668-7ae5-4706-8591-cd674c512267",
"businessAccountId": "733df8ac-5d93-4e5a-b665-36a1525353d8",
"accountId": "69248436-39f5-4074-9823-76d2580c82a6",
"identityVerificationProfileId": "kyb-profile-1",
"latestStatus": "COMPLETED",
"outcome": "Approved",
"legalName": "ACME Corporation",
"accountType": "BUSINESS_CUSTOMER",
"statusHistory": [ ... ],
...
"entities": [
{
"status": "COMPLETED",
"outcome": "Approved",
"accountId": "69248436-39f5-4074-9823-76d2580c82a6",
"entityType": "BUSINESS_CUSTOMER",
"statusHistory": [ ... ],
...
},
{
"status": "COMPLETED",
"outcome": "Approved",
"accountId": "997dec9d-afcb-4843-a9e3-5333b6228229",
"entityType": "BENEFICIARY",
"statusHistory": [ ... ],
...
}
]
}
Step into the future of Finance with RocketKOR! Simplify payments, banking, lending, and data analytics using our versatile KOR Platform.
A Rocket Financial Inc. company
@ 2024 RocketKOR, Inc. All rights reserved.