ZUGFeRD FileMaker Add-on in Detail
Step-by-step guide with screenshots and technical explanations
1. Help & Preferences - System Configuration

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

Seller DataYour Company Information
🏢 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

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

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

Line ItemsProducts and Services in Detail
🔢 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

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

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