KYB completes automatically when requirements are ready
There is no separate “submit KYB” endpoint. Create Account creates the end-customer account and fixes the set of KYB requirements it must satisfy — read them back with Get Account. Completion is data-driven: once required fields, company documents, and associated-person verification are satisfied, Hop starts verification review automatically.Business profile
Legal name, business type enum, industry, country of incorporation, registration/tax identifiers, registered and operating addresses, website or business description, source of funds, purpose of account, and expected deposit/withdrawal volume buckets.Documents
Entity (business) documents are uploaded only through the Upload Account Document endpoint after account creation. Uploaded files are held securely by Hop in thestaged state and move to submitted when verification review starts. An associated person’s identity documents are captured inside their Verification Session, not uploaded through the API.
Associated persons
UBOs, directors, control persons, partners where applicable, and authorized signatories. Authorized signatory status is represented byis_signer=true. ownership_percentage is required for ultimate beneficial owners. Each person carries their own verification_status and hosted verification-session state.
Agreements are account-scoped Hop records. Agreements are independent account-scoped actions accepted by an authorized signer; they are not part of the automatic KYB submission readiness (they gate account activation separately). Use the Agreements endpoints to list assigned agreements, fetch content, and record accept/reject actions.
Status lifecycle
Verification review starts automatically once all requirements are complete. Track progress throughkyc_status on the account:
approved and rejected are terminal — Update Account and associated-person updates are blocked once a terminal status is reached.Tracking review progress
You have two options — and you do not need to poll:recommended
Fires on every KYB status transition. The payload is the full account object — the same shape as Get Account. See Webhook Event Catalog.
Read
kyc_status on demand, plus the detail fields below.Readiness metadata:
ready_for_submission, submission_status (not_ready | ready | submitting | submitted), and requirements_version.Requirement state across company fields, company documents, associated-person role counts, hosted verification, and agreements.
Populated only when
kyc_status is rejected (terminal); each entry carries a user-safe reason and an engineering-facing developer_reason. Null otherwise. Recoverable review requests (action_needed) surface under requirements.issues instead.Completing requirements or fixing action_needed
When the status isnot_started or action_needed, read requirements.missing, requirements.issues, and associated_persons[] to see what is needed, then:
- Correct business fields with Update Account, and supply entity documents with Upload Account Document (each upload claims a
requirement_keyfrom the lists above). Your own writes do not fireaccount.updated— re-fetch Get Account to see requirements progress; the webhook fires when Hop changes the verification state. - Correct people with Update Associated Person, or add missing ones with Create Associated Person. For identity verification, create a Verification Session for the person and share the returned link.
- Accept required agreements with an authorized signer. When all requirements pass, Hop starts verification review automatically; when review begins or the status changes, you will receive the next
account.updatedevent.