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

# List User Accounts

> List User Accounts, filtered by the `client_account_id` you assigned in an Account file. Use it to find the `id` of User Accounts you created through Account files. The filter is required, and `objects` has at most one User Account.



## OpenAPI

````yaml GET /v2/user_accounts
openapi: 3.0.1
info:
  title: Lead Bank
  description: Lead Bank's APIs
  version: v1.0
servers:
  - url: https://api.sandbox.lead.bank
  - url: https://api.lead.bank
security:
  - bearerAuth: []
tags:
  - name: ACH
  - name: Account Number
  - name: OAuth
  - name: Events
  - name: Instant Payments
  - name: Lending
  - name: Simulation
  - name: Internal Transfer
  - name: Disbursement
  - name: Entity
  - name: Wire
  - name: Originator
  - name: Funding
  - name: Receivable Sale
  - name: Balances
  - name: Compliance
  - name: Application
  - name: User Account
  - name: Blockchain Payment
  - name: Core Account
  - name: Core Balance
  - name: Core Transaction
  - name: Event Subscription
  - name: Receivable
  - name: User Credit Transaction
  - name: Files
paths:
  /v2/user_accounts:
    get:
      tags:
        - User Account
      summary: List user accounts
      description: >-
        List User Accounts, filtered by the `client_account_id` you assigned in
        an Account file. Use it to find the `id` of User Accounts you created
        through Account files. The filter is required, and `objects` has at most
        one User Account.
      operationId: list-user-accounts-v2
      parameters:
        - name: client_account_id
          in: query
          required: true
          description: Return only user accounts with this `client_account_id`.
          schema:
            type: string
          example: BIZ-2024-001
      responses:
        '200':
          description: A list of User Account objects.
          content:
            application/json:
              schema:
                type: object
                required:
                  - objects
                  - has_more
                properties:
                  objects:
                    type: array
                    description: At most one user account.
                    items:
                      $ref: '#/components/schemas/UserAccountV2'
                  has_more:
                    type: boolean
                    description: >-
                      Always `false`. At most one user account matches a
                      `client_account_id`.
        '400':
          description: The request could not be parsed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                code: request_malformed
                message: The request is invalid and cannot be parsed by the server.
                errors:
                  - code: url_malformed
                    message: The request URL could not be parsed.
        '403':
          description: >-
            `code` is one of:

            `authentication_missing` (the request has no credentials),

            `token_invalid` (the bearer token is missing, expired, or invalid,
            or does not grant `user_account/read` or `user_account/read_write`),

            `source_ip_not_allowed` (the request came from an IP address that is
            not on your program's allowlist).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                code: token_invalid
                message: The bearer token is missing, expired, malformed, or invalid.
        '422':
          description: >-
            `code` is one of:

            `parameters_invalid` (`client_account_id` is missing;
            `errors[].code` is `schema_violation`),

            `lead_control_restricted` (your program is not enabled for User
            Accounts v2; `errors[].code` is `feature_not_enabled`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                code: parameters_invalid
                message: One or more parameters are invalid.
                errors:
                  - code: schema_violation
                    message: client_account_id is required.
                    parameters:
                      - client_account_id
        '429':
          description: Rate limit exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                code: rate_limit_exceeded
                message: >-
                  You have exceeded the rate limit for this endpoint. Retry with
                  backoff.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                code: internal_server_error
                message: >-
                  Something went wrong on our end. Contact Lead with the
                  Request-Id if this persists.
        '503':
          description: >-
            The service or endpoint is temporarily unavailable. Retry after a
            delay.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                code: service_unavailable
                message: >-
                  The service is temporarily unavailable. Retry after the
                  indicated delay.
        '504':
          description: An upstream system did not respond in time. Retry with backoff.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                code: gateway_timeout
                message: An upstream system timed out. Retry with backoff.
components:
  schemas:
    UserAccountV2:
      type: object
      description: A user account object
      readOnly: true
      required:
        - id
        - status
        - status_reason
        - features
        - product_name
        - entities
        - details
        - documents
        - metadata
        - created_at
        - updated_at
      properties:
        id:
          $ref: '#/components/schemas/UserAccountID'
        status:
          $ref: '#/components/schemas/UserAccountStatusV2'
        status_reason:
          $ref: '#/components/schemas/UserAccountStatusReasonV2'
        application_id:
          $ref: '#/components/schemas/ApplicationID'
        features:
          type: array
          description: Features granted to the user account.
          items:
            $ref: '#/components/schemas/UserAccountFeatureV2'
        entities:
          $ref: '#/components/schemas/UserAccountEntitiesV2'
        details:
          $ref: '#/components/schemas/UserAccountDetailsV2'
        product_name:
          type: string
          description: Partner's name for their product
        documents:
          type: array
          description: >-
            Compliance documents linked to the user account. Each entry
            references a

            file uploaded with the Files API.
          items:
            $ref: '#/components/schemas/FileDocument'
        legacy_documents:
          type: array
          readOnly: true
          description: >-
            Document entries created on v0 User Accounts, returned exactly as
            sent.

            Read only: ignored if included on a POST or PATCH.
          items:
            $ref: '#/components/schemas/LegacyUserAccountDocumentV2'
        client_account_id:
          type: string
          description: >-
            The identifier you assigned in an Account file. Present only on user

            accounts created through file upload. Omitted on user accounts
            created

            through the API, which are identified only by `id`.
          readOnly: true
        balance_sheet_model:
          type: string
          allOf:
            - $ref: '#/components/schemas/UserAccountBalanceSheetModelV2'
          nullable: true
          description: How Lead carries the user account's credit on its balance sheet.
        product_config_id:
          type: string
          pattern: ^product_config_\w+$
          nullable: true
          description: >-
            The id of the product configuration the user account was created
            under.

            `null` only on user accounts created before product config ids
            existed.
          example: product_config_xyz123
        metadata:
          $ref: '#/components/schemas/Metadata'
        created_at:
          type: string
          format: date-time
          description: Creation timestamp
          readOnly: true
        updated_at:
          type: string
          format: date-time
          description: Last update timestamp
          readOnly: true
        closed_at:
          type: string
          format: date-time
          description: >-
            Timestamp when the user account was closed. Updated by /close
            endpoint.
          readOnly: true
          nullable: true
    Error:
      type: object
      required:
        - code
        - message
      properties:
        code:
          $ref: '#/components/schemas/ErrorCode'
        message:
          type: string
          description: >-
            A human-readable description of the error family. Identical for
            every occurrence of a given `code`; carries no request-specific
            detail.
          example: One or more parameters are invalid.
        errors:
          type: array
          description: >-
            Zero or more specific errors within this family. Always present for
            validation errors, one entry per failing field.
          items:
            $ref: '#/components/schemas/ErrorItem'
    UserAccountID:
      type: string
      description: The ID of the User Account object.
      example: user_account_xyz123
      pattern: ^user_account_\w+$
    UserAccountStatusV2:
      type: string
      description: Current state of the user account
      enum:
        - active
        - inactive
        - closed
    UserAccountStatusReasonV2:
      type: string
      description: Machine-readable reason for the current status
      enum:
        - client_closed
        - entity_closed
        - frozen
        - dormant
        - active
        - paid_off
        - charged_off
        - canceled
        - other
    ApplicationID:
      type: string
      description: Unique identifier for the application. Prefixed with `application_`.
      example: application_xyz123
      pattern: ^application_\w+$
    UserAccountFeatureV2:
      type: string
      description: A feature of the user account
      enum:
        - deposit
        - credit_with_underwriting
        - credit_without_underwriting
    UserAccountEntitiesV2:
      type: object
      readOnly: true
      description: Entity relationships associated with the user account (response only)
      properties:
        account_holder_type:
          type: string
          description: Derived from the type of the entity referenced in account_holders
          enum:
            - consumer
            - commercial
    UserAccountDetailsV2:
      type: object
      description: Core details of the user account
      readOnly: true
      properties:
        underwriting:
          $ref: '#/components/schemas/UserAccountUnderwritingV2'
        adverse_action_notice:
          $ref: '#/components/schemas/AdverseActionNotice'
    FileDocument:
      type: object
      description: >-
        A document entry in a v2 Application or User Account `documents` array:
        a

        reference to an uploaded file plus the moment the end user saw or agreed

        to it. The file's `type` is not repeated here; retrieve it via

        `GET /v2/files/{id}`. Entity document entries have their own shape and
        are

        specified with the v2 Entity operations.
      required:
        - file_id
        - timestamp
      properties:
        file_id:
          $ref: '#/components/schemas/FileID'
        timestamp:
          type: string
          format: date-time
          description: |-
            When the end-user was shown or agreed to the document, per the file
            type. Partner-supplied; records an exchange between the partner and
            end-user, never upload time. ISO 8601, UTC.
          example: '2026-09-14T14:20:11Z'
        version:
          type: string
          description: >-
            Partner-supplied label used for static documents so that two entries
            of

            the same type on one object can be ordered (e.g. terms of use v1 and
            v2).
          example: v2
    LegacyUserAccountDocumentV2:
      type: object
      description: >-
        A document entry sent through the v0 Accounts API, returned exactly as
        sent. Read only.
      properties:
        document_id:
          type: string
          description: >-
            The SFTP filename sent on v0 as the document reference. Lead did not
            check that the file arrived.
          example: loan_agreement_01_2026.pdf
        type:
          $ref: '#/components/schemas/ComplianceDocumentType'
        displayed_at:
          type: string
          format: date-time
          description: >-
            When the document was shown to the account holder, as sent on v0.
            Present on disclosure documents.
        consented_at:
          type: string
          format: date-time
          description: >-
            When the account holder consented to the document, as sent on v0.
            Present on consent documents.
        version:
          type: string
          description: The version label sent on v0.
          example: v1
    UserAccountBalanceSheetModelV2:
      type: string
      description: How Lead carries the user account's credit on its balance sheet.
      enum:
        - held_for_investment
        - held_for_sale
    Metadata:
      type: object
      additionalProperties:
        type: string
      description: >-
        A set of key-value pairs that can be used to store additional
        information related to this object.
    ErrorCode:
      type: string
      description: >-
        A snake_case code identifying the error family — the stable,
        machine-readable value partners branch on, together with the HTTP
        status.
      example: parameters_invalid
      enum:
        - request_malformed
        - content_too_large
        - idempotency_key_missing
        - authentication_missing
        - token_invalid
        - source_ip_not_allowed
        - url_invalid
        - object_not_found
        - method_not_allowed
        - idempotency_key_in_use
        - idempotency_request_inconsistent
        - rate_limit_exceeded
        - internal_server_error
        - service_unavailable
        - endpoint_disabled
        - gateway_timeout
        - unclassified
        - parameters_invalid
        - related_object_invalid
        - related_object_not_ready
        - related_object_conflict
        - limit_exceeded
        - client_control_restricted
        - lead_control_restricted
        - object_state_conflict
        - object_modified_concurrently
        - operation_invalid
    ErrorItem:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
          description: A snake_case code naming the specific error or sub-category.
          example: required
        message:
          type: string
          description: >-
            A human-readable description of this specific error, with
            interpolated values where relevant.
          example: account_number_id is required.
        parameters:
          type: array
          description: >-
            The request fields this error implicates, in dot notation for nested
            fields. Present for validation errors.
          items:
            type: string
          example:
            - account_number_id
    UserAccountUnderwritingV2:
      type: object
      description: Underwriting details for the user account
      properties:
        is_secured:
          type: boolean
          description: Indicates if this is a secured credit/deposit product
        is_mla:
          type: boolean
          description: >-
            Indicates if this user account is considered a Military Lending Act
            account
        underwriting_grade:
          type: string
          description: Grade given to the customer based on underwriting
        currency_code:
          type: string
          description: The currency for the user account (3-letter ISO code)
          example: USD
        available_credit:
          type: integer
          description: Available credit for the customer to draw (in minor units)
        limit:
          type: integer
          description: Current credit limit (in minor units)
        max_limit:
          type: integer
          description: Maximum credit limit approved in underwriting (in minor units)
        scra:
          $ref: '#/components/schemas/Scra'
        report:
          $ref: '#/components/schemas/CreditReport'
    AdverseActionNotice:
      type: object
      description: Adverse action notice information
      properties:
        delivered_at:
          type: string
          format: date-time
          description: >-
            ISO 8601 timestamp when the adverse action notice was sent to the
            applicant.
        reason:
          type: string
          description: The reason stated in the adverse action notice.
        delivery_method:
          type: string
          description: >-
            How the notice was delivered to the applicant. Possible values:
            `email`, `text`, `other`.
          enum:
            - email
            - text
            - other
      required:
        - delivered_at
        - reason
        - delivery_method
    FileID:
      type: string
      description: Lead-issued identifier of the file, from `POST /v2/files`.
      example: file_7RwQ2mK9pL4xT1vN8jS5
      pattern: ^file_\w+$
    ComplianceDocumentType:
      type: string
      description: Type of document associated with an application
      enum:
        - aan
        - loan_agreement
        - loc_agreement
        - truth_in_lending_document
        - ach_authorization
        - notice_of_incompleteness
        - credit_score_notice
        - offer_summary
        - personal_guarantee
        - consumer_credit_auth
        - partner_privacy_policy
        - lead_privacy_policy
        - terms_of_use
        - esign_agreement
        - credit_pull_consent
        - fcra_notice
        - tcpa_consent
        - patriot_act_notice
        - mla_notice
        - pre_approval_terms
        - eft_authorization
        - prohibited_industry_certification
        - decision_maker_document
        - bo_certification
        - missed_payments_policy
        - consent_to_link_account
        - consent_to_link_hsa
        - negative_option_consent
        - lead_funds_transfer_agreement
        - deposit_agreement
        - cardholder_agreement
        - periodic_statement
        - autopay_authorization
    Scra:
      type: object
      description: SCRA (Servicemembers Civil Relief Act) details
      properties:
        start_date:
          type: string
          format: date
          description: Start date for SCRA protections
        end_date:
          type: string
          format: date
          description: End date for SCRA protections
      required:
        - start_date
    CreditReport:
      type: object
      description: >
        Credit report information. Exactly one of `score` or `non_score_value`
        must be provided; `pulled_at` and `source` are always required when a
        credit report is supplied.
      required:
        - pulled_at
        - source
      properties:
        score:
          type: integer
          description: >-
            Credit score returned by the bureau. Supported range is 300-850.
            Mutually exclusive with `non_score_value`.
          minimum: 300
          maximum: 850
        non_score_value:
          type: string
          description: >-
            Indicates the state of a credit file when a numeric score is not
            available. Mutually exclusive with `score`.
          enum:
            - unestablished
            - frozen
        pulled_at:
          type: string
          format: date-time
          description: ISO 8601 timestamp when the credit report was pulled.
        source:
          type: string
          description: >-
            Credit bureau that issued the report. Possible values: `equifax`,
            `experian`, `transunion`.
          enum:
            - equifax
            - transunion
            - experian
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````

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