Skip to main content
After a customer is created, verification runs asynchronously. Your product should show progress clearly and tell the user what to do next.

Common customer statuses

Use these statuses to drive UI decisions:
  • pending: verification is in progress or queued
  • active: verification succeeded
  • rejected: verification failed
  • needs_information: verification is blocked until the user provides more information or documents
  • update_requested: updated data was submitted for re-verification
  • on_hold: temporarily suspended for additional checks
See the full table at Customer statuses.

What happens during verification

If you collect raw identity documents yourself, you must also collect liveness from the end user using a trusted verification provider (for example Sumsub, Persona, or similar).
Liveness is always required when you submit raw documents to BFinance. You do not need to send liveness artifacts to BFinance, but you must complete liveness in your verification flow.
  • Create the customer after collecting the required information
  • Provide documents when needed
  • Show status updates in the UI
  • Help the user correct issues when verification fails
  • Runs automated checks (format, eligibility, duplication signals)
  • Submits the case for compliance review when required
  • Produces a final decision and a reason when rejected

needs_information (what it means)

If the customer is created with incomplete data for the selected verification level, the customer can move to needs_information. Example: you submit basic personal information but request a basic verification level without providing required documents. In this scenario, the API response includes a link for uploading documents, and your product should direct the user to that link.

If verification is rejected

Rejections are usually resolvable when they are caused by data quality.Ask the user to:
  • confirm legal name spelling matches the document
  • upload clearer photos (no glare, no cropping, no edits)
  • provide missing fields (address, national ID, etc.) if required
Use rejection reason codes to decide what to show in your UI.
Treat unknown reasons as “contact support / account manager” until you’ve mapped them in your product.