Skip to main content
You launch a person into the business’s verification; they and the rest of the business’s owners and representatives do everything else in the widget at /kyb.

The flow

1

(Optional) Pre-create the business and invite its members

Skip this and your customer creates the business themselves on first launch, and the app asks them for a company name, legal name, and country. Pre-create it when you want the organization and its members in place before anyone launches.Create the business with POST /ramp/organization and accountType: business. You may pass your own id (a UUID) to match an identifier in your own system; omit it and Etherfuse assigns one and returns it as organizationId. Pass country to generate the KYB onboarding at creation so the user lands straight in verification, and with it legalName, the incorporated name on the company’s registry documents. displayName stays a friendly label.
Now add the people who will complete KYB with POST /ramp/organization/00000000-0000-4000-8000-000000000001/member, two ways:
  • By email: the invite is accepted automatically the first time that email launches via your kyb JWT. Pass an optional emailInviteLink to send them an invite pointing at your own page.
  • By customerId: add an existing customer directly by their sub. No email is sent. A customerId exists only after that person has launched or exchanged a JWT via POST /auth/token.
Membership can change at any time: add a member, list members, remove a member, or revoke a pending invite.
2

Launch a user into /kyb

A Business KYB launch, using JWT User Authentication. The sub is the person’s customerId, not the business’s organizationId.
If that person belongs to more than one organization, append ?org=<organizationId> to the target to choose which one to verify. Without it the app uses the last organization that person selected, falling back to their first, so pass it whenever the person may belong to more than one.If you pre-created the business, the user lands directly in its verification, and an emailed invite is accepted at this point. If you did not, the app first prompts them to create the business, then continues.
Camera access. The owner and representative identity checks need the camera. If you embed the launch in an iframe, the iframe element must delegate camera access with a wildcard origin: allow="camera *; microphone *". The bare form (allow="camera") only grants the camera to the iframe’s own src origin, but the scan runs from a nested frame, so without the * the browser blocks the camera and the scan never starts. A top-level tab or popup needs nothing extra.
3

The business completes the steps in the widget

Everything in What verification covers, in an authenticated session that can be left and resumed. The people the business names as its owners and legal representatives each complete an identity check of their own, so more than one person usually takes part.
4

Watch for the result

The kyb_updated webhook fires with status: "approved" and the business can transact and hold API keys. See Tracking verification status.

Error handling

Failures specific to launching. Verification outcomes are in Tracking verification status. A business asked to send something again reads in_progress, and launching it again is how its people do that. denied is a final rejection, which launching again does not reopen.

Sandbox

The verification checks do not run, so any document images and any identity scan will pass. To skip the flow entirely, use Approve KYB in the “Ready to approve?” panel on the sandbox KYB page: it approves the organization without review, which is the fastest way to unlock sandbox API keys. See Initial Setup and Test environment.