US onboarding
Overview
This page contains details of the US KYB flows with the following sub-pages for quick reference:
Page name | Description |
---|---|
US required parameters | This page lists the required API fields of each entity type for an eKYB verification. |
US required documents | This page contains tables listing the required documents for verification of the business entity, stakeholders, and applicants. |
US position mapping | This page gives a quick glance at the required positions of each entity type. |
US request examples | This page contains API request examples for US entities. |
Nium offers eKYB and Manual KYB flows for customers in the United States.
The eKYB flow is fully automated, allowing corporate customers to be approved within a few minutes of submitting their application, making it the preferred mode for all customers. Reach out to Nium's sales team to configure the eKYB flow for your account.
eKYB flow
The following steps are required to complete an eKYB application in the US.
Onboard Corporate Customer API
You need to collect all the details required to call the Onboard Corporate Customer API through an onboarding form and call the API with the full request body.
Applicant KYC
The E_KYC
, E_DOC_VERIFY
, and MANUAL_KYC
are supported for applicants for eKYB for flow in the United States. For applicants, you pass E_KYC
(for US residents) or E_DOC_VERIFY
(for non-US residents) in businessDetails.applicantDetails.kycMode
. If required, client can make use of Manual_KYC
for non-US residents; however, applications with MANUAL_KYC
go through manual review and cannot be verified in real-time.
The uploading of documents is mandatory for MANUAL_KYC
which has to be sent in businessDetails.applicantDetails.documentDetails
. See US required documents for details.
Applicant eDocVerify
As a response to the Onboard Corp Customer API, Nium returns a redirect URL. You need to save this URL and redirect the applicant to the redirect URL. The applicant then lands on the KYC vendor's page, where he can complete the KYC verification by uploading his proof of identity and proof of address documents with a live selfie. After that, applicants are redirected back to your client KYC redirect URL that was configured with Nium.
Redirection can result in the following scenarios, based on the below parameters.
errorCode
errorMessage
isSuccess
– This field indicates if the applicant completed the required steps in the vendor’s UI. It doesn't mean KYC is successful.
Scenario | Expected action from client | Query parameters in the redirection |
---|---|---|
The applicant completed the required steps in the vendor’s UI. | Wait for webhook. | errorCode : N/AerrorMessage : N/AisSuccess : TRUE |
The redirect URL expired due to timeout. | Call Regenerate KYC URL API. | errorCode : R408errorMessage : redirectURLExpiredisSuccess : FALSE |
The document has already been submitted in the vendor's UI. | KYC Process is completed. Client needs to wait for webhook. | errorCode : R403errorMessage : documentAlreadySubmittedisSuccess : FALSE |
The customer has provided incorrect data in the vendor's UI. | Ask customer to submit correct data in the vendors page. | errorCode : I400errorMessage : vendorValidationErrorisSuccess : FALSE |
Verification failure at the vendor. | The application goes to manual review. The client needs to wait for webhook. | errorCode : R401errorMessage : vendorVerificationFailureisSuccess : FALSE |
Internal Server error at Nium. | Try after some time or reach out to Nium's support. | errorCode : R500errorMessage : internalServerErrorisSuccess : FALSE |
Any unexpected error from the vendor. | Try after some time or reach out to Nium's support. | errorCode : I500errorMessage : unexpectedErrorisSuccess : FALSE |
Validation already completed and customer retries the same link. | KYC Process is completed. The client need to wait for webhook. | errorCode : R606errorMessage : verificationAlreadyCompletedisSuccess : FALSE |
Based on the scenario, you can implement the next steps as provided in the table above.
Example of a redirect to the client in a successful case
https://www.clientRedirectURL.com/?clientId=NIM1681898211881&caseId=4ff53849-3d30-45c8-af11-
f95c315ce83c&isSucces=true&errorCode=&errorMessage=
Example of a redirect to the client in a failed case
https://www.clientRedirectURL.com/?clientId=NIM1681898211881&caseId=4ff53849-3d30-45c8-af11-
f95c315ce83c&errorCode=R408&errorMessage=redirectURLExpired&isSucces=false
When the applicant's businessDetails.applicantDetails.address.country
is US
, the applicant's address' state
needs to be a valid 2 letter state code. Use the Fetch corporate constants API for acceptable values.
When the applicant's businessDetails.applicantDetails.address.country
is GB
, the applicant's postcode
needs to be in the SW4 6EH
format.
CAUTION
There's an expiration time for the
redirectURL
so the applicant needs to complete the process soon after submitting the application.If the URL expires, the applicant is redirected to your configured client KYC redirect URL with an error message. Use the Regenerate KYC URL API to get a new URL with a new expiration time.
Stakeholder KYC
The E_KYC
and MANUAL_KYC
modes are offered for KYC of Individual stakeholders in the eKYB flow in the United States.
For stakeholders, you pass E_KYC
(for US residents) or MANUAL_KYC
(for non-US residents) in businessDetails.stakeholders.stakeholderDetails.kycMode
.
Applications with MANUAL_KYC
go through manual review and cannot be verified in real-time.
The uploading of documents is mandatory for MANUAL_KYC
which has to be sent in businessDetails.stakeholders.stakeholderDetails
. See US required documents for details.
Upload documents, if required
Documents may be required for the eKYB flow if MANUAL_KYC
is sent as the KYC mode for either a stakeholder or applicant.
Documents can be submitted either of two ways:
- As part of the Onboard Corporate Customer API
- Via the Upload Document API
The Upload Document API is preferred since it uploads one document at a time, which reduces the loading time. This API can be called only while the application is in the IN_PROGRESS
state.
You can use the remarks
field to list which documents Nium is expecting, in the response of both APIs.
CAUTION
The API gateway has a limit of 10 MB for any API request. This makes Upload Document API the preferred way to upload documents since you can upload one document at a time.
For the entire list of required documents for manual KYB and eKYB flows, see US required documents.
Applicant Declaration
US applicants must accept the following applicant declaration.
"I certify that I am the authorized representative of the customer; all information provided and documents submitted are complete and correct. I confirm that I have provided all the UBOs present. I have read and accepted the Nium Terms and Conditions."
You can accept this through a clickwrap and send Nium the confirmation by passing businessDetails.applicantDetails.additionalInfo.applicantDeclaration='Yes'
. This is a mandatory field, and passing any other value would result in a validation error. You can show the below text while accepting the clickwrap.
Terms and Conditions
Customers must be shown Nium terms and conditions as configured for your specific client
resource. These specific terms and conditions can be fetched using our Terms And Conditions API.
Customers should not be allowed to submit the onboarding form until they accept the terms and conditions.
To fetch the Terms And Conditions API:
- Wait for the Onboarding API to return a
customerHashId
. - Once returned, call our Accept Terms and Conditions API and include the
customerHashId
. - Show the customer the returned terms and conditions and record their acceptance before allowing them to transact.
For more details, see Terms and Conditions.
Wait for webhook response
After submission and completion of applicant KYC, the status
in the response of the Onboard Corporate customer is IN_PROGRESS
. Nium initiates real-time verification and sends the response via webhook. The application can get approved at this stage; and if it isn't approved, the application goes through manual review. Any changes in status
is again communicated via webhook.
Refer to the next steps based on the response of the Webhooks.
Manual KYB Flow
The process for Manual KYB is similar to eKYB with one exception: documents are required in all cases.
All the required documents can be submitted as part of the Onboard Corporate Customer API. However, submitting via the Upload Document API is preferred since you can send one document at a time, reducing the loading times for the end customer.
You can use the remarks
field to know which documents Nium is expecting, in both the response of the Upload Document API and the Onboard Corporate Customer API.
After the documents are uploaded, Nium initiates verification and you are notified of any change in status
via webhook.
For the entire list of required documents for manual and eKYB flows see US required documents.
The Upload Document API can be called only once while the application is in the IN_PROGRESS
state.
- Business Documents are mandatory in the
MANUAL_KYB
flow and can be sent either as part of the Onboard Corporate Customer API or the Upload Document API (preferred) under thebusinessDetails.documentDetails
section.
Nium does not initiate verification until after all required documents are submitted.
- Applicant KYC is the same for both eKYB and Manual KYB. For details on implementing, see Applicant KYC.
- Only
MANUAL_KYC
mode is offered for KYC of Individual stakeholders in the manual KYB flow in the US. You need to pass theMANUAL_KYC
inbusinessDetails.applicantDetails.kycMode
. Upload of docs is mandatory for Manual KYC which needs to be sent inbusinessDetails.stakeholders.stakeholderDetails.documentDetails\
. See the Stakeholderssection for details. - Collecting the applicant declaration is required, as it is in eKYB.
- Terms and Conditions flow is same mentioned in the eKYB flow.
After the API is submitted, and the required documents are uploaded, Nium initiates manual verification. For the next steps based on the response of the webhook, see Webhooks.
Updated 9 months ago