Overview
The registerBusiness mutation creates a business account on the Fluz platform. In a single call it:- Creates a business account tied to an existing Fluz user (the primary owner),
- Stores the legal entity record — legal name, structure, tax ID, state of incorporation, legal address, category, and intended use of the account,
- Stores the beneficial ownership information for each owner you supply, and
- Opens a KYB (Know Your Business) case for compliance review.
accountId immediately, along with a kybStatus of PENDING. Registration succeeding means Fluz accepted and validated your submission — it does not mean the business has been approved. Approval happens asynchronously once the KYB review completes.
Registration is validation, not approval. A
success response with kybStatus: PENDING confirms the payload passed field-level validation and a KYB case was opened. Build your integration so it waits for an approved status before attempting to fund the account or issue cards.What a business account unlocks
Once KYB is approved, the business account can be used for the commercial side of the platform:- Business spend accounts and balances
- Commercial virtual cards, including bulk issuance
- Authorized users and card-level spend controls
- Approval workflows for cards, transfers, and reimbursements
- Business-level transaction reporting and expense annotation
When to use this endpoint
UseregisterBusiness when your platform onboards businesses on Fluz rails and you want to collect entity and ownership data in your own UI rather than sending users into a Fluz-hosted flow. If you would rather Fluz host the collection and document upload experience, talk to your account manager about the widget-based onboarding option instead.
Registration flow
End-to-end sequence
Step-by-step
1
Make sure the primary owner is a registered Fluz user
At least one owner in the
owners array — the primary owner — must already exist as a Fluz user, and the emailAddress you send for that owner must match the email on their Fluz account exactly. If the person does not have an account yet, create one first with registerUser.Fluz recommends the primary owner complete identity verification (KYC) before or alongside the business submission, since owner identity data is reviewed as part of KYB.2
Confirm your application holds the REGISTER_BUSINESS scope
Both the app-level grant and the individual user grant must be active. See Application Scopes.
3
Resolve the business category and sub-category
Call getBusinessCategories and let the user pick a category and one of that category’s sub-categories. Do not hardcode these UUIDs — they can change, and a sub-category from a different category will be rejected with
BS-0006.4
Upload a sole proprietorship document, if applicable
Only required when
businessStructure is SOLE_PROPRIETORSHIP. Upload the document first, then pass the returned URL in soleProprietorshipDocumentUrl. See Submit business documents.5
Submit the registerBusiness mutation
Send the full entity record and every owner in one call. Handle the response as described in Response details — errors are returned inside the payload, not as GraphQL errors.
6
Wait for the KYB decision, then provision
The account is created in
PENDING. Surface that state to your user rather than implying they are live. Once the status moves to approved, create spend accounts and issue cards.KYB status lifecycle
Checking status after registration
There is no KYB webhook event today, so your integration should read the status when the user returns to your business onboarding screen, and on a low-frequency background schedule (for example, hourly — not per page load). You can confirm the business account exists and identify it against the user withgetAccountsByUserId:
Reviews are typically resolved within one to two business days, but can take longer when additional documentation is requested. If a case appears stalled, contact your account manager with the
accountId rather than resubmitting — a second submission will be blocked by BS-0007.Required scopes
Basic mutation structure
Parameters
Address formattingFormat
businessLegalAddress and each owner address using the structured fields below, with a real, deliverable address and a consistent city / state / postal code. The business legal address may be international (country name, ISO 3166; some countries are restricted, e.g. Russia or Iran). Owner addresses must be US-based. A malformed or mismatched address returns BS-0002 (business legal address) or BS-0003 (owner information). See Address Formatting Requirements for details.BusinessLegalAddress
BusinessOwner
OwnerAddress
BusinessStructure (enum)
Any structure not on this list is rejected with
BS-0005. Trusts, non-profits, and other entity types are handled case by case — contact your account manager before building against them.
BusinessAccountUsage (enum)
Send every value that applies. If none fit, omit
businessAccountUsage and describe the intended use in businessAccountUsageOther. Selecting a usage type your application is not approved for returns BS-0004.
Beneficial ownership requirements
KYB review depends on getting the ownership picture right the first time. Collect and submit:- Every individual who owns 25% or more of the entity, directly or indirectly.
- A control person — an individual with significant responsibility for managing the entity (CEO, CFO, managing member, general partner, or similar) — even if they hold no equity. Send them with an
ownershipPercentageof0and an accuratetitle. - At least one owner who is a registered Fluz user, with a matching
emailAddress.
- Total
ownershipPercentageacross the array must not exceed 100, but it does not need to equal 100. If a business is 40/35/25 across three individuals plus a non-owner CEO, submit all four with percentages of 40, 35, 25, and 0. - Where an entity (rather than a person) holds equity, look through to the individuals behind it and submit those individuals.
titleis a free-text field, but it is read by a human reviewer. Use recognizable titles (“Chief Executive Officer”, “Managing Member”) rather than internal shorthand.
Validation quick reference
MostBS-000x errors come down to formatting. Check these before submitting:
Documents
Sole proprietorships must upload supporting documentation before registering, and any structure may be asked for additional documentation during KYB review. Both paths are covered on one page:Submit business documents
Upload endpoint, accepted sole proprietorship documents, and what to do when compliance requests more information.
Response details
RegisterBusinessError
Failures are returned inside the response payload, not as top-level GraphQL errors. Always branch on the presence of
error (or on success === false) rather than relying on the HTTP status or a GraphQL errors array.cURL Example
Example Response
Success
Error
Error Codes
Testing in staging
- Register against the staging GraphQL endpoint shown in the examples above. See Staging vs. Live Environment.
- Use Test Addresses for addresses that pass validation deterministically.
- EINs in staging must still satisfy the
XX-XXXXXXXformat, but do not need to correspond to a real entity. - Because a user cannot hold two open applications (
BS-0007), test repeated registration paths with distinct test users.
Best practices
- Validate client-side first. Every
BS-000xcode exceptBS-0007is a formatting or selection problem you can catch before the network call. Doing so materially improves onboarding completion rates. - Fetch categories at runtime. Never hardcode category UUIDs.
- Do not auto-retry on a declined KYB. Resubmission will not change the outcome and creates duplicate cases.
- Store the
accountIdimmediately. It is your only handle on the application and the reference support will ask for. - Communicate the pending state honestly. Tell the user their business is under review and roughly how long it takes, rather than dropping them into a business dashboard that cannot yet transact.
- Collect ownership completely the first time. Missing beneficial owners is the most common cause of a review stalling for additional documentation.
Notes
- When specifying account usage, either
businessAccountUsageorbusinessAccountUsageOthermust be provided. - Users cannot register a new business if they already have an ongoing application. They must wait for the current application to be approved or rejected before submitting another one.
Related pages
Submit business documents
Upload sole proprietorship documents and respond to KYB documentation requests.
Business categories
Fetch the category and sub-category IDs required by this mutation.
Register customers
Create the Fluz user who will act as primary owner.
Address formatting requirements
Rules that govern the legal and owner address objects.