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

# Create Customer Identification V2

> This will create a new identification for the customer, dependent on the customer type a KYC or KYB will be created for the customer to complete.
we support three types of identification:
- Link: where a link is provided to the customer for access to the identification process.
- Token: where a token is provided in the request from which verification data can be extracted and where the token is generated by the third party provider
- Person: where the identification details of the person for which the identification process is being created are provided in the request



## OpenAPI

````yaml https://api.sandbox.iron.xyz/spec/2026-07-01 post /customers/{id}/identifications/v2
openapi: 3.1.0
info:
  description: The Stablecoin Payment Network
  title: Iron API - Sandbox
  version: '2026-07-01'
servers:
  - url: https://api.sandbox.iron.xyz/api
security: []
tags:
  - description: >-
      Wallet and bank account registration


      Every wallet address that interacts with Iron must be registered (linked)
      to a customer **before** it can be used in any flow — onramp, offramp, or
      swap. This is a regulatory requirement under the **Travel Rule**, which
      obliges Virtual Asset Service Providers to exchange originator and
      beneficiary information for crypto transfers.


      Iron supports two wallet types:


      - **Self-hosted wallets** — the customer controls the private key.
      Registration requires a signed proof-of-ownership message.

      - **Hosted wallets** — the wallet is custodied by another VASP (e.g.
      Coinbase, Kraken). Registration requires the VASP's DID so Iron can
      exchange travel-rule data with the custodian.


      Similarly, fiat bank accounts must be registered before they can receive
      offramp payouts.
    name: Addresses
  - description: Operations on Autoramp
    name: Autoramp
  - description: Operations on Chronicle collateral
    name: ChronicleCollateral
  - description: Operations on Currencies
    name: Currencies
  - description: Operations on Customers
    name: Customer
  - description: Operations on Exchange Rate
    name: ExchangeRate
  - description: Operations on Fee Profiles
    name: FeeProfiles
  - description: Operations for Sandbox Testing
    name: Sandbox
  - description: Operations on SSE
    name: Sse
  - description: Operations on Terms and Conditions
    name: TermsAndConditions
  - description: Operations on Webhooks
    name: Webhooks
paths:
  /customers/{id}/identifications/v2:
    post:
      tags:
        - Customer
      summary: Create Customer Identification V2
      description: >-
        This will create a new identification for the customer, dependent on the
        customer type a KYC or KYB will be created for the customer to complete.

        we support three types of identification:

        - Link: where a link is provided to the customer for access to the
        identification process.

        - Token: where a token is provided in the request from which
        verification data can be extracted and where the token is generated by
        the third party provider

        - Person: where the identification details of the person for which the
        identification process is being created are provided in the request
      operationId: createCustomerIdentificationV2
      parameters:
        - deprecated: false
          description: >-
            a UUID ensuring an Customer Identification operation is only
            processed once
          explode: true
          in: header
          name: IDEMPOTENCY-KEY
          required: true
          schema:
            type: string
        - deprecated: false
          description: >-
            Optional sub-partner UUID, if provided, the identification will be
            created under scope of the sub-partner
          explode: true
          in: header
          name: X-SUB-PARTNER-ID
          required: false
          schema:
            type: string
        - deprecated: false
          description: the ID of the Customer to create an Identification for
          explode: true
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
        - $ref: '#/components/parameters/XApiVersion'
      requestBody:
        content:
          application/json; charset=utf-8:
            schema:
              $ref: '#/components/schemas/IdentificationCreateParamsV2'
        description: The Identification data to be used for the identification
        required: true
      responses:
        '201':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/Identification'
          description: POST Customer Identification Succeeded
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Customer Identification Failed (Invalid Request)
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Customer Identification Failed (Unauthorized)
        '403':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Customer Identification Failed (Forbidden)
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Customer Identification Failed (Resource Not Found)
        '409':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/IdentificationConflict'
          description: >-
            POST Customer Identification Failed (Duplicate Or Pending
            Identification)
        '429':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Customer Identification Failed (Creation Rate Limit Exceeded)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: POST Customer Identification Failed (Internal Error)
      security:
        - ApiKeyAuth: []
