---
title: "List Card Transactions"
method: GET
path: "/companies/{company_id}/expenses/card-transactions"
tags: ["payroll"]
---

# List Card Transactions

`GET /companies/{company_id}/expenses/card-transactions`

## 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}/expenses/card-transactions`
- Auth: none declared

## Path parameters

- `company_id` string, required

## Query parameters

- `status` 'imported' | 'matched' | 'approved' | 'posted' | 'excluded': Company-card transaction lifecycle (SP9; guide §5.3/§5.5): only ``approved`` rows reach the GL; ``excluded`` keeps fees/adjustments out of expense postings entirely.
- `card_id` string, nullable
- `employee_id` string, nullable

## Headers

- `authorization` string, nullable

## Cookies

- `access_token` string, nullable

## Response `200`

Successful Response

- CardTxnsResponse
  - `transactions` CardTxnOut[], required
    - `id` string, required
    - `card_id` string, required
    - `txn_date` string, date, required
    - `amount` string, required
    - `currency` string, required
    - `merchant` string, nullable, required
    - `external_ref` string, nullable, required
    - `status` 'imported' | 'matched' | 'approved' | 'posted' | 'excluded', required: Company-card transaction lifecycle (SP9; guide §5.3/§5.5): only ``approved`` rows reach the GL; ``excluded`` keeps fees/adjustments out of expense postings entirely.
    - `classification` 'business' | 'private' | 'mixed', required: Business/private split of a card transaction (guide §5.5): ``mixed`` carries ``private_amount`` (business part = amount − private_amount).
    - `private_amount` string, nullable, required
    - `receipt_item_id` string, nullable, required
    - `purpose` string, nullable, required
    - `category_id` string, nullable, required
    - `vat_code_id` string, nullable, required
    - `dimension_value_id` string, nullable, required
    - `employee_id` string, nullable, required
    - `settle_via_payroll` boolean, required
    - `journal_entry_id` string, nullable, required
    - `open_item_id` string, nullable, required
    - `payroll_run_id` string, nullable, required
    - `settled_at` string, date-time, nullable, required
    - `excluded_reason` string, nullable, required
    - `phone_hint` HeldReceiptPhoneHintOut: ZR-11 — what the employee suggested when filing the receipt from their phone (or, on a card transaction, when picking it on the phone). A suggestion, never applied by itself: the accountant picks the category on Assign. ``category_id`` was an active category of this company when the phone sent it (it may have been deactivated since); ``purpose`` is the employee's own text (≤ 500 printable characters) — untrusted, render it as plain text.
      - `category_id` string, nullable
      - `purpose` string, nullable

## 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)
