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

# Get customer requirements

> API 2026-10-01 returns catalog descriptions and separate review feedback,
validation occurrences, and rejected document steps. Earlier versions retain
the legacy shape. The default when X-API-Version is omitted remains unchanged.
Customers without stored requirements show the identification-level requirement.
Only applicant-facing feedback is included on this route.



## OpenAPI

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


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


      Iron supports two wallet types:


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

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


      Similarly, fiat bank accounts must be registered before they can receive
      offramp payouts.
    name: Addresses
  - description: Operations on Autoramp
    name: Autoramp
  - description: Operations on Chronicle collateral
    name: ChronicleCollateral
  - description: Operations on Currencies
    name: Currencies
  - description: Operations on Customers
    name: Customer
  - description: Operations on Exchange Rate
    name: ExchangeRate
  - description: Operations on Fee Profiles
    name: FeeProfiles
  - description: Operations for Sandbox Testing
    name: Sandbox
  - description: Operations on SSE
    name: Sse
  - description: Operations on Terms and Conditions
    name: TermsAndConditions
  - description: Operations on Webhooks
    name: Webhooks
paths:
  /customers/{id}/requirements:
    get:
      tags:
        - Customer
      summary: Get customer requirements
      description: >-
        API 2026-10-01 returns catalog descriptions and separate review
        feedback,

        validation occurrences, and rejected document steps. Earlier versions
        retain

        the legacy shape. The default when X-API-Version is omitted remains
        unchanged.

        Customers without stored requirements show the identification-level
        requirement.

        Only applicant-facing feedback is included on this route.
      operationId: getCustomerRequirements
      parameters:
        - deprecated: false
          description: >-
            Optional sub-partner UUID, if provided, the customer will be
            filtered for the sub-partner
          explode: true
          in: header
          name: X-SUB-PARTNER-ID
          required: false
          schema:
            type: string
        - deprecated: false
          description: the ID of the Customer to GET requirements for
          explode: true
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
        - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/StructuredCustomerRequirements'
          description: GET Customer Requirements Succeeded
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Customer Requirements Failed (Unauthorized)
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Customer Requirements Failed (Resource Not Found)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: GET Customer Requirements Failed (Internal Error)
      deprecated: false
      security:
        - ApiKeyAuth: []
