Overview
This page introduces the onboarding process and the Know Your Business (KYB) requirements for a corporate customer. The Nium One platform onboards a corporate customer through a client. It verifies their identity and assigns them a wallet that holds the balance.
NOTE
The term corporate customer includes a:
- Small and medium enterprise (SME)
- Business
- Business client
Introduction
Onboarding process flow
After you complete your client setup you need to onboard your corporate customer. You need to submit an application through an API so Nium can complete the customer's KYB verification according to regional regulatory guidelines.
Nium requires the customer to wait for the KYB process to complete before they can make transactions. Nium offers an electronic KYB flow to onboard a customer in most regions. The eKYB verification completes in a few minutes allowing the customer to transact quickly after submitting their application.
The corporate customer onboarding process is composed of the following parts.
Corporate customer onboarding | Description |
---|---|
Submission of required information: | You need to collect the following information from the corporate customer and submit it to Nium via APIs: |
Information verification: | After the information is received, Nium starts the verification process: |
Definitions
Entity type | Definition |
---|---|
Applicant | An applicant is an individual who is submitting the application on behalf of the corporate customer. Usually, an applicant is an authorized representative or signatory of the corporate customer. An applicant has to undergo Know Your Customer (KYC) verification as part of the KYB process. |
Business | A business is a corporate customer that's being onboarded. |
Stakeholder | A stakeholder is an individual or entity that's declared in the registration documents of the business as an officer or shareholder. Information about all stakeholders needs to be submitted. Nium performs a KYC check on all stakeholders according to regulatory guidelines. |
Region-specific KYB requirements
For detailed onboarding steps about your region, click the onboarding link next to the region's name.
Australia — AU onboarding
KYB offering | Business verification | Applicant verification | Stakeholder verification |
---|---|---|---|
E_KYB | Real time | E_KYC for AU resident via database verification. E_DOC_VERIFY for non-AU resident via a live selfie photograph. MANUAL_KYC manual submission of documents. | E_KYC for AU resident via database verificationMANUAL_KYC for non-AU resident via manual submission of documents |
MANUAL_KYB | Requires Nium compliance review and manual submission of documents | E_KYC for AU resident via the database verification. E_DOC_VERIFY for non-AU resident via a live selfie photograph. MANUAL_KYC manual submission of documents. | MANUAL_KYC manual submission of documents, regardless of residence |
European Union — EU onboarding
KYB offering | Business verification | Applicant verification | Stakeholder verification |
---|---|---|---|
E_KYB | Real time | E_DOC_VERIFY regardless of residence and is applicable via a live selfie photograph. | N/A |
MANUAL_KYB | Requires Nium compliance review and manual submission of documents | E_DOC_VERIFY regardless of residence and is applicable via a live selfie photograph. | MANUAL_KYC manual submission of documents, regardless of residence |
Hong Kong — HK onboarding
KYB offering | Business verification | Applicant verification | Stakeholder verification |
---|---|---|---|
MANUAL_KYB | Requires Nium compliance review and manual submission of documents. | E_DOC_VERIFY regardless of residence and is applicable via a live selfie photograph. MANUAL_KYC manual submission of documents. | MANUAL_KYC manual submission of documents, regardless of residence. |
Singapore — SG onboarding
KYB offering | Business verification | Applicant verification | Stakeholder verification |
---|---|---|---|
E_KYB | Real time | E_KYC for SG residents via Myinfo verificationE_DOC_VERIFY for non-SG residents and is applicable via a live selfie photograph. MANUAL_KYC manual submission of documents | N/A |
MANUAL_KYB | Requires Nium compliance review and manual submission of documents | E_KYC for SG residents via the Myinfo verificationE_DOC_VERIFY for non-SG residents and is applicable via a live selfie photograph. MANUAL_KYC manual submission of documents. | MANUAL_KYC (manual submission of documents, regardless of residence) |
United Kingdom — UK onboarding
KYB offering | Business verification | Applicant verification | Stakeholder verification |
---|---|---|---|
E_KYB | Real time | E_DOC_VERIFY regardless of residence and is applicable via a live selfie photograph. | E_KYC for UK residents via the database verificationMANUAL_KYC for non-UK via manual submission of documents |
MANUAL_KYB | Requires Nium compliance review and manual submission of documents | E_DOC_VERIFY regardless of residence and is applicable via a live selfie photograph. | MANUAL_KYC manual submission of documents, regardless of residence |
United States — US onboarding
KYB offering | Business verification | Applicant verification | Stakeholder verification |
---|---|---|---|
E_KYB | Real-time | E_KYC for US residents via database verification. E_DOC_VERIFY for non-US residents and is applicable via a live selfie photograph. MANUAL_KYC manual submission of documents. | E_KYC for US residents via the database verification. MANUAL_KYC for non-US resident via manual submission of documents. |
MANUAL_KYB | Requires Nium compliance review and manual submission of documents | E_KYC for US residents via database verification. E_DOC_VERIFY for non-US residents and is applicable via a live selfie photograph. MANUAL_KYC manual submission of documents. | MANUAL_KYC manual submission of documents, regardless of residence. |
Implementation
Follow the steps below to complete the onboarding of the corporate customer along with KYB verification.

