> ## Documentation Index
> Fetch the complete documentation index at: https://docs.busha.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a Business Customer

> Set up business customer accounts. Manage company profiles and business verification.

This guide provides a technical walkthrough on programmatically creating a business customer account within your Busha Business account using the Busha API. By automating customer creation, you can streamline your onboarding processes and prepare to perform transactions on behalf of your customers.

<Tip>
  **What You'll Achieve:**

  1. Understand the basic structure for creating a business customer.
  2. Learn how to structure API requests for the business customer type.
  3. Successfully create and verify business customer accounts programmatically.
</Tip>

## Prerequisites

Before you begin, ensure you have:

* A Busha Business Account and Secret API Key (from the [Quick Start Tutorial](../getting-started/quick-start)).

* An understanding of API Environments (Sandbox vs. Production) and their base URLs (from the [Make Your First Request Guide](../getting-started/make-first-request)).

## Creating a Business Customer Account

<Steps>
  <Step title="Understand Customer Creation Parameters">
    The essential parameters for creating a business customer are:

    <table style={{ width: "100%", borderCollapse: "collapse" }}>
      <thead>
        <tr>
          <th style={{ width: "25%", textAlign: "left", padding: "12px" }}>
            Parameter
          </th>

          <th style={{ width: "15%", textAlign: "left", padding: "12px" }}>Type</th>

          <th style={{ width: "25%", textAlign: "left", padding: "12px" }}>
            Example Value
          </th>

          <th style={{ width: "35%", textAlign: "left", padding: "12px" }}>
            Description
          </th>
        </tr>
      </thead>

      <tbody>
        <tr>
          <td style={{ padding: "12px" }}>
            <code>email</code>
          </td>

          <td style={{ padding: "12px" }}>string</td>

          <td style={{ padding: "12px" }}>
            <code>business​@​gmail.com</code>
          </td>

          <td style={{ padding: "12px" }}>
            The primary email address for the business contact.
          </td>
        </tr>

        <tr>
          <td style={{ padding: "12px" }}>
            <code>has\_accepted\_terms</code>
          </td>

          <td style={{ padding: "12px" }}>boolean</td>
          <td style={{ padding: "12px" }}>true</td>

          <td style={{ padding: "12px" }}>
            Indicates if the terms and conditions have been accepted.
          </td>
        </tr>

        <tr>
          <td style={{ padding: "12px" }}>
            <code>type</code>
          </td>

          <td style={{ padding: "12px" }}>string</td>
          <td style={{ padding: "12px" }}>business</td>
          <td style={{ padding: "12px" }}>The type of customer being created.</td>
        </tr>

        <tr>
          <td style={{ padding: "12px" }}>
            <code>country\_id</code>
          </td>

          <td style={{ padding: "12px" }}>string</td>
          <td style={{ padding: "12px" }}>NG</td>

          <td style={{ padding: "12px" }}>
            The ISO 3166-1 alpha-2 country code of the business's operation.
          </td>
        </tr>

        <tr>
          <td style={{ padding: "12px" }}>
            <code>phone</code>
          </td>

          <td style={{ padding: "12px" }}>string</td>
          <td style={{ padding: "12px" }}>+234 8012345678</td>

          <td style={{ padding: "12px" }}>
            The business's primary contact phone number, including country code.
          </td>
        </tr>

        <tr>
          <td style={{ padding: "12px" }}>
            <code>birth\_date</code>
          </td>

          <td style={{ padding: "12px" }}>string</td>
          <td style={{ padding: "12px" }}>01-01-2015</td>

          <td style={{ padding: "12px" }}>
            The incorporation date or a key date associated with the business.
          </td>
        </tr>

        <tr>
          <td style={{ padding: "12px" }}>
            <code>address</code>
          </td>

          <td style={{ padding: "12px" }}>object</td>
          <td style={{ padding: "12px" }}>See details below</td>

          <td style={{ padding: "12px" }}>
            The business's physical address details.
          </td>
        </tr>

        <tr>
          <td style={{ padding: "12px" }}>
            <code>business\_name</code>
          </td>

          <td style={{ padding: "12px" }}>string</td>
          <td style={{ padding: "12px" }}>ABC Corporation</td>

          <td style={{ padding: "12px" }}>
            The legal registered name of the business.
          </td>
        </tr>

        <tr>
          <td style={{ padding: "12px" }}>
            <code>business\_industry</code>
          </td>

          <td style={{ padding: "12px" }}>string</td>
          <td style={{ padding: "12px" }}>BIN\_C4UvTYR5V8jsOx5LmwQ</td>

          <td style={{ padding: "12px" }}>
            A unique identifier representing the business's industry.
          </td>
        </tr>

        <tr>
          <td style={{ padding: "12px" }}>
            <code>business\_incorporation\_date</code>
          </td>

          <td style={{ padding: "12px" }}>string</td>
          <td style={{ padding: "12px" }}>2015-06-15</td>

          <td style={{ padding: "12px" }}>
            The date on which the business was officially incorporated.
          </td>
        </tr>
      </tbody>
    </table>

    For `business_industry`, the list of supported sectors and their unique identifier can be retrieved from [Supported Business Industries](/guides/reference/supported-industries).

    **Address Object:**

    The `address` field requires:

    ```json theme={null}
    "address": {
      "country_id": "NG",
      "address_line_1": "123 Business Avenue",
      "city": "Lagos",
      "state": "Lagos"
    }
    ```

    **Know Your Business (KYB)**

    For full verification, business customers require additional sections:

    1. **Documents** - Business registration documents
    2. **Business Owners** - Information about directors and beneficial owners
    3. **Business Transaction** - Expected transaction patterns
    4. **Business Registration** - Legal and regulatory information

    <Note>
      Files uploaded for KYB must be in Base64 format and have a file size less than
      4MB.
    </Note>

    **Business Owners:**

    ```json theme={null}
    "business_owners": [
      {
        "first_name": "John",
        "last_name": "Doe",
        "role": ["director"],
        "percentage_ownership": 100,
        "is_pep": false,
        "nationality": "NG",
        "bvn": "12345678901"
      }
    ]
    ```

    **Business Transaction:**

    ```json theme={null}
    "business_transaction": {
      "purpose": "international trade",
      "monthly_transaction_value": "above_1m_usd",
      "monthly_transaction_count": "100_to_200",
      "client_transaction_status": "self-owned",
      "api_access_needed": true,
      "api_integration_url": "https://yourbusiness.com"
    }
    ```

    **Business Registration:**

    ```json theme={null}
    "business_registration": {
      "business_type": "type_registered_company",
      "business_structure": "limited_liability_company",
      "business_regulation_status": "regulated",
      "registration_number": "RC1234567",
      "tax_identification_number": "TIN1234567",
      "corporate_group_status": "standalone_company",
      "exchange_listing_status": "not_listed_on_exchange",
      "license_number": "LIC123456"
    }
    ```

    **Documents:**

    ```json theme={null}
    "documents": [
      {
        "purposes": ["certificate_of_incorporation"],
        "file": "{{base64 string}}"
      }
    ]
    ```

    For a full list of acceptable documents, please refer to the [Compliance Guide](/overview/compliance).
  </Step>

  <Step title="Create a Business Customer (Without KYB)">
    Business customers represent legal entities that utilize your offerings. Start with basic information and add KYB details later.

    To create a business customer without KYB documents:

    1. Open your terminal or command prompt.
    2. Use the `POST` request below to the `/v1/customers` endpoint.
    3. Replace `YOUR_BASE_URL` with your chosen environment's URL and `{YOUR_SECRET_KEY}` with your actual key.

    ```shell theme={null}
        $ curl -i -X POST https://YOUR_BASE_URL/v1/customers \
          -H 'Authorization: Bearer {YOUR_SECRET_KEY}' \
          -H 'Content-Type: application/json' \
          -d '{
            "email": "business.basic@gmail.com",
            "has_accepted_terms": true,
            "type": "business",
            "country_id": "NG",
            "phone": "+234 8012345678",
            "birth_date": "01-01-2015",
            "address": {
              "country_id": "NG",
              "address_line_1": "123 Business Avenue",
              "city": "Lagos",
              "state": "Lagos"
            },
            "business_name": "Basic Corp",
            "business_industry": "BIN_C4UvTYR5V8jsOx5LmwQ",
            "business_incorporation_date": "2015-06-15"
          }'
    ```

    **Expected Response:**

    A successful response will return a Customer object with `status: "inactive"` until KYB is completed.

    ```json theme={null}
        {
          "status": "success",
          "message": "Created customer successfully",
          "data": {
            "address": {
              "address_line_1": "123 Business Avenue",
              "city": "Lagos",
              "country_id": "NG",
              "state": "Lagos"
            },
            "business_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
            "business_incorporation_date": "2015-06-15",
            "business_industry": "BIN_C4UvTYR5V8jsOx5LmwQ",
            "business_name": "Basic Corp",
            "country_id": "NG",
            "created_at": "2026-01-27T13:00:16.152775472Z",
            "deposit": true,
            "display_currency": "NGN",
            "email": "business.basic@gmail.com",
            "has_accepted_terms_of_service": true,
            "id": "CUS_B912WgfXH0I4U",
            "level": "0",
            "payout": true,
            "phone": "+234 8012345678",
            "status": "inactive",
            "type": "business",
            "updated_at": "2026-01-27T13:00:16.152775472Z"
          }
        }
    ```

    <Info>
      The default status of a customer is `inactive` until they complete their Know-Your-Business (KYB) process.
    </Info>
  </Step>

  <Step title="Create a Business Customer (With Complete KYB)">
    Create a fully verified business customer by including all required KYB sections at creation.

    To create a business customer with complete KYB:

    1. Open your terminal or command prompt.
    2. Use the `POST` request below to the `/v1/customers` endpoint.
    3. Replace `YOUR_BASE_URL` with your chosen environment's URL and `{YOUR_SECRET_KEY}` with your actual key.

    ```shell theme={null}
        $ curl -i -X POST https://YOUR_BASE_URL/v1/customers \
          -H 'Authorization: Bearer {YOUR_SECRET_KEY}' \
          -H 'Content-Type: application/json' \
          -d '{
            "email": "abccorp.verified@gmail.com",
            "has_accepted_terms": true,
            "type": "business",
            "country_id": "NG",
            "phone": "+234 8012345678",
            "birth_date": "01-01-2015",
            "address": {
              "country_id": "NG",
              "address_line_1": "123 Business Avenue",
              "city": "Lagos",
              "state": "Lagos"
            },
            "business_name": "ABC Corporation",
            "business_industry": "BIN_C4UvTYR5V8jsOx5LmwQ",
            "business_incorporation_date": "2015-06-15",
            "documents": [
              {
                "purposes": ["certificate_of_incorporation"],
                "file": "{{base64 encoded certificate}}"
              }
            ],
            "business_owners": [
              {
                "first_name": "Abdulazeez",
                "last_name": "Abdulazeez",
                "role": ["director"],
                "percentage_ownership": 100,
                "is_pep": false,
                "nationality": "NG",
                "bvn": "12345678901"
              }
            ],
            "business_transaction": {
              "purpose": "international trade",
              "monthly_transaction_value": "above_1m_usd",
              "monthly_transaction_count": "100_to_200",
              "client_transaction_status": "self-owned",
              "api_access_needed": true,
              "api_integration_url": "https://abccorp.com"
            },
            "business_registration": {
              "business_type": "type_registered_company",
              "business_structure": "limited_liability_company",
              "business_regulation_status": "regulated",
              "registration_number": "RC8828228",
              "tax_identification_number": "2277711991",
              "corporate_group_status": "standalone_company",
              "exchange_listing_status": "not_listed_on_exchange",
              "license_number": "8383838"
            }
          }'
    ```

    **Expected Response:**

    ```json theme={null}
        {
          "status": "success",
          "message": "Created customer successfully",
          "data": {
            "address": {
              "address_line_1": "123 Business Avenue",
              "city": "Lagos",
              "country_id": "NG",
              "state": "Lagos"
            },
            "business_id": "BUS_CQr0jPzGGzmn1uW5W7OVs",
            "business_incorporation_date": "2015-06-15",
            "business_industry": "BIN_C4UvTYR5V8jsOx5LmwQ",
            "business_name": "ABC Corporation",
            "country_id": "NG",
            "created_at": "2026-01-27T13:00:16.152775472Z",
            "deposit": true,
            "display_currency": "NGN",
            "email": "abccorp.verified@gmail.com",
            "has_accepted_terms_of_service": true,
            "id": "CUS_BstLqfzSrdQEd",
            "level": "0",
            "payout": true,
            "phone": "+234 8012345678",
            "status": "inactive",
            "type": "business",
            "updated_at": "2026-01-27T13:00:16.152775472Z"
          }
        }
    ```
  </Step>

  <Step title="Verify the Business Customer">
    After creating a customer with complete KYB information, verify them to activate their account.

    To verify a business customer:

    1. Open your terminal or command prompt.
    2. Use the `POST` request below to the `/v1/customers/{customer_id}/verify` endpoint.
    3. Replace `{customer_id}` with the customer ID from the previous response.
    4. Replace `YOUR_BASE_URL` with your chosen environment's URL and `{YOUR_SECRET_KEY}` with your actual key.

    ```shell theme={null}
        $ curl -i -X POST https://YOUR_BASE_URL/v1/customers/CUS_BstLqfzSrdQEd/verify \
          -H 'Authorization: Bearer {YOUR_SECRET_KEY}'
    ```

    **Expected Response:**

    A successful verification will return:

    ```json theme={null}
        {
          "status": "success",
          "message": "Customer verified successfully"
        }
    ```

    <Note>
      After verification, check the customer status by retrieving their details. The status will change from `inactive` to `in_review` or `active`.
    </Note>

    **Common Errors:**

    * **missing\_section (Owners):** Business owners section is incomplete
    * **missing\_section (Transaction):** Transaction information is missing
    * **missing\_documents:** Required KYB documents are not uploaded

    If you receive a `missing_section` error, update the customer with the required information using the `PUT /v1/customers/{customer_id}` endpoint, then retry verification.
  </Step>
