GET /ext/api/v1/Products/{productId} to check which KYC requirements apply for the productPOST /api/v1/uploadfile and save the returned file URLskycDetails objectkybDetails object (company + personal details + UBOs + representatives + directors)📎 All file fields (documents, selfies, signatures) must contain URLs returned from the POST /api/v1/uploadfileendpoint.
kycDetails object)| Field | Type | Description | Notes |
|---|---|---|---|
customerId | string (uuid) | Customer identifier | Required |
firstName | string | First name | Required for FullName |
lastName | string | Last name | Required for FullName |
gender | string | Gender: male, female, other | Required for FullName |
dob | string | Date of birth (YYYY-MM-DD) | Required for FullName |
email | string | Email address | Required for Comms |
mobileCode | string | Country dialing code (e.g., +44) | Required for Comms |
mobile | string | Mobile number | Required for Comms |
addressLine1 | string | Address line 1 | Required for Address/FullAddress |
addressLine2 | string | Address line 2 | nullable |
city | string | City | Required for FullAddress |
state | string | State or region | nullable |
postalCode | string | Postal / ZIP code | Required for FullAddress |
country | string | Country code (ISO 3166-1 alpha-2) | Required for FullAddress |
town | string | Town | nullable |
idType | string | ID document type (e.g., passport, national_id) | Required for Passport/IdTypes |
idNumber | string | ID document number | Required for Passport/IdTypes |
profilePicFront | string | 📎 URL of front ID document | Required for Passport/IdTypes |
profilePicBack | string | 📎 URL of back ID document | Required for Passport/IdTypes |
docExpiryDate | string | Document expiry date | Required for Passport |
docIssueDate | string | Document issue date | Required for IssueDate |
faceImage | string | 📎 URL of face/selfie photo | Required for Face |
signature | string | 📎 URL of signature image | Required for Sign |
biometric | string | 📎 URL of biometric data | Required for Biomatric |
handHoldingIDPhoto | string | 📎 URL of hand-holding ID photo | Required for HandedPassport |
emergencyContactName | string | Emergency contact name | Required for EmergencyContact |
occupation | string | Occupation | Required for FinancialProfile |
accountPurpose | string | Purpose of account | Required for FinancialProfile |
annualSalary | number | Annual salary | Required for FinancialProfile |
expectedMonthlyVolume | number | Expected monthly volume | Required for FinancialProfile |
ipAddress | string | Applicant's IP address | Required for IpAddress |
kybDetails object) — see Examples tab for full structure with company, personaldetails, ubos[], representatives[], directors[].| Status | Description |
|---|---|
200 | KYC/KYB submitted successfully |
404 | Customer not found |
422 | Validation error — missing or invalid required fields |
curl --location -g --request POST '{{baseUrl}}/api/v1/customers//products//applicant' \
--header 'X-API-Key;' \
--header 'X-Signature;' \
--header 'X-Timestamp;' \
--header 'X-Nonce;' \
--header 'X-Body-Hash;' \
--header 'Content-Type: application/json' \
--data-raw '{
"kycDetails": {
"customerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"firstName": "Jane",
"lastName": "Doe",
"gender": "female",
"dob": "1990-06-15",
"email": "jane@example.com",
"mobileCode": "+44",
"mobile": "7700900000",
"addressLine1": "10 Downing Street",
"addressLine2": "Flat 2",
"city": "London",
"state": "England",
"postalCode": "SW1A 2AA",
"country": "GB",
"addressCountry": "GB",
"town": "Westminster",
"idType": "passport",
"idNumber": "AB1234567",
"profilePicFront": "https://storage.blob.core.windows.net/docs/passport_front.jpg",
"profilePicBack": "https://storage.blob.core.windows.net/docs/passport_back.jpg",
"docExpiryDate": "2030-01-01",
"docIssueDate": "2020-01-01",
"faceImage": "https://storage.blob.core.windows.net/docs/selfie.jpg",
"signature": "https://storage.blob.core.windows.net/docs/signature.png",
"handHoldingIDPhoto": "https://storage.blob.core.windows.net/docs/hand_hold.jpg",
"occupation": "software_engineer",
"accountPurpose": "personal_spending",
"annualSalary": 75000,
"expectedMonthlyVolume": 5000,
"ipAddress": "192.168.1.1"
}
}'{}