Skip to main content

Submit External Individual Verification

Deprecated

This endpoint is deprecated. Use POST /v3/customers/{customer_id}/kyc/submit-external-verification, which takes JSON and the documents uploaded through the v3 document endpoints. It keeps working while integrations move; see Versioning.

This endpoint submits an individual banking verification from an external provider (e.g. Jumio, Onfido) by directly uploading identity documents and raw verification data, instead of sending the applicant through the verification link.

Takes a workspace-scoped API key. An account-scoped key is refused with 403.

Prerequisites​

  • The individual banking verification data must be submitted first using the Submit Banking Verification endpoint.
  • The account must not already be approved or in_review.

Technical Details​

  • Status Change: The verification status changes directly to approved.
  • No verification link is generated — documents are uploaded directly.
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

POST

/api/v2/kyc/banking-verification/individual/{accountId}/submit-external-verification

Content Type​

multipart/form-data

Path Parameters​

ParameterTypeDescription
accountIdstring (uuid)Required. The account ID to submit verification for.

Request Body Schema​

FieldTypeDescription
facebinaryRequired. Selfie image of the individual.
documentFrontbinaryRequired. Front of the ID document.
documentBackbinaryBack of the ID document (optional).
rawstring (JSON)Required. Raw verification JSON from the external provider. Must be valid JSON.
providerstringRequired. Source provider name (e.g. jumio, onfido, sumsub).

Response Sample​

{
"accountId": "00000000-0000-0000-0000-000000000000",
"status": "approved",
"statusReason": "verification approved (direct)",
"phone": "+1234567890",
"dateOfBirth": "1990-05-15",
"nationality": "US",
"documentId": {
"idNumber": "123456789",
"idDocumentType": "passport",
"idIssueDate": "2020-01-01",
"idExpiryDate": "2030-01-01",
"idCountryOfIssue": "US",
"nationality": "US"
},
"address": {
"address1": "123 Main St",
"address2": "",
"city": "New York",
"state": "NY",
"postalCode": "10001",
"country": "US"
},
"eventHistory": [
{
"status": "approved",
"statusReason": "verification approved (direct)",
"date": "2026-03-17T12:00:00Z"
}
],
"createdAt": "2026-03-17T00:00:00Z",
"updatedAt": "2026-03-17T12:00:00Z"
}

Error Responses​

Account Already Approved or In Review​

If the account is already in approved or in_review status, you will receive a 409 Conflict error.

Invalid Raw JSON​

If the raw field is not valid JSON, you will receive a 400 Bad Request error.

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!