---
title: "List customers (company and individual)"
method: GET
path: "/api/external/v2/customers"
tags: ["Customers"]
---

# List customers (company and individual)

`GET /api/external/v2/customers`

This endpoint returns a list of both company and individual customers

> ℹ️
> This endpoint requires one of the following scopes: `customers:all`, `customers:readonly`

## Query parameters

- `cursor` string
- `limit` integer
- `filter` string
- `sort` string

## Response `200`

Returns a list of both company and individual customers

- object
  - `has_more` boolean, required — Indicates whether additional results are available beyond this set. Use this flag to determine if another request is needed.
  - `next_cursor` string, nullable, required — Cursor to retrieve the next set of results. Include this value in the cursor parameter of your next request to fetch subsequent items. A `null` `next_cursor` in the response indicates no further results.
  - `items` union[], required
    - union
      - object
        - `id` integer, required
        - `name` string, required
        - `billing_iban` string, nullable, required
        - `payment_conditions` 'upon_receipt' | 'custom' | '7_days' | '15_days' | '30_days' | '30_days_end_of_month' | '45_days' | '45_days_end_of_month' | '60_days', required — Note that the `custom` option is only used on Pennylane's web app to avoid pre-filling the deadline when creating an invoice. On the API it has no effect and you will still have to provide a deadline when creating an invoice.
        - `recipient` string, required — The name of the person to whom the invoice is addressed
        - `phone` string, required
        - `reference` string, nullable, required
        - `notes` string, nullable, required
        - `vat_number` string, required
        - `reg_no` string, required
        - `ledger_account` object, nullable, required
          - `id` integer, required
        - `emails` string[], required
        - `billing_address` object, required
          - `address` string, required
          - `postal_code` string, required
          - `city` string, required
          - `country_alpha2` string, required
        - `delivery_address` object, required
          - `address` string, required
          - `postal_code` string, required
          - `city` string, required
          - `country_alpha2` string, required
        - `created_at` string, date-time, required
        - `updated_at` string, date-time, required
        - `customer_type` 'company', required
        - `external_reference` string, required — The unique external reference assigned to this customer, assigned on creation either by you or Pennylane.
        - `billing_language` 'fr_FR' | 'en_GB' | 'de_DE', required — The language in which the customer will receive invoices. Default is `fr_FR`
        - `mandates` object, required — GoCardless mandates associated with this customer
          - `url` string, required — URL to list GoCardless mandates associated with this customer
        - `pro_account_mandates` object, required — Pro Account mandates associated with this customer
          - `url` string, required — URL to list Pro Account mandates associated with this customer
        - `contacts` object, required
          - `url` string, required — URL to get the contacts of the customer.
      - object
        - `id` integer, required
        - `name` string, required
        - `billing_iban` string, nullable, required
        - `payment_conditions` 'upon_receipt' | 'custom' | '7_days' | '15_days' | '30_days' | '30_days_end_of_month' | '45_days' | '45_days_end_of_month' | '60_days', required — Note that the `custom` option is only used on Pennylane's web app to avoid pre-filling the deadline when creating an invoice. On the API it has no effect and you will still have to provide a deadline when creating an invoice.
        - `recipient` string, required
        - `phone` string, required
        - `reference` string, nullable, required
        - `notes` string, nullable, required
        - `first_name` string, required
        - `last_name` string, required
        - `ledger_account` object, nullable, required
          - `id` integer, required
        - `emails` string[], required
        - `billing_address` object, required
          - `address` string, required
          - `postal_code` string, required
          - `city` string, required
          - `country_alpha2` string, required
        - `delivery_address` object, required
          - `address` string, required
          - `postal_code` string, required
          - `city` string, required
          - `country_alpha2` string, required
        - `created_at` string, date-time, required
        - `updated_at` string, date-time, required
        - `customer_type` 'individual', required
        - `external_reference` string, required — The unique external reference assigned to this customer, assigned on creation either by you or Pennylane. (Same attribute as `source_id` in the API v1)
        - `billing_language` 'fr_FR' | 'en_GB' | 'de_DE', required — The language in which the customer will receive invoices. Default is `fr_FR`
        - `mandates` object, required — GoCardless mandates associated with this customer
          - `url` string, required — URL to list GoCardless mandates associated with this customer
        - `pro_account_mandates` object, required — Pro Account mandates associated with this customer
          - `url` string, required — URL to list Pro Account mandates associated with this customer
        - `contacts` object, required
          - `url` string, required — URL to get the contacts of the customer.

## Other responses

- `400` — Bad request
- `401` — Access token is missing or invalid
- `403` — Access to this resource forbidden
- `404` — The resource was not found

---

[API](https://skmtc.net/pennylane/apis/company-v2.md) · [All operations](https://skmtc.net/pennylane/apis/company-v2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pennylane/company-v2/versions/a5b7236473c6/schema)
