# Rechnungen (Invoices)

## Workist XML {#workist-xml}

**Dateiendung:** `.xml`  
**Dateiname:** `<UUID>.xml`

Das Standardformat für Rechnungen. Die Kopfdaten stehen direkt unter `invoice`, danach folgen `payment` (Zahlungsangaben), `summary` (Beträge) und `line_items` (Positionen).

Anders als bei Bestellungen und Anfragen schreibt Workist jedes konfigurierte Kopf-, Zahlungs-, Summen- und Positionsfeld, auch wenn es leer ist (z. B. `<contract_number />`). Die Blöcke `payment`, `summary` und `line_items` sind immer vorhanden. In Adress- und Lieferantenblöcken stehen nur gefüllte Felder.

Datumsangaben haben das Format `JJJJ-MM-TT`. Dezimalzahlen stehen standardmäßig mit Dezimalkomma und ohne abschließende Nullen in der Datei (`1487,5`), siehe [Datums- und Zahlenformate](/docs/output-formats.md#number-formats). Die Optionen **Verweis auf die analysierte Datei einfügen**, **Link zur Workbench einfügen**, **E-Mail-Absenderinformationen einfügen** und **Kurzen externen Dateinamen verwenden** wirken bei Rechnungen nicht.

### Vollständiges Beispiel

```xml
<?xml version="1.0" encoding="utf-8"?>
<invoice>
  <invoice_number>INV-2025-0042</invoice_number>
  <order_number>PO-2025-0001</order_number>
  <contract_number />
  <delivery_note_number>DN-2025-300</delivery_note_number>
  <invoice_date>2025-03-20</invoice_date>
  <invoice_due_date>2025-04-19</invoice_due_date>
  <delivery_date>2025-03-15</delivery_date>
  <document_type>Invoice</document_type>
  <recipient_address>
    <Code>RCPT-001</Code>
    <name>Accounts Payable</name>
    <street_and_nr>Hauptstrasse 42</street_and_nr>
    <misc>Building A</misc>
    <company_name>Acme Corp GmbH</company_name>
    <postcode>80331</postcode>
    <city>Munich</city>
    <country>DE</country>
    <country_subdivision>BY</country_subdivision>
    <email>invoices@acme.de</email>
    <phone>+49 89 12345678</phone>
  </recipient_address>
  <sender_supplier>
    <address>
      <name>Best Supplier GmbH</name>
      <street_and_nr>Lieferantenweg 10</street_and_nr>
      <postcode>20095</postcode>
      <city>Hamburg</city>
      <country>DE</country>
      <email>info@bestsupplier.de</email>
      <phone>+49 40 99999999</phone>
    </address>
    <name>Best Supplier GmbH</name>
    <misc>Werk Nord</misc>
    <customer_number>SUP-500</customer_number>
    <customer_type>preferred</customer_type>
    <contact_person>Hans Mueller</contact_person>
    <vat_id>DE987654321</vat_id>
    <internal_note>Pay only after goods receipt</internal_note>
  </sender_supplier>
  <sender_vat_id>DE987654321</sender_vat_id>
  <sender_tax_number>143/123/45678</sender_tax_number>
  <sender_contact>
    <contact_id>SC-001</contact_id>
    <name>Hans Mueller</name>
    <email>hans@bestsupplier.de</email>
    <phone>+49 40 88888888</phone>
  </sender_contact>
  <Info_Text>Payment due within 30 days.</Info_Text>
  <payment>
    <payment_bank>Deutsche Bank AG</payment_bank>
    <payment_bic>DEUTDEFF</payment_bic>
    <payment_iban>DE89370400440532013000</payment_iban>
    <payment_method>SEPA credit transfer</payment_method>
    <payment_reference>INV-2025-0042</payment_reference>
    <payment_swift>DEUTDEFF</payment_swift>
    <payment_terms_discount>2% within 10 days</payment_terms_discount>
    <payment_terms_due_days>30</payment_terms_due_days>
    <payment_terms_type>net</payment_terms_type>
    <payment_terms>Net 30 days</payment_terms>
  </payment>
  <summary>
    <currency>EUR</currency>
    <net_amount>1250</net_amount>
    <tax_rate>19</tax_rate>
    <tax_amount>237,5</tax_amount>
    <total_amount>1487,5</total_amount>
    <total_due>1487,5</total_due>
  </summary>
  <line_items>
    <line_item>
      <pos>10</pos>
      <article_id1>ART-001-A</article_id1>
      <article_id2>ART-001-A-ALT</article_id2>
      <article_id3>4006381333931</article_id3>
      <article_partition_specific_number>SUP-ART-777</article_partition_specific_number>
      <article_description>Industrial Sensor Module Type A</article_description>
      <quantity>100</quantity>
      <unit>PCE</unit>
      <unit_price>12,5</unit_price>
      <total_price>1250</total_price>
      <gross_price />
      <price_unit>1</price_unit>
      <tax_rate>19</tax_rate>
      <tax_amount>237,5</tax_amount>
    </line_item>
  </line_items>
</invoice>
```

### Kopffelder

| Element | Typ | Beschreibung |
|---|---|---|
| `invoice_number` | Text | Rechnungsnummer |
| `order_number` | Text | Bestellnummer, auf die sich die Rechnung bezieht |
| `contract_number` | Text | Vertragsnummer |
| `delivery_note_number` | Text | Lieferscheinnummer |
| `invoice_date` | Datum | Rechnungsdatum |
| `invoice_due_date` | Datum | Fälligkeitsdatum |
| `delivery_date` | Datum | Liefer- bzw. Leistungsdatum |
| `document_type` | Text | Belegart als Freitext, wie erkannt. Bei E-Rechnungen (ZUGFeRD, XRechnung) `Invoice` oder `Credit Note` |
| `recipient_address` | Block | Rechnungsempfänger; Felder siehe [Adressfelder](#address-fields) |
| `sender_supplier` | Block | Rechnungssteller, gefüllt aus Ihren Lieferantenstammdaten |
| `sender_supplier/address` | Block | Adresse des Lieferanten; Felder siehe [Adressfelder](#address-fields) |
| `sender_supplier/name` | Text | Name des Lieferanten |
| `sender_supplier/misc` | Text | Zusätzliche Angaben aus den Lieferantenstammdaten (`misc`) |
| `sender_supplier/customer_number` | Text | Lieferantennummer |
| `sender_supplier/customer_type` | Text | Typ aus den Stammdaten |
| `sender_supplier/contact_person` | Text | Kontaktperson aus den Stammdaten |
| `sender_supplier/vat_id` | Text | USt-IdNr. aus den Stammdaten |
| `sender_supplier/internal_note` | Text | Interne Anmerkung aus Ihren Stammdaten (`internal_note`) |
| `sender_vat_id` | Text | USt-IdNr. des Lieferanten, wie auf der Rechnung angegeben |
| `sender_tax_number` | Text | Steuernummer des Lieferanten |
| `sender_contact` | Block | Ansprechpartner beim Lieferanten |
| `sender_contact/contact_id` | Text | Nummer des Ansprechpartners |
| `sender_contact/name` | Text | Name des Ansprechpartners |
| `sender_contact/email` | Text | E-Mail-Adresse des Ansprechpartners |
| `sender_contact/phone` | Text | Telefonnummer des Ansprechpartners |
| `Info_Text` | Text | Freitext. Workist teilt ihn in Abschnitte zu 70 Zeichen auf, ein Element je Abschnitt, höchstens 5 Elemente; der Rest entfällt |

### Adressfelder {#address-fields}

`recipient_address` und `sender_supplier/address` haben dieselbe Struktur. Workist schreibt nur die gefüllten Felder.

| Element | Typ | Beschreibung |
|---|---|---|
| `Code` | Text | Adressnummer aus Ihren Stammdaten |
| `name` | Text | Name |
| `street_and_nr` | Text | Straße und Hausnummer |
| `misc` | Text | Adresszusatz |
| `company_name` | Text | Firmenname |
| `postcode` | Text | Postleitzahl |
| `city` | Text | Ort |
| `country` | Text | Ländercode (z. B. `DE`) |
| `country_subdivision` | Text | Bundesland- oder Regionscode |
| `email` | Text | E-Mail-Adresse |
| `phone` | Text | Telefonnummer |

### Zahlungsfelder (`payment`)

| Element | Typ | Beschreibung |
|---|---|---|
| `payment_bank` | Text | Name der Bank |
| `payment_bic` | Text | BIC |
| `payment_iban` | Text | IBAN |
| `payment_method` | Text | Zahlungsart als Freitext; bei E-Rechnungen die Bezeichnung des Zahlungsmittelcodes (z. B. `SEPA credit transfer`) |
| `payment_reference` | Text | Verwendungszweck |
| `payment_swift` | Text | SWIFT-Code |
| `payment_terms_discount` | Text | Skontobedingungen |
| `payment_terms_due_days` | Text | Zahlungsziel in Tagen |
| `payment_terms_type` | Text | Art der Zahlungsbedingung |
| `payment_terms` | Text | Zahlungsbedingungen im Wortlaut |

### Summenfelder (`summary`)

| Element | Typ | Beschreibung |
|---|---|---|
| `currency` | Text | Währungscode (z. B. `EUR`) |
| `net_amount` | Dezimal | Nettobetrag |
| `tax_rate` | Dezimal | Steuersatz in Prozent |
| `tax_amount` | Dezimal | Steuerbetrag |
| `total_amount` | Dezimal | Bruttobetrag |
| `total_due` | Dezimal | Zahlbetrag |

### Positionsfelder (`line_items/line_item`)

Workist schreibt ein `line_item` je Position, sofern mindestens ein Positionsfeld konfiguriert ist.

| Element | Typ | Beschreibung |
|---|---|---|
| `pos` | Text | Positionsnummer |
| `article_id1` | Text | Ihre Artikelnummer (`article_id1` aus Ihren Artikelstammdaten) |
| `article_id2` | Text | Zweite Artikelnummer (`article_id2`) |
| `article_id3` | Text | Dritte Artikelnummer (`article_id3`, z. B. EAN) |
| `article_partition_specific_number` | Text | Artikelnummer des Lieferanten |
| `article_description` | Text | Artikelbeschreibung |
| `quantity` | Dezimal | Menge |
| `unit` | Text | Mengeneinheit |
| `unit_price` | Dezimal | Einzelpreis |
| `total_price` | Dezimal | Positionsgesamtbetrag |
| `gross_price` | Dezimal | Bruttopreis aus Ihren Artikelstammdaten (`gross_price`) |
| `price_unit` | Text | Preiseinheit (z. B. `1` oder `100`) |
| `tax_rate` | Dezimal | Steuersatz der Position |
| `tax_amount` | Dezimal | Steuerbetrag der Position |
