Business registration
Overview
Creates a new business account programmatically via the API. Creates a business account, stores business information, and initiates the KYB (Know Your Business) process. After successful registration, the account will be in PENDING status until KYB verification is complete.
Required scopes
| Property | Value |
|---|---|
| Endpoint | GraphQL API |
| Authentication | OAuth Bearer Token |
| Required Scopes | REGISTER_BUSINESS |
Prerequisites
Before calling this mutation, use the getBusinessCategories query to retrieve valid businessCategoryId and businessSubCategoryId values.
Basic mutation structure
mutation RegisterBusiness($input: RegisterBusinessInput!) {
registerBusiness(input: $input) {
accountId
kybStatus
success
error {
message
code
}
}
}Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
businessName | String | Yes | The legal business name |
dbaName | String | No | The "Doing Business As" name |
businessStructure | BusinessStructure | Yes | Must be one of: LLC, CORPORATION, PARTNERSHIP, SOLE_PROPRIETORSHIP, COOP |
businessLegalAddress | BusinessLegalAddress | Yes | The business legal address object (see below) |
stateOfIncorporation | String | Yes | The state where the business is incorporated |
taxId | String | Yes | Tax ID / EIN Number. Format: XX-XXXXXXX (2 digits, hyphen, 7 digits) |
soleProprietorshipDocumentUrl | String | Conditional | Required if businessStructure is SOLE_PROPRIETORSHIP. Upload via REST endpoint first |
businessCategoryId | UUID | Yes | Business category ID (from getBusinessCategories query) |
businessSubCategoryId | UUID | Yes | Business sub-category ID (from getBusinessCategories query) |
natureOfBusiness | String | No | Brief description of the nature of business |
websiteUrl | String | No | The business website URL |
businessAccountUsage | [BusinessAccountUsage] | Conditional | Array of usage types. Required if businessAccountUsageOther is not provided. |
businessAccountUsageOther | String | Conditional | Required if businessAccountUsage is empty or not provided. |
owners | [BusinessOwner] | Yes | List of business owners. At least one owner required. Primary owner must be a registered Fluz user. |
BusinessLegalAddress
| Field | Type | Required | Description |
|---|---|---|---|
streetAddressLine1 | String | Yes | Street address line 1 |
streetAddressLine2 | String | No | Street address line 2 |
city | String | Yes | City |
state | String | Yes | State/province |
postalCode | String | Yes | Postal code |
country | String | Yes | Country name (ISO 3166). Some countries are restricted for KYB registration, e.g. Russia or Iran |
BusinessOwner
| Field | Type | Required | Description |
|---|---|---|---|
firstName | String | Yes | Owner's first name |
lastName | String | Yes | Owner's last name |
emailAddress | String | Yes | Owner's email. Ensure you use the email address the user registered with on the Fluz platform. |
title | String | Yes | Owner's title in the company |
ownershipPercentage | Int | Yes | Percentage of ownership (0-100). Total ownership across all owners cannot exceed 100 |
lastFourSsnDigits | String | Yes | Last 4 digits of SSN |
dob | String | Yes | Date of birth in MM/DD/YYYY format (e.g., 02/28/1975) |
phoneNumber | String | Yes | Phone number: minimum 10 digits, digits only |
address | OwnerAddress | Yes | Owner's address (must be US-based, see OwnerAddress) |
OwnerAddress
| Field | Type | Required | Description |
|---|---|---|---|
streetAddressLine1 | String | Yes | Street address line 1 |
streetAddressLine2 | String | No | Street address line 2 |
city | String | Yes | City |
state | String | Yes | Must be a valid US state name (e.g., California, New York, Texas) |
postalCode | String | Yes | Must be 5 digits for US ZIP code format |
BusinessStructure (enum)
LLCCORPORATIONPARTNERSHIPSOLE_PROPRIETORSHIPCOOP
BusinessAccountUsage (enum)
CORPORATE_GIFTINGCORPORATE_SPENDING_ADMINREWARDS_MAXIMIZERGIFT_CARD_RESELLINGPURCHASE_GOODS_FOR_BUSINESS_USEONLINE_SELLER_RETAIL_PURCHASING
Response details
| Field | Type | Description |
|---|---|---|
accountId | UUID | The account ID of the newly created business |
kybStatus | String | The KYB status of the business (initially PENDING) |
success | Boolean | Indicates if the registration was successful (on error) |
error | RegisterBusinessError | Error information if registration failed (on error) |
RegisterBusinessError
| Field | Type | Description |
|---|---|---|
message | String | Brief informational error message |
code | String | Predefined code listed in the table below |
cURL Example
curl -X POST https://transactional-graph.staging.fluzapp.com/api/v1/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <ACCESS_TOKEN>" \
-d '{
"query": "mutation RegisterBusiness($input: RegisterBusinessInput!) { registerBusiness(input: $input) { accountId kybStatus success error { message code } } }",
"variables": {
"input": {
"businessName": "Acme Corporation",
"dbaName": "Acme Co",
"businessStructure": "LLC",
"businessLegalAddress": {
"streetAddressLine1": "123 Main Street",
"streetAddressLine2": "Suite 100",
"city": "San Francisco",
"state": "California",
"postalCode": "94102",
"country": "United States"
},
"stateOfIncorporation": "California",
"taxId": "12-3456789",
"businessCategoryId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"businessSubCategoryId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"natureOfBusiness": "E-commerce retail",
"websiteUrl": "https://acme.example.com",
"businessAccountUsage": ["CORPORATE_SPENDING_ADMIN", "PURCHASE_GOODS_FOR_BUSINESS_USE"],
"owners": [
{
"firstName": "John",
"lastName": "Doe",
"emailAddress": "[email protected]",
"title": "CEO",
"ownershipPercentage": 60,
"lastFourSsnDigits": "1234",
"dob": "02/28/1975",
"phoneNumber": "4155551234",
"address": {
"streetAddressLine1": "456 Oak Avenue",
"city": "San Francisco",
"state": "California",
"postalCode": "94103"
}
},
{
"firstName": "Jane",
"lastName": "Smith",
"emailAddress": "[email protected]",
"title": "CFO",
"ownershipPercentage": 40,
"lastFourSsnDigits": "5678",
"dob": "07/15/1980",
"phoneNumber": "4155555678",
"address": {
"streetAddressLine1": "789 Pine Street",
"city": "San Francisco",
"state": "California",
"postalCode": "94104"
}
}
]
}
}
}'Example Response
Success
{
"data": {
"registerBusiness": {
"accountId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"kybStatus": "PENDING"
}
}
}Error
{
"data": {
"registerBusiness": {
"success": false,
"error": {
"message": "The entered tax id taxId must be in format XX-XXXXXXX (2 digits, hyphen, 7 digits)",
"code": "BS-0001"
}
}
}
}Error Codes
| Code | Name | Description |
|---|---|---|
BS-0001 | InvalidTaxId | The tax ID must be in format XX-XXXXXXX (2 digits, hyphen, 7 digits) |
BS-0002 | InvalidBusinessLegalAddress | Business legal address is incorrect |
BS-0003 | InvalidOwnerInformation | One or more owner information is incorrect |
BS-0004 | InvalidBusinessAccountUsage | Selected business account usage is not allowed |
BS-0005 | InvalidBusinessStructure | Selected business structure is not allowed |
BS-0006 | InvalidBusinessCategory | Ensure that business category and business subcategory are valid and properly connected (you subcategories from different categories cannot be combined; for example, Art cannot be selected with Pharmacy subcategory) |
BS-0007 | RegistrationNotAllowed | Wait until the last business finishes registration before starting a new one |
AR-0001 | MissingArguments | Required argument is missing (see error message for details) |
AR-0002 | InvalidArguments | Invalid argument provided (see error message for details) |
AU-0001 | UnsuccessfulRegistration | General registration failure |
Notes
- If
businessStructureisSOLE_PROPRIETORSHIP, upload the document via the REST endpointPOST https://transactional-graph.staging.fluzapp.com/api/v1/file-upload/sole-proprietorship-document(usingform-datacontent type). Then, supply the generated URL insoleProprietorshipDocumentUrl - 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.
Updated 8 days ago
