---
title: "Create a Customer"
method: POST
path: "/customers"
tags: ["Customers"]
---

# Create a Customer

`POST /customers`

Creates a customer object to easily track and store documents.

## Request body

- CustomerCreateRequest
  - `name` string, required — A unique name that was given to the customer by you.
  - `approved` boolean — Set the value true if you have approved the customer, false if you have rejected the customer. The default is null.
  - `review` Review — Represents a manual review decision.
    - `status` 'ACCEPTED' | 'REJECTED' | 'REQUIRES_REVIEW' — The new status of the review decision.
    - `reason` 'FRAUD' | 'CREDIT_RISK' | 'OTHER', nullable — The reason for rejection. This field is only supported when `status` is `REJECTED`. `null` when no reason has been set.
    - `comment` string, nullable — A free-text comment providing additional context for the review decision.
  - `notes` string — Additional notes that you want to record about this customer.
  - `persons` Person[] — List of persons associated with the customer record
    - `first_name` string, nullable — First name of the person
    - `last_name` string, nullable — Last name of the person
    - `date_of_birth` string, date, nullable — Date of birth of the person in YYYY-MM-DD format.
    - `address` Address — The structured address. Any or all of these fields can be empty
      - `line_1` string, nullable — First line of the address
      - `line_2` string, nullable — Second line of the address
      - `city` string, nullable — City of the address
      - `post_code` string, nullable — Post code of the address
      - `state` string, nullable — State field of the address
      - `country` string, nullable — Country of the address
    - `email` string, email, nullable — Email address of the person
    - `phone_number` string, nullable — Phone number of the person
    - `id_number` string, nullable — The ID number of the person, this could be the SSN, PPSN or any other tax number
  - `company` Company — The company associated with the customer record
    - `name` string, nullable — Company name
    - `address` Address — The structured address. Any or all of these fields can be empty
      - `line_1` string, nullable — First line of the address
      - `line_2` string, nullable — Second line of the address
      - `city` string, nullable — City of the address
      - `post_code` string, nullable — Post code of the address
      - `state` string, nullable — State field of the address
      - `country` string, nullable — Country of the address
    - `id_number` string, nullable — The ID number of the company, this could be the EIN or any other tax number
    - `structure` 'SOLE_PROPRIETORSHIP' | 'PARTNERSHIP' | 'CORPORATION' | 'LIMITED_LIABILITY_COMPANY' | 'PRIVATE_LIMITED_COMPANY' | 'NON_PROFIT', nullable — The structure of the company
    - `phone_number` string, nullable — Phone number of the company
    - `website_url` string, nullable — Website URL of the company
    - `source_of_funds_claim` string, nullable — A customer-provided declaration of where the company's funds originate (e.g. revenue, investment, loans). This raw input feeds the `SOURCE_OF_FUNDS` insight and is reconciled against documents and web evidence to produce the canonical `canonical_profile.company.source_of_funds_claim`. Defaults to `null` when not provided.
  - `verify_entity` VerifyEntityRequest — Entities that are requested to be verified.
    - `income` object — Income entities that are requested to be verified. This service is currently only available for Inscribe Credit customers. It is possible to have verification requests on both `personal_income` and `revenue` for a given customer.
      - `personal_income` object — This is the personal income verification request.
        - `lower_income_tolerance` number — The tolerance with which found incomes below the `input` amount are verified. For example, if this value is set to 0.1, an income will verified if it is at least 90% (1-`lower_income_tolerance`) of the `input` amount.
        - `under_reported_tolerance` number — The tolerance with which found incomes above the `input` amount are set to `under_reported`. For example, if this value is set to 0.1, an income will set to `under_reported` if it is at least 110% (1+`under_reported_tolerance`) of the `input` amount.
        - `input` number — This is the expected income amount to be verified (in cents).
        - `frequency` string — This is frequency of the income to check. Currently, the only income that can be checked is `annual` income.
      - `revenue` object — This is the revenue verification request.
        - `lower_income_tolerance` number — The tolerance with which found incomes below the `input` amount are verified. For example, if this value is set to 0.1, an income will verified if it is at least 90% (1-`lower_income_tolerance`) of the `input` amount.
        - `under_reported_tolerance` number — The tolerance with which found incomes above the `input` amount are set to `under_reported`. For example, if this value is set to 0.1, an income will set to `under_reported` if it is at least 110% (1+`under_reported_tolerance`) of the `input` amount.
        - `input` number — This is the expected revenue amount to be verified (in cents).
        - `frequency` string — This is frequency of the revenue to check. Currently, the only revenue that can be checked is `annual` income.

## Response `201`

Successfully created a new customer.

