ZUGFeRD FileMaker Add-on in Detail

Step-by-step guide with screenshots and technical explanations

1. Help & Preferences - System Configuration

ZUGFeRD Help & Preferences Screenshot

ConfigurationSetup System URLs and PHP Endpoints

🔢 invoiceNumber - Invoice Number

XML Path: ram:IncludedSupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:IssuerAssignedID

Format: String, unique, e.g. INV-2025-001

Important: Must be unique across the entire system

📅 invoiceDate - Invoice Date

XML Path: ram:HeaderExchangedDocument/ram:IssueDateTime/udt:DateTimeString[@format="102"]

Format: YYYY-MM-DD (converted to YYYYMMDD)

Example: 2025-08-01

💰 invoiceCurrencyCode - Currency

XML Path: ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode

Format: ISO-4217 (EUR, USD, CHF)

📋 invoiceTypeCode - Invoice Type

Values:

  • 380 = Invoice (Standard)
  • 381 = Credit Note
⏰ dueDate - Payment Due Date

XML Path: ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime

Format: YYYY-MM-DD

📄 paymentTerms - Payment Terms

Examples: "14 days net", "2% discount until 2025-08-05"

🏢 kunden_nr / lieferschein_nr

Optional: Internal references for better traceability

2. Seller - Vendor/Service Provider

ZUGFeRD Seller Screenshot

Seller DataYour Company Information

<ram:SellerTradeParty> <ram:Name>Your Company Name</ram:Name> <ram:PostalTradeAddress> <ram:StreetName>Sample Street 123</ram:StreetName> <ram:PostcodeCode>12345</ram:PostcodeCode> <ram:CityName>Sample City</ram:CityName> <ram:CountryID>DE</ram:CountryID> </ram:PostalTradeAddress> <ram:SpecifiedTaxRegistration> <ram:ID schemeID="VA">DE999888777</ram:ID> </ram:SpecifiedTaxRegistration> </ram:SellerTradeParty>
🏢 sellerName - Company Name

Full company name as per legal records

🏠 Address Data
  • sellerStreet: Street + House number
  • sellerPostalCode: ZIP/Postal code
  • sellerCity: City
  • sellerCountryCode: ISO-3166-1 (DE, AT, CH)
🆔 sellerTaxID - VAT ID

Format: DE999888777 (no spaces)

SchemeID: "VA" for VAT ID

🔢 sellerAssignedID

Internal seller ID for your own reference

3. Buyer - Customer/Invoice Recipient

ZUGFeRD Buyer Screenshot

Customer DataInvoice Recipient Information

Important Note

For B2C customers, VAT ID is often empty. For intra-community deliveries (B2B EU), it's important for correct tax treatment.

👤 buyerName - Customer Name

Full name or company name of the customer

🏠 Customer Address

Same structure as seller address:

  • buyerStreet
  • buyerPostalCode
  • buyerCity
  • buyerCountryCode (ISO-3166-1)
🆔 buyerTaxID - Customer VAT ID

B2B: Important for EU deliveries

B2C: Usually empty

🔢 buyerID / kunden_nr

Your internal customer number

Benefit: Automatic matching at recipient

4. Finance - Payment/Banking Information

ZUGFeRD Finance Screenshot

Payment DataBanking Details and Payment Methods

💳 paymentMeansCode - Payment Method

Common Codes (UN/CEFACT 4461):

  • 58 = SEPA Credit Transfer (recommended)
  • 30 = Credit Transfer (general)
  • 48 = Direct Debit
  • ZZZ = Other
🏦 payeeFinancialInstitution

Bank name (optional, but user-friendly)

🏧 payeeIBAN - IBAN

Format: DE02120300000000202051

Important: No spaces

🔗 payeeBIC - BIC

SEPA Domestic: Optional

International: Recommended

📝 paymentReference

Payment Reference: At least invoice number

Structured: ISO-RF-Credit-Transfer possible

