---
title: "List Counterparties"
method: GET
path: "/companies/{company_id}/counterparties"
tags: ["counterparties"]
---

# List Counterparties

`GET /companies/{company_id}/counterparties`

## Request

- Base URL: `https://app.zeno-works.ch` (the document declares no server; this is the origin it was published from)
- URL: `https://app.zeno-works.ch/companies/{company_id}/counterparties`
- Auth: none declared

List a company's counterparties (filter by ``kind``/``q``, paginated).

``kind`` repeats to filter on a set (``?kind=customer&kind=both``) — a
role-shaped picker asks for every kind that plays the role. A single
``?kind=supplier`` keeps its original meaning.

## Path parameters

- `company_id` string, required

## Query parameters

- `kind` CounterpartyKind[], nullable
- `q` string, nullable
- `limit` integer
- `offset` integer

## Headers

- `authorization` string, nullable

## Cookies

- `access_token` string, nullable

## Response `200`

Successful Response

- CounterpartyList: ``{"counterparties": [...], "total": N}`` — the list envelope.
  - `counterparties` CounterpartyOut[], required
    - `id` string, required
    - `company_id` string, required
    - `kind` 'supplier' | 'customer' | 'both' | 'employee', required: Master-data axis of a counterparty (what the party primarily is). ``employee`` (payroll SP1, brief frozen decision 6) is set **only** on counterparties auto-created by ``payroll.master_data .ensure_employee_counterparty`` and is terminal — matching/merge flows never widen it to ``both``. Subledger participation rides the richer ``gl_counterparty_role`` table; payroll logic never branches on ``kind``.
    - `name` string, required
    - `normalized_name` string, required
    - `street` string, nullable
    - `building` string, nullable
    - `postal_code` string, nullable
    - `town` string, nullable
    - `country` string, nullable
    - `address_lines` string, nullable
    - `vat_number` string, nullable
    - `auto_created` boolean, required
    - `created_at` string, date-time, required
    - `accounts` CounterpartyAccountOut[]
      - `id` string, required
      - `counterparty_id` string, required
      - `company_id` string, required
      - `iban` string, required
      - `label` string, nullable
    - `item_count` integer, nullable
  - `total` integer, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/zeno-works/apis/zeno-api.md) · [All operations](https://skmtc.dev/zeno-works/apis/zeno-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zeno-works/apis/zeno-api/revisions/1eb93dde146c?raw)
