Skip to main content
POST
/
api
/
v2.1
/
verifications
/
{verificationId}
/
approve
Approve verification
curl --request POST \
  --url https://sandbox.finhub.cloud/api/v2.1/verifications/{verificationId}/approve \
  --header 'Authorization: <authorization>' \
  --header 'Content-Type: application/json' \
  --header 'User-Agent: <user-agent>' \
  --header 'X-Forwarded-For: <x-forwarded-for>' \
  --header 'X-Forwarded-From: <x-forwarded-from>' \
  --header 'X-Tenant-ID: <x-tenant-id>' \
  --header 'deviceId: <deviceid>' \
  --header 'platform: <platform>' \
  --data '
{
  "notes": "Approved via E2E",
  "approvedBy": "E2E_TEST_ADMIN",
  "comment": "Documents verified, identity confirmed",
  "organizationId": "b4c3d4e7-f8a9-0123-b4c5-d6e7f8a9012b",
  "customerId": "ff72a196-426a-4ab3-a2d3-e4c583a9bc88",
  "status": "APPROVED",
  "verificationType": "IDENTITY_VERIFICATION",
  "verificationId": "42cf474d-0914-47f1-895f-54147443d203",
  "userId": "87b3af37-4ac1-402b-a0ea-53cfdc695e02"
}
'
{
  "code": 200,
  "message": "Verification approved successfully",
  "data": {
    "level": "TENANT_VERIFIED",
    "approvedBy": "E2E_TEST_ADMIN",
    "approvedAt": "2026-03-14T07:05:00.658Z",
    "verificationId": "90fb384c-6404-453d-9001-d15c4e0966e5",
    "status": "APPROVED"
  }
}

Verification Approval

Admin endpoint to approve or reject KYB verification requests after document review.
Admin Only Endpoint: Requires admin/tenant privileges. High-risk organizations require POWER_TENANT approval.
Base URL: https://sandbox.finhub.cloud/api/v2.1

Approve Verification

Endpoint

POST /api/v2.1/verifications/{verificationId}/approve

Path Parameters

verificationId
string
required
Verification UUID to approveExample: 90fb384c-6404-453d-9001-d15c4e0966e5

Headers

X-Tenant-ID
string
required
Tenant identifier
Authorization
string
required
Bearer token with admin privileges
Content-Type
string
required
Must be application/json
X-Forwarded-From
string
required
Source identifier for request origin tracking
platform
string
required
Client platform identifier. Also accepted as sec-ch-ua-platform
deviceId
string
required
Unique device identifier. Also accepted as X-Device-Id or device-id

Request Body

approvedBy
string
required
Approver identifierValid Values:
  • E2E_TEST_ADMIN — Test admin
  • tenant-admin — Tenant admin (standard businesses)
  • power-tenant — Power tenant admin (high-risk businesses)
  • User ID — Specific admin user
approvalReason
string
Reason for approvalExample: "All KYB verification criteria met"
notes
string
Admin notes about the approval decision
adminNotes
string
Internal admin notes (not visible to customer)Example: "All documents verified and authentic"

Approval Authority for Organizations

Organization Risk LevelRequired ApproverApproval Level
Standard BusinessTenant AdminTENANT_VERIFIED
High-Risk BusinessPower Tenant AdminPOWER_TENANT_VERIFIED
High-Risk Organizations (MSBs, crypto exchanges, gambling, PEP directors) must be approved by a Power Tenant Admin with POWER_TENANT_VERIFIED level. Attempting to approve with TENANT_VERIFIED will fail.

Code Examples

curl -X POST "https://sandbox.finhub.cloud/api/v2.1/verifications/90fb384c-6404-453d-9001-d15c4e0966e5/approve" \
  -H "Accept: application/json, text/plain, */*" \
  -H "Content-Type: application/json" \
  -H "X-Tenant-ID: 97e7ff29-15f3-49ef-9681-3bbfcce4f6cd" \
  -H "Authorization: Bearer YOUR_ADMIN_TOKEN" \
  -H "X-Forwarded-From: e2e-test" \
  -H "platform: web" \
  -H "deviceId: e2e-test-device" \
  -d '{
    "approvedBy": "E2E_TEST_ADMIN",
    "approvalReason": "All KYB verification criteria met",
    "adminNotes": "All documents verified, personnel checks complete"
  }'

Response

{
  "code": 200,
  "message": "Verification approved successfully",
  "data": {
    "level": "TENANT_VERIFIED",
    "approvedBy": "E2E_TEST_ADMIN",
    "approvedAt": "2026-03-14T07:05:00.658Z",
    "verificationId": "90fb384c-6404-453d-9001-d15c4e0966e5",
    "status": "APPROVED"
  }
}

Next Steps

Headers

User-Agent
string
required

Browser user agent

Example:

"Mozilla/5.0"

X-Forwarded-For
string
required

Client/application Ip address

Example:

"192.168.0.1"

X-Forwarded-From
string
required

Client/application identifier for request source tracking

Example:

"playground"

X-Tenant-ID
string
required

Tenant identifier

Example:

"97e7ff29-15f3-49ef-9681-3bbfcce4f6cd"

X-User-ID
string

Authenticated user identifier

Example:

"87b3af37-4ac1-402b-a0ea-53cfdc695e02"

X-User-Roles
string

Comma-separated user roles

Example:

"ADMIN_USER,COMPLIANCE_OFFICER"

platform
string
required

Client platform identifier. Also accepted as sec-ch-ua-platform

Example:

"web"

deviceId
string
required

Device identifier

Example:

"e2e-test-device"

Authorization
string
required

Bearer token from admin or customer session creation

Example:

"Bearer <token>"

Path Parameters

verificationId
string
required

Verification process identifier (UUID)

Example:

"42cf474d-0914-47f1-895f-54147443d203"

Body

application/json
notes
string
required

Approval notes explaining the decision

Example:

"Approved via E2E"

approvedBy
string
required

User ID of the admin/compliance officer approving

Example:

"E2E_TEST_ADMIN"

comment
string

Additional comment for the approval

Example:

"Documents verified, identity confirmed"

organizationId
string

Organization identifier (for B2B verifications)

Example:

"b4c3d4e7-f8a9-0123-b4c5-d6e7f8a9012b"

customerId
string

Customer identifier (for B2C verifications)

Example:

"ff72a196-426a-4ab3-a2d3-e4c583a9bc88"

status
string

Target verification status

Example:

"APPROVED"

verificationType
string

Type of verification being approved

Example:

"IDENTITY_VERIFICATION"

verificationId
string

Verification process identifier

Example:

"42cf474d-0914-47f1-895f-54147443d203"

userId
string

User identifier associated with the verification

Example:

"87b3af37-4ac1-402b-a0ea-53cfdc695e02"

Response

Verification approved

Standard API response wrapper used by all endpoints

code
integer

HTTP status code

Example:

200

data
object

Response from verification endpoints

message
string

Human-readable status message

Example:

"Success"