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

PropertyValue
EndpointGraphQL API
AuthenticationOAuth Bearer Token
Required ScopesREGISTER_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

ParameterTypeRequiredDescription
businessNameStringYesThe legal business name
dbaNameStringNoThe "Doing Business As" name
businessStructureBusinessStructureYesMust be one of: LLC, CORPORATION, PARTNERSHIP, SOLE_PROPRIETORSHIP, COOP
businessLegalAddressBusinessLegalAddressYesThe business legal address object (see below)
stateOfIncorporationStringYesThe state where the business is incorporated
taxIdStringYesTax ID / EIN Number. Format: XX-XXXXXXX (2 digits, hyphen, 7 digits)
soleProprietorshipDocumentUrlStringConditionalRequired if businessStructure is SOLE_PROPRIETORSHIP. Upload via REST endpoint first
businessCategoryIdUUIDYesBusiness category ID (from getBusinessCategories query)
businessSubCategoryIdUUIDYesBusiness sub-category ID (from getBusinessCategories query)
natureOfBusinessStringNoBrief description of the nature of business
websiteUrlStringNoThe business website URL
businessAccountUsage[BusinessAccountUsage]ConditionalArray of usage types. Required if businessAccountUsageOther is not provided.
businessAccountUsageOtherStringConditionalRequired if businessAccountUsage is empty or not provided.
owners[BusinessOwner]YesList of business owners. At least one owner required. Primary owner must be a registered Fluz user.

BusinessLegalAddress

FieldTypeRequiredDescription
streetAddressLine1StringYesStreet address line 1
streetAddressLine2StringNoStreet address line 2
cityStringYesCity
stateStringYesState/province
postalCodeStringYesPostal code
countryStringYesCountry name (ISO 3166). Some countries are restricted for KYB registration, e.g. Russia or Iran

BusinessOwner

FieldTypeRequiredDescription
firstNameStringYesOwner's first name
lastNameStringYesOwner's last name
emailAddressStringYesOwner's email. Ensure you use the email address the user registered with on the Fluz platform.
titleStringYesOwner's title in the company
ownershipPercentageIntYesPercentage of ownership (0-100). Total ownership across all owners cannot exceed 100
lastFourSsnDigitsStringYesLast 4 digits of SSN
dobStringYesDate of birth in MM/DD/YYYY format (e.g., 02/28/1975)
phoneNumberStringYesPhone number: minimum 10 digits, digits only
addressOwnerAddressYesOwner's address (must be US-based, see OwnerAddress)

OwnerAddress

FieldTypeRequiredDescription
streetAddressLine1StringYesStreet address line 1
streetAddressLine2StringNoStreet address line 2
cityStringYesCity
stateStringYesMust be a valid US state name (e.g., California, New York, Texas)
postalCodeStringYesMust be 5 digits for US ZIP code format

BusinessStructure (enum)

  • LLC
  • CORPORATION
  • PARTNERSHIP
  • SOLE_PROPRIETORSHIP
  • COOP

BusinessAccountUsage (enum)

  • CORPORATE_GIFTING
  • CORPORATE_SPENDING_ADMIN
  • REWARDS_MAXIMIZER
  • GIFT_CARD_RESELLING
  • PURCHASE_GOODS_FOR_BUSINESS_USE
  • ONLINE_SELLER_RETAIL_PURCHASING

Response details

FieldTypeDescription
accountIdUUIDThe account ID of the newly created business
kybStatusStringThe KYB status of the business (initially PENDING)
successBooleanIndicates if the registration was successful (on error)
errorRegisterBusinessErrorError information if registration failed (on error)

RegisterBusinessError

FieldTypeDescription
messageStringBrief informational error message
codeStringPredefined 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

CodeNameDescription
BS-0001InvalidTaxIdThe tax ID must be in format XX-XXXXXXX (2 digits, hyphen, 7 digits)
BS-0002InvalidBusinessLegalAddressBusiness legal address is incorrect
BS-0003InvalidOwnerInformationOne or more owner information is incorrect
BS-0004InvalidBusinessAccountUsageSelected business account usage is not allowed
BS-0005InvalidBusinessStructureSelected business structure is not allowed
BS-0006InvalidBusinessCategoryEnsure 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-0007RegistrationNotAllowedWait until the last business finishes registration before starting a new one
AR-0001MissingArgumentsRequired argument is missing (see error message for details)
AR-0002InvalidArgumentsInvalid argument provided (see error message for details)
AU-0001UnsuccessfulRegistrationGeneral registration failure


Notes

  • If businessStructure is SOLE_PROPRIETORSHIP, upload the document via the REST endpoint POST https://transactional-graph.staging.fluzapp.com/api/v1/file-upload/sole-proprietorship-document (using form-data content type). Then, supply the generated URL in soleProprietorshipDocumentUrl
  • When specifying account usage, either businessAccountUsage or businessAccountUsageOther must 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.