Overview
The Individual Customer Registration endpoint creates a new B2C customer with smart categorization that automatically applies appropriate risk profiles, compliance requirements, and feature configurations based on the selected category.This endpoint uses
/customers/individual/register
(plural), not /customer/individual/registration
Headers
Bearer token for authentication (admin privileges required)
Tenant identifier for multi-tenant operations
Must be
application/json
Request Body
Customer’s first name
Customer’s last name
Unique email address for the customer
Phone number with country code (e.g., “+37060012345”)
Account password (must meet security requirements)
Password confirmation (must match password field)
Array of role names (e.g., [“ACCOUNT_OWNER”, “USER”])
Detailed customer information
Show Individual Customer Object
Show Individual Customer Object
Full name of the customer
Personal information
Show Person Object
Show Person Object
First name
Last name
Email address
Date of birth in YYYY-MM-DD format
Gender (MALE/FEMALE/OTHER)
Two-letter country code (e.g., “LT”)
User account information
Show User Object
Show User Object
Username (typically email)
Email address
Account password
Initial status (PENDING_ACTIVATION)
User roles
Active status (false initially)
Password change requirement
2FA status
Smart categorization configuration
Show Categorization Object
Show Categorization Object
Category ID
Category name
Category description
Active status
Feature configurations for the category
Show Feature Relation
Show Feature Relation
Feature enabled status
Additional categorization parameters
Response
Unique customer ID
Associated user ID
Person entity ID
User details including the user ID
Registration status
Example Request
Copy
Ask AI
{
"firstName": "Marcus",
"lastName": "Jensen",
"email": "marcus.jensen@example.com",
"phone": "+37060012345",
"password": "SecurePass123!",
"matchingPassword": "SecurePass123!",
"roleIds": ["ACCOUNT_OWNER", "USER"],
"customerCategory": {
"id": "e50bb9ad-6a97-41da-8e66-4c3c0f7e2a3d",
"name": "Medium Risk Individual"
},
"individualCustomer": {
"customerName": "Marcus Jensen",
"person": {
"firstName": "Marcus",
"lastName": "Jensen",
"email": "marcus.jensen@example.com",
"dateOfBirth": "1990-05-15",
"gender": "MALE",
"nationality": "LT",
"addresses": [
{
"type": "HOME",
"street": "123 Medium Risk Street",
"city": "Compliance City",
"postalCode": "12345",
"country": "LT",
"isPrimary": true
}
],
"contacts": [
{
"type": "EMAIL",
"value": "marcus.jensen@example.com",
"isPrimary": true
},
{
"type": "PHONE",
"value": "+37060012345",
"isPrimary": false
}
]
},
"user": {
"username": "marcus.jensen@example.com",
"email": "marcus.jensen@example.com",
"password": "SecurePass123!",
"status": "PENDING_ACTIVATION",
"roles": ["ACCOUNT_OWNER", "USER"],
"isActive": false,
"requiresPasswordChange": false,
"twoFactorEnabled": false
},
"categorization": {
"id": "e50bb9ad-6a97-41da-8e66-4c3c0f7e2a3d",
"name": "Medium Risk Individual",
"description": "Medium-risk individual customer category",
"isActive": true,
"categoryFeatureRelations": [
{
"feature": {
"id": "f7a8b9c0-d1e2-3f4g-5h6i-7j8k9l0m1n2o",
"code": "MEDIUM_RISK_PROFILE"
},
"enabled": true,
"parametrization": [
{"name": "riskLevel", "value": "MEDIUM"},
{"name": "riskScore", "value": "55"},
{"name": "pep", "value": "false"},
{"name": "sanctionsCheck", "value": "STANDARD"},
{"name": "monthlyLimit", "value": "20000"}
]
}
]
}
}
}
```text`n## Example Response
```json
{
"data": {
"id": "cust_123456789",
"userId": "user_987654321",
"personId": "pers_456789123",
"user": {
"id": "user_987654321",
"username": "marcus.jensen@example.com",
"status": "PENDING_ACTIVATION"
},
"status": "REGISTRATION_COMPLETE"
}
}
```text`n## Smart Categorization Features
The registration process includes intelligent categorization that:
1. **Automatically applies risk parameters** based on selected category
2. **Sets compliance requirements** for verification processes
3. **Configures account limits** according to risk profile
4. **Determines verification levels** needed for activation
## Next Steps
After successful registration:
1. [Create Customer Session](/latest/api-reference/v2.1/session/create-individual-session) - Generate authentication token
2. [Initiate Verification](/latest/api-reference/v2.1/verification/create-verification) - Start KYC process
3. [Accept Consents](/latest/api-reference/v2.1/consent/individual-consents) - Process required consents
4. [Activate Account](/latest/api-reference/v2.1/customer/individual-activation) - Complete account setup
## PowerShell Script Example
```powershell
# Prepare category feature relations based on retrieved category
$categoryFeatureRelations = @()
$additionalDataArray = @()
if ($selectedCategory.features) {
foreach ($feature in $selectedCategory.features) {
Write-Host "Processing feature: $($feature.featureName)" -ForegroundColor Cyan
# Create parametrization based on feature requirements
$parametrization = @()
if ($feature.mandatoryKeys) {
foreach ($key in $feature.mandatoryKeys) {
$value = switch -Regex ($key.ToLower()) {
"risk.*level" { "MEDIUM" }
"risk.*score" { "55" }
"pep" { "false" }
"sanctions" { "STANDARD" }
"monitoring" { "WEEKLY" }
"compliance" { "STANDARD_DUE_DILIGENCE" }
"edd" { "false" }
"monthly.*limit" { "20000" }
default { "MEDIUM_RISK_VALUE" }
}
$parametrization += @{
name = $key
value = $value
}
}
}
$categoryFeatureRelations += @{
feature = @{
id = $feature.databaseId
code = $feature.featureCode
}
enabled = $true
parametrization = $parametrization
}
}
}
# Generate unique email
$timestamp = Get-Date -Format "yyyyMMddHHmmss"
$randSuffix = ([guid]::NewGuid().ToString('N')).Substring(0, 6)
$uniqueEmail = "customer.$timestamp.$randSuffix@example.com"
# Create registration request
$registrationRequest = @{
firstName = "John"
lastName = "Smith"
email = $uniqueEmail
phone = "+1234567890"
password = "SecurePass123!"
matchingPassword = "SecurePass123!"
roleIds = @("ACCOUNT_OWNER", "USER")
customerCategory = @{
id = $selectedCategory.databaseId
name = $selectedCategory.categoryName
}
individualCustomer = @{
customerName = "John Smith"
person = @{
firstName = "John"
lastName = "Smith"
email = $uniqueEmail
dateOfBirth = "1990-01-15"
gender = "MALE"
nationality = "US"
addresses = @(
@{
type = "HOME"
street = "123 Main Street"
city = "New York"
postalCode = "10001"
country = "US"
isPrimary = $true
}
)
contacts = @(
@{
type = "EMAIL"
value = $uniqueEmail
isPrimary = $true
},
@{
type = "PHONE"
value = "+1234567890"
isPrimary = $false
}
)
}
user = @{
username = $uniqueEmail
email = $uniqueEmail
password = "SecurePass123!"
status = "PENDING_ACTIVATION"
roles = @("ACCOUNT_OWNER", "USER")
isActive = $false
requiresPasswordChange = $false
twoFactorEnabled = $false
}
categorization = @{
id = $selectedCategory.categoryId
name = $selectedCategory.categoryName
description = "Customer category with appropriate risk profile"
isActive = $true
categoryFeatureRelations = $categoryFeatureRelations
parametrization = $additionalDataArray
}
}
}
$registrationUrl = "$baseUrl/api/v2.1/customer/individual/registration"
$registrationBody = $registrationRequest | ConvertTo-Json -Depth 10
try {
$registrationResponse = Invoke-RestMethod -Uri $registrationUrl -Method Post -Headers $headers -Body $registrationBody
# Extract customer details from response
if ($registrationResponse.data) {
$customerId = $registrationResponse.data.id
$userId = $registrationResponse.data.userId
$personId = $registrationResponse.data.personId
}
else {
$customerId = $registrationResponse.id
$userId = $registrationResponse.userId
$personId = $registrationResponse.personId
}
Write-Host "Registration successful!" -ForegroundColor Green
Write-Host " Customer ID: $customerId" -ForegroundColor White
Write-Host " User ID: $userId" -ForegroundColor White
Write-Host " Person ID: $personId" -ForegroundColor White
}
catch {
Write-Host "Registration failed: $($_.Exception.Message)" -ForegroundColor Red
}
```text`n## Related Endpoints
- [Get Categorization Hierarchy](/latest/api-reference/v2.1/customer/categorization-hierarchy) - Retrieve available categories
- [Get Customer Details](/latest/api-reference/v2.1/customerV0201/get-customer-by-id) - View registered customer