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

# Get customers

> Get customers

<sup>Required permissions: `customer:read`</sup>



## OpenAPI

````yaml get /customers
openapi: 3.1.0
info:
  title: Fynn API
  description: ''
  termsOfService: https://www.fynn.eu/tos
  contact:
    name: Fynn UG (haftungsbeschränkt)
    url: https://www.fynn.eu
    email: hi@fynn.eu
  license:
    name: Proprietary
    url: https://www.fynn.eu/license
  version: 0.0.0
servers:
  - url: https://coreapi.io
    description: Production
  - url: https://preview.coreapi.io
    description: Sandbox
security:
  - JWT: []
tags: []
paths:
  /customers:
    parameters: []
    get:
      tags:
        - Customer
      summary: Get customers
      description: |-
        Get customers

        <sup>Required permissions: `customer:read`</sup>
      operationId: getCustomers
      parameters:
        - name: page
          in: query
          description: The collection page number
          required: false
          deprecated: false
          allowEmptyValue: true
          schema:
            type: integer
            default: 1
          style: form
          explode: false
          allowReserved: false
        - name: limit
          in: query
          description: The number of items per page
          required: false
          deprecated: false
          allowEmptyValue: true
          schema:
            type: integer
            default: 30
            minimum: 0
            maximum: 100
          style: form
          explode: false
          allowReserved: false
        - name: partner
          in: query
          description: ''
          required: false
          deprecated: false
          allowEmptyValue: true
          schema:
            type: string
          style: form
          explode: false
          allowReserved: false
          example: ad8f7b3e-3b3b-4b3b-8b3b-3b3b3b3b3b3b
        - name: search
          in: query
          description: ''
          required: false
          deprecated: false
          allowEmptyValue: true
          schema:
            type: string
          style: form
          explode: false
          allowReserved: false
        - name: customerNumber
          in: query
          description: ''
          required: false
          deprecated: false
          allowEmptyValue: true
          schema:
            type: string
          style: form
          explode: false
          allowReserved: false
        - name: firstName
          in: query
          description: ''
          required: false
          deprecated: false
          allowEmptyValue: true
          schema:
            type: string
          style: form
          explode: false
          allowReserved: false
        - name: lastName
          in: query
          description: ''
          required: false
          deprecated: false
          allowEmptyValue: true
          schema:
            type: string
          style: form
          explode: false
          allowReserved: false
        - name: companyName
          in: query
          description: ''
          required: false
          deprecated: false
          allowEmptyValue: true
          schema:
            type: string
          style: form
          explode: false
          allowReserved: false
        - name: emailAddresses.email
          in: query
          description: ''
          required: false
          deprecated: false
          allowEmptyValue: true
          schema:
            type: string
          style: form
          explode: false
          allowReserved: false
        - name: vatId
          in: query
          description: ''
          required: false
          deprecated: false
          allowEmptyValue: true
          schema:
            type: string
          style: form
          explode: false
          allowReserved: false
        - name: datevId
          in: query
          description: ''
          required: false
          deprecated: false
          allowEmptyValue: true
          schema:
            type: string
          style: form
          explode: false
          allowReserved: false
        - name: isVatIdValid
          in: query
          description: ''
          required: false
          deprecated: false
          allowEmptyValue: true
          schema:
            type: boolean
          style: form
          explode: false
          allowReserved: false
        - name: isVatIdValid[]
          in: query
          description: ''
          required: false
          deprecated: false
          allowEmptyValue: true
          schema:
            type: array
            items:
              type: boolean
          style: form
          explode: true
          allowReserved: false
        - name: customerGroup.name
          in: query
          description: ''
          required: false
          deprecated: false
          allowEmptyValue: true
          schema:
            type: string
          style: form
          explode: false
          allowReserved: false
        - name: parentCustomerId
          in: query
          description: >-
            Filter by parent customer ID. Returns only direct children of the
            specified parent.
          required: false
          deprecated: false
          allowEmptyValue: true
          schema:
            type: string
            format: uuid
          style: form
          explode: false
          allowReserved: false
          example: 00000000-0000-0000-0000-000000000000
        - name: isParent
          in: query
          description: >-
            Filter customers that have child customers (true) or do not have
            child customers (false).
          required: false
          deprecated: false
          allowEmptyValue: true
          schema:
            type: boolean
          style: form
          explode: false
          allowReserved: false
        - name: hasParent
          in: query
          description: >-
            Filter customers that have a parent customer (true) or are
            root-level customers (false).
          required: false
          deprecated: false
          allowEmptyValue: true
          schema:
            type: boolean
          style: form
          explode: false
          allowReserved: false
      responses:
        '200':
          description: Customer collection
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Customer-CustomerList'
                  meta:
                    type: object
                    properties:
                      pagination:
                        type: object
                        properties:
                          totalItems:
                            type: integer
                          itemsPerPage:
                            type: integer
                          currentPage:
                            type: integer
                          lastPage:
                            type: integer
                          pageTotalItems:
                            type: integer
            text/html:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Customer-CustomerList'
      deprecated: false
      security:
        - JWT:
            - customer:read
      x-codeSamples:
        - lang: bash
          label: cURL
          source: |-
            curl -X GET \
             /customers \
             --header "Authorization: Bearer <token>"
