---
title: "Creates a new creditNote from an invoice"
method: POST
path: "/CreditNote/Factory/createFromInvoice"
tags: ["CreditNote"]
---

# Creates a new creditNote from an invoice

`POST /CreditNote/Factory/createFromInvoice`

Use this endpoint to create a new creditNote from an invoice.

## Request body

- object
  - `invoice` object, required
    - `id` integer, required — The id of the existing invoice
    - `objectName` string, required — The objectName must be 'Invoice'

## Response `201`

Created

- object
  - `objects` object
    - `creditNote` ModelCreditNoteResponse — creditNote model
      - `id` string — The creditNote id
      - `objectName` string — The creditNote object name
      - `create` string, date-time — Date of creditNote creation
      - `update` string, date-time — Date of last creditNote update
      - `creditNoteNumber` string, nullable — The creditNote number
      - `contact` object, nullable — The contact used in the creditNote
        - `id` string, required — Unique identifier of the contact
        - `objectName` string, required — Model name, which is 'Contact'
      - `creditNoteDate` string, date-time — The credit note date
      - `status` '100' | '200' | '750' | '1000' — Please have a look in <a href='#tag/CreditNote/Status-of-credit-notes'>status of credit note</a> to see what the different status codes mean
      - `header` string, nullable — Normally consist of prefix plus the creditNote number
      - `headText` string, nullable — Certain html tags can be used here to format your text
      - `footText` string, nullable — Certain html tags can be used here to format your text
      - `addressCountry` object, nullable — Can be omitted as complete address is defined in address attribute
        - `id` string, required — Unique identifier of the country
        - `objectName` string, required — Model name, which is 'StaticCountry'
      - `createUser` object — Will be filled automatically by our system and can't be changed
        - `id` string, required — Unique identifier of the user
        - `objectName` string, required — Model name, which is 'SevUser'
      - `sevClient` object — Client to which creditNote belongs. Will be filled automatically
        - `id` string, required — Unique identifier of the client
        - `objectName` string, required — Model name, which is 'SevClient'
      - `deliveryDate` string, date-time — Timestamp. This can also be a date range if you also use the attribute deliveryDateUntil
      - `smallSettlement` boolean, nullable — Defines if the client uses the small settlement scheme. If yes, the creditNote must not contain any vat
      - `contactPerson` object, nullable — The user who acts as a contact person for the creditNote
        - `id` string, required — Unique identifier of the user
        - `objectName` string, required — Model name, which is 'SevUser'
      - `taxRate` string, nullable — This is not used anymore. Use the taxRate of the individual positions instead.
      - `taxRule` object — **Use this in sevdesk-Update 2.0 (replaces taxType / taxSet).** See [list of available VAT rules](#section/sevdesk-Update-2.0/Tax-Rules).
        - `id` '1' | '2' | '3' | '4' | '5' | '11' | '17' | '18' | '19' | '20' | '21', required
        - `objectName` 'TaxRule', required — Name of the object. Must always be TaxRule
      - `taxSet` object, nullable — **Use this in sevdesk-Update 1.0 (instead of taxRule).** Tax set of the creditNote. Needs to be added if you chose the tax type custom
        - `id` string, required — Unique identifier of the object
        - `objectName` string, required — Model name, which is 'TaxSet'
      - `taxText` string, nullable — A common tax text would be 'Umsatzsteuer 19%'
      - `taxType` string, nullable — **Use this in sevdesk-Update 1.0 (instead of taxRule).** Tax type of the creditNote. There are four tax types: 1. default - Umsatzsteuer ausweisen 2. eu - Steuerfreie innergemeinschaftliche Lieferung (Europäische Union) 3. noteu - Steuerschuldnerschaft des Leistungsempfängers (außerhalb EU, z. B. Schweiz) 4. custom - Using custom tax set 5. ss - Not subject to VAT according to §19 1 UStG Tax rates are heavily connected to the tax type used.
      - `sendDate` string, date-time, nullable — The date the creditNote was sent to the customer
      - `address` string, nullable — Complete address of the recipient including name, street, city, zip and country.<br> Line breaks can be used and will be displayed on the invoice pdf.
      - `currency` string, nullable — Currency used in the creditNote. Needs to be currency code according to ISO-4217
      - `sumNet` string — Net sum of the creditNote
      - `sumTax` string — Tax sum of the creditNote
      - `sumGross` string — Gross sum of the creditNote
      - `sumDiscounts` string — Sum of all discounts in the creditNote
      - `sumNetForeignCurrency` string — Net sum of the creditNote in the foreign currency
      - `sumTaxForeignCurrency` string — Tax sum of the creditNote in the foreign currency
      - `sumGrossForeignCurrency` string — Gross sum of the creditNote in the foreign currency
      - `sumDiscountsForeignCurrency` string — Discounts sum of the creditNote in the foreign currency
      - `customerInternalNote` string, nullable — Internal note of the customer. Contains data entered into field 'Referenz/Bestellnummer'
      - `showNet` boolean — If true, the net amount of each position will be shown on the creditNote. Otherwise gross amount
      - `sendType` 'VPR' | 'VPDF' | 'VM' | 'VP', nullable — Type which was used to send the creditNote. IMPORTANT: Please refer to the creditNote section of the * API-Overview to understand how this attribute can be used before using it!
    - `creditNotePos` ModelCreditNotePosResponse[] — An array of creditNote positions
      - `id` string — The creditNote position id
      - `objectName` string — The creditNote position object name
      - `create` string — Date of creditNote position creation
      - `update` string — Date of last creditNote position update
      - `creditNote` object, required — The creditNote to which the position belongs.
        - `id` string, required — Unique identifier of the creditNote
        - `objectName` string, required — Model name, which is 'creditNote'
      - `part` object — Part from your inventory which is used in the position.
        - `id` string, required — Unique identifier of the part
        - `objectName` string, required — Model name, which is 'Part'
      - `quantity` string, required — Quantity of the article/part
      - `price` string, nullable — Price of the article/part. Is either gross or net, depending on the sevdesk account setting.
      - `priceNet` string, nullable — Net price of the part
      - `priceTax` string, nullable — Tax on the price of the part
      - `priceGross` string, nullable — Gross price of the part
      - `name` string, nullable — Name of the article/part.
      - `unity` object, required — The unit in which the positions part is measured
        - `id` string, required — Unique identifier of the unit
        - `objectName` string, required — Model name, which is 'Unity'
      - `sevClient` object — Client to which creditNote position belongs. Will be filled automatically
        - `id` string, required — Unique identifier of the client
        - `objectName` string, required — Model name, which is 'SevClient'
      - `positionNumber` string, nullable — Position number of your position. Can be used to creditNote multiple positions.
      - `text` string, nullable — A text describing your position.
      - `discount` string, nullable — An optional discount of the position.
      - `optional` boolean, nullable — Defines if the position is optional.
      - `taxRate` string, required — Tax rate of the position.
      - `sumDiscount` string, nullable — Discount sum of the position
    - `discount` ModelDiscountsResponse[] — An array of discounts (can be empty)
      - `id` integer — The id of the discount
      - `objectName` string — Model name, which is 'Discounts'
      - `create` string — Date of discount creation
      - `update` string — Date of last discount update
      - `sevClient` string — Client to which the discount belongs
      - `discount` string — Indicates that this is a discount or a surcharge (0 = surcharge, 1 = discount)
      - `text` string — A text describing your position.
      - `percentage` string — Defines if this is a percentage or an absolute discount
      - `value` string — Value of the discount
      - `isNet` string — Defines is the Discount net or gross (0 = net, 1 = gross)

## Other responses

- `400` — Bad request
- `401` — Authentication required
- `500` — Server Error

---

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