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

# Submit a feature request

> Call `GET /customers/:customerId/features/requirements` first. Send dynamic data under `fields` (nested objects, NOT dotted keys). Upload each required document via `POST /v2/documents` (file only) and pass returned ids in `documentIds[]`. `asset` is required for VIRTUAL_ACCOUNT.



## OpenAPI

````yaml https://api.sandbox.conduit.financial/v2/api-docs/openapi.json post /customers/{customerId}/features
openapi: 3.0.0
info:
  title: Conduit Sandbox API
  description: >-
    **Sandbox API** — clients integrate against this surface to exercise happy
    and unhappy paths without consuming real KYC/PSP credits or moving real
    money. Customer KYC, banking partners, and crypto custody are stubbed;
    org-level KYB runs against real providers. Simulation endpoints under
    `/v2/sandbox/*` drive specific scenarios.


    Internal and portal endpoints are excluded from this spec.
  version: '2.0'
  contact: {}
servers:
  - url: https://api.sandbox.conduit.financial/v2
    description: Sandbox
  - url: https://api.conduit.financial/v2
    description: Production
security:
  - api-key: []
tags:
  - name: Customers
  - name: Registered Addresses
  - name: Wallets
  - name: Wallet Signers
  - name: Signing Quorum
  - name: Virtual Accounts
  - name: Applications
  - name: RFIs
  - name: Documents
  - name: Verifications
  - name: Signing Requests
  - name: Transactions
  - name: Payouts
  - name: Whitelist Recipients
  - name: Orders
  - name: Asset Chain Pairs
  - name: Quotes
  - name: Webhook Endpoints
  - name: Webhook Deliveries
  - name: Webhook Event Types
  - name: Features
  - name: Customer Onboarding
  - name: Markup
  - name: Sandbox
