> ## 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: Documents
  - name: Verifications
  - name: Signing Requests
  - name: Transactions
  - name: Payouts
  - name: Whitelist Recipients
  - name: Orders
  - name: Quotes
  - name: RFIs
  - 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
        - name: Idempotency-Key
          in: header
          description: >-
            Caller-generated unique key that lets the server safely replay this
            request. The cached response is returned for 5 minutes on any retry
            with the same key from the same API principal. 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
      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. 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: >-
            **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: API_KEY_READ_ONLY
                title: API Key Is Read-Only
                status: 403
                detail: >-
                  This API key has read-only access and cannot perform write
                  operations. Read-only keys may make read requests (GET, HEAD,
                  OPTIONS) only.
                resolution: >-
                  Use a read-write API key for this request, or have an
                  organization admin mint one from the dashboard.
                docs: https://conduit-v2.mintlify.app/errors#api-key-read-only
                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. Idempotency keys are bound to
            the exact request shape — replays must match the original.


            **IDEMPOTENCY_KEY_REQUEST_IN_PROGRESS**: A request with this
            idempotency key is already being processed and has not yet
            completed. Concurrent requests with the same key are rejected to
            prevent duplicate execution.


            **FEATURE_ALREADY_EXISTS**: A feature with the same identifier
            already exists for this account.
          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. 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.
          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,
            X-RateLimit-Remaining, and X-RateLimit-Reset on rate-limited route
            responses.
          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, X-RateLimit-Remaining, and
                  X-RateLimit-Reset on rate-limited route responses.
                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
        fields:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/FeatureRequestDto__schema0'
          description: Key-value data required by the feature's requirements
          example:
            certification:
              termsAndConditions: true
        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
                - BTC
                - ETH
                - SOL
                - TRX
                - XLM
          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
        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 (beneficial owners and controlling
            persons), in submit order. 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
      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}$
        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
                - BTC
                - ETH
                - SOL
                - TRX
                - XLM
              description: Asset code identifier
              example: USD
            chain:
              type: string
              enum:
                - ethereum
                - base
                - solana
                - polygon
                - arbitrum
                - optimism
                - avalanche
                - tron
                - stellar
                - bsc
                - bitcoin
              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}$
      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
    FeatureRequestDto__schema0:
      anyOf:
        - type: string
        - type: number
        - type: boolean
        - maxItems: 100
          type: array
          items:
            $ref: '#/components/schemas/FeatureRequestDto__schema0'
        - type: object
          additionalProperties:
            $ref: '#/components/schemas/FeatureRequestDto__schema0'
      nullable: true
  securitySchemes:
    api-key:
      type: apiKey
      in: header
      name: x-api-key

````