A diagram of the KYB onboarding process. (click to enlarge)
Submission of information
You need to send the required information below by one or more APIs summarized in the table.
Region | eKYB (required steps) |
---|---|
AU | 1. (optional) Public Corporate Details using Business ID API 2. Onboard Corporate Customer API |
EU/SG/UK | 1. Public Corporate Details using Business ID API 2. Exhaustive Corporate Details using Business ID API 3. Onboard Corporate Customer API |
US | Onboard Corporate Customer API |
For MANUAL_KYB
, you only need to call the Onboard Corporate Customer API.
Onboard API response
You can implement the following actions based on the status
field in the response.
200 response
Once the application is submitted via the Onboard Corporate Customer API, a customer is created and you receive the following customer information in the response, along with any errors or remarks, to be stored for future use:
caseId
clientId
customerHashId
walletHashId
The response also contains the status
which is always IN_PROGRESS
. One or both of the following can happen at this stage:
-
When a
redirectURL
is provided, it means the customer has to be redirected to the vendor's page for completion of the applicant's KYC. Refer to the individual region pages for more information. Once the process is completed, wait for webhook events to indicate the change in the corporate customers' applicationstatus
. -
Additional documents might be required, which can be submitted via the Upload Document for Corporate Customer API, regardless of a
redirectURL
. Refer to the individual regions for the complete list of documents required for eKYB and manual KYB flows. Also, you can make use of theremarks
field in the response, which can be shown to the applicant, and collect documents accordingly.
After either or both of the above-mentioned steps are completed as required, Nium initiates verification of the application. The application can either get verified in real time or through manual review. The status of the application changes to either ACTION_REQUIRED
, COMPLETED
, or REJECT
, accordingly. Any change in status is communicated via webhook, so wait for the webhook
event to complete.
Response example for IN_PROGRESS
with redirectUrl
IN_PROGRESS
with redirectUrl
{
"clientId": "NIM1679801521238",
"caseId": "c800e2e0-1add-4c34-8244-b7baa4924a0e",
"status": "IN_PROGRESS",
"remarks": "SHAREHOLDER -> VERIFIED|BUSINESS -> KYC : SCREENING COMPLETED, ALIAS_KYC : SCREENING COMPLETED|Application is being reviewed by our compliance agent|VERIFIED|APPLICANT -> KYC : SCREENING COMPLETED|VERIFIED",
"customerHashId": "88464f2d-8caa-4cd4-a1db-346d9defde05",
"walletHashId": "91cb0636-c30a-4304-ba47-a589dead86c9",
"redirectUrl": "https://integrationspreprod.partners.instarem.com/preprod/compliance/callback/load?referenceNumber=18afec3f-c8fe-491a-bf4f-28651df943ec&token=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI0MDhjZDlmNS1hN2I5LTQ2YTYtYjE1YS0zOWY2NzE5ZjdiMTd8fGVjNWQ4OGUzLTg2ZGItNDc0ZS04ZDg1LWQxZmNiYzQ4MzllNnx8MTY3OTgwMTUyNSIsImV4cCI6MTY3OTgwMjQyNSwiaWF0IjoxNjc5ODAxNTI1fQ.dHaxPZlGyYnclIuuZ9Miu56gtBSqL3YoYSYLFQJ4lEafHGAHV1fs_63HwToJ3kb1E6FYn6SF2YGCfnkiwoFfiA",
"errors": []
}
400 response
In case of any basic validation failures, Nium returns an HTTP 400 Bad Request response status code to the Onboard Corporate Customer API. You need to look at the errors field and resubmit with the correct customer details.
{
"status": "BAD_REQUEST",
"message": "Unable to create customer v1: Validation failed for input provided",
"errors": [
"[\"The maximum length of email is 60 characters\"]"
]
}
CAUTION
All corporate customers are required to have a unique business name and business registration number.
Bad request example with a non-unique name:
{
"status": "BAD_REQUEST",
"message": "Unable to create customer v1: Corporate customer already exist with customerHashId 88464f2d-8caa-4cd4-a1db-346d9defde05",
"errors": [
"[\"Corporate customer already exist with customerHashId 88464f2d-8caa-4cd4-a1db-346d9defde05\"]"
]
}
The errorDetails
object
errorDetails
objectIn addition to the above basic errors, more detailed errors are presented in the below format with code and description
{
"status": "BAD_REQUEST",
"code": "unable to initiate CaaS Corporate Onboarding",
"message": "{\"errors\":[{\"code\":\"E100\",\"description\":\"Tax Details is Missing for Business Entity MONEYWISE PARTNERS324905\"},{\"code\":\"E100\",\"description\":\"Tax Country is Missing for Business Entity MONEYWISE PARTNERS324905\"},{\"code\":\"E100\",\"description\":\"Registered Address Line 1 is Missing for Business Entity MONEYWISE PARTNERS324905\"},{\"code\":\"E100\",\"description\":\"Address Registered Country is Missing for Business Entity MONEYWISE PARTNERS324905\"},{\"code\":\"E100\",\"description\":\"Address Post Code is Missing for Business Entity MONEYWISE PARTNERS324905\"},{\"code\":\"E200\",\"description\":\"Share percentage is Missing for Stakeholder Ultimate Beneficial Owner Mila John Jekovar\"}],\"custAdtlInfoNeeded\":false,\"statusCode\":\"400\",\"errorMessage\":\"Compliance Request Validation Failed with Errors - Tax Details is Missing , Tax Country is Missing , Tax Number is Missing , Registered Address Line 1 is Missing , Address Registered Country is Missing , Address Post Code is Missing for Business entity MONEYWISE PARTNERS324905. \\n Share percentage is Missing for stakeholder Ultimate Beneficial Owner Mila John Jekovar. \\n Please provide the required information.\",\"isCustAdtlInfoNeeded\":false}",
"errorDetails": [
{
"code": "E100",
"description": "Tax Details is Missing for Business Entity MONEYWISE PARTNERS324905"
},
{
"code": "E100",
"description": "Tax Country is Missing for Business Entity MONEYWISE PARTNERS324905"
},
{
"code": "E100",
"description": "Address Registered Country is Missing for Business Entity MONEYWISE PARTNERS324905"
},
{
"code": "E100",
"description": "Address Post Code is Missing for Business Entity MONEYWISE PARTNERS324905"
},
{
"code": "E200",
"description": "Share percentage is Missing for Stakeholder Ultimate Beneficial Owner Mila John Jekovar"
}
]
}
Webhooks
After receiving the response from the Onboard Corporate Customer API, for all cases where status = IN_PROGRESS
, Nium sends a webhook event to the configured client URL.
You need to look for the corresponding template within the webhook event's response CARD_CLIENT_KYB_STATUS_WEBHOOK
at Client KYB Status.
To know more about the webhook features, see Webhooks overview.
The complianceStatus
field
complianceStatus
fieldIn the webhook response, the complianceStatus
field can have one of the following values.
Status | Description |
---|---|
ACTION _REQUIRED | Wait for the next state while your compliance agent is reviewing the application. |
COMPLETED | You can communicate the successful creation of the customer. The corporate customer can now transact with Nium. This is a terminal state. |
REJECTED | The corporate customer needs to resubmit the application to reinitiate the process along with clientId and customerHashId . This is a terminal state. |
RFI_REQUESTED | If the compliance agent finds insufficient information in the application, they raise a request for information (RFI) to you to collect the missing information from the corporate customer. |
RFI_RESPONDED | After you gather the missing information, send it via the Respond to RFI API. After the missing information is received, you receive the webhook event. |
RFI process
While the application status is ACTION_REQUIRED
, the compliance agent may request additional information by raising an RFI request, which sets the complianceStatus
as RFI_REQUESTED
in the webhook response. Then, you need to call the Fetch Corporate Customer RFI Details API to fetch the RFI templates requested by using the clientID
and caseID
parameters or by using only the customerHashId
.
There can be multiple RFI templates in the response.
The Respond to RFI for Corporate Customer API should be used to respond to all required fields for each RFI template raised. The required fields are the same as those of the Onboard Corporate Customer API. On submission, the status of the application changes from RFI_REQUESTED
to RFI_RESPONDED
.
After the application, the complianceStatus
can again become RFI_REQUESTED
or one of the terminal states becomes COMPLETED
or REJECTED
.
For the complete list of RFI templates by region, see the RFI templates page.
Regenerate KYC URL API
The KYC URL, which is returned in the response of the Onboard Corporate Customer API, has an expiration time. Once expired, the link cannot be used to complete applicant KYC. Use the Regenerate KYC URL API to generate a new URL with a new expiration time.
This API can be used when applicantDetails.kycMode
is the following:
E_DOC_VERIFY
in any regionE_DOC_VERIFY
orE_KYC
in Singapore

