> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.middesk.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.middesk.com/_mcp/server.

# Quickstart—Verify a business

> Begin using Middesk by verifying a business and reviewing the verification results.

Learn how to use the Middesk API to quickly perform business identity verification.

#### Verify a business

A Business is the central object in the Middesk API. When you create a Business in Middesk, you automatically trigger the verification process.

In a production integration, first collect a few key business attributes from your user through your onboarding flow. Then send this data as part of a [Create a Business](/api-reference/business-verification/businesses/create-a-business) API call.

Only `name` and `addresses` parameters are required, but in real-world applications, provide Middesk with more data for a more detailed verification.

To try it out, use:

* Your sandbox API key, available in the [Dashboard](https://app.middesk.com/settings/credentials)
* [Sample data](/environments#sandbox-trigger-values)

For example, if you use a `name` value of **Corporation**, Middesk reports the business as being a registered corp. Use a `name` value of **Unregistered Business** and Middesk reports the business having no associated registrations.

For `addresses`, provide **223 Grand St., New York, NY 10013** for a correct address match, or **423 Grand St., New York, NY 10013** for an approximate address match.

```curl
curl -X POST https://api-sandbox.middesk.com/v1/businesses \
  -u <YOUR_SANDBOX_API_KEY>: \
  -H "Accept: application/json" \
  -d name=Corporation \
  -d addresses\[0\]\[address_line1\]=223+Grand+St. \
  -d addresses\[0\]\[city\]=new+york \
  -d addresses\[0\]\[state\]=NY \
  -d addresses\[0\]\[postal_code\]=10013
```

For a successful request, Middesk returns a 201 status code along with a JSON body containing the new Business object.

> **Note**
>
> The 201 response only indicates a successful API call, **not** that the business was verified.

#### Find the verification results

For a test business verification, the results come back quickly--probably by the time you've read to this point! View the results using:

* The Middesk [Dashboard](https://app.middesk.com/)
* A [Retrieve a Business](/api-reference/business-verification/businesses/retrieve-a-business) API call
* A webhook endpoint

As the Business was created in the sandbox environment, make sure you make a sandbox API call or look at sandbox data in the Dashboard.

**`Retrieve a business`**

```curl title="Retrieve a business"
curl -X GET https://api-sandbox.middesk.com/v1/businesses/<BUSINESS_ID> \
  -u <YOUR_SANDBOX_API_KEY>: \
  -H "Accept: application/json"
```

> **Tip**
>
> The Middesk API is asynchronous in nature. While most requests can be automatically resolved and have results in a few seconds, some cases require a review by an internal analyst team, which takes longer. Additional uses of Middesk may require watching for changes in registrations or business activity. For these reasons, set up [webhooks](/build/webhooks) as part of your Middesk workflow.

#### Review the verification results

The code in Step 1 creates a Business object in your account, and triggers a Middesk verification review. After Middesk completes its verification process, Middesk updates the Business object with the results.

The last step is for you to make a decision about this business based upon Middesk's report.

However you examine the updated Business object--using the Dashboard, a retrieve API call, or your webhook endpoint--pay attention to:

* `data.object.id` is the Middesk `business_id`. Middesk highly recommends storing the `business_id` on your side as it's required when peforming subsequent requests. It is also useful for debugging or reviewing activity.
* `data.object.status` reflects the current status of the Business in the [Middesk lifecycle](/lifecycle-of-business).
* `data.object.review.tasks` stores high-level insights based on each business attribute. Most Middesk customers render a KYB decision based on the [review tasks](/review-insights).

Here is an excerpt of what the `data.object.review.tasks` array might look like if a business name, address, person, and TIN were submitted for a given business.

**`Review tasks example`**

```json title="Review tasks example"
"tasks": [
    {
      "category": "name",
      "key": "name",
      "label": "Business Name",
      "message": "Match identified to the submitted Business Name",
      "name": "name",
      "status": "success",
      "sub_label": "Verified",
      "sources": [
        {
          "id": "cba235c3-be54-44f9-bfeb-4f474d6f7e33",
          "type": "name",
          "metadata": {
            "name": "Middesk, Inc",
            "submitted": true
          }
        }
      ]
    },
    {
      "category": "address",
      "key": "address_verification",
      "label": "Office Address",
      "message": "Match identified to the submitted Office Address",
      "name": "address",
      "status": "success",
      "sub_label": "Verified",
      "sources": [
        {
          "id": "afa00984-1d0d-4281-806c-5aadd581d29b",
          "type": "address",
          "metadata": {
            "city": "San Francisco",
            "state": "CA",
            "submitted": true,
            "postal_code": "94105-3459",
            "full_address": "85 2nd St, San Francisco, CA 94105-3459",
            "address_line1": "85 2nd St",
            "address_line2": null
          }
        }
      ]
    },
    {
      "category": "watchlist",
      "key": "watchlist",
      "label": "Watchlist",
      "message": "No Watchlist hits were identified",
      "name": "watchlist",
      "status": "success",
      "sub_label": "No Hits",
      "sources": []
    }
  ]
```

More succinctly put, the JSON results are:

| Attribute        | Status    | Sublabel   |
| :--------------- | :-------- | :--------- |
| Business name    | `success` | `Verified` |
| Business address | `success` | `Verified` |
| Watchlist        | `success` | `No Hits`  |

Depending upon your compliance needs and risk tolerance, you may approve this business to use your platform, or reach back out to double-check their TIN (as example responses).

Automate how you handle the verification results in your integration using [rulesets or Policies](/use-rulesets-policies).

## Next steps

#### [Set up webhooks](/build/webhooks)

Receive real-time notifications when business verification status changes.

#### [Understand the Business lifecycle](/lifecycle-of-business)

Learn how a Business moves through statuses from creation to approval.

#### [Automate decisions with Policies](/use-rulesets-policies)

Configure rules that approve or reject businesses based on verification results.

> **Get a demo**
>
> Contact your account manager or [contact sales](https://www.middesk.com/contact-sales) to inquire about access.