Verification Statuses
Verifications move through a series of statuses from submission to completion. Understanding these statuses is essential for building a robust integration.
Status overview
The verificationStatus field indicates the current state of a verification. Each status change triggers a webhook notification to your registered endpoint.
| Status | Description |
|---|---|
new | Entity has not been submitted yet |
pending | Verification is being processed |
info | Additional information is required |
verified | Verification was successful |
rejected | Verification requirements were not met |
error | A system error occurred during processing |
A lock after too many failed attempts is reported on the separate submissionStatus field (submissionStatus: "locked"),
while verificationStatus stays rejected. See Retrying a rejected individual verification.
Entity verification flow
After submission, a verification typically follows this flow:
- Submitted to pending: Verification is queued for processing
- pending to verified / rejected / info: Processing completes with a result
- info to pending: After missing information is provided, returns to processing
- rejected to pending: A rejected
individual(subType: data) verification returns to processing when the individual resubmits with corrected details - The cycle can repeat until reaching a terminal state (
verified, orrejectedonce no further attempts are possible)
Important: Due to remediation or at the request of the customer, verifications may transition from verified or rejected back to pending
or info. Continue listening for webhook updates even after a verification reaches a final status.
Status details
new
The verification entry exists but no data has been submitted yet. This status is returned when:
- A trace identifier has been created (e.g., via form creation)
- No entity data has been submitted for verification
Response includes:
trace- The verification trace identifieruserId- Your internal user identifier (if provided during form creation)onBehalfUid- The onBehalf account UID (if applicable)submissionStatus- Current submission status (typicallynew)verificationStatus- Set tonewmessage- Explanation that entity has not been submitted- Entity fields (
country,type,name, etc.) will benull
What to do: Submit entity data using POST /v5/verifications to begin the verification process.
pending
The verification has been submitted and is being processed. This is typically the first status after submission.
What to do: Wait for a webhook notification with the next status. Processing times vary:
- Median: Under 15 minutes
- Extended cases: Up to 24-48 hours (during registry maintenance or high load)
info
Additional information is required to complete the verification. This typically means:
- Additional documents are needed (e.g., trust deed, certificate of incorporation)
- Additional stakeholders need to be verified (e.g., directors, beneficial owners)
What to do:
- Fetch the
remainingActionsusing GET /v5/verifications/:trace - Upload any requested documents using PUT /v5/verifications/:trace/documents/:documentId
- Direct stakeholders to complete their verification using the provided formUrl
See Provide Missing Information for detailed instructions.
verified
The verification was successful and satisfies the bronID verification requirements.
What to do: Update your system to reflect the successful verification. The customer can proceed with your onboarding flow.
Response includes:
- Summary entity data
- IDV risk score
- Verification timestamp
What to do:
- Read detailed verification information
- Read detailed stakeholder information
- Read detailed document information
- Update your system to reflect the successful verification
rejected
The verification requirements were not met. Common reasons include:
- Entity could not be found in the relevant registry
- Incorrect entity details were submitted
- Document verification failed
- Stakeholder verification failed
What to do:
- Fetch rejection details using GET /v5/verifications/:trace
- Review the
rejectionReasonsarray for specific issues - If correctable, submit a new verification with corrected information — or, for rejected
individual(subType: data) verifications, have the individual resubmit the same verification (see below)
Retrying a rejected individual verification
A rejected individual (subType: data) verification is retryable in place: the individual corrects their details on the same verification form and submits again. No new verification or new trace is needed.
- On resubmission the status moves backwards from
rejectedtopending— design your integration so apendingwebhook after arejectedone updates the customer state instead of being treated as out of order. - The
attemptfield (in webhook payloads and the GET response) reports which attempt the current status belongs to, starting at1. - Up to 5 attempts are allowed. The rejection that exhausts the cap also locks the verification (
submissionStatus: "locked"), and any further resubmission is refused with HTTP error474 too_many_attempts. rejectionReasonsalways describe the latest attempt. They are not included in webhook payloads — fetch them via GET /v5/verifications/:trace.
For an entity verification, an individual (subType: biometric) stakeholder has an analogous capped retry — but it is not an API resubmit: the individual re-attempts on their hosted eKYC link, advancing attempt toward the same 5-attempt cap and reaching submissionStatus: "locked" when it is exhausted. The stakeholder's attempt, maxAttempts, and rejectionReasons surface on the stakeholders list; its attempt and submissionStatus (incl. "locked") also appear on stakeholder webhooks. The parent entity stays in info (the stakeholder action remains open) until the stakeholder is verified or removed.
error
A system error occurred during processing. This is rare and typically indicates a temporary issue.
The response includes an errorReasons array with details about what failed.
What to do: Contact bronID support if the error persists. You may retry the verification after a short delay.
Submission status
In addition to verificationStatus, the submissionStatus field tracks the data collection state:
| Status | Description |
|---|---|
| new | No data has been submitted yet |
| unsubmitted | Data collection has started but has not been submitted |
| in_progress | Verification is waiting for additional data (used with info status) |
| submitted | All required data has been provided |
| locked | Too many failed verification attempts — no further resubmissions are accepted (details) |
Best practices
Design for asynchronous processing
Processing times can range from seconds to hours. Design your flow so that:
- Users do not wait on a loading screen for verification results
- Status updates are communicated via email or in-app notifications
- Your system polls or listens for webhook updates
Handle all statuses
Ensure your integration handles all possible status transitions.
Use webhooks
Rather than polling the API, configure webhooks to receive real-time status updates. This is more efficient and provides immediate notifications.