---
title: "Submit Due Diligence Form"
method: POST
path: "/entities/{entity_id}/due-diligence"
tags: ["Entities"]
---

# Submit Due Diligence Form

`POST /entities/{entity_id}/due-diligence`

## Request

- Base URL: `https://api.meow.com/v1`
- URL: `https://api.meow.com/v1/entities/{entity_id}/due-diligence`
- Auth: API key in header `x-api-key`
- TypeScript: <https://skmtc.dev/meow/apis/meow-api/docs/entities/:entity_id/due-diligence/post.ts> (a function with typed inputs; its response is checked against the schema)

Submit an enhanced due diligence form for a business entity. Some industries require additional due diligence before the application can be submitted (check `next_step.missing` on the onboarding status). Every standalone form with a schema can be submitted here. Supporting documents a form refers to are uploaded separately as entity documents, not in this body. Your answers are checked against the form schema, so fetch it first and send everything it marks required. Returns the updated onboarding status.

## Path parameters

- `entity_id` string, required: The entity being onboarded.

## Request body

- union
  - CannabisEddFormRequest
    - `form_type` 'cannabis', required: Selects the cannabis form. Must be `cannabis`.
    - `form_data` CannabisDueDiligence, required
      - `compounds` CbdType[], required: What plants/compounds do you work with?
      - `hemp_cbd` HempCbdDueDiligence
        - `activities` HempActivities[], required: Does your business engage in any of the following activities?
        - `operation_states` StateCode[], required: Please list the states in which you do business and/or operate in.
        - `cultivation` CannabisCultivatorDueDiligence
          - `hemp_cultivation_location_details` HempCultivationLocation[], required: Please include information for each location in which hemp is cultivated.
            - `name` string, required: Name of the cultivation location.
            - `physical_address` string, required: Physical address of the cultivation location.
            - `date_of_last_harvest` string, date, required: Date of the most recent harvest at this location.
            - `state_license` boolean, required: Whether this location holds a state cultivation license.
          - `harvest_testing_processes` string, required: What harvest testing processes are in place?
          - `non_compliant_plants_disposal` string, required: How are non-compliant plants disposed of?
          - `customer_base_product_acquisition` string, required: Who is your customer base, and how is your product obtained?
          - `purchase_controls` string, required: Describe any controls in place to ensure your customers are legally able to purchase/handle your product.
        - `manufacturing_products` CannabisProcessorManufacturerDueDiligence
          - `plant_sources` string, required: Please provide a list of cultivators/processors in which you source your plant for processing.
          - `final_products` string, required: Please provide a list of your final products.
          - `products_contain_thc` 'no' | 'low' | 'high', required
          - `cbd_type` CbdType[], required: What type of CBD is used in your product?
          - `product_testing_processes` string, required: What product testing processes are in place? Please include testing methods and timing.
          - `customer_base` string, required: Who is your customer base?
          - `how_products_sold` string, required: How are your products sold?
          - `purchase_controls` string, required: Describe any controls in place to ensure your customers are legally able to purchase/handle your product.
        - `processing` CannabisProcessorManufacturerDueDiligence
          - `plant_sources` string, required: Please provide a list of cultivators/processors in which you source your plant for processing.
          - `final_products` string, required: Please provide a list of your final products.
          - `products_contain_thc` 'no' | 'low' | 'high', required
          - `cbd_type` CbdType[], required: What type of CBD is used in your product?
          - `product_testing_processes` string, required: What product testing processes are in place? Please include testing methods and timing.
          - `customer_base` string, required: Who is your customer base?
          - `how_products_sold` string, required: How are your products sold?
          - `purchase_controls` string, required: Describe any controls in place to ensure your customers are legally able to purchase/handle your product.
        - `retail_sale` CannabisRetailSaleDueDiligence
          - `products_description` string, required: Please provide a description of products sold.
          - `products_contain_thc` 'no' | 'low' | 'high', required
          - `cbd_type` CbdType[], required: What type of CBD is used in your product?
          - `product_sources` string, required: Please provide a list of hemp processors/manufactures in which you source your product.
          - `product_compliance` string, required: How do you ensure your product is compliant with Federal and State requirements?
          - `sale_method` CannabisRetailSaleMethod[], required: How are your products sold?
          - `online_sales_tracking` string, nullable: For online sales, how do you track your customer's physical location? Applies only when `sale_method` includes `online`.
          - `physical_store_locations` string[], nullable: Addresses of every physical location your product is sold at. Applies only to in-person sales.
          - `accepted_payment_methods` AcceptedPaymentMethods[], required: How do you receive payment for your products/services?
      - `mrb` MrbDueDiligence
        - `marijuana_activities` MarijuanaActivities[], required: Which of these marijuana-related activities does your business engage in?
        - `marijuana_percentage_revenue` union, required: What percentage of your revenue does the above activity represent?
          - number
          - string
        - `product_service_description` string, required: Please provide a description of the products and/or services offered.
        - `customer_base_revenue` string, required: Please describe your customer base and how revenue is generated.
        - `accepted_payment_methods` AcceptedPaymentMethods[], required: How do you receive payment for your products/services?
        - `business_physical_locations` string[], nullable: Please list the addresses of all physical locations for the business.
        - `business_states` StateCode[], required: Please list the states in which you do business.
        - `atm_on_site` boolean, required: ATM on site?
        - `atm_owner` 'financial_institution' | 'contractor' | 'business'
        - `atm_owner_name` string, nullable: Name of the ATM's owner. Applies only when `atm_on_site` is `true` and the ATM is owned by a financial institution or a contractor.
        - `atm_funding` 'armored_car' | 'store_proceeds' | 'other'
  - CryptoEddFormRequest
    - `form_type` 'crypto', required: Selects the crypto form. Must be `crypto`.
    - `form_data` CryptoDueDiligence, required
      - `business_overview` string, required: Please provide an overview of the business.
      - `revenue_source` string, required: How does the business generate revenue? If you are not generating revenue currently, please provide a description of how you plan to generate revenue in the future or how funds are received to support ongoing business activities.
      - `product_service_description` string, required: Please provide a list of all products and services being offered by the company including the key features of each.
      - `customer_base` string, required: Please describe your customer base.
      - `source_of_funds` string, required: Please describe the source of wealth/funding for the entity's activities.
      - `anticipated_day_one_balance` string, nullable: Please provide your anticipated day one balance.
      - `is_money_service_business` boolean, required: Is the business classified as a money service business (MSB)?
      - `received_legal_opinion` boolean, nullable: Have you received a legal opinion regarding your MSB or money transmitter status?
      - `requires_license_money_transmitter` boolean, required: Is the business required to be licensed as money transmitter?
      - `custodies_cryptocurrency_nfts` boolean, required: Does the business custody cryptocurrency/NFT assets?
      - `operations` string[], nullable: Which of these does the business's operations include?
      - `operations_details` string, nullable: Please provide further details for each of the operations selected above. Applies only when `operations` is answered.
      - `aml_sanctions_compliance_policy` boolean, nullable: Do you currently have an AML/Sanctions Compliance Policy in place?
      - `screening_for_sanctions` boolean, nullable: Are you currently screening for sanctions (OFAC, EU, UK, etc.)?
      - `third_party_screening` boolean, nullable: Are you currently working with any third parties that conduct screening on your transactions?
      - `third_party_screening_details` string, nullable: Please provide the details of the third party screening you are working with. Applies only when `third_party_screening` is `true`.
      - `sanctions_screening_process` string, nullable: Please describe your screening process.
      - `subject_to_regulatory_actions` boolean, nullable: Has the entity been subject to any regulatory actions related to the services offered?
      - `regulatory_actions_explanation` string, nullable: Please provide an explanation. Applies only when `subject_to_regulatory_actions` is `true`.
      - `international_transactions` boolean, nullable: Whether the business expects to send or receive international transactions.
      - `international_transactions_description` string, nullable: Details of the international transactions the business expects.
      - `anticipated_account_use` string, nullable: Please describe the entity's flow of funds to depict anticipated account use.
      - `expected_activity` ExpectedActivity, required
        - `local` ExpectedTransactionsRegion
          - `ach` ExpectedTransactionsNetwork
            - `inbound` ExpectedTransactionQuantities
              - …
            - `outbound` ExpectedTransactionQuantities
              - …
          - `wire` ExpectedTransactionsNetwork
            - `inbound` ExpectedTransactionQuantities
              - …
            - `outbound` ExpectedTransactionQuantities
              - …
        - `intl` ExpectedTransactionsRegion
          - `ach` ExpectedTransactionsNetwork
            - `inbound` ExpectedTransactionQuantities
              - …
            - `outbound` ExpectedTransactionQuantities
              - …
          - `wire` ExpectedTransactionsNetwork
            - `inbound` ExpectedTransactionQuantities
              - …
            - `outbound` ExpectedTransactionQuantities
              - …
      - `multiple_locations` boolean: Does the business have operations in multiple locations?
      - `locations_list` string[], nullable: Please list the addresses of all physical locations for the business. Please include the location type/purpose as well (e.g. Headquarters, Branch, etc.). Applies only when `multiple_locations` is `true`.
      - `has_adverse_media` boolean: Do the entity, parent organization, owner(s), signer(s), or control person(s) have any adverse media incident?
      - `adverse_media_explanation` string, nullable: Please provide an explanation for the adverse media incident(s) and any remediation efforts. Applies only when `has_adverse_media` is `true`.
      - `has_adverse_media_related_issues` boolean: Has the entity, parent organization, owner(s), or product been subject to adverse media related to corruption, bribery, money laundering, fraud, exploitation, or similar issues?
      - `adverse_media_related_issues_explanation` string, nullable: Please explain the incident and remediation efforts. Applies only when `has_adverse_media_related_issues` is `true`.
      - `funding_sources` string, nullable: Provide a detailed breakdown of funding sources (funding rounds, staking, etc.), including investor KYC and PEP/sanctions screening.
      - `grant_disbursement_criteria` string, nullable: Provide clear grant disbursement criteria and beneficiary KYC/PEP/sanctions screening procedures.
      - `affiliations` string, nullable: List any affiliations with other charities, non-profit organizations (NPOs), governments, etc.
      - `attestation` boolean: I confirm that all information provided in this form is true and accurate to the best of my knowledge.
  - InvestmentsEddFormRequest
    - `form_type` 'investments', required: Selects the investment form. Must be `investments`.
    - `form_data` InvestmentsDueDiligence, required
      - `overview` string, required: Provide an overview of business activities and market focus. Make sure to include industry and area focuses as applicable.
      - `international_investments` boolean, required: Do you invest in Businesses outside of the US?
      - `countries_invested` CountryCodeAlpha2[], nullable: Which non-US countries are/will you have investments in? Applies only when `international_investments` is `true`.
      - `registered_sec` boolean, required: Are you or your firm registered with the SEC?
      - `current_portfolio_value` union, required: What is the current value of your portfolio?
        - number
        - string
      - `works_with_investors` boolean, nullable: Do you work with investors?
      - `investors` InvestorsDueDiligence
        - `type_of_investors` InvestorType[], required: Which types of investors do you work with?
        - `international_investors` boolean, required: Do you have international investors?
        - `investor_countries` CountryCodeAlpha2[], nullable: Which countries do you accept investors from? Applies only when `international_investors` is `true`.
        - `investor_verification_process` string, required: How do you verify the identities of your investors? Include what information is collected and how it is verified.
        - `additional_investors_due_diligence` string, nullable: Describe additional due diligence or requirements for investors as applicable.
  - HoldingsEddFormRequest
    - `form_type` 'holdings', required: Selects the holding-company form. Must be `holdings`.
    - `form_data` HoldingsDueDiligence, required
      - `holding_type` 'investor' | 'real_estate', required
      - `holding_entity_type` HoldingEntityType[], required: Was this holding company established to protect properties acquired by a business, investors, or an individual?
      - `real_estate` RealEstateHoldingDueDiligence
        - `property_types` PropertyType[], required: What type of properties are held?
        - `restricted_purpose` boolean: Do you hold commercial properties being used for any of the following purposes? Cannabis-Related Businesses, Fire-Arm Retailers, Adult Entertainment Establishments, Gambling Establishments. Applies only when `property_types` includes `commercial_use`.
      - `investors` InvestorsDueDiligence
        - `type_of_investors` InvestorType[], required: Which types of investors do you work with?
        - `international_investors` boolean, required: Do you have international investors?
        - `investor_countries` CountryCodeAlpha2[], nullable: Which countries do you accept investors from? Applies only when `international_investors` is `true`.
        - `investor_verification_process` string, required: How do you verify the identities of your investors? Include what information is collected and how it is verified.
        - `additional_investors_due_diligence` string, nullable: Describe additional due diligence or requirements for investors as applicable.
  - MpmEddFormRequest
    - `form_type` 'mpm', required: Selects the managed-property-manager form. Must be `mpm`.
    - `form_data` MpmDueDiligence, required
      - `overview` string, required: Please provide an overview of business activities and market focus. Please include any specialties (distressed investing, growth, sector, etc.).
      - `services_offered` MpmServicesOffered[], required: Services Offered (please check all that apply).
      - `international_businesses` boolean, nullable: Do you work with international businesses?
      - `other_countries_operations` CountryCodeAlpha2[], nullable: Which non-US countries do you operate in (current or planned)? Applies only when `international_businesses` is `true`.
      - `works_with_investors` boolean, nullable: Do you work with investors?
      - `investors` InvestorsDueDiligence
        - `type_of_investors` InvestorType[], required: Which types of investors do you work with?
        - `international_investors` boolean, required: Do you have international investors?
        - `investor_countries` CountryCodeAlpha2[], nullable: Which countries do you accept investors from? Applies only when `international_investors` is `true`.
        - `investor_verification_process` string, required: How do you verify the identities of your investors? Include what information is collected and how it is verified.
        - `additional_investors_due_diligence` string, nullable: Describe additional due diligence or requirements for investors as applicable.
  - RealEstateEddFormRequest
    - `form_type` 'real_estate', required: Selects the real-estate form. Must be `real_estate`.
    - `form_data` RealEstateDueDiligence, required
      - `overview` string, required: Provide an overview of business activities and market focus. Make sure to include industry and area focuses as applicable.
      - `collects_rent_payments` boolean, required: Do you collect rent payments as part of your business operations?
      - `property_types` PropertyType[], required: What type of properties are held?
      - `restricted_purpose` boolean, nullable: Do you hold commercial properties being used for any of the following purposes? Cannabis-Related Businesses, Fire-Arm Retailers, Adult Entertainment Establishments, Gambling Establishments. Applies only when `property_types` includes `commercial_use`.
      - `other_countries_invested` CountryCodeAlpha2[], nullable: Do you have properties (current or planned) in other countries aside from the US?
      - `works_with_investors` boolean, nullable: Do you work with investors?
      - `investors` InvestorsDueDiligence
        - `type_of_investors` InvestorType[], required: Which types of investors do you work with?
        - `international_investors` boolean, required: Do you have international investors?
        - `investor_countries` CountryCodeAlpha2[], nullable: Which countries do you accept investors from? Applies only when `international_investors` is `true`.
        - `investor_verification_process` string, required: How do you verify the identities of your investors? Include what information is collected and how it is verified.
        - `additional_investors_due_diligence` string, nullable: Describe additional due diligence or requirements for investors as applicable.
      - `loan_types` LoanType[], nullable: If you offer loans, please select the type from the options below.
      - `other_loan_types` string, nullable: What other loan types are managed? Applies only when `loan_types` includes `other`.
  - NoWebsiteEddFormRequest
    - `form_type` 'no_website', required: Selects the no-website form. Must be `no_website`.
    - `form_data` NoWebsiteDueDiligence, required
      - `previous_experience` string, required: Please describe any previous experience in this industry.
      - `industry_certs_licenses` boolean, required: Do you or your business hold industry-related certifications or licenses?
      - `product_service_revenue` string, required: Describe your current product/service offering and how revenue is generated.
      - `accepted_payment_methods` AcceptedPaymentMethods[], required: How do you receive payment for your products/services?
      - `customer_base` string, required: Please describe your customer base.
  - NonUSUbosEddFormRequest
    - `form_type` 'non_us_ubos', required: Selects the non-US beneficial owners form. Must be `non_us_ubos`.
    - `form_data` NonUSUbosDueDiligence, required
      - `has_us_based_beneficial_owners` boolean, required: Does your business have at least one US-based beneficial owner?
      - `currently_has_us_based_operations` boolean, nullable: Does your business currently have US-based operations? Applies only when `has_us_based_beneficial_owners` is `false`.
      - `us_based_operations_start_date` string, date, nullable: When did your business start its US-based operations? Applies only when the business has US-based operations.
      - `physical_presence_in_us` 'no_physical_presence' | 'remote_employees_in_us' | 'physical_presence_in_us' | 'third_party_operations_partnership'
      - `physical_presence_in_us_address` string, nullable: The US address. Applies only when `physical_presence_in_us` reports premises of your own (`physical_presence_in_us`) or a third-party operations partner (`third_party_operations_partnership`); remote employees in the US need no address.
      - `physical_presence_in_us_description` string, nullable: How do you serve the US market without a physical presence? Applies only when `physical_presence_in_us` is `no_physical_presence`.
      - `products_and_services_offered_in_us` string, nullable: What products and/or services do you offer in the US?
      - `how_do_you_attract_us_customers` string, nullable: How do you market to/attract customers from the US?
  - ProtocolEcosystemEddFormRequest
    - `form_type` 'protocol_ecosystem', required: Selects the protocol-ecosystem form. Must be `protocol_ecosystem`.
    - `form_data` ProtocolEcosystemDueDiligence, required
      - `protocol_name` string, required: Name of the protocol or project.
      - `related_entities` RelatedEntity[], nullable: Every entity in the broader ecosystem that supports, develops, governs, issues tokens for, or otherwise relates to the protocol — not just subsidiaries and affiliates.
        - `legal_name` string, required: Legal name of the related entity.
        - `jurisdiction_of_formation` 'AW' | 'AF' | 'AO' | 'AI' | 'AX' | 'AL' | 'AD' | 'AE' | 'AR' | 'AM' | 'AS' | 'AQ' | 'TF' | 'AG' | 'AU' | 'AT' | 'AZ' | 'BI' | 'BE' | 'BJ' | 'BQ' | 'BF' | 'BD' | 'BG' | 'BH' | 'BS' | 'BA' | 'BL' | 'BY' | 'BZ' | 'BM' | 'BO' | 'BR' | 'BB' | 'BN' | 'BT' | 'BV' | 'BW' | 'CF' | 'CA' | 'CC' | 'CH' | 'CL' | 'CN' | 'CI' | 'CM' | 'CD' | 'CG' | 'CK' | 'CO' | 'KM' | 'CV' | 'CR' | 'CU' | 'CW' | 'CX' | 'KY' | 'CY' | 'CZ' | 'DE' | 'DJ' | 'DM' | 'DK' | 'DO' | 'DZ' | 'EC' | 'EG' | 'ER' | 'EH' | 'ES' | 'EE' | 'ET' | 'FI' | 'FJ' | 'FK' | 'FR' | 'FO' | 'FM' | 'GA' | 'GB' | 'GE' | 'GG' | 'GH' | 'GI' | 'GN' | 'GP' | 'GM' | 'GW' | 'GQ' | 'GR' | 'GD' | 'GL' | 'GT' | 'GF' | 'GU' | 'GY' | 'HK' | 'HM' | 'HN' | 'HR' | 'HT' | 'HU' | 'ID' | 'IM' | 'IN' | 'IO' | 'IE' | 'IR' | 'IQ' | 'IS' | 'IL' | 'IT' | 'JM' | 'JE' | 'JO' | 'JP' | 'KZ' | 'KE' | 'KG' | 'KH' | 'KI' | 'KN' | 'KR' | 'KW' | 'LA' | 'LB' | 'LR' | 'LY' | 'LC' | 'LI' | 'LK' | 'LS' | 'LT' | 'LU' | 'LV' | 'MO' | 'MF' | 'MA' | 'MC' | 'MD' | 'MG' | 'MV' | 'MX' | 'MH' | 'MK' | 'ML' | 'MT' | 'MM' | 'ME' | 'MN' | 'MP' | 'MZ' | 'MR' | 'MS' | 'MQ' | 'MU' | 'MW' | 'MY' | 'YT' | 'NA' | 'NC' | 'NE' | 'NF' | 'NG' | 'NI' | 'NU' | 'NL' | 'NO' | 'NP' | 'NR' | 'NZ' | 'OM' | 'PK' | 'PA' | 'PN' | 'PE' | 'PH' | 'PW' | 'PG' | 'PL' | 'PR' | 'KP' | 'PT' | 'PY' | 'PS' | 'PF' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'SA' | 'SD' | 'SN' | 'SG' | 'GS' | 'SH' | 'SJ' | 'SB' | 'SL' | 'SV' | 'SM' | 'SO' | 'PM' | 'RS' | 'SS' | 'ST' | 'SR' | 'SK' | 'SI' | 'SE' | 'SZ' | 'SX' | 'SC' | 'SY' | 'TC' | 'TD' | 'TG' | 'TH' | 'TJ' | 'TK' | 'TM' | 'TL' | 'TO' | 'TT' | 'TN' | 'TR' | 'TV' | 'TW' | 'TZ' | 'UG' | 'UA' | 'UM' | 'UY' | 'US' | 'UZ' | 'VA' | 'VC' | 'VE' | 'VG' | 'VI' | 'VN' | 'VU' | 'WF' | 'WS' | 'XK' | 'YE' | 'ZA' | 'ZM' | 'ZW', required
        - `primary_functional_role` string, required: What the related entity does within the protocol ecosystem.
      - `corporate_structure_description` string, nullable: Corporate Structure Description or Notes. Please provide a corporate structure chart showing parent/subsidiary relationships, ownership percentages, and any shared directors or managers across ecosystem entities. You may attach a separate diagram.
      - `protocol_upgrade_process` string, required: How are protocol upgrades proposed and implemented? Answer for protocol-level governance and control; token issuance authority and the user-facing interface are asked about separately.
      - `treasury_authority` string, required: Who has authority over protocol treasury assets?
      - `has_unilateral_authority` boolean, required: Does any entity have unilateral administrative, upgrade, pause, or emergency authority over the protocol?
      - `unilateral_authority_details` string, nullable: Identify the entity or governance mechanism that holds this authority. Applies only when `has_unilateral_authority` is `true`.
      - `fund_flows_description` string, required: Description of Fund Flows. Please describe all fund flows between ecosystem entities, including the purpose of each flow.
      - `has_contractual_arrangements` boolean, required: Are there contractual arrangements governing such flows?
      - `protocol_generates_fees` boolean, required: Does protocol usage generate fees or other value?
      - `fee_accrual_destination` string, nullable: Where do such fees or value accrue (e.g., smart contract, treasury wallet, multisig, entity-level account)? Applies only when `protocol_generates_fees` is `true`.
      - `fee_control_entity` string, nullable: Which entity, governance mechanism, or group ultimately controls those accrued amounts? Applies only when `protocol_generates_fees` is `true`.
      - `interface_operator_entity` string, nullable: Which entity operates or maintains the user-facing website or interface? Answered only when the protocol has one.
      - `website_url` string, nullable: Website URL (if applicable).
      - `users_can_interact_directly` boolean, required: Can users interact directly with the smart contracts without using the official interface?
      - `interface_implements_screening` boolean, required: Does the interface implement sanctions screening, wallet screening, or geographic/IP-based restrictions?
      - `screening_controls_description` string, nullable: Describe the controls and any third-party vendors used. Applies only when `interface_implements_screening` is `true`.
      - `offers_wallet` boolean, nullable: Whether an ecosystem entity offers or supports a user wallet.
      - `wallet_overview_custody` WalletOverviewCustody
        - `operator_entity` string, required: The ecosystem entity that operates or maintains the wallet.
        - `operator_jurisdiction` 'AW' | 'AF' | 'AO' | 'AI' | 'AX' | 'AL' | 'AD' | 'AE' | 'AR' | 'AM' | 'AS' | 'AQ' | 'TF' | 'AG' | 'AU' | 'AT' | 'AZ' | 'BI' | 'BE' | 'BJ' | 'BQ' | 'BF' | 'BD' | 'BG' | 'BH' | 'BS' | 'BA' | 'BL' | 'BY' | 'BZ' | 'BM' | 'BO' | 'BR' | 'BB' | 'BN' | 'BT' | 'BV' | 'BW' | 'CF' | 'CA' | 'CC' | 'CH' | 'CL' | 'CN' | 'CI' | 'CM' | 'CD' | 'CG' | 'CK' | 'CO' | 'KM' | 'CV' | 'CR' | 'CU' | 'CW' | 'CX' | 'KY' | 'CY' | 'CZ' | 'DE' | 'DJ' | 'DM' | 'DK' | 'DO' | 'DZ' | 'EC' | 'EG' | 'ER' | 'EH' | 'ES' | 'EE' | 'ET' | 'FI' | 'FJ' | 'FK' | 'FR' | 'FO' | 'FM' | 'GA' | 'GB' | 'GE' | 'GG' | 'GH' | 'GI' | 'GN' | 'GP' | 'GM' | 'GW' | 'GQ' | 'GR' | 'GD' | 'GL' | 'GT' | 'GF' | 'GU' | 'GY' | 'HK' | 'HM' | 'HN' | 'HR' | 'HT' | 'HU' | 'ID' | 'IM' | 'IN' | 'IO' | 'IE' | 'IR' | 'IQ' | 'IS' | 'IL' | 'IT' | 'JM' | 'JE' | 'JO' | 'JP' | 'KZ' | 'KE' | 'KG' | 'KH' | 'KI' | 'KN' | 'KR' | 'KW' | 'LA' | 'LB' | 'LR' | 'LY' | 'LC' | 'LI' | 'LK' | 'LS' | 'LT' | 'LU' | 'LV' | 'MO' | 'MF' | 'MA' | 'MC' | 'MD' | 'MG' | 'MV' | 'MX' | 'MH' | 'MK' | 'ML' | 'MT' | 'MM' | 'ME' | 'MN' | 'MP' | 'MZ' | 'MR' | 'MS' | 'MQ' | 'MU' | 'MW' | 'MY' | 'YT' | 'NA' | 'NC' | 'NE' | 'NF' | 'NG' | 'NI' | 'NU' | 'NL' | 'NO' | 'NP' | 'NR' | 'NZ' | 'OM' | 'PK' | 'PA' | 'PN' | 'PE' | 'PH' | 'PW' | 'PG' | 'PL' | 'PR' | 'KP' | 'PT' | 'PY' | 'PS' | 'PF' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'SA' | 'SD' | 'SN' | 'SG' | 'GS' | 'SH' | 'SJ' | 'SB' | 'SL' | 'SV' | 'SM' | 'SO' | 'PM' | 'RS' | 'SS' | 'ST' | 'SR' | 'SK' | 'SI' | 'SE' | 'SZ' | 'SX' | 'SC' | 'SY' | 'TC' | 'TD' | 'TG' | 'TH' | 'TJ' | 'TK' | 'TM' | 'TL' | 'TO' | 'TT' | 'TN' | 'TR' | 'TV' | 'TW' | 'TZ' | 'UG' | 'UA' | 'UM' | 'UY' | 'US' | 'UZ' | 'VA' | 'VC' | 'VE' | 'VG' | 'VI' | 'VN' | 'VU' | 'WF' | 'WS' | 'XK' | 'YE' | 'ZA' | 'ZM' | 'ZW'
        - `product_name` string, required: The wallet product or brand name.
        - `access_description` string, required: How users access the wallet, such as through an app or integration.
        - `wallet_type` 'third_party_integrated' | 'proprietary', required
        - `provider_infrastructure` string, nullable: Any wallet provider or infrastructure used by the product.
        - `custody_model` 'non_custodial' | 'custodial' | 'mpc_shared_control' | 'other', required
        - `entity_or_third_party_asset_control` boolean, required: Whether an ecosystem entity or third party can control user assets.
        - `asset_control_details` string, nullable: How an ecosystem entity or third party can control user assets.
        - `user_assets_segregated` 'yes' | 'no' | 'na'
        - `user_assets_rehypothecated` 'yes' | 'no' | 'na'
        - `user_assets_held_one_to_one` 'yes' | 'no' | 'na'
        - `third_party_custodians` string, nullable: Any third-party custodians holding wallet user assets.
      - `wallet_supported_assets_networks` WalletSupportedAssetsNetworks
        - `networks_supported` string, required: The blockchains or networks supported by the wallet.
        - `asset_types_supported` string, required: The types of assets supported by the wallet.
      - `wallet_functionality_services` WalletFunctionalityServices
        - `send_receive_transfers` boolean, required: Whether the wallet supports send and receive transfers.
        - `in_wallet_swaps` boolean, required: Whether the wallet supports swaps or exchange.
        - `staking_yield` boolean, required: Whether the wallet supports staking or yield generation.
        - `bridging_cross_chain` boolean, required: Whether the wallet supports bridging or cross-chain transfers.
        - `fiat_on_ramp` boolean, required: Whether the wallet supports buying crypto with fiat.
        - `fiat_off_ramp` boolean, required: Whether the wallet supports selling or withdrawing to fiat.
        - `card_payment` boolean, required: Whether the wallet supports card or payment functionality.
        - `lending_borrowing` boolean, required: Whether the wallet supports lending or borrowing.
        - `third_party_dapps` boolean, required: Whether the wallet connects to third-party applications.
        - `third_party_providers` string, nullable: Third parties used for swaps, bridges, or fiat services.
      - `wallet_users_controls` WalletUsersControls
        - `requires_kyc` boolean, required: Whether wallet users must complete identity verification.
        - `kyc_details` string, nullable: The identity verification provider, responsible entity, and timing.
        - `wallet_limits` string, required: Transaction, balance, or withdrawal limits applied to the wallet.
      - `wallet_address_screening` string, required: Whether wallet or address screening is implemented at any layer of the ecosystem — protocol, interface, token distribution, treasury, grants, or otherwise.
      - `ip_geoblocking` string, required: IP-based geoblocking.
      - `blocking_sanctioned_jurisdictions` string, required: Blocking of sanctioned jurisdictions.
      - `blocking_sanctioned_wallets` string, required: Blocking of sanctioned wallet addresses.
      - `screening_token_sale` string, required: Screening applied to token sale participants.
      - `screening_governance` string, required: Screening applied to governance participation.
      - `screening_fee_distributions` string, required: Screening applied to protocol-generated fee distributions.
      - `screening_treasury` string, required: Screening applied to treasury disbursements.
      - `sanctions_implementing_entity` string, nullable: Which entity implements the screening controls answered `yes` above.
      - `sanctions_restricted_countries` CountryCodeAlpha2[], nullable: Specific countries subject to restriction.
      - `has_token` boolean, required: Does this ecosystem have a token? The token fields are answered only when this is `true`.
      - `token_basics` TokenBasics
        - `token_name` string, required: Name of the token.
        - `ticker_symbol` string, required: Ticker symbol of the token.
        - `blockchain_network` string, required: Blockchain or network the token is deployed on.
        - `date_of_deployment` string, nullable: Date the token was deployed.
      - `token_issuer` TokenIssuer
        - `issuer_legal_entity` string, required: Legal entity that deployed or issued the token.
        - `issuer_jurisdiction` 'AW' | 'AF' | 'AO' | 'AI' | 'AX' | 'AL' | 'AD' | 'AE' | 'AR' | 'AM' | 'AS' | 'AQ' | 'TF' | 'AG' | 'AU' | 'AT' | 'AZ' | 'BI' | 'BE' | 'BJ' | 'BQ' | 'BF' | 'BD' | 'BG' | 'BH' | 'BS' | 'BA' | 'BL' | 'BY' | 'BZ' | 'BM' | 'BO' | 'BR' | 'BB' | 'BN' | 'BT' | 'BV' | 'BW' | 'CF' | 'CA' | 'CC' | 'CH' | 'CL' | 'CN' | 'CI' | 'CM' | 'CD' | 'CG' | 'CK' | 'CO' | 'KM' | 'CV' | 'CR' | 'CU' | 'CW' | 'CX' | 'KY' | 'CY' | 'CZ' | 'DE' | 'DJ' | 'DM' | 'DK' | 'DO' | 'DZ' | 'EC' | 'EG' | 'ER' | 'EH' | 'ES' | 'EE' | 'ET' | 'FI' | 'FJ' | 'FK' | 'FR' | 'FO' | 'FM' | 'GA' | 'GB' | 'GE' | 'GG' | 'GH' | 'GI' | 'GN' | 'GP' | 'GM' | 'GW' | 'GQ' | 'GR' | 'GD' | 'GL' | 'GT' | 'GF' | 'GU' | 'GY' | 'HK' | 'HM' | 'HN' | 'HR' | 'HT' | 'HU' | 'ID' | 'IM' | 'IN' | 'IO' | 'IE' | 'IR' | 'IQ' | 'IS' | 'IL' | 'IT' | 'JM' | 'JE' | 'JO' | 'JP' | 'KZ' | 'KE' | 'KG' | 'KH' | 'KI' | 'KN' | 'KR' | 'KW' | 'LA' | 'LB' | 'LR' | 'LY' | 'LC' | 'LI' | 'LK' | 'LS' | 'LT' | 'LU' | 'LV' | 'MO' | 'MF' | 'MA' | 'MC' | 'MD' | 'MG' | 'MV' | 'MX' | 'MH' | 'MK' | 'ML' | 'MT' | 'MM' | 'ME' | 'MN' | 'MP' | 'MZ' | 'MR' | 'MS' | 'MQ' | 'MU' | 'MW' | 'MY' | 'YT' | 'NA' | 'NC' | 'NE' | 'NF' | 'NG' | 'NI' | 'NU' | 'NL' | 'NO' | 'NP' | 'NR' | 'NZ' | 'OM' | 'PK' | 'PA' | 'PN' | 'PE' | 'PH' | 'PW' | 'PG' | 'PL' | 'PR' | 'KP' | 'PT' | 'PY' | 'PS' | 'PF' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'SA' | 'SD' | 'SN' | 'SG' | 'GS' | 'SH' | 'SJ' | 'SB' | 'SL' | 'SV' | 'SM' | 'SO' | 'PM' | 'RS' | 'SS' | 'ST' | 'SR' | 'SK' | 'SI' | 'SE' | 'SZ' | 'SX' | 'SC' | 'SY' | 'TC' | 'TD' | 'TG' | 'TH' | 'TJ' | 'TK' | 'TM' | 'TL' | 'TO' | 'TT' | 'TN' | 'TR' | 'TV' | 'TW' | 'TZ' | 'UG' | 'UA' | 'UM' | 'UY' | 'US' | 'UZ' | 'VA' | 'VC' | 'VE' | 'VG' | 'VI' | 'VN' | 'VU' | 'WF' | 'WS' | 'XK' | 'YE' | 'ZA' | 'ZM' | 'ZW', required
        - `issuer_acted_as_principal` boolean, required: Did the issuing entity act solely as principal in connection with issuance or sale?
      - `token_supply` TokenSupply
        - `supply_type` string, required: Whether the token's total supply is fixed or uncapped.
        - `total_supply` string, nullable: Total supply of the token.
        - `distribution_description` string, required: High-level description of initial distribution. e.g., ecosystem allocation, team allocation, treasury allocation, public sale, private sale.
        - `primary_sale_occurred` boolean, required: Did a primary token sale occur?
        - `primary_sale_entity` string, nullable: Which entity conducted the sale? Applies only when `primary_sale_occurred` is `true`.
        - `jurisdictional_restrictions_applied` boolean, nullable: Did jurisdictional participation restrictions apply to the token sale? Applies only when `primary_sale_occurred` is `true`.
      - `token_function` TokenFunction
        - `primary_function` string, required: Primary function of the token. e.g., governance, protocol utility, staking, gas/transaction fees.
        - `holders_receive_equity` boolean, nullable: Whether token holders receive equity ownership.
        - `holders_receive_revenue_share` boolean, nullable: Whether token holders receive a revenue share.
        - `holders_receive_dividends` boolean, nullable: Whether token holders receive dividends.
        - `holders_receive_contractual_claim` boolean, nullable: Whether token holders receive a contractual claim on the entity's assets.
      - `token_custody` TokenCustody
        - `issuance_authority` string, required: Who has authority over token issuance or distribution decisions?
        - `third_party_conducts_sales` boolean, required: Does any entity other than the issuer conduct token sales or distributions?
        - `third_party_sales_details` string, nullable: Identify the entity and describe the arrangement. Applies only when `third_party_conducts_sales` is `true`.
        - `entity_maintains_custody` boolean, required: Does any ecosystem entity maintain custody of tokens for users?
        - `custody_entity` string, nullable: Identify the entity. Applies only when `entity_maintains_custody` is `true`.
      - `obtained_legal_analysis` boolean, required: Has any ecosystem entity obtained a legal analysis regarding licensing or registration obligations under applicable virtual asset, money transmission, or securities laws?
      - `legal_analysis_summary` string, nullable: Please attach a copy or provide a summary below. Applies only when `obtained_legal_analysis` is `true`.
      - `registered_as_msb_vasp` boolean, required: Has any ecosystem entity registered as a money services business, VASP, or similar regulated entity?
      - `msb_vasp_details` string, nullable: Please provide details (entity name, registration type, jurisdiction). Applies only when `registered_as_msb_vasp` is `true`.
      - `registration_not_required` boolean, required: Has any ecosystem entity determined that registration is not required?
      - `registration_not_required_details` string, nullable: Please provide details or supporting documentation. Applies only when `registration_not_required` is `true`.
  - InternationalEddFormRequest
    - `form_type` 'international', required: Selects the international form. Must be `international`.
    - `form_data` InternationalDueDiligence, required
      - `business_overview` string, required: Please provide a general overview of your business and what it does.
      - `revenue_source` string, required: How does the business generate revenue? If not yet generating revenue, describe your planned revenue model.
      - `product_service_description` string, required: Please list all products and services offered, including key features of each.
      - `customer_base` string, required: Please describe your customer base, including the geographic markets you do business in.
      - `source_of_funds` string, required: Please describe the source of funds that will be used to fund the Meow account.
      - `multiple_locations` boolean, required: Does the entity have multiple business locations?
      - `locations_list` string[], nullable: Please list all business locations. Applies only when `multiple_locations` is `true`.
      - `ownership_structure` string, required: Please provide an org chart, or a written description of your ownership and management structure (parent/subsidiary relationships, key executives, beneficial owners).
      - `account_purpose` string, required: What is the purpose of the Meow account you're requesting, and what specific need will it serve?
      - `anticipated_account_use` string, required: Please describe how the account will be used (which business operations it will support).
      - `anticipated_day_one_balance` string, required: What is your anticipated initial deposit amount?
      - `requires_financial_services_license` boolean, required: Is the business required to hold any financial services, money transmission, or similar licensing/registration?
      - `incoming_funds_flow` string, required: Please describe your incoming funds flow: the types of counterparties who send you funds (e.g., customers, vendors, affiliates, marketplaces, payment processors) and by what method (wire, ACH, card, etc.).
      - `outgoing_funds_flow` string, required: Please describe your outgoing funds flow: the types of counterparties you send funds to (e.g., suppliers, employees, contractors, affiliates) and by what method.
      - `international_transactions_description` string, required: What is the purpose of your international transactions?
      - `international_transactions_countries` CountryCodeAlpha2[], required: Which specific countries are involved in your international transactions?
      - `aml_sanctions_compliance_policy` boolean, required: Do you have an AML/Sanctions Compliance Policy in place?
      - `sanctions_screening_process` string, nullable: Please describe your sanctions screening process (OFAC, EU, UK, etc.). Applies only when `aml_sanctions_compliance_policy` is `false`.
      - `subject_to_regulatory_actions` boolean, required: Has the entity been subject to any regulatory actions related to the services it offers?
      - `regulatory_actions_explanation` string, nullable: Please explain. Applies only when `subject_to_regulatory_actions` is `true`.
      - `expected_activity` ExpectedActivity, required
        - `local` ExpectedTransactionsRegion
          - `ach` ExpectedTransactionsNetwork
            - `inbound` ExpectedTransactionQuantities
              - …
            - `outbound` ExpectedTransactionQuantities
              - …
          - `wire` ExpectedTransactionsNetwork
            - `inbound` ExpectedTransactionQuantities
              - …
            - `outbound` ExpectedTransactionQuantities
              - …
        - `intl` ExpectedTransactionsRegion
          - `ach` ExpectedTransactionsNetwork
            - `inbound` ExpectedTransactionQuantities
              - …
            - `outbound` ExpectedTransactionQuantities
              - …
          - `wire` ExpectedTransactionsNetwork
            - `inbound` ExpectedTransactionQuantities
              - …
            - `outbound` ExpectedTransactionQuantities
              - …
      - `attestation` boolean: I confirm that all information provided in this form is true and accurate to the best of my knowledge.