components:
  parameters:
    XApiVersion:
      description: >-
        Selects the API version for this request, as an ISO date (`YYYY-MM-DD`).
        Omit to use the default version (`2025-03-13`). Supported versions:
        2025-03-13, 2026-07-01, 2026-08-01.
      in: header
      name: X-API-Version
      required: false
      schema:
        type: string
        x-default: '2026-07-01'
  schemas:
    IdentificationCreateParamsV2:
      anyOf:
        - $ref: >-
            #/components/schemas/IdentificationCreateParamsV2_IdentificationLinkparams
        - $ref: >-
            #/components/schemas/IdentificationCreateParamsV2_IdentificationTokenParams
        - $ref: >-
            #/components/schemas/IdentificationCreateParamsV2_IdentificationPersonParams
        - $ref: >-
            #/components/schemas/IdentificationCreateParamsV2_IdentificationBusinessParams
      description: >
        Identification Create Params V2


        The params required to create an identification v2, we support three
        types of identification:

        - Link: where a link is provided to the customer for access to the
        identification process.

        - Token: where a token is provided in the request from which
        verification data can be extracted and where the token is generated by
        the third party provider

        - Person: where the identification details of the person for which the
        identification process is being created are provided in the request
      discriminator:
        mapping:
          Business:
            $ref: >-
              #/components/schemas/IdentificationCreateParamsV2_IdentificationBusinessParams
          Link:
            $ref: >-
              #/components/schemas/IdentificationCreateParamsV2_IdentificationLinkparams
          Person:
            $ref: >-
              #/components/schemas/IdentificationCreateParamsV2_IdentificationPersonParams
          Token:
            $ref: >-
              #/components/schemas/IdentificationCreateParamsV2_IdentificationTokenParams
        propertyName: type
      type: object
    Identification:
      description: |
        Identification

        The entity wrapping our KYC/KYB process and underlying providers
      properties:
        created_at:
          format: date-time
          type: string
        customer_id:
          description: Absent on a referral partner's identification (partner-keyed record)
          format: uuid
          type: string
        id:
          format: uuid
          type: string
        partner_id:
          description: The owning partner for partner-keyed (referral) records
          format: uuid
          type: string
        residence_country:
          description: >-
            ISO 3166-1 alpha-2 (2 letter) country code of the verified residence

            address; only set on the customer's most recent identification while
            it

            is approved
          type: string
        review_comment:
          type: string
        status:
          $ref: '#/components/schemas/IdentificationStatus'
        step_status:
          $ref: '#/components/schemas/IdentificationStepStatus'
        updated_at:
          format: date-time
          type: string
        url:
          type: string
        with_edd:
          type: boolean
      required:
        - id
        - status
        - created_at
        - updated_at
      title: Identification
      type: object
    IdentificationConflict:
      description: >
        Identification Conflict


        Returned on a 409 conflict. When a partner re-submits a customer whose

        identification payload matches an existing one, the existing record's
        ids

        are included so the caller can reconcile the duplicate.
      properties:
        existing_customer_id:
          description: >-
            The id of the existing customer the matching identification belongs
            to
          format: uuid
          type: string
        existing_identification_id:
          description: The id of the existing identification with the matching payload
          format: uuid
          type: string
        external_id:
          description: The partner's own external id for the existing customer, when set
          type: string
        message:
          description: Human-readable explanation of the conflict
          type: string
      required:
        - message
      title: IdentificationConflict
      type: object
    ApiError:
      description: |-
        Standard error response returned to API clients for server errors.
        Includes a trace_id that clients can reference when reporting issues.
      properties:
        message:
          description: Human-readable error message
          type: string
        trace_id:
          description: Trace ID that can be used to look up request details in logs
          type: string
      required:
        - message
        - trace_id
      title: ApiError
      type: object
    IdentificationCreateParamsV2_IdentificationLinkparams:
      allOf:
        - properties:
            type:
              enum:
                - Link
              example: Link
              type: string
          required:
            - type
          type: object
        - $ref: '#/components/schemas/IdentificationLinkparams'
      description: >
        Identification Create Params V2


        The params required to create an identification v2, we support three
        types of identification:

        - Link: where a link is provided to the customer for access to the
        identification process.

        - Token: where a token is provided in the request from which
        verification data can be extracted and where the token is generated by
        the third party provider

        - Person: where the identification details of the person for which the
        identification process is being created are provided in the request
    IdentificationCreateParamsV2_IdentificationTokenParams:
      allOf:
        - properties:
            type:
              enum:
                - Token
              example: Token
              type: string
          required:
            - type
          type: object
        - $ref: '#/components/schemas/IdentificationTokenParams'
      description: >
        Identification Create Params V2


        The params required to create an identification v2, we support three
        types of identification:

        - Link: where a link is provided to the customer for access to the
        identification process.

        - Token: where a token is provided in the request from which
        verification data can be extracted and where the token is generated by
        the third party provider

        - Person: where the identification details of the person for which the
        identification process is being created are provided in the request
    IdentificationCreateParamsV2_IdentificationPersonParams:
      allOf:
        - properties:
            type:
              enum:
                - Person
              example: Person
              type: string
          required:
            - type
          type: object
        - $ref: '#/components/schemas/IdentificationPersonParams'
      description: >
        Identification Create Params V2


        The params required to create an identification v2, we support three
        types of identification:

        - Link: where a link is provided to the customer for access to the
        identification process.

        - Token: where a token is provided in the request from which
        verification data can be extracted and where the token is generated by
        the third party provider

        - Person: where the identification details of the person for which the
        identification process is being created are provided in the request
    IdentificationCreateParamsV2_IdentificationBusinessParams:
      allOf:
        - properties:
            type:
              enum:
                - Business
              example: Business
              type: string
          required:
            - type
          type: object
        - $ref: '#/components/schemas/IdentificationBusinessParams'
      description: >
        Identification Create Params V2


        The params required to create an identification v2, we support three
        types of identification:

        - Link: where a link is provided to the customer for access to the
        identification process.

        - Token: where a token is provided in the request from which
        verification data can be extracted and where the token is generated by
        the third party provider

        - Person: where the identification details of the person for which the
        identification process is being created are provided in the request
    IdentificationStatus:
      description: |
        The Process status of the identification

        The various state transitions an identification can go through.
      enum:
        - Pending
        - Processed
        - PendingReview
        - Approved
        - Declined
        - Expired
        - Archived
      type: string
    IdentificationStepStatus:
      anyOf:
        - $ref: '#/components/schemas/BusinessIdentificationStepStatus'
        - $ref: '#/components/schemas/PersonIdentificationStepStatus'
      type: object
    IdentificationLinkparams:
      description: |
        Direct Identification Params

        The params required to create an identification
      properties:
        with_edd:
          description: whether to initialize the identification with the full EDD process
          type: boolean
      title: IdentificationLinkparams
      type: object
    IdentificationTokenParams:
      description: |
        Token Identification Params

        The params required to create an identification
      properties:
        edd_questionnaire:
          $ref: '#/components/schemas/EddQuestionnaire'
        intended_use:
          $ref: '#/components/schemas/IntendedUse'
        ip_address:
          description: |-
            The IP address of the customer associated with the token
            Not required if IP address is passed by token provided
          type: string
        kyc_questionnaire:
          $ref: '#/components/schemas/KycQuestionnaire'
        token:
          description: The shareable token generated by the third party provider
          type: string
      required:
        - token
        - intended_use
      title: IdentificationTokenParams
      type: object
    IdentificationPersonParams:
      description: |
        Person Identification Params

        The params required to create an identification
      properties:
        address:
          $ref: '#/components/schemas/Address'
        consent_collected_at:
          description: |-
            Date and time when explicit consent was given to share identity
            timestamp must be UTC timestamp e.g. 2025-02-01T15:38:21.775210Z
          type: string
        date_of_birth:
          description: date of birth in YYYY-MM-DD format
          type: string
        documents:
          description: documents associated with the person
          items:
            $ref: '#/components/schemas/IdentityDocument'
          type: array
        edd_questionnaire:
          $ref: '#/components/schemas/EddQuestionnaire'
        email_address:
          description: email address of the person
          type: string
        first_name:
          description: first name
          type: string
        full_name:
          description: full name
          type: string
        identity:
          $ref: '#/components/schemas/PersonIdentity'
        intended_use:
          $ref: '#/components/schemas/IntendedUse'
        kyc_questionnaire:
          $ref: '#/components/schemas/KycQuestionnaire'
        last_name:
          description: last name
          type: string
        phone_number:
          description: phone number of the person (E.164 format)
          type: string
        sharing_consent:
          description: explicitly given consent to share identity information with iron
          type: boolean
        tax_identification_number:
          description: >-
            tax identification number. Required for US residents (SSN or TIN).

            Recommended for EEA residents — this is required for EEA residents
            by the end of 2026.
          type: string
        tax_residence_country:
          description: |-
            ISO 3166-1 alpha-2 country of tax residence. Required whenever
            `tax_identification_number` is set — TIN format is validated against
            this specific country, and it can genuinely differ from the
            customer's physical residence or nationality (the reason DAC8/CARF
            asks for it separately).
          type: string
      required:
        - sharing_consent
        - consent_collected_at
        - first_name
        - last_name
        - full_name
        - date_of_birth
        - phone_number
        - email_address
        - address
        - identity
        - intended_use
        - kyc_questionnaire
      title: IdentificationPersonParams
      type: object
    IdentificationBusinessParams:
      description: |
        Business Identification Params

        The params required to create an identification
      properties:
        company_data:
          $ref: '#/components/schemas/CompanyData'
        ip_address:
          description: The IP address of the device used to submit the identification
          type: string
        phone:
          description: The phone number of the company
          type: string
        questionnaire:
          $ref: '#/components/schemas/BusinessQuestionnaire'
      required:
        - company_data
        - phone
        - ip_address
        - questionnaire
      title: IdentificationBusinessParams
      type: object
    BusinessIdentificationStepStatus:
      properties:
        company_beneficiaries:
          $ref: '#/components/schemas/VerificationStepDetail'
        company_data:
          $ref: '#/components/schemas/VerificationStepDetail'
        company_documents:
          $ref: '#/components/schemas/VerificationStepDetail'
        questionnaire:
          $ref: '#/components/schemas/VerificationStepDetail'
      title: BusinessIdentificationStepStatus
      type: object
    PersonIdentificationStepStatus:
      properties:
        identity:
          $ref: '#/components/schemas/VerificationStepDetail'
        proof_of_residence:
          $ref: '#/components/schemas/VerificationStepDetail'
        questionnaire:
          $ref: '#/components/schemas/VerificationStepDetail'
        selfie:
          $ref: '#/components/schemas/VerificationStepDetail'
      title: PersonIdentificationStepStatus
      type: object
    EddQuestionnaire:
      description: >
        EDD Questionnaire


        The questionnaire for a reliance person residing in a country considered
        high risk
      properties:
        approximate_net_worth:
          $ref: '#/components/schemas/ApproximateNetWorth'
        occupation:
          $ref: '#/components/schemas/Occupation'
        source_of_funds_proof:
          description: >-
            Source of funds proof document, provided as a base64-encoded string.

            Supported formats: jpg, png, pdf, doc, docx, xls, xlsx, odt, ods,
            txt.

            Maximum size: 10MB
          type: string
      required:
        - occupation
        - approximate_net_worth
        - source_of_funds_proof
      title: EddQuestionnaire
      type: object
    IntendedUse:
      description: |
        Intended Purpose

        The intended purpose the person wants to use the account for
      enum:
        - Investing
        - PaymentToFriendsFamilyorOthers
        - PurchaseDigitalAssets
        - OnlinePurchasesOfGoodsOrServices
        - Trading
      type: string
    KycQuestionnaire:
      description: |
        KYC Questionnaire

        The questionnaire for a person
      properties:
        employment_status:
          $ref: '#/components/schemas/EmploymentStatus'
        expected_monthly_transaction_count:
          $ref: '#/components/schemas/PersonProfileExpectedMonthlyTransactionCount'
        expected_monthly_transaction_volume:
          $ref: '#/components/schemas/PersonProfileExpectedMonthlyTransactionVolumeV2'
        source_of_wealth:
          $ref: '#/components/schemas/PersonProfileSourceOfWealth'
        yearly_gross_income:
          $ref: '#/components/schemas/PersonProfileYearlyGrossIncome'
      required:
        - employment_status
        - yearly_gross_income
        - source_of_wealth
        - expected_monthly_transaction_count
        - expected_monthly_transaction_volume
      title: KycQuestionnaire
      type: object
    Address:
      description: Address
      properties:
        city:
          description: city
          type: string
        country:
          description: country (2-character ISO 3166)
          type: string
        state:
          description: state/province/region
          type: string
        street_1:
          description: street address
          type: string
        street_2:
          description: street address (additional)
          type: string
        zip_code:
          description: zip code
          type: string
      required:
        - street_1
        - city
        - zip_code
        - country
      title: Address
      type: object
    IdentityDocument:
      description: |
        Identity Document

        A base64 document that can be used to identify the business
      properties:
        file:
          description: Base64 encoded document without prefix (10MB max)
          type: string
        name:
          description: The name of the document with the file extension
          type: string
        type:
          $ref: '#/components/schemas/DocumentType'
      required:
        - name
        - file
        - type
      title: IdentityDocument
      type: object
    PersonIdentity:
      description: |
        Person Identity

        The required identity information of a person
      properties:
        identity_country_code:
          description: country (2-character ISO 3166)
          type: string
        identity_document_back:
          description: >-
            Base64 encoded image of ident document back without prefix (10MB
            max)
          type: string
        identity_document_front:
          description: >-
            Base64 encoded image of ident document front without prefix (10MB
            max)
          type: string
        identity_document_type:
          $ref: '#/components/schemas/IdentityDocumentType'
        identity_number:
          description: The identity number or identity document being submitted.
          type: string
        ip_address:
          description: ip address of device used to collect selfie
          type: string
        nationality:
          description: nationality (2-character ISO 3166 country code)
          type: string
        selfie:
          description: Base64 encoded image of selfie without prefix (10MB max)
          type: string
        selfie_collected_at:
          description: timestamp in ISO 8601 format
          type: string
      required:
        - identity_country_code
        - identity_document_type
        - identity_document_front
        - selfie
        - selfie_collected_at
        - ip_address
        - nationality
      title: PersonIdentity
      type: object
    CompanyData:
      description: |
        Company Data

        Full company submission: identifying info, beneficiaries, and supporting
        documents. Reused by the root identification request and by each nested
        business beneficiary.
      properties:
        beneficiaries:
          description: >-
            The beneficiaries of the company. Each level (root or nested
            business)

            requires at least one Director; UBOs and Representatives are also

            permitted at every level.
          items:
            $ref: '#/components/schemas/CompanyBeneficiary'
          type: array
        company_info:
          $ref: '#/components/schemas/CompanyInfo'
        documents:
          description: >-
            The company documents (max 4). Optional at submission: when the set
            is

            incomplete for the company's region, the identification is returned
            as

            Pending with a resume URL to collect the missing documents.
          items:
            $ref: '#/components/schemas/CompanyDocParams'
          type: array
      required:
        - company_info
        - beneficiaries
        - documents
      title: CompanyData
      type: object
    BusinessQuestionnaire:
      anyOf:
        - $ref: >-
            #/components/schemas/BusinessQuestionnaire_GenericBusinessQuestionnaire
        - $ref: >-
            #/components/schemas/BusinessQuestionnaire_SolePropBusinessQuestionnaire
      description: >
        KYB compliance questionnaire


        Use `GenericBusinessQuestionnaire` for all company types except sole
        proprietorships.

        Use `SolePropBusinessQuestionnaire` for sole proprietorships.
      discriminator:
        mapping:
          Generic:
            $ref: >-
              #/components/schemas/BusinessQuestionnaire_GenericBusinessQuestionnaire
          SoleProp:
            $ref: >-
              #/components/schemas/BusinessQuestionnaire_SolePropBusinessQuestionnaire
        propertyName: type
      type: object
    VerificationStepDetail:
      properties:
        comment:
          type: string
        result:
          $ref: '#/components/schemas/IdentificationStatus'
        retry:
          type: boolean
      required:
        - result
        - retry
      title: VerificationStepDetail
      type: object
    ApproximateNetWorth:
      description: |
        Approximate Net Worth

        The approximate net worth of the person
      enum:
        - UpTo25000
        - Between25001And50000
        - Between50001And100000
        - Between100001And300000
        - Between300001And500000
        - Between500001And1000000
        - Over1000001
      type: string
    Occupation:
      description: |
        Occupation

        The occupation of the person
      enum:
        - Agriculture
        - ArtsAndEntertainment
        - Construction
        - Education
        - FinancialServices
        - InformationAndTechnology
        - Retail
        - RealEstate
        - Other
        - BusinessOwner
        - Healthcare
        - Industrial
        - LegalServices
        - PublicSector
        - SeniorManagement
      type: string
    EmploymentStatus:
      description: |
        Employment Status

        The employment status of the person
      enum:
        - Employed
        - SelfEmployed
        - Unemployed
        - Retired
        - Student
      type: string
    PersonProfileExpectedMonthlyTransactionCount:
      description: |
        Expected Monthly Transaction Count

        The expected monthly transaction volume of the person
      enum:
        - LessThan5
        - Between5And10
        - MoreThan10
      type: string
    PersonProfileExpectedMonthlyTransactionVolumeV2:
      enum:
        - LessThan500
        - MoreThan500LessThan2000
        - MoreThan2000
      type: string
    PersonProfileSourceOfWealth:
      description: |
        Source of Wealth

        The source of wealth of the person
      enum:
        - Salary
        - Savings
        - Investments
        - CryptoTrading
        - Other
      type: string
    PersonProfileYearlyGrossIncome:
      description: >
        Yearly Gross Income


        The yearly gross income of the person.


        DEPRECATED VALUE: `MoreThan150000` predates the finer bands above
        150,000

        and is no longer accepted as-is — submissions containing it are coerced
        to

        `From150001To200000` on ingest. Use one of `From150001To200000`,

        `From200001To500000` or `MoreThan500000` instead.
      enum:
        - LessThan20000
        - From20001To30000
        - From30001To40000
        - From40001To50000
        - From50001To60000
        - From60001To70000
        - From70001To80000
        - From80001To90000
        - From90001To100000
        - From100001To110000
        - From110001To120000
        - From120001To130000
        - From130001To140000
        - From140001To150000
        - MoreThan150000
        - From150001To200000
        - From200001To500000
        - MoreThan500000
      type: string
    DocumentType:
      description: |
        Document Type

        The type of document used in the KYB process
      enum:
        - BusinessRegistrationDocument
        - MemorandumOfAssociation
        - ShareholdersRegistry
        - Other
        - ProofOfAddress
      type: string
    IdentityDocumentType:
      description: |
        Identity Document Type

        The type of identity document useful to KYB process
      enum:
        - Passport
        - NationalId
        - DriverLicense
        - ResidencePermit
      type: string
    CompanyBeneficiary:
      description: |
        Company Beneficial Owner

        The beneficial owner of the company
      properties:
        attested_at:
          description: >-
            When the beneficiary certified the information (RFC 3339, in the
            past).

            Required when attesting_party is true.
          type: string
        attesting_party:
          description: >-
            Marks this beneficiary as certifying the beneficial-ownership
            information

            (31 CFR 1010.230). Root-level person holding a Director role only.
            Required

            (exactly one beneficiary must set this to true) for every US

            non-sole-proprietorship business — Iron always generates and submits
            the

            certification on the attesting party's behalf, satisfying the
            Ownership

            Structure document requirement. Before setting this flag, present
            the

            collected beneficial-ownership information to this beneficiary and
            obtain

            their confirmation that it is complete and correct — Iron renders a

            certification naming them from the submitted data. Limited to simple

            ownership structures (at most three levels of beneficiaries: root, a

            nested business, and that business's own nested business); deeper

            structures cannot use this endpoint.
          type: boolean
        beneficiary_info:
          $ref: '#/components/schemas/CompanyBeneficiaryInfo'
        roles:
          description: The primary role of the beneficial owner
          items:
            $ref: '#/components/schemas/CompanyPrimaryBeneficiaryRole'
          type: array
        share_percentage:
          description: >-
            Share percentage of the beneficial owner (0-100). The combined
            shares of

            UltimateBeneficialOwner beneficiaries must not exceed 100 per
            company.
          format: decimal
          type: string
      required:
        - roles
        - beneficiary_info
      title: CompanyBeneficiary
      type: object
    CompanyInfo:
      description: >
        Company Info


        Identifying details about a company. Shared between the root
        identification

        request and any nested business beneficiaries so the same fields are

        collected at every level of the corporate structure.
      properties:
        address:
          $ref: '#/components/schemas/Address'
        alternative_names:
          description: The list of alternative names for the company
          items:
            type: string
          type: array
        company_name:
          description: The legal name of the company
          type: string
        company_type:
          $ref: '#/components/schemas/CompanyType'
        country:
          description: >-
            The ISO 3166-1 alpha-2 (2 letter) country code where the company is
            legally registered
          type: string
        email:
          description: The email address of the company
          type: string
        incorporation_date:
          description: The date of legal incorporation in YYYY-MM-DD format
          type: string
        legal_address:
          description: The address used during legal registration
          type: string
        postal_address:
          description: The postal address of the company
          type: string
        registration_number:
          description: The unique number assigned to the company when legally registered
          type: string
        tax_identification_number:
          description: The tax identification number of the company
          type: string
        website:
          description: The website of the company
          type: string
      required:
        - company_name
        - registration_number
        - country
        - incorporation_date
        - legal_address
        - postal_address
        - address
        - email
        - tax_identification_number
        - website
        - company_type
      title: CompanyInfo
      type: object
    CompanyDocParams:
      description: |
        Company document params

        The params required to create a company document
      properties:
        country:
          description: >-
            ISO 3166-1 alpha-2 (2 letter) country code of the country that
            issued the document
          type: string
        file:
          description: Base64 encoded document without prefix (10MB max)
          type: string
        type:
          $ref: '#/components/schemas/CompanyDocType'
      required:
        - type
        - country
        - file
      title: CompanyDocParams
      type: object
    BusinessQuestionnaire_GenericBusinessQuestionnaire:
      allOf:
        - properties:
            type:
              enum:
                - Generic
              example: Generic
              type: string
          required:
            - type
          type: object
        - $ref: '#/components/schemas/GenericBusinessQuestionnaire'
      description: >
        KYB compliance questionnaire


        Use `GenericBusinessQuestionnaire` for all company types except sole
        proprietorships.

        Use `SolePropBusinessQuestionnaire` for sole proprietorships.
    BusinessQuestionnaire_SolePropBusinessQuestionnaire:
      allOf:
        - properties:
            type:
              enum:
                - SoleProp
              example: SoleProp
              type: string
          required:
            - type
          type: object
        - $ref: '#/components/schemas/SolePropBusinessQuestionnaire'
      description: >
        KYB compliance questionnaire


        Use `GenericBusinessQuestionnaire` for all company types except sole
        proprietorships.

        Use `SolePropBusinessQuestionnaire` for sole proprietorships.
    CompanyBeneficiaryInfo:
      anyOf:
        - $ref: '#/components/schemas/PersonBeneficiaryInfo'
        - $ref: '#/components/schemas/BusinessBeneficiaryInfo'
      description: |
        Company Beneficiary Info

        The beneficiary info of the company
      type: object
    CompanyPrimaryBeneficiaryRole:
      description: |
        Beneficial Owner Role

        The role of the beneficial owner in the company
      enum:
        - UltimateBeneficialOwner
        - Representative
        - Director
        - Shareholder
      type: string
    CompanyType:
      description: |
        Company Type

        The type of company
      enum:
        - LimitedLiabilityCompany
        - PubliclyListedCompany
        - SoleProprietorship
        - Partnership
        - Corporation
        - Trust
        - PrivateFoundation
        - Charity
        - NonprofitCorporation
        - NonprofitOrganization
        - PublicAgenciesOrAuthorities
        - StockCorporationOutOfStock
        - GeneralCorporation
      type: string
    CompanyDocType:
      description: |
        Company document type

        The type of company document
      enum:
        - PowerOfAttorney
        - TransparencyRegistryExtract
        - DirectorsRegistry
        - GoodStandingCert
        - IncorporationArticles
        - IncorporationCert
        - IncumbencyCert
        - InformationStatement
        - PartnershipAgreement
        - ProofOfAddress
        - ProofOfNatureOfBusiness
        - RegulatoryLicense
        - SelfDeclarationForm
        - ShareholderRegistry
        - StateRegistry
        - TradeLicense
        - TrustAgreement
        - Other
      type: string
    GenericBusinessQuestionnaire:
      description: |
        KYB compliance questionnaire for standard company types
      properties:
        business_details:
          $ref: '#/components/schemas/BusinessQuestionnaireBusinessDetails'
        planned_activities:
          $ref: '#/components/schemas/BusinessQuestionnairePlannedActivities'
        source_of_funds:
          $ref: '#/components/schemas/BusinessQuestionnaireSourceOfFunds'
      required:
        - planned_activities
        - source_of_funds
        - business_details
      title: GenericBusinessQuestionnaire
      type: object
    SolePropBusinessQuestionnaire:
      description: |
        KYB compliance questionnaire for sole proprietorships
      properties:
        business_details:
          $ref: '#/components/schemas/SolePropBusinessDetails'
        planned_activities:
          $ref: '#/components/schemas/SolePropPlannedActivities'
        source_of_funds:
          $ref: '#/components/schemas/SolePropSourceOfFunds'
      required:
        - planned_activities
        - source_of_funds
        - business_details
      title: SolePropBusinessQuestionnaire
      type: object
    PersonBeneficiaryInfo:
      description: |
        Company Person Beneficiary Info

        The beneficiary info of the person
      properties:
        address:
          $ref: '#/components/schemas/Address'
        birth_place:
          $ref: '#/components/schemas/BirthPlace'
        date_of_birth:
          description: date of birth in YYYY-MM-DD format
          type: string
        email_address:
          description: email address of the person
          type: string
        first_name:
          description: first name
          type: string
        identity:
          $ref: '#/components/schemas/BeneficiaryIdentity'
        last_name:
          description: last name
          type: string
        middle_name:
          description: middle name
          type: string
        phone_number:
          description: phone number of the person (international format with leading +)
          type: string
        proof_of_address:
          description: >-
            Base64 encoded proof of address document (10MB max).

            Optional for every beneficiary role, in the US and ROW alike.
            Validated (base64, size)

            when provided, but never required for the identification to be
            processed.
          type: string
        tax_identification_number:
          description: >-
            tax identification number (SSN for US residents, national TIN
            otherwise).

            Required for Director and UltimateBeneficialOwner beneficiaries
            regardless of country,

            and for Representative beneficiaries outside the US. Always required
            for the

            UltimateBeneficialOwner of a sole proprietorship regardless of
            country.
          type: string
        tax_jurisdiction_country_code:
          description: ISO 3166-1 alpha-2 country code of the person's tax jurisdiction
          type: string
      required:
        - first_name
        - last_name
        - date_of_birth
        - address
        - email_address
        - phone_number
        - tax_jurisdiction_country_code
        - birth_place
        - identity
      title: PersonBeneficiaryInfo
      type: object
    BusinessBeneficiaryInfo:
      description: |
        Business Beneficiary Info

        A company that itself owns or controls the parent business. Carries the
        same `ApiCompanyData` as the root identification: company info, its own
        beneficiaries (which may include further nested businesses up to the
        configured depth limit), and supporting documents.
      properties:
        company_data:
          $ref: '#/components/schemas/CompanyData'
      required:
        - company_data
      title: BusinessBeneficiaryInfo
      type: object
    BusinessQuestionnaireBusinessDetails:
      description: |
        Business Details Section

        Industry classification and operational information about the company
      properties:
        business_model_description:
          description: Description of business model and target clients
          type: string
        estimated_annual_revenue:
          $ref: '#/components/schemas/BusinessEstimatedAnnualRevenue'
        has_licenses_or_registrations:
          description: Does the company maintain any licenses or registrations
          type: boolean
        industry_type:
          $ref: '#/components/schemas/BusinessIndustryType'
        license_details:
          description: >-
            Additional information about maintained licenses or registrations.
            Required for US

            businesses (IRON_KYB_US / IRON_US_KYB_NONDOC) when
            has_licenses_or_registrations is

            true — elaborates on that question instead of the
            AML-program/revenue questions used

            outside the US.
          type: string
        main_business_countries:
          description: Main countries of business operation (ISO 3166-1 alpha-2 codes)
          items:
            type: string
          type: array
        requires_aml_program:
          description: Is the company required to have an AML/CFT compliance program
          type: boolean
      required:
        - industry_type
        - business_model_description
        - main_business_countries
        - has_licenses_or_registrations
        - requires_aml_program
        - estimated_annual_revenue
      title: BusinessQuestionnaireBusinessDetails
      type: object
    BusinessQuestionnairePlannedActivities:
      description: >
        Planned Activities Section


        Information about the company's intended account use and transaction
        patterns
      properties:
        estimated_monthly_transactions:
          $ref: '#/components/schemas/BusinessEstimatedMonthlyTransactions'
        estimated_monthly_volume:
          $ref: '#/components/schemas/BusinessEstimatedMonthlyVolume'
        flow_of_funds_diagram:
          description: >-
            Base64 encoded flow of funds diagram (required when
            sends_funds_on_customer_behalf is true)
          type: string
        purpose_and_intended_use:
          $ref: '#/components/schemas/BusinessPurposeAndIntendedUse'
        sends_funds_on_customer_behalf:
          description: Does the company send funds on behalf of customers/third parties
          type: boolean
        sends_funds_on_customer_behalf_description:
          description: >-
            Description of how funds are sent on customer behalf (required if
            sends_funds_on_customer_behalf is true)
          type: string
        source_of_funds_document:
          description: >-
            Base64 encoded source of funds supporting document (required when
            sends_funds_on_customer_behalf is true)
          type: string
      required:
        - purpose_and_intended_use
        - estimated_monthly_volume
        - estimated_monthly_transactions
        - sends_funds_on_customer_behalf
      title: BusinessQuestionnairePlannedActivities
      type: object
    BusinessQuestionnaireSourceOfFunds:
      description: |
        Source of Funds Section

        Information about where the company's funds originate
      properties:
        customer_funds_handling_details:
          description: >-
            Details on how customer funds are handled, including business model
            and transaction flow (required)
          type: string
        source_of_funds:
          $ref: '#/components/schemas/RevenueSource'
        source_of_funds_description:
          description: Detailed description of source of funds (required)
          type: string
      required:
        - source_of_funds
        - source_of_funds_description
        - customer_funds_handling_details
      title: BusinessQuestionnaireSourceOfFunds
      type: object
    SolePropBusinessDetails:
      description: |
        Sole Prop Business Details Section
      properties:
        business_model_description:
          description: Description of business model and target clients
          type: string
        estimated_annual_revenue:
          $ref: '#/components/schemas/BusinessEstimatedAnnualRevenue'
        industry_type:
          $ref: '#/components/schemas/BusinessIndustryType'
        main_business_countries:
          description: Main countries of business operation (ISO 3166-1 alpha-2 codes)
          items:
            type: string
          type: array
      required:
        - industry_type
        - business_model_description
        - main_business_countries
        - estimated_annual_revenue
      title: SolePropBusinessDetails
      type: object
    SolePropPlannedActivities:
      description: |
        Sole Prop Planned Activities Section
      properties:
        estimated_monthly_transactions:
          $ref: '#/components/schemas/BusinessEstimatedMonthlyTransactions'
        estimated_monthly_volume:
          $ref: '#/components/schemas/BusinessEstimatedMonthlyVolume'
        purpose_and_intended_use:
          $ref: '#/components/schemas/BusinessPurposeAndIntendedUse'
      required:
        - purpose_and_intended_use
        - estimated_monthly_volume
        - estimated_monthly_transactions
      title: SolePropPlannedActivities
      type: object
    SolePropSourceOfFunds:
      description: |
        Sole Prop Source of Funds Section
      properties:
        source_of_funds:
          $ref: '#/components/schemas/RevenueSource'
      required:
        - source_of_funds
      title: SolePropSourceOfFunds
      type: object
    BirthPlace:
      description: |
        Birth place

        The place of birth of the person
      properties:
        country:
          description: ISO 3166-1 alpha-2 (2 letter) country code of the place of birth
          type: string
        place:
          description: place of birth
          type: string
        state:
          description: state of birth
          type: string
      required:
        - place
        - state
        - country
      title: BirthPlace
      type: object
    BeneficiaryIdentity:
      description: >
        Beneficiary Identity Document


        Identity document and biometric information for a person beneficiary.

        Mirrors ApiPersonIdentity but excludes ip_address (collected at the
        business level).
      properties:
        identity_country_code:
          description: ISO 3166-1 alpha-2 country code of the person's identity document
          type: string
        identity_document_back:
          description: Base64 encoded image of identity document back (10MB max)
          type: string
        identity_document_front:
          description: Base64 encoded image of identity document front (10MB max)
          type: string
        identity_document_type:
          $ref: '#/components/schemas/IdentityDocumentType'
        identity_number:
          description: The identity number of the document being submitted
          type: string
        nationality:
          description: ISO 3166-1 alpha-2 nationality country code
          type: string
        selfie:
          description: >-
            Base64 encoded selfie image (10MB max).

            Required for Director or Representative beneficiaries outside the
            US. Optional for

            every role in the US, and for other roles anywhere.
          type: string
        selfie_collected_at:
          description: |-
            timestamp in ISO 8601 format when the selfie was captured.
            Required when selfie is provided.
          type: string
      required:
        - identity_country_code
        - identity_document_type
        - identity_document_front
        - nationality
      title: BeneficiaryIdentity
      type: object
    BusinessEstimatedAnnualRevenue:
      description: |
        Estimated Annual Revenue

        Company's estimated annual revenue in EUR
      enum:
        - Under100K
        - From100KTo1M
        - From1MTo10M
        - From10MTo50M
        - From50MTo250M
        - Over250M
      type: string
    BusinessIndustryType:
      description: |
        Industry Type

        Business industry/sector classification
      enum:
        - Agriculture
        - Automotive
        - BankingAndFinancialServices
        - ConstructionAndRealEstate
        - CryptocurrencyAndBlockchain
        - CryptocurrencyMining
        - DecentralisedFinance
        - NftPlatforms
        - CryptoPaymentProcessors
        - CryptoWalletProviders
        - CryptoExchanges
        - CryptoCustodyServices
        - EcommerceAndOnlineMarketplaces
        - EducationAndTraining
        - EnergyAndUtilities
        - EntertainmentAndMedia
        - GamingAndEsports
        - HealthcareAndPharmaceuticals
        - HospitalityAndTourism
        - InformationTechnologyAndSoftware
        - Insurance
        - LegalAndProfessionalServices
        - LogisticsAndTransportation
        - ManufacturingAndIndustrial
        - MetaversePlatforms
        - MiningAndNaturalResources
        - NonProfitAndCharitable
        - RetailAndWholesaleTrade
        - Telecommunications
        - VentureCapitalAndPrivateEquity
        - CasinosAndGambling
        - MoneyServiceBusinesses
        - SocialMediaAndNetworking
        - CrowdfundingPlatforms
        - RegTech
        - Other
      type: string
    BusinessEstimatedMonthlyTransactions:
      description: |
        Estimated Monthly Transaction Count

        Expected number of transactions per month
      enum:
        - LessThanTen
        - TenToTwentyFive
        - TwentyFiveToFifty
        - FiftyToOneHundred
        - MoreThanOneHundred
      type: string
    BusinessEstimatedMonthlyVolume:
      description: |
        Estimated Monthly Transaction Volume

        Expected monthly transaction volume in EUR
      enum:
        - TenToTwentyFiveThousand
        - TwentyFiveToFiftyThousand
        - FiftyToOneHundredThousand
        - OneHundredToTwoHundredFiftyThousand
        - TwoHundredFiftyToFiveHundredThousand
        - MoreThanFiveHundredThousand
      type: string
    BusinessPurposeAndIntendedUse:
      description: |
        Purpose and Intended Use

        The intended purpose of the business account
      enum:
        - ReceivingBusinessIncome
        - BusinessPurchasesAndExpenses
        - EmployeeAndContractorPayouts
        - EcommerceSales
        - TreasuryManagement
        - PaymentIntermediary
        - Investments
        - TaxPlanning
        - AssetProtection
        - Other
      type: string
    RevenueSource:
      description: |
        Revenue Source

        Primary source of company funds
      enum:
        - BusinessRevenue
        - ShareholderFunds
        - VcPrivateEquity
        - AssetSale
        - IcoProceeds
        - CryptoActivityProceeds
        - LoanProceeds
        - Other
      type: string
  securitySchemes:
    ApiKeyAuth:
      description: API Key
      in: header
      name: X-API-Key
      type: apiKey

````