Germany: Required Elements

Germany requires specific elements for a valid document.

The following elements are specifically required for Germany:

Extensions / UBL Extensions

Extensions are required for all countries as explained in more detail in the Extensions topic.

Invoice

The Invoice element requires the following sub-elements. The sub-elements also have required sub-elements of their own:

ElementDescription
Invoice/CustomizationIDYou must specify a CustomizationID.
Invoice/ProfileIDYou must specify a ProfileID.
Invoice/IDYou must specify an ID for the document,
Invoice/IssueDateYou must specify an IssueDate for the document.
Invoice/InvoiceTypeCodeGermany requires specific Invoice Type Codes as described in the Germany: Invoice Types for German Suppliers (Conditional)
Invoice/AccountingCustomerPartyYou must specify the Customer's details in the AccountingCustomerParty element. See Germany: Buyer Information (Mandatory)
Invoice/AccountingSupplierPartyYou must specify the Supplier's details in the AccountingSupplierParty element. See Germany: Supplier Information (Mandatory)
Invoice/TaxTotalYou must specify the total tax in the TaxTotal element.
Invoice/LegalMonetaryTotalYou must specify the legal total in the LegalMonetaryTotal element.
Invoice/InvoiceLineYou must specify the document's line items in the InvoiceLine element.

InvoiceLine

The following sub-elements of the InvoiceLine element are required:

ElementDescription
InvoiceLine/CustomizationIDYou must specify urn:vertexinc:verbl:billing:1.0 as the value for the CustomizationID element.
InvoiceLine/ProfileIDYou must specify urn:vertexinc:verbl:billing:1.0 as the value for the ProfileID element.
InvoiceLine/IDYou must specify an ID for the line.
InvoiceLine/IssueDateYou must specify the date the line was issued in the IssueDate element.
InvoiceLine/[InvoiceTypeCodeYou must use specific Invoice Type Codes as described in the Malaysia: Invoice Type Code (Mandatory) topic.
InvoiceLine/DocumentCurrencyCodeYou must specify a currency for the line item in the DocumentCurrencyCode element.

OrderReference

The following sub-element of the OrderReference element is mandatory:

ElementDescription
OrderReference/IDYou must specify the order ID using the ID element.

IDs

The following elements, if used, require an ID to be present:

DocumentTypeCode

If the DocumentTypeCode sub-element is 130, then an ID is mandatory.

You are also required to specify the following attributes when the /Attachment/EmbeddedDocumentBinaryObject is present:

AttributeDescription
@filenameSpecify a name for the file.
@mimecodeSpecify a MIME code.

If the Attachment/ExternalReference element is present, you must specify the following sub-element:

ElementDescription
Attachment/ExternalReference/URISpecify the URI of the reference's location.

AcccountSupplierParty

The following sub-element is required for the AccountingSupplierParty element:

ElementDescription
PartyYou must use the Party element to define the Supplier's contact information.
Party/EndpointIDAn EndpointID is required. The @Scheme attribute is also required.
Party/PostalAddressThe Supplier's postal address is required.
If PartyTaxScheme/ID = 'VAT' is presentThe LegalEntity element is required.
If PartyTaxScheme/ID = 'VAT' is presentThe CompanyID and TaxScheme elements are required.
If Party/LegalPartyEntity is presentThe RegistrationName element is required.
If the Party/LegalPartyEntity/RegistrationName/CompanyID element is presentThe @schemeID attribute is required.
PartyTaxScheme/CompanyIDIf you want to facilitate automatic detection of the Supplier by the Buyer, then you need to specify the CompanyID element.
if PartyIdentification[ID/@schemeID != 'SEPA'] is presentYou must specify an ID.
Party/PostalAddress/CountryYou must specify the Supplier's Country's code. See
If PostalAddress/AddressLine is presentYou must specify a single Line.

AccountCustomerParty

The AccountingCustomerParty element requires the following sub-elements:

ElementDescription
PartyYou must use the Party element to define the Customer's contact information.
Party/EndpointIDAn Endpoint ID is required. The @Scheme attribute is also required.
Party/PostalAddressThe Customer's postal address is required.
If the PartyTaxScheme is presentThe LegalEntity element is required.
Party/PostalAddress/CountryYou must specify the Customer's Country's code. See
If PostalAddress/AddressLine is presentYou must specify a single Line.
If PartyTaxScheme is presentYou must specify the CompanyID and TaxScheme elements,
If PartyTaxScheme/TaxScheme is presentYou must specify an ID and attribute value for the Tax Scheme,
if Party/PartyLegalEntity is presentThe RegistrationName elements is required.
If Party/PartyLegalEntity/CompanyID is presentThe CompanyID element also requires an attribute value.

PayeeParty

The PayeeParty element requires the following sub-elements:

ElementDescription
PayeeParty/PartyNameYou must specify a Party Name.
If the PayeeParty/PartyIdentification element is presentThe ID element is required.
If the PayeeParty/PartyIdentification/ID is presentThe @schemeID attribute is required.
If the PayeeParty/PartyLegalEntity element is presentThe CompanyID element is required. The @schemeID attribute is also required.

TaxRepresentativeParty

The TaxRepresentativeParty element requires the following sub-elements:

ElementDescription
TaxRepresentativeParty/PartyNameYou must specify a Party Name.
TaxRepresentativeParty/PostalAddressYou must specify a Postal Address.
TaxRepresentativeParty/PartyTaxSchemeYou must specify a Tax Scheme. See Tax Schemes.
TaxRepresentativeParty/PostalAddress/CountryYou must specify a country.
If PartyTaxScheme is presentYou must specify the CompanyID and TaxScheme.
If PartyTaxScheme/TaxScheme is presentYou must specify an ID and attribute value for the Tax Scheme.

Delivery

The Delivery element requires the following sub-elements:

ElementDescription
Delivery/DeliveryLocation/Address/CountryYou must specify a country.
If Delivery/DeliveryLocation/Address/AddressLine is presentYou must specify a Line.
If Delivery/DeliveryParty is presentThe PartyName element is required.
If Delivery/DeliveryParty/PartyTaxScheme is presentYou must specify the CompanyID and TaxScheme.

PaymentMeans

The PaymentMeans element requires the following sub-elements:

ElementDescription
PaymentMeans/PaymentMeansCodeYou must specify a PaymentMeansCode. See Germany: Payment Means (Payment Instructions) (Mandatory)
If the PaymentMeans/CardAccount element is present.The PrimaryAccountNumberID and NetworkID elements are required. See Germany: Payment Card (Conditional)
If PaymentMeans/PayeeFinancialAccount is present.The ID element is required.
If PaymentMeans/PayeeFinancialAccount/FinancialInstitutionBranch is present.The ID element is required.
If /PayeeFinancialAccount/FinancialInstitutionBranch/Address/AddressLine is present.The Line element is required.
If PaymentMeans/PaymentMandate/PayerFinancialAccount is presentThe ID element is required.

PaymentTerms

The PaymentTerms element requires the following sub-element:

ElementDescription
If PaymentTerms/cbc:Amount is presentThe @CurrencyID attribute is required.

PrepaidPayment

The PrepaidPayments element requires the following sub-element:

ElementDescription
If PrepaidPayment/cbc:PaidAmount is presentThe @CurrencyID attribute is required.

AllowanceCharge

The AllowanceCharge element requires the following sub-elements:

ElementDescription
AllowanceCharge[cbc:ChargeIndicator = true|false()]You must specify whether the charge is true or false.
AllowanceCharge[cbc:ChargeIndicator = true|false()]/AmountYou must specify an amount for the charge. The @currencyID attribute is also required.
AllowanceCharge[cbc:ChargeIndicator = true|false()]/AllowanceChargeReasonCodeYou must use an UNCL 5189 code to specify a reason for the allowance.
If AllowanceCharge[ChargeIndicator = true|false()]/TaxCategory is presentThe ID element is required to specify the Tax Category.
AllowanceCharge[ChargeIndicator = true|false()]/TaxCategory/TaxSchemeYou must specify a Tax Scheme. See Tax Schemes.
If AllowanceCharge[ChargeIndicator = true|false()]/TaxCategory/TaxScheme is presentThe ID element is required.

TaxTotal

The TaxTotal element requires the following sub-elements:

ElementDescription
TaxAmount/AmountYou must specify an amount. The @currencyID attribute is also required.
TaxAmount/TaxSubtotalAt lease one of this element is required.
TaxAmount/TaxSubtotal/TaxableAmountYou must specify a taxable amount for the subtotal. The @currencyID attribute is also required.
TaxAmount/TaxSubtotal/TaxAmountYou must specify a tax amount for the subtotal. The @currencyID attribute is also required.
TaxAmount/TaxSubtotal/TaxCategoryYou must specify a Tax Category for the subtotal.
TaxAmount/TaxSubtotal/TaxCategory/IDYou must specify an ID for the Tax Category. See Germany: VAT Category Code (Mandatory)
TaxAmount/TaxSubtotal/TaxCategory/TaxSchemeYou must specify a Tax Scheme for the Tax Category.
TaxAmount/TaxSubtotal/TaxCategory/TaxScheme/IDYou must specify an ID for the Tax Scheme.

LegalMonetaryTotal

The LegalMonetaryTotal element requires the following sub-elements:

ElementDescription
LegalMonetaryTotal/LineExtensionAmountYou must specify an amount for the line extension. The @currencyID attribute is also required.
LegalMonetaryTotal/TaxExclusiveAmountYou must specify the amount excluding tax. The @currencyID attribute is also required.
LegalMonetaryTotal/TaxInclusiveAmountYou must specify the amount including tax. The @currencyID attribute is also required.
LegalMonetaryTotal/PayableAmountYou must specify the amount payable. The @currencyID attribute is also required.