---
title: "Create a receipt from a worksheet"
method: POST
path: "/v1/receipts"
tags: ["Receipts"]
---

# Create a receipt from a worksheet

`POST /v1/receipts`

## Request

- Base URL: `https://api.officina.it`
- URL: `https://api.officina.it/v1/receipts`
- Auth: HTTP bearer

Body {worksheet_id, payment_method}. 409 when the worksheet already has a receipt.

## Request body

- object
  - `worksheet_id` string, required: La scheda lavoro da cui generare lo scontrino.
  - `payment_method` string, required: Codice ministeriale, es. `MP01` contanti.

## Response `201`

Receipt (line items included).

## Other responses

- `400`: Request body is unparseable or X-API-Version is missing.
- `401`: Missing, malformed, expired, or wrong-audience bearer token.
- `402`: The company has no active subscription, or its plan does not include API access. API access is included in the Business and Illimitato plans.
- `403`: The authenticated user lacks the required permission.
- `404`: Resource does not exist OR belongs to a different company. The two cases are intentionally indistinguishable.
- `409`: The request conflicts with the current state of the resource. Examples: issuing an invoice that has already been issued; back-dating an issuance that would violate the monotonic per-company sequence; deleting a credit note whose SDI electronic counterpart has already been transmitted and cannot be retracted; mutating a worksheet whose linked invoice has been issued (the worksheet is frozen — its totals are now part of the issued invoice's accounting record and must not desync).
- `422`: A request field is missing or invalid (fast-fail).
- `500`: Unhandled server error. Detail is logged, not exposed.

---

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