---
title: "PUT /api/invoices/{id}"
method: PUT
path: "/api/invoices/{id}"
tags: ["api", "invoices"]
---

# PUT /api/invoices/{id}

`PUT /api/invoices/{id}`

Update an Invoice

## Path parameters

- `id` string, required — The ID of the invoice.

## Request body

- PUTInvoicesUpdateAnInvoice
  - `recipient` object — Information on the recipient of the invoice.
    - `company` string — The company name of the recipient.
    - `name` string, required — The name of the recipient.
    - `firstname` string — The first name of the recipient.
    - `lastname` string — The last name of the recipient.
    - `address` object — The address of the recipient.
      - `fullAddress` string, nullable — Optional full address
      - `street` string, nullable — The street of the address. Street name including number.
      - `line2` string, nullable — The additional field of the address.
      - `postal` string, nullable — The postal code of the address.
      - `city` string, nullable — The city of the address.
      - `country` string, nullable — The country of the address. An ISO 3166 country code.
      - `state` string, nullable — The state of the address. If applicable
  - `extraFields` object — The extra fields of the invoice.
  - `mode` 'update' | 'reissue', required — The mode for editing the invoice

## Response `200`

OK

- InvoiceResource — The invoice of the transaction
  - `_id` string, required — The ID of the invoice.
  - `type` 'invoice' | 'cancellation' — The type of the invoice. A cancellation invoice negates its reference invoice with mirrored negative amounts.
  - `sellerId` string, required — The ID of the seller associated with the invoice.
  - `recipient` object — Information on the recipient. Missing on legacy invoices, where it derives from the transaction.
    - `company` string — The company name of the recipient.
    - `name` string, required — The name of the recipient.
    - `firstname` string — The first name of the recipient.
    - `lastname` string — The last name of the recipient.
    - `address` object — The address of the recipient.
      - `fullAddress` string, nullable — Optional full address
      - `street` string, nullable — The street of the address. Street name including number.
      - `line2` string, nullable — The additional field of the address.
      - `postal` string, nullable — The postal code of the address.
      - `city` string, nullable — The city of the address.
      - `country` string, nullable — The country of the address. An ISO 3166 country code.
      - `state` string, nullable — The state of the address. If applicable
  - `transactionId` string — The ID of the transaction the invoice originated from.
  - `customerId` string — The ID of the customer associated with the invoice.
  - `cancellationId` string — The ID of the associated cancellation.
  - `cancellationReason` 'REQUESTED_BY_CUSTOMER' | 'CLAIM' | 'COMMUNICATION_ERROR' | 'TRAINING/TEST' — The reason of the cancellation.
  - `refundTarget` 'origin' | 'voucher' | 'customer_balance' — Where the cancelled amount was refunded to.
  - `counter` number, float, required — The counter used to create no.
  - `no` string, required — A unique number for the invoice consisting of the creation date and an increasing counter.
  - `items` object[], required — An array of invoice items.
    - `type` 'product' | 'ticket' | 'fulfillment' | 'outerCharge' | 'discount' | 'voucher' | 'bundle' | 'additionalFee' | 'insurance' — The type of the invoice item.
    - `title` string — The title of the invoice item.
    - `amount` number, float, required — The quantity of the invoice item. Negative on cancellation invoices.
    - `total` number, float, required — The total of the invoice item. Negative on cancellation invoices and for discounts and vouchers.
    - `regularTotal` number, float, required — The non-discounted total of the invoice item.
    - `includedTax` number, float, required — The total of taxes included in the invoice item.
    - `taxRate` number, float, required — The tax rate applied on the invoice item, as a fraction (0.19 = 19%).
    - `taxRates` number[] — All tax rates applied on the invoice item.
    - `taxItems` object[] — The tax items of the invoice item.
      - `name` string, nullable
      - `taxTypeId` string, nullable
      - `rate` number, float, required
      - `perUnit` number, float, required
      - `total` number, float, required
      - `netTotal` number, float, nullable
      - `netPerUnit` number, float, nullable
      - `taxPayableAccountId` string, nullable
      - `taxPayableAccountCode` string, nullable
    - `localization` object — Localized item values per language code, e.g. {"de": {"title": "..."}}.
  - `components` object[] — An array of exposed price components.
    - `name` string
    - `total` number, float
  - `total` number, float — The invoice total after discounts and taxes.
  - `discountSum` number, float — The total of all discounts applied.
  - `detailsPerRate` object[] — The tax details grouped by tax rates.
    - `taxRate` number, float, required — The applied tax rate, as a fraction (0.19 = 19%).
    - `includedTax` number, float, required — The total of taxes associated with the tax rate.
    - `reducedTax` number, float, required — The tax reduction through applied discounts.
  - `taxItems` object[] — An array of tax items.
    - `name` string, nullable
    - `taxTypeId` string, nullable
    - `rate` number, float, required
    - `perUnit` number, float, required
    - `total` number, float, required
    - `netTotal` number, float, nullable
    - `netPerUnit` number, float, nullable
    - `taxPayableAccountId` string, nullable
    - `taxPayableAccountCode` string, nullable
  - `includedTax` number, float — The total of all taxes included.
  - `taxRate` number, float — The default tax rate applied on items, as a fraction (0.19 = 19%).
  - `includedOuterChargeTax` number, float — The total of all taxes on included outer charges.
  - `outerChargeTaxRate` number, float — The tax rate applied on outer charges, as a fraction (0.19 = 19%).
  - `origin` 'onlinesale' | 'pos' — Whether the invoice has been created through an online or offline transaction.
  - `currency` 'EUR' | 'USD' | 'GBP' | 'AUD' | 'CHF' | 'THB' | 'ILS' | 'COP' | 'MXN' | 'DKK' | 'NOK' | 'SEK' | 'QAR' | 'CAD' | 'ISK' | 'GTQ' | 'INR' | 'DOP' | 'SGD' | 'PLN' | 'SAR' | 'TTD' | 'ZAR' | 'KYD' | 'HKD' | 'CZK' | 'KRW' | 'JPY' | 'NZD' | 'AED' | 'MAD' | 'TWD' | 'BRL' | 'BWP' | 'NAD' | 'KES' | 'SCR' | 'TRY' | 'SZL' | 'LSL' | 'TZS' | 'UGX' | 'ZMW' | 'ZWG' | 'GHS' | 'NGN' | 'SLE' | 'LRD' | 'XOF' | 'XAF' | 'GEL' | 'IDR' | 'ARS' | 'CRC' | 'HUF' | 'EGP' | 'MYR' | 'VND' | 'PHP' | 'MWK', required — An ISO 4217 3-character code of the currency.
  - `extraFields` object — The extra fields of the invoice.
  - `identification` LegalIdentificationDocumentResource[] — The legal identification documents of the recipient captured at checkout, e.g. the French SIREN of a business buyer.
    - union
      - object
        - `type` 'france_siren', required
        - `identifier` string, required
      - object
        - `type` 'spain_tax_id' | 'origin_country_id', required — The type of the identification document.
  - `splits` object[] — How the invoice total was covered, e.g. by deposits, vouchers, customer balance or payments.
    - `type` 'deposit' | 'voucher' | 'payment' | 'balance', required
    - `reference` string
    - `amount` number, float, required
    - `voucherId` string
    - `method` string
    - `gateway` string
    - `gatewayId` string
  - `seller` object — The seller information persisted with the invoice.
    - `taxId` string
    - `name` string
    - `address` object
      - `fullAddress` string, nullable — Optional full address
      - `street` string, nullable — The street of the address. Street name including number.
      - `line2` string, nullable — The additional field of the address.
      - `postal` string, nullable — The postal code of the address.
      - `city` string, nullable — The city of the address.
      - `country` string, nullable — The country of the address. An ISO 3166 country code.
      - `state` string, nullable — The state of the address. If applicable
  - `posInfo` object — POS information of the invoice.
    - `posId` string, required
    - `no` string, required
    - `referenceInvoiceNo` string
    - `sessionId` string, required
    - `billingNo` string, required
    - `taxId` string
    - `paymentMethod` string
    - `canceledAt` string, date-time
    - `cancellationNo` string
  - `external` object — Externally hosted documents replacing the generated invoice PDF.
    - `documentUrl` string — The externally hosted invoice document. An empty external object means the synchronization failed.
    - `additionalDocumentUrl` string — An additional externally hosted document for the invoice.
  - `secret` string — The secret of the invoice.
  - `referenceInvoiceId` string — The ID of the invoice this invoice references, e.g. the negated invoice for a cancellation invoice.
  - `footerText` string[] — The custom footer columns of the invoice.
  - `createdAt` string, date-time — An ISO Timestamp indicating when the invoice was created.
  - `updatedAt` string, date-time — An ISO Timestamp indicating when the invoice was last updated.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — Not Found

---

[API](https://skmtc.dev/vivenu/apis/vivenu-api.md) · [All operations](https://skmtc.dev/vivenu/apis/vivenu-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/vivenu/vivenu-api/revisions/a18eefe17b94/schema)
