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

# List documents for customer

> Returns all identity verification documents submitted for a customer. Includes document status, verification results, document type (passport, driver's license, etc.), and failure reasons if verification was rejected. Used to track document submission and verification progress during the business verification process.



## OpenAPI

````yaml get /customers/{id}/documents
openapi: 3.1.0
info:
  title: Dwolla API
  description: Dwolla API Documentation
  contact:
    name: Dwolla Developer Relations Team
    url: https://developers.dwolla.com
    email: api@dwolla.com
  version: '2.0'
  termsOfService: https://www.dwolla.com/legal/tos/
  license:
    name: MIT
    url: https://github.com/Dwolla/dwolla-openapi/blob/master/LICENSE
servers:
  - url: https://api.dwolla.com
    description: Production server
  - url: https://api-sandbox.dwolla.com
    description: Sandbox server
security:
  - clientCredentials: []
tags:
  - name: tokens
    description: Operations related to Application Access Tokens
  - name: root
    description: Root API operations
  - name: accounts
    description: Operations related to Accounts
  - name: customers
    description: Operations related to Customers
  - name: kba
    description: Operations related to Knowledge-Based Authentication
  - name: beneficial owners
    description: Operations related to Beneficial Owners
  - name: documents
    description: Operations related to Documents
  - name: exchanges
    description: Operations related to Exchanges
  - name: exchange sessions
    description: Operations related to Exchange Sessions
  - name: funding sources
    description: Operations related to Funding Sources
  - name: transfers
    description: Operations related to Transfers
  - name: labels
    description: Operations related to Labels
  - name: mass payments
    description: Operations related to Mass Payments
  - name: events
    description: Operations related to Events
  - name: webhook subscriptions
    description: Operations related to Webhook Subscriptions
  - name: webhooks
    description: Operations related to Webhooks
  - name: client tokens
    description: Operations related to Client Tokens
  - name: sandbox simulations
    description: Sandbox-only operations for simulating processing of bank transfers
paths:
  /customers/{id}/documents:
    get:
      tags:
        - documents
      summary: List documents for customer
      description: >-
        Returns all identity verification documents submitted for a customer.
        Includes document status, verification results, document type (passport,
        driver's license, etc.), and failure reasons if verification was
        rejected. Used to track document submission and verification progress
        during the business verification process.
      operationId: listCustomerDocuments
      parameters:
        - name: id
          in: path
          description: customer unique identifier
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Accept'
      responses:
        '200':
          description: successful operation
          headers: {}
          content:
            application/vnd.dwolla.v1.hal+json:
              schema:
                $ref: '#/components/schemas/Documents'
        '403':
          description: Forbidden
          headers: {}
          content:
            application/vnd.dwolla.v1.hal+json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '404':
          description: Not Found
          headers: {}
          content:
            application/vnd.dwolla.v1.hal+json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
      x-codeSamples:
        - lang: bash
          source: >
            GET
            https://api-sandbox.dwolla.com/customers/176878b8-ecdb-469b-a82b-43ba5e8704b2/documents

            Accept: application/vnd.dwolla.v1.hal+json

            Authorization: Bearer
            pBA9fVDBEyYZCEsLfwKehyh1RTpzjUj5KzIRfDi0wKTii7DqY


            ...


            {
              "_links": {
                "self": {
                  "href": "https://api-sandbox.dwolla.com/customers/176878b8-ecdb-469b-a82b-43ba5e8704b2/documents"
                }
              },
              "_embedded": {
                "documents": [
                  {
                    "_links": {
                      "self": {
                        "href": "https://api-sandbox.dwolla.com/documents/56502f7a-fa59-4a2f-8579-0f8bc9d7b9cc"
                      }
                    },
                    "id": "56502f7a-fa59-4a2f-8579-0f8bc9d7b9cc",
                    "status": "pending",
                    "type": "passport",
                    "created": "2015-09-29T21:42:16.000Z",
                    "documentVerificationStatus": "pending"
                  },
                  {
                    "_links": {
                        "self": {
                            "href": "https://api-sandbox.dwolla.com/documents/20988444-c7e1-40cf-ab1a-a20da878e568",
                            "type": "application/vnd.dwolla.v1.hal+json",
                            "resource-type": "document"
                        }
                    },
                    "id": "20988444-c7e1-40cf-ab1a-a20da878e568",
                    "status": "reviewed",
                    "type": "license",
                    "created": "2019-05-30T22:01:40.000Z",
                    "documentVerificationStatus": "rejected",
                    "failureReason": "ScanDobMismatch",
                    "allFailureReasons": [
                        {
                            "reason": "ScanDobMismatch",
                            "description": "Scan DOB does not match DOB on account"
                        },
                        {
                            "reason": "ScanIdExpired",
                            "description": "ID is expired or missing expiration date"
                        }
                    ]
                  }
                ]
              },
              "total": 2
            }
        - lang: javascript
          source: |
            // Using dwolla-v2 - https://github.com/Dwolla/dwolla-v2-node
            var customerUrl =
              "https://api-sandbox.dwolla.com/customers/176878b8-ecdb-469b-a82b-43ba5e8704b2";

            dwolla
              .get(`${customerUrl}/documents`)
              .then((res) => res.body._embedded["documents"][0].id); // => '56502f7a-fa59-4a2f-8579-0f8bc9d7b9cc'
        - lang: python
          source: >
            # Using dwollav2 - https://github.com/Dwolla/dwolla-v2-python

            customer_url =
            'https://api-sandbox.dwolla.com/customers/176878b8-ecdb-469b-a82b-43ba5e8704b2'


            documents = app_token.get('%s/documents' % customer_url)

            documents.body['total'] # => 2
        - lang: php
          source: >
            <?php

            // Using dwollaswagger -
            https://github.com/Dwolla/dwolla-swagger-php

            $customerUrl =
            'https://api-sandbox.dwolla.com/customers/176878b8-ecdb-469b-a82b-43ba5e8704b2';


            $customersApi = new DwollaSwagger\CustomersApi($apiClient);


            $customer = $customersApi->getCustomerDocuments($customerUrl);

            $customer->total; # => 2

            ?>
        - lang: ruby
          source: >
            # Using dwolla_v2 - https://github.com/Dwolla/dwolla-v2-ruby

            customer_url =
            'https://api-sandbox.dwolla.com/customers/176878b8-ecdb-469b-a82b-43ba5e8704b2'


            documents = app_token.get "#{customer_url}/documents"

            documents._embedded['documents'][0].id # =>
            "56502f7a-fa59-4a2f-8579-0f8bc9d7b9cc"
components:
  parameters:
    Accept:
      name: Accept
      in: header
      required: true
      description: >-
        The media type of the response. Must be
        application/vnd.dwolla.v1.hal+json
      schema:
        type: string
        enum:
          - application/vnd.dwolla.v1.hal+json
        default: application/vnd.dwolla.v1.hal+json
  schemas:
    Documents:
      title: Documents
      type: object
      required:
        - _links
        - _embedded
        - total
      properties:
        _links:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/HalLink'
        _embedded:
          type: object
          required:
            - documents
          properties:
            documents:
              type: array
              items:
                $ref: '#/components/schemas/Document'
        total:
          type: integer
          example: 2
    ForbiddenError:
      title: ForbiddenError
      description: Error response schema for 403 Forbidden
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
          example: Forbidden
        message:
          type: string
          example: The supplied credentials are not authorized for this resource.
    NotFoundError:
      title: NotFoundError
      description: Error response schema for 404 NotFound
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
          example: NotFound
        message:
          type: string
          example: The requested resource was not found.
    HalLink:
      title: HalLink
      type: object
      properties:
        href:
          type: string
          example: https://api.dwolla.com
        type:
          type: string
          example: application/vnd.dwolla.v1.hal+json
        resource-type:
          type: string
          example: resource-type
    Document:
      title: Document
      description: Identity verification document for a customer or beneficial owner
      type: object
      required:
        - _links
        - id
        - status
        - documentVerificationStatus
        - type
        - created
      properties:
        _links:
          type: object
          properties:
            self:
              $ref: '#/components/schemas/HalLink'
        id:
          type: string
          description: Unique identifier for the document
          example: 56502f7a-fa59-4a2f-8579-0f8bc9d7b9cc
        status:
          type: string
          description: Current status of the document upload
          enum:
            - pending
            - reviewed
          example: reviewed
        type:
          type: string
          description: Type of identity document uploaded
          enum:
            - passport
            - license
            - idCard
            - other
          example: passport
        created:
          type: string
          format: date-time
          description: ISO-8601 timestamp when the document was uploaded
          example: '2015-09-29T21:42:16.000Z'
        documentVerificationStatus:
          type: string
          description: Verification status of the document after review
          enum:
            - pending
            - accepted
            - rejected
          example: rejected
        failureReason:
          type: string
          description: Primary reason why document verification failed (if rejected)
          example: ScanDobMismatch
        allFailureReasons:
          type: array
          description: >-
            Complete list of all failure reasons if document verification was
            rejected
          items:
            type: object
            required:
              - reason
              - description
            properties:
              reason:
                type: string
                description: Failure reason code
                example: ScanDobMismatch
              description:
                type: string
                description: Human-readable explanation of the failure reason
                example: Scan DOB does not match DOB on account
  securitySchemes:
    clientCredentials:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: /token
          x-speakeasy-token-endpoint-authentication: client_secret_basic
          scopes: {}

````