Germany (DE) Field Mapping
Country: DE
Compliance: XRechnung 3.0, EN 16931, Peppol BIS Billing 3.0
Last Updated: 2026
Requirement Legend
M: Mandatory
CM: Conditional Mandatory
O: Optional
Field Mapping Reference
1) Core Invoice Information
| Field | GETS Path | Mandatory | Notes |
|---|
| Invoice number | header.documentNumber | M | BT-1 |
| Document ID | header.documentId | M | ULID/UUID |
| Invoice type code | header.documentType | M | BT-3 |
| Issue date | header.issueDate | M | BT-2 |
| Due date | header.dueDate | O | BT-9 |
| Currency | header.currency | M | BT-5 |
| Tax currency | header.taxCurrency | O | BT-6 |
| Exchange rate | header.exchangeRate.rate | CM | When taxCurrency differs |
| Reference invoice | header.referenceId | CM | Credit/debit notes |
| Credit/debit reason | header.noteIssuanceReason | CM | Credit/debit notes |
| Invoice note | header.additionalNotes | O | BT-122 |
| VAT point date | extensions.peppol_taxPointDate | O | BT-7 |
| VAT point date code | extensions.peppol_taxPointDateCode | O | BT-8 |
| Preceding invoice issue date | extensions.peppol_precedingInvoiceIssueDate | CM | BT-26 |
| Buyer accounting reference | supportingDocuments[documentType="buyerAccounting"].id | O | BT-19 |
| Invoice period start | header.invoicePeriod.startDate | O | BT-73 |
| Invoice period end | header.invoicePeriod.endDate | O | BT-74 |
2) Seller Details
| Field | GETS Path | Mandatory | Notes |
|---|
| Seller name | parties.seller.name | M | BT-27 |
| Trade name | parties.seller.tradeName | O | BT-28 |
| Seller ID | parties.seller.partyId | O | BT-29 |
| VAT ID | parties.seller.taxIds[type="VAT"].value | M | BT-31 |
| Tax registration ID | parties.seller.taxIds[type="TAX_REG"].value | O | BT-32 |
| Legal registration ID | parties.seller.registrationNumbers[].value | O | BT-30 |
| Legal registration type | parties.seller.registrationNumbers[].type | O | e.g. HRB |
| Seller Peppol ID | parties.seller.peppolId | O | BT-34 |
| Contact name | parties.seller.contact.name | O | BT-42 |
| Contact phone | parties.seller.contact.phone | O | BT-43 |
| Contact email | parties.seller.contact.email | O | BT-43-1 |
| Address line 1 | parties.seller.address.addressLine1 | M | BT-35 |
| Address line 2 | parties.seller.address.addressLine2 | O | BT-36 |
| Address line 3 | parties.seller.address.addressLine3 | O | BT-37 |
| City | parties.seller.address.city | M | BT-38 |
| Postal code | parties.seller.address.postalCode | M | BT-39 |
| State/Province | parties.seller.address.stateOrProvince | O | BT-40 |
| Country | parties.seller.address.country | M | BT-41 |
3) Buyer Details
| Field | GETS Path | Mandatory | Notes |
|---|
| Buyer name | parties.buyer.name | M | BT-44 |
| Trade name | parties.buyer.tradeName | O | BT-45 |
| Buyer ID | parties.buyer.partyId | O | BT-46 |
| Buyer VAT ID | parties.buyer.taxIds[type="VAT"].value | CM | Intra-community/reverse charge |
| Legal registration ID | parties.buyer.registrationNumbers[].value | O | BT-47 |
| Legal registration type | parties.buyer.registrationNumbers[].type | O | |
| Buyer Peppol ID | parties.buyer.peppolId | CM | Mandatory for B2G routing |
| Leitweg-ID value | extensions.de_leitwegId | CM | Mandatory for German B2G |
| Address line 1 | parties.buyer.address.addressLine1 | CM | Required B2B/B2G |
| Address line 2 | parties.buyer.address.addressLine2 | O | |
| Address line 3 | parties.buyer.address.addressLine3 | O | |
| City | parties.buyer.address.city | M | |
| Postal code | parties.buyer.address.postalCode | M | |
| State/Province | parties.buyer.address.stateOrProvince | O | |
| Country | parties.buyer.address.country | M | |
4) Line Items
| Field | GETS Path | Mandatory | Notes |
|---|
| Line ID | lineItems[].id | O | |
| Description | lineItems[].description | M | |
| Unit price | lineItems[].price.amount | M | |
| Unit code | lineItems[].unitCode | O | |
| Quantity | lineItems[].quantity | O | |
| Discount amount | lineItems[].discountsOrCharges[isCharge=false].amount | O | |
| Discount percent | lineItems[].discountsOrCharges[isCharge=false].percent | O | |
| Charge amount | lineItems[].discountsOrCharges[isCharge=true].amount | O | |
| Charge percent | lineItems[].discountsOrCharges[isCharge=true].percent | O | |
| Taxable amount | lineItems[].lineTaxableValue | M | |
| Tax category | lineItems[].taxCategory | M | S,AA,Z,E,AE,K,G,O |
| Tax rate | lineItems[].taxRate | M | |
| Tax amount | lineItems[].taxAmount | M | |
| Tax exemption reason | lineItems[].taxExemptionReason | CM | |
| Tax exemption reason code | lineItems[].taxExemptionReasonCode | CM | |
| Line total | lineItems[].lineTotal | O | |
5) Totals
| Field | GETS Path | Mandatory | Notes |
|---|
| Line net sum | totals.totalLineTaxableAmount | M | BT-106 |
| Total allowances | totals.totalAllowances | O | BT-107 |
| Total charges | totals.totalCharges | O | BT-108 |
| Total excl tax | totals.totalAmountExcludingTax | M | BT-109 |
| Total tax | totals.totalTaxAmount | M | BT-110 |
| Total incl tax | totals.totalAmountIncludingTax | M | BT-112 |
| Prepaid | totals.prepaidAmount | O | BT-113 |
| Rounding | totals.roundingAmount | O | BT-114 |
| Amount due | totals.amountDue | M | BT-115 |
Code Lists Reference
Germany Document Types
| BT-3 | GETS mapping |
|---|
| 380 | { "base": "tax_invoice" } |
| 381 | { "base": "credit_note" } |
| 384 | { "base": "debit_note" } |
| 389 | { "base": "tax_invoice", "modifiers": ["self_billed"] } |
| 326 | { "base": "tax_invoice", "variant": "partial" } |
| 875 | { "base": "tax_invoice", "variant": "partial_construction" } |
| 876 | { "base": "tax_invoice", "variant": "partial_final_construction" } |
| 877 | { "base": "tax_invoice", "variant": "final_construction" } |
Germany Modifiers
| Modifier | Meaning |
|---|
self_billed | Buyer-issued invoice |
export | Export outside EU |
b2g | Business-to-government |
reverse_charge | Buyer accounts for VAT |
intra_community | Intra-EU supply |
See Also