---
title: "Import Card Statement Document"
method: POST
path: "/companies/{company_id}/expenses/cards/import-statement"
tags: ["payroll"]
---

# Import Card Statement Document

`POST /companies/{company_id}/expenses/cards/import-statement`

## 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/cards/import-statement`
- Auth: none declared

Import an ingested credit-card statement document into Cards (ZCT-876, ruling R2).

The document is never booked as a supplier bill; this is where its lines go. Only THIS
document's pages of its file are read (a file can hold several statements and
receipts). Its charges land as ``imported`` card transactions — each on the card the
statement names for it, which must be registered (and be ``body.card_id`` when one is
picked) — and, when no line failed and the statement's lines add up to its balances,
the document is marked handled (an expense-routing decision without a journal entry),
so the close lists stop asking for it. Re-importing skips lines already imported.

404 when the document is not this company's; 409 when it is not a card statement, is
already booked as a bill or handled as a receipt, or its file / pages can no longer be
read; 422 when the reader is not available yet, read nothing, the file is not a card
statement, or it is billed in another currency.

## Path parameters

- `company_id` string, required

## Headers

- `authorization` string, nullable

## Cookies

- `access_token` string, nullable

## Request body

- CardStatementImportIn: ZCT-876 — import an ingested credit-card statement document into Cards.
  - `item_id` string, required
  - `card_id` string, nullable

## Response `200`

Successful Response

- CardImportResponse
  - `import_batch_id` string, required
  - `imported` integer, required
  - `skipped` integer, required
  - `errors` CardImportRowError[], required
    - `row_no` integer, required
    - `reason` string, required
  - `notes` CardImportRowError[]
    - `row_no` integer, required
    - `reason` string, 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)
