<!-- md-source: 26e7a05c9b4b FactoorSharpWeb/wwwroot/de/Home/ZugferdDotNet.md -->

# ZUGFeRD .NET and ZUGFeRD C# – the library for .NET

> Markdown version of <https://www.factoorsharp.de/en/Home/ZugferdDotNet> for AI agents.
> Languages: [Deutsch](https://www.factoorsharp.de/de/Home/ZugferdDotNet.md) ·
> [English](https://www.factoorsharp.de/en/Home/ZugferdDotNet.md) ·
> [Français](https://www.factoorsharp.de/fr/Home/ZugferdDotNet.md)

Create, read, validate and analyze ZUGFeRD, Factur-X and XRechnung documents in C# and
VB.NET with a library built for real-world .NET projects.

FactoorSharp is the official successor to ZUGFeRD-csharp and supports XML, PDF/A-3,
CII, UBL, EN 16931, XRechnung, and modern coding workflows with Agent Skills.

- 1M+ downloads
- 10+ years of hands-on experience
- C# and VB.NET ready to go

## Minimal example

```csharp
FacturXInvoice.SetLicense("YOUR-LICENSE-KEY");

var invoice = FacturXInvoice.CreateInvoice(
    "RE-2025-0042",
    new DateTime(2025, 9, 3),
    CurrencyCodes.EUR);

invoice.SetSeller("BikeTech GmbH", "10115", "Berlin", "Radweg 12", CountryCodes.DE);
invoice.SetBuyer("City Bikes AG", "20457", "Hamburg", "Hafenstraße 45", CountryCodes.DE);

invoice.AddTradeLineItem(
    name: "Trekking bike",
    netUnitPrice: 799.0m,
    unitCode: QuantityCodes.C62,
    billedQuantity: 1m,
    taxType: TaxTypes.VAT,
    categoryCode: TaxCategoryCodes.S,
    taxPercent: 19m);

invoice.Save("zugferd.xml", ZUGFeRDVersion.Version25, Profile.Extended);
```

```vbnet
FacturXInvoice.SetLicense("YOUR-LICENSE-KEY")

Dim invoice = FacturXInvoice.CreateInvoice(
    "RE-2025-0042",
    New DateTime(2025, 9, 3),
    CurrencyCodes.EUR)

invoice.SetSeller("BikeTech GmbH", "10115", "Berlin", "Radweg 12", CountryCodes.DE)
invoice.SetBuyer("City Bikes AG", "20457", "Hamburg", "Hafenstraße 45", CountryCodes.DE)

invoice.AddTradeLineItem(
    name:="Trekking bike",
    netUnitPrice:=799.0D,
    unitCode:=QuantityCodes.C62,
    billedQuantity:=1D,
    taxType:=TaxTypes.VAT,
    categoryCode:=TaxCategoryCodes.S,
    taxPercent:=19D)

invoice.Save("zugferd.xml", ZUGFeRDVersion.Version25, Profile.Extended)
```

## What the library covers

### ZUGFeRD for C# and VB.NET

A clear API for creating, importing and processing invoices in classic .NET
applications, web apps and background services.

### Every format in one library

ZUGFeRD 1.x through 2.5, Factur-X, XRechnung, CII, UBL and PDF/A-3 in one consistent
.NET SDK.

### Validation and analysis

Check XML and PDF files for profile, structure, embedding and technical issues –
directly from your own application.

### Productive from day one

Documentation, sample code and ready-made Agent Skills make it easy to integrate into
new and existing systems.

## Why developers searching for "ZUGFeRD .NET" end up at FactoorSharp

Most teams aren't looking for marketing copy – they want a solid answer to a concrete
technical question: *How do I generate ZUGFeRD or XRechnung in C#?*

- Standards-compliant export of ZUGFeRD, Factur-X and XRechnung
- Import and analysis of existing XML and PDF/A-3 invoices
- Validation against current standards with clear results
- Support for complex scenarios such as reverse charge, attachments, product
  characteristics and sub-line items

## Validation that goes beyond the surface

With FactoorSharp you don't just check whether a file is "readable somehow". XML, the
PDF container, and the correct embedding of the invoice XML in PDF/A-3 can all be
assessed separately. That's especially useful for integrations, quality assurance and
support cases involving real customer documents.

```csharp
if (await FacturXValidator.IsAvailableAsync())
{
    var result = await FacturXValidator.ValidateAsync("zugferd.xml");
    Console.WriteLine($"Valid: {result.SummaryStatus}");
}
```

```vbnet
If Await FacturXValidator.IsAvailableAsync() Then
    Dim result = Await FacturXValidator.ValidateAsync("zugferd.xml")
    Console.WriteLine($"Valid: {result.SummaryStatus}")
End If
```

## PDF/A-3 and Factur-X without a bolt-on workaround

Whether you want to create a classic PDF invoice with embedded XML or analyze existing
PDF invoices, FactoorSharp brings the right functionality with it out of the box. That
cuts integration effort and avoids the friction of stitching together separate XML and
PDF tools.

```csharp
await FacturXInvoicePdfProcessor.SaveToPdfAsync(
    targetPdfPath: "invoice.pdf",
    version: ZUGFeRDVersion.Version25,
    profile: Profile.Extended,
    format: ZUGFeRDFormats.CII,
    pdfSourcePath: "invoice-original.pdf",
    descriptor: invoice);
```

```vbnet
Await FacturXInvoicePdfProcessor.SaveToPdfAsync(
    targetPdfPath:="invoice.pdf",
    version:=ZUGFeRDVersion.Version25,
    profile:=Profile.Extended,
    format:=ZUGFeRDFormats.CII,
    pdfSourcePath:="invoice-original.pdf",
    descriptor:=invoice)
```

## Use cases and audiences

**Typical use cases**

- Rolling out e-invoicing in existing .NET systems
- Connecting ERP, shop and SaaS platforms
- Migrating older ZUGFeRD-csharp implementations
- Automated processing of incoming XML and PDF invoices

**Well suited for**

- ERP and inventory management systems
- E-commerce and SaaS platforms
- Invoicing portals and middleware
- Custom .NET business applications

**Key advantages**

- A clean .NET API instead of custom XML plumbing
- Validation, PDF processing and analysis from a single source
- Documentation and support for real implementation questions
- Fast time to production with predictable integration effort

## Frequently asked questions

**Is FactoorSharp suitable for ZUGFeRD in C#?**
Yes. FactoorSharp is built specifically for .NET and supports C#, VB.NET and other
.NET languages for export, import, PDF processing and validation.

**Does the library also support XRechnung and Factur-X?**
Yes. Alongside ZUGFeRD, it also supports XRechnung, Factur-X and various profiles and
output formats such as CII and UBL.

**Is there help available for integrating into existing .NET projects?**
Yes. There's a Getting Started page, extensive support documentation, validation
tools, and an Agent Skill for Claude, Codex and similar coding agents.

**Is FactoorSharp the successor to ZUGFeRD-csharp?**
Yes. FactoorSharp is the official successor to ZUGFeRD-csharp, further developed for
current standards and modern .NET scenarios.

## Related pages

- [Getting Started](https://www.factoorsharp.de/en/Home/GettingStarted.md) –
  installation and your first invoice step by step
- [Product overview](https://www.factoorsharp.de/en/Home/Index.md) – features, pricing
  and licenses
- [Sign up](https://www.factoorsharp.de/en/Account/SignUp) – 30-day free trial
