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

# Submit Business KYB

> Submit identity and compliance verification data for a business customer

Submit KYB data for a business customer. The customer must already exist with `customer_type: "business"` (created via `POST /customer`). After submission the status will be `"submitted"` and will move to `"approved"` once review is complete.

<Note>
  This endpoint is hosted on the KYC platform at `https://kyc.yativo.com`, not the main API base URL. Include an `Idempotency-Key` header on every request.
</Note>

```
POST https://kyc.yativo.com/api/business-kyc/submit
```

## Business identity fields

<ParamField body="customer_id" type="string" required>
  The customer UUID returned by `POST /customer`. The customer must have been created with `customer_type: "business"`.
</ParamField>

<ParamField body="business_legal_name" type="string" required>
  The official registered legal name of the business. Max 255 characters.
</ParamField>

<ParamField body="business_trade_name" type="string" required>
  Trade name or DBA ("doing business as") name. Max 255 characters.
</ParamField>

<ParamField body="business_description" type="string" required>
  A description of what the business does. Max 1000 characters.
</ParamField>

<ParamField body="email" type="string" required>
  Business contact email address.
</ParamField>

<ParamField body="business_type" type="string" required>
  Legal structure of the business. One of: `"cooperative"`, `"corporation"`, `"llc"`, `"partnership"`, `"sole_prop"`, `"trust"`, `"other"`.
</ParamField>

<ParamField body="registration_number" type="string" required>
  Official government registration or incorporation number. Max 100 characters.
</ParamField>

<ParamField body="incorporation_date" type="string" required>
  Date of incorporation in `YYYY-MM-DD` format. Must be before today.
</ParamField>

<ParamField body="tax_id" type="string">
  Business tax identification number. Max 100 characters. Optional.
</ParamField>

<ParamField body="phone_calling_code" type="string">
  Country dial code for the business phone. Must match `^\+[1-9]\d{0,3}$`, e.g. `"+1"`, `"+234"`.
</ParamField>

<ParamField body="phone_number" type="string">
  Business phone number. Digits only, 7–15 characters.
</ParamField>

<ParamField body="business_industry" type="string">
  Industry category of the business. Optional.
</ParamField>

<ParamField body="primary_website" type="string">
  Business website URL. Must be a valid URL including scheme (e.g. `"https://acme.com"`).
</ParamField>

<ParamField body="is_dao" type="boolean">
  Whether the business is a Decentralised Autonomous Organisation.
</ParamField>

<ParamField body="statement_descriptor" type="string">
  How the business name appears on customer payment statements. Max 22 characters.
</ParamField>

<ParamField body="has_material_intermediary_ownership" type="boolean">
  Whether the ownership structure includes material intermediary entities.
</ParamField>

## Addresses

Both `registered_address` and `physical_address` share the same field structure.

<ParamField body="registered_address" type="object" required>
  The official registered address of the business.

  <Expandable title="registered_address fields">
    <ParamField body="street_line_1" type="string" required>Street address line 1. Max 255 characters.</ParamField>
    <ParamField body="street_line_2" type="string">Street address line 2. Optional.</ParamField>
    <ParamField body="city" type="string" required>City. Max 100 characters.</ParamField>
    <ParamField body="state" type="string" required>State or province. Accepts `"US-CA"` or `"CA"` — both are normalised.</ParamField>
    <ParamField body="postal_code" type="string" required>Postal or ZIP code. Validated per country.</ParamField>
    <ParamField body="country" type="string" required>ISO 3166-1 alpha-2 country code.</ParamField>
    <ParamField body="proof_of_address_file" type="string">Registered address proof document. Hosted URL or base64. Optional.</ParamField>
  </Expandable>
</ParamField>

<ParamField body="physical_address" type="object" required>
  The physical operating address of the business. Must include `proof_of_address_file`.

  <Expandable title="physical_address fields">
    <ParamField body="street_line_1" type="string" required>Street address line 1.</ParamField>
    <ParamField body="street_line_2" type="string">Street address line 2. Optional.</ParamField>
    <ParamField body="city" type="string" required>City.</ParamField>
    <ParamField body="state" type="string" required>State or province.</ParamField>
    <ParamField body="postal_code" type="string" required>Postal or ZIP code.</ParamField>
    <ParamField body="country" type="string" required>ISO 3166-1 alpha-2 country code.</ParamField>
    <ParamField body="proof_of_address_file" type="string">Physical address proof (e.g. office lease). Hosted URL or base64.</ParamField>
  </Expandable>
