Skip to content

Mapping

This page explains, in business terms, how an SAP INVOIC02 IDoc is interpreted and turned into a UBL invoice (for example Peppol BIS Billing 3.0).

The tables below are written as “business fields → where they come from in IDoc → where they end up in UBL”:

  • The left bullet in each row is the target UBL XPath (what the final business document contains).
  • The right bullet is the source IDoc XPath (where the value is read from in the INVOIC02 XML).
  • The text after the list describes the mapping logic (qualifiers, parsing rules, limitations).

How to read an IDoc (why qualifiers matter)

INVOIC02 uses short segment names, and the meaning is usually defined by a qualifier:

  • E1EDK02/QUALF: the type of reference (invoice number, PO number, delivery note, preceding invoice, …).
  • E1EDK03/IDDAT: the type of date (due date, delivery date, …).
  • E1EDKA1/PARVW: the partner role (supplier, buyer, ship-to, contact, …).
  • E1EDS01/SUMID: the type of total (tax total, net subtotal, gross/payable total, …).

Because of this, the conversion is not a simple 1:1 “tag rename”: the mapping must first pick the right segment instance (by qualifier) and then apply any parsing/normalization needed to match the UBL business model.

Amounts, taxes, allowances and charges (standard mapping behaviour)

This section describes how INVOIC02 segment groups relate to UBL amounts and taxes in the standard integration. Values are taken as SAP sends them; the mapping does not recompute tax from rate × base or reconcile line totals to header totals.

Line amounts (E1EDP01E1EDP26)

For each line, E1EDP26 rows are read by QUALF:

  • QUALF='001'unit price. The amount in BETRG is normalised with no minus sign on the price (unit price is always positive in the output model).
  • QUALF='002'line net / extended amount (subtotal). BETRG is normalised for negative amounts: if the string contains -, it is reduced to at most one leading minus and stray minus signs are removed from the numeric part (SAP sometimes encodes negatives with repeated - characters).

So: price is always non-negative after mapping; subtotal may be negative after normalisation.

Line tax (E1EDP04)

From the line tax segment:

  • MSATZ → tax rate (percent) as a string.
  • MWSBT → tax amount for the line, using the same negative-amount normalisation as for line subtotals.
  • MWSKZ → SAP tax code. It is mapped to a UBL / Peppol tax category id (E, S, Z, AE, …) using a fixed lookup table; if the code is not in the table, the category defaults to Z.

If the line tax amount is negative, the mapping treats the line as a credit-style line: quantity (MENGE) is prefixed with - while the unit price stays positive (only the subtotal/tax side carries the credit).

Allowances and charges at line level (E1EDP05)

Each E1EDP05 row is a condition (discount, surcharge, etc.):

  1. Filter by text: rows whose KOTXT is exactly Brutto or contains the substring Gross are skipped (those rows are treated as gross/total helpers, not separate allowances/charges for this mapping).
  2. For each remaining row, ALCKZ sets the direction: - → discount, + → charge.
  3. BETRG is the absolute amount of that condition. Each condition is recorded in full; summary discount and charge amounts used for some totals are overwritten on each matching row, so only the last non-filtered discount and the last non-filtered charge appear in those summaries. The full list of conditions remains available at line level.

No separate step derives “net before discount” from gross: subtotal and tax come from E1EDP26 / E1EDP04, while discount/charge are parallel amounts from E1EDP05.

Document totals (E1EDS01)

Summary segments use SUMID to choose the meaning of SUMME:

SUMID Role in UBL totals
005 Tax total (aligned with tax line totals)
010 Net subtotal (aligned with line net totals)
012 Payable / gross total and balance

Amounts are taken as strings from SUMME without further arithmetic.

Tax subtotals by rate (document level)

For document-level tax breakdown, the standard mapping aggregates per tax category and percent from the lines: it starts from each line’s net subtotal, adjusts the taxable base by subtracting line-level discount and adding line-level charge where applicable, and accumulates line tax amounts into the buckets. That drives the header-level tax breakdown in UBL—it is not a recomputation from SAP’s header tax segment alone.