A diagram of the proposed journey for applicant KYC. (click to enlarge)
Identifying an expired link
When an applicant is redirected to the redirect URL received in the Onboard Corporate Customer API, the applicant lands on our vendors page to complete the KYC flow. Once the flow is successfully completed, the applicant is redirected back to the client to the configured client KYC redirect URL with the following parameters.
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=
In case the link is expired and the applicant clicks on the link, he is redirected back to your configured client KYC redirect URL without landing on the vendor's page. In this scenario, you will receive the following parameters in the redirect URL as shown below.
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 URL expired scenario, the redirect URL contains:
errorCode=R408
errorMessage=redirectURLExpired
When you detect the above values, regenerate a new URL using the Regenerate KYC URL API and advise the applicant accordingly. You can save this URL and redirect the applicant until it is expired again.
CAUTION
Once a new redirectURL is generated, the old URL is auto-expired and cannot be used anymore.
Update Corporate Customer API
After the onboarding is complete and the customer is approved, the Update Corporate KYB FlowAPI allows you to perform the following actions on a corporate customer:
- Update business details and risk details of a corporate customer.
- Add new stakeholders and update information for existing stakeholders.
- Replace and update existing applicant information.
- Add new documents for business details, stakeholder details, and applicant details.
CAUTION
This API can be called only if the compliance status is
COMPLETED
; any other status results in a validation error.
All the fields in the request body of the Update Corporate KYB Flow API are the same as the Onboard Corporate customer API except authenticationCode
. Clients of EU and UK must pass the authentication code submitted by the end customer. This is a regulatory requirement in the UK and US.
Important points to Note:
- You do not need to pass the entire request body. Send only the fields that need to be updated. If any field is not passed in the request body, it will remain unchanged.
- Any parameter which is an array will be entirely replaced by the input values passed in the API, such as the
tax_details
andprofessionalDetails
arrays. - You can either add a new stakeholder or update and existing stakeholder. To add a new stakeholder, you needn't send a
referenceId
; or if you do, you need to send a newreferenceId
. When updating details of an existing stakeholder, you need to pass thereferenceId
of the existing stakeholder. - You can either replace the applicant or update the existing applicant. To replace the applicant, you needn't send a
referenceId
; or if you do, you need to send a newreferenceId
. When updating details of an existing applicant, you need to pass thereferenceId
of the existing applicant. - After the Update Corporate KYB Flow API is called, the status of the application changes to
ACTION_REQUIRED
and the application goes to manual review. After Nium's compliance team completes verification, the status changes toCOMPLETED
and the data is updated in the database.
Updated about 9 hours ago