</ParamField>

## Associated persons

<ParamField body="associated_persons" type="array" required>
  At least one person is required. Include all UBOs (Ultimate Beneficial Owners with ownership ≥ 25%), directors, and authorised signers.

  <Expandable title="associated_persons item fields">
    <ParamField body="first_name" type="string" required>Person's first name. Max 100 characters.</ParamField>
    <ParamField body="last_name" type="string" required>Person's last name. Max 100 characters.</ParamField>
    <ParamField body="birth_date" type="string" required>Date of birth in `YYYY-MM-DD`. Must be before today.</ParamField>
    <ParamField body="nationality" type="string" required>ISO 3166-1 alpha-2 country code.</ParamField>
    <ParamField body="email" type="string" required>Person's email address.</ParamField>
    <ParamField body="phone" type="string">Phone number. Optional.</ParamField>
    <ParamField body="title" type="string">Job title, e.g. `"CEO"`, `"Director"`. Optional.</ParamField>
    <ParamField body="ownership_percentage" type="number" required>Ownership percentage, 0–100.</ParamField>
    <ParamField body="relationship_established_at" type="string">Date the relationship with the business was established. `YYYY-MM-DD`, must not be in the future.</ParamField>

    <ParamField body="residential_address" type="object" required>
      Person's residential address. Same field structure as the business address above.
    </ParamField>

    <ParamField body="identifying_information" type="array" required>
      At least one ID document for this person.

      <Expandable title="identifying_information item fields">
        <ParamField body="type" type="string" required>Document type (e.g. `"passport"`, `"national_id"`).</ParamField>
        <ParamField body="issuing_country" type="string" required>ISO 3166-1 alpha-2 country code.</ParamField>
        <ParamField body="number" type="string" required>Document number.</ParamField>
        <ParamField body="date_issued" type="string" required>`YYYY-MM-DD`, before today.</ParamField>
        <ParamField body="expiration_date" type="string" required>`YYYY-MM-DD`, after today.</ParamField>
        <ParamField body="image_front_file" type="string" required>Front image. Hosted URL or base64. PDF/JPG/JPEG/PNG, max 5 MB.</ParamField>
        <ParamField body="image_back_file" type="string">Back image. Required for cards with a reverse side.</ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="has_ownership" type="boolean">Whether this person has an ownership stake.</ParamField>
    <ParamField body="has_control" type="boolean">Whether this person has operational control.</ParamField>
    <ParamField body="is_signer" type="boolean">Whether this person is an authorised signer.</ParamField>
    <ParamField body="is_director" type="boolean">Whether this person is a director.</ParamField>
  </Expandable>
</ParamField>

## Risk and purpose

<ParamField body="account_purpose" type="string" required>
  Intended use of the account. One of: `"business_transactions"`, `"ecommerce_retail_payments"`, `"operating_a_company"`, `"investment_purposes"`, `"charitable_donations"`, `"receive_salary"`, `"receive_payment_for_freelancing"`, `"purchase_goods_and_services"`, `"personal_or_living_expenses"`, `"payments_to_friends_or_family_abroad"`, `"protect_wealth"`, `"other"`.
</ParamField>

<ParamField body="account_purpose_other" type="string">
  Required when `account_purpose` is `"other"`.
</ParamField>

<ParamField body="source_of_funds" type="string" required>
  Primary source of business funds. One of: `"business_income"`, `"company_funds"`, `"salary"`, `"savings"`, `"investments_loans"`, `"inheritance"`, `"gifts"`, `"government_benefits"`, `"pension_retirement"`, `"sale_of_assets_real_estate"`, `"ecommerce_reseller"`, `"gambling_proceeds"`, `"someone_elses_funds"`.
</ParamField>

<ParamField body="high_risk_activities" type="array" required>
  List the high-risk activities the business is involved in. Use `["none_of_the_above"]` if none apply. Accepted values: `"adult_entertainment"`, `"gambling"`, `"hold_client_funds"`, `"investment_services"`, `"lending_banking"`, `"marijuana_or_related_services"`, `"money_services"`, `"operate_foreign_exchange_virtual_currencies_brokerage_otc"`, `"pharmaceuticals"`, `"precious_metals_precious_stones_jewelry"`, `"safe_deposit_box_rentals"`, `"weapons_firearms_and_explosives"`, `"none_of_the_above"`.
</ParamField>