## Response `200`

Successful Response

- EntityOnboardingStatusResponse
  - `entity_id` string, uuid, required: Public ID of the onboarded business entity, stable across the onboarding lifecycle and matching the `entity_id` used in the Customer API, MCP, and webhook payloads.
  - `status` 'pending_document_upload' | 'pending_user_action' | 'submitted' | 'under_review' | 'approved' | 'rejected', required
  - `business_name` string, nullable, required: Legal business name.
  - `created_at` string, date-time, required: ISO 8601 date-time in the format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` (per [IETF RFC 3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)).
  - `updated_at` string, date-time, required: ISO 8601 date-time in the format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` (per [IETF RFC 3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)).
  - `documents` OnboardingDocumentStatus[], required: Documents uploaded during onboarding.
    - `proof_type` 'accredited' | 'address' | 'articles_of_organization' | 'bank_statement' | 'client_contract' | 'client_invoice' | 'beneficial_owner_address' | 'beneficial_owner_id' | 'beneficial_owner_id_back' | 'beneficial_ownership_register' | 'bylaws' | 'certificate_of_good_standing' | 'corporate_resolution' | 'drivers_license' | 'due_diligence' | 'ein' | 'final_edd_report' | 'periodic_review_report' | 'government_issued_business_license' | 'hemp_cultivator_state_license' | 'incorporation' | 'industry_related_license' | 'lease_agreement' | 'llc_resolution' | 'money_service_business_license' | 'money_transmitter_registration' | 'mortgage_statement' | 'national_id' | 'org_chart' | 'partnership_agreement' | 'partnership_agreement_due_diligence' | 'partnership_resolution' | 'personal_address' | 'remote_employees_due_diligence' | 'signed_ss4' | 'tax_exemption_certificate' | 'uk_officer_passport' | 'officer_registry' | 'uk_registry' | 'shareholder_registry' | 'uk_w8_en' | 'utility_bill' | 'us_based_office_proof_of_address_due_diligence' | 'pitch_deck' | 'active_business_registration' | 'proof_of_ownership_or_banking_authorization' | 'non_profit_bylaws' | 'operating_agreement' | 'flow_of_funds' | 'aml_sanction' | 'registration_or_license' | 'sec_filing' | 'legal_opinion' | 'certificate_of_formation_master_llc' | 'series_operating_agreement' | 'share_subscription_agreement' | 'fund_subscription_agreement' | 'safe_agreement' | 'convertible_note_agreement' | 'loan_promissory_note' | 'token_purchase_agreement' | 'saft_agreement' | 'deal_memo_hybrid_agreement' | 'issuer_due_diligence_report' | 'protocol_ecosystem_questionnaire' | 'investment_company_due_diligence_form' | 'us_based_operations_due_diligence_form' | 'register_of_directors' | 'articles_of_association' | 'memorandum_of_association' | 'non_profit_status' | 'ofac_sanctions_screening_policy' | 'aml_kyc_policy' | 'w8_bene' | 'corporate_structure_chart' | 'custody_safeguarding_agreement' | 'reserve_attestation' | 'sanctions_vendor_service_agreement' | 'contractual_fund_flow_agreements', required
    - `file_name` string, nullable, required: Uploaded file name, or null if not yet uploaded.
    - `representative_id` string, uuid, nullable: The representative this document belongs to, or null for business-level documents.
  - `kyc_status` 'not_started' | 'pending' | 'action_required' | 'approved' | 'rejected', required
  - `onboarding_type` 'api' | 'smb' | 'mcp' | 'partner', required
  - `next_step` OnboardingNextStep, required
    - `step` 'gather_business_context' | 'collect_user_info' | 'collect_business_addresses' | 'collect_business_details' | 'collect_additional_details' | 'complete_due_diligence' | 'upload_documents' | 'manage_representatives' | 'complete_identity_verification' | 'accept_terms' | 'submit_application' | 'monitor_review' | 'resolve_info_requests' | 'onboarding_complete', required
    - `phase` 'business_info' | 'ready_to_submit' | 'submitted', required
    - `missing` string[], required: Items you still need to provide to advance past the current step. After submission this also lists any agreements still outstanding, which are owed alongside an open information request rather than after it. Empty once nothing is owed.
    - `required_proof_types` PublicKybProofType[]: KYB documents you still owe, as `proof_type` values to pass to a document upload endpoint. Before submission these are the application's own required documents, uploaded through `/entities/{entity_id}/documents/upload-url`; for a non-US business that usually includes `incorporation`, `shareholder_registry` (your shareholder registry or register of members), and `officer_registry` (your register of directors). Once `step` is `resolve_info_requests` these are instead what the open info requests still owe, uploaded through `/entities/{entity_id}/info-requests/{request_id}/documents/upload-url`. See `info_requests` for which request each belongs to. Empty once every required document is on file.
    - `can_submit` boolean, required: Whether all requirements are met and the application is ready to be submitted for review.
    - `info_requests` OnboardingInfoRequest[]: Open requests for follow-up information. Non-empty whenever a reviewer has asked for something, which is normally after submission and then `step` is `resolve_info_requests`, where `required_proof_types` above is the deduplicated union of what these still owe. A request raised before submission is reported here too, while `step` stays on the pre-submission work. Use the per-request entries when you need the `request_id` to upload against.
      - `request_id` string, uuid, required: Pass this to `POST /entities/{entity_id}/info-requests/{request_id}/documents/upload-url` and its confirm call, so the uploaded file is attributed to this request. The pre-submission `/documents/upload-url` pair does not take it and is closed once the application is submitted.
      - `required_proof_types` PublicKybProofType[], required: Documents this request is still waiting on. Empty once every requested document is on file.
      - `questions_pending` boolean, required: Whether this request also asks questions that have not been answered yet. The request stays open until they are, even once every document is on file. Answer them at `POST /entities/{entity_id}/info-requests/{request_id}`.
      - `outstanding` PublicOutstandingItem[], required: Everything this request is still waiting on, documents and questions alike, as structured items. `required_proof_types` above is the document half of this list.
        - `kind` 'document' | 'answers' | 'tin', required
        - `proof_type` 'accredited' | 'address' | 'articles_of_organization' | 'bank_statement' | 'client_contract' | 'client_invoice' | 'beneficial_owner_address' | 'beneficial_owner_id' | 'beneficial_owner_id_back' | 'beneficial_ownership_register' | 'bylaws' | 'certificate_of_good_standing' | 'corporate_resolution' | 'drivers_license' | 'due_diligence' | 'ein' | 'final_edd_report' | 'periodic_review_report' | 'government_issued_business_license' | 'hemp_cultivator_state_license' | 'incorporation' | 'industry_related_license' | 'lease_agreement' | 'llc_resolution' | 'money_service_business_license' | 'money_transmitter_registration' | 'mortgage_statement' | 'national_id' | 'org_chart' | 'partnership_agreement' | 'partnership_agreement_due_diligence' | 'partnership_resolution' | 'personal_address' | 'remote_employees_due_diligence' | 'signed_ss4' | 'tax_exemption_certificate' | 'uk_officer_passport' | 'officer_registry' | 'uk_registry' | 'shareholder_registry' | 'uk_w8_en' | 'utility_bill' | 'us_based_office_proof_of_address_due_diligence' | 'pitch_deck' | 'active_business_registration' | 'proof_of_ownership_or_banking_authorization' | 'non_profit_bylaws' | 'operating_agreement' | 'flow_of_funds' | 'aml_sanction' | 'registration_or_license' | 'sec_filing' | 'legal_opinion' | 'certificate_of_formation_master_llc' | 'series_operating_agreement' | 'share_subscription_agreement' | 'fund_subscription_agreement' | 'safe_agreement' | 'convertible_note_agreement' | 'loan_promissory_note' | 'token_purchase_agreement' | 'saft_agreement' | 'deal_memo_hybrid_agreement' | 'issuer_due_diligence_report' | 'protocol_ecosystem_questionnaire' | 'investment_company_due_diligence_form' | 'us_based_operations_due_diligence_form' | 'register_of_directors' | 'articles_of_association' | 'memorandum_of_association' | 'non_profit_status' | 'ofac_sanctions_screening_policy' | 'aml_kyc_policy' | 'w8_bene' | 'corporate_structure_chart' | 'custody_safeguarding_agreement' | 'reserve_attestation' | 'sanctions_vendor_service_agreement' | 'contractual_fund_flow_agreements'
        - `detail` string, required: The item written out for a person to read. Prose, so match on `kind` and `proof_type` rather than on this.
      - `note` string, nullable, required: What the reviewer asked for, if they left a note.
      - `expires_at` string, date-time, required: ISO 8601 date-time in the format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` (per [IETF RFC 3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)).
  - `representatives` OnboardingRepresentativeKyc[], required: Every representative on the application with their identity verification (KYC) status. The top-level `kyc_status` reflects the primary representative; the application can only be approved once every representative is approved.
    - `representative_id` string, uuid, required: ID of the representative.
    - `first_name` string, nullable, required: Legal first name.
    - `last_name` string, nullable, required: Legal last name.
    - `email` string, required: Representative's email address.
    - `is_primary` boolean, required: Whether they are the primary representative (signer).
    - `is_beneficial_owner` boolean, required: Whether they are a beneficial owner.
    - `percent_ownership` string, nullable, required: Ownership percentage, if any.
    - `kyc_status` 'not_started' | 'pending' | 'action_required' | 'approved' | 'rejected', required
    - `failed_checks` OnboardingKycFailedCheck[], required: The identity-verification checks that failed when `kyc_status` is `rejected`. Empty for other statuses or when check details are unavailable.
  - `consent_url` string, nullable, required: Link where the primary representative reviews and accepts the required agreements and disclosures in their browser. Populated once the application has been submitted; share it with the primary representative. The link needs no login and anyone holding it can accept on the business's behalf, so treat it as a secret.
  - `consent` OnboardingConsentState, required
    - `status` 'pending' | 'viewed' | 'completed', required
    - `consented_items` AgenticOnboardingConsentType[], required: Agreements the primary representative has accepted so far.
    - `remaining_items` AgenticOnboardingConsentType[], required: Required agreements still outstanding. Review proceeds while this is non-empty, but no account can be opened until it is empty, so share `consent_url` with the primary representative so they can finish.
    - `viewed_at` string, date-time, required: ISO 8601 date-time in the format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` (per [IETF RFC 3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)).
    - `completed_at` string, date-time, required: ISO 8601 date-time in the format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` (per [IETF RFC 3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)).

## Other responses

- `400`: The request could not be processed.
- `401`: Authentication failed.
- `403`: The API key is not authorized for this operation.
- `429`: Too many requests.

---

[API](https://skmtc.dev/meow/apis/meow-api.md) - [All operations](https://skmtc.dev/meow/apis/meow-api/llms.txt) - [OpenAPI document](https://skmtc.dev/meow/apis/meow-api/revisions/ea2d7e25b63b?raw)
