> For the complete documentation index, see [llms.txt](https://legacy-docs.usesmileid.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://legacy-docs.usesmileid.com/integration-options/server-to-server/python/products/business-verification.md).

# Business Verification

Required Class: **ID Api Class or Business Verification Class**

## Running Business Verification on Python

1. Get your Smile ID `Partner ID`
2. Get your API Key (take note of the environment you are running the job in)
3. Get the business information from your users
4. Submit the Job to Smile ID
5. Interpret your results

### Get your Partner ID

You can find your Partner ID in the menu list when logged into [the portal](https://portal.usesmileid.com/partner/dashboard).

![](/files/5bAEvct4lkb2MvYp3h3I)

### Get your API Key

Your api key is in the developer section of [the portal.](https://portal.usesmileid.com/api-key)

* Click on the **Generate New API Key** button
* Copy your api key (ensure you are in the right environment)

![Generate a new API Key](/files/5de0FSBPKuA9KoRJZ0Gj)

![Copy your API Key](/files/GUr0iFqBeWmWdAmCfph2)

### Get the business information from your users

To submit a Business Verification KYC job you need the business information of your business. Depending on the id type you are attempting to query, the required information varies. For the comprehensive list of required information for each id type, check the page dedicated to each id type in the [KYB Supported Countries](/supported-id-types/for-individuals-kyc/backed-by-id-authority/supported-countries.md) section of the docs.

### Submit the Job to Smile ID

You can copy the sample code below and edit with your partner and job details.

```python
from smile_id_core.BusinessVerification import BusinessVerification
from smile_id_core import ServerError

# Initialize Values
partner_id = "<Your partner ID>"; # login to the Smile ID portal to view your partner id
api_key = "<Your API key>"; # copy your API key from the Smile ID portal
sid_server = <0 or 1>; # Use 0 for the sandbox server, use 1 for production server

connection = BusinessVerification(partner_id, api_key, sid_server)

# Create required tracking parameters
partner_params = {
    "user_id": "<put your unique ID for the user here>",
    "job_id": "<put your unique job ID here>",
    "job_type": 7,
}

# Create ID info
id_info = {
    "country": "<2-letter country code>",
    # <BUSINESS_REGISTRATION | TAX_INFORMATION>
    "id_type": "<supported ID Type>",
    "id_number": "<id number>",  # <valid id number>
    "business_type": "<supported business type>",  # bn | co | it NOTE: This is only required for
    # `BUSINESS_REGISTRATION` in Nigeria (NG)
    "postal_address": "<4 or 5 digit postal address>",  # NOTE: This is only required for
    # `BUSINESS_REGISTRATION` in Kenya (KE)
    "postal_code": "<5 digit postal code>",  # NOTE: This is only required for
    # `BUSINESS_REGISTRATION` in Kenya (KE)
}

# Submit the Job
try:
    response = connection.submit_job(partner_params, id_info_params)
except ValueError:
    # some of your params entered for a job are not valid or missing
    print("handle ValueError")
except ServerError:
    # Server returned an error
    print("handle ServerError")
```

**Example Response Body**

Your response will return a JSON String containing the below:

```json
{
  "SmileJobID": "0000020855",
  "PartnerParams": {
    "job_id": "job-40fcd3aa-68ad-4b03-84c3-3a59c7a4ebcd",
    "user_id": "user-f193ac26-0ff7-4f8a-a841-4a79cd7a311a",
    "job_type": 7
  },
  "ResultText": "Business Verified",
  "ResultCode": "1012",
  "Actions": {
    "Verify_Business": "Verified",
    "Return_Business_Info": "Returned"
  },
  "company_information": {
    "company_type": "PRIVATE_COMPANY_LIMITED_BY_SHARES",
    "country": "Nigeria",
    "address": "22, Ojora Close, Victoria Island, Lagos",
    "registration_number": "0000000",
    "search_number": "0000000",
    "authorized_shared_capital": "10000000",
    "industry": "Technology Solutions Company",
    "tax_id": "N/A",
    "registration_date": "2016-01-28T16:06:22.003+00:00",
    "phone": "08000000000",
    "legal_name": "SMILE IDENTITY NIGERIA LIMITED",
    "state": "LAGOS",
    "email": "smile@usesmileid.com",
    "status": "ACTIVE"
  },
  "fiduciaries": [
    {
      "name": "Company X",
      "fiduciary_type": "SECRETARY_COMPANY",
      "address": "22, Ojora Close, Victoria Island, Lagos",
      "registration_number": "000000",
      "status": "N/A"
    }
  ],
  "proprietors": [],
  "documents": { "search_certificate": "" },
  "directors": [
    {
      "shareholdings": "100000",
      "id_number": "A000000",
      "address": "22, Ojora Close, Victoria Island, Lagos",
      "occupation": "CEO",
      "gender": "MALE",
      "nationality": "Nigerian",
      "date_of_birth": "2000-09-20",
      "name": "Joe Doe Leo",
      "id_type": "Passport",
      "phone_number": "0123456789"
    }
  ]
}
```

### Interpret your Results

You can read more about result codes and responses in the [Business Verification](/products/for-businesses-kyb/business-verification.md) section of the docs.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://legacy-docs.usesmileid.com/integration-options/server-to-server/python/products/business-verification.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
