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

# List customers

> List all customers with cursor-based pagination



## OpenAPI

````yaml https://api.fernhq.com/json get /customers
openapi: 3.1.1
info:
  title: Fern Developer API
  description: >-
    Fern is a seamless currency conversion and payments API that enables
    developers to integrate onramps, offramps, and third-party fiat/crypto
    payments into their applications. 


    Fern works with licensed liquidity providers and financial institutions to
    offer global currency support in one standardized API. 
  termsOfService: https://fernhq.com/terms
  version: 1.0.0
  contact:
    name: Fern API Support
    url: https://support.fernhq.com
    email: support@fernhq.com
servers:
  - url: https://api.fernhq.com
    description: API Server
security:
  - bearerAuth: []
tags:
  - name: Customers
    description: >-
      Use Customers API to create a customer, update their details, and get
      their details.
  - name: Payment Accounts
    description: >-
      Use Payment Accounts API to add, update and get bank accounts for an
      existing customer. Currently, only USD bank accounts with domestic
      ACH/wire routing numbers are supported.
  - name: Quotes
    description: >-
      Use Quotes API to create and fetch quotes for transactions. Currently,
      onramp and offramp transaction types are supported and will be inferred
      from the source and destination. 


      Before you can create a transaction, you must create a quote. Quotes
      enable you to specify important information about the transaction, such as
      the source and destination currencies and accounts and your developer
      fees. Quotes also provide useful information that you can use to display
      in your application, such as exchange rates and total fees. 


      - **Quotes expire after 5 minutes** 

      - You must create a quote before you create a transaction, and you will
      use the quote ID when creating a transaction. 

      - Quotes can only be created for verified customers. /n- Once you create a
      transaction with a quote, that quote can no longer be used. To generate a
      new transaction, you will have to create a new quote.
  - name: Transactions
    description: >-
      Use Transactions API to create and get transactions for a customer and a
      quote. Requires the creation of a quote beforehand per transaction.
  - name: Automation Rules
    description: >-
      Use Automation Rules API to create and manage automation rules for a
      customer.
  - name: Webhooks
    description: >-
      Use Webhooks API to manage webhook endpoints and view recent webhook
      deliveries.