paths:
  /customers/{customerId}/features:
    post:
      tags:
        - Features
      summary: Submit a feature request
      description: >-
        Call `GET /customers/:customerId/features/requirements` first. Send
        dynamic data under `fields` (nested objects, NOT dotted keys). Upload
        each required document via `POST /v2/documents` (file only) and pass
        returned ids in `documentIds[]`. `asset` is required for
        VIRTUAL_ACCOUNT.
      operationId: FeaturesController_request_v2
      parameters:
        - name: customerId
          required: true
          in: path
          schema:
            type: string
            example: cus_1A2b3C4d5E6f7G8h9I0jKl
        - name: Idempotency-Key
          in: header
          description: >-
            Caller-generated unique key that lets the server safely replay this
            request. The original response is returned for 30 days on any retry
            with the same key from the same organization, with the response
            header `Idempotency-Replayed: true`. Required on every
            state-changing money-moving or resource-creating POST.
          required: true
          schema:
            type: string
            pattern: ^[A-Za-z0-9_.:-]{1,128}$
            minLength: 1
            maxLength: 128
            example: 01J7B3K2X9M8N5P6Q7R8S9T0V1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FeatureRequestDto'
      responses:
        '202':
          description: The submitted feature-request application
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/CustomerOnboardingApplicationDto'
                  - $ref: '#/components/schemas/CustomerUpdateApplicationDto'
                  - $ref: '#/components/schemas/VirtualAccountFeatureApplicationDto'
                  - $ref: '#/components/schemas/CryptoWalletFeatureApplicationDto'
                discriminator:
                  propertyName: type
        '400':
          description: >-
            **INVALID_OID_FORMAT**: A path or query parameter expected a valid
            object identifier but received a value that does not match the
            expected format.


            **VALIDATION_ERROR**: The request body or query parameters failed
            validation. One or more fields have invalid values, missing required
            properties, or incorrect types. A required text field that holds
            only spaces counts as missing. Multipart file uploads that fail at
            the multipart-parser layer (unexpected form-field name, too many
            parts) carry an extra 'field' member naming the offending
            form-field.


            **MALFORMED_JSON**: The request body could not be parsed as JSON.
            Bodies declared as 'application/json' — and bodies with no
            Content-Type header, which are assumed to be JSON — must contain
            syntactically valid JSON.


            **IDEMPOTENCY_KEY_REQUIRED**: This endpoint requires an
            Idempotency-Key header to prevent duplicate processing. Generate a
            unique key per logical request and resend the request.


            **IDEMPOTENCY_KEY_INVALID**: The Idempotency-Key header value did
            not match the required shape (1-128 characters, letters / digits /
            underscore / dot / colon / hyphen).


            **IDEMPOTENCY_BODY_TOO_NESTED**: The request body exceeds the
            maximum nesting depth allowed by the idempotency fingerprint hasher.
            Deeply-nested arrays or objects are rejected as a malformed payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorDto'
              example:
                type: INVALID_OID_FORMAT
                title: Invalid Object ID Format
                status: 400
                detail: >-
                  A path or query parameter expected a valid object identifier
                  but received a value that does not match the expected format.
                resolution: >-
                  Verify that all IDs in the request URL and query parameters
                  are correctly formatted. IDs are typically prefixed strings
                  like 'cus_...', 'app_...', or 'doc_...'.
                docs: https://conduit-v2.mintlify.app/errors#invalid-oid-format
                instance: /v2/...
                correlationId: 00469ea4-52c1-4ffa-bd05-9f28b236a5fe
                timestamp: '2026-01-15T09:30:00.000Z'
        '401':
          description: >-
            **API_KEY_MISSING**: The request did not include an API key. All API
            requests must be authenticated.


            **API_KEY_INVALID**: The provided API key is not recognized or has
            been revoked.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailDto'
              example:
                type: API_KEY_MISSING
                title: API Key Missing
                status: 401
                detail: >-
                  The request did not include an API key. All API requests must
                  be authenticated.
                resolution: >-
                  Include your API key in the 'x-api-key' header with every
                  request.
                docs: https://conduit-v2.mintlify.app/errors#api-key-missing
                instance: /v2/...
                correlationId: 00469ea4-52c1-4ffa-bd05-9f28b236a5fe
                timestamp: '2026-01-15T09:30:00.000Z'
        '403':
          description: >-
            **ORGANIZATION_ACCESS_SUSPENDED**: Conduit has suspended this
            organization's access. Requests with the organization's API keys and
            from its users are refused until Conduit restores access.


            **API_KEY_READ_ONLY**: This API key has read-only access and cannot
            perform write operations. Read-only keys may make read requests
            (GET, HEAD, OPTIONS) only.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailDto'
              example:
                type: ORGANIZATION_ACCESS_SUSPENDED
                title: Organization Access Suspended
                status: 403
                detail: >-
                  Conduit has suspended this organization's access. Requests
                  with the organization's API keys and from its users are
                  refused until Conduit restores access.
                resolution: Contact Conduit support.
                docs: >-
                  https://conduit-v2.mintlify.app/errors#organization-access-suspended
                instance: /v2/...
                correlationId: 00469ea4-52c1-4ffa-bd05-9f28b236a5fe
                timestamp: '2026-01-15T09:30:00.000Z'
        '404':
          description: >-
            **CUSTOMER_NOT_FOUND**: No customer exists with the specified ID, or
            the customer belongs to a different organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailDto'
              example:
                type: CUSTOMER_NOT_FOUND
                title: Customer Not Found
                status: 404
                detail: >-
                  No customer exists with the specified ID, or the customer
                  belongs to a different organization.
                resolution: >-
                  Verify the customer ID is correct. Use the list customers
                  endpoint to find valid customer IDs for your organization.
                docs: https://conduit-v2.mintlify.app/errors#customer-not-found
                instance: /v2/...
                correlationId: 00469ea4-52c1-4ffa-bd05-9f28b236a5fe
                timestamp: '2026-01-15T09:30:00.000Z'
        '409':
          description: >-
            **IDEMPOTENCY_KEY_CONFLICT**: The idempotency key was previously
            used with a different request body, and that request succeeded or
            ended in a `5xx`. A `4xx` response does not bind the key.
            Idempotency keys are bound to the exact request shape — replays must
            match the original.


            **IDEMPOTENCY_KEY_REQUEST_IN_PROGRESS**: An earlier request with
            this idempotency key has not finished, or stopped before its result
            was recorded. In the second case it may or may not have completed
            its work.


            **FEATURE_ALREADY_EXISTS**: A feature with the same identifier
            already exists for this account.


            **CONFLICT**: The request conflicts with the current state of the
            resource. This usually means a duplicate or a state transition that
            is not allowed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailDto'
              example:
                type: IDEMPOTENCY_KEY_CONFLICT
                title: Idempotency Key Conflict
                status: 409
                detail: >-
                  The idempotency key was previously used with a different
                  request body, and that request succeeded or ended in a `5xx`.
                  A `4xx` response does not bind the key. Idempotency keys are
                  bound to the exact request shape — replays must match the
                  original.
                resolution: >-
                  Use a fresh idempotency key for the new request, or replay the
                  original request unchanged.
                docs: >-
                  https://conduit-v2.mintlify.app/errors#idempotency-key-conflict
                instance: /v2/...
                correlationId: 00469ea4-52c1-4ffa-bd05-9f28b236a5fe
                timestamp: '2026-01-15T09:30:00.000Z'
        '415':
          description: >-
            **UNSUPPORTED_MEDIA_TYPE**: The request carries a body with a
            Content-Type this endpoint cannot parse. JSON endpoints accept
            'application/json'; a body with no Content-Type header at all is
            assumed to be JSON. File-upload endpoints accept only
            'multipart/form-data' — JSON or undeclared bodies are rejected
            there.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailDto'
              example:
                type: UNSUPPORTED_MEDIA_TYPE
                title: Unsupported Media Type
                status: 415
                detail: >-
                  The request carries a body with a Content-Type this endpoint
                  cannot parse. JSON endpoints accept 'application/json'; a body
                  with no Content-Type header at all is assumed to be JSON.
                  File-upload endpoints accept only 'multipart/form-data' — JSON
                  or undeclared bodies are rejected there.
                resolution: >-
                  Send the request body with the 'Content-Type:
                  application/json' header. For file uploads, use 'Content-Type:
                  multipart/form-data' — upload endpoints accept no other body
                  type.
                docs: https://conduit-v2.mintlify.app/errors#unsupported-media-type
                instance: /v2/...
                correlationId: 00469ea4-52c1-4ffa-bd05-9f28b236a5fe
                timestamp: '2026-01-15T09:30:00.000Z'
        '422':
          description: >-
            **CUSTOMER_NOT_ONBOARDED**: This operation requires the customer to
            have completed onboarding, but the customer has not been fully
            onboarded yet.


            **ONBOARDING_NOT_READY**: The onboarding submission cannot be
            completed because one or more required fields or documents are still
            missing, or a submitted value is not one of the accepted options for
            a closed-set field (e.g. a country-specific field like
            `companyClassification.legalStructure`). Each blocker is reported
            per field in `errors[]` with a `category` and, for closed-set
            fields, the accepted `allowedValues`.


            **CRYPTO_NOT_AVAILABLE_IN_JURISDICTION**: Crypto wallet provisioning
            is not available for customers in this jurisdiction. The customer's
            registered country is on Conduit's restricted-country list for
            crypto products.


            **NO_ELIGIBLE_PROVIDER**: No banking provider is currently available
            to service a virtual account for this customer in the requested
            currency. Every provider that could serve the customer's country and
            industry is either restricted, unable to hold that currency, or has
            been taken offline.


            **SUBJECT_REQUIREMENTS_NOT_AVAILABLE**: No requirements are
            available for the requested subject type in the current context —
            the country, provider, and organization conditions of the request —
            so it cannot be fulfilled. This does not assert that no requirements
            exist for the subject anywhere; it reports that none apply to this
            request. It is returned wherever a subject's requirements are read:
            onboarding discovery and submit, and feature-request discovery and
            submit. It is a deterministic state, not a transient outage: it does
            not resolve on retry.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorDto'
              example:
                type: CUSTOMER_NOT_ONBOARDED
                title: Customer Not Onboarded
                status: 422
                detail: >-
                  This operation requires the customer to have completed
                  onboarding, but the customer has not been fully onboarded yet.
                resolution: >-
                  Complete the customer onboarding process before attempting
                  this operation. See the onboarding guide for the required
                  steps.
                docs: https://conduit-v2.mintlify.app/errors/customer-not-onboarded
                instance: /v2/...
                correlationId: 00469ea4-52c1-4ffa-bd05-9f28b236a5fe
                timestamp: '2026-01-15T09:30:00.000Z'
        '429':
          description: >-
            **RATE_LIMITED**: Too many requests. This error is returned by three
            independent checks: the per-organization bucket applied to every
            authenticated API request; the per-IP bucket applied to
            unauthenticated traffic before an API key is validated; and the
            per-IP bucket applied when repeated invalid API keys are submitted
            from the same address. Honor the Retry-After header (also exposed as
            retryAfterSeconds in the body) before retrying. Current limits and
            remaining budget are visible in X-RateLimit-Limit (the bucket size),
            X-RateLimit-Remaining, and X-RateLimit-Reset (seconds until the
            bucket refills) on every response once your API key is accepted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitedErrorDto'
              example:
                type: RATE_LIMITED
                title: Rate Limited
                status: 429
                detail: >-
                  Too many requests. This error is returned by three independent
                  checks: the per-organization bucket applied to every
                  authenticated API request; the per-IP bucket applied to
                  unauthenticated traffic before an API key is validated; and
                  the per-IP bucket applied when repeated invalid API keys are
                  submitted from the same address. Honor the Retry-After header
                  (also exposed as retryAfterSeconds in the body) before
                  retrying. Current limits and remaining budget are visible in
                  X-RateLimit-Limit (the bucket size), X-RateLimit-Remaining,
                  and X-RateLimit-Reset (seconds until the bucket refills) on
                  every response once your API key is accepted.
                resolution: >-
                  Sleep until Retry-After seconds have elapsed, then retry. For
                  sustained workloads exceeding the per-organization defaults,
                  request a rate-limit increase through your support contact.
                docs: https://conduit-v2.mintlify.app/errors#rate-limited
                instance: /v2/...
                correlationId: 00469ea4-52c1-4ffa-bd05-9f28b236a5fe
                timestamp: '2026-01-15T09:30:00.000Z'
                retryAfterSeconds: 3
        '500':
          description: >-
            **INTERNAL_ERROR**: An unexpected error occurred while processing
            your request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailDto'
              example:
                type: INTERNAL_ERROR
                title: Internal Error
                status: 500
                detail: An unexpected error occurred while processing your request.
                resolution: >-
                  Retry the request after a brief delay. If the error persists,
                  contact support and include the correlationId from the error
                  response for investigation.
                docs: https://conduit-v2.mintlify.app/errors#internal-error
                instance: /v2/...
                correlationId: 00469ea4-52c1-4ffa-bd05-9f28b236a5fe
                timestamp: '2026-01-15T09:30:00.000Z'
