Open a Business Verification
Opens a business customer's verification record (KYB). Every other KYB call needs it, so this one comes first. Opening a record that already exists returns that record unchanged, so a retry is safe. Only a business customer can have one; an individual is refused.
Takes a workspace-scoped API key or a dashboard session. An account-scoped key is refused with 401.
Replaces the record-creating half of POST /api/v2/kyb/banking-verification/business.
The verification flow
- Open the record (this page).
- Write the business's details with Submit Business Details. Save as often as you like: nothing is checked for completeness until step 5.
- Upload at least one business document: presign, upload, complete.
- Add every beneficial owner with Add a Beneficial Owner, and upload each owner's selfie and identity document with Beneficial Owner Documents. If you already verified an owner with your own provider, attach the result with External Owner Verification.
- Request verification. The business and all its owners go to the verification provider together. Follow the outcome with Get Business Verification.
Authorization:
Every request is signed with your API key: a short-lived JWT, signed with your private key, sent in one header on /v3/* and /api/v2/* alike.
Headers:
Authorization: APIKey {SIGNED_JWT}
How to build and sign the JWT: Authentication.
Endpoint
/v3/customers/{customer_id}/kyb
Path parameters
| Parameter | Type | Description |
|---|---|---|
customer_id | string (cst_…) | Required. The business customer. |
No request body.
Response Sample
201 Created for a new record:
{
"id": "kyb_01m24es440fqxr7z5xsphsmvqm",
"customer_id": "cst_01m24bb8g0f28rhegcwp8rfbqd",
"status": "pending",
"status_reason": "verification record created",
"ready": false,
"event_history": [
{
"status": "pending",
"status_reason": "verification record created",
"date": "2026-09-09T14:20:00Z"
}
],
"created_at": "2026-09-09T14:20:00Z",
"updated_at": "2026-09-09T14:20:00Z"
}
Response Schema
201 Created with the new record, or 200 OK with the one already there. Fields as in Get Business Verification.
Errors
| Status | message | When |
|---|---|---|
400 | failed to parse request | customer_id is not a cst_… TypeID. |
401 | unauthorized | Missing or invalid signature, or an account-scoped key or customer session. |
403 | forbidden | A dashboard member whose role does not allow this. A workspace-scoped key always may. |
404 | customer_not_found | No such customer in the workspace. |
422 | kyb_individual_not_supported | The customer is an individual. |
Coming from v2
v2 (POST /api/v2/kyb/banking-verification/business) | v3 |
|---|---|
| one call creates the record and saves the details | POST …/kyb opens it, PATCH …/kyb writes the details |
accountId (body, uuid) | customer_id (path, cst_…) |
| reading the status creates a blank record when there is none | only this call creates one; reading answers 204 |
Support and Resources
If you need assistance or have any questions, our support team is here to help. You can contact our support team at support@blockwyre.com.
Stay Updated
Stay up-to-date with the latest news, updates, and features from BlockWyre by following us on social media:
- Instagram: BlockWyre Instagram
- Twitter: BlockWyre Twitter
- Facebook: BlockWyre Facebook
- LinkedIn: BlockWyre LinkedIn
We are excited to have you on board and look forward to seeing how you leverage BlockWyre's powerful tools to enhance your financial operations. Happy integrating!