</Steps>

## Complete Example: Create and Verify Business Customer

Here's a complete workflow to create and verify a business customer in one go:

**Step 1: Create customer with complete KYB**

```shell theme={null}
curl -X POST https://api.sandbox.busha.so/v1/customers \
  -H 'Authorization: Bearer YOUR_SECRET_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "email": "verified.business@gmail.com",
    "has_accepted_terms": true,
    "type": "business",
    "country_id": "NG",
    "phone": "+234 8012345678",
    "birth_date": "01-01-2015",
    "address": {
      "country_id": "NG",
      "address_line_1": "456 Corporate Plaza",
      "city": "Lagos",
      "state": "Lagos"
    },
    "business_name": "Verified Corp Ltd",
    "business_industry": "BIN_C4UvTYR5V8jsOx5LmwQ",
    "business_incorporation_date": "2015-06-15",
    "documents": [
      {
        "purposes": ["certificate_of_incorporation"],
        "file": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg=="
      }
    ],
    "business_owners": [
      {
        "first_name": "Jane",
        "last_name": "Director",
        "role": ["director"],
        "percentage_ownership": 100,
        "is_pep": false,
        "nationality": "NG",
        "bvn": "12345678901"
      }
    ],
    "business_transaction": {
      "purpose": "e-commerce",
      "monthly_transaction_value": "above_1m_usd",
      "monthly_transaction_count": "100_to_200",
      "client_transaction_status": "self-owned",
      "api_access_needed": true,
      "api_integration_url": "https://verifiedcorp.com"
    },
    "business_registration": {
      "business_type": "type_registered_company",
      "business_structure": "limited_liability_company",
      "business_regulation_status": "regulated",
      "registration_number": "RC9999999",
      "tax_identification_number": "TIN9999999",
      "corporate_group_status": "standalone_company",
      "exchange_listing_status": "not_listed_on_exchange",
      "license_number": "LIC999999"
    }
  }'
```

