Skip to main content

Get Business Verification

A business customer's verification record: its status, its history and the business's details. Owners and documents are listed separately, with List Beneficial Owners and List Business Documents.

Takes a workspace-scoped API key or a dashboard session. An account-scoped key is refused with 401.

Replaces GET /api/v2/kyb/banking-verification/business/{accountId}.

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

GET

/v3/customers/{customer_id}/kyb

Path parameters​

ParameterTypeDescription
customer_idstring (cst_…)Required. The business customer.

A customer with no record answers 204 No Content, with no body. An id that names no customer of the workspace answers 404 customer_not_found. Reading never creates a record: open one with POST.

Response Sample​

{
"id": "kyb_01m24es440fqxr7z5xsphsmvqm",
"customer_id": "cst_01m24bb8g0f28rhegcwp8rfbqd",
"status": "in_review",
"status_reason": "verification requested",
"provider": "braid",
"name": "Acme Robotics Inc",
"dba_name": "Acme Robotics",
"entity_type": "corporation",
"phone": "+14155550123",
"email": "ops@acmerobotics.example.com",
"website": "https://acmerobotics.example.com",
"id_number": "12-3456789",
"id_document_type": "ein",
"tax_number": "12-3456789",
"formation_date": "2019-06-01",
"incorporation_state": "DE",
"address": {
"line1": "500 Terry A Francois Blvd",
"line2": "Suite 400",
"city": "San Francisco",
"state": "CA",
"postal_code": "94158",
"country": "US"
},
"operation_address": {
"line1": "1 Market St",
"city": "San Francisco",
"state": "CA",
"postal_code": "94105",
"country": "US"
},
"ready": true,
"event_history": [
{
"status": "in_review",
"status_reason": "verification requested",
"date": "2026-09-10T09:05:00Z"
},
{
"status": "pending",
"status_reason": "verification record created",
"date": "2026-09-09T14:20:00Z"
}
],
"created_at": "2026-09-09T14:20:00Z",
"updated_at": "2026-09-10T09:05:00Z"
}

Response Schema​

Fields with no value are omitted.

FieldTypeDescription
idstring (kyb_…)The verification record.
customer_idstring (cst_…)The business customer.
statusstringWhere the verification stands. See Statuses.
status_reasonstringWhy the status last changed.
providerstringThe verification provider, once the business has been handed to it.
name, dba_name, entity_type, phone, email, websitestringAs written with Submit Business Details.
id_number, id_document_type, tax_numberstringThe same.
formation_date, incorporation_statestringThe same.
address, operation_addressaddressThe same.
readybooleanThe business's own details are complete: name, entity_type, id_number, id_document_type, formation_date and incorporation_state are set. Documents and owners are not part of it; Request Verification checks those too.
event_historyarrayEvery status change, newest first.
event_history[].statusstringThe status it changed to.
event_history[].status_reasonstringWhy.
event_history[].datestring (RFC 3339)When.
created_atstring (RFC 3339)When the record was opened.
updated_atstring (RFC 3339)When it last changed.

Statuses​

Owners use the same values for their own status.

statusMeans
pendingOpen and being filled in.
ready_for_reviewSet by BlockWyre once the details are complete, a document is completed, and the business has owners that are all ready_for_review, a status only External Owner Verification sets. A business whose owners were not verified externally stays pending until verification is requested. For information only: verification can be requested from pending too.
in_reviewHanded to the verification provider. The business's details and documents are locked, and no owner can be added. Removing an owner is never locked, and an owner's documents and external verification follow that owner's own status.
approvedVerified.
needs_updateSent back for changes. The details can be written again.
rejectedRefused. Final: it cannot be requested again.

Errors​

StatusmessageWhen
400failed to parse requestcustomer_id is not a cst_… TypeID.
401unauthorizedMissing or invalid signature, or an account-scoped key or customer session.
403forbiddenA dashboard member whose role does not allow this. A workspace-scoped key always may.
404customer_not_foundNo such customer in this workspace.

Coming from v2​

v2 (GET /api/v2/kyb/banking-verification/business/{accountId})v3
accountId (path, uuid)customer_id (path, cst_…)
creates a blank record when there is none204, nothing created
ownersList Beneficial Owners
verificationFilesList Business Documents
eventHistory[].statusReasonevent_history[].status_reason
camelCase fields, address1 / postalCodesnake_case fields, line1 / postal_code
no record idid (kyb_…) and ready

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:

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!