Schemas und Exportlayouts
Hier siehst du, welche Felder ScanToExcel extrahiert und wie sie im Download erscheinen. Ein unterstütztes Feld muss weder im Dokument vorkommen noch bei der Extraktion ausgefüllt werden.
In allen Tarifen verwenden Exportvorlagen englische Spaltenüberschriften und Feldnamen. Extrahierter Text und Überschriften aus Quelltabellen bleiben in der Regel in der Sprache des Dokuments. Ein Wechsel der Website-Sprache übersetzt die Downloads nicht. JSON-Schlüssel, vordefinierte Arbeitsblattbeschriftungen und Überschriften der Buchhaltungsvorlagen bleiben unverändert. Datumsangaben, Zahlen, Währungscodes und einige Kategorien können vereinheitlicht werden; prüfen Sie das Ergebnis.
Ausgabe wählen
- JSON
- JSON erhält verschachtelte Dokumentdaten samt Listen von Positionen und Transaktionen. Der Download enthält das Dokumentobjekt ohne Kontingent- oder Übertragungsmetadaten. Die Flat-Einstellung ändert JSON nicht.
- Flach
- Flache Exporte verwenden ein rechteckiges Raster aus Zeilen und einheitlichen Spalten. Jede Zeile steht für eine Position oder Transaktion; Dokumentdetails werden bei Bedarf wiederholt. Jede Tabelle hat ihre eigene feste Spaltenstruktur. Excel kann mehrere Blätter enthalten, CSV ein Raster.
- Nicht flach
- Nicht flache Excel- und CSV-Exporte stellen separate Tabellen nebeneinander, jeweils mit eigenem Zweck und eigenen Spalten: Dokumentdetails, Positionen, Steuern, Summen oder Warnungen. Sie bilden keine einheitliche Datentabelle. Word ordnet diese Tabellen untereinander an. Gehaltsabrechnungen und Tabellenbilder verwenden eigene Layouts.
| Dokument | JSON | Layout | Xero CSV | QuickBooks CSV |
|---|---|---|---|---|
| Quittung | Ja | Flach / Nicht flach | Ja | Nein |
| Rechnung | Ja | Flach / Nicht flach | Ja | Nein |
| Kontoauszug | Ja | Flach / Nicht flach | Ja | Ja |
| Kreditkartenabrechnung | Ja | Flach / Nicht flach | Ja | Ja |
| Gehaltsabrechnung | Ja | Eigenes Layout | Nein | Nein |
| Tabellenbild | Ja | Eigenes Layout | Nein | Nein |
Buchhaltungs-CSVs sind Premium-Ausgaben mit eigenen Vorlagen. Sie erzeugen Dateien, keine direkte Verbindung zu Xero oder QuickBooks. Prüfe Felder und Kontenzuordnungen vor dem Import. Preise
Quittung
Händler, Datum, Währung, Belegnummer, Mengen und Preise, Steuern, Zahlungsart und Summen. Steuersätze sind Bruchteile: 0.20 bedeutet 20%.
JSON-Felder
Die Typen beschreiben serialisiertes JSON. Übergeordnete Objekte und Arrays stehen vor ihren Unterfeldern; [] kennzeichnet wiederholte Einträge. Felder mit Standardwert müssen nicht von der Extraktion geliefert werden. Dezimalwerte werden als Zeichenfolgen ausgegeben. Downloads behalten Felder mit Standardwerten bei; ein fehlender extrahierter Wert ist nicht dasselbe wie ein ausgelassener JSON-Schlüssel.
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
vendor | string | null | Mit Standardwert |
date | string | null | Mit Standardwert |
currency | string | null | Mit Standardwert |
document_number | string | null | Mit Standardwert |
subtotal | string | null | Mit Standardwert |
tax | string | null | Mit Standardwert |
tax_inclusive | boolean | null | Mit Standardwert |
tip | string | null | Mit Standardwert |
payment_method | string | null | Mit Standardwert |
total | string | null | Mit Standardwert |
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
line_items | array<object> | Mit Standardwert |
line_items[].description | string | null | Mit Standardwert |
line_items[].quantity | string | null | Mit Standardwert |
line_items[].unit_price | string | null | Mit Standardwert |
line_items[].total | string | null | Mit Standardwert |
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
taxes | array<object> | Mit Standardwert |
taxes[].name | string | null | Mit Standardwert |
taxes[].rate | string | null | Mit Standardwert |
taxes[].base | string | null | Mit Standardwert |
taxes[].amount | string | null | Mit Standardwert |
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
reconciliation_warnings | array<string> | Mit Standardwert |
Flach
Flach enthält Positionszeilen und in Excel eine separate Dokumentübersicht. CSV enthält nur Positionszeilen. Steuer- und Trinkgeldanpassungen können Zeilen hinzufügen: line_total stammt aus tax, taxes[].amount oder tip; description wird erzeugt, quantity, unit_price und line_no bleiben leer.
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| doc_id | doc_id |
| source_filename | source_filename |
| vendor | vendor |
| date | date |
| currency | currency |
| document_number | document_number |
| line_no | index(line_items[]) + 1 |
| description | line_items[].description |
| quantity | line_items[].quantity |
| unit_price | line_items[].unit_price |
| line_total | line_items[].total |
| row_type | line | adjustment |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| doc_id | doc_id |
| source_filename | source_filename |
| vendor | vendor |
| date | date |
| currency | currency |
| document_number | document_number |
| subtotal | subtotal |
| tax | tax |
| tax_inclusive | tax_inclusive |
| tip | tip |
| payment_method | payment_method |
| total | total |
| tax_breakdown | join(taxes[].name, taxes[].rate, taxes[].amount) |
| warnings | join(reconciliation_warnings[]) |
Nicht flach
Im nicht flachen Layout stehen diese Tabellen nebeneinander. Dokumentdetails und Summen verwenden Feld/Wert-Zeilen; Positionen und Steuern verwenden Spalten. Warnungen erscheinen nur bei Bedarf. unit_price fehlt in der nicht flachen Positionstabelle.
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| # | index(line_items[]) + 1 |
| Description | line_items[].description |
| Qty | line_items[].quantity |
| Line total | line_items[].total |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| Doc ID | doc_id |
| Source | source_filename |
| Vendor | vendor |
| Date | date |
| Currency | currency |
| Document # | document_number |
| Payment method | payment_method |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| Name | taxes[].name |
| Rate | taxes[].rate |
| Base | taxes[].base |
| Amount | taxes[].amount |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| Subtotal | subtotal |
| Tax | tax |
| Tax inclusive | tax_inclusive |
| Tip | tip |
| Total | total |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| # | index(reconciliation_warnings[]) + 1 |
| Warning | reconciliation_warnings[] |
Xero CSV
Eine zusammengefasste Zeile je Beleg. Felder ohne Quelle bleiben leer, darunter AccountCode und TaxType. Ergänze erforderliche Zuordnungen vor dem Import.
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| *ContactName | vendor || "Unknown vendor" |
| EmailAddress | Bleibt leer |
| POAddressLine1 | Bleibt leer |
| POAddressLine2 | Bleibt leer |
| POAddressLine3 | Bleibt leer |
| POAddressLine4 | Bleibt leer |
| POCity | Bleibt leer |
| PORegion | Bleibt leer |
| POPostalCode | Bleibt leer |
| POCountry | Bleibt leer |
| *InvoiceNumber | document_number || "RCP-" + doc_id |
| Reference | "Receipt" |
| *InvoiceDate | date → DD/MM/YYYY |
| *DueDate | date → DD/MM/YYYY |
| Total | Bleibt leer |
| InventoryItemCode | Bleibt leer |
| *Description | join(line_items[].description) || vendor || "Receipt"; tip → "(incl. tip)" |
| *Quantity | 1 |
| *UnitAmount | subtotal / total / tax / tax_inclusive / tip |
| Discount | Bleibt leer |
| *AccountCode | Bleibt leer |
| *TaxType | Bleibt leer |
| TaxAmount | tax (0 → blank) |
| TrackingName1 | Bleibt leer |
| TrackingOption1 | Bleibt leer |
| TrackingName2 | Bleibt leer |
| TrackingOption2 | Bleibt leer |
| Currency | currency |
| BrandingTheme | Bleibt leer |
UnitAmount verwendet bei tax_inclusive=true total, ersatzweise subtotal. Sonst gilt subtotal oder bei fehlendem subtotal total minus tax. Fehlende Beträge können auf 0 gesetzt werden. Danach addiert der Exporter tip. Prüfe Steuern und Trinkgeld vor dem Import.
QuickBooks CSV
Nein
Rechnung
Rechnungsdaten und Referenzen, Absender und Empfänger, Positionen, Steuern, Rabatte, Einbehalte und Summen. unit ist die gedruckte Einheit; tax_rate ein Bruchteil.
JSON-Felder
Die Typen beschreiben serialisiertes JSON. Übergeordnete Objekte und Arrays stehen vor ihren Unterfeldern; [] kennzeichnet wiederholte Einträge. Felder mit Standardwert müssen nicht von der Extraktion geliefert werden. Dezimalwerte werden als Zeichenfolgen ausgegeben. Downloads behalten Felder mit Standardwerten bei; ein fehlender extrahierter Wert ist nicht dasselbe wie ein ausgelassener JSON-Schlüssel.
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
invoice_number | string | null | Mit Standardwert |
issue_date | string | null | Mit Standardwert |
due_date | string | null | Mit Standardwert |
currency | string | null | Mit Standardwert |
payment_terms | string | null | Mit Standardwert |
purchase_order | string | null | Mit Standardwert |
notes | string | null | Mit Standardwert |
subtotal | string | null | Mit Standardwert |
discount | string | null | Mit Standardwert |
tax | string | null | Mit Standardwert |
tax_inclusive | boolean | null | Mit Standardwert |
withholdings | string | null | Mit Standardwert |
total | string | null | Mit Standardwert |
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
sender | object | null | Mit Standardwert |
sender.name | string | null | Mit Standardwert |
sender.address | object | null | Mit Standardwert |
sender.address.line1 | string | null | Mit Standardwert |
sender.address.line2 | string | null | Mit Standardwert |
sender.address.city | string | null | Mit Standardwert |
sender.address.region | string | null | Mit Standardwert |
sender.address.postal_code | string | null | Mit Standardwert |
sender.address.country | string | null | Mit Standardwert |
sender.address.raw | string | null | Mit Standardwert |
sender.tax_id | string | null | Mit Standardwert |
sender.email | string | null | Mit Standardwert |
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
receiver | object | null | Mit Standardwert |
receiver.name | string | null | Mit Standardwert |
receiver.address | object | null | Mit Standardwert |
receiver.address.line1 | string | null | Mit Standardwert |
receiver.address.line2 | string | null | Mit Standardwert |
receiver.address.city | string | null | Mit Standardwert |
receiver.address.region | string | null | Mit Standardwert |
receiver.address.postal_code | string | null | Mit Standardwert |
receiver.address.country | string | null | Mit Standardwert |
receiver.address.raw | string | null | Mit Standardwert |
receiver.tax_id | string | null | Mit Standardwert |
receiver.email | string | null | Mit Standardwert |
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
line_items | array<object> | Mit Standardwert |
line_items[].description | string | null | Mit Standardwert |
line_items[].quantity | string | null | Mit Standardwert |
line_items[].unit | string | null | Mit Standardwert |
line_items[].unit_price | string | null | Mit Standardwert |
line_items[].total | string | null | Mit Standardwert |
line_items[].tax_rate | string | null | Mit Standardwert |
line_items[].tax_amount | string | null | Mit Standardwert |
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
taxes | array<object> | Mit Standardwert |
taxes[].name | string | null | Mit Standardwert |
taxes[].rate | string | null | Mit Standardwert |
taxes[].base | string | null | Mit Standardwert |
taxes[].amount | string | null | Mit Standardwert |
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
reconciliation_warnings | array<string> | Mit Standardwert |
Die Tabellen ordnen Ausgabefelder JSON-Pfaden zu. || bedeutet den ersten nicht leeren Wert; ?? einen Ersatz bei null. Nummerierung, zusammengesetzte Beschreibungen und Formatierung sind Exportregeln. Fehlende Werte werden meist zu leeren Zellen.
Flache Exporte enthalten Positionszeilen mit wiederholten Rechnungsdetails. Nicht flach werden Rechnungsdaten, Parteien, Positionen, Steuern, Summen und Warnungen gruppiert; Word ordnet Abschnitte untereinander an.
Flach
Lines enthält eine Zeile je Position mit wiederholten Rechnungsdaten. Zusätzliche Korrekturzeilen verwenden −discount, taxes[].amount (oder tax), wenn tax_inclusive nicht true ist, sowie −withholdings. Ihre Beschreibungen werden erzeugt; line_no, quantity, unit und unit_price bleiben leer. Auch ohne Positionen entsteht eine Dokumentzeile.
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| doc_id | doc_id |
| source_filename | source_filename |
| invoice_number | invoice_number |
| issue_date | issue_date |
| due_date | due_date |
| currency | currency |
| sender | sender.name |
| receiver | receiver.name |
| line_no | index(line_items[]) + 1 |
| description | line_items[].description |
| quantity | line_items[].quantity |
| unit | line_items[].unit |
| unit_price | line_items[].unit_price |
| line_total | line_items[].total |
| tax_rate | line_items[].tax_rate |
| tax_amount | line_items[].tax_amount |
| row_type | line | adjustment |
Nicht flach
Diese Tabellen stehen in Excel und CSV nebeneinander; Word ordnet sie untereinander an. Die aktuelle Excel-Positionstabelle enthält Line total nicht. CSV und Word enthalten es. Dokumentdetails und Summen verwenden Feld/Wert-Zeilen. Warnungen erscheinen nur, wenn vorhanden.
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| # | index(line_items[]) + 1 |
| Description | line_items[].description |
| Qty | line_items[].quantity |
| Unit | line_items[].unit |
| Unit price | line_items[].unit_price |
| Tax rate | line_items[].tax_rate |
| Tax amount | line_items[].tax_amount |
| Line total | line_items[].total |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| Doc ID | doc_id |
| Source | source_filename |
| Invoice # | invoice_number |
| Issue date | issue_date |
| Due date | due_date |
| Currency | currency |
| Payment terms | payment_terms |
| PO # | purchase_order |
| Sender | sender.name |
| Sender tax ID | sender.tax_id |
| Sender address | sender.address.raw || join(sender.address.line1, line2, city, region, postal_code, country) |
| Receiver | receiver.name |
| Receiver tax ID | receiver.tax_id |
| Receiver address | receiver.address.raw || join(receiver.address.line1, line2, city, region, postal_code, country) |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| Name | taxes[].name |
| Rate | taxes[].rate |
| Base | taxes[].base |
| Amount | taxes[].amount |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| Subtotal | subtotal |
| Discount | discount |
| Tax | tax |
| Tax inclusive | tax_inclusive |
| Withholdings | withholdings |
| Total | total |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| # | index(reconciliation_warnings[]) + 1 |
| Warning | reconciliation_warnings[] |
Xero CSV
Eine Zeile je Position mit wiederholten Empfängerdaten. Ohne Positionen verwendet eine Ersatzzeile notes (oder “Invoice”) als Description, 1 als Quantity, total (oder subtotal) als UnitAmount und tax als TaxAmount. TaxAmount mit Wert 0 bleibt leer. Nicht zugeordnete Spalten bleiben leer; separate Rabatt- oder Einbehaltskorrekturen werden nicht ergänzt.
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| *ContactName | receiver.name || "Unknown customer" |
| EmailAddress | receiver.email |
| POAddressLine1 | receiver.address.line1 |
| POAddressLine2 | receiver.address.line2 |
| POAddressLine3 | Bleibt leer |
| POAddressLine4 | Bleibt leer |
| POCity | receiver.address.city |
| PORegion | receiver.address.region |
| POPostalCode | receiver.address.postal_code |
| POCountry | receiver.address.country |
| *InvoiceNumber | invoice_number || "INV-" + doc_id |
| Reference | purchase_order |
| *InvoiceDate | issue_date → DD/MM/YYYY |
| *DueDate | (due_date || issue_date) → DD/MM/YYYY |
| Total | Bleibt leer |
| InventoryItemCode | Bleibt leer |
| *Description | line_items[].description |
| *Quantity | line_items[].quantity ?? 1 |
| *UnitAmount | line_items[].unit_price ?? (line_items[].total / (line_items[].quantity || 1)) |
| Discount | Bleibt leer |
| *AccountCode | Bleibt leer |
| *TaxType | Bleibt leer |
| TaxAmount | line_items[].tax_amount (0 → "") |
| TrackingName1 | Bleibt leer |
| TrackingOption1 | Bleibt leer |
| TrackingName2 | Bleibt leer |
| TrackingOption2 | Bleibt leer |
| Currency | currency |
| BrandingTheme | Bleibt leer |
QuickBooks CSV
Nein
Kontoauszug
Aussteller, Zeitraum und Konten mit Identität, Salden, Summen und Transaktionen. trnamt ist vorzeichenbehaftet: Abgänge negativ, Eingänge positiv. dtposted ist das Buchungsdatum, dtuser die Wertstellung.
JSON-Felder
Die Typen beschreiben serialisiertes JSON. Übergeordnete Objekte und Arrays stehen vor ihren Unterfeldern; [] kennzeichnet wiederholte Einträge. Felder mit Standardwert müssen nicht von der Extraktion geliefert werden. Dezimalwerte werden als Zeichenfolgen ausgegeben. Downloads behalten Felder mit Standardwerten bei; ein fehlender extrahierter Wert ist nicht dasselbe wie ein ausgelassener JSON-Schlüssel.
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
issuer | object | Mit Standardwert |
issuer.name | string | null | Mit Standardwert |
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
statement | object | Mit Standardwert |
statement.statement_date | string | null | Mit Standardwert |
statement.period_start | string | null | Mit Standardwert |
statement.period_end | string | null | Mit Standardwert |
statement.currency_default | string | null | Mit Standardwert |
statement.page_count | integer | null | Mit Standardwert |
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
accounts | array<object> | Mit Standardwert |
accounts[].holder | object | Mit Standardwert |
accounts[].holder.name | string | null | Mit Standardwert |
accounts[].account | object | Mit Standardwert |
accounts[].account.account_number | string | null | Mit Standardwert |
accounts[].account.account_number_masked | string | null | Mit Standardwert |
accounts[].account.iban | string | null | Mit Standardwert |
accounts[].account.bic | string | null | Mit Standardwert |
accounts[].account.sort_code | string | null | Mit Standardwert |
accounts[].account.account_type | string | null | Mit Standardwert |
accounts[].account.account_name | string | null | Mit Standardwert |
accounts[].account.currency | string | null | Mit Standardwert |
accounts[].account.card_last4 | string | null | Mit Standardwert |
accounts[].balances | object | Mit Standardwert |
accounts[].balances.opening | object | Mit Standardwert |
accounts[].balances.opening.amount | string | null | Mit Standardwert |
accounts[].balances.opening.as_of | string | null | Mit Standardwert |
accounts[].balances.closing | object | Mit Standardwert |
accounts[].balances.closing.amount | string | null | Mit Standardwert |
accounts[].balances.closing.as_of | string | null | Mit Standardwert |
accounts[].balances.available | string | null | Mit Standardwert |
accounts[].totals | object | Mit Standardwert |
accounts[].totals.credits_count | integer | null | Mit Standardwert |
accounts[].totals.credits_amount | string | null | Mit Standardwert |
accounts[].totals.debits_count | integer | null | Mit Standardwert |
accounts[].totals.debits_amount | string | null | Mit Standardwert |
accounts[].totals.fees_charged | string | null | Mit Standardwert |
accounts[].totals.interest_paid | string | null | Mit Standardwert |
accounts[].totals.interest_charged | string | null | Mit Standardwert |
accounts[].transactions | array<object> | Mit Standardwert |
accounts[].transactions[].trntype | string | null | Mit Standardwert |
accounts[].transactions[].dtposted | string | null | Mit Standardwert |
accounts[].transactions[].dtuser | string | null | Mit Standardwert |
accounts[].transactions[].trnamt | string | null | Mit Standardwert |
accounts[].transactions[].name | string | null | Mit Standardwert |
accounts[].transactions[].memo | string | null | Mit Standardwert |
accounts[].transactions[].running_balance | string | null | Mit Standardwert |
accounts[].transactions[].fitid | string | null | Mit Standardwert |
accounts[].transactions[].refnum | string | null | Mit Standardwert |
accounts[].transactions[].checknum | string | null | Mit Standardwert |
accounts[].transactions[].card_last4 | string | null | Mit Standardwert |
accounts[].transactions[].fee | string | null | Mit Standardwert |
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
reconciliation_warnings | array<string> | Mit Standardwert |
Die Tabellen ordnen Ausgabefelder JSON-Pfaden zu. || bedeutet den ersten nicht leeren Wert; ?? einen Ersatz bei null. Nummerierung, zusammengesetzte Beschreibungen und Formatierung sind Exportregeln. Fehlende Werte werden meist zu leeren Zellen.
Flache Exporte enthalten Transaktionszeilen mit wiederholten Dokument- und Kontodaten. Nicht flach werden Dokumentdetails und je Konto Transaktionen, Salden und Summen gruppiert. Die Konten bestimmen die Abschnitte.
Flach
Transactions wiederholt Dokument- und Kontodaten für jede Transaktion. Fehlen Transaktionen oder Konten, schreibt der flache Export trotzdem eine Identitätszeile mit leeren Transaktionsfeldern.
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| doc_id | doc_id |
| source_filename | source_filename |
| bank | issuer.name |
| account_holder | accounts[].holder.name |
| account_number | accounts[].account.account_number_masked || accounts[].account.account_number || accounts[].account.iban |
| account_type | accounts[].account.account_type |
| currency | accounts[].account.currency || statement.currency_default |
| period_start | statement.period_start |
| period_end | statement.period_end |
| txn_no | index(accounts[].transactions[]) + 1 |
| date | accounts[].transactions[].dtposted |
| value_date | accounts[].transactions[].dtuser |
| description | joinDistinct(accounts[].transactions[].name, accounts[].transactions[].memo, " - ") |
| reference | accounts[].transactions[].refnum |
| check_number | accounts[].transactions[].checknum |
| type | accounts[].transactions[].trntype |
| amount | accounts[].transactions[].trnamt |
| fee | accounts[].transactions[].fee |
| running_balance | accounts[].transactions[].running_balance |
Nicht flach
Jedes Konto hat eigene Transaktions- und Detailtabellen, in Excel und CSV nebeneinander. Auszugsdetails stehen beim ersten Konto; Warnungen erscheinen nur, wenn vorhanden. Word ordnet die Abschnitte untereinander an. Feld/Wert-Zeilen sind unten einzeln aufgeführt.
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| # | index(accounts[].transactions[]) + 1 |
| Date | accounts[].transactions[].dtposted |
| Value date | accounts[].transactions[].dtuser |
| Description | joinDistinct(accounts[].transactions[].name, accounts[].transactions[].memo, " - ") |
| Reference | accounts[].transactions[].refnum |
| Check # | accounts[].transactions[].checknum |
| Type | accounts[].transactions[].trntype |
| Amount | accounts[].transactions[].trnamt |
| Running balance | accounts[].transactions[].running_balance |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| Holder | accounts[].holder.name |
| Account name | accounts[].account.account_name |
| Account number | accounts[].account.account_number_masked || accounts[].account.account_number |
| IBAN | accounts[].account.iban |
| BIC | accounts[].account.bic |
| Sort code | accounts[].account.sort_code |
| Card last 4 | accounts[].account.card_last4 |
| Account type | accounts[].account.account_type |
| Currency | accounts[].account.currency |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| Opening | accounts[].balances.opening.amount |
| Opening as of | accounts[].balances.opening.as_of |
| Closing | accounts[].balances.closing.amount |
| Closing as of | accounts[].balances.closing.as_of |
| Available | accounts[].balances.available |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| Credits count | accounts[].totals.credits_count |
| Credits amount | accounts[].totals.credits_amount |
| Debits count | accounts[].totals.debits_count |
| Debits amount | accounts[].totals.debits_amount |
| Fees charged | accounts[].totals.fees_charged |
| Interest paid | accounts[].totals.interest_paid |
| Interest charged | accounts[].totals.interest_charged |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| Doc ID | doc_id |
| Source | source_filename |
| Bank | issuer.name |
| Statement date | statement.statement_date |
| Period start | statement.period_start |
| Period end | statement.period_end |
| Page count | statement.page_count |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| # | index(reconciliation_warnings[]) + 1 |
| Warning | reconciliation_warnings[] |
Beide Exporte kombinieren Transaktionen aller Konten. Xero überspringt Beträge mit null; QuickBooks überspringt null und 0. QuickBooks nutzt memo vor name; rein numerische Beschreibungen erhalten trntype, name oder “Txn” als Präfix. Kreditkartenbeträge erhalten das umgekehrte Vorzeichen. Eine separate Spalte zur Kontozuordnung fehlt.
Xero CSV
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| *Date | accounts[].transactions[].dtposted → DD/MM/YYYY |
| *Amount | accounts[].transactions[].trnamt |
| Payee | accounts[].transactions[].name |
| Description | joinDistinct(accounts[].transactions[].name, accounts[].transactions[].memo, " - ") |
| Reference | accounts[].transactions[].refnum |
| Cheque Number | accounts[].transactions[].checknum |
| Account code* | Bleibt leer |
| Tax Rate (Display Name)* | Bleibt leer |
| Tracking1 | Bleibt leer |
| Tracking2 | Bleibt leer |
| Transaction Type | accounts[].transactions[].trntype |
| Analysis code | Bleibt leer |
QuickBooks CSV
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| Date | accounts[].transactions[].dtposted → DD/MM/YYYY |
| Description | accounts[].transactions[].memo || accounts[].transactions[].name || accounts[].transactions[].trntype || "Transaction" |
| Amount | accounts[].transactions[].trnamt |
Kreditkartenabrechnung
Aussteller, Zeitraum, Kontodetails, Salden, Kreditlimits, Zusammenfassungen und Transaktionen. Bei trnamt sind Belastungen positiv, Zahlungen und Erstattungen negativ, anders als bei Bankkäufen.
JSON-Felder
Die Typen beschreiben serialisiertes JSON. Übergeordnete Objekte und Arrays stehen vor ihren Unterfeldern; [] kennzeichnet wiederholte Einträge. Felder mit Standardwert müssen nicht von der Extraktion geliefert werden. Dezimalwerte werden als Zeichenfolgen ausgegeben. Downloads behalten Felder mit Standardwerten bei; ein fehlender extrahierter Wert ist nicht dasselbe wie ein ausgelassener JSON-Schlüssel.
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
issuer | object | Mit Standardwert |
issuer.name | string | null | Mit Standardwert |
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
statement | object | Mit Standardwert |
statement.statement_date | string | null | Mit Standardwert |
statement.period_start | string | null | Mit Standardwert |
statement.period_end | string | null | Mit Standardwert |
statement.currency_default | string | null | Mit Standardwert |
statement.page_count | integer | null | Mit Standardwert |
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
accounts | array<object> | Mit Standardwert |
accounts[].holder | object | Mit Standardwert |
accounts[].holder.name | string | null | Mit Standardwert |
accounts[].account | object | Mit Standardwert |
accounts[].account.account_number | string | null | Mit Standardwert |
accounts[].account.account_number_masked | string | null | Mit Standardwert |
accounts[].account.card_last4 | string | null | Mit Standardwert |
accounts[].account.bin | string | null | Mit Standardwert |
accounts[].account.card_network | string | null | Mit Standardwert |
accounts[].account.card_brand | string | null | Mit Standardwert |
accounts[].account.card_product | string | null | Mit Standardwert |
accounts[].account.card_type | string | null | Mit Standardwert |
accounts[].account.currency | string | null | Mit Standardwert |
accounts[].balances | object | Mit Standardwert |
accounts[].balances.previous_balance | object | Mit Standardwert |
accounts[].balances.previous_balance.amount | string | null | Mit Standardwert |
accounts[].balances.previous_balance.as_of | string | null | Mit Standardwert |
accounts[].balances.new_balance | object | Mit Standardwert |
accounts[].balances.new_balance.amount | string | null | Mit Standardwert |
accounts[].balances.new_balance.as_of | string | null | Mit Standardwert |
accounts[].balances.statement_balance | string | null | Mit Standardwert |
accounts[].balances.minimum_payment_due | string | null | Mit Standardwert |
accounts[].balances.payment_due_date | string | null | Mit Standardwert |
accounts[].balances.past_due_amount | string | null | Mit Standardwert |
accounts[].credit_limits | object | Mit Standardwert |
accounts[].credit_limits.credit_limit | string | null | Mit Standardwert |
accounts[].credit_limits.available_credit | string | null | Mit Standardwert |
accounts[].credit_limits.cash_advance_limit | string | null | Mit Standardwert |
accounts[].credit_limits.available_cash | string | null | Mit Standardwert |
accounts[].credit_limits.over_limit_amount | string | null | Mit Standardwert |
accounts[].summary | object | Mit Standardwert |
accounts[].summary.previous_balance | string | null | Mit Standardwert |
accounts[].summary.payments | string | null | Mit Standardwert |
accounts[].summary.credits_returns | string | null | Mit Standardwert |
accounts[].summary.purchases | string | null | Mit Standardwert |
accounts[].summary.cash_advances | string | null | Mit Standardwert |
accounts[].summary.balance_transfers | string | null | Mit Standardwert |
accounts[].summary.fees_charged | string | null | Mit Standardwert |
accounts[].summary.interest_charged | string | null | Mit Standardwert |
accounts[].summary.adjustments | string | null | Mit Standardwert |
accounts[].summary.new_balance | string | null | Mit Standardwert |
accounts[].transactions | array<object> | Mit Standardwert |
accounts[].transactions[].trntype | string | null | Mit Standardwert |
accounts[].transactions[].dtposted | string | null | Mit Standardwert |
accounts[].transactions[].dtuser | string | null | Mit Standardwert |
accounts[].transactions[].trnamt | string | null | Mit Standardwert |
accounts[].transactions[].name | string | null | Mit Standardwert |
accounts[].transactions[].memo | string | null | Mit Standardwert |
accounts[].transactions[].fitid | string | null | Mit Standardwert |
accounts[].transactions[].refnum | string | null | Mit Standardwert |
accounts[].transactions[].card_last4 | string | null | Mit Standardwert |
accounts[].transactions[].cardholder_name | string | null | Mit Standardwert |
accounts[].transactions[].is_foreign | boolean | null | Mit Standardwert |
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
reconciliation_warnings | array<string> | Mit Standardwert |
Die Tabellen ordnen Ausgabefelder JSON-Pfaden zu. || bedeutet den ersten nicht leeren Wert; ?? einen Ersatz bei null. Nummerierung, zusammengesetzte Beschreibungen und Formatierung sind Exportregeln. Fehlende Werte werden meist zu leeren Zellen.
Flache Exporte enthalten Transaktionszeilen mit wiederholten Dokument- und Kontofeldern. Nicht flach gibt es Kontoabschnitte für Transaktionen, Salden, Limits und Zusammenfassungen. Mehrere Konten ändern die Abschnittszahl.
Flach
Transactions wiederholt Dokument- und Kontodaten für jede Transaktion. Fehlen Transaktionen oder Konten, schreibt der flache Export trotzdem eine Identitätszeile mit leeren Transaktionsfeldern.
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| doc_id | doc_id |
| source_filename | source_filename |
| issuer | issuer.name |
| cardholder | accounts[].transactions[].cardholder_name || accounts[].holder.name |
| card_last4 | accounts[].transactions[].card_last4 || accounts[].account.card_last4 |
| card_network | accounts[].account.card_network |
| card_brand | accounts[].account.card_brand |
| currency | accounts[].account.currency || statement.currency_default |
| period_start | statement.period_start |
| period_end | statement.period_end |
| txn_no | index(accounts[].transactions[]) + 1 |
| date | accounts[].transactions[].dtposted |
| posted_date | accounts[].transactions[].dtuser |
| description | joinDistinct(accounts[].transactions[].name, accounts[].transactions[].memo, " - ") |
| reference | accounts[].transactions[].refnum |
| type | accounts[].transactions[].trntype |
| amount | accounts[].transactions[].trnamt |
| is_foreign | accounts[].transactions[].is_foreign → Yes / No / "" |
Nicht flach
Jedes Konto hat eigene Transaktions- und Detailtabellen, in Excel und CSV nebeneinander. Auszugsdetails stehen beim ersten Konto; Warnungen erscheinen nur, wenn vorhanden. Word ordnet die Abschnitte untereinander an. Feld/Wert-Zeilen sind unten einzeln aufgeführt.
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| # | index(accounts[].transactions[]) + 1 |
| Date | accounts[].transactions[].dtposted |
| Posted | accounts[].transactions[].dtuser |
| Description | joinDistinct(accounts[].transactions[].name, accounts[].transactions[].memo, " - ") |
| Reference | accounts[].transactions[].refnum |
| Type | accounts[].transactions[].trntype |
| Card last 4 | accounts[].transactions[].card_last4 || accounts[].account.card_last4 |
| Amount | accounts[].transactions[].trnamt |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| Holder | accounts[].holder.name |
| Card last 4 | accounts[].account.card_last4 |
| Card network | accounts[].account.card_network |
| Card brand | accounts[].account.card_brand |
| Card product | accounts[].account.card_product |
| Card type | accounts[].account.card_type |
| Account number | accounts[].account.account_number_masked || accounts[].account.account_number |
| Currency | accounts[].account.currency |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| Previous balance | accounts[].balances.previous_balance.amount |
| Previous balance as of | accounts[].balances.previous_balance.as_of |
| New balance | accounts[].balances.new_balance.amount |
| New balance as of | accounts[].balances.new_balance.as_of |
| Statement balance | accounts[].balances.statement_balance |
| Minimum payment | accounts[].balances.minimum_payment_due |
| Payment due date | accounts[].balances.payment_due_date |
| Past due | accounts[].balances.past_due_amount |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| Credit limit | accounts[].credit_limits.credit_limit |
| Available credit | accounts[].credit_limits.available_credit |
| Cash advance limit | accounts[].credit_limits.cash_advance_limit |
| Available cash | accounts[].credit_limits.available_cash |
| Over limit | accounts[].credit_limits.over_limit_amount |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| Previous balance | accounts[].summary.previous_balance |
| Payments | accounts[].summary.payments |
| Credits / returns | accounts[].summary.credits_returns |
| Purchases | accounts[].summary.purchases |
| Cash advances | accounts[].summary.cash_advances |
| Balance transfers | accounts[].summary.balance_transfers |
| Fees charged | accounts[].summary.fees_charged |
| Interest charged | accounts[].summary.interest_charged |
| Adjustments | accounts[].summary.adjustments |
| New balance | accounts[].summary.new_balance |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| Doc ID | doc_id |
| Source | source_filename |
| Issuer | issuer.name |
| Statement date | statement.statement_date |
| Period start | statement.period_start |
| Period end | statement.period_end |
| Page count | statement.page_count |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| # | index(reconciliation_warnings[]) + 1 |
| Warning | reconciliation_warnings[] |
Beide Exporte kombinieren Transaktionen aller Konten. Xero überspringt Beträge mit null; QuickBooks überspringt null und 0. QuickBooks nutzt memo vor name; rein numerische Beschreibungen erhalten trntype, name oder “Txn” als Präfix. Kreditkartenbeträge erhalten das umgekehrte Vorzeichen. Eine separate Spalte zur Kontozuordnung fehlt.
Xero CSV
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| *Date | accounts[].transactions[].dtposted → DD/MM/YYYY |
| *Amount | −accounts[].transactions[].trnamt |
| Payee | accounts[].transactions[].name |
| Description | joinDistinct(accounts[].transactions[].name, accounts[].transactions[].memo, " - ") |
| Reference | accounts[].transactions[].refnum |
| Cheque Number | Bleibt leer |
| Account code* | Bleibt leer |
| Tax Rate (Display Name)* | Bleibt leer |
| Tracking1 | Bleibt leer |
| Tracking2 | Bleibt leer |
| Transaction Type | accounts[].transactions[].trntype |
| Analysis code | Bleibt leer |
QuickBooks CSV
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| Date | accounts[].transactions[].dtposted → DD/MM/YYYY |
| Description | accounts[].transactions[].memo || accounts[].transactions[].name || accounts[].transactions[].trntype || "Transaction" |
| Amount | −accounts[].transactions[].trnamt |
Gehaltsabrechnung
Abrechnungszeitraum, Arbeitnehmer und Arbeitgeber, Sätze, Bezüge, Abzüge, Steuern, Arbeitgeberbeiträge und Summen. current_amount gilt für den Zeitraum, ytd_amount seit Jahresbeginn.
JSON-Felder
Die Typen beschreiben serialisiertes JSON. Übergeordnete Objekte und Arrays stehen vor ihren Unterfeldern; [] kennzeichnet wiederholte Einträge. Felder mit Standardwert müssen nicht von der Extraktion geliefert werden. Dezimalwerte werden als Zeichenfolgen ausgegeben. Downloads behalten Felder mit Standardwerten bei; ein fehlender extrahierter Wert ist nicht dasselbe wie ein ausgelassener JSON-Schlüssel.
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
statement | object | Mit Standardwert |
statement.issue_date | string | null | Mit Standardwert |
statement.pay_date | string | null | Mit Standardwert |
statement.period_start | string | null | Mit Standardwert |
statement.period_end | string | null | Mit Standardwert |
statement.period_type | string | null | Mit Standardwert |
statement.tax_year | integer | null | Mit Standardwert |
statement.currency | string | null | Mit Standardwert |
statement.country | string | null | Mit Standardwert |
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
employee | object | Mit Standardwert |
employee.name | string | null | Mit Standardwert |
employee.pay_frequency | string | null | Mit Standardwert |
employee.employment_type | string | null | Mit Standardwert |
employee.employment_status | string | null | Mit Standardwert |
employee.filing_status | string | null | Mit Standardwert |
employee.tax_code | string | null | Mit Standardwert |
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
employer | object | Mit Standardwert |
employer.name | string | null | Mit Standardwert |
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
rates | object | Mit Standardwert |
rates.base_pay_rate | string | null | Mit Standardwert |
rates.base_pay_unit | string | null | Mit Standardwert |
rates.annual_salary | string | null | Mit Standardwert |
rates.regular_hours_per_period | string | null | Mit Standardwert |
rates.overtime_multiplier | string | null | Mit Standardwert |
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
earnings | array<object> | Mit Standardwert |
earnings[].code | string | null | Mit Standardwert |
earnings[].description | string | null | Mit Standardwert |
earnings[].category | string | null | Mit Standardwert |
earnings[].jurisdiction | string | null | Mit Standardwert |
earnings[].hours | string | null | Mit Standardwert |
earnings[].rate | string | null | Mit Standardwert |
earnings[].current_amount | string | null | Mit Standardwert |
earnings[].ytd_amount | string | null | Mit Standardwert |
earnings[].employer_match | string | null | Mit Standardwert |
earnings[].employer_match_ytd | string | null | Mit Standardwert |
earnings[].is_taxable | boolean | null | Mit Standardwert |
earnings[].is_imputed | boolean | null | Mit Standardwert |
earnings[].memo | string | null | Mit Standardwert |
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
pre_tax_deductions | array<object> | Mit Standardwert |
pre_tax_deductions[].code | string | null | Mit Standardwert |
pre_tax_deductions[].description | string | null | Mit Standardwert |
pre_tax_deductions[].category | string | null | Mit Standardwert |
pre_tax_deductions[].jurisdiction | string | null | Mit Standardwert |
pre_tax_deductions[].hours | string | null | Mit Standardwert |
pre_tax_deductions[].rate | string | null | Mit Standardwert |
pre_tax_deductions[].current_amount | string | null | Mit Standardwert |
pre_tax_deductions[].ytd_amount | string | null | Mit Standardwert |
pre_tax_deductions[].employer_match | string | null | Mit Standardwert |
pre_tax_deductions[].employer_match_ytd | string | null | Mit Standardwert |
pre_tax_deductions[].is_taxable | boolean | null | Mit Standardwert |
pre_tax_deductions[].is_imputed | boolean | null | Mit Standardwert |
pre_tax_deductions[].memo | string | null | Mit Standardwert |
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
taxes | array<object> | Mit Standardwert |
taxes[].code | string | null | Mit Standardwert |
taxes[].description | string | null | Mit Standardwert |
taxes[].category | string | null | Mit Standardwert |
taxes[].jurisdiction | string | null | Mit Standardwert |
taxes[].hours | string | null | Mit Standardwert |
taxes[].rate | string | null | Mit Standardwert |
taxes[].current_amount | string | null | Mit Standardwert |
taxes[].ytd_amount | string | null | Mit Standardwert |
taxes[].employer_match | string | null | Mit Standardwert |
taxes[].employer_match_ytd | string | null | Mit Standardwert |
taxes[].is_taxable | boolean | null | Mit Standardwert |
taxes[].is_imputed | boolean | null | Mit Standardwert |
taxes[].memo | string | null | Mit Standardwert |
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
post_tax_deductions | array<object> | Mit Standardwert |
post_tax_deductions[].code | string | null | Mit Standardwert |
post_tax_deductions[].description | string | null | Mit Standardwert |
post_tax_deductions[].category | string | null | Mit Standardwert |
post_tax_deductions[].jurisdiction | string | null | Mit Standardwert |
post_tax_deductions[].hours | string | null | Mit Standardwert |
post_tax_deductions[].rate | string | null | Mit Standardwert |
post_tax_deductions[].current_amount | string | null | Mit Standardwert |
post_tax_deductions[].ytd_amount | string | null | Mit Standardwert |
post_tax_deductions[].employer_match | string | null | Mit Standardwert |
post_tax_deductions[].employer_match_ytd | string | null | Mit Standardwert |
post_tax_deductions[].is_taxable | boolean | null | Mit Standardwert |
post_tax_deductions[].is_imputed | boolean | null | Mit Standardwert |
post_tax_deductions[].memo | string | null | Mit Standardwert |
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
employer_contributions | array<object> | Mit Standardwert |
employer_contributions[].code | string | null | Mit Standardwert |
employer_contributions[].description | string | null | Mit Standardwert |
employer_contributions[].category | string | null | Mit Standardwert |
employer_contributions[].jurisdiction | string | null | Mit Standardwert |
employer_contributions[].hours | string | null | Mit Standardwert |
employer_contributions[].rate | string | null | Mit Standardwert |
employer_contributions[].current_amount | string | null | Mit Standardwert |
employer_contributions[].ytd_amount | string | null | Mit Standardwert |
employer_contributions[].employer_match | string | null | Mit Standardwert |
employer_contributions[].employer_match_ytd | string | null | Mit Standardwert |
employer_contributions[].is_taxable | boolean | null | Mit Standardwert |
employer_contributions[].is_imputed | boolean | null | Mit Standardwert |
employer_contributions[].memo | string | null | Mit Standardwert |
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
totals | object | Mit Standardwert |
totals.gross_pay_current | string | null | Mit Standardwert |
totals.gross_pay_ytd | string | null | Mit Standardwert |
totals.taxable_gross_current | string | null | Mit Standardwert |
totals.taxable_gross_ytd | string | null | Mit Standardwert |
totals.total_pre_tax_deductions_current | string | null | Mit Standardwert |
totals.total_pre_tax_deductions_ytd | string | null | Mit Standardwert |
totals.total_taxes_current | string | null | Mit Standardwert |
totals.total_taxes_ytd | string | null | Mit Standardwert |
totals.total_post_tax_deductions_current | string | null | Mit Standardwert |
totals.total_post_tax_deductions_ytd | string | null | Mit Standardwert |
totals.total_deductions_current | string | null | Mit Standardwert |
totals.total_deductions_ytd | string | null | Mit Standardwert |
totals.total_employer_contributions_current | string | null | Mit Standardwert |
totals.total_employer_contributions_ytd | string | null | Mit Standardwert |
totals.net_pay_current | string | null | Mit Standardwert |
totals.net_pay_ytd | string | null | Mit Standardwert |
totals.hours_worked_current | string | null | Mit Standardwert |
totals.hours_worked_ytd | string | null | Mit Standardwert |
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
reconciliation_warnings | array<string> | Mit Standardwert |
Die Tabellen ordnen Ausgabefelder JSON-Pfaden zu. || bedeutet den ersten nicht leeren Wert; ?? einen Ersatz bei null. Nummerierung, zusammengesetzte Beschreibungen und Formatierung sind Exportregeln. Fehlende Werte werden meist zu leeren Zellen.
Keine Flat-/Non-flat-Auswahl. Das Blatt Paystub enthält Abschnitte zu Abrechnung, Arbeitnehmer, Arbeitgeber, Sätzen, Bezügen, Abzügen, Steuern, Beiträgen und Summen. CSV ist ein Abschnittsraster; Word ordnet Abschnitte untereinander an.
Eigenes Layout
Dies sind die Abschnitte des Paystub-Layouts, in Excel und CSV nebeneinander und in Word untereinander. Beschreibungen nutzen description oder code und ergänzen “imputed” bei is_imputed = true und “non-taxable” bei is_taxable = false. Rate-Spalten verwenden Prozentformatierung. Summen verbinden Current und YTD je Metric. Warnungen erscheinen nur, wenn vorhanden.
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| Gross pay / Current | totals.gross_pay_current |
| Gross pay / YTD | totals.gross_pay_ytd |
| Taxable gross / Current | totals.taxable_gross_current |
| Taxable gross / YTD | totals.taxable_gross_ytd |
| Pre-tax deductions / Current | totals.total_pre_tax_deductions_current |
| Pre-tax deductions / YTD | totals.total_pre_tax_deductions_ytd |
| Taxes / Current | totals.total_taxes_current |
| Taxes / YTD | totals.total_taxes_ytd |
| Post-tax deductions / Current | totals.total_post_tax_deductions_current |
| Post-tax deductions / YTD | totals.total_post_tax_deductions_ytd |
| Total deductions / Current | totals.total_deductions_current |
| Total deductions / YTD | totals.total_deductions_ytd |
| Employer contributions / Current | totals.total_employer_contributions_current |
| Employer contributions / YTD | totals.total_employer_contributions_ytd |
| Net pay / Current | totals.net_pay_current |
| Net pay / YTD | totals.net_pay_ytd |
| Hours worked / Current | totals.hours_worked_current |
| Hours worked / YTD | totals.hours_worked_ytd |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| Doc ID | doc_id |
| Source | source_filename |
| Issue date | statement.issue_date |
| Pay date | statement.pay_date |
| Period start | statement.period_start |
| Period end | statement.period_end |
| Period type | statement.period_type |
| Tax year | statement.tax_year |
| Currency | statement.currency |
| Country | statement.country |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| Name | employee.name |
| Pay frequency | employee.pay_frequency |
| Employment type | employee.employment_type |
| Employment status | employee.employment_status |
| Filing status | employee.filing_status |
| Tax code | employee.tax_code |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| Name | employer.name |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| Base pay rate | rates.base_pay_rate |
| Base pay unit | rates.base_pay_unit |
| Annual salary | rates.annual_salary |
| Regular hours/period | rates.regular_hours_per_period |
| Overtime multiplier | rates.overtime_multiplier |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| # | index(earnings[]) + 1 |
| Description | earnings[].description || earnings[].code |
| Code | earnings[].code |
| Hours | earnings[].hours |
| Rate | earnings[].rate |
| Current | earnings[].current_amount |
| YTD | earnings[].ytd_amount |
| Memo | earnings[].memo |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| # | index(pre_tax_deductions[]) + 1 |
| Description | pre_tax_deductions[].description || pre_tax_deductions[].code |
| Code | pre_tax_deductions[].code |
| Current | pre_tax_deductions[].current_amount |
| YTD | pre_tax_deductions[].ytd_amount |
| Memo | pre_tax_deductions[].memo |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| # | index(taxes[]) + 1 |
| Description | taxes[].description || taxes[].code |
| Code | taxes[].code |
| Jurisdiction | taxes[].jurisdiction |
| Rate | taxes[].rate |
| Current | taxes[].current_amount |
| YTD | taxes[].ytd_amount |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| # | index(post_tax_deductions[]) + 1 |
| Description | post_tax_deductions[].description || post_tax_deductions[].code |
| Code | post_tax_deductions[].code |
| Current | post_tax_deductions[].current_amount |
| YTD | post_tax_deductions[].ytd_amount |
| Memo | post_tax_deductions[].memo |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| # | index(employer_contributions[]) + 1 |
| Description | employer_contributions[].description || employer_contributions[].code |
| Code | employer_contributions[].code |
| Current | employer_contributions[].current_amount |
| YTD | employer_contributions[].ytd_amount |
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| # | index(reconciliation_warnings[]) + 1 |
| Warning | reconciliation_warnings[] |
Xero CSV
Nein
QuickBooks CSV
Nein
Tabellenbild
Tabellentitel, Kopfzeilen, Datenzellen und Hinweise. headers und rows[].cells folgen den Quellspalten und keinem festen Finanzschema. Der Zeilentyp kennzeichnet Daten, Zwischensummen oder andere Rollen.
JSON-Felder
Die Typen beschreiben serialisiertes JSON. Übergeordnete Objekte und Arrays stehen vor ihren Unterfeldern; [] kennzeichnet wiederholte Einträge. Felder mit Standardwert müssen nicht von der Extraktion geliefert werden. Dezimalwerte werden als Zeichenfolgen ausgegeben. Downloads behalten Felder mit Standardwerten bei; ein fehlender extrahierter Wert ist nicht dasselbe wie ein ausgelassener JSON-Schlüssel.
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
title | string | null | Mit Standardwert |
caption | string | null | Mit Standardwert |
source_type | string | null | Mit Standardwert |
border_style | string | null | Mit Standardwert |
language | string | null | Mit Standardwert |
header_rows | integer | null | Mit Standardwert |
notes | string | null | Mit Standardwert |
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
headers | array<array<any>> | Mit Standardwert |
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
rows | array<object> | Mit Standardwert |
rows[].type | string | null | Mit Standardwert |
rows[].cells | array<any> | Mit Standardwert |
| Feldpfad | JSON-Typ | Feldbelegung |
|---|---|---|
reconciliation_warnings | array<string> | Mit Standardwert |
Die Tabellen ordnen Ausgabefelder JSON-Pfaden zu. || bedeutet den ersten nicht leeren Wert; ?? einen Ersatz bei null. Nummerierung, zusammengesetzte Beschreibungen und Formatierung sind Exportregeln. Fehlende Werte werden meist zu leeren Zellen.
Keine Flat-/Non-flat-Auswahl. Ein Blatt Table enthält extrahierte Überschriften und Zellen. Die Spaltenzahl ist dynamisch; Titel, Hinweise und Warnungen können Zeilen ergänzen. CSV erhält weder verbundene Excel-Zellen noch Formatierungen.
Eigenes Layout
Spaltennamen stammen aus headers, nicht aus einer festen Liste. Die Reihenfolge der Zellen bleibt erhalten; kurze Zeilen werden aufgefüllt und null wird leer. title und caption stehen über dem Raster, notes und Warnungen darunter. Gleiche benachbarte Kopfwerte werden in Excel verbunden. rows[].type steuert die Excel/Word-Formatierung, ohne zusätzliche Ausgabespalte. CSV hat keine Formatierung. Eine Warnungszeile kann zwei Spalten nutzen, auch bei nur einer Datenspalte.
| Ausgabefeld | JSON-Quelle oder Exportregel |
|---|---|
| title | title |
| caption | caption |
| headers[][] | headers[][] |
| rows[].cells[] | rows[].cells[] |
| Zeilenformatierung (Excel / Word) | rows[].type → DATA | HEADER | SECTION | SUBTOTAL | GRAND_TOTAL |
| Rasterbreite | max(length(headers[]), length(rows[].cells)) || 1 |
| Notes | notes |
| # | index(reconciliation_warnings[]) + 1 |
| Reconciliation warnings | reconciliation_warnings[] |
Xero CSV
Nein
QuickBooks CSV
Nein
Fehlende Werte und Ergebnisprüfung
Nullable-Felder können null enthalten; fehlende Listen erhalten []. Verschachtelte Objekte können eigene Standardfelder haben. Tabellenexporter zeigen fehlende Werte häufig als leere Zellen. Datums- und Betragswerte können normalisiert werden; die Abstimmung kann fehlende Summen ableiten oder Warnungen hinzufügen. doc_id und source_filename sind Exportmetadaten, keine extrahierten Finanzfelder.
Prüfe Vorlage und Exportwerte. Eine leere Liste reconciliation_warnings beweist keine Genauigkeit.