**Step 2: Verify the customer**

```shell theme={null}
curl -X POST https://api.sandbox.busha.so/v1/customers/CUS_xxx/verify \
  -H 'Authorization: Bearer YOUR_SECRET_KEY'
```

**Step 3: Check customer status**

```shell theme={null}
curl -X GET https://api.sandbox.busha.so/v1/customers/CUS_xxx \
  -H 'Authorization: Bearer YOUR_SECRET_KEY'
```

Expected status: `"status": "in_review"` or `"status": "active"`

***

## Troubleshooting

* **400 Bad Request / 422 Unprocessable Entity:** Review your request body to ensure all required fields are present and correctly formatted for the specified type (individual or business).
* **401 Unauthorized:** Verify that your Secret API Key is correct and included in the header.
* **Email validation error:** Use real email domains like `@gmail.com` instead of generic domains like `@example.com`.
* **missing\_section errors during verification:** Ensure all required sections (owners, transaction, registration) are included before calling verify.

## What's Next?

Now that you can programmatically create and verify business customers, you can proceed to manage them and perform transactions on their behalf:

* [How to Create an Individual Customer](/guides/customers/create-individual): Learn how to create an individual customer in your Busha business account.
* [How to Verify Customer's Identity (KYC/KYB)](/guides/customers/verify-identity): Learn more about the verification process and required documents.
* [How to Initiate Transactions on Behalf of a Customer](/guides/customers/transactions-on-behalf): Understand how to use the `customer_id` to perform operations for your customers.
