Required Parameters
The following details the required parameters for the Customer Onboarding v5 request, along with validation rules and sample requests.
Use this request to create customers to onboard in the CA region. The endpoint accepts both individual and corporate customers.
For API reference, see Create Customer v5.
Create Customer v5
POST /api/v5/client/{clientHashId}/customers
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
clientHashId | string | Yes | Unique client identifier, generated and shared before the integration is set up. |
Body Parameters
| Parameter | Type | Required | Accepted Values / Notes |
|---|---|---|---|
type | string | Yes | individual or corporate. |
kycType | string | Yes | minimum or full. Use full when onboarding for payouts. |
region | string | Yes | Use CA. |
externalId | string | Optional | Client-defined unique ID (max 36). Returned in webhooks and GET APIs. |
Individual Customers
Personal Information
| Field | Type | Required | Notes |
|---|---|---|---|
firstName | string | Yes | Max 40. |
middleName | string | Optional | Max 40. |
lastName | string | Yes | Max 40. |
email | string | Yes | Max 60; must match the valid email regex. |
nationality | enum | Yes | Category: countryName. |
mobile | numeric | Yes | Without country code; max 15 digits. |
mobileCountryCode | numeric | Yes | Max 6 digits. |
dateOfBirth | date | Yes | YYYY-MM-DD; age ≥ 18. |
occupation | enum | Yes | category=occupation |
billingAddress Object
| Field | Type | Required | Notes |
|---|---|---|---|
addressLine1 | string | Yes | Max 100. |
addressLine2 | string | Optional | Max 100. |
city | string | Yes | Max 50. |
state | enum/string | Conditional | category=isoState for countryCode=xx (e.g., US, CA). If enum list is empty, pass state manually (max 50 chars). |
postcode | string | Yes | Max 10. |
country | enum | Yes | Category: countryName. |
expectedAccountUsage Object
| Field | Required | Notes |
|---|---|---|
credit.monthlyTransactionVolume | Yes | Category: monthlyTransactionVolume. |
credit.topTransactionCountries | Yes | Category: countryName. |
debit.monthlyTransactionVolume | Yes | Category: monthlyTransactionVolume. |
debit.topTransactionCountries | Yes | Destination countries for payouts. |
intendedUses | Yes | Category: intendedUseOfAccount. |
intendedUsesDescription | Conditional | Required if Other is selected. Max 300 chars. |
Corporate Customers (Full KYC)
Business Information
| Field | Type | Required | Notes |
|---|---|---|---|
businessType | enum | Yes | Category: businessType. |
businessName | string | Yes | Max 80. |
tradeName | string | Yes | If not available, set equal to businessName. |
businessRegistrationNumber | string | Yes | Max 30. |
registeredDate | date | Yes | YYYY-MM-DD; past date. |
registeredCountry | enum | Yes | Category: countryName. |
website | string | Optional | website or verified social profile; else upload PROOF_OF_BUSINESS. |
isMultiLayeredCompany | boolean | Yes | true/false. If true upload CORPORATE_STRUCTURE |
stockSymbol | string | Optional | Required for Public Company |
listedExchange | string | Yes | Required for Public Company |
addresses Object
| Field | Type | Required | Notes |
|---|---|---|---|
registeredAddress.addressLine1 | string | Yes | Max 100. |
registeredAddress.addressLine2 | string | Optional | Max 100. |
registeredAddress.city | string | Yes | Max 50. |
registeredAddress.state | enum/string | Conditional | category=isoState for countryCode=xx (e.g., US, CA). If enum list is empty, pass state manually (max 50 chars). |
registeredAddress.postcode | string | Yes | Max 10. |
registeredAddress.country | enum | Yes | Category: countryName. |
isBusinessAddressSameAsRegisteredAddress | boolean | Yes | If false, provide businessAddress details |
documents (array of object)
Provide business documents
| Field | Type | Required | Notes |
|---|---|---|---|
type | enum | Yes | category: documentType |
fileIds | uuid | Yes | Received from the response of Upload file API |
applicant object
| Field | Type | Required | Notes |
|---|---|---|---|
externalId | string | Optional | referenceId to identify the applicant. |
firstName / lastName | string | Yes | Max 40 each. |
dateOfBirth | date | Yes | Past date; age ≥ 18. |
email | string | Yes | Max 60; valid email. |
mobile / mobileCountryCode | string | Yes | 15/6 digit limits. |
nationality | string | Yes | Max 2 char. |
sharePercentage | numeric | Optional | Required only if position title is UBO/PARTNER/SHAREHOLDER. |
occupation | enum | Yes | category=occupation |
positions | array of object | Yes | Include DIRECTOR, REPRESENTATIVE, UBO as applicable. |
documents | array of object | Conditional | POWER_OF_ATTORNEY required if applicant is not a UBO/ DIRECTOR/ TRUSTEE/ PARTNER. |
address | object | Yes | address of the applicant |
Stakeholders
Stakeholders can be individuals or corporates with roles such as UBO, Director, Partner, Trustee, Shareholder.
Individual Stakeholders
| Field | Type | Required | Notes |
|---|---|---|---|
externalId | string | Optional | referenceId to identify the applicant. |
firstName / lastName | string | Yes | Max 40 each. |
dateOfBirth | date | Yes | Past date; age ≥ 18. |
email | string | Optional | Max 60; valid email. |
mobile / mobileCountryCode | string | Optional | 15/6 digit limits. |
nationality | string | Yes | Max 2 char. |
sharePercentage | numeric | Optional | Required only if position title is UBO/PARTNER/SHAREHOLDER. |
occupation | enum | Yes | category=occupation. required only if position title is REPRESENTATIVE. |
positions | array of object | Yes | Include DIRECTOR, REPRESENTATIVE, UBO as applicable. |
address | object | Conditional | required only if position title is UBO/ TRUSTEE/ PARTNER/REPRESENTATIVE |
Corporate Stakeholders
| Field | Required | Notes |
|---|---|---|
externalId | Optional | unique Id |
businessName | Yes | Registered name. |
businessRegistrationNumber | Yes | Max 30. |
registeredCountry | Yes | Category: countryName. |
positions.title | Yes | For example, UBO, Shareholder, Trustee. |
sharePercentage | Conditional | Required for UBO/Shareholder/Partner. |
natureOfBusiness object
| Field | Required | Notes |
|---|---|---|
operatingCountries | Yes | category:countryOfOperation All countries where the business operates. |
industryCodes | Yes | Category: industrySector. Industry sectors that the corporate customer operates in. Multiple allowed. |
industryDescription | Conditional | 2–3 sentences if “Other” is selected in industryCodes |
expectedAccountUsage object
| Field | Required | Notes |
|---|---|---|
credit.monthlyTransactionVolume | Yes | Estimated total payins (CAD). |
credit.monthlyTransactions | Yes | Estimated count of monthly payins. |
credit.averageTransactionValue | Yes | Average payin value (CAD). |
credit.topTransactionCountries | Yes | Origin countries. |
credit.topRemitters | Yes | Up to 20 primary remitters (company or individual names). |
debit.monthlyTransactionVolume | Yes | Estimated total payouts (CAD). |
debit.monthlyTransactions | Yes | Estimated count of monthly payouts. |
debit.averageTransactionValue | Yes | Average payout value (CAD). |
debit.topTransactionCountries | Yes | Destination countries. |
debit.topBeneficiaries | Yes | Up to 20 primary beneficiaries. |
intendedUses | Yes | Category: intendedUseOfAccount. |
intendedUsesDescription | Conditional | Required if Other. |
sizeOfBusiness object
| Field | Required | Notes |
|---|---|---|
totalEmployees | Yes | Category: totalEmployees. |
annualTurnover | Yes | Category: annualTurnover. If < 1 year old, provide expected turnover. |
bankAccountDetails object (for refunds/returns- applicable for individual and corporate)
| Field | Type | Required | Notes |
|---|---|---|---|
accountName | string | Yes | Registered bank name; max 140. |
accountNumber | string | Yes | Max 35. |
bankCountry | string | Yes | ISO 3166-1 alpha-2. |
bankName | string | Yes | Max 255. |
currency | string | Yes | ISO 4217 (for example, USD, CAD). |
routingCodes.type | string | Yes | For example, SWIFT, TRANSIT NUMBER. |
routingCodes.value | string | Yes | Matches the selected type. |
bankCode | string | Conditional | Required if routingCodes.type is TRANSIT NUMBER |
applicantDeclaration (applicable for individual and corporate)
| Field | Type | Required | Description |
|---|---|---|---|
applicantDeclaration | boolean | Yes | Indicates acceptance of the declaration. |
applicantDeclarationTimestamp | timestamp | Yes | Format: YYYY-MM-DD HH:MM:SS |
devicedetails object (applicable for individual and corporate)
| Field | Type | Required | Notes |
|---|---|---|---|
ipCountryCode | enum | Yes | Country of origin of the IP; category: countryName. |
deviceInfo | string | Yes | OS of the device initiating the request. |
ipAddress | string | Yes | Valid IPv4 address. |
sessionId | string | Yes | Session identifier for the request. |
tags object (applicable for individual and corporate)
| Field | Type | Required | Notes |
|---|---|---|---|
tags | object | Optional | Up to 15 client-defined key/value pairs. |
tags.key | string | Optional | Max 128; keys must be unique. |
tags.value | string | Optional | Max 255. |
Examples
Corporate customer — request
{
"type": "corporate",
"kycType": "full",
"region": "CA",
"externalId": "b84387d6-d768-4be0-b1ff-96d7ccabf182",
"businessName": "testcustmerN6QAenv4185",
"website": "https://monserrat.biz",
"businessDescription": "Technology solutions and consulting services provider",
"businessRegistrationNumber": "133451930",
"registeredDate": "2015-03-15",
"registeredCountry": "CA",
"isMultiLayeredCompany": true,
"businessType": "charity",
"tradeName": "Greenholt - West Inc",
"listedExchange": "EX101",
"bankAccountDetails": {
"accountName": "Champlin - Spinka Corporate Account",
"bankName": "Royal Bank of Canada (RBC)",
"accountNumber": "802731561",
"bankCountry": "CA",
"bankAccountType": "saving",
"currency": "CAD",
"bankCode": "006",
"routingCodes": [
{
"type": "TRANSIT NUMBER",
"value": "01011"
}
]
},
"applicantDeclaration": true,
"applicantDeclarationTimeStamp": "2024-01-15 10:30:00",
"addresses": {
"isBusinessAddressSameAsRegisteredAddress": false,
"registeredAddress": {
"addressLine1": "1234 Corporate Blvd Suite 100",
"addressLine2": "Building A",
"city": "Wilmington",
"state": "US-DE",
"postcode": "19801",
"country": "US"
},
"businessAddress": {
"addressLine1": "5678 Business Park Drive",
"addressLine2": "Floor 5",
"city": "Newark",
"state": "US-CA",
"postcode": "07102",
"country": "US"
}
},
"applicant": {
"externalId": "95d4c75b-089b-4aad-a9ab-f3b2360aa11",
"firstName": "Nium",
"middleName": "James",
"lastName": "White",
"occupation": "OC1001",
"dateOfBirth": "2008-03-03",
"nationality": "US",
"email": "<your email Id>",
"mobile": "197894",
"mobileCountryCode": "33",
"sharePercentage": 45,
"address": {
"addressLine1": "789 Executive Lane",
"addressLine2": "Apt 12B",
"city": "Boston",
"state": "CA-AB",
"postcode": "K1A 0B1",
"country": "CA"
},
"documents": [
{
"type": "loa",
"fileIds": [
"9d75e33e-71c0-425c-9fdb-f85e0e8cd363"
]
}
],
"positions": [
{
"title": "UBO",
"startDate": "2015-03-15"
}
]
},
"stakeholders": {
"individual": [
{
"externalId": "2a902305-bf54-41df-bfaa-d80c94d16805",
"firstName": "stakeholder 1",
"middleName": "Robert",
"lastName": "Volkman",
"dateOfBirth": "1980-11-10",
"nationality": "US",
"email": "Rickie9@gmail.com",
"mobile": "197786",
"mobileCountryCode": "1",
"sharePercentage": 30,
"address": {
"addressLine1": "456 Investor Street",
"addressLine2": "Unit 8",
"city": "New York",
"state": "CA-AB",
"postcode": "K1A 0B1",
"country": "CA"
},
"positions": [
{
"title": "UBO",
"startDate": "2016-01-20"
}
]
}
],
"corporate": [
{
"externalId": "859ac163-08f0-4152-b26a-e96fce664372",
"businessName": "Investment Holdings LLC",
"businessRegistrationNumber": "123456789",
"registeredCountry": "US",
"sharePercentage": 25,
"positions": [
{
"title": "UBO"
}
]
}
]
},
"natureOfBusiness": {
"operatingCountries": [
"US",
"CA",
"GB"
],
"industryCodes": [
"IS134"
],
"industryDescription": "Comprehensive technology consulting and software development services specializing in enterprise solutions, cloud infrastructure, and digital transformation initiatives for Fortune 500 companies across North America and Europe"
},
"expectedAccountUsage": {
"intendedUses": [
"IU001"
],
"intendedUsesDescription": "Business operations including vendor payments, payroll processing, and international transactions",
"credit": {
"monthlyTransactionVolume": "MVCA01",
"monthlyTransactions": "ATC01",
"averageTransactionValue": "ATVCA01",
"topTransactionCountries": [
"US",
"CA",
"GB"
],
"topRemitters": [
"Enterprise Client A",
"Corporate Partner B"
]
},
"debit": {
"monthlyTransactionVolume": "MVCA01",
"monthlyTransactions": "ATC01",
"averageTransactionValue": "ATVCA01",
"topTransactionCountries": [
"US",
"CA",
"MX"
],
"topBeneficiaries": [
"Vendor Services Inc",
"Technology Suppliers Ltd"
]
}
},
"sizeOfBusiness": {
"totalEmployees": "EM006",
"annualTurnover": "CA008"
},
"deviceDetails": {
"ipCountryCode": "us",
"deviceInfo": "Mozilla/5.0 Windows",
"ipAddress": "192.168.1.100",
"sessionId": "15aaa7ad-7625-4047-a2ce-6fe4ac476728"
},
"tags": [
{
"key": "customer_type",
"value": "enterprise"
},
{
"key": "priority",
"value": "high"
}
],
"documents": [
{
"type": "business_registration_doc",
"fileIds": [
"1d363b0c-471a-4892-ac74-833ea235b87b"
]
},
{
"type": "ownership_chart",
"fileIds": [
"65cb5cb9-4742-40df-9752-a4771d35e54c"
]
}
]
}
Individual customer — request
{
"type": "individual",
"kycType": "full",
"region": "CA",
"externalId": "Jek2Vm6cw96xUA6GniQxKSd52VoaAXoBpp",
"firstName": "Nium",
"middleName": "TestTestTestTestTestTestTestTestTestTest",
"lastName": "TestTestTestTestTestTestTestTestTestTest",
"email": "pasumarthi.sashank+2118@nium.com",
"nationality": "FR",
"mobile": "2000002105",
"mobileCountryCode": "1",
"dateOfBirth": "2008-02-25",
"applicantDeclarationTimeStamp": "2025-08-20 15:49:30",
"applicantDeclaration": "true",
"occupation" : "OC0001",
"deviceDetails": {
"ipCountryCode": "eu",
"deviceInfo": "MAC",
"ipAddress": "192.168.1.16",
"sessionId": "hello-world"
},
"expectedAccountUsage": {
"credit": {
"monthlyTransactionVolume": "MVcA01",
"topTransactionCountries": [
"GB",
"GB",
"GB",
"IN"
]
},
"debit": {
"monthlyTransactionVolume": "MVcA01",
"topTransactionCountries": [
"Gb",
"GB",
"GB",
"IN",
"US"
]
},
"intendedUses": [
"Iu108",
"IU107"
],
"intendedUsesDescription": "test intendedintendedtest",
},
"bankAccountDetails": {
"accountName": "ABCD EFGH",
"accountNumber": "AT483200000012345",
"bankName": "DEUTSCHE BANK AG - POSTBANK BRANCH",
"bankCountry": "CA",
"bankAccountType": "saving",
"currency": "CAD",
"bankCode": "006",
"routingCodes": [
{
"type": "TRANSIT NUMBER",
"value": "01011"
}
]
},
"billingAddress": {
"addressLine1": "Test Add 123, Building 1Test Add 123",
"addressLine2": "Building 1Taa",
"city": "Test Add 123, Building 1, Block 2, Area 3Test Add1",
"state": "CA-ab",
"postcode": "K1A 0B1",
"country": "CA"
}
}
For response check Response Codes.
Adding Positions
- Directors: Add all management directors as stakeholders.
- UBOs: Tag anyone owning ≥ 25% (direct or indirect). If none, the most senior director becomes the UBO.
- Representatives/Signatories: Add individuals authorized to transact or manage users (applicant is a Representative by default).
- Partners/Trustees/Settlors: Include when applicable by entity type.
- Multi-layered companies: Include all corporate stakeholders with ≥ 25% ownership and upload a Corporate Structure document (
documentType: CORPORATE_STRUCTURE).
See Position Mapping for the stakeholders required per business type.