components:
  schemas:
    FeatureRequestDto:
      type: object
      properties:
        type:
          type: string
          enum:
            - virtual_account
            - crypto_wallet
          description: The feature being requested
        clientReferenceId:
          description: >-
            Client-supplied reference for the application this feature request
            creates. Stored on that application and echoed on it, so GET
            /v2/applications?clientReferenceId= finds it again. 1-255 characters
            from A-Za-z, 0-9, underscore, hyphen, colon, and period — no spaces.
          example: ext-feature-001
          type: string
          pattern: ^[A-Za-z0-9_\-:.]{1,255}$
        fields:
          description: Key-value data required by the feature's requirements
          type: object
          additionalProperties: false
          properties:
            businessInfo:
              type: object
              description: Business-level data about the entity.
              properties:
                legalName:
                  type: string
                  description: >-
                    The full legal name of the entity as registered with
                    government authorities (matches its Articles of
                    Incorporation or equivalent formation document). Do not
                    abbreviate.
                  maxLength: 255
                alternateNameDba:
                  type: string
                  description: >-
                    Any trading name, brand name, or 'doing business as' (DBA)
                    the company uses publicly that differs from the legal name.
                    Leave blank if the company only trades under the legal name.
                  maxLength: 255
                businessEntityId:
                  type: string
                  description: Business Entity ID
                  maxLength: 255
                taxId:
                  type: string
                  description: Tax Identification Number
                website:
                  type: string
                  description: Website
                  format: uri
                  maxLength: 500
                companyEmail:
                  type: string
                  description: Company Email
                  format: email
                  maxLength: 255
                companyPhone:
                  type: string
                  description: Company Phone
            registeredAddress:
              type: object
              description: >-
                Registered business address. `country` accepts ISO 3166-1
                alpha-2 or alpha-3.
              properties:
                country:
                  type: string
                  description: Country
                addressLine1:
                  type: string
                  description: Street 1
                  maxLength: 500
                addressLine2:
                  type: string
                  description: Street 2
                  maxLength: 500
                city:
                  type: string
                  description: City
                  maxLength: 255
                state:
                  type: string
                  description: State / Province
                  maxLength: 255
                postalCode:
                  type: string
                  description: Zip Code
                  maxLength: 20
                poBox:
                  type: string
                  description: P.O. Box Number
                  pattern: ^[0-9]{4,5}$
            operatingAddress:
              type: object
              description: >-
                Operating address when it differs from the registered one. Same
                leaves and `country` rules.
              properties:
                sameAsRegistered:
                  type: boolean
                  description: Same as registered address?
                addressLine1:
                  type: string
                  description: Street 1
                addressLine2:
                  type: string
                  description: Street 2
                city:
                  type: string
                  description: City
                state:
                  type: string
                  description: State / Province
                country:
                  type: string
                  description: Country
                postalCode:
                  type: string
                  description: Zip Code
            companyClassification:
              type: object
              description: >-
                Legal-structure and industry classification. `legalStructure`
                and `primaryIndustry` are jurisdiction-specific; take their
                accepted values from `GET /v2/onboarding/requirements`.
              properties:
                legalStructure:
                  type: string
                  description: Legal Structure
                legalStructureOther:
                  type: string
                  description: Legal Structure (Other)
                  pattern: \S
                  maxLength: 255
                incorporationDate:
                  type: string
                  description: Date of Incorporation
                  format: date
                coreIndustry:
                  type: string
                  description: >-
                    The single industry that best describes your primary revenue
                    source. If the business spans multiple industries, pick the
                    one generating the most revenue rather than the broadest
                    category.
                  enum:
                    - Agriculture
                    - Mining
                    - Manufacturing
                    - Retail/Wholesale
                    - Healthcare
                    - Real Estate
                    - Transport/Logistics
                    - Energy
                    - Education
                    - Financial Technology
                    - Professional Services
                    - Hospitality
                    - Construction
                    - Telecommunications
                    - Other
                coreIndustryOther:
                  type: string
                  description: Core Industry (Other)
                primaryIndustry:
                  type: string
                  description: >-
                    The single industry that best describes your primary revenue
                    source, chosen from the current policy catalog. If the
                    business spans multiple industries, pick the one generating
                    the most revenue rather than the broadest category.
                  maxLength: 120
                primaryIndustryOther:
                  type: string
                  description: Primary Industry (Other)
                  maxLength: 500
                hasDba:
                  type: boolean
                  description: Has DBA / Trade Name?
                isPubliclyListed:
                  type: boolean
                  description: Publicly Listed?
                stockExchange:
                  type: string
                  description: Stock Exchange
                  enum:
                    - NYSE
                    - NASDAQ
                    - LSE
                    - JSE
                    - NSE
                    - B3
                    - BMV
                    - SGX
                    - HKEX
                    - TSX
                    - ASX
                    - Other
                stockExchangeOther:
                  type: string
                  description: Stock Exchange (Other)
                tickerSymbol:
                  type: string
                  description: Ticker Symbol
            businessActivity:
              type: object
              description: Operating-activity descriptors.
              properties:
                businessActivitiesDescription:
                  type: string
                  description: >-
                    Plain-language summary of what the business actually does
                    day-to-day. A paragraph is enough — describe the core
                    economic activity, not the legal form.
                accountPurpose:
                  type: array
                  description: >-
                    Select every USD virtual-account use case that applies, even
                    those that are infrequent. This drives risk-tier
                    categorisation and monitoring thresholds, so being complete
                    is better than picking only the dominant flow.
                  items:
                    type: string
                    enum:
                      - Treasury Management
                      - Payroll
                      - Vendor/Supplier Payments
                      - Operating Expenses
                      - Client Collections
                      - Investment
                      - FX Settlement
                      - Escrow
                      - Other
                accountPurposeOther:
                  type: string
                  description: Describe the USD VA use case
                productsServices:
                  type: array
                  description: >-
                    What the business sells to its customers. Internal-use
                    products (HR systems, IT tooling, etc.) are not the target
                    here — focus on what generates revenue. Select all that
                    apply.
                  items:
                    type: string
                    enum:
                      - Technology / SaaS Provider
                      - Sale of Goods / Non-Financial Services
                      - Import / Export
                      - Wholesale / Distribution
                      - Investment Advisory
                      - Digital Wallets / Stored Value
                      - Custody
                      - Lending / Credit
                      - Escrow / Settlement Services
                      - Crypto Exchange or Trading
                      - Cross-Border Payments
                      - NFT / DeFi / Web3
                      - Foreign Exchange / Currency Conversion
                      - Card Issuance & Merchant Services
                      - Brokerage / Trading Platform
                      - Asset Management / Fund Services
                      - Precious Metals / High-Value Commodities
                      - Marketplace or Platform Operator
                      - Real Estate / Title / Property Escrow
                      - Crowdfunding / Capital Raising Platforms
                      - Trust and Company Services (TCSP)
                productsServicesOther:
                  type: string
                  description: Products / Services (Other)
                countriesOfActivity:
                  type: array
                  description: >-
                    Countries where the business has customers, counterparties,
                    or operations. Include jurisdictions where the business
                    receives payments, sends payments, or holds assets — not
                    just the country of incorporation.
                  items:
                    type: string
                    enum:
                      - AFG
                      - ALB
                      - DZA
                      - ASM
                      - AND
                      - AGO
                      - AIA
                      - ATA
                      - ATG
                      - ARG
                      - ARM
                      - ABW
                      - AUS
                      - AUT
                      - AZE
                      - BHS
                      - BHR
                      - BGD
                      - BRB
                      - BLR
                      - BEL
                      - BLZ
                      - BEN
                      - BMU
                      - BTN
                      - BOL
                      - BES
                      - BIH
                      - BWA
                      - BVT
                      - BRA
                      - IOT
                      - BRN
                      - BGR
                      - BFA
                      - BDI
                      - CPV
                      - KHM
                      - CMR
                      - CAN
                      - CYM
                      - CAF
                      - TCD
                      - CHL
                      - CHN
                      - CXR
                      - CCK
                      - COL
                      - COM
                      - COG
                      - COD
                      - COK
                      - CRI
                      - CIV
                      - HRV
                      - CUB
                      - CUW
                      - CYP
                      - CZE
                      - DNK
                      - DJI
                      - DMA
                      - DOM
                      - ECU
                      - EGY
                      - SLV
                      - GNQ
                      - ERI
                      - EST
                      - SWZ
                      - ETH
                      - FLK
                      - FRO
                      - FJI
                      - FIN
                      - FRA
                      - GUF
                      - PYF
                      - ATF
                      - GAB
                      - GMB
                      - GEO
                      - DEU
                      - GHA
                      - GIB
                      - GRC
                      - GRL
                      - GRD
                      - GLP
                      - GUM
                      - GTM
                      - GGY
                      - GIN
                      - GNB
                      - GUY
                      - HTI
                      - HMD
                      - VAT
                      - HND
                      - HKG
                      - HUN
                      - ISL
                      - IND
                      - IDN
                      - IRN
                      - IRQ
                      - IRL
                      - IMN
                      - ISR
                      - ITA
                      - JAM
                      - JPN
                      - JEY
                      - JOR
                      - KAZ
                      - KEN
                      - KIR
                      - PRK
                      - KOR
                      - KWT
                      - KGZ
                      - LAO
                      - LVA
                      - LBN
                      - LSO
                      - LBR
                      - LBY
                      - LIE
                      - LTU
                      - LUX
                      - MAC
                      - MDG
                      - MWI
                      - MYS
                      - MDV
                      - MLI
                      - MLT
                      - MHL
                      - MTQ
                      - MRT
                      - MUS
                      - MYT
                      - MEX
                      - FSM
                      - MDA
                      - MCO
                      - MNG
                      - MNE
                      - MSR
                      - MAR
                      - MOZ
                      - MMR
                      - NAM
                      - NRU
                      - NPL
                      - NLD
                      - NCL
                      - NZL
                      - NIC
                      - NER
                      - NGA
                      - NIU
                      - NFK
                      - MKD
                      - MNP
                      - NOR
                      - OMN
                      - PAK
                      - PLW
                      - PSE
                      - PAN
                      - PNG
                      - PRY
                      - PER
                      - PHL
                      - PCN
                      - POL
                      - PRT
                      - PRI
                      - QAT
                      - REU
                      - ROU
                      - RUS
                      - RWA
                      - BLM
                      - SHN
                      - KNA
                      - LCA
                      - MAF
                      - SPM
                      - VCT
                      - WSM
                      - SMR
                      - STP
                      - SAU
                      - SEN
                      - SRB
                      - SYC
                      - SLE
                      - SGP
                      - SXM
                      - SVK
                      - SVN
                      - SLB
                      - SOM
                      - ZAF
                      - SGS
                      - SSD
                      - ESP
                      - LKA
                      - SDN
                      - SUR
                      - SJM
                      - SWE
                      - CHE
                      - SYR
                      - TWN
                      - TJK
                      - TZA
                      - THA
                      - TLS
                      - TGO
                      - TKL
                      - TON
                      - TTO
                      - TUN
                      - TUR
                      - TKM
                      - TCA
                      - TUV
                      - UGA
                      - UKR
                      - ARE
                      - GBR
                      - USA
                      - UMI
                      - URY
                      - UZB
                      - VUT
                      - VEN
                      - VNM
                      - VGB
                      - VIR
                      - WLF
                      - ESH
                      - YEM
                      - ZMB
                      - ZWE
                countriesOfActivityOther:
                  type: string
                  description: Countries of Activity (Other)
                avgMonthlyVolume:
                  type: string
                  description: >-
                    Expected average USD value flowing through the business's
                    Conduit virtual account each month, across all in- and
                    out-bound transactions combined.
                  enum:
                    - VOLUME_LT_10K
                    - VOLUME_10K_50K
                    - VOLUME_50K_250K
                    - VOLUME_250K_1M
                    - VOLUME_GT_1M
                estimatedTransactionsPerMonth:
                  type: string
                  description: >-
                    Expected average count of transactions per month through the
                    business's Conduit virtual account, across all flows
                    combined (deposits, withdrawals, conversions).
                  enum:
                    - <10
                    - 10-50
                    - 50-200
                    - 200-1,000
                    - 1,000+
                sourceOfFunds:
                  type: array
                  description: >-
                    Where the money the business expects to receive through
                    Conduit originates. Select all that apply (e.g. customer
                    revenue, investor capital, lending proceeds). Use the
                    'Other' follow-up for sources not on the list.
                  items:
                    type: string
                    enum:
                      - Revenue/Sales
                      - VC/PE Investment
                      - Loans/Debt Financing
                      - Government Grant
                      - Personal/Founder Funds
                      - Donations
                      - Other
                sourceOfFundsOther:
                  type: string
                  description: Source of Funds (Other)
                fundFlowDescription:
                  type: string
                  description: >-
                    Describe the typical end-to-end flow of funds through the
                    business: who sends money in, what triggers the inbound
                    flow, and where the money is ultimately paid out. One or two
                    paragraphs.
                isRegulated:
                  type: boolean
                  description: Regulated / Financial Services?
                regulatoryAuthorities:
                  type: array
                  description: Regulatory Authorities
                  items:
                    type: string
                    enum:
                      - Central Bank of Kenya
                      - FCA
                      - SEC
                      - OCC
                      - FinCEN
                      - SARB
                      - CBN
                      - BdF
                      - BaFin
                      - MAS
                      - Other
                regulatoryAuthorityOther:
                  type: string
                  description: Regulatory Authority (Other)
                licenseNumber:
                  type: string
                  description: License / Registration Number
                isNonbankFinancialInstitution:
                  type: boolean
                  description: >-
                    Yes if the business provides financial services without
                    holding a banking charter — e.g. lending, money transmission
                    or payment services, broker-dealer or investment advisory
                    activity, insurance, currency exchange, or consumer finance.
                    Chartered banks and credit unions answer No.
                operatesOnBehalf:
                  type: boolean
                  description: >-
                    Select Yes if the business processes payments, holds funds,
                    or transacts on behalf of other parties (e.g. payment
                    facilitators, marketplaces, escrow agents, fund
                    administrators). Select No if all activity is for the
                    company's own account.
                holdsClientFundsInVirtualAccounts:
                  type: boolean
                  description: >-
                    Select Yes if the business holds, receives or sends funds
                    that belong to its clients through virtual accounts opened
                    in its name. Select No if every virtual account holds only
                    the company's own funds.
                usesBlockchainWallets:
                  type: boolean
                  description: Uses Blockchain Wallets?
                onBehalfDescription:
                  type: string
                  description: On Behalf Description
                walletAddresses:
                  type: string
                  description: Blockchain Wallet Addresses
                walletExchanges:
                  type: string
                  description: Blockchain Wallet Exchanges
                isGeneratingRevenue:
                  type: boolean
                  description: Currently Generating Revenue?
                revenueCovers:
                  type: string
                  description: >-
                    What share of the business's monthly operating expenses its
                    revenue currently covers, on average over the trailing three
                    months.
                  enum:
                    - All operating expenses
                    - Most
                    - Some
                    - Minimal
                hasInstitutionalInvestors:
                  type: boolean
                  description: >-
                    Yes if the business has raised capital from venture capital,
                    private equity, hedge funds, family offices, or strategic
                    corporate investors. Friends-and-family or solo-angel equity
                    does not count as institutional.
                financialRunway:
                  type: string
                  description: Financial Runway (Months)
                  enum:
                    - RUNWAY_LT_3M
                    - RUNWAY_3M_6M
                    - RUNWAY_6M_12M
                    - RUNWAY_GT_12M
                cashOnHand:
                  type: string
                  description: >-
                    Total liquid funds the business currently holds across all
                    business accounts (cash, money-market, short-dated
                    treasuries). Excludes owners' personal accounts and illiquid
                    or locked-up assets.
                  enum:
                    - <$50K
                    - $50K-$250K
                    - $250K-$1M
                    - $1M-$5M
                    - $5M-$25M
                    - $25M+
                runwayExplanation:
                  type: string
                  description: Runway Explanation
                hasIndependentAmlAudit:
                  type: boolean
                  description: Has Independent AML Audit?
                hasHighRiskIndustries:
                  type: boolean
                  description: >-
                    Answer Yes if the business directly participates in or earns
                    revenue from any of these high-risk industries: Adult
                    Entertainment, Cannabis/Marijuana, Cryptocurrency/Digital
                    Assets, Firearms/Ammunition, Gambling/Online Gaming, Money
                    Services Business, Precious Metals/Stones, Third-Party
                    Payment Processing, Virtual Currency/Digital Tokens,
                    Pawnbroker, Tobacco, Pharmaceutical Sales (Online), Shell
                    Banks, Non-Profit / Charity, Cash-Intensive Retail. If the
                    activity isn't listed but is high-risk, answer Yes and
                    select "Other" to describe it.
                highRiskIndustries:
                  type: array
                  description: >-
                    Industries the business directly participates in or earns
                    revenue from. This asks about direct participation, not
                    incidental exposure (e.g. having a customer in a high-risk
                    industry). Select 'Other' if the activity isn't listed, then
                    describe it.
                  items:
                    type: string
                    enum:
                      - Adult Entertainment
                      - Cannabis/Marijuana
                      - Cryptocurrency/Digital Assets
                      - Firearms/Ammunition
                      - Gambling/Online Gaming
                      - Money Services Business
                      - Precious Metals/Stones
                      - Third-Party Payment Processing
                      - Virtual Currency/Digital Tokens
                      - Pawnbroker
                      - Tobacco
                      - Pharmaceutical Sales (Online)
                      - Shell Banks
                      - Non-Profit / Charity
                      - Cash-Intensive Retail
                      - Other
                      - None of the Above
                highRiskDetails:
                  type: string
                  description: High-Risk Details
                hasRegulatedOrRestrictedActivities:
                  type: boolean
                  description: >-
                    Answer Yes if the business directly participates in or earns
                    revenue from any activity on the current policy catalog. If
                    the activity isn't listed but is regulated or restricted,
                    answer Yes and select "Other" to describe it.
                regulatedOrRestrictedActivities:
                  type: array
                  description: >-
                    Activities the business directly participates in or earns
                    revenue from, chosen from the current policy catalog. This
                    asks about direct participation, not incidental exposure.
                    "Other" is composable with named activities — select it
                    alongside any that apply, then describe it below.
                  items:
                    type: string
                otherActivityDescription:
                  type: string
                  description: Other Activity Description
                  maxLength: 500
            compliance:
              type: object
              description: Compliance-programme attestations.
              properties:
                hasComplianceProgram:
                  type: boolean
                  description: >-
                    Yes if the business has documented BSA/AML or KYC policies,
                    named a compliance owner, and operates ongoing controls
                    (screening, monitoring, periodic reviews). Informal or
                    ad-hoc controls do not qualify as a 'program'.
                complianceManager:
                  type: string
                  description: Compliance Manager
                complianceManagerEmail:
                  type: string
                  description: Compliance Manager Email
                  format: email
                sanctionsScreening:
                  type: string
                  description: >-
                    How the business screens customers and counterparties
                    against sanctions lists (OFAC, UN, EU). Pick the primary
                    method: automated vendor (e.g. ComplyAdvantage, LexisNexis,
                    Refinitiv), in-house tooling, manual checks against
                    published lists, or none.
                  enum:
                    - Chainalysis
                    - Elliptic
                    - ComplyAdvantage
                    - Refinitiv World-Check
                    - Dow Jones Risk & Compliance
                    - LexisNexis
                    - Sanctions.io
                    - Manual OFAC List Checks
                    - No Screening
                    - Other
                sanctionsScreeningOther:
                  type: string
                  description: Sanctions Screening (Other)
                cddMethod:
                  type: string
                  description: >-
                    How the business verifies the identity of its customers and
                    their beneficial owners (Customer Due Diligence). Pick the
                    primary approach: third-party KYC vendor, in-house workflow,
                    document-only review at onboarding, or none.
                  enum:
                    - Jumio
                    - Onfido
                    - Veriff
                    - Sumsub
                    - Persona
                    - Alloy
                    - Trulioo
                    - LexisNexis
                    - Plaid Identity Verification
                    - Manual Document Review
                    - No CDD Process
                    - Other
                cddMethodOther:
                  type: string
                  description: Customer Due Diligence Method (Other)
                transactionMonitoring:
                  type: array
                  description: >-
                    How the business flags unusual transaction patterns
                    post-onboarding. Select all that apply: rule-based engines,
                    vendor platforms, manual review against thresholds, periodic
                    file review, etc.
                  items:
                    type: string
                    enum:
                      - Chainalysis KYT
                      - Elliptic Lens
                      - ComplyAdvantage
                      - Sardine
                      - TRM Labs
                      - Featurespace
                      - Manual Monitoring
                      - No Transaction Monitoring
                      - Other
                transactionMonitoringOther:
                  type: string
                  description: Transaction Monitoring (Other)
                complianceTraining:
                  type: array
                  description: Compliance Training Programs
                  items:
                    type: string
                    enum:
                      - Annual AML/KYC Training
                      - Role-Specific Compliance Training
                      - External Compliance Certifications
                      - Ad Hoc Training Only
                      - No Formal Training Program
                hasAmlAudit:
                  type: boolean
                  description: Has Independent AML Audit?
                noAuditExplanation:
                  type: string
                  description: No Audit Explanation
                auditIntention:
                  type: string
                  description: Audit Intention
                leadershipExperience:
                  type: string
                  description: >-
                    Aggregate years of BSA / AML / financial-compliance
                    experience among the leadership responsible for the program
                    — typically the compliance manager or MLRO, plus the CEO if
                    owner-operator.
                  enum:
                    - Extensive (5+ years in compliance/regulated industry)
                    - Moderate (2-5 years in compliance/regulated industry)
                    - Limited (Less than 2 years or no direct experience)
            regulatoryHistory:
              type: object
              description: Regulatory and adverse-action history.
              properties:
                hasUSBankAccount:
                  type: boolean
                  description: Existing US Bank Account?
                deniedBankAccount:
                  type: boolean
                  description: Ever Denied a US Bank Account?
                deniedBankAccountDetails:
                  type: string
                  description: Denied Bank Account Details
                subjectToAdverseActions:
                  type: boolean
                  description: >-
                    Yes if the business has ever been subject to regulatory
                    enforcement, consent orders, fines, license revocations,
                    criminal proceedings, or significant civil litigation — past
                    or pending. Use the follow-up field to describe each
                    instance.
                hasPoliticallyExposedPersons:
                  type: boolean
                  description: >-
                    Yes if any owner, director, or senior executive of the
                    business is — or is a close family member or known associate
                    of — a current or former senior government official, head of
                    state, senior politician, judge, or military officer. This
                    is the standard 'Politically Exposed Person' (PEP)
                    definition. Disclose the business's own people, not its
                    customers.
                businessAdverseActions:
                  type: array
                  description: Business Adverse Actions
                  items:
                    type: string
                    enum:
                      - Sanctions
                      - Regulatory enforcement
                      - Criminal investigation
                      - Civil litigation
                      - Bankruptcy/insolvency
                      - Account closure/termination
                      - Consent order
                      - Seizure/forfeiture
                      - None
                ownersDirectorsAdverseActions:
                  type: array
                  description: >-
                    Adverse-action categories that have affected any current
                    owner, director, or senior executive personally — not the
                    business entity itself. Includes past employer enforcement
                    actions where the individual was named. Select 'None' if
                    none apply.
                  items:
                    type: string
                    enum:
                      - Sanctions
                      - Regulatory enforcement
                      - Criminal investigation
                      - Civil litigation
                      - Bankruptcy/insolvency
                      - Account closure/termination
                      - Consent order
                      - Seizure/forfeiture
                      - None
                adverseActionsDetails:
                  type: string
                  description: Adverse Actions Details
                isPoliticallyExposedPerson:
                  type: boolean
                  description: >-
                    Yes if the account holder is — or is a close family member
                    or known associate of — a current or former senior
                    government official, head of state, senior politician,
                    judge, or military officer. This is the standard
                    'Politically Exposed Person' (PEP) definition.
                adverseActions:
                  type: array
                  description: Adverse Actions
                  items:
                    type: string
                    enum:
                      - Sanctions
                      - Regulatory enforcement
                      - Criminal investigation
                      - Civil litigation
                      - Bankruptcy/insolvency
                      - Account closure/termination
                      - Consent order
                      - Seizure/forfeiture
                      - None
            ownership:
              type: object
              description: >-
                Beneficial-owner and controlling-person disclosure under
                `persons[]`. Persons are natural people: disclose a corporate
                owner under `relatedCompany` and look through it to the
                individuals behind it.
              properties:
                persons:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Person Record ID
                      firstName:
                        type: string
                        description: First Name
                        maxLength: 255
                      lastName:
                        type: string
                        description: Last Name
                        maxLength: 255
                      middleName:
                        type: string
                        description: Middle Name
                        maxLength: 255
                      email:
                        type: string
                        description: Email
                        format: email
                        maxLength: 255
                      phoneNumber:
                        type: string
                        description: Phone Number
                      birthDate:
                        type: string
                        description: Date of Birth
                        format: date
                      identityDocumentExpiryDate:
                        type: string
                        description: >-
                          The expiry date of the identity document, as verified
                          by the identity provider. The document must not have
                          expired.
                        format: date
                      identityVerificationDate:
                        type: string
                        description: >-
                          The date the identity verification of this person was
                          completed, as shown on the identity verification
                          report. Without it, approval depends on reading the
                          date from the report and can wait for a manual review.
                        format: date
                      nationality:
                        type: string
                        description: >-
                          Country of citizenship. For dual nationals, use the
                          citizenship matching the tax ID provided; if asked
                          about additional nationalities elsewhere, disclose
                          them there.
                      taxIdType:
                        type: string
                        description: >-
                          An individual may send one of PASSPORT, NATIONAL_ID,
                          DRIVER_LICENSE, RESIDENT_CARD, SSN, ITIN, subject to
                          the nationality rule below. A business owner accepts
                          only SSN, ITIN, NATIONAL_ID. For an individual
                          customer, a US national sends SSN. ITIN is for a US
                          resident of another nationality. For an individual
                          customer, a NATIONAL_ID issued by CAN, NLD, IRL, AUS,
                          JPN is not accepted. For an individual customer, a
                          NATIONAL_ID must be the 13-digit French tax number
                          (numéro fiscal) for FRA, the 16-digit PhilSys card
                          number (PCN) for PHL, a PAN for IND, the 13-digit CNIC
                          for PAK, the 11-digit CPF for BRA, the 18-character
                          CURP for MEX, the 11-digit NIN for NGA, the 10-, 13-
                          or 17-digit NID for BGD, the 11-digit T.C. Kimlik No
                          for TUR. Spaces, dashes, dots, slashes and letter case
                          are ignored. Check digits are verified for FRA, BRA,
                          MEX, TUR. For an individual customer, send a PASSPORT,
                          DRIVER_LICENSE or RESIDENT_CARD instead.
                        enum:
                          - PASSPORT
                          - NATIONAL_ID
                          - DRIVER_LICENSE
                          - RESIDENT_CARD
                          - SSN
                          - ITIN
                      taxIdNumber:
                        type: string
                        description: >-
                          For an individual customer, a NATIONAL_ID issued by
                          CAN, NLD, IRL, AUS, JPN is not accepted. For an
                          individual customer, a NATIONAL_ID must be the
                          13-digit French tax number (numéro fiscal) for FRA,
                          the 16-digit PhilSys card number (PCN) for PHL, a PAN
                          for IND, the 13-digit CNIC for PAK, the 11-digit CPF
                          for BRA, the 18-character CURP for MEX, the 11-digit
                          NIN for NGA, the 10-, 13- or 17-digit NID for BGD, the
                          11-digit T.C. Kimlik No for TUR. Spaces, dashes, dots,
                          slashes and letter case are ignored. Check digits are
                          verified for FRA, BRA, MEX, TUR. For an individual
                          customer, send a PASSPORT, DRIVER_LICENSE or
                          RESIDENT_CARD instead.
                      taxIdCountry:
                        type: string
                        description: >-
                          The country whose tax authority issued the tax
                          identification number (TIN). May differ from the
                          person's nationality or country of residence.
                      immigrationStatus:
                        type: string
                        description: >-
                          US immigration status — only relevant for non-US
                          citizens currently living in the United States. Skip
                          if the person is a US citizen or does not live in the
                          US.
                        enum:
                          - Permanent U.S. Resident
                          - Non-Permanent U.S. Resident
                          - Non-Resident of U.S.
                      taxResidencyCountry:
                        type: string
                        description: >-
                          The country whose tax authority the person files
                          personal income tax with. May differ from nationality
                          (citizenship) or current residence. For multiple tax
                          residencies, list the primary one.
                      ownershipPercent:
                        type: number
                        description: >-
                          Direct or indirect ownership share in the business,
                          including ownership held through intermediate
                          entities. For tiered ownership structures, give the
                          effective beneficial share at this entity — not the
                          immediate-parent share.
                        minimum: 0
                        maximum: 100
                      sharesAllocated:
                        type: integer
                        description: Shares Allocated
                        minimum: 0
                      roles:
                        type: array
                        description: >-
                          Which capacity each person fills. Beneficial Owner:
                          holds ≥25% ownership or otherwise exercises ultimate
                          control. Controlling Person: a senior managing
                          official (CEO / CFO / COO / General Counsel /
                          President or equivalent), regardless of ownership.
                          Legal Representative: authorized to sign on behalf of
                          the entity. Account Holder: the person who opens the
                          account in their own name. Select all that apply.
                        items:
                          type: string
                          enum:
                            - BENEFICIAL_OWNER
                            - CONTROLLING_PERSON
                            - LEGAL_REPRESENTATIVE
                            - ACCOUNT_HOLDER
                      address:
                        type: object
                        properties:
                          country:
                            type: string
                            description: Country
                          addressLine1:
                            type: string
                            description: Street 1
                            maxLength: 255
                          addressLine2:
                            type: string
                            description: Street 2
                            maxLength: 255
                          city:
                            type: string
                            description: City
                            maxLength: 255
                          state:
                            type: string
                            description: State / Province
                            maxLength: 255
                          postalCode:
                            type: string
                            description: Zip Code
                            maxLength: 50
                      documentIds:
                        type: array
                        maxItems: 100
                        items:
                          type: string
                          minLength: 1
                        description: >-
                          Ids of documents uploaded with `POST /v2/documents`
                          for this person, for example the identity verification
                          attestation.
            relatedCompany:
              type: object
              description: >-
                Related-company disclosure for affiliated entities — a parent,
                subsidiary, sister company or holding entity.
              properties:
                hasRelatedCompany:
                  type: boolean
                  description: >-
                    Yes if the business is part of a corporate group: a
                    subsidiary, a parent company, sibling entities under common
                    ownership, or a holding-company structure. Independent
                    companies that merely share investors do not count.
                companies:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Related Company Record ID
                      companyName:
                        type: string
                        description: Related Company Name
                      description:
                        type: string
                        description: Related Company Description
                      role:
                        type: string
                        description: >-
                          How this related entity is connected to the business —
                          parent, subsidiary, sister/affiliate, or a holding
                          entity. Choose the closest match; this drives how the
                          relationship is documented in the group structure
                          chart.
                        enum:
                          - Ultimate Parent Company
                          - Subsidiary
                          - Affiliate
                          - Holding Company
                      ownershipPercent:
                        type: string
                        description: Related Company Ownership Percent
                        pattern: ^(100(\.0+)?|\d{1,2}(\.\d+)?)$
                      email:
                        type: string
                        description: Related Company Email
                        format: email
                      phone:
                        type: string
                        description: Related Company Phone Number
                      formationDate:
                        type: string
                        description: Related Company Formation Date
                        format: date
            certification:
              type: object
              description: Legal certifications the customer must affirm.
              properties:
                authorityToBind:
                  type: boolean
                  description: >-
                    By checking this box and clicking Submit, I hereby swear,
                    affirm, and attest that I have the requisite internal
                    authority to bind the company submitting the information
                    contained herein.
                consentToElectronicSignatures:
                  type: boolean
                  description: >-
                    I, and the company for which I am submitting the information
                    contained herein, acknowledge and agree that by checking
                    this box and clicking Submit we are electronically signing
                    and such electronic signature is legally binding and
                    enforceable in the same manner as a handwritten signature.
                termsAndConditions:
                  description: >-
                    The customer's acceptance of Conduit's Terms and Conditions.
                    The acceptance record is the current form. `true` is the
                    earlier form. `GET /v2/onboarding/requirements` shows which
                    form the active rules accept.
                  anyOf:
                    - type: boolean
                      enum:
                        - true
                    - type: object
                      properties:
                        accepted:
                          type: boolean
                          description: >-
                            Read the terms at
                            https://conduitpay.com/terms-of-service
                        acceptedAt:
                          type: string
                          description: >-
                            When the customer accepted, not when you submit this
                            form
                          format: date-time
                        acceptedByName:
                          type: string
                          description: The person who accepted for the customer
                          maxLength: 140
                        acceptedByEmail:
                          type: string
                          description: Email of the person who accepted
                          format: email
                          maxLength: 254
                        ipAddress:
                          type: string
                          description: >-
                            The IP address your customer accepted from, as your
                            platform recorded it. Not your own IP address.
                        isAuthenticated:
                          type: boolean
                          description: >-
                            Your customer was signed in to your platform when
                            they accepted
                        version:
                          type: string
                          description: Terms version
                          maxLength: 64
                treasuryOnlyCertification:
                  type: boolean
                  description: >-
                    Certify that this entity will use the Conduit account
                    exclusively for its own treasury operations — not on behalf
                    of clients, customers, or third parties. Required to enroll
                    in the treasury-only product configuration.
        documentIds:
          maxItems: 100
          type: array
          items:
            type: string
            minLength: 1
          description: >-
            Flat list of uploaded document IDs to associate with this feature
            request
          example:
            - doc_2xKjF9mQb7vN4hL1pR3w8t
        asset:
          type: object
          properties:
            code:
              type: string
              enum:
                - USD
                - EUR
                - GBP
                - CHF
                - JPY
                - CAD
                - AUD
                - NZD
                - SGD
                - HKD
                - CNY
                - KRW
                - INR
                - BRL
                - MXN
                - ARS
                - CLP
                - COP
                - PEN
                - ZAR
                - NGN
                - KES
                - GHS
                - EGP
                - AED
                - SAR
                - ILS
                - TRY
                - PLN
                - CZK
                - HUF
                - SEK
                - NOK
                - DKK
                - THB
                - IDR
                - MYR
                - PHP
                - VND
                - TWD
                - USDC
                - USDT
                - DAI
                - EURC
                - PYUSD
                - OUSD
                - BTC
                - ETH
                - SOL
                - TRX
                - XLM
                - POL
          required:
            - code
          additionalProperties: false
          description: Target asset for the feature, required for some feature types
          example:
            code: USD
      required:
        - type
      additionalProperties: false
    CustomerOnboardingApplicationDto:
      type: object
      properties:
        id:
          type: string
          pattern: ^app_[0-9A-Za-z]{22}$
          description: Unique application identifier
        status:
          type: string
          enum:
            - pending
            - processing
            - approved
            - rejected
            - cancelled
          description: Current lifecycle status of the application
          example: pending
        clientReferenceId:
          description: >-
            Client-provided identifier for cross-referencing. Omitted when the
            client did not supply one. 1-255 characters from A-Za-z, 0-9,
            underscore, hyphen, colon, and period — no spaces.
          example: ext-12345
          type: string
          pattern: ^[A-Za-z0-9_\-:.]{1,255}$
        submittedAt:
          description: >-
            Timestamp when the application was submitted for review. Omitted
            while still in progress.
          type: string
          format: date-time
          example: '2026-01-15T09:30:00.000Z'
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the application was created
          example: '2026-01-15T09:30:00.000Z'
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when the application was last modified
          example: '2026-01-15T09:30:00.000Z'
        failureCode:
          description: >-
            Machine-readable failure code on rejected applications. Omitted on
            non-rejected applications.
          type: string
          enum:
            - rejected_by_ops
            - compliance_denied
        failureMessage:
          description: >-
            Customer-facing failure message accompanying `failureCode`. Omitted
            on non-rejected applications.
          type: string
        resubmittable:
          description: >-
            Whether a corrected application will be considered. `true`: correct
            the data and submit a fresh application. `false`: the decision is
            final, do not resubmit. Omitted on non-rejected applications.
          type: boolean
        type:
          type: string
          enum:
            - customer_onboarding
        reviewStage:
          description: >-
            Where the review of a `processing` application stands. `automated`:
            Conduit's automated review is still running. `operator`: the
            automated review finished without a decision, or Conduit has an open
            request for information about the application. A Conduit operator
            owns the next step unless the request needs your answer. `operator`
            means no automated decision will come; expect a decision or a
            request for information from Conduit. Present only while `status` is
            `processing`.
          type: string
          enum:
            - automated
            - operator
        customerId:
          description: >-
            Customer this onboarding application produced. Omitted while the
            application is still being reviewed; present after approval persists
            the customer row.
          type: string
          pattern: ^cus_[0-9A-Za-z]{22}$
        persons:
          description: >-
            People declared on the submission, in submit order: the owners,
            controlling persons and legal representatives of a business, or the
            one account holder of an individual. Omitted before the application
            carries a submission.
          type: array
          items:
            type: object
            properties:
              referenceId:
                type: string
                description: >-
                  Server-assigned stable reference for this person. Use it to
                  fetch the person's identity-verification link (POST
                  /v2/applications/{applicationId}/persons/{referenceId}/idv-link)
                  and to correlate `idv_link.created` webhook events.
              name:
                type: string
                description: Person's name as submitted.
            required:
              - referenceId
              - name
        resubmissionGuidance:
          description: >-
            Integrator guidance for the resubmission. Present only on a rejected
            application whose `resubmittable` is `true`. A fixed line — display
            or log it, do not parse it. Omitted on non-rejected applications and
            on final rejections.
          type: string
      required:
        - id
        - status
        - createdAt
        - updatedAt
        - type
    CustomerUpdateApplicationDto:
      type: object
      properties:
        id:
          type: string
          pattern: ^app_[0-9A-Za-z]{22}$
          description: Unique application identifier
        status:
          type: string
          enum:
            - pending
            - processing
            - approved
            - rejected
            - cancelled
          description: Current lifecycle status of the application
          example: pending
        clientReferenceId:
          description: >-
            Client-provided identifier for cross-referencing. Omitted when the
            client did not supply one. 1-255 characters from A-Za-z, 0-9,
            underscore, hyphen, colon, and period — no spaces.
          example: ext-12345
          type: string
          pattern: ^[A-Za-z0-9_\-:.]{1,255}$
        submittedAt:
          description: >-
            Timestamp when the application was submitted for review. Omitted
            while still in progress.
          type: string
          format: date-time
          example: '2026-01-15T09:30:00.000Z'
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the application was created
          example: '2026-01-15T09:30:00.000Z'
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when the application was last modified
          example: '2026-01-15T09:30:00.000Z'
        failureCode:
          description: >-
            Machine-readable failure code on rejected applications. Omitted on
            non-rejected applications.
          type: string
          enum:
            - rejected_by_ops
            - compliance_denied
        failureMessage:
          description: >-
            Customer-facing failure message accompanying `failureCode`. Omitted
            on non-rejected applications.
          type: string
        resubmittable:
          description: >-
            Whether a corrected application will be considered. `true`: correct
            the data and submit a fresh application. `false`: the decision is
            final, do not resubmit. Omitted on non-rejected applications.
          type: boolean
        type:
          type: string
          enum:
            - customer_update
        customerId:
          type: string
          pattern: ^cus_[0-9A-Za-z]{22}$
          description: Customer this update application belongs to.
      required:
        - id
        - status
        - createdAt
        - updatedAt
        - type
        - customerId
    VirtualAccountFeatureApplicationDto:
      type: object
      properties:
        id:
          type: string
          pattern: ^app_[0-9A-Za-z]{22}$
          description: Unique application identifier
        status:
          type: string
          enum:
            - pending
            - processing
            - approved
            - rejected
            - cancelled
          description: Current lifecycle status of the application
          example: pending
        clientReferenceId:
          description: >-
            Client-provided identifier for cross-referencing. Omitted when the
            client did not supply one. 1-255 characters from A-Za-z, 0-9,
            underscore, hyphen, colon, and period — no spaces.
          example: ext-12345
          type: string
          pattern: ^[A-Za-z0-9_\-:.]{1,255}$
        submittedAt:
          description: >-
            Timestamp when the application was submitted for review. Omitted
            while still in progress.
          type: string
          format: date-time
          example: '2026-01-15T09:30:00.000Z'
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the application was created
          example: '2026-01-15T09:30:00.000Z'
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when the application was last modified
          example: '2026-01-15T09:30:00.000Z'
        failureCode:
          description: >-
            Machine-readable failure code on rejected applications. Omitted on
            non-rejected applications.
          type: string
          enum:
            - rejected_by_ops
            - compliance_denied
        failureMessage:
          description: >-
            Customer-facing failure message accompanying `failureCode`. Omitted
            on non-rejected applications.
          type: string
        resubmittable:
          description: >-
            Whether a corrected application will be considered. `true`: correct
            the data and submit a fresh application. `false`: the decision is
            final, do not resubmit. Omitted on non-rejected applications.
          type: boolean
        type:
          type: string
          enum:
            - virtual_account
        customerId:
          type: string
          pattern: ^cus_[0-9A-Za-z]{22}$
          description: Customer this virtual-account application belongs to.
        asset:
          type: object
          properties:
            code:
              type: string
              enum:
                - USD
                - EUR
                - GBP
                - CHF
                - JPY
                - CAD
                - AUD
                - NZD
                - SGD
                - HKD
                - CNY
                - KRW
                - INR
                - BRL
                - MXN
                - ARS
                - CLP
                - COP
                - PEN
                - ZAR
                - NGN
                - KES
                - GHS
                - EGP
                - AED
                - SAR
                - ILS
                - TRY
                - PLN
                - CZK
                - HUF
                - SEK
                - NOK
                - DKK
                - THB
                - IDR
                - MYR
                - PHP
                - VND
                - TWD
                - USDC
                - USDT
                - DAI
                - EURC
                - PYUSD
                - OUSD
                - BTC
                - ETH
                - SOL
                - TRX
                - XLM
                - POL
              description: Asset code identifier
              example: USD
            chain:
              type: string
              enum:
                - ethereum
                - base
                - solana
                - polygon
                - tron
                - stellar
                - tempo
                - null
              description: Blockchain network. `null`/omitted for fiat assets.
              nullable: true
          required:
            - code
          description: Target asset for this virtual-account feature application.
      required:
        - id
        - status
        - createdAt
        - updatedAt
        - type
        - customerId
        - asset
    CryptoWalletFeatureApplicationDto:
      type: object
      properties:
        id:
          type: string
          pattern: ^app_[0-9A-Za-z]{22}$
          description: Unique application identifier
        status:
          type: string
          enum:
            - pending
            - processing
            - approved
            - rejected
            - cancelled
          description: Current lifecycle status of the application
          example: pending
        clientReferenceId:
          description: >-
            Client-provided identifier for cross-referencing. Omitted when the
            client did not supply one. 1-255 characters from A-Za-z, 0-9,
            underscore, hyphen, colon, and period — no spaces.
          example: ext-12345
          type: string
          pattern: ^[A-Za-z0-9_\-:.]{1,255}$
        submittedAt:
          description: >-
            Timestamp when the application was submitted for review. Omitted
            while still in progress.
          type: string
          format: date-time
          example: '2026-01-15T09:30:00.000Z'
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the application was created
          example: '2026-01-15T09:30:00.000Z'
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when the application was last modified
          example: '2026-01-15T09:30:00.000Z'
        failureCode:
          description: >-
            Machine-readable failure code on rejected applications. Omitted on
            non-rejected applications.
          type: string
          enum:
            - rejected_by_ops
            - compliance_denied
        failureMessage:
          description: >-
            Customer-facing failure message accompanying `failureCode`. Omitted
            on non-rejected applications.
          type: string
        resubmittable:
          description: >-
            Whether a corrected application will be considered. `true`: correct
            the data and submit a fresh application. `false`: the decision is
            final, do not resubmit. Omitted on non-rejected applications.
          type: boolean
        type:
          type: string
          enum:
            - crypto_wallet
        customerId:
          type: string
          pattern: ^cus_[0-9A-Za-z]{22}$
          description: Customer this crypto-wallet application belongs to.
      required:
        - id
        - status
        - createdAt
        - updatedAt
        - type
        - customerId
    ValidationErrorDto:
      type: object
      properties:
        type:
          type: string
          description: Machine-readable error code
          example: CUSTOMER_NOT_FOUND
        title:
          type: string
          description: Human-readable error type label
          example: Customer Not Found
        status:
          type: number
          description: HTTP status code
          example: 404
        detail:
          type: string
          description: Human-readable explanation of this occurrence
          example: Customer with id cus_034A0gCCVsxdV2PjHLx9k1 not found
        resolution:
          type: string
          description: What the developer should do to resolve this error
          example: >-
            Verify the customer ID. Check you are using the correct API key for
            this organization.
        docs:
          type: string
          description: URL to error documentation
          example: https://conduit-v2.mintlify.app/errors#customer-not-found
        instance:
          type: string
          description: Request path that produced the error
          example: /v2/customers/cus_034A0gCCVsxdV2PjHLx9k1
        correlationId:
          description: Request correlation ID
          example: 00469ea4-52c1-4ffa-bd05-9f28b236a5fe
          type: string
        timestamp:
          type: string
          description: ISO 8601 UTC timestamp
          example: '2026-04-27T20:00:00.000Z'
        details:
          description: >-
            Additional structured data for domain-specific errors (e.g. missing
            field lists, pair info)
        errors:
          type: array
          items:
            type: object
            properties:
              pointer:
                type: string
                description: JSON pointer to the invalid field
                example: /email
              detail:
                type: string
                description: What is wrong with this field
                example: Invalid email format
              allowedValues:
                description: The values this field accepts, when it is a closed set
                example:
                  - ach
                  - fedwire
                  - rtp
                type: array
                items:
                  type: string
              category:
                description: >-
                  Class of blocker (requirements-validator output only). 'field'
                  = form-field gap, 'document' = missing or insufficient
                  document (including per-UBO document slots), 'individual' =
                  required person missing.
                example: field
                type: string
                enum:
                  - field
                  - document
                  - individual
            required:
              - pointer
              - detail
      required:
        - type
        - title
        - status
        - detail
        - resolution
        - docs
        - instance
        - timestamp
    ProblemDetailDto:
      type: object
      properties:
        type:
          type: string
          description: Machine-readable error code
          example: CUSTOMER_NOT_FOUND
        title:
          type: string
          description: Human-readable error type label
          example: Customer Not Found
        status:
          type: number
          description: HTTP status code
          example: 404
        detail:
          type: string
          description: Human-readable explanation of this occurrence
          example: Customer with id cus_034A0gCCVsxdV2PjHLx9k1 not found
        resolution:
          type: string
          description: What the developer should do to resolve this error
          example: >-
            Verify the customer ID. Check you are using the correct API key for
            this organization.
        docs:
          type: string
          description: URL to error documentation
          example: https://conduit-v2.mintlify.app/errors#customer-not-found
        instance:
          type: string
          description: Request path that produced the error
          example: /v2/customers/cus_034A0gCCVsxdV2PjHLx9k1
        correlationId:
          description: Request correlation ID
          example: 00469ea4-52c1-4ffa-bd05-9f28b236a5fe
          type: string
        timestamp:
          type: string
          description: ISO 8601 UTC timestamp
          example: '2026-04-27T20:00:00.000Z'
        details:
          description: >-
            Additional structured data for domain-specific errors (e.g. missing
            field lists, pair info)
      required:
        - type
        - title
        - status
        - detail
        - resolution
        - docs
        - instance
        - timestamp
    RateLimitedErrorDto:
      type: object
      properties:
        type:
          type: string
          description: Machine-readable error code
          example: CUSTOMER_NOT_FOUND
        title:
          type: string
          description: Human-readable error type label
          example: Customer Not Found
        status:
          type: number
          description: HTTP status code
          example: 404
        detail:
          type: string
          description: Human-readable explanation of this occurrence
          example: Customer with id cus_034A0gCCVsxdV2PjHLx9k1 not found
        resolution:
          type: string
          description: What the developer should do to resolve this error
          example: >-
            Verify the customer ID. Check you are using the correct API key for
            this organization.
        docs:
          type: string
          description: URL to error documentation
          example: https://conduit-v2.mintlify.app/errors#customer-not-found
        instance:
          type: string
          description: Request path that produced the error
          example: /v2/customers/cus_034A0gCCVsxdV2PjHLx9k1
        correlationId:
          description: Request correlation ID
          example: 00469ea4-52c1-4ffa-bd05-9f28b236a5fe
          type: string
        timestamp:
          type: string
          description: ISO 8601 UTC timestamp
          example: '2026-04-27T20:00:00.000Z'
        details:
          description: >-
            Additional structured data for domain-specific errors (e.g. missing
            field lists, pair info)
        retryAfterSeconds:
          type: integer
          minimum: 0
          exclusiveMinimum: true
          maximum: 9007199254740991
          description: Seconds to wait before retrying
          example: 3
      required:
        - type
        - title
        - status
        - detail
        - resolution
        - docs
        - instance
        - timestamp
        - retryAfterSeconds
  securitySchemes:
    api-key:
      type: apiKey
      in: header
      name: x-api-key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.