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

# Update business application details

> Updates a business application with company information including legal name, registration details,
address, industry, and financial information. This endpoint is idempotent and can only be called
when the application status is 'pending'.




## OpenAPI

````yaml /openapi.yaml put /applications/{application_id}/business-details
openapi: 3.0.3
info:
  title: Dakota Platform API
  version: 1.0.0
  description: >-
    Combined API specification for Dakota Platform services:

    - Issuance API: Asset minting and burning operations

    - Onboarding API: Know Your Business/Customer verification

    - On/Off Ramp API: Managing on-ramp and off-ramp accounts

    - Recipients API: Managing destinations for KYB'd entities

    - Transactions API: Viewing transaction history across platform operations


    ## Authentication and API Headers


    All API endpoints require the following headers:


    - `x-idempotency-key`: Required for all POST endpoints to ensure request
    idempotency

    - `x-api-key`: Required for authentication across all endpoints


    Note: On /applications endpoints you need a token for authentication instead
    of a x-api-key

    - `x-application-token`: Required for authentication on public /applications
    endpoints (alternative to `x-api-key` where documented)



    ## Rate Limits


    Requests are rate limited per API key. Every response includes the following
    headers:


    | Header | Description |

    | --- | --- |

    | `X-RateLimit-Limit` | Maximum requests allowed in the current one-minute
    window. |

    | `X-RateLimit-Remaining` | Requests remaining in the current window. |

    | `X-RateLimit-Reset` | Absolute Unix timestamp (seconds since epoch) when
    the current rate-limit window resets. |


    When a request is throttled (`429`), responses also include `Retry-After`
    with seconds to wait before retrying.
servers:
  - url: https://api.platform.dakota.xyz
    description: Production environment
  - url: https://api.platform.sandbox.dakota.xyz
    description: Sandbox — safe for testing with simulated data
security:
  - ApiKeyAuth: []
