EU

This page contains details about the European Union Know Your Business (KYB) flows and links to the following sub-pages for a quick reference:

Page nameDescription
EU required fieldsThis page lists the required API fields of each entity type.
EU required documentsThis page contains tables listing the required documents for verification of the business entity, stakeholders, and applicants.
EU position mappingThis page gives a quick glance at the required positions of each entity type.
EU request examplesThis page contains API request examples for EU entities.

Nium offers E_KYB and MANUAL_KYB flows for customers in the European Union.

The E_KYB 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 E_KYB flow for your account.

eKYB flow

The following steps are required to complete the E_KYB application.

A diagram showing the eKYB flow for the European Union.

A diagram showing the eKYB flow for the European Union. (click to enlarge)

Step 1. Public Corporate Details Using Business ID API

To start the eKYB process, collect the basic details about the corporate customer from the applicant through an onboarding form, including the businessRegistrationNumber and countryCode. Then, call Nium's Public Corporate Details Using Business ID API.

This API returns publicly available information about the corporate customer, which you then display to the customer so they can select and confirm the businessName and businessRegistrationNumber along with any other optional details.

You need to store the searchReferenceId that's returned in this response since it's required in subsequent steps.

This API may return multiple results for a given businessRegistrationNumber. When there's more than one, display all the results to let the customer select the right one.

When no results are returned, call the Onboard Corporate Customer API with a full request body. Such applications go through manual review, making the E_KYB process not applicable in this case.

Step 2. Exhaustive Corporate Details Using Business ID API

Call the Exhaustive Corporate Details Using Business ID API using the searchReferenceId stored in Step 1 as the parameter.

This returns the public and non-public information about the corporate customer.

You need to store the searchId that's returned in this response since it's required in the subsequent steps.

⚠️

CAUTION

This is a chargeable API. Work with your Nium representative before using it. It's best to use this API only once per customer.

Step 3. Display the information to the applicant

You need to display the above-received information to the applicant for their confirmation, edits, or additions. Then, submit the form. All the fields required to call the Onboard Corporate Customer API are collected in this step. Any additional fields that are required, and not returned in the above step, are to be added by the applicant.

Step 4. Onboard Corporate Customer API

You then call the Onboard Corporate Customer API with the full request body, including the searchId you stored in Step 2.

If the searchId parameter isn't passed, the application is treated as MANUAL_KYB and goes through a manual review.

4a. Applicant KYC

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 redirectURL. Applicant then lands on our 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. You need to pass E_DOC_VERIFY as businessDetails.applicantDetails.kycMode for all applications.

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.
ScenarioExpected action from clientQuery parameters in the redirection
The applicant completed the required steps in the vendor’s UI.Wait for webhook.errorCode: N/A

errorMessage: N/A

isSuccess: TRUE
The redirect URL expired due to timeout.Call Regenerate KYC URL API.errorCode: R408

errorMessage: redirectURLExpired

isSuccess: FALSE
The document has already been submitted in the vendor's UI.KYC Process is completed. Client needs to wait for webhook.errorCode: R403

errorMessage: documentAlreadySubmitted

isSuccess: FALSE
The customer has provided incorrect data in the vendor's UI.Ask customer to submit correct data in the vendors page.errorCode: I400

errorMessage: vendorValidationError

isSuccess: FALSE
Verification Failure at the Vendor.The application goes to manual review. The client needs to wait for webhook.errorCode: R401

errorMessage: vendorVerificationFailure

isSuccess: FALSE
Internal Server error at Nium.Try after some time or reach out to Nium's support.errorCode: R500

errorMessage: internalServerError

isSuccess: FALSE
Any unexpected error from the vendor.Try after some time or reach out to Nium's support.errorCode: I500

errorMessage: unexpectedError

isSuccess: FALSE
Validation already completed and customer retries the same link.KYC Process is completed. The client need to wait for webhook.errorCode: R606

errorMessage: verificationAlreadyCompleted

isSuccess: TRUE

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

For applicants where the businessDetails.applicantDetails.address.country is US, the applicant's address' state needs to be a valid 2 letter state code. Use Fetch corporate constants API for acceptable values.

⚠️

CAUTION

There's an expiration time for the redirectURL and the applicant is expected to complete the process shortly after submitting the application.

If the URL expires, the applicant is redirected to your configured client KYC redirect URL with an error message. Use Regenerate KYC URL API to get a new URL with a new expiration time.

4b. Upload documents for the corporate customer, if required

If searchId isn't passed, a document upload is required. Even if searchId is passed, some documents might be required in certain scenarios. Nium doesn't initiate verification until all required documents are submitted.

All required documents, under the businessDetails.documentDetails section, can be submitted in two ways:

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 expects 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 and eKYB flows, see EU required documents.

4c. Stakeholder KYC

For the eKYB flow, document details aren't required for Nium to carry out stakeholder verification. You can ignore the businessDetails.stakeholder.stakeholderDetails.kycMode field.

After submission, the status in the Onboard Corporate Customer API response is IN_PROGRESS. The applicant needs to complete steps 4a and 4b to proceed further. Once done, Nium initiates real-time verification and sends the response via a webhook. The application might be approved at this stage; and if it isn't approved, the application goes through a manual review. Any change in thestatus is again communicated via a webhook. For the next steps based on the response of the webhook, see Webhooks.

Manual KYB flow

A diagram showing the manual KYB flow for the European Union.

A diagram showing the manual KYB flow for the European Union. (click to enlarge)

For manual KYB flow, you need to call the Onboard Corporate Customer API directly. In this flow, the entire request body needs to be passed in the Onboard Corporate Customer API.

Important points to keep in mind:

  • Nium doesn't initiate verification until all required documents are submitted.
  • You need to pass E_DOC_VERIFY as businessDetails.applicantDetails.kycMode for all applications. For details on implementing E_DOC_VERIFY, see Applicant KYC.
  • The applicant is required to complete the KYC process using the redirect link via Nium's vendor Onfido.
  • You need to pass only MANUAL_KYC as businessDetails.stakeholders.stakeholderDetails.kycMode for KYC of individual stakeholders. Uploading of documents is required for manual KYC, which needs to be sent in businessDetails.stakeholder.stakeholderDetails.documentDetails. For details, see Stakeholder documents

After the submission, the status in the response of the Onboard Corporate Customer API is IN_PROGRESS. Once documents are uploaded and the KYC process completes, Nium initiates manual verification and sends the response via a webhook.

Refer to the next steps based on the response of the webhook.