paths:
  /customers:
    get:
      tags:
        - Customers
      summary: List customers
      description: List all customers with cursor-based pagination
      operationId: listCustomers
      parameters:
        - schema:
            type: string
          example: ZDE4YmViMjYtYjRkMS00N2VlLThlNWQtMGQzOTA1ZjIwMGM3
          in: query
          name: pageToken
          required: false
          description: Token for forward pagination
        - schema:
            minimum: 1
            default: 10
            type: integer
          example: 10
          in: query
          name: pageSize
          required: false
          description: 'Number of items per page (default: 10, max: 100)'
        - schema:
            format: uuid
            type: string
          example: 77863f21-a92a-4919-bd83-bded799d938b
          in: query
          name: organizationId
          required: false
          description: Organization ID to filter customers
      responses:
        '200':
          description: Response schema for listing customers
          content:
            application/json:
              schema:
                title: List Customers Response
                description: Response schema for listing customers
                type: object
                properties:
                  customers:
                    type: array
                    items:
                      type: object
                      properties:
                        customerId:
                          format: uuid
                          type: string
                          description: Unique identifier of the customer
                          example: abc123
                        customerStatus:
                          enum:
                            - CREATED
                            - UNDER_REVIEW
                            - NEEDS_ADDITIONAL_INFORMATION
                            - ACTIVE
                            - REJECTED
                            - DEACTIVATED
                          type: string
                          description: Current status of the customer
                          example: ACTIVE
                        email:
                          format: email
                          type: string
                          description: Email of the customer
                          example: john.doe@example.com
                        customerType:
                          $ref: '#/components/schemas/CustomerTypeEnum'
                        name:
                          type: string
                          description: Full name of the customer or business
                          example: John Doe
                        verificationLink:
                          format: uri
                          type: string
                          description: URL for KYC/KYB verification process
                          example: >-
                            https://forms.fernhq.com/verify-customer/0423300f-ae6d-4e82-8afb-a3b430e22e29
                        updatedAt:
                          format: date-time
                          type: string
                          description: Timestamp of the last status update
                        organizationId:
                          type: string
                          description: Organization identifier
                          example: 8469411c-48c1-4e26-a032-44688be9cb4b
                        availablePaymentMethods:
                          type: array
                          items:
                            type: string
                          enum:
                            - Payment Method Schema
                            - >-
                              Payment method for source or destination
                              transactions
                            - - enum:
                                  - ACH
                                  - WIRE
                                  - SEPA
                                  - AE_UAEFTS
                                  - AR_TRANSFERS_3
                                  - AU_BECS
                                  - BD_BEFTN
                                  - BO_RTGS
                                  - BR_TED_DOC_PIX
                                  - CA_INTERAC
                                  - CL_TEF
                                  - CN_CNAPS
                                  - CO_ACH
                                  - CR_SINPE
                                  - CZ_CERTIS
                                  - DK_NEMKONTO_FI
                                  - DO_ACH
                                  - EC_LOCAL
                                  - EG_RTGS_IPN
                                  - GB_BACS_CHAPS_FPS
                                  - GH_GHIPSS
                                  - GT_ACH
                                  - HK_HKICL_CHATS_ECG
                                  - HU_GIRO
                                  - ID_SKN_RTGS
                                  - IL_ZAHAV
                                  - IN_NEFT_RTGS_IMPS
                                  - JM_LOCAL
                                  - JO_ACH
                                  - JP_ZENGIN
                                  - KE_KIBBS_PESALINK
                                  - KR_LOCAL
                                  - LK_LOCAL
                                  - MX_SPEI
                                  - MY_IBG_RENTAS
                                  - NG_NIBSS_NEFT
                                  - NO_NICS
                                  - NP_LOCAL
                                  - NZ_LOCAL
                                  - PE_CCE
                                  - PH_INSTAPAY_PESONET
                                  - PK_RAAST_IBFT
                                  - PL_ELIXIR_BLUE_CASH
                                  - QA_QPS
                                  - RO_RTGS
                                  - SA_MADA
                                  - SE_BANKGIROT
                                  - SG_FAST_MEPS
                                  - SV_LOCAL
                                  - SWIFT
                                  - TH_BAHTNET_PROMPTPAY
                                  - TR_FAST_EFT
                                  - TZ_RTGS
                                  - VN_IBPS
                                  - ZA_RTGS_EFT
                                  - ACH_SAME_DAY
                                title: Fiat Payment Method
                                description: The payment method for the source funds (fiat)
                                type: string
                              - enum:
                                  - ARBITRUM
                                  - BASE
                                  - ETHEREUM
                                  - OPTIMISM
                                  - POLYGON
                                  - SOLANA
                                title: Crypto Payment Method
                                description: >-
                                  The payment method for the source funds
                                  (crypto)
                                type: string
                          description: Available payment methods for the customer
                          example:
                            - ACH
                            - WIRE
                            - SEPA
                            - CA_INTERAC
                            - IN_NEFT_RTGS_IMPS
                            - ARBITRUM
                            - BASE
                            - ETHEREUM
                            - OPTIMISM
                            - POLYGON
                            - SOLANA
                        verificationIssues:
                          type: array
                          items:
                            type: object
                            properties:
                              code:
                                enum:
                                  - DOCUMENT_MISSING_BACK
                                  - DOCUMENT_MISSING_FRONT
                                  - DOCUMENT_NUMBER_UNREADABLE
                                  - DOC_QUALITY_POOR
                                  - NAME_UNREADABLE
                                  - NO_FACE_PORTRAIT
                                  - MISSING_ID_DETAILS
                                  - DOCUMENT_EXPIRED
                                  - NO_GOVERNMENT_ID
                                  - INCORRECT_ID_TYPE
                                  - ID_REQUIRES_ADDITIONAL_VERIFICATION
                                  - ID_COUNTRY_MISMATCH
                                  - GOVERNMENT_ID_VERIFICATION_FAILED
                                  - DATABASE_CHECK_FAILED_ON_NAME_FIRST
                                  - DATABASE_CHECK_FAILED_ON_NAME_LAST
                                  - >-
                                    DATABASE_CHECK_FAILED_ON_SOCIAL_SECURITY_NUMBER
                                  - DATABASE_CHECK_FAILED_ON_STREET_NAME
                                  - DATABASE_CHECK_FAILED_ON_CITY
                                  - DATABASE_CHECK_FAILED_ON_SUBDIVISION
                                  - DATABASE_CHECK_FAILED_ON_POSTAL_CODE
                                  - ADDRESS_TOO_SHORT
                                  - INCONSISTENT_INFORMATION
                                  - INCONSISTENT_DETAILS
                                  - INVALID_PARAMETERS
                                  - VERIFICATION_ISSUE
                                  - API_ERROR
                                  - NAME_VERIFICATION_FAILED
                                  - ID_TYPE_MISMATCH
                                  - BIRTH_DATE_MISMATCH
                                  - ID_DATA_MISMATCH
                                  - ID_NUMBER_NOT_VERIFIED
                                  - MISSING_NAME
                                  - DOCUMENT_NOT_FOUND
                                  - UNREADABLE_DOCUMENT
                                  - UNRECOGNIZED_DOCUMENT
                                  - MISSING_DOCUMENT_NUMBER
                                  - MISSING_ISSUE_DATE
                                  - MISSING_EXPIRY_DATE
                                  - DOCUMENT_FRONT_OR_BACK_MISSING
                                  - DOCUMENT_BACK_MISSING
                                  - ID_NOT_ALLOWED
                                  - FACE_PREVIOUSLY_ONBOARDED
                                  - ID_PREVIOUSLY_SEEN
                                  - ID_PREVIOUSLY_ATTEMPTED
                                  - SUSPICIOUS_USER_BEHAVIOUR
                                  - SCREEN_DETECTED
                                  - AML_MATCH
                                  - >-
                                    ADDRESS_DOCUMENT_DOCUMENT_NOT_ISSUED_RECENTLY
                                  - ADDRESS_DOCUMENT_MISSING_NAME
                                  - ADDRESS_DOCUMENT_MISSING_ADDRESS
                                  - ADDRESS_DOCUMENT_UNRECOGNIZED_DOCUMENT
                                  - ADDRESS_DOCUMENT_NAME_VERIFICATION_FAILED
                                  - DATABASE_LOOKUP_ISSUE
                                  - THIRD_PARTY_API_FAILED
                                  - API_DATA_REQUIREMENTS_NOT_MET
                                  - WORKFLOW_CONFIG_ERROR
                                  - ID_WARNING
                                  - AML_WARNING
                                  - FRAUD_WARNING
                                  - ADDITIONAL_WARNING
                                type: string
                                description: >-
                                  Error code for programmatic handling. See
                                  documentation for complete list of error codes
                                  and their meanings.
                                example: DOCUMENT_MISSING_BACK
                              message:
                                type: string
                                description: Human-readable, actionable explanation
                                example: >-
                                  Please upload clear photos of both the front
                                  and back of your ID.
                              timestamp:
                                format: date-time
                                type: string
                                description: When the issue was detected
                                example: '2023-10-01T12:00:00Z'
                            required:
                              - code
                              - message
                              - timestamp
                            additionalProperties: false
                            title: Verification Issue
                            description: >-
                              Details about a specific verification issue
                              blocking customer approval
                          description: >-
                            Current verification issues blocking customer
                            approval. Only present for customers in
                            NEEDS_ADDITIONAL_INFORMATION, UNDER_REVIEW, or
                            REJECTED status.
                          example:
                            - code: DOCUMENT_MISSING_BACK
                              message: >-
                                Please upload clear photos of both the front and
                                back of your ID.
                              timestamp: '2023-10-01T12:00:00Z'
                      required:
                        - customerId
                        - customerStatus
                        - email
                        - customerType
                        - name
                        - verificationLink
                        - updatedAt
                        - organizationId
                    title: Customers
                    description: Retrieved customers
                  nextPageToken:
                    type: string
                    description: Page token to use to fetch next page
                    example: xyz
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                description: Bad Request
                type: object
                properties:
                  message:
                    type: string
                    description: Human-readable error message
                    example: Invalid input provided
                  code:
                    type: string
                    description: Error code for programmatic handling
                    example: VALIDATION_ERROR
                  details:
                    description: Additional error context
                required:
                  - message
                additionalProperties: false
              examples:
                example1:
                  value:
                    code: BAD_REQUEST
                    message: ''
                    statusCode: 400
                example2:
                  value:
                    code: VALIDATION_ERROR
                    message: Invalid body data
                    details:
                      - path: []
                        message: ''
                        location: body
                    statusCode: 400
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                description: Unauthorized
                type: object
                properties:
                  message:
                    type: string
                    description: Human-readable error message
                    example: Invalid input provided
                  code:
                    type: string
                    description: Error code for programmatic handling
                    example: VALIDATION_ERROR
                  details:
                    description: Additional error context
                required:
                  - message
                additionalProperties: false
              example:
                code: UNAUTHORIZED
                message: Missing API Key
                statusCode: 401
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                description: Forbidden
                type: object
                properties:
                  message:
                    type: string
                    description: Human-readable error message
                    example: Invalid input provided
                  code:
                    type: string
                    description: Error code for programmatic handling
                    example: VALIDATION_ERROR
                  details:
                    description: Additional error context
                required:
                  - message
                additionalProperties: false
              example:
                code: FORBIDDEN
                message: ''
                statusCode: 403
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                description: Not Found
                type: object
                properties:
                  message:
                    type: string
                    description: Human-readable error message
                    example: Invalid input provided
                  code:
                    type: string
                    description: Error code for programmatic handling
                    example: VALIDATION_ERROR
                  details:
                    description: Additional error context
                required:
                  - message
                additionalProperties: false
              example:
                code: NOT_FOUND
                message: >-
                  Customer not found with id
                  9eb88b00-f04f-409b-9df7-7dcc9003bc35
                statusCode: 404
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                description: Internal Server Error
                type: object
                properties:
                  message:
                    type: string
                    description: Human-readable error message
                    example: Invalid input provided
                  code:
                    type: string
                    description: Error code for programmatic handling
                    example: VALIDATION_ERROR
                  details:
                    description: Additional error context
                required:
                  - message
                additionalProperties: false
              example:
                code: INTERNAL_SERVER_ERROR
                message: INTERNAL_SERVER_ERROR
                statusCode: 500
components:
  schemas:
    CustomerTypeEnum:
      enum:
        - INDIVIDUAL
        - BUSINESS
      type: string
      title: Customer Type Enums
      description: The type of customer - either individual or business
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: To authenticate server-side requests

````