5. Items - Line Item Data

ZUGFeRD Items Screenshot

Line ItemsProducts and Services in Detail

<ram:IncludedSupplyChainTradeLineItem> <ram:AssociatedDocumentLineDocument> <ram:LineID>1</ram:LineID> </ram:AssociatedDocumentLineDocument> <ram:SpecifiedTradeProduct> <ram:SellerAssignedID>SKU-W-001</ram:SellerAssignedID> <ram:Name>Heating System Maintenance</ram:Name> </ram:SpecifiedTradeProduct> <ram:SpecifiedLineTradeDelivery> <ram:BilledQuantity unitCode="HUR">2</ram:BilledQuantity> </ram:SpecifiedLineTradeDelivery> </ram:IncludedSupplyChainTradeLineItem>
🔢 positionNumber - Line Number

Numeric as string (1, 2, 3...)

📦 name - Product Description

Short, concise product description

🏷️ sellerAssignedID - SKU

Example: SKU-A123, ART-001

📊 quantity - Quantity

Format: Decimal with dot (3, 3.5)

📏 unitCode - Unit

UN/ECE Rec 20 Codes:

  • C62 = Piece
  • HUR = Hour
  • KGM = Kilogram
  • LTR = Liter
💰 priceNet - Unit Price

Net price per unit (excluding VAT)

📈 taxRateItems - VAT Rate

Tax rate per position (19, 7, 0)

6. Invoice - Totals & Tax Blocks

ZUGFeRD Invoice Screenshot

CalculationsTotals and Tax Breakdown

Calculation Logic

Validation Formula: totalNetAmount + totalTaxAmount = totalGrossAmount

Rounding: Two decimal places at all levels

💰 totalNetAmount - Total Net

Calculation: Sum of all line net amounts

XML: ram:LineTotalAmount

📊 totalTaxAmount - Total Tax

Calculation: Sum of all tax amounts

XML: ram:TaxTotalAmount

💯 totalGrossAmount - Total Gross

Calculation: Net + Tax

XML: ram:GrandTotalAmount

📈 Tax Blocks per Rate

taxRate: Tax rate (19, 7)

taxCategoryCode:

  • S = Standard (Domestic)
  • Z = 0% (Zero rated)
  • E = Exempt
  • AE = Reverse Charge
🔢 Per Tax Block

taxableAmount: Tax base

taxAmount: Calculated tax

7. Items - Line Item Data

ZUGFeRD Final Screenshot

Line ItemsProducts and Services in Detail

🌐 System URLs

POST Endpoint: mc_import_post_data.php

XML Generator: mc_create_ubl_xml.php

Upload Paths: Configurable directories

📁 File Management
  • PDF Upload Directory
  • XML Export Directory
  • Combined ZUGFeRD PDF Output
✅ Validation

Check Mandatory Fields:

  • Invoice Number
  • Invoice Date
  • Seller/Buyer Data
  • At least one line item
  • Correct totals
🔄 Automation

FileMaker → PHP → ZUGFeRD → PDF

Fully automated workflow without manual intervention

Best Practices & Tips

🎯 Data Quality

  • Unique IDs: Invoice numbers system-wide unique
  • Codes not Text: Always use UN/ECE, ISO codes
  • Decimal Separator: Use dot, never comma
  • Date Format: YYYY-MM-DD standardized

⚡ Performance

  • Batch Processing: Multiple invoices in parallel
  • Caching: Cache master data
  • Validation: Before export, not during
  • Error Handling: Robust error logs

AI Integration & Automation

🤖 ChatGPT + MCP

Automatic field completion through AI recognition of invoice contents

🔄 n8n.io Workflows

Automatic export to accounting systems after ZUGFeRD creation

☁️ Cloud Synchronization

Real-time sync with AWS, Google Cloud, Azure for seamless integration

🚀 Ready for ZUGFeRD in FileMaker?

Implement standards-compliant e-invoices with our proven add-on