components:
  parameters:
    XApiVersion:
      description: >-
        Selects the API version for this request, as an ISO date (`YYYY-MM-DD`).
        Omit to use the default version (`2025-03-13`). Supported versions:
        2025-03-13, 2026-07-01, 2026-08-01, 2026-10-01, 2026-10-15.
      in: header
      name: X-API-Version
      required: false
      schema:
        type: string
        x-default: '2026-10-01'
  schemas:
    StructuredCustomerRequirements:
      description: Available from API version 2026-10-01.
      properties:
        complete:
          items:
            $ref: '#/components/schemas/CompleteRequirement'
          type: array
        general_review_comment:
          nullable: true
          type: string
        issues:
          items:
            $ref: '#/components/schemas/RequirementIssue'
          type: array
        pending:
          items:
            $ref: '#/components/schemas/PendingRequirementItem'
          type: array
        pendingReview:
          items:
            $ref: '#/components/schemas/PendingReviewRequirement'
          type: array
        preflight_summary:
          allOf:
            - $ref: '#/components/schemas/IdentificationPreflightSummary'
            - nullable: true
          nullable: true
        requirements_due:
          items:
            $ref: '#/components/schemas/RequirementCategory'
          type: array
      required:
        - complete
        - pendingReview
        - pending
        - issues
        - requirements_due
        - preflight_summary
        - general_review_comment
      title: StructuredCustomerRequirements
      type: object
    ApiError:
      description: |-
        Standard error response returned to API clients for server errors.
        Includes a trace_id that clients can reference when reporting issues.
      properties:
        message:
          description: Human-readable error message
          type: string
        trace_id:
          description: Trace ID that can be used to look up request details in logs
          type: string
      required:
        - message
        - trace_id
      title: ApiError
      type: object
    CompleteRequirement:
      properties:
        code:
          $ref: '#/components/schemas/VerificationRequirementCode'
        description:
          type: string
        identification_id:
          format: uuid
          nullable: true
          type: string
      required:
        - code
        - description
        - identification_id
      title: CompleteRequirement
      type: object
    RequirementIssue:
      oneOf:
        - $ref: '#/components/schemas/VerificationIssue'
        - $ref: '#/components/schemas/ValidationIssue'
      type: object
    PendingRequirementItem:
      oneOf:
        - $ref: '#/components/schemas/PendingRequirement'
        - $ref: '#/components/schemas/PendingQuestionnaireRequirement'
      type: object
    PendingReviewRequirement:
      properties:
        code:
          $ref: '#/components/schemas/VerificationRequirementCode'
        description:
          type: string
        identification_id:
          format: uuid
          nullable: true
          type: string
      required:
        - code
        - description
        - identification_id
      title: PendingReviewRequirement
      type: object
    IdentificationPreflightSummary:
      description: >-
        Curated, partner-safe summary of the async preflight pipeline

        (document/selfie analysis + workflow predictor) — backfilled onto an

        identification once that pipeline finishes. Deliberately narrower than

        the full internal result: no internal level names, trace/correlation
        ids,

        or per-check evaluation names — those stay internal/backoffice-only.
      properties:
        missingInputs:
          description: |-
            Inputs the workflow predictor couldn't evaluate (e.g. a missing POI
            field) — likely_pass/inconclusive results can hinge on these.
          items:
            type: string
          type: array
        reasons:
          description: >-
            Curated, sanitized reasons the applicant may not pass
            (document/selfie

            issues, manifest-adjacent errors) — never a raw provider error.
          items:
            type: string
          type: array
        status:
          $ref: '#/components/schemas/ApiPreflightDecision'
        workflowErrors:
          items:
            $ref: '#/components/schemas/IdentificationPreflightWorkflowError'
          type: array
      required:
        - status
        - missingInputs
        - reasons
        - workflowErrors
      title: IdentificationPreflightSummary
      type: object
    RequirementCategory:
      description: |-
        Coarse summary of which areas of the customer's Sumsub KYC/KYB process
        still need attention. Used as a quick filter — full detail lives in the
        four `complete`/`pending`/`missing`/`issues` buckets.
      enum:
        - kyc
        - kyb
      type: string
    VerificationRequirementCode:
      enum:
        - kyc_selfie
        - kyc_identity
        - kyc_proof_of_residence
        - kyc_questionnaire
        - kyb_company_data
        - kyb_company_beneficiaries
        - kyb_company_documents
        - kyb_questionnaire
        - identification_kyc
        - identification_kyb
      type: string
    VerificationIssue:
      properties:
        code:
          $ref: '#/components/schemas/VerificationRequirementCode'
        description:
          type: string
        identification_id:
          format: uuid
          nullable: true
          type: string
        reject_reasons:
          items:
            $ref: '#/components/schemas/RequirementRejectReason'
          type: array
        retryable:
          nullable: true
          type: boolean
        review_comment:
          nullable: true
          type: string
        steps:
          items:
            $ref: '#/components/schemas/RequirementStep'
          type: array
      required:
        - code
        - description
        - identification_id
        - review_comment
        - retryable
        - reject_reasons
        - steps
      title: VerificationIssue
      type: object
    ValidationIssue:
      properties:
        code:
          $ref: '#/components/schemas/ValidationRequirementCode'
        description:
          type: string
        identification_id:
          format: uuid
          nullable: true
          type: string
        retryable:
          nullable: true
          type: boolean
        validation_errors:
          items:
            $ref: '#/components/schemas/RequirementValidationError'
          type: array
      required:
        - code
        - description
        - identification_id
        - retryable
        - validation_errors
      title: ValidationIssue
      type: object
    PendingRequirement:
      properties:
        code:
          $ref: '#/components/schemas/OrdinaryPendingRequirementCode'
        description:
          type: string
        identification_id:
          format: uuid
          nullable: true
          type: string
      required:
        - code
        - description
        - identification_id
      title: PendingRequirement
      type: object
    PendingQuestionnaireRequirement:
      properties:
        code:
          $ref: '#/components/schemas/QuestionnaireRequirementCode'
        description:
          type: string
        identification_id:
          format: uuid
          nullable: true
          type: string
        missing_questions:
          items:
            $ref: '#/components/schemas/RequirementMissingQuestion'
          type: array
      required:
        - code
        - description
        - identification_id
        - missing_questions
      title: PendingQuestionnaireRequirement
      type: object
    ApiPreflightDecision:
      enum:
        - likely_pass
        - fail
        - likely_fail
        - inconclusive
      type: string
    IdentificationPreflightWorkflowError:
      properties:
        code:
          type: string
        message:
          type: string
        missingPaths:
          items:
            type: string
          type: array
      required:
        - code
        - message
      title: IdentificationPreflightWorkflowError
      type: object
    RequirementRejectReason:
      properties:
        description:
          type: string
        error_code:
          type: string
      required:
        - error_code
        - description
      title: RequirementRejectReason
      type: object
    RequirementStep:
      properties:
        description:
          type: string
        id:
          format: uuid
          type: string
        name:
          type: string
        reject_reasons:
          items:
            $ref: '#/components/schemas/RequirementRejectReason'
          type: array
        review_comment:
          nullable: true
          type: string
      required:
        - id
        - name
        - description
        - review_comment
        - reject_reasons
      title: RequirementStep
      type: object
    ValidationRequirementCode:
      enum:
        - kyc_data_missing
        - kyc_data_invalid
        - kyb_data_missing
        - kyb_data_invalid
      type: string
    RequirementValidationError:
      properties:
        description:
          type: string
        error_code:
          type: string
        field_path:
          type: string
        retryable:
          nullable: true
          type: boolean
      required:
        - error_code
        - description
        - retryable
      title: RequirementValidationError
      type: object
    OrdinaryPendingRequirementCode:
      enum:
        - kyc_selfie
        - kyc_identity
        - kyc_proof_of_residence
        - kyb_company_data
        - kyb_company_beneficiaries
        - kyb_company_documents
        - identification_kyc
        - identification_kyb
      type: string
    QuestionnaireRequirementCode:
      enum:
        - kyc_questionnaire
        - kyb_questionnaire
      type: string
    RequirementMissingQuestion:
      properties:
        id:
          type: string
        section_id:
          nullable: true
          type: string
        title:
          type: string
      required:
        - id
        - title
        - section_id
      title: RequirementMissingQuestion
      type: object
  securitySchemes:
    ApiKeyAuth:
      description: API Key
      in: header
      name: X-API-Key
      type: apiKey

````