tags:
  - name: Agentic Payments
    x-alpha: true
    description: >-
      Alpha — agent-driven payments: provision agents, draft and approve
      spending mandates, accept reviewed instructions, and manage scheduled
      payments.


      **Prerequisites:** Customer onboarded; signer groups attached for
      recognition.

      **Related:** Wallets, Signer Groups, Transactions
  - name: Mandates
    x-alpha: true
    description: >-
      Alpha — spending mandates: signed, signer-bound authorizations governing
      what may be spent, approved or cancelled by a second recognized signer (§8
      — the dual-control rule that every mandate mutation must be signed by a
      recognized signer OTHER than the bound one). Independent of agents and
      scheduled payments.


      **Prerequisites:** Signer groups attached for recognition.

      **Related:** Signer Groups, Transactions
  - name: Insights
    x-alpha: true
    description: >-
      Alpha — read-only account insight: a deterministic report over a
      customer's agentic activity (funding balances, upcoming obligations,
      failures, mandate headroom and expiry) plus an advisory chat that narrates
      it. Never moves money, never creates or changes anything.


      **Prerequisites:** Customer onboarded; insight is computed from the
      customer's scheduled payments, mandates, and wallets.

      **Related:** Agentic Payments, Mandates
  - name: Customers
    description: >-
      Manage customer entities representing businesses and organizations
      onboarded to Dakota.


      **Prerequisites:** Complete KYB via Onboarding endpoints before initiating
      money movement.

      **Related:** Onboarding, Recipients, Transactions, Accounts, Wallets
  - name: Wallets
    description: >-
      Manage wallets, balances, and wallet-to-signer-group relationships for
      custody and movement controls.


      **Prerequisites:** Customer must exist. Configure signer groups before
      policy-enforced workflows.

      **Related:** Signer Groups, Policies, Transactions, Customers
  - name: Transactions
    description: >-
      Create, cancel, and retrieve transaction records across account and wallet
      flows.


      **Prerequisites:** Accounts or destinations must be configured based on
      flow type.

      **Related:** Accounts, Recipients, Policies, Events
  - name: Recipients
    description: >-
      Manage recipient entities and destination rails used by customers for
      payouts and transfers.


      **Prerequisites:** Customer must be onboarded and active.

      **Related:** Customers, Transactions, Accounts, Onboarding
  - name: Accounts
    description: >-
      Manage account resources used for onramp, offramp, and swap operations.


      **Prerequisites:** Customer must be created and network/asset constraints
      must be known.

      **Related:** Customers, Transactions, Auto Transactions, Info
  - name: Auto Transactions
    description: >-
      Manage automated transaction configurations and execution history for
      account automation workflows.


      **Prerequisites:** Source account must exist and be configured for
      automation.

      **Related:** Accounts, Transactions, Events
  - name: Onboarding
    description: >-
      Manage KYB/KYC onboarding lifecycle, application documents, attestations,
      and verification steps.


      **Prerequisites:** Customer context and required entity/application
      metadata.

      **Related:** Customers, Exceptions, Recipients, Transactions
  - name: Policies
    description: >-
      Define and manage policy objects and rules used for transaction governance
      and risk controls.


      **Prerequisites:** Wallet and signer group resources should be configured
      for enforcement scenarios.

      **Related:** Wallets, Signer Groups, Transactions
  - name: Signer Groups
    description: >-
      Manage signer groups and signer assignments for multi-party authorization
      models.


      **Prerequisites:** Wallets should exist before linking signer groups.

      **Related:** Wallets, Policies, Transactions
  - name: Authentication
    description: >-
      Manage API authentication credentials and key lifecycle for platform
      access.


      **Prerequisites:** Client organization must be provisioned.

      **Related:** Users, Info
  - name: Users
    description: >-
      Manage client users, roles, and identity metadata for platform access
      control.


      **Prerequisites:** Auth credentials and client context must be
      established.

      **Related:** Authentication
  - name: Webhooks
    description: >-
      Manage outbound webhook targets and delivery configuration for event
      notifications.


      **Prerequisites:** Subscriber endpoint must be reachable and secured.

      **Related:** Events, Authentication
  - name: Payouts
    description: >-
      Manage where Dakota sends your accrued developer-fee payouts.


      **Prerequisites:** Auth credentials and client context must be
      established.

      **Related:** Events
  - name: Events
    description: >-
      Retrieve event records emitted by platform operations for audit and
      troubleshooting.


      **Prerequisites:** Requesting client must have access to referenced
      resources.

      **Related:** Webhooks, Transactions, Onboarding
  - name: Info
    description: >-
      Read platform capability metadata, such as supported rails, networks, and
      assets.


      **Prerequisites:** Valid authentication headers.

      **Related:** Accounts, Transactions
  - name: Sandbox
    description: >-
      Trigger sandbox-only simulation endpoints for safe end-to-end integration
      testing with synthetic data. The sandbox host
      (`https://api.platform.sandbox.dakota.xyz`) also accepts a family of
      `X-Sandbox-*` request headers on most write endpoints (`Customers`,
      `Accounts`, `Transactions`, simulate endpoints) that let integrators drive
      deterministic failure modes — pick a preset via `X-Sandbox-Scenario`, or
      compose a custom one with
      `X-Sandbox-Error-Step`/`X-Sandbox-Error-Status`/`X-Sandbox-Error-Message`.
      `X-Sandbox-Instant-Completion` collapses async flows to a single
      synchronous step, and `X-Sandbox-Skip-Auto-Approval` keeps newly created
      KYB applications in `pending` for manual-review testing. All `X-Sandbox-*`
      headers are ignored in production.


      **Prerequisites:** Sandbox environment and test customer data.

      **Related:** Customers, Accounts, Transactions, Onboarding