- Customer
  - `id` string, uuid — Unique identifier for the object.
  - `name` string, required — A unique name that was given to the customer by you.
  - `created_at` string, date-time — Time at which the object was created. In the format: yyyy-MM-dd'T'HH:mm:ssZ
  - `approved` boolean, nullable — Has the value false if you have identified the customer as fraudulent, true is legitimate, and null if unknown. The default is null.
  - `review` Review — Represents a manual review decision.
    - `status` 'ACCEPTED' | 'REJECTED' | 'REQUIRES_REVIEW' — The new status of the review decision.
    - `reason` 'FRAUD' | 'CREDIT_RISK' | 'OTHER', nullable — The reason for rejection. This field is only supported when `status` is `REJECTED`. `null` when no reason has been set.
    - `comment` string, nullable — A free-text comment providing additional context for the review decision.
  - `notes` string, nullable — Additional notes that you have recorded about this customer.
  - `no_of_documents` integer — A whole number representing the number of documents attached to this customer.
  - `no_of_fraudulent_documents` integer — A whole number representing the number of attached documents that have been identified as fraudulent.
  - `urls` object
    - `web_app` string — A URL to the location of this customer on our web app.
    - `api` string — A URL to the location of this customer on our API.
  - `creator` object
    - `id` string, uuid — Unique identifier of the user who created this customer.
    - `email` string, email — The email address of the user who created this customer.
    - `type` 'USER' | 'API' — Indicates whether the creator is a human dashboard user or an API key. When the value is `API`, the `email` field will contain the string `"API User"` rather than an email address.
  - `organisation` object
    - `id` string, uuid — Unique identifier of the organisation this customer belongs to.
  - `risk_assessment` CustomerRiskAssessment — Contains customer risk assessment data, including risk indicators and related insights.
    - `id` string, uuid, nullable — Unique identifier of the latest customer review agent run for this customer. `null` if no run exists yet.
    - `status` 'PENDING' | 'RUNNING' | 'FINISHED' | 'FAILED', nullable — The status of the latest customer review agent run. `null` if no run exists yet.
    - `started_at` string, date-time, nullable — Time at which the latest customer review agent run started. `null` if no run exists yet.
    - `finished_at` string, date-time, nullable — Time at which the latest customer review agent run finished. `null` if no run exists yet, or the run is still in progress.
    - `risk_level` 'LOW' | 'MEDIUM' | 'HIGH' | 'NOT_APPLICABLE', nullable — The risk level assigned to the customer. `null` if no risk level has been determined yet.
    - `summary` string, nullable — A summary of the customer analysis. `null` if no analysis has completed yet.
    - `insights` CustomerInsight[] — List of relevant customer-level insights. An insight can be derived from a customer fraud signal, or a verification. An insight can be configured to be turned on or off. Not all insights are enabled by default. You can contact Inscribe <a href="#" onclick="Intercom('showNewMessage')">via intercom</a> to enquire about enabling or disabling individual insights.
      - `type` 'COMPANY_ADDRESS_EXISTENCE' | 'COMPANY_EXISTENCE' | 'COMPANY_WEB_PRESENCE' | 'CONNECTION_BETWEEN_COMPANY_AND_ADDRESS' | 'CONNECTION_BETWEEN_PERSON_AND_ADDRESS' | 'CONNECTION_BETWEEN_PERSON_AND_COMPANY' | 'MULTIPLE_DOCUMENT_RISK_SIGNALS' | 'MULTIPLE_HIGH_RISK_DOCUMENTS' | 'PERSON_ADDRESS_EXISTENCE' | 'PREVIOUS_HIGH_RISK_APPLICATIONS' | 'SALARY_CROSS_CHECK' | 'UNUSUAL_TRANSACTION_PATTERNS' | 'INCORPORATION_STATUS' | 'WEB_PRESENCE' | 'ADVERSE_MEDIA' | 'ADDRESS_VERIFICATION' | 'COUNTRY_RISK_SCREENING' | 'INDUSTRY_RISK_SCREENING' | 'TRANSACTION_ACTIVITY' | 'SOURCE_OF_FUNDS' | 'CONNECTION_TO_COMPANY' | 'ADVERSE_MEDIA_INDIVIDUAL' | 'CUSTOM_INSIGHT' — The type of customer insight.
      - `result` 'PASS' | 'INCONCLUSIVE' | 'FAIL' — The result of the customer insight.
      - `title` string, nullable — A title describing the customer insight.
      - `rationale` string, nullable — Detailed explanation of customer insight.
      - `urls` string[], nullable — URLs with the sources that support the customer insight.
      - `scopes` string[] — Categories this insight belongs to. Currently, the only supported scope is "FRAUD", which indicates that the insight contributes to assessing risk_level. In the future, additional scopes may be introduced to represent other types of risk beyond fraud.
      - `target` 'COMPANY' | 'INDIVIDUAL' | 'APPLICATION' — Indicates what entity this insight pertains to. `COMPANY` — the insight relates to a company-level check (e.g. web presence, adverse media, incorporation status, company existence). `INDIVIDUAL` — the insight relates to checks on an individual person (e.g. adverse media for an individual, connection to company, person address existence). `APPLICATION` — the insight relates to the application as a whole rather than a specific entity (e.g. document fraud signals, salary cross-check). This field is always present.
      - `sub_insights` object[], nullable — List of sub-insights that provide additional detail for this insight. This field is only included when sub-insights are present.
        - `type` string — The type of sub-insight.
        - `title` string — A title describing the sub-insight.
        - `result` 'PASS' | 'INCONCLUSIVE' | 'FAIL' — The result of the sub-insight.
        - `rationale` string — Detailed explanation of the sub-insight result.
        - `urls` string[], nullable — URLs with the sources that support the sub-insight. This field is excluded from the response if the array is empty.
      - `owner_name` string, nullable — The name of the owner associated with this insight, if applicable. This field is only included when an owner name is present.
  - `persons` Person[] — List of persons associated with the customer record
    - `first_name` string, nullable — First name of the person
    - `last_name` string, nullable — Last name of the person
    - `date_of_birth` string, date, nullable — Date of birth of the person in YYYY-MM-DD format.
    - `address` Address — The structured address. Any or all of these fields can be empty
      - `line_1` string, nullable — First line of the address
      - `line_2` string, nullable — Second line of the address
      - `city` string, nullable — City of the address
      - `post_code` string, nullable — Post code of the address
      - `state` string, nullable — State field of the address
      - `country` string, nullable — Country of the address
    - `email` string, email, nullable — Email address of the person
    - `phone_number` string, nullable — Phone number of the person
    - `id_number` string, nullable — The ID number of the person, this could be the SSN, PPSN or any other tax number
  - `company` Company — The company associated with the customer record
    - `name` string, nullable — Company name
    - `address` Address — The structured address. Any or all of these fields can be empty
      - `line_1` string, nullable — First line of the address
      - `line_2` string, nullable — Second line of the address
      - `city` string, nullable — City of the address
      - `post_code` string, nullable — Post code of the address
      - `state` string, nullable — State field of the address
      - `country` string, nullable — Country of the address
    - `id_number` string, nullable — The ID number of the company, this could be the EIN or any other tax number
    - `structure` 'SOLE_PROPRIETORSHIP' | 'PARTNERSHIP' | 'CORPORATION' | 'LIMITED_LIABILITY_COMPANY' | 'PRIVATE_LIMITED_COMPANY' | 'NON_PROFIT', nullable — The structure of the company
    - `phone_number` string, nullable — Phone number of the company
    - `website_url` string, nullable — Website URL of the company
    - `source_of_funds_claim` string, nullable — A customer-provided declaration of where the company's funds originate (e.g. revenue, investment, loans). This raw input feeds the `SOURCE_OF_FUNDS` insight and is reconciled against documents and web evidence to produce the canonical `canonical_profile.company.source_of_funds_claim`. Defaults to `null` when not provided.
  - `fraud_rating` 'HIGH_RISK' | 'LOW_RISK' | 'UNCERTAIN_RISK' | 'null', nullable — The fraud rating of the customer. This field can be either 'HIGH_RISK', 'LOW_RISK', 'UNCERTAIN_RISK', or null. More information can be found at https://help.inscribe.ai/en/articles/8631969-fraud-rating
  - `verify_entity` VerifyEntityResponse — Entities that have been requested to be verified.
    - `income` object — Income entities that have requested to be verified. This service is currently only available for Inscribe Credit customers. The `personal_income` and `revenue` fields will only be returned if they were included in the initial verification request when creating the customer.
      - `personal_income` object — This is the personal income verification request.
        - `lower_income_tolerance` number — The tolerance with which found incomes below the `input` amount are verified. For example, if this value is set to 0.1, an income will verified if it is at least 90% (1-`lower_income_tolerance`) of the `input` amount.
        - `under_reported_tolerance` number — The tolerance with which found incomes above the `input` amount are set to `under_reported`. For example, if this value is set to 0.1, an income will set to `under_reported` if it is at least 110% (1+`under_reported_tolerance`) of the `input` amount.
        - `input` number — This is the expected income amount to be verified (in cents).
        - `frequency` string — This is frequency of the income to check. Currently, the only income that can be checked is `annual` income.
        - `verified` boolean — This is the status of the verification request. This will be set to `true` if the found income was greater than or equal to the `input` value (adjusted by any given `lower_income_tolerance`). It will be set to `false` if the `input` value did not meet that threshold. If no relevant documents have been provided, this value is set to `null`.
        - `matched` number — This is the found income amount (in cents).
        - `amount_type` 'gross' | 'net' — This is the type of the found income.
        - `under_reported` boolean — This value is set to `true` if the found income exceeded the `input` amount. It is set to `false` if the found income did not. It is set to `null` if no relevant documents were provided or if the income was not verified.
      - `revenue` object — This is the revenue verification request.
        - `lower_income_tolerance` number — The tolerance with which found incomes below the `input` amount are verified. For example, if this value is set to 0.1, an income will verified if it is at least 90% (1-`lower_income_tolerance`) of the `input` amount.
        - `under_reported_tolerance` number — The tolerance with which found incomes above the `input` amount are set to `under_reported`. For example, if this value is set to 0.1, an income will set to `under_reported` if it is at least 110% (1+`under_reported_tolerance`) of the `input` amount.
        - `input` number — This is the expected revenue amount to be verified (in cents).
        - `frequency` string — This is frequency of the revenue to check. Currently, the only revenue that can be checked is `annual` income.
        - `verified` boolean — This is the status of the verification request. This will be set to `true` if the found revenue was greater than or equal to the `input` value (adjusted by any given `lower_income_tolerance`). It will be set to `false` if the `input` value did not meet that threshold. If no relevant documents have been provided, this value is set to `null`.
        - `matched` number — This is the found revenue amount (in cents).
        - `amount_type` 'gross' | 'net' — This is the type of the found revenue.
        - `under_reported` boolean — This value is set to `true` if the found revenue exceeded the `input` amount. It is set to `false` if the found revenue did not. It is set to `null` if no relevant documents were provided or if the revenue was not verified.
      - `confidence_score` number, float — The confidence score represents the degree of certainty for the income verification decision. We calculate this score using a weighted combination of parsing and transaction categorization certainties. Confidence scores above 0.5 represent high confidence.
  - `canonical_profile` CanonicalProfile — Structured profile information aggregated from documents and verification sources for this customer. Each value carries the kind of source it was derived from.
    - `individual` object — Canonical profile fields relating to the individual.
      - `name` CanonicalItem — A single canonical value extracted for a customer, along with the kind of source it was derived from.
        - `value` string, nullable — The canonical value derived for this attribute. `null` when no value could be determined.
        - `source` 'DOCUMENT' | 'CUSTOMER' | 'WEB_SEARCH' | 'PHONE_NUMBER', nullable — The kind of source the value was derived from: - `DOCUMENT` — extracted from a customer-uploaded document. - `CUSTOMER` — provided directly by the customer (e.g. on the create-customer API call). - `WEB_SEARCH` — sourced from an online lookup, such as a business registry or the company website. - `PHONE_NUMBER` — inferred from a phone-number lookup.
      - `address` CanonicalAddress — A canonical address derived for a customer, along with the kind of source it was extracted from.
        - `full_address` string, nullable — The full address as a single string.
        - `city` string, nullable — City of the address.
        - `state` string, nullable — State of the address.
        - `country` string, nullable — Country of the address.
        - `post_code` string, nullable — Post code of the address.
        - `source` 'DOCUMENT' | 'CUSTOMER' | 'WEB_SEARCH' | 'PHONE_NUMBER', nullable — The kind of source the address was derived from: - `DOCUMENT` — extracted from a customer-uploaded document. - `CUSTOMER` — provided directly by the customer (e.g. on the create-customer API call). - `WEB_SEARCH` — sourced from an online lookup, such as a business registry or the company website. - `PHONE_NUMBER` — inferred from a phone-number lookup, e.g. address fields derived from the registered phone number.
      - `employer` object — Employer details associated with the individual.
        - `name` CanonicalItem — A single canonical value extracted for a customer, along with the kind of source it was derived from.
          - `value` string, nullable — The canonical value derived for this attribute. `null` when no value could be determined.
          - `source` 'DOCUMENT' | 'CUSTOMER' | 'WEB_SEARCH' | 'PHONE_NUMBER', nullable — The kind of source the value was derived from: - `DOCUMENT` — extracted from a customer-uploaded document. - `CUSTOMER` — provided directly by the customer (e.g. on the create-customer API call). - `WEB_SEARCH` — sourced from an online lookup, such as a business registry or the company website. - `PHONE_NUMBER` — inferred from a phone-number lookup.
        - `address` CanonicalAddress — A canonical address derived for a customer, along with the kind of source it was extracted from.
          - `full_address` string, nullable — The full address as a single string.
          - `city` string, nullable — City of the address.
          - `state` string, nullable — State of the address.
          - `country` string, nullable — Country of the address.
          - `post_code` string, nullable — Post code of the address.
          - `source` 'DOCUMENT' | 'CUSTOMER' | 'WEB_SEARCH' | 'PHONE_NUMBER', nullable — The kind of source the address was derived from: - `DOCUMENT` — extracted from a customer-uploaded document. - `CUSTOMER` — provided directly by the customer (e.g. on the create-customer API call). - `WEB_SEARCH` — sourced from an online lookup, such as a business registry or the company website. - `PHONE_NUMBER` — inferred from a phone-number lookup, e.g. address fields derived from the registered phone number.
    - `company` object — Canonical profile fields relating to the company.
      - `legal_name` CanonicalItem — A single canonical value extracted for a customer, along with the kind of source it was derived from.
        - `value` string, nullable — The canonical value derived for this attribute. `null` when no value could be determined.
        - `source` 'DOCUMENT' | 'CUSTOMER' | 'WEB_SEARCH' | 'PHONE_NUMBER', nullable — The kind of source the value was derived from: - `DOCUMENT` — extracted from a customer-uploaded document. - `CUSTOMER` — provided directly by the customer (e.g. on the create-customer API call). - `WEB_SEARCH` — sourced from an online lookup, such as a business registry or the company website. - `PHONE_NUMBER` — inferred from a phone-number lookup.
      - `address` CanonicalAddress — A canonical address derived for a customer, along with the kind of source it was extracted from.
        - `full_address` string, nullable — The full address as a single string.
        - `city` string, nullable — City of the address.
        - `state` string, nullable — State of the address.
        - `country` string, nullable — Country of the address.
        - `post_code` string, nullable — Post code of the address.
        - `source` 'DOCUMENT' | 'CUSTOMER' | 'WEB_SEARCH' | 'PHONE_NUMBER', nullable — The kind of source the address was derived from: - `DOCUMENT` — extracted from a customer-uploaded document. - `CUSTOMER` — provided directly by the customer (e.g. on the create-customer API call). - `WEB_SEARCH` — sourced from an online lookup, such as a business registry or the company website. - `PHONE_NUMBER` — inferred from a phone-number lookup, e.g. address fields derived from the registered phone number.
      - `phone_number` CanonicalItem — A single canonical value extracted for a customer, along with the kind of source it was derived from.
        - `value` string, nullable — The canonical value derived for this attribute. `null` when no value could be determined.
        - `source` 'DOCUMENT' | 'CUSTOMER' | 'WEB_SEARCH' | 'PHONE_NUMBER', nullable — The kind of source the value was derived from: - `DOCUMENT` — extracted from a customer-uploaded document. - `CUSTOMER` — provided directly by the customer (e.g. on the create-customer API call). - `WEB_SEARCH` — sourced from an online lookup, such as a business registry or the company website. - `PHONE_NUMBER` — inferred from a phone-number lookup.
      - `company_structure` CanonicalItem — A single canonical value extracted for a customer, along with the kind of source it was derived from.
        - `value` string, nullable — The canonical value derived for this attribute. `null` when no value could be determined.
        - `source` 'DOCUMENT' | 'CUSTOMER' | 'WEB_SEARCH' | 'PHONE_NUMBER', nullable — The kind of source the value was derived from: - `DOCUMENT` — extracted from a customer-uploaded document. - `CUSTOMER` — provided directly by the customer (e.g. on the create-customer API call). - `WEB_SEARCH` — sourced from an online lookup, such as a business registry or the company website. - `PHONE_NUMBER` — inferred from a phone-number lookup.
      - `associated_persons` object[] — Individuals associated with the company (e.g. directors, owners).
        - `full_name` CanonicalItem — A single canonical value extracted for a customer, along with the kind of source it was derived from.
          - `value` string, nullable — The canonical value derived for this attribute. `null` when no value could be determined.
          - `source` 'DOCUMENT' | 'CUSTOMER' | 'WEB_SEARCH' | 'PHONE_NUMBER', nullable — The kind of source the value was derived from: - `DOCUMENT` — extracted from a customer-uploaded document. - `CUSTOMER` — provided directly by the customer (e.g. on the create-customer API call). - `WEB_SEARCH` — sourced from an online lookup, such as a business registry or the company website. - `PHONE_NUMBER` — inferred from a phone-number lookup.
        - `address` CanonicalAddress — A canonical address derived for a customer, along with the kind of source it was extracted from.
          - `full_address` string, nullable — The full address as a single string.
          - `city` string, nullable — City of the address.
          - `state` string, nullable — State of the address.
          - `country` string, nullable — Country of the address.
          - `post_code` string, nullable — Post code of the address.
          - `source` 'DOCUMENT' | 'CUSTOMER' | 'WEB_SEARCH' | 'PHONE_NUMBER', nullable — The kind of source the address was derived from: - `DOCUMENT` — extracted from a customer-uploaded document. - `CUSTOMER` — provided directly by the customer (e.g. on the create-customer API call). - `WEB_SEARCH` — sourced from an online lookup, such as a business registry or the company website. - `PHONE_NUMBER` — inferred from a phone-number lookup, e.g. address fields derived from the registered phone number.
        - `role` CanonicalItem — A single canonical value extracted for a customer, along with the kind of source it was derived from.
          - `value` string, nullable — The canonical value derived for this attribute. `null` when no value could be determined.
          - `source` 'DOCUMENT' | 'CUSTOMER' | 'WEB_SEARCH' | 'PHONE_NUMBER', nullable — The kind of source the value was derived from: - `DOCUMENT` — extracted from a customer-uploaded document. - `CUSTOMER` — provided directly by the customer (e.g. on the create-customer API call). - `WEB_SEARCH` — sourced from an online lookup, such as a business registry or the company website. - `PHONE_NUMBER` — inferred from a phone-number lookup.
      - `source_of_funds_claim` CanonicalItem — A single canonical value extracted for a customer, along with the kind of source it was derived from.
        - `value` string, nullable — The canonical value derived for this attribute. `null` when no value could be determined.
        - `source` 'DOCUMENT' | 'CUSTOMER' | 'WEB_SEARCH' | 'PHONE_NUMBER', nullable — The kind of source the value was derived from: - `DOCUMENT` — extracted from a customer-uploaded document. - `CUSTOMER` — provided directly by the customer (e.g. on the create-customer API call). - `WEB_SEARCH` — sourced from an online lookup, such as a business registry or the company website. - `PHONE_NUMBER` — inferred from a phone-number lookup.
      - `business_type` CanonicalItem — A single canonical value extracted for a customer, along with the kind of source it was derived from.
        - `value` string, nullable — The canonical value derived for this attribute. `null` when no value could be determined.
        - `source` 'DOCUMENT' | 'CUSTOMER' | 'WEB_SEARCH' | 'PHONE_NUMBER', nullable — The kind of source the value was derived from: - `DOCUMENT` — extracted from a customer-uploaded document. - `CUSTOMER` — provided directly by the customer (e.g. on the create-customer API call). - `WEB_SEARCH` — sourced from an online lookup, such as a business registry or the company website. - `PHONE_NUMBER` — inferred from a phone-number lookup.
      - `business_description` CanonicalItem — A single canonical value extracted for a customer, along with the kind of source it was derived from.
        - `value` string, nullable — The canonical value derived for this attribute. `null` when no value could be determined.
        - `source` 'DOCUMENT' | 'CUSTOMER' | 'WEB_SEARCH' | 'PHONE_NUMBER', nullable — The kind of source the value was derived from: - `DOCUMENT` — extracted from a customer-uploaded document. - `CUSTOMER` — provided directly by the customer (e.g. on the create-customer API call). - `WEB_SEARCH` — sourced from an online lookup, such as a business registry or the company website. - `PHONE_NUMBER` — inferred from a phone-number lookup.
      - `ownership_structure` object, nullable — A description of the company's ownership structure, with a rationale for the determination. `null` when no ownership structure could be derived.
        - `description` string — A summary of the ownership structure.
        - `rationale` string — The reasoning behind the determined ownership structure.
        - `related_inscribe_document_ids` string[] — IDs of Inscribe documents that informed this determination.
        - `source` 'DOCUMENT' | 'CUSTOMER' | 'WEB_SEARCH' | 'PHONE_NUMBER', nullable — The kind of source the ownership structure was derived from: - `DOCUMENT` — extracted from a customer-uploaded document. - `CUSTOMER` — provided directly by the customer (e.g. on the create-customer API call). - `WEB_SEARCH` — sourced from an online lookup, such as a business registry or the company website. - `PHONE_NUMBER` — inferred from a phone-number lookup.
      - `website` CanonicalItem — A single canonical value extracted for a customer, along with the kind of source it was derived from.
        - `value` string, nullable — The canonical value derived for this attribute. `null` when no value could be determined.
        - `source` 'DOCUMENT' | 'CUSTOMER' | 'WEB_SEARCH' | 'PHONE_NUMBER', nullable — The kind of source the value was derived from: - `DOCUMENT` — extracted from a customer-uploaded document. - `CUSTOMER` — provided directly by the customer (e.g. on the create-customer API call). - `WEB_SEARCH` — sourced from an online lookup, such as a business registry or the company website. - `PHONE_NUMBER` — inferred from a phone-number lookup.
      - `registry_data` object, nullable — Company registry data sourced from a business registry provider. `null` when no registry data is available.
        - `url` string — URL of the company's record in the registry.
        - `name` string — The name of the company as recorded in the registry.
        - `jurisdiction_code` string — The jurisdiction the company is registered in (ISO 3166-2).
        - `company_type` string, nullable — The company type as recorded in the registry.
  - `business_compliance_agent_v1` BusinessComplianceAnalyst — AI-powered Business Compliance Analyst results that perform deep KYB due diligence on the company and its associated individuals. NOTE: This feature requires explicit access. Please contact your Customer Success Manager or sales@inscribe.ai to enable this feature.
    - `run_id` string — A unique identifier for the specific run of the Business Compliance Analyst
    - `customer_id` string, uuid — A unique identifier for the customer object
    - `status` 'RUNNING' | 'FINISHED' | 'FAILED' — The current status of the compliance check process. `RUNNING`: The review process is currently in progress. `FINISHED`: The review process has been successfully completed. `FAILED`: The review process encountered an error and could not be completed.
    - `started_at` string, date-time — The timestamp when the Business Compliance review started. In the format yyyy-MM-dd'T'HH:mm:ssZ
    - `finished_at` string, date-time — The timestamp when the Business Compliance review finished. In the format yyyy-MM-dd'T'HH:mm:ssZ
    - `output` BusinessComplianceAnalystOutput
      - `result` 'PASS' | 'FAIL' | 'INCONCLUSIVE' | 'NOT_APPLICABLE' — The overall compliance status of the company after review. `PASS`: The company passed the compliance review - no issues were identified. `FAIL`: The company failed the compliance review - issues were identified. `INCONCLUSIVE`: The company's compliance status is inconclusive - unable to determine PASS or FAIL, typically due to insufficient information. `NOT_APPLICABLE`: The company's compliance status is not applicable, usually due to insufficient data.
      - `analysis` string — A detailed analysis summarizing the compliance review findings
      - `canonical_profile` BusinessComplianceAnalystCanonicalProfile
        - `legal_name` string — Legal name of the company
        - `address` string — Full address of the company
        - `address_city` string — City
        - `address_state` string — State/Province/Region
        - `address_country` string — Country
        - `phone_number` string — Contact phone number
        - `company_structure` string — Business structure type
        - `business_type` 'Agriculture, Forestry, Fishing and Hunting' | 'Mining, Quarrying, and Oil and Gas Extraction' | 'Utilities' | 'Construction' | 'Manufacturing' | 'Wholesale Trade' | 'Retail Trade' | 'Transportation and Warehousing' | 'Information' | 'Finance and Insurance' | 'Real Estate and Rental and Leasing' | 'Professional, Scientific, and Technical Services' | 'Management of Companies and Enterprises' | 'Administrative and Support and Waste Management and Remediation Services' | 'Educational Services' | 'Health Care and Social Assistance' | 'Arts, Entertainment, and Recreation' | 'Accommodation and Food Services' | 'Public Administration' | 'Other Services' — Type of business/industry based on NAICS (North American Industry Classification System)
        - `business_description` string — Detailed description of business activities
        - `ownership_structure` string — Description of company ownership
        - `beneficial_owners` object[] — List of beneficial owners
          - `full_name` string — Full name of the beneficial owner
          - `address` string — Address of the beneficial owner
          - `address_city` string — City of the beneficial owner
          - `address_state` string — State/Province/Region of the beneficial owner
          - `address_country` string — Country of the beneficial owner
          - `role` string — Role of the beneficial owner in the company
        - `source_of_funds_claim` string — Claimed source of company funds
        - `opencorporates_data` object, nullable — Data from OpenCorporates. If no match has been found or searching OpenCorporates is not enabled, this will be null.
          - `name` string — Name of the company as it appears on OpenCorporates
          - `company_type` string, nullable — Type of company as it appears on OpenCorporates
      - `company_checks` BusinessComplianceAnalystCompanyCheck[] — Array of compliance checks performed on the company
        - `type` 'INCORPORATION_STATUS' | 'WEB_PRESENCE' | 'ADVERSE_MEDIA' | 'ADDRESS_VERIFICATION' | 'COUNTRY_RISK_SCREENING' | 'INDUSTRY_RISK_SCREENING' | 'TRANSACTION_ACTIVITY' | 'SOURCE_OF_FUNDS' — Type of check. For more information about the company checks, see [this page](https://docs.inscribe.ai/docs/business-compliance-analyst-checks#company-checks).
        - `title` 'Incorporation Status' | 'Web Presence' | 'Adverse Media' | 'Address Verification' | 'Country Risk Screening' | 'Industry Risk Screening' | 'Transaction Activity' | 'Source of Funds' — Human-readable title of the check
        - `sub_checks` object[] — Array of sub-checks that contribute to this check's result
          - `type` 'WEBSITE_PRESENCE' | 'SOCIAL_MEDIA_PRESENCE' | 'SOURCE_OF_FUNDS_FROM_DOCUMENTS' | 'SOURCE_OF_FUNDS_FROM_WEB_SEARCH' | 'SOURCE_OF_FUNDS_DOCS_RISK' | 'INCORPORATION_STATUS_FROM_WEB' | 'INCORPORATION_DOCS_RISK' | 'PO_BOX_ADDRESS' | 'PRIVATE_MAILBOX_ADDRESS' | 'ADDRESS_VERIFICATION_FROM_WEB' | 'TRANSACTION_ACTIVITY_FROM_DOCUMENTS' | 'TRANSACTION_ACTIVITY_DOCS_RISK' — Type identifier of the sub-check
          - `title` 'Website Presence' | 'Social Media Presence' | 'Source of Funds from Documents' | 'Source of Funds from Web Search' | 'Fraud Risk from Documents' | 'Incorporation Status from Web' | 'Address PO Box Screening' | 'Address Private Mailbox Screening' | 'Address verified from Web Presence' | 'Transaction Activity from Documents' — Human-readable title of the sub-check
          - `result` 'PASS' | 'FAIL' | 'INCONCLUSIVE' | 'NOT_APPLICABLE' — Result of the check. `PASS`: The check passed - no issues were identified. `FAIL`: The check failed - issues were identified. `INCONCLUSIVE`: The check is inconclusive - unable to determine PASS or FAIL, typically due to insufficient information. `NOT_APPLICABLE`: The check does not apply to this entity, usually due to insufficient data.
          - `rationale` string — Detailed explanation of the check result
          - `urls` string[] — Relevant URLs supporting the check
          - `related_inscribe_document_ids` string[] — IDs of related documents
        - `result` 'PASS' | 'FAIL' | 'INCONCLUSIVE' | 'NOT_APPLICABLE' — Result of the check. `PASS`: The check passed - no issues were identified. `FAIL`: The check failed - issues were identified. `INCONCLUSIVE`: The check is inconclusive - unable to determine PASS or FAIL, typically due to insufficient information. `NOT_APPLICABLE`: The check does not apply to this entity, usually due to insufficient data.
        - `rationale` string — Detailed explanation of the check result
        - `urls` string[] — Relevant URLs supporting the check
        - `related_inscribe_document_ids` string[] — IDs of related documents
      - `beneficial_owner_checks` BusinessComplianceAnalystBeneficialOwnerCheck[] — Array of checks performed on beneficial owners
        - `beneficial_owner_full_name` string — Full name of the beneficial owner
        - `checks` object[] — Array of checks performed on the beneficial owner
          - `type` 'CONNECTION_TO_COMPANY' | 'ADVERSE_MEDIA' — Type of check. For more information about the beneficial owner checks, see [this page](https://docs.inscribe.ai/docs/business-compliance-analyst-checks#beneficial-owner-checks).
          - `title` 'Connection to Company' | 'Adverse Media' — Human-readable title of the check
          - `sub_checks` BusinessComplianceAnalystBaseCheck[] — Array of sub-checks that contribute to this check's result (currently empty for beneficial owner checks)
            - `type` string
            - `title` string
            - `result` 'PASS' | 'FAIL' | 'INCONCLUSIVE' | 'NOT_APPLICABLE' — Result of the check. `PASS`: The check passed - no issues were identified. `FAIL`: The check failed - issues were identified. `INCONCLUSIVE`: The check is inconclusive - unable to determine PASS or FAIL, typically due to insufficient information. `NOT_APPLICABLE`: The check does not apply to this entity, usually due to insufficient data.
            - `rationale` string — Detailed explanation of the check result
            - `urls` string[] — Relevant URLs supporting the check
            - `related_inscribe_document_ids` string[] — IDs of related documents
          - `result` 'PASS' | 'FAIL' | 'INCONCLUSIVE' | 'NOT_APPLICABLE' — Result of the check. `PASS`: The check passed - no issues were identified. `FAIL`: The check failed - issues were identified. `INCONCLUSIVE`: The check is inconclusive - unable to determine PASS or FAIL, typically due to insufficient information. `NOT_APPLICABLE`: The check does not apply to this entity, usually due to insufficient data.
          - `rationale` string — Detailed explanation of the check result
          - `urls` string[] — Relevant URLs supporting the check
          - `related_inscribe_document_ids` string[] — IDs of related documents

## Other responses

- `400` — You have provided incorrect data.
- `403` — You do not have permission to access this resource.
- `409` — The name you have provided for the customer already exists.
- `429` — Too many requests. The request has been rate limited. For more information, visit our [documentation on rate limiting](https://docs.inscribe.ai/docs/are-the-endpoints-rate-limited).

---

[API](https://skmtc.dev/inscribe/apis/core-resources.md) · [All operations](https://skmtc.dev/inscribe/apis/core-resources/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/inscribe/core-resources/revisions/6489b36eb60f/schema)