<ParamField body="high_risk_activities_explanation" type="string">
  Required if any high-risk activities are listed. Explain the nature of those activities.
</ParamField>

<ParamField body="conducts_money_services" type="boolean">
  Whether the business conducts money services (e.g. remittance, currency exchange).
</ParamField>

<ParamField body="conducts_money_services_description" type="string">
  Required when `conducts_money_services` is `true`. Describe the money services.
</ParamField>

<ParamField body="compliance_screening_explanation" type="string">
  Required when `conducts_money_services` is `true`. Describe compliance screening procedures.
</ParamField>

<ParamField body="estimated_annual_revenue_usd" type="string">
  Estimated annual revenue in USD. Optional free-text field.
</ParamField>

<ParamField body="expected_monthly_payments_usd" type="number">
  Expected monthly payment volume in USD. Optional.
</ParamField>

<ParamField body="operates_in_prohibited_countries" type="string">
  `"yes"` or `"no"`. Whether the business operates in any prohibited jurisdictions.
</ParamField>

<ParamField body="ownership_threshold" type="integer">
  Ownership percentage threshold for UBO reporting. Accepted range: 5–25.
</ParamField>

## Regulated activity

<ParamField body="regulated_activity" type="object">
  Details about any regulated activities the business conducts. Optional — submit an empty object `{}` if not applicable.

  <Expandable title="regulated_activity fields">
    <ParamField body="regulated_activities_description" type="string">Description of regulated activities.</ParamField>
    <ParamField body="primary_regulatory_authority_country" type="string">ISO 3166-1 alpha-2 country code of the regulator.</ParamField>
    <ParamField body="primary_regulatory_authority_name" type="string">Name of the regulatory authority.</ParamField>
    <ParamField body="license_number" type="string">Regulatory licence number.</ParamField>
  </Expandable>
</ParamField>

## Business documents

<ParamField body="documents" type="array" required>
  At least one business document is required.

  <Expandable title="documents item fields">
    <ParamField body="purpose" type="string" required>
      Document purpose. One of: `"business_registration"`, `"tax_documents"`, `"compliance_documents"`, `"financial_statements"`.
    </ParamField>

    <ParamField body="description" type="string" required>
      Human-readable description, e.g. `"Certificate of Incorporation"`.
    </ParamField>

    <ParamField body="file" type="string">
      Hosted URL or base64-encoded document. Optional at submission time — can be provided via update.
    </ParamField>
  </Expandable>
</ParamField>

## Business-level identifying information (optional)

