---
title: "Import a bank statement completely: expenses and invoices in one call"
method: POST
path: "/statements/import"
tags: ["Invoices"]
---

# Import a bank statement completely: expenses and invoices in one call

`POST /statements/import`

One upload, both halves of the bank statement. Outgoing debits go through the expense importer (`/expenses/import`) and incoming credits through the invoice importer (`/invoices/import`) — settling existing unpaid invoices first, then creating invoices for the revenue that has none. This is the endpoint to use for any bank file; the per-entity import endpoints remain available and unchanged. Each half runs independently, so a failure in one still returns the other, and both can be disabled per request.

## Response `201`

Statement processed; returns a combined summary plus the full result of each half.

## Other responses

- `400` — Missing file field
- `401` — Unauthorized
- `422` — Nothing could be imported from the uploaded file(s)
- `500` — Internal Server Error

---

[API](https://skmtc.dev/vocal/apis/magic-heidi-invoicing-software-api.md) · [All operations](https://skmtc.dev/vocal/apis/magic-heidi-invoicing-software-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/vocal/magic-heidi-invoicing-software-api/revisions/591ae048f0a0/schema)