paths:
  /applications/{application_id}/business-details:
    put:
      tags:
        - Onboarding
      summary: Update business application details
      description: >
        Updates a business application with company information including legal
        name, registration details,

        address, industry, and financial information. This endpoint is
        idempotent and can only be called

        when the application status is 'pending'.
      operationId: updateBusinessApplicationDetails
      parameters:
        - $ref: '#/components/parameters/IdempotencyKeyHeader'
        - name: application_id
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/KSUID'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BusinessApplicationCreateRequest'
            example:
              legal_name: Acme Corporation
              country_of_incorporation: US
              date_of_incorporation: '2020-01-15'
              legal_structure: llc
              tax_id_number: 12-3456789
              registration_number: '123456789'
              dba: Acme Inc
              registered_address:
                street1: 123 Main St
                street2: Apt 4B
                street3: Building C
                city: San Francisco
                region: California
                postal_code: '94105'
                country: US
              operating_address:
                street1: 123 Main St
                street2: Apt 4B
                street3: Building C
                city: San Francisco
                region: California
                postal_code: '94105'
                country: US
              website: https://www.acme.com
              industry_code: '541511'
              business_description: Software development and technology consulting services
              purpose_of_account:
                - first_party_payments
                - business_expenses
              average_monthly_revenue: 1m_to_5m
              expected_monthly_deposit: 100k_to_500k
              expected_monthly_transaction_volume: 50_to_100
              source_of_funds:
                - proprietary_funds
                - customer_funds
              has_bearer_shares: false
              transact_on_behalf_of_third_parties: false
              owned_by_foundation: false
      responses:
        '200':
          description: Business application details updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessDetailsResponse'
              example:
                application_id: 1NFHrqBHb3cTfLVkFSGmHZqdDPi
                application_status: pending
                application_decision: approved
                business:
                  id: 2hCjxJzUAW6JVRkZqaF9E0KpM3a
                  legal_name: Acme Corporation
                  country_of_incorporation: US
                  date_of_incorporation: '2020-01-15'
                  legal_structure: llc
                  registration_number: '123456789'
                  tax_id_number: 12-3456789
                  dba: Acme Inc
                  registered_address:
                    street1: 123 Main St
                    street2: Apt 4B
                    street3: Building C
                    city: San Francisco
                    region: California
                    postal_code: '94105'
                    country: US
                  operating_address:
                    street1: 123 Main St
                    street2: Apt 4B
                    street3: Building C
                    city: San Francisco
                    region: California
                    postal_code: '94105'
                    country: US
                  industry_code: '541511'
                  business_description: Software development and technology consulting services
                  purpose_of_account:
                    - first_party_payments
                    - business_expenses
                  average_monthly_revenue: 1_to_10m
                  expected_monthly_deposit: 100k_to_500k
                  expected_monthly_transaction_volume: 0_to_10
                  source_of_funds:
                    - proprietary_funds
                    - customer_funds
                  has_bearer_shares: false
                  transact_on_behalf_of_third_parties: false
                  website: https://www.acme.com
                  decision: approved
                  decision_reason: All verification checks passed
                  decision_by: admin@dakota.xyz
                  decision_at: 1705315800
                  sumsub_verification:
                    applicant_id: 2hCjxJzUAW6JVRkZqaF9E0KpM3b
                    provider_applicant_id: 65a1b2c3d4e5f6g7h8i9j0k1
                    entity_type: individual
                    type: individual
                    decision: approved
                    decision_reason: All verification checks passed
                    decision_by: admin@dakota.xyz
                    decision_at: 1705315800
                    review:
                      review_id: 65a1b2c3d4e5f6g7h8i9j0k1
                      attempt_id: 65a1b2c3d4e5f6g7h8i9j0k2
                      attempt_cnt: 1
                      level_name: basic-kyc-level
                      create_date: '2024-01-15T10:30:00Z'
                      review_date: '2024-01-15T14:45:00Z'
                      review_status: completed
                      review_result:
                        review_answer: GREEN
                        reject_labels:
                          - DOCUMENT_TEMPLATE
                          - FRAUDULENT_PATTERNS
                        reject_type: FINAL
                        button_ids:
                          - approve
                        moderation_comment: All documents verified successfully
                        client_comment: Approved for onboarding
                    risk_labels:
                      device:
                        - EMULATOR
                        - VPN
                      cross_check:
                        - FAKE_ID
                        - BLACKLIST
                      attempt_id: 65a1b2c3d4e5f6g7h8i9j0k2
                      created_at: '2024-01-15T10:30:00Z'
        '400':
          description: Invalid request or validation errors
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              example:
                type: https://docs.dakota.xyz/api-reference/errors#invalid-request
                title: Invalid request or validation errors
                status: 400
                detail: Invalid request or validation errors
                instance: >-
                  https://api.platform.dakota.xyz/applications/example-id/business-details
                request_id: req_01hzy6y7v8w9x0y1z2a3b4c5d6
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              example:
                type: >-
                  https://docs.dakota.xyz/api-reference/errors#authentication-error
                title: Unauthorized
                status: 401
                detail: Unauthorized
                instance: >-
                  https://api.platform.dakota.xyz/applications/example-id/business-details
                request_id: req_01hzy6y7v8w9x0y1z2a3b4c5d6
        '403':
          description: Application not in pending state or forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              example:
                type: https://docs.dakota.xyz/api-reference/errors#forbidden
                title: Application not in pending state or forbidden
                status: 403
                detail: Application not in pending state or forbidden
                instance: >-
                  https://api.platform.dakota.xyz/applications/example-id/business-details
                request_id: req_01hzy6y7v8w9x0y1z2a3b4c5d6
        '404':
          description: Application or business not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              example:
                type: https://docs.dakota.xyz/api-reference/errors#not-found
                title: Application or business not found
                status: 404
                detail: Application or business not found
                instance: >-
                  https://api.platform.dakota.xyz/applications/example-id/business-details
                request_id: req_01hzy6y7v8w9x0y1z2a3b4c5d6
        '409':
          description: Application already submitted or completed (cannot modify)
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              example:
                type: https://docs.dakota.xyz/api-reference/errors#conflict
                title: Application already submitted or completed (cannot modify)
                status: 409
                detail: Application already submitted or completed (cannot modify)
                instance: >-
                  https://api.platform.dakota.xyz/applications/example-id/business-details
                request_id: req_01hzy6y7v8w9x0y1z2a3b4c5d6
      security:
        - ApplicationTokenAuth: []
      externalDocs:
        description: Read full guide in docs
        url: >-
          https://docs.dakota.xyz/api-reference/onboarding/update-business-application-details
