Overview
The Create Verification endpoint initiates various types of verification processes required for customer onboarding and compliance. Different risk levels require different verification types - standard verification for medium-risk clients can be approved by tenant admins, while high-risk clients require power tenant approval.
Bearer token for authentication
Tenant identifier for multi-tenant operations
Request Body
The ID of the customer to verify
The tenant ID requesting the verification
The type of verification to initiate. Options:
IDENTITY_VERIFICATION
- Basic identity verification
DOCUMENT_VERIFICATION
- Document authenticity check
ENHANCED_DUE_DILIGENCE
- For high-risk clients
SANCTIONS_CHECK
- Sanctions and watchlist screening
The verification level required:
TENANT_VERIFIED
- Can be approved by tenant admin (medium-risk)
POWER_TENANT_VERIFIED
- Requires power tenant approval (high-risk)
ID of the user requesting the verification
Additional context for the verification Notes about the verification request
Priority level: LOW, MEDIUM, HIGH
Response
Verification request details Unique verification ID for document uploads
Current status (e.g., PENDING_DOCUMENTS)
Required verification level
Example Request - Medium Risk Client
curl --request POST \
--url https://api.finhub.cloud/api/v2.1/verifications \
--header 'Authorization: Bearer YOUR_TOKEN' \
--header 'X-Tenant-ID: fh_api_finsei_ltd_7f957f77' \
--header 'Content-Type: application/json' \
--data '{
"customerId": "cust_123456789",
"requestedByTenantId": "97e7ff29-15f3-49ef-9681-3bbfcce4f6cd",
"type": "IDENTITY_VERIFICATION",
"requestedLevel": "TENANT_VERIFIED",
"requestedByUserId": "admin-user",
"additionalData": {
"notes": "Standard verification for medium-risk client with tenant admin approval capability",
"priority": "MEDIUM"
}
}'
``` text ` n## Example Request - High Risk Client
``` bash
curl --request POST \
--url https://api.finhub.cloud/api/v2.1/verifications \
--header 'Authorization: Bearer YOUR_TOKEN' \
--header 'X-Tenant-ID: fh_api_finsei_ltd_7f957f77' \
--header 'Content-Type: application/json' \
--data '{
"customerId": "cust_987654321",
"requestedByTenantId": "97e7ff29-15f3-49ef-9681-3bbfcce4f6cd",
"type": "ENHANCED_DUE_DILIGENCE",
"requestedLevel": "POWER_TENANT_VERIFIED",
"requestedByUserId": "admin-user",
"additionalData": {
"notes": "Enhanced due diligence for high-risk client requiring power tenant approval",
"priority": "HIGH"
}
}'
``` text ` n## Example Response
``` json
{
"data" : {
"id" : "ver_abc123def456",
"customerId" : "cust_123456789",
"type" : "IDENTITY_VERIFICATION",
"status" : "PENDING_DOCUMENTS",
"requestedLevel" : "TENANT_VERIFIED",
"createdAt" : "2025-01-23T10:30:00.000Z"
}
}
``` text ` n## Verification Types by Risk Level
| Risk Level | Required Verification Types | Approval Level |
| ------------ | --------------------------- | ---------------- |
| Low Risk | IDENTITY_VERIFICATION | TENANT_VERIFIED |
| Medium Risk | IDENTITY_VERIFICATION, DOCUMENT_VERIFICATION | TENANT_VERIFIED |
| High Risk | IDENTITY_VERIFICATION, DOCUMENT_VERIFICATION, ENHANCED_DUE_DILIGENCE, SANCTIONS_CHECK | POWER_TENANT_VERIFIED |
## Multiple Verification Types
For comprehensive verification, you can initiate multiple verification types:
``` javascript
const verificationTypes = ["IDENTITY_VERIFICATION", "DOCUMENT_VERIFICATION"];
for ( const verificationType of verificationTypes) {
const response = await createVerification({
customerId: customerId,
requestedByTenantId: tenantId,
type : verificationType,
requestedLevel: "TENANT_VERIFIED",
requestedByUserId: "admin-user",
additionalData: {
notes: ` Standard verification for medium-risk client` ,
priority: "MEDIUM"
}
});
if ( verificationType === "IDENTITY_VERIFICATION") {
// Store this ID for document uploads
verificationId = response.data.id;
}
}
``` text ` n## Next Steps
After creating a verification request:
1. [Upload Verification Documents]( /latest/api-reference/v2.1/verification/upload-documents ) - Submit required documents
2. [Check Verification Status]( /latest/api-reference/v2.1/verification/get-status ) - Monitor verification progress
3. [Approve Verification]( /latest/api-reference/v2.1/verification/approve ) - Admin approval (if authorized)
## PowerShell Script Example
``` powershell
# Initiate verification process based on customer risk level
# Medium-risk clients require standard verification
$verificationTypes = @ ( "IDENTITY_VERIFICATION", "DOCUMENT_VERIFICATION")
$verificationId = $null
foreach ( $verificationType in $verificationTypes ) {
try {
Write-Host "Initiating $verificationType ..." -ForegroundColor Cyan
$verificationRequest = @{
customerId = $customerId
requestedByTenantId = $tenantId
type = $verificationType
requestedLevel = "TENANT_VERIFIED" # Can be approved by tenant admin
requestedByUserId = "admin-user"
additionalData = @{
notes = "Standard verification for customer with tenant admin approval"
priority = "MEDIUM"
}
}
$verificationUrl = " $baseUrl /api/v2.1/verifications"
$verificationBody = $verificationRequest | ConvertTo-Json -Depth 5
$verificationResponse = Invoke-RestMethod -Uri $verificationUrl -Method Post -Headers $headers -Body $verificationBody
if ( $verificationResponse -and $verificationResponse .data -and $verificationResponse .data.id) {
$currentVerificationId = $verificationResponse .data.id
# Store the first verification ID for document uploads
if ( $verificationType -eq "IDENTITY_VERIFICATION" -or [string]::IsNullOrEmpty( $verificationId )) {
$verificationId = $currentVerificationId
}
Write-Host " ✅ $verificationType initiated successfully (ID: $currentVerificationId )" -ForegroundColor Green
# For high-risk clients, you would also add:
# - ENHANCED_DUE_DILIGENCE
# - SANCTIONS_CHECK
# And set requestedLevel to "POWER_TENANT_VERIFIED"
}
else {
Write-Host " ⚠️ $verificationType created but no ID returned" -ForegroundColor Yellow
}
}
catch {
Write-Host " ❌ Failed to initiate ${ verificationType }: $( $_ .Exception.Message)" -ForegroundColor Red
}
}
# Save verification ID for document upload
if ( $verificationId ) {
Write-Host "Primary verification ID for documents: $verificationId " -ForegroundColor Cyan
}
``` text ` n## Related Endpoints
- [Upload Verification Documents]( /latest/api-reference/v2.1/verification/upload-documents ) - Submit documents for verification
- [Get Verification Status]( /latest/api-reference/v2.1/verification/get-status ) - Check current status
- [List Verifications]( /latest/api-reference/v2.1/verification/list-verifications ) - View all verifications for a customer