Parties and endpoint IDs (E1EDKA1/PARVW)

Partners are read from E1EDKA1 by PARVW:

  • PARVW='RS'supplier / invoice issuercac:AccountingSupplierParty
  • PARVW='RE'buyer / customercac:AccountingCustomerParty
  • PARVW='WE'ship-to / deliverycac:Delivery/*
  • PARVW='ZX'supplier contact → supplier contact fields and supplier endpoint ID

A fixed set of IDoc fields is mapped from each selected E1EDKA1 instance. Some UBL address or contact elements (e.g. region sub-entity, a third address line, contact email) may be empty if your IDoc does not populate the corresponding segment fields or the mapping does not cover them.

Endpoint IDs are not taken from a separate SAP segment; they are derived from STRS2 with simple string rules:

  • Supplier endpoint ID: from the contact partner (PARVW='ZX') field STRS2.
  • If STRS2 contains : → split into schemeID:value (left → @schemeID, right → value).
  • If there is no : → no endpoint from this rule.
  • Buyer endpoint ID: from the buyer partner (PARVW='RE') field STRS2.
  • If STRS2 contains : → split into schemeID:value (same as supplier contact).
  • Else if STRS2 contains @ → the entire string is the endpoint value (no scheme parsed).

Header

Invoice Number
  • /ubl:Invoice/cbc:ID
  • /IDOC/E1EDK02[QUALF='009']/BELNR
The invoice number is stored in IDoc references under QUALF='009'.
Invoice Issue Date (Date Created)
  • /ubl:Invoice/cbc:IssueDate
  • /IDOC/E1EDK02[QUALF='009']/DATUM
Date conversion: IDoc YYYYMMDD → UBL YYYY-MM-DD.
Invoice Due Date
  • /ubl:Invoice/cbc:DueDate
  • /IDOC/E1EDK03[IDDAT='028']/DATUM
Date conversion: IDoc YYYYMMDD → UBL YYYY-MM-DD. Mapped only for IDDAT='028'.
Invoice Type Code
  • /ubl:Invoice/cbc:InvoiceTypeCode (or /ubl:CreditNote/cbc:CreditNoteTypeCode)
  • /IDOC/E1EDK01/BSART + optional /IDOC/E1EDK14[QUALF='015']/ORGID
Logic: if BSART='CRME' → UBL 384 (credit note). If BSART='INVO' and E1EDK14[QUALF='015']/ORGID ∈ {ZMA,ZMV} → 326, otherwise 380.
Currency Code
  • /ubl:Invoice/cbc:DocumentCurrencyCode
  • /IDOC/E1EDK01/CURCY
Currency is taken from CURCY.
Buyer Reference (Client Reference)
  • /ubl:Invoice/cbc:BuyerReference
  • /IDOC/E1EDKA1[PARVW='RE']/STRS2
If STRS2 contains : → take the part after :. If missing/empty → buyer reference is not mapped.
Invoice Terms / Note
  • /ubl:Invoice/cbc:Note
  • /IDOC/E1EDKT2/TDLINE
Only the first E1EDKT2 is taken from the IDoc. The note text may carry a standard processing prefix before the free text.
Invoice Payment ID / Payment Description
  • /ubl:Invoice/cbc:PaymentID
Not mapped from IDoc in the standard integration.
Accounting Cost (Invoice level)
  • /ubl:Invoice/cbc:AccountingCost
Not mapped from IDoc in the standard integration.
Invoice Period Start Date
  • /ubl:Invoice/cac:InvoicePeriod/cbc:StartDate
Header-level invoice period is not mapped from IDoc in the standard integration.
Invoice Period End Date
  • /ubl:Invoice/cac:InvoicePeriod/cbc:EndDate
Header-level invoice period is not mapped from IDoc in the standard integration.
Invoice Period Description Code (Tax point date code)
  • /ubl:Invoice/cac:InvoicePeriod/cbc:DescriptionCode
Not mapped from IDoc in the standard integration.
Tax Currency Code
  • /ubl:Invoice/cbc:TaxCurrencyCode
Not mapped from IDoc in the standard integration.
Tax Point Date
  • /ubl:Invoice/cbc:TaxPointDate
Not mapped from IDoc in the standard integration.
Payment Terms (Text)
  • /ubl:Invoice/cac:PaymentTerms/cbc:Note
  • /IDOC/E1EDK18[QUALF='005']/ZTERM_TXT
Mapped only when QUALF='005'.
Order Reference (Purchase Order)
  • /ubl:Invoice/cac:OrderReference/cbc:ID
  • /IDOC/E1EDK02[QUALF='001']/BELNR
IDoc refs: QUALF='001'.
Sales Order Reference
  • /ubl:Invoice/cac:OrderReference/cbc:SalesOrderID
  • /IDOC/E1EDK02[QUALF='002']/BELNR
IDoc refs: QUALF='002'.
Contract Reference
  • /ubl:Invoice/cac:ContractDocumentReference/cbc:ID
Not mapped from IDoc in the standard integration.
Project Reference
  • /ubl:Invoice/cac:ProjectReference/cbc:ID
Not mapped from IDoc in the standard integration.
Originator Reference (Award / OriginatorDocumentReference)
  • /ubl:Invoice/cac:OriginatorDocumentReference/cbc:ID
Not mapped from IDoc in the standard integration.
Despatch Advice Reference
  • /ubl:Invoice/cac:DespatchDocumentReference/cbc:ID
Not mapped from IDoc in the standard integration.
Receipt Advice Reference
  • /ubl:Invoice/cac:ReceiptDocumentReference/cbc:ID
Not mapped from IDoc in the standard integration.
Additional Document Reference: Object Reference (DocumentTypeCode=130)
  • /ubl:Invoice/cac:AdditionalDocumentReference/cbc:ID (+ cbc:DocumentTypeCode=130)
  • /IDOC/E1EDK02[QUALF='012']/BELNR
QUALF='012' supplies the referenced document number. In UBL this appears as cac:AdditionalDocumentReference with cbc:DocumentTypeCode=130 and identifier scheme DQ on cbc:ID.
Additional Document Reference: ID scheme
  • /ubl:Invoice/cac:AdditionalDocumentReference/cbc:ID/@schemeID
For QUALF='012', the identifier scheme in UBL is DQ (there is no separate scheme field in the IDoc for this reference).
Additional Document Reference: Document Description
  • /ubl:Invoice/cac:AdditionalDocumentReference/cbc:DocumentDescription
Not mapped from IDoc in the standard integration.
Additional Document Reference: External URI
  • /ubl:Invoice/cac:AdditionalDocumentReference/cac:Attachment/cac:ExternalReference/cbc:URI
Not mapped from IDoc in the standard integration.
Additional Document Reference: Embedded content (base64)
  • /ubl:Invoice/cac:AdditionalDocumentReference/cac:Attachment/cbc:EmbeddedDocumentBinaryObject
Not mapped from IDoc in the standard integration.
Preceding Invoice Reference (BillingReference / InvoiceDocumentReference)
  • /ubl:Invoice/cac:BillingReference/cac:InvoiceDocumentReference/cbc:ID
  • /IDOC/E1EDK02[QUALF='031']/BELNR
The preceding invoice number is taken from QUALF='031' / BELNR. The preceding invoice date is not mapped from the IDoc in the standard integration.

Parties mapping explanation

Supplier Name (RegistrationName)
  • /ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyLegalEntity/cbc:RegistrationName
  • /IDOC/E1EDKA1[PARVW='RS']/NAME1
Supplier (partner role PARVW='RS').
Supplier Company Legal Form / Description
  • /ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyLegalEntity/cbc:CompanyLegalForm
  • /IDOC/E1EDKA1[PARVW='RS']/NAME4
UBL legal form / description; mapped from NAME4 of the supplier partner.
Supplier Trade Name
  • /ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name
  • /IDOC/E1EDKA1[PARVW='RS']/NAME4
Also mapped from NAME4 when used as trade / second name; semantics depend on your SAP data.
Supplier Street
  • /ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:StreetName
  • /IDOC/E1EDKA1[PARVW='RS']/STRAS
Supplier. Street.
Supplier Additional Street
  • /ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:AdditionalStreetName
  • /IDOC/E1EDKA1[PARVW='RS']/STRS2
Supplier. In the IDoc, STRS2 is overloaded and can also carry codes using :; use it as an address field only if there is no : / by explicit agreement.
Supplier Address Line 3
  • /ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cac:AddressLine/cbc:Line
Not populated from a dedicated IDoc tag in the standard integration.
Supplier City
  • /ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:CityName
  • /IDOC/E1EDKA1[PARVW='RS']/ORT01
Supplier. City.
Supplier Postal Code
  • /ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:PostalZone
  • /IDOC/E1EDKA1[PARVW='RS']/PSTLZ
Supplier. Postal code.
Supplier Country Subentity
  • /ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:CountrySubentity
Not populated from IDoc in the standard integration.
Supplier Country Code
  • /ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cac:Country/cbc:IdentificationCode
  • /IDOC/E1EDKA1[PARVW='RS']/LAND1
Supplier. Country code.
Supplier Party Identifier (CompanyID)
  • /ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyLegalEntity/cbc:CompanyID
  • /IDOC/E1EDKA1[PARVW='RS']/PARTN
Supplier. In UBL this is typically a CompanyID/registration number.
Supplier Endpoint ID (Org PEPPOL ID)
  • /ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID (value + @schemeID)
  • /IDOC/E1EDKA1[PARVW='ZX']/STRS2
From the contact partner PARVW='ZX': if STRS2 contains : → left part → @schemeID, right part → value.
Supplier VAT ID
  • /ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID (for TaxScheme=VAT)
  • /IDOC/E1EDK01/EIGENUINR
In the IDoc, the supplier VAT ID is stored in E1EDK01/EIGENUINR.
Customer Name (RegistrationName)
  • /ubl:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyLegalEntity/cbc:RegistrationName
  • /IDOC/E1EDKA1[PARVW='RE']/NAME1
Buyer (partner role PARVW='RE').
Customer Trade Name
  • /ubl:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name
  • /IDOC/E1EDKA1[PARVW='RE']/NAME4
Buyer. Trade name / alternative name.
Customer Street
  • /ubl:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cbc:StreetName
  • /IDOC/E1EDKA1[PARVW='RE']/STRAS
Buyer. Street.
Customer City
  • /ubl:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cbc:CityName
  • /IDOC/E1EDKA1[PARVW='RE']/ORT01
Buyer. City.
Customer Postal Code
  • /ubl:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cbc:PostalZone
  • /IDOC/E1EDKA1[PARVW='RE']/PSTLZ
Buyer. Postal code.
Customer Country Code
  • /ubl:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cac:Country/cbc:IdentificationCode
  • /IDOC/E1EDKA1[PARVW='RE']/LAND1
Buyer. Country code.
Customer Party Identifier (CompanyID)
  • /ubl:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyLegalEntity/cbc:CompanyID
  • /IDOC/E1EDKA1[PARVW='RE']/PARTN
Buyer. In UBL this is typically a CompanyID/registration number.
Customer Endpoint ID
  • /ubl:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID (value + @schemeID)
  • /IDOC/E1EDKA1[PARVW='RE']/STRS2
Buyer STRS2: if it contains : → split into scheme and value; if it contains @ → whole string is the value (no scheme).
Customer VAT ID
  • /ubl:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID (for TaxScheme=VAT)
  • /IDOC/E1EDK01/KUNDEUINR
In the IDoc, the buyer VAT ID is stored in E1EDK01/KUNDEUINR.
Customer Contact Name
  • /ubl:Invoice/cac:AccountingCustomerParty/cac:Party/cac:Contact/cbc:Name
  • /IDOC/E1EDKA1[PARVW='RE']/TELF1
Mapped from TELF1 on the buyer partner; confirm with your SAP partner master whether this is contact name or phone.
Customer Contact Email
  • /ubl:Invoice/cac:AccountingCustomerParty/cac:Party/cac:Contact/cbc:ElectronicMail
Not populated from a dedicated IDoc tag in the standard integration.
Supplier Contact Name / Phone / Email
  • /ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cac:Contact/cbc:Name
  • /IDOC/E1EDKA1[PARVW='ZX']/NAME2
The supplier contact is read only if the PARVW='ZX' partner exists.
Supplier Contact Phone
  • /ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cac:Contact/cbc:Telephone
  • /IDOC/E1EDKA1[PARVW='ZX']/TELF1
Supplier contact phone.
Supplier Contact Email
  • /ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cac:Contact/cbc:ElectronicMail
  • /IDOC/E1EDKA1[PARVW='ZX']/NAME3
Email is taken from NAME3 on the PARVW='ZX' contact partner (common project convention).

Delivery mapping explanation

Delivery Location ID
  • /ubl:Invoice/cac:Delivery/cac:DeliveryLocation/cbc:ID (+ @schemeID)
  • /IDOC/E1EDKA1[PARVW='WE']/PARTN
Delivery party (PARVW='WE'): PARTN maps to the delivery location identifier value. @schemeID is not taken from the IDoc in the standard integration.
Delivery Street
  • /ubl:Invoice/cac:Delivery/cac:DeliveryLocation/cac:Address/cbc:StreetName
  • /IDOC/E1EDKA1[PARVW='WE']/STRAS
Delivery address. Street.
Delivery Additional Street
  • /ubl:Invoice/cac:Delivery/cac:DeliveryLocation/cac:Address/cbc:AdditionalStreetName
  • /IDOC/E1EDKA1[PARVW='WE']/NAME2
Mapped from NAME2 of the delivery partner.
Delivery Address Line 3
  • /ubl:Invoice/cac:Delivery/cac:DeliveryLocation/cac:Address/cac:AddressLine/cbc:Line
  • /IDOC/E1EDKA1[PARVW='WE']/NAME3
Mapped from NAME3 of the delivery partner.
Delivery City
  • /ubl:Invoice/cac:Delivery/cac:DeliveryLocation/cac:Address/cbc:CityName
  • /IDOC/E1EDKA1[PARVW='WE']/ORT01
Delivery address. City.
Delivery Postal Code
  • /ubl:Invoice/cac:Delivery/cac:DeliveryLocation/cac:Address/cbc:PostalZone
  • /IDOC/E1EDKA1[PARVW='WE']/PSTLZ
Delivery address. Postal code.
Delivery Country Subentity
  • /ubl:Invoice/cac:Delivery/cac:DeliveryLocation/cac:Address/cbc:CountrySubentity
Not populated from IDoc in the standard integration.
Delivery Country Code
  • /ubl:Invoice/cac:Delivery/cac:DeliveryLocation/cac:Address/cac:Country/cbc:IdentificationCode
  • /IDOC/E1EDKA1[PARVW='WE']/LAND1
Delivery address. Country code.
Delivery Party Name
  • /ubl:Invoice/cac:Delivery/cac:DeliveryParty/cac:PartyName/cbc:Name
  • /IDOC/E1EDKA1[PARVW='WE']/NAME1
Name of the delivery party/location.

Payment means mapping explanation

Payee Account IBAN
  • /ubl:Invoice/cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:ID
  • /IDOC/E1EDK28/ACNUM
One E1EDK28 → one PaymentMeans.
Payee Bank BIC
  • /ubl:Invoice/cac:PaymentMeans/cac:PayeeFinancialAccount/cac:FinancialInstitutionBranch/cbc:ID
  • /IDOC/E1EDK28/BRNUM
Payee bank BIC.

Invoice lines / items mapping explanation

Invoice Line ID / Position
  • /ubl:Invoice/cac:InvoiceLine/cbc:ID
  • /IDOC/E1EDP01/POSEX
Line position number.
Invoice Line Note
  • /ubl:Invoice/cac:InvoiceLine/cbc:Note
Not mapped from IDoc in the standard integration.
Invoiced Quantity
  • /ubl:Invoice/cac:InvoiceLine/cbc:InvoicedQuantity (+ @unitCode)
  • /IDOC/E1EDP01/MENGE (+ /IDOC/E1EDP01/MENEE)
Unit code from MENEE; optional unit-code mapping may be applied for target validation rules.
Base Quantity
  • /ubl:Invoice/cac:InvoiceLine/cac:Price/cbc:BaseQuantity (+ @unitCode)
Not mapped from IDoc in the standard integration.
Item Seller ID
  • /ubl:Invoice/cac:InvoiceLine/cac:Item/cac:SellersItemIdentification/cbc:ID
  • /IDOC/E1EDP01/E1EDP19[QUALF='002']/IDTNR
Mapped only for QUALF='002'.
Item Buyer ID
  • /ubl:Invoice/cac:InvoiceLine/cac:Item/cac:BuyersItemIdentification/cbc:ID
Not mapped from IDoc in the standard integration.
Item Name
  • /ubl:Invoice/cac:InvoiceLine/cac:Item/cbc:Name
  • /IDOC/E1EDP01/E1EDP19[QUALF='002']/KTEXT
Mapped only for QUALF='002'.
Item Standard ID
  • /ubl:Invoice/cac:InvoiceLine/cac:Item/cac:StandardItemIdentification/cbc:ID
  • /IDOC/E1EDP01/E1EDP19[QUALF='003']/IDTNR
Mapped only for QUALF='003'.
Item Standard ID Scheme
  • /ubl:Invoice/cac:InvoiceLine/cac:Item/cac:StandardItemIdentification/cbc:ID/@schemeID
Not mapped from IDoc in the standard integration (IDoc does not carry a scheme for this identifier).
Item Tax Percent
  • /ubl:Invoice/cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:Percent
  • /IDOC/E1EDP01/E1EDP04/MSATZ
In the IDoc this is stored in MSATZ.
Item Tax Amount (Line Tax Total)
  • /ubl:Invoice/cac:InvoiceLine/cac:TaxTotal/cbc:TaxAmount (conceptual)
  • /IDOC/E1EDP01/E1EDP04/MWSBT
Line tax amount; negative amounts are normalised (leading minus, SAP-style repeated - characters).
Item Tax Category Code
  • /ubl:Invoice/cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:ID
  • /IDOC/E1EDP01/E1EDP04/MWSKZ
Fixed mapping from SAP code: A0,A2→E, A3,19→S, A6,B2→Z, A9,B3→AE, otherwise Z.
Item Price Amount
  • /ubl:Invoice/cac:InvoiceLine/cac:Price/cbc:PriceAmount
  • /IDOC/E1EDP01/E1EDP26[QUALF='001']/BETRG
Unit price: minus signs are stripped so the price is always positive.
Gross Price / AllowanceCharge on Price
  • /ubl:Invoice/cac:InvoiceLine/cac:Price/cac:AllowanceCharge/*
Not mapped from IDoc in the standard integration.
Line Extension Amount (Item Subtotal)
  • /ubl:Invoice/cac:InvoiceLine/cbc:LineExtensionAmount
  • /IDOC/E1EDP01/E1EDP26[QUALF='002']/BETRG
Line net amount; same negative-amount normalisation as for tax amounts.
Line Allowance/Charge (Discount/Charge)
  • /ubl:Invoice/cac:InvoiceLine/cac:AllowanceCharge (amount/sign/reason)
  • /IDOC/E1EDP01/E1EDP05
In the IDoc: ALCKZ='-' → discount, ALCKZ='+' → charge. Mapped only if KOTXT != 'Brutto' and does not contain Gross.
Item Description (Text lines)
  • /ubl:Invoice/cac:InvoiceLine/cac:Item/cbc:Description
  • /IDOC/E1EDP01/E1EDPT1[TDID='0001']/E1EDPT2/TDLINE
Concatenated into one string with \n line breaks between TDLINE values.
Order Line Reference (LineID)
  • /ubl:Invoice/cac:InvoiceLine/cac:OrderLineReference/cbc:LineID
Not mapped from IDoc in the standard integration.
Item Document Reference
  • /ubl:Invoice/cac:InvoiceLine/cac:DocumentReference/cbc:ID (+ @schemeID)
Not mapped from IDoc in the standard integration.
Item Document Reference Type Code
  • /ubl:Invoice/cac:InvoiceLine/cac:DocumentReference/cbc:DocumentTypeCode
Not mapped from IDoc in the standard integration.
Item Accounting Cost
  • /ubl:Invoice/cac:InvoiceLine/cbc:AccountingCost
Not mapped from IDoc in the standard integration.
Item Period Start Date
  • /ubl:Invoice/cac:InvoiceLine/cac:InvoicePeriod/cbc:StartDate
  • /IDOC/E1EDP01/E1EDPT1[TDID='Z007']/E1EDPT2/TDLINE
Mapped only if a line like Leistungsdatum: dd.mm.yyyy is present (conversion dd.mm.yyyyYYYY-MM-DD).
Item Period End Date
  • /ubl:Invoice/cac:InvoiceLine/cac:InvoicePeriod/cbc:EndDate
  • /IDOC/E1EDP01/E1EDPT1[TDID='Z007']/E1EDPT2/TDLINE
Mapped only if a line like Leistungsdatum: dd.mm.yyyy is present (conversion dd.mm.yyyyYYYY-MM-DD).
Item Origin Country Code
  • /ubl:Invoice/cac:InvoiceLine/cac:Item/cac:OriginCountry/cbc:IdentificationCode
Not mapped from IDoc in the standard integration.
Item Commodity Classification
  • /ubl:Invoice/cac:InvoiceLine/cac:Item/cac:CommodityClassification/cbc:ItemClassificationCode (+ @listID, @listVersionID)
Not mapped from IDoc in the standard integration.
Item Properties (Free-form)
  • /ubl:Invoice/cac:InvoiceLine/cac:Item/cac:AdditionalItemProperty (Name/Value)
  • /IDOC/E1EDP01/E1EDPT1[TDID='Z007']/E1EDPT2/TDLINE
Parsed from text lines using patterns: Position: X → groups sublines; Lieferschein: X → property (Name=Lieferschein); Reparaturvorgang: X → property; Gerätebezeichnung: X → property; Leistungsdatum: dd.mm.yyyy → period start/end (conversion dd.mm.yyyyYYYY-MM-DD).
Sub Invoice Line (Aggregated)
  • /ubl:Invoice/cac:InvoiceLine/cac:SubInvoiceLine/*
UBL sublines are built from the Position: X property line (TDID Z007); there is no direct IDoc segment for sublines.

Totals mapping explanation

Invoice Tax Total
  • /ubl:Invoice/cac:TaxTotal/cbc:TaxAmount
  • /IDOC/E1EDS01[SUMID='005']/SUMME
From SUMME where SUMID='005' (tax total; also aligned with summed line taxes).
Invoice Subtotal (Tax Exclusive Amount)
  • /ubl:Invoice/cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount
  • /IDOC/E1EDS01[SUMID='010']/SUMME
From SUMME where SUMID='010' (net subtotal).
Invoice Total (Tax Inclusive Amount) / Balance
  • /ubl:Invoice/cac:LegalMonetaryTotal/cbc:TaxInclusiveAmount and /ubl:Invoice/cac:LegalMonetaryTotal/cbc:PayableAmount
  • /IDOC/E1EDS01[SUMID='012']/SUMME
From SUMME where SUMID='012' (gross / payable).
Allowance Total Amount
  • /ubl:Invoice/cac:LegalMonetaryTotal/cbc:AllowanceTotalAmount
Not mapped from IDoc in the standard integration. Document totals use only SUMID values 005, 010, and 012.
Charge Total Amount
  • /ubl:Invoice/cac:LegalMonetaryTotal/cbc:ChargeTotalAmount
Not mapped from IDoc in the standard integration.
Prepaid Amount
  • /ubl:Invoice/cac:LegalMonetaryTotal/cbc:PrepaidAmount
Not mapped from IDoc in the standard integration.
Payable Rounding Amount
  • /ubl:Invoice/cac:LegalMonetaryTotal/cbc:PayableRoundingAmount
Not mapped from IDoc in the standard integration.