components:
  schemas:
    Customer-CustomerList:
      type: object
      description: ''
      deprecated: false
      properties:
        id:
          readOnly: true
          example: 00000000-0000-0000-0000-000000000000
          type: string
        customerNumber:
          minLength: 2
          maxLength: 255
          example: CUSTOMER-000
          nullable: false
        timeZone:
          readOnly: true
          default: Europe/Berlin
          example: Europe/Berlin
          type: string
        firstName:
          minLength: 2
          maxLength: 255
          description: Can be empty if the customer is a company.
          example: John
          nullable: true
        lastName:
          minLength: 2
          maxLength: 255
          description: Can be empty if the customer is a company.
          example: Doe
          nullable: true
        currencyCode:
          description: >-
            Can be empty. In this case the default currency of the tenant is
            used.
          externalDocs:
            url: https://schema.org/priceCurrency
          example: EUR
          type: string
        countryCode:
          example: DE
          type: string
        companyName:
          minLength: 2
          maxLength: 255
          example: Acme Inc.
          type:
            - string
            - 'null'
        vatId:
          minLength: 2
          maxLength: 255
          example: DE123456789
          type:
            - string
            - 'null'
        isVatIdValid:
          readOnly: true
          description: >-
            Indicates if the VAT ID is valid. This is only available for EU VAT
            IDs. We validate the VAT IDs each night and directly after change.
          example: true
          type: boolean
        datevId:
          minLength: 2
          maxLength: 255
          description: The ID of the customer in DATEV
          example: '123456789'
          type:
            - string
            - 'null'
        commercialRegisterName:
          description: >-
            The name of the commercial register. This is needed tofullfill the
            collection processes on companies.
          example: Amtsgericht Berlin (Charlottenburg)
          type:
            - string
            - 'null'
        commercialRegisterNumber:
          description: >-
            The ID of the customer in the commercial register, e.g. HRB 123456.
            This is needed tofullfill the collection processes on companies.
          example: HRB 123456
          type:
            - string
            - 'null'
        status:
          default: STATUS_ACTIVE
          example: STATUS_ACTIVE
          enum:
            - STATUS_ACTIVE
            - STATUS_ARCHIVED
            - STATUS_SUSPENDED
        gender:
          description: >-
            This field is needed, to fullfill a collection process on a personal
            customer.
          example: male
          enum:
            - male
            - female
            - diverse
        phone:
          minLength: 2
          maxLength: 255
          example: +49 123 456789
          type:
            - string
            - 'null'
        language:
          enum:
            - de
            - en
          description: >-
            The language of the customer. This is used for the communication
            with the customer or on generating documents like invoices,
            reminders, etc.
          default: de
          example: de
        totalTurnOverRank:
          readOnly: true
          description: >-
            The current customer rank, based on their revenue. Lower is better.
            This will calculate each night.
          example: 10
          type:
            - integer
            - 'null'
        createdAt:
          readOnly: true
          example: '2020-01-01T00:00:00+00:00'
          type: string
          format: date-time
        customFields:
          additionalProperties:
            type: string
          type:
            - object
            - 'null'
          example:
            field1: value1
            field2: value2
          description: >-
            Custom fields for the entity. The keys are the field names and the
            values are the field values. They need to be configured under
            \"/custom-fields\" in the API documentation. The input is validated
            against the configuration. For more details see [Custom Fields
            Guide](/guide/tenant/custom-fields)
        businessCustomer:
          readOnly: true
          type: boolean
        defaultAddress:
          readOnly: true
          description: >-
            The default address of the customer. This is the address that is
            used for billing if no other address is specified.
          anyOf:
            - $ref: '#/components/schemas/CustomerAddress-CustomerList'
            - type: 'null'
        defaultInvoiceAddress:
          readOnly: true
          description: >-
            The invoice address of the customer. This is the address that is
            used for billing if defined. If not defined, the default address is
            used.
          anyOf:
            - $ref: '#/components/schemas/CustomerAddress-CustomerList'
            - type: 'null'
        defaultEmailAddress:
          readOnly: true
          description: >-
            The default email address of the customer. This is the email address
            that is used for billing if no other email address is specified.
          anyOf:
            - $ref: '#/components/schemas/CustomerEmail-CustomerList'
            - type: 'null'
        defaultInvoiceEmailAddress:
          readOnly: true
          description: >-
            The invoice email address of the customer. This is the email address
            that is used for billing if defined. If not defined, the default
            email address is used.
          anyOf:
            - $ref: '#/components/schemas/CustomerEmail-CustomerList'
            - type: 'null'
        defaultPaymentMethod:
          readOnly: true
          description: >-
            The default payment method of the customer. This is the payment
            method that is used for billing.
          anyOf:
            - $ref: '#/components/schemas/PaymentMethod-CustomerList'
            - type: 'null'
        isPartner:
          readOnly: true
          description: Indicates if the customer is a partner.
          type: boolean
        parentCustomer:
          readOnly: true
          description: >-
            The parent customer in the organization hierarchy. Contains id and
            name. Only present when the customer.hierarchy feature is enabled.
          anyOf:
            - type: object
              properties:
                id:
                  type: string
                  format: uuid
                  example: 00000000-0000-0000-0000-000000000000
                name:
                  type: string
                  example: Klinik Musterstadt
            - type: 'null'
        childrenCount:
          readOnly: true
          description: The number of direct child customers in the organization hierarchy.
          type: integer
          example: 3
        isParent:
          readOnly: true
          description: >-
            Indicates whether this customer has child customers in the
            organization hierarchy.
          type: boolean
        isChild:
          readOnly: true
          description: >-
            Indicates whether this customer has a parent customer in the
            organization hierarchy.
          type: boolean
        salesChannel:
          readOnly: true
          description: Der Vertriebskanal, dem der Kunde zugeordnet ist.
          anyOf:
            - $ref: '#/components/schemas/SalesChannel'
            - type: 'null'
      required:
        - countryCode
    CustomerAddress-CustomerList:
      type: object
      description: ''
      deprecated: false
      properties:
        id:
          readOnly: true
          type: string
        vatId:
          description: >-
            VAT ID, which will be used to bill to. If not provided, we will use
            the customer vat id.
          example: DE123456789
          type:
            - string
            - 'null'
        type:
          example: TYPE_DEFAULT
          enum:
            - TYPE_DEFAULT
            - TYPE_INVOICE
        default:
          example: 'true'
          type: boolean
        status:
          readOnly: true
          example: active
          enum:
            - active
            - archived
        city:
          example: Berlin
          type: string
        zip:
          example: '12345'
          type: string
        street:
          example: Musterstraße
          type: string
        houseNumber:
          example: 1a
          type: string
        countryCode:
          example: DE
          type: string
        companyName:
          description: Company name, which will be used to bill to.
          example: ACME Inc.
          type:
            - string
            - 'null'
        salutation:
          example: Herr
          enum:
            - Firma
            - Herr
            - Frau
        addition:
          description: >-
            Additional address information, which will be shown on generated
            documents like invoices, reminders, etc.
          example: c/o John Doe
          type:
            - string
            - 'null'
        costCentre:
          description: >-
            Cost centre, which will be shown on generated documents like
            invoices, reminders, etc.
          example: '123456789'
          type:
            - string
            - 'null'
        firstName:
          description: >-
            First name, which will be shown on generated documents like
            invoices, reminders, etc.
          example: John
          type:
            - string
            - 'null'
        lastName:
          description: >-
            Last name, which will be shown on generated documents like invoices,
            reminders, etc.
          example: Doe
          type:
            - string
            - 'null'
    CustomerEmail-CustomerList:
      type: object
      description: ''
      deprecated: false
      properties:
        id:
          readOnly: true
          example: 00000000-0000-0000-0000-000000000000
          type: string
        email:
          format: email
          maxLength: 255
          externalDocs:
            url: https://schema.org/email
          example: john.doe@example.com
          type: string
        receiverName:
          maxLength: 255
          example: John Doe
          type: string
        type:
          example: TYPE_COMPANY
          enum:
            - TYPE_COMPANY
            - TYPE_INVOICE
        default:
          example: 'true'
          type: boolean
      required:
        - email
        - receiverName
        - type
    PaymentMethod-CustomerList:
      type: object
      description: ''
      deprecated: false
    SalesChannel:
      type: object
      description: Der Vertriebskanal (kompakte Referenz).
      deprecated: false
      properties:
        id:
          readOnly: true
          type: string
        name:
          readOnly: true
          type: string
          description: Stabiler technischer Name des Kanals (z. B. "default").
        brandName:
          readOnly: true
          type: string
          description: Anzeigename der Marke.
  securitySchemes:
    JWT:
      type: http
      scheme: bearer

````