<ParamField body="identifying_information" type="array">
  Optional business-level ID documents (e.g. business licence, regulatory certificate).

  <Expandable title="identifying_information item fields">
    <ParamField body="type" type="string">Document type.</ParamField>
    <ParamField body="issuing_country" type="string">ISO 3166-1 alpha-2 country code.</ParamField>
    <ParamField body="number" type="string">Document number.</ParamField>
    <ParamField body="description" type="string">Description of the document.</ParamField>
    <ParamField body="expiration" type="string">`YYYY-MM-DD`, must be after today.</ParamField>
    <ParamField body="image_front" type="string">Front image. Hosted URL or base64.</ParamField>
    <ParamField body="image_back" type="string">Back image. Hosted URL or base64.</ParamField>
  </Expandable>
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST 'https://kyc.yativo.com/api/business-kyc/submit' \
    -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
    -H 'Content-Type: application/json' \
    -H 'Idempotency-Key: kyb-acme-2026-001' \
    -d '{
      "customer_id": "d47f8a2b-1c3e-4f5a-9b8c-7d6e5f4a3b2c",
      "business_legal_name": "Acme Payments LLC",
      "business_trade_name": "Acme Pay",
      "business_description": "International payment processing for SMEs",
      "email": "compliance@acmepay.com",
      "business_type": "llc",
      "registration_number": "LLC-2018-00987",
      "incorporation_date": "2018-03-12",
      "tax_id": "47-1234567",
      "phone_calling_code": "+1",
      "phone_number": "3055551234",
      "primary_website": "https://acmepay.com",
      "registered_address": {
        "street_line_1": "100 Brickell Ave",
        "city": "Miami",
        "state": "FL",
        "postal_code": "33131",
        "country": "US"
      },
      "physical_address": {
        "street_line_1": "100 Brickell Ave",
        "city": "Miami",
        "state": "FL",
        "postal_code": "33131",
        "country": "US",
        "proof_of_address_file": "https://storage.yativo.com/documents/abc/lease.pdf"
      },
      "associated_persons": [
        {
          "first_name": "Jane",
          "last_name": "Doe",
          "birth_date": "1978-07-22",
          "nationality": "US",
          "email": "jane.doe@acmepay.com",
          "title": "CEO",
          "ownership_percentage": 60,
          "relationship_established_at": "2018-03-12",
          "residential_address": {
            "street_line_1": "456 Coral Way",
            "city": "Miami",
            "state": "FL",
            "postal_code": "33133",
            "country": "US"
          },
          "identifying_information": [
            {
              "type": "passport",
              "issuing_country": "US",
              "number": "P87654321",
              "date_issued": "2020-01-10",
              "expiration_date": "2030-01-10",
              "image_front_file": "https://storage.yativo.com/documents/abc/jane-passport.jpg"
            }
          ],
          "has_ownership": true,
          "has_control": true,
          "is_signer": true,
          "is_director": true
        }
      ],
      "account_purpose": "business_transactions",
      "source_of_funds": "business_income",
      "high_risk_activities": ["none_of_the_above"],
      "conducts_money_services": false,
      "regulated_activity": {},
      "documents": [
        {
          "purpose": "business_registration",
          "description": "Certificate of Incorporation",
          "file": "https://storage.yativo.com/documents/abc/certificate.pdf"
        },
        {
          "purpose": "tax_documents",
          "description": "EIN confirmation letter",
          "file": "https://storage.yativo.com/documents/abc/ein.pdf"
        }
      ]
    }'
  ```

  ```javascript Node.js theme={null}
  const response = await fetch('https://kyc.yativo.com/api/business-kyc/submit', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${token}`,
      'Content-Type': 'application/json',
      'Idempotency-Key': `kyb-${customerId}-001`,
    },
    body: JSON.stringify({
      customer_id: customerId,
      business_legal_name: 'Acme Payments LLC',
      business_trade_name: 'Acme Pay',
      business_description: 'International payment processing for SMEs',
      email: 'compliance@acmepay.com',
      business_type: 'llc',
      registration_number: 'LLC-2018-00987',
      incorporation_date: '2018-03-12',
      registered_address: {
        street_line_1: '100 Brickell Ave',
        city: 'Miami',
        state: 'FL',
        postal_code: '33131',
        country: 'US',
      },
      physical_address: {
        street_line_1: '100 Brickell Ave',
        city: 'Miami',
        state: 'FL',
        postal_code: '33131',
        country: 'US',
        proof_of_address_file: officeLeaseUrl,
      },
      associated_persons: [{
        first_name: 'Jane',
        last_name: 'Doe',
        birth_date: '1978-07-22',
        nationality: 'US',
        email: 'jane.doe@acmepay.com',
        title: 'CEO',
        ownership_percentage: 60,
        residential_address: {
          street_line_1: '456 Coral Way',
          city: 'Miami',
          state: 'FL',
          postal_code: '33133',
          country: 'US',
        },
        identifying_information: [{
          type: 'passport',
          issuing_country: 'US',
          number: 'P87654321',
          date_issued: '2020-01-10',
          expiration_date: '2030-01-10',
          image_front_file: passportUrl,
        }],
        has_ownership: true,
        has_control: true,
        is_signer: true,
        is_director: true,
      }],
      account_purpose: 'business_transactions',
      source_of_funds: 'business_income',
      high_risk_activities: ['none_of_the_above'],
      conducts_money_services: false,
      regulated_activity: {},
      documents: [{
        purpose: 'business_registration',
        description: 'Certificate of Incorporation',
        file: certUrl,
      }],
    }),
  });
  ```
</RequestExample>

<ResponseExample>
  ```json Success theme={null}
  {
    "success": true,
    "message": "Business KYC submission received successfully",
    "business_data": {
      "customer_id": "d47f8a2b-1c3e-4f5a-9b8c-7d6e5f4a3b2c",
      "type": "business",
      "business_legal_name": "Acme Payments LLC",
      "status": "submitted",
      "created_at": "2026-06-01T10:00:00.000000Z"
    }
  }
  ```

  ```json Validation error theme={null}
  {
    "status": "failed",
    "status_code": 422,
    "message": "Request failed",
    "data": {
      "business_type": ["The selected business type is invalid."],
      "associated_persons": ["The associated persons field is required."],
      "high_risk_activities": ["The high risk activities field is required."],
      "documents": ["The documents field is required."]
    }
  }
  ```
</ResponseExample>
