---
title: "Create a Business Verification"
method: POST
path: "/business_verification/create"
tags: ["plaid"]
---

# Create a Business Verification

`POST /business_verification/create`

Create a new business verification to check a business's identity and risk profile.

## Request body

- BusinessVerificationCreateRequest — Request input for creating a business verification
  - `client_user_id` string, required — A unique ID that identifies the end user in your system. Either a `user_id` or the `client_user_id` must be provided. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
  - `business` BusinessVerificationCreateRequestBusiness, nullable — Business information provided in the verification request
    - `name` string — The name of the business. Must have at least one character and a maximum length of 500 characters.
    - `alternative_name` string, nullable — The name of the business. Must have at least one character and a maximum length of 500 characters.
    - `address` RequestBusinessAddress — Physical address of a business. Used for input requests.
      - `street` string, required — The primary street portion of an address. If an address is provided, this field will always be filled. A string with at least one non-whitespace alphabetical character, with a max length of 80 characters.
      - `street2` string, nullable — Extra street information, like an apartment or suite number. If provided, a string with at least one non-whitespace character, with a max length of 50 characters.
      - `city` string, required — City from the address. A string with at least one non-whitespace alphabetical character, with a max length of 100 characters.
      - `region` string, nullable — A subdivision code. "Subdivision" is a generic term for "state", "province", "prefecture", "zone", etc. For the list of valid codes, see [country subdivision codes](https://plaid.com/documents/country_subdivision_codes.json). Country prefixes are omitted, since they are inferred from the `country` field.
      - `postal_code` string, nullable — The postal code for the associated address. Between 2 and 10 alphanumeric characters. For US-based addresses this must be 5 numeric digits.
      - `country` string, required — Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form.
    - `website` string, uri — An 'http' or 'https' URL (must begin with either of those).
    - `phone_number` string — A phone number in E.164 format.
    - `email_address` string, email — A valid email address. Must not have leading or trailing spaces and address must be RFC compliant. For more information, see [RFC 3696](https://datatracker.ietf.org/doc/html/rfc3696).
  - `client_id` string — Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
  - `secret` string — Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.

## Response `200`

OK

- BusinessVerificationCreateResponse — A business verification represents a check of a business's identity and risk profile, including information collected about the business and results from third-party data providers.
  - `id` string, cognito_id, required — ID of the associated business verification.
  - `client_user_id` string, required — A unique ID that identifies the end user in your system. Either a `user_id` or the `client_user_id` must be provided. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
  - `created_at` string, date-time, required — An ISO8601 formatted timestamp.
  - `completed_at` string, date-time, nullable, required — An ISO8601 formatted timestamp.
  - `redacted_at` string, date-time, nullable, required — An ISO8601 formatted timestamp.
  - `status` 'active' | 'success' | 'failed', required — Status of the overall business verification
  - `search_terms` BusinessSearchTerms, required — The business information that was used to perform the verification search
    - `name` string, nullable, required — The name of the business. Must have at least one character and a maximum length of 500 characters.
    - `alternative_names` BusinessName[], required — Alternative business names that were submitted as search inputs.
    - `address` ResponseBusinessAddress, required — Physical address of a business. Used for response schemas.
      - `street` string, nullable, required — The primary street portion of an address. If an address is provided, this field will always be filled. A string with at least one non-whitespace alphabetical character, with a max length of 80 characters.
      - `street2` string, nullable, required — Extra street information, like an apartment or suite number. If provided, a string with at least one non-whitespace character, with a max length of 50 characters.
      - `city` string, nullable, required — City from the address. A string with at least one non-whitespace alphabetical character, with a max length of 100 characters.
      - `region` string, nullable, required — A subdivision code. "Subdivision" is a generic term for "state", "province", "prefecture", "zone", etc. For the list of valid codes, see [country subdivision codes](https://plaid.com/documents/country_subdivision_codes.json). Country prefixes are omitted, since they are inferred from the `country` field.
      - `postal_code` string, nullable, required — The postal code for the associated address. Between 2 and 10 alphanumeric characters. For US-based addresses this must be 5 numeric digits.
      - `country` string, required — Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form.
    - `website` string, uri, nullable, required — An 'http' or 'https' URL (must begin with either of those).
    - `phone_number` string, nullable, required — A phone number in E.164 format.
    - `email_address` string, email, nullable, required — A valid email address. Must not have leading or trailing spaces and address must be RFC compliant. For more information, see [RFC 3696](https://datatracker.ietf.org/doc/html/rfc3696).
  - `kyb_check` BusinessKYBCheck, nullable, required — Results from the KYB (Know Your Business) identity verification check
    - `status` 'active' | 'success' | 'failed', required — Status of the KYB (Know Your Business) identity assessment check
    - `score` integer, required — A score from 0 to 100 indicating the confidence in KYB (Know Your Business) identity assessment for the business
    - `name` BusinessFieldMatchSummary, required — Summary of how a specific business field matched against data provider results
      - `summary` 'match' | 'partial_match' | 'no_match' | 'no_data' | 'no_input', required — An enum indicating the match type between data provided by user and data checked against an external data source. `match` indicates that the provided input data was a strong match against external data. `partial_match` indicates the data approximately matched against external data. For example, "Knope" vs. "Knope-Wyatt" for last name. `no_match` indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data. `no_data` indicates that Plaid was unable to find external data to compare against the provided input data. `no_input` indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
    - `address` BusinessFieldMatchSummary, required — Summary of how a specific business field matched against data provider results
      - `summary` 'match' | 'partial_match' | 'no_match' | 'no_data' | 'no_input', required — An enum indicating the match type between data provided by user and data checked against an external data source. `match` indicates that the provided input data was a strong match against external data. `partial_match` indicates the data approximately matched against external data. For example, "Knope" vs. "Knope-Wyatt" for last name. `no_match` indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data. `no_data` indicates that Plaid was unable to find external data to compare against the provided input data. `no_input` indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
    - `website` BusinessFieldMatchSummary, required — Summary of how a specific business field matched against data provider results
      - `summary` 'match' | 'partial_match' | 'no_match' | 'no_data' | 'no_input', required — An enum indicating the match type between data provided by user and data checked against an external data source. `match` indicates that the provided input data was a strong match against external data. `partial_match` indicates the data approximately matched against external data. For example, "Knope" vs. "Knope-Wyatt" for last name. `no_match` indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data. `no_data` indicates that Plaid was unable to find external data to compare against the provided input data. `no_input` indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
    - `match_details` BusinessKYBMatchDetails, nullable, required — Detailed information about the business from data provider results
      - `names` ProviderBusinessName[], required — Names associated with the business.
        - `is_primary` boolean, required — Indicates whether this is the primary name for the business.
        - `name` string, nullable, required — The name of the business. Must have at least one character and a maximum length of 500 characters.
      - `entity_type` 'sole_proprietorship' | 'general_partnership' | 'llc' | 'llp' | 'lllp' | 'lp' | 'c_corporation' | 's_corporation' | 'b_corporation' | 'nonprofit' | 'cooperative' | 'trust' | 'professional_association' | 'professional_corporation' | 'trade_name' | 'bank' | 'credit_union' | 'insurance' | 'other' | 'unknown', nullable, required — The legal structure or type of business entity
      - `addresses` ProviderBusinessAddress[], required — Addresses associated with the business
        - `street` string, nullable, required — The primary street portion of an address. If an address is provided, this field will always be filled. A string with at least one non-whitespace alphabetical character, with a max length of 80 characters.
        - `street2` string, nullable, required — Extra street information, like an apartment or suite number. If provided, a string with at least one non-whitespace character, with a max length of 50 characters.
        - `city` string, nullable, required — City from the address. A string with at least one non-whitespace alphabetical character, with a max length of 100 characters.
        - `region` string, nullable, required — A subdivision code. "Subdivision" is a generic term for "state", "province", "prefecture", "zone", etc. For the list of valid codes, see [country subdivision codes](https://plaid.com/documents/country_subdivision_codes.json). Country prefixes are omitted, since they are inferred from the `country` field.
        - `postal_code` string, nullable, required — The postal code for the associated address. Between 2 and 10 alphanumeric characters. For US-based addresses this must be 5 numeric digits.
        - `country` string, required — Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form.
        - `is_primary` boolean, required — Whether this is the primary address for the business
      - `phone_numbers` BusinessPhoneNumber[], required — Phone numbers associated with the business
        - `number` string, nullable, required — Phone number in E.164 format
      - `email_addresses` BusinessEmailAddress[], required — Email addresses associated with the business
        - `email_address` string, email, nullable, required — Email address of the business
      - `websites` BusinessWebsite[], required — Websites associated with the business
        - `url` string, uri, nullable, required — URL of the business website
      - `formation_date` string, date, nullable, required — A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
  - `risk_check` BusinessRiskCheck, nullable, required — Results from the business risk assessment check
    - `status` 'active' | 'success' | 'failed', required — Status of the business risk assessment check
    - `score` integer, required — A score from 0 to 100 indicating the risk assessment for the business
    - `industry_prediction` BusinessIndustryPredictionNullable, nullable, required — The predicted industry classification for the business, based on digital presence assessments.
      - `code` integer, required — NAICS code for the predicted business industry.
      - `title` string, required — The business industry classification of the predicted NAICS code.
  - `digital_presence_check` BusinessDigitalPresenceCheck, nullable, required — Results from the digital presence check.
    - `status` 'active' | 'success' | 'failed' | 'not_applicable', required — Status of the digital presence check
    - `score` integer, required — A score from 0 to 100 indicating digital presence confidence.
    - `address` BusinessFieldMatchSummary, required — Summary of how a specific business field matched against data provider results
      - `summary` 'match' | 'partial_match' | 'no_match' | 'no_data' | 'no_input', required — An enum indicating the match type between data provided by user and data checked against an external data source. `match` indicates that the provided input data was a strong match against external data. `partial_match` indicates the data approximately matched against external data. For example, "Knope" vs. "Knope-Wyatt" for last name. `no_match` indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data. `no_data` indicates that Plaid was unable to find external data to compare against the provided input data. `no_input` indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
    - `phone_number` BusinessFieldMatchSummary, required — Summary of how a specific business field matched against data provider results
      - `summary` 'match' | 'partial_match' | 'no_match' | 'no_data' | 'no_input', required — An enum indicating the match type between data provided by user and data checked against an external data source. `match` indicates that the provided input data was a strong match against external data. `partial_match` indicates the data approximately matched against external data. For example, "Knope" vs. "Knope-Wyatt" for last name. `no_match` indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data. `no_data` indicates that Plaid was unable to find external data to compare against the provided input data. `no_input` indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
    - `email_address` BusinessFieldMatchSummary, required — Summary of how a specific business field matched against data provider results
      - `summary` 'match' | 'partial_match' | 'no_match' | 'no_data' | 'no_input', required — An enum indicating the match type between data provided by user and data checked against an external data source. `match` indicates that the provided input data was a strong match against external data. `partial_match` indicates the data approximately matched against external data. For example, "Knope" vs. "Knope-Wyatt" for last name. `no_match` indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data. `no_data` indicates that Plaid was unable to find external data to compare against the provided input data. `no_input` indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
    - `website` BusinessFieldMatchSummary, required — Summary of how a specific business field matched against data provider results
      - `summary` 'match' | 'partial_match' | 'no_match' | 'no_data' | 'no_input', required — An enum indicating the match type between data provided by user and data checked against an external data source. `match` indicates that the provided input data was a strong match against external data. `partial_match` indicates the data approximately matched against external data. For example, "Knope" vs. "Knope-Wyatt" for last name. `no_match` indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data. `no_data` indicates that Plaid was unable to find external data to compare against the provided input data. `no_input` indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
    - `website_analysis` BusinessWebsiteAnalysis, nullable, required — Website analysis details if a website is found for the provided website in the search terms.
      - `is_parked` 'yes' | 'no' | 'no_data', required — Tri-state boolean status, where `no_data` indicates the check could not determine a value.
      - `email_is_deliverable` 'yes' | 'no' | 'no_data', required — Tri-state boolean status, where `no_data` indicates the check could not determine a value.
      - `website_build_status` 'coming_soon' | 'active' | 'inactive', required — Build status of the business website.
      - `whois_record` BusinessWhoisRecord, required — WHOIS metadata for the business website domain.
        - `domain_created_at` string, date-time, nullable, required — An ISO8601 formatted timestamp.
        - `domain_updated_at` string, date-time, nullable, required — An ISO8601 formatted timestamp.
        - `domain_expires_at` string, date-time, nullable, required — An ISO8601 formatted timestamp.
        - `registrar` string, nullable, required — Domain registrar.
      - `ssl` BusinessWebsiteSSL, required — SSL status for the business website.
        - `is_valid` 'yes' | 'no' | 'no_data', required — Tri-state boolean status, where `no_data` indicates the check could not determine a value.
  - `request_id` string, required — A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
  - `shareable_url` string, nullable, required — A shareable URL that can be sent directly to the user to complete verification

---

[API](https://skmtc.net/plaid/apis/the-plaid-api.md) · [All operations](https://skmtc.net/plaid/apis/the-plaid-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/plaid/the-plaid-api/versions/64c4514ea59b/schema)
