---
title: "Create Incasso"
method: POST
path: "/api/autopilot/incassi"
tags: ["autopilot"]
---

# Create Incasso

`POST /api/autopilot/incassi`

## Request

- Base URL: `https://api.taxcompass.it` (the document declares no server; this is the origin it was published from)
- URL: `https://api.taxcompass.it/api/autopilot/incassi`
- Auth: HTTP bearer

Record a payment. With ``invoice_id`` this is "mark that invoice paid".

409 when the payment would take the invoice past what is still owed on it
(or a refund past what its credit note has left) — see ``incassi_store``'s
module note for why that is refused rather than recorded with a warning.

## Request body

- IncassoCreate: ``POST /api/autopilot/incassi`` body — one payment actually received. ``invoice_id`` is optional in both directions: set, this is the UI's "mark invoice paid"; absent, it is standalone income (a bank transfer with no e-invoice behind it), which a forfettario still declares. The store checks that a named invoice belongs to the same user.
  - `invoice_id` string, uuid, nullable
  - `amount` union, required
    - number
    - string
  - `received_date` string, date, required
  - `ateco` string, nullable
  - `method` 'bank' | 'card' | 'cash' | 'other', nullable
  - `note` string, nullable

## Response `201`

Successful Response

- IncassoRead: One stored payment, as the API returns it (``note`` decrypted).
  - `id` string, uuid, required
  - `invoice_id` string, uuid, nullable
  - `amount` string, required
  - `received_date` string, date, required
  - `ateco` string, nullable
  - `method` 'bank' | 'card' | 'cash' | 'other', nullable
  - `note` string, nullable
  - `created_at` string, date-time, nullable

## Other responses

- `422`: Validation Error

---

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