1. Invoice (Header / Document Level)

    Map the general invoice information here: invoice number, date, currency, totals (net/gross), payment terms, free-text notes, and global references (e.g., customer PO number). Make sure dates are normalized to YYYY-MM-DD and currency codes use ISO codes (e.g., EUR). Global tax blocks (per VAT rate: taxable basis, tax amount, rate, category) are also populated here; the rate often comes from the same field set used by the line items, but on document level it’s passed as a summarized block.

  2. Seller (Supplier)

    Select the layout that holds the billing party’s company data and map fields such as: name, legal form (optional), address (street/ZIP/city/country), VAT ID, tax number (if used), contact channels (phone/email), and bank reference (if centrally maintained). Ensure countries are stored as ISO codes (DE, AT, …) where the profile requires it or the validator recommends it.

  3. Buyer (Customer)

    Analogous to the seller: choose the layout with customer data and map fields (name, address, contact person, email, customer number if applicable). If the customer uses separate billing/shipping addresses, you can provide a different recipient address under the Delivery/Performance section (see below).

  4. Delivery / Performance

    Map the service period or delivery date here, plus (if applicable) the delivery address, delivery reference (e.g., delivery note number, delivery condition/IncoTerms), and—if your organization maintains them—project/contract IDs. Dates should again be normalized; periods can be start/end or a single date, depending on profile and practice.

  5. Payment / Bank

    Choose the layout with payment information: payment terms (e.g., 14 days net, early-payment discounts), bank details (IBAN, BIC, bank name), payment method (transfer, SEPA, card) and remittance information. If IBAN/BIC are stored separately, map both; if the customer uses alternative channels (e.g., a PayPal link), you can place that into a free-text or optional field as long as the profile allows it.

  6. Items (Line Items)

    For line items, pick a layout with the portal (or a list) containing the goods/services rows, then map the common keys, typically: line position, item name, item number (SKU), quantity, unit (code), unit price (net), VAT rate (%), and order reference. Optionally useful: tax category (S, Z, E, AE, …), line total (net), per-item delivery/performance date, buyer item ID, and allowance/charge.

    Important: numbers must be decimal with a dot, and units must use UN/ECE codes (C62 = piece, HUR = hour, etc.). The per-item VAT rate belongs here; in addition, the document-level global tax blocks (summed per rate) are built—your add-on aggregates the line values so you don’t have to do the math twice.

Normalization & Quality Assurance

To keep mappings stable across customer environments, the add-on includes small but effective helpers: numbers can be auto-converted from comma to dot; dates normalized to YYYY-MM-DD; units coerced to uppercase and restricted to allowed codes; empty values are passed as truly empty (not placeholders); text is trimmed and quotes properly escaped. An integrated validator checks ZUGFeRD-required fields per area (depending on the chosen profile), highlights missing mappings immediately, and prevents faulty exports before generation.

Preview, Test Run, and Traceability

Every configuration can be tested: the add-on produces a preview of the resulting data structure (e.g., JSON/CSV) and logs which fields were taken from which layout. That way, discrepancies (wrong layout selected, empty field, unit text instead of code) are visible right away—before creating a ZUGFeRD document.

Versioned Mappings & Multi-Tenant Capability

Because many customers use multiple files/layouts, the add-on stores the mapping versioned per file/tenant. You can export/import mappings (e.g., between test and production), duplicate them (for similar customers), or switch between them (if the customer has alternative layouts)—all without altering the underlying data structure.

FAQs (concise)