---
title: "Update invoice"
method: PATCH
path: "/api/v1/invoices/{id}"
tags: ["Invoice"]
---

# Update invoice

`PATCH /api/v1/invoices/{id}`

Update a single invoice

## Path parameters

- `id` string, required — Resource identifier.

## Request body

- object
  - `date` string, date
  - `costCenter` string
  - `project` object, nullable — Nullable reference to another resource
    - `id` string, required — Resource identifier.
  - `customer` object, nullable — Nullable reference to another resource
    - `id` string, required — Resource identifier.
  - `tags` object[]
    - `id` string, required — Resource identifier.
  - `devCustomer` string, nullable
  - `billingAddress` object, nullable
    - `name` string, required
    - `contactPerson` string, required
    - `department` string, nullable, required
    - `subdivision` string, nullable, required
    - `street` string, required
    - `additionalDetails` string, nullable, required
    - `city` string, required
    - `zipCode` string, required
    - `country` string, required
  - `paymentMethodName` string
  - `gln` string, nullable
  - `taxation` string
  - `dunningSettings` object, nullable — Dunning setting for document
    - `level` 'noReminder' | 'paymentReminder' | 'reminder1' | 'reminder2' | 'reminder3' | 'debtCollection' | 'lossOfReceivables', required
    - `date` string, date, required
    - `comment` string, string, required
    - `sent` boolean, required
  - `dunningManualSettings` object, nullable — Expert mode: The payment settings can be set manually with this check mark. Note: This tick overrides the automatic calculation of the incoming payment. This means that the invoice is NOT included in the dunning process. If you use the incoming payment via the account statements, this checkmark should only be used for manual adjustments, because these settings are usually set automatically via the incoming payment.
    - `paymentStatus` 'pending' | 'paid' | 'partlyPaid' | 'canceled' | 'partialCancellation' | 'badDebt' | 'debited' | 'unknown', required — Status of the payment. Value `unknown` is displayed when a status from database cannot be identified. Value `unknown` cannot be used when creating or updating statuses (POST or PATCH endpoints)
    - `paidAt` string, date, nullable, required — Date of the payment
    - `actualAmount` number, float, required — Amount of the payment
    - `discountGiven` number, float, required — Discount given for a payment

## Response `204`

Operation completed successfully, no response body

## Other responses

- `400` — IETF RFC 9457 Problem API compliant response
- `401` — Unable to authenticate the client
- `403` — Unable to authorize the client
- `404` — Resource was not found or not enough access privileges
- `406` — Requested resource representation does not exist.
- `429` — Too many API calls made.

---

[API](https://skmtc.net/xentral/apis/xentral-api.md) · [All operations](https://skmtc.net/xentral/apis/xentral-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/xentral/xentral-api/versions/8a27ba392442/schema)