components:
  parameters:
    IdempotencyKeyHeader:
      name: x-idempotency-key
      in: header
      required: true
      description: >-
        Unique key to ensure request idempotency. If the same key is used within
        a certain time window, the original response will be returned instead of
        executing the request again.
      schema:
        type: string
        format: uuid
  schemas:
    KSUID:
      type: string
      title: KSUID
      description: >-
        KSUID is a 27-character globally unique ID that combines a timestamp
        with a random component. Used for all entity identifiers in the Dakota
        platform.
      pattern: ^[0-9A-Za-z]{27}$
      minLength: 27
      maxLength: 27
      example: 1NFHrqBHb3cTfLVkFSGmHZqdDPi
    BusinessApplicationCreateRequest:
      type: object
      required:
        - legal_name
        - country_of_incorporation
        - date_of_incorporation
        - legal_structure
        - registration_number
        - registered_address
        - industry_code
        - business_description
        - purpose_of_account
        - average_monthly_revenue
        - expected_monthly_deposit
        - expected_monthly_transaction_volume
        - source_of_funds
        - has_bearer_shares
        - transact_on_behalf_of_third_parties
        - owned_by_foundation
      properties:
        legal_name:
          type: string
          description: Legal name of the business entity
          example: Acme Corporation
        country_of_incorporation:
          type: string
          description: ISO 3166-1 alpha-2 country code where the business is incorporated
          minLength: 2
          maxLength: 2
          example: US
        date_of_incorporation:
          type: string
          format: date
          description: Date when the business was incorporated (ISO 8601 format)
          example: '2020-01-15'
        legal_structure:
          type: string
          description: >-
            Legal entity type of the business. Note: trust, government_entity,
            and sole_proprietorship are not eligible for onboarding.
          enum:
            - corporation
            - llc
            - general_partnership
            - llp
            - non_profit_foundation
            - trust
            - government_entity
            - sole_proprietorship
          example: llc
        tax_id_number:
          type: string
          description: Tax identification number (required for US entities)
          example: 12-3456789
        registration_number:
          type: string
          description: Business registration number
          example: '123456789'
        dba:
          type: string
          description: Doing Business As name
          example: Acme Inc
        registered_address:
          $ref: '#/components/schemas/Address'
        operating_address:
          $ref: '#/components/schemas/Address'
        website:
          type: string
          description: Business website URL
          example: https://www.acme.com
        business_email:
          type: string
          format: email
          description: Primary business contact email address
          example: contact@acmecorp.com
        industry_code:
          type: string
          description: Industry classification code (NAICS or crypto)
          example: '541511'
        business_description:
          type: string
          description: Detailed description of the business activities
          example: Software development and technology consulting services
        purpose_of_account:
          type: array
          description: Intended purposes for the account (at least one required)
          minItems: 1
          items:
            type: string
            enum:
              - operating_otc_service
              - accepting_donations
              - payment_processing_platform
              - third_party_payments
              - first_party_payments
              - proprietary_trading
              - business_expenses
              - storage_of_funds_or_assets
          example:
            - first_party_payments
            - business_expenses
        average_monthly_revenue:
          type: string
          description: Expected average monthly revenue range
          enum:
            - 0_to_500k
            - 500k_to_1m
            - 1m_to_5m
            - 5m_to_10m
            - 10m_to_50m
            - 50m_to_100m
            - 100m_plus
          example: 1m_to_5m
        expected_monthly_deposit:
          type: string
          description: Expected monthly deposit range
          enum:
            - 0_to_50k
            - 50k_to_100k
            - 100k_to_500k
            - 500k_to_1m
            - 1m_to_5m
            - 5m_to_10m
            - 10m_to_20m
            - 20m_to_50m
            - 50m_plus
          example: 100k_to_500k
        expected_monthly_transaction_volume:
          type: string
          description: Expected monthly transaction volume range
          enum:
            - 0_to_10
            - 10_to_20
            - 20_to_50
            - 50_to_100
            - 100_to_250
            - 250_to_500
            - 500_plus
          example: 50_to_100
        source_of_funds:
          type: array
          description: Sources of funds for the business (at least one required)
          minItems: 1
          items:
            type: string
            enum:
              - ico_token_sale
              - donations
              - loan_funding
              - crowdfunding
              - proprietary_funds
              - sale_of_goods_and_services
              - investments
              - sale_of_assets
              - customer_funds
              - grants
              - intercompany_transfer
          example:
            - proprietary_funds
            - customer_funds
        has_bearer_shares:
          type: boolean
          description: Whether the company issues bearer shares
          example: false
        transact_on_behalf_of_third_parties:
          type: boolean
          description: >-
            Whether the business will transact (trading or transmitting funds)
            on behalf of third parties. Triggers EDD requirement if true.
          example: false
        owned_by_foundation:
          type: boolean
          description: Whether the business is owned by a foundation
          example: false
    BusinessDetailsResponse:
      type: object
      description: Response containing business entity data
      required:
        - application_id
        - application_status
        - business
      properties:
        application_id:
          $ref: '#/components/schemas/KSUID'
          description: The application ID
        application_status:
          $ref: '#/components/schemas/ApplicationStatus'
          description: Current status of the application
        application_decision:
          type: string
          enum:
            - approved
            - declined
            - withdrawn
          nullable: true
          description: Decision outcome (if any)
        business:
          $ref: '#/components/schemas/BusinessEntity'
          description: The business entity data
    ProblemDetails:
      type: object
      required:
        - type
        - title
        - status
      description: |
        Error response following RFC 9457 Problem Details.
        Public API error responses use this format.
      example:
        type: https://docs.dakota.xyz/api-reference/errors#not-found
        title: Customer Not Found
        status: 404
        detail: Customer cst_2abc123 was not found in your organization.
        instance: https://api.platform.dakota.xyz/customers/cst_2abc123
        request_id: req_7f3a8b2c
      properties:
        type:
          type: string
          format: uri
          description: |
            URI reference identifying the problem type.
            Resolves to human-readable documentation.
          example: https://docs.dakota.xyz/api-reference/errors#not-found
        title:
          type: string
          description: >-
            Short, human-readable summary of the problem type. Stable across
            occurrences.
          example: Customer Not Found
        status:
          type: integer
          description: HTTP status code for this occurrence.
          example: 404
        detail:
          type: string
          description: Human-readable explanation specific to this occurrence.
          example: Customer cst_2abc123 was not found in your organization.
        instance:
          type: string
          format: uri
          description: The request path that triggered this error.
          example: https://api.platform.dakota.xyz/customers/cst_2abc123
        request_id:
          type: string
          description: Unique request identifier. Include when contacting support.
          example: req_7f3a8b2c
        errors:
          type: array
          description: Field-level validation errors (present for validation failures).
          items:
            $ref: '#/components/schemas/ValidationError'
    Address:
      type: object
      title: Address
      description: >-
        Standardized physical address format used throughout the Dakota platform
        for user and entity addresses.
      required:
        - street1
        - city
        - country
      properties:
        street1:
          type: string
          description: Primary street address line
          example: 123 Main St
        street2:
          type: string
          description: >-
            Secondary address information such as apartment, suite, or unit
            number
          example: Apt 4B
        street3:
          type: string
          description: Additional address information like building name or floor
          example: Building C
        city:
          type: string
          description: City or locality name
          example: San Francisco
        region:
          type: string
          description: Full name of state, province, or region
          example: California
        postal_code:
          type: string
          description: Postal or ZIP code
          example: '94105'
        country:
          type: string
          description: ISO 3166-1 alpha-2 country code (two-letter country code)
          example: US
          minLength: 2
          maxLength: 2
    ApplicationStatus:
      type: string
      title: Application Status
      description: >
        Current status of an application in the onboarding flow.


        Status flow:

        - `pending` - Initial state, not yet submitted

        - `submitted` - Submitted for verification

        - `under_review` - Being reviewed by compliance team

        - `request_for_information` - Admin requesting additional info/documents
        from applicant

        - `admin_revision` - Admin making corrections to application data

        - `approved` - Application approved

        - `declined` - Application declined

        - `completed` - Legacy status (deprecated, use approved/declined
        instead)

        - `compliance_review` - Application is awaiting compliance review of a
        Proof of Address
          document. Set when an individual applicant uploads a PoA-equivalent document
          (proof_of_address, bank_statement, or utility_bill) after their application has
          already been approved or completed. The customer remains active but is subject to
          the $3,000 USD-equivalent rolling 7-day transaction limit until the review concludes.
      enum:
        - pending
        - submitted
        - under_review
        - request_for_information
        - admin_revision
        - approved
        - declined
        - completed
        - compliance_review
      example: submitted
    BusinessEntity:
      type: object
      description: Business entity data (entity information only, no validation)
      required:
        - id
        - legal_name
        - country_of_incorporation
        - date_of_incorporation
        - legal_structure
        - registration_number
        - registered_address
        - industry_code
        - business_description
        - purpose_of_account
        - average_monthly_revenue
        - expected_monthly_deposit
        - expected_monthly_transaction_volume
        - source_of_funds
      properties:
        id:
          type: string
          format: ksuid
          description: >-
            Business applicant identifier (this is the applicant_id, NOT the
            internal business entity ID)
          example: 2hCjxJzUAW6JVRkZqaF9E0KpM3a
        legal_name:
          type: string
          description: Legal name of the business entity
          example: Acme Corporation
        country_of_incorporation:
          type: string
          description: ISO 3166-1 alpha-2 country code where the business is incorporated
          minLength: 2
          maxLength: 2
          example: US
        date_of_incorporation:
          type: string
          format: date
          description: Date when the business was incorporated
          example: '2020-01-15'
        legal_structure:
          type: string
          description: Legal entity type of the business
          enum:
            - corporation
            - llc
            - general_partnership
            - llp
            - non_profit_foundation
            - trust
            - government_entity
            - sole_proprietorship
          example: llc
        registration_number:
          type: string
          description: Business registration number
          example: '123456789'
        tax_id_number:
          type: string
          description: Tax identification number (optional, required for US entities)
          example: 12-3456789
        dba:
          type: string
          description: Doing Business As name (optional)
          example: Acme Inc
        registered_address:
          $ref: '#/components/schemas/Address'
          description: Registered business address
        operating_address:
          $ref: '#/components/schemas/Address'
          description: Operating business address (optional, if different from registered)
        industry_code:
          type: string
          description: Industry classification code (NAICS or crypto code)
          example: '541511'
        business_description:
          type: string
          description: Detailed description of business activities
          example: Software development and technology consulting services
        purpose_of_account:
          type: array
          description: Intended purposes for the account
          items:
            type: string
          example:
            - first_party_payments
            - business_expenses
        average_monthly_revenue:
          type: string
          description: Expected average monthly revenue range
          example: 1_to_10m
        expected_monthly_deposit:
          type: string
          description: Expected monthly deposit range
          example: 100k_to_500k
        expected_monthly_transaction_volume:
          type: string
          description: Expected monthly transaction volume range
          example: 0_to_10
        source_of_funds:
          type: array
          description: Sources of funds for the business
          items:
            type: string
          example:
            - proprietary_funds
            - customer_funds
        has_bearer_shares:
          type: boolean
          description: Whether the company issues bearer shares
          example: false
        transact_on_behalf_of_third_parties:
          type: boolean
          description: >-
            Whether the business will transact (trading or transmitting funds)
            on behalf of third parties. Triggers EDD requirement if true.
          example: false
        owned_by_foundation:
          type: boolean
          description: Whether the business is owned by a foundation
          example: false
        website:
          type: string
          format: uri
          description: Business website URL (optional)
          example: https://www.acme.com
        business_email:
          type: string
          format: email
          description: Primary business contact email address (optional)
          example: contact@acmecorp.com
        decision:
          type: string
          enum:
            - approved
            - declined
            - auto_declined
            - withdrawn
          nullable: true
          description: Decision on this business entity (if made)
          example: approved
        decision_reason:
          type: string
          nullable: true
          description: Reason for the decision
          example: All verification checks passed
        decision_by:
          type: string
          nullable: true
          description: Email of admin who made the decision
          example: admin@dakota.xyz
        decision_at:
          type: integer
          format: int64
          nullable: true
          description: Unix timestamp when decision was made
          example: 1705315800
        sumsub_verification:
          $ref: '#/components/schemas/SumsubReviewData'
          description: Sumsub verification data for this business entity
    ValidationError:
      type: object
      required:
        - field
        - message
      properties:
        field:
          type: string
          description: Field path using dot notation for nested fields.
          example: bank_account.routing_number
        message:
          type: string
          description: Human-readable description of the field error.
          example: Routing number must be exactly 9 digits
        code:
          type: string
          description: Machine-readable error code for this field.
          example: invalid_format
    SumsubReviewData:
      type: object
      description: Sumsub review information for a specific entity
      required:
        - applicant_id
        - provider_applicant_id
        - entity_type
      properties:
        applicant_id:
          type: string
          format: ksuid
          description: >-
            Dakota applicant ID (business_applicant_id or
            individual_applicant_id)
          example: 2hCjxJzUAW6JVRkZqaF9E0KpM3b
        provider_applicant_id:
          type: string
          description: Sumsub's applicant ID
          example: 65a1b2c3d4e5f6g7h8i9j0k1
        entity_type:
          type: string
          enum:
            - business
            - individual
          description: Type of entity
          example: individual
        type:
          type: string
          description: Sumsub applicant type (e.g., 'company', 'individual')
          example: individual
        decision:
          type: string
          enum:
            - approved
            - declined
            - auto_declined
            - withdrawn
          nullable: true
          description: Current decision from Dakota database
          example: approved
        decision_reason:
          type: string
          nullable: true
          description: Reason for the decision
          example: All verification checks passed
        decision_by:
          type: string
          nullable: true
          description: Email of user who made the decision
          example: admin@dakota.xyz
        decision_at:
          type: integer
          format: int64
          nullable: true
          description: Unix timestamp when decision was made
          example: 1705315800
        review:
          $ref: '#/components/schemas/SumsubReview'
          description: Sumsub verification review details
        risk_labels:
          $ref: '#/components/schemas/SumsubRiskLabels'
          description: Risk labels identified by Sumsub
    SumsubReview:
      type: object
      description: Sumsub verification review details
      properties:
        review_id:
          type: string
          description: Unique review identifier
          example: 65a1b2c3d4e5f6g7h8i9j0k1
        attempt_id:
          type: string
          description: Verification attempt identifier
          example: 65a1b2c3d4e5f6g7h8i9j0k2
        attempt_cnt:
          type: integer
          description: Number of verification attempts
          example: 1
        level_name:
          type: string
          description: Verification level name
          example: basic-kyc-level
        create_date:
          type: string
          description: When review was created (ISO 8601)
          example: '2024-01-15T10:30:00Z'
        review_date:
          type: string
          nullable: true
          description: When review was completed (ISO 8601)
          example: '2024-01-15T14:45:00Z'
        review_status:
          type: string
          enum:
            - init
            - pending
            - prechecked
            - queued
            - completed
            - onHold
          description: Current status of the review
          example: completed
        review_result:
          $ref: '#/components/schemas/SumsubReviewResult'
          description: Sumsub review result details
    SumsubRiskLabels:
      type: object
      description: Risk labels identified by Sumsub
      properties:
        device:
          type: array
          items:
            type: string
          description: Device-related risk indicators
          example:
            - EMULATOR
            - VPN
        cross_check:
          type: array
          items:
            type: string
          description: Cross-check risk indicators
          example:
            - FAKE_ID
            - BLACKLIST
        attempt_id:
          type: string
          description: Associated attempt ID
          example: 65a1b2c3d4e5f6g7h8i9j0k2
        created_at:
          type: string
          description: When risk labels were created
          example: '2024-01-15T10:30:00Z'
    SumsubReviewResult:
      type: object
      description: Sumsub review result details
      properties:
        review_answer:
          type: string
          enum:
            - GREEN
            - RED
            - YELLOW
          description: Review outcome (GREEN = passed, RED = failed, YELLOW = needs review)
          example: GREEN
        reject_labels:
          type: array
          items:
            type: string
          description: Reasons for rejection if review_answer is RED
          example:
            - DOCUMENT_TEMPLATE
            - FRAUDULENT_PATTERNS
        reject_type:
          type: string
          description: Type of rejection
          example: FINAL
        button_ids:
          type: array
          items:
            type: string
          description: IDs of buttons clicked during review
          example:
            - approve
        moderation_comment:
          type: string
          description: Comment from Sumsub moderator
          example: All documents verified successfully
        client_comment:
          type: string
          description: Client comment on the review
          example: Approved for onboarding
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
    ApplicationTokenAuth:
      type: apiKey
      in: header
      name: X-Application-Token
      description: >
        Application-specific token for public URL access. Generated when a
        customer is created.

        Provides access to a single application without requiring an API key.

        Token is valid for 30 days and rate-limited to 250 requests per hour.

````