Individuals (KYC)
registerUser creates the account. verifyUserInformation verifies the person. Verification is synchronous, with a hard limit on attempts.Businesses (KYB)
registerBusiness creates the entity and starts verification. The result is asynchronous — the account opens in PENDING and resolves later.Do you need to do this at all?
You don’t have to own onboarding. An embedded widget runs registration, verification, and consent as a hosted flow, keeping identity data inside Fluz’s compliance scope.
Register users yourself when you already hold clean, verified profile data. If you’d be collecting date of birth and SSN purely to forward them, use the widget — you’re taking on regulated data handling for no benefit.
The individual track
1
Register
registerUser with first name, last name, phone, region code, email, and date of birth (YYYY-MM-DD).Names should match the documents the user will verify with. A mismatch resurfaces at step 2 as a decline that’s much harder to diagnose.→ User Registration2
Verify
verifyUserInformation runs KYC. Users must be verified to transact at all, or to transact at higher limits.→ User KYC Verification3
Get authorized
Registering someone does not give you permission to act for them. That’s a separate, explicit grant.→ Client-facing OAuth grant flow
Verification outcomes
”Already in use” is normal
registerUser returns AUTH-0026 (phone) or AUTH-0027 (email) when the person already has a Fluz account. Fluz accounts aren’t scoped to your application, so anyone who has used Fluz before — through any app or the consumer product — already exists.
That’s a routing signal, not a failure. Send them through the grant flow to authorize the account they already have. Build this as the normal path, not an error branch.
The business track
KYB has more moving parts and a strict order.1
Register the primary owner as a user first
This is the dependency people miss. The primary business owner must already be a registered Fluz user, and the
emailAddress on the owner record must be the one they registered with. Register the human before you register the company.2
Fetch valid categories
getBusinessCategories returns the businessCategoryId and businessSubCategoryId values you’ll need. Don’t hard-code them, and don’t mix a subcategory from one category with another — that’s BS-0006.→ Business Categories3
Upload a document, if sole proprietorship
SOLE_PROPRIETORSHIP requires a supporting document, uploaded first via a REST endpoint as form-data. Pass the returned URL as soleProprietorshipDocumentUrl.4
Register the business
registerBusiness with the entity details, legal address, tax ID, categories, account usage, and owners. Returns an accountId and a kybStatus of PENDING.→ Business Registration5
Wait for KYB to resolve
The account stays
PENDING until verification completes.Constraints worth knowing before you build
Scopes and permissions
Enable scopes on the app’s Permissions tab before building. A scope you request but haven’t enabled is silently dropped rather than rejected. → Configure OAuth App
Errors come back in data
Both registerUser and registerBusiness report failure as an HTTP 200 with success: false and a populated error object — not as entries in the GraphQL errors array. Code that only inspects errors will read every failure as a success.
Check all three layers: transport errors, then success, then branch on error.code.
Handling the data
This section moves more regulated data than anywhere else in the API: full names, dates of birth, SSN digits, home addresses, identity documents.- Send it from your server over TLS. Never from a browser or mobile client.
- Keep it out of logs, error-tracking payloads, and analytics.
- Validate formats locally before calling, both to avoid burning KYC attempts and to avoid transmitting data twice.
- Have an answer ready for how long you retain it and why. Your enterprise customers will ask.
Testing
Staging mirrors these flows without real verification against real people. Never register real individuals or businesses in staging, and never carry staging test identities into production. → Testing KYC Flows · Test Addresses · Staging vs. LiveIn this section
User registration
Create an individual account.
User KYC verification
Verify the person behind it.
Business registration
Create an entity and start KYB.
Business categories
Valid category and subcategory IDs.
Formatting referral links
Bring users in through a referral.
Embedded widgets
Hand the whole flow to Fluz instead.