<!-- md-source: 2745de958521 FactoorSharpWeb/wwwroot/de/Home/Index.md -->

# FactoorSharp – ZUGFeRD, XRechnung, Peppol and EN 16931 for .NET

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

FactoorSharp is a commercial .NET SDK for creating, reading, embedding into PDF/A-3
and validating electronic invoices to ZUGFeRD, Factur-X, XRechnung, Peppol BIS
Billing 3.0 and EN 16931. Usable from C#, Visual Basic .NET and every other .NET
language.

FactoorSharp is the official successor to ZUGFeRD-csharp and has already been
downloaded more than 1 million times. Behind the SDK are more than 10 years of
hands-on experience with ZUGFeRD, XRechnung and EN 16931.

## At a glance

| | |
|---|---|
| Target platforms | .NET 6+, .NET Framework 4.6, .NET Framework 4.8 |
| Languages | C#, VB.NET, every .NET language |
| Formats | ZUGFeRD 1.x–2.5, Factur-X, XRechnung, Peppol BIS Billing 3.0, EN 16931, CII, UBL, PDF/A-3 |
| Main package | `FactoorSharp.FacturX` |
| PDF embedding | `FactoorSharp.FacturX.PDF` |
| Validation | `FactoorSharp.FacturX.Validator` |
| Trial license | 30 days, full feature set, no payment details |
| Predecessor | ZUGFeRD-csharp (migration: see Getting Started) |

## Features

### Integration

A .NET SDK that drops straight into your project, with clear models. Works with C#,
Visual Basic and every other .NET language. A ready-made Agent Skill lets coding
agents such as Claude Code or OpenAI Codex take on much of the implementation work.

### Compliance

Electronic invoicing in line with the German Wachstumschancengesetz (Growth
Opportunities Act). Create and process EU-compliant invoices to EN 16931 – in both CII
and UBL format. Generate compliant PDF/A-3 invoices. Peppol BIS Billing 3.0 is
supported as a CIUS on top of EN 16931 – including the specification identifier
(BT-24) and the electronic addresses (BT-34 / BT-49).

### PDF and XML analysis

Inspect ZUGFeRD XML and PDF/A-3 documents for structure, profile, embedded invoice
data and the usual sources of error.

### Validation

Checks against ZUGFeRD, XRechnung and Factur-X with clear, actionable messages. Also
validates FatturaPA invoices (Italy), Facturae invoices (Spain) and ebInterface
invoices (Austria). The standard ZUGFeRD rules are evaluated entirely offline;
extended online validation uses Mustang, VeraPDF and Valitool.

## Code examples

### ZUGFeRD and XRechnung export

Create electronic invoices straight from your .NET application in ZUGFeRD or
XRechnung format – standards-compliant, all versions, all profiles.

```csharp
var invoice = FacturXInvoice.CreateInvoice("Invoice-01",
    new DateTime(2025,09,03),
    CurrencyCodes.EUR)
        .SetSeller("BikeTech GmbH", "10115", "Berlin", ...)
        .SetBuyer("City Bikes AG", "20457", "Hamburg", ...);
invoice.AddTradeLineItem(name: "Trekking bike",
    netUnitPrice: 799.0m,
    unitCode: QuantityCodes.C62,
    billedQuantity: 1);

invoice.Save("factur-x.xml",
    version: ZUGFeRDVersion.Version25,
    profile: Profile.Extended);
```

```vbnet
Dim invoice = FacturXInvoice.CreateInvoice("Invoice-01",
    New DateTime(2025, 9, 3),
    CurrencyCodes.EUR) _
        .SetSeller("BikeTech GmbH", "10115", "Berlin", ...) _
        .SetBuyer("City Bikes AG", "20457", "Hamburg", ...)

invoice.AddTradeLineItem(name:="Trekking bike",
    netUnitPrice:=799.0D,
    unitCode:=QuantityCodes.C62,
    billedQuantity:=1)

invoice.Save("factur-x.xml",
    version:=ZUGFeRDVersion.Version25,
    profile:=Profile.Extended)
```

### ZUGFeRD and XRechnung import

Reads electronic invoices. Supports every ZUGFeRD and XRechnung version and profile,
so you can concentrate purely on your business logic.

```csharp
var invoice = FacturXInvoice.Load("factur-x.xml");
if (invoice.Buyer.Postcode == "10115")
{
    // further processing
}
```

```vbnet
Dim invoice = FacturXInvoice.Load("factur-x.xml")
If invoice.Buyer.Postcode = "10115" Then
    ' further processing
End If
```

### Peppol BIS Billing 3.0

XRechnung and Peppol BIS Billing 3.0 are both CIUS on top of EN 16931 and share the
same UBL structure. The specification identifier (BT-24) turns the same invoice model
into either an XRechnung or a Peppol invoice – including the electronic addresses of
seller and buyer (BT-34 / BT-49). Sending invoices over the Peppol network itself
(AS4) is not part of the SDK; that requires an access point.

```csharp
// flag the invoice as Peppol BIS Billing 3.0 instead of XRechnung (BT-24)
invoice.SpecificationIdentifier = SpecificationIdentifiers.PeppolBisBilling30;

// electronic addresses of seller and buyer (BT-34 / BT-49)
invoice.SetSellerElectronicAddress("DE123456789", ElectronicAddressSchemeIdentifiers.GermanyVatNumber);
invoice.SetBuyerElectronicAddress("DE987654321", ElectronicAddressSchemeIdentifiers.GermanyVatNumber);

invoice.Save("peppol-invoice.xml", ZUGFeRDVersion.Version25, Profile.XRechnung, ZUGFeRDFormats.UBL);
```

```vbnet
' flag the invoice as Peppol BIS Billing 3.0 instead of XRechnung (BT-24)
invoice.SpecificationIdentifier = SpecificationIdentifiers.PeppolBisBilling30

' electronic addresses of seller and buyer (BT-34 / BT-49)
invoice.SetSellerElectronicAddress("DE123456789", ElectronicAddressSchemeIdentifiers.GermanyVatNumber)
invoice.SetBuyerElectronicAddress("DE987654321", ElectronicAddressSchemeIdentifiers.GermanyVatNumber)

invoice.Save("peppol-invoice.xml", ZUGFeRDVersion.Version25, Profile.XRechnung, ZUGFeRDFormats.UBL)
```

### PDF generation and analysis

Generates a valid PDF/A-3 invoice from an existing PDF invoice and the
`FacturXInvoice` structure. Analyzes existing ZUGFeRD PDFs and XML files for embedded
invoice data, profiles and anything structurally suspicious.

```csharp
var invoice = FacturXInvoice.CreateInvoice("Invoice-01",
    new DateTime(2025,09,03),
    CurrencyCodes.EUR);

await FacturXInvoicePdfProcessor.SaveToPdfAsync(
    "FacturX-Invoice.pdf",
    ZUGFeRDVersion.Version25,
    Profile.Extended,
    ZUGFeRDFormats.CII,
    "Classic-PDF-Invoice.pdf",
    invoice);

// read the ZUGFeRD data back
var loadedInvoice = await FacturXInvoicePdfProcessor.LoadFromPdfAsync(
    "FacturX-Invoice.pdf");
```

### Built-in validation

Check your invoices automatically against the current standards before you send them.
The national formats Facturae (Spain), FatturaPA (Italy) and ebInterface (Austria) are
validated as well – entirely in-process against the official XSD schemas shipped with
the SDK, with no validation server and without consuming the validation quota.

```csharp
var result = FacturXValidator.Validate("factur-x.xml");
if (!result.SummaryStatus)
{
    foreach (var item in result.XmlValidationResult.ResultItems)
    {
        Console.WriteLine(item.Message);
    }
}
```

```vbnet
Dim result = FacturXValidator.Validate("factur-x.xml")
If Not result.SummaryStatus Then
    For Each item In result.XmlValidationResult.ResultItems
        Console.WriteLine(item.Message)
    Next
End If
```

## Supported standard features

### ZUGFeRD 2.5

- Validation of the new business rules
- ManufacturerTradeParty (BG-X-94)
- Exemptions for surcharge taxes (BT-173 – BT-175, BT-X-591, BT-X-592)
- Financial adjustments (BG-34)
- Updated code lists

### ZUGFeRD 2.3 and 2.4

- Logistics Service Charge
- Designated Product Classification (BG-158)
- Applicable Product Characteristics (BG-32)
- Optional distinction between gross and net quantities and prices
- Serial numbers and batch numbers
- Alternative XML namespaces, for example those used by SAP
- Quantities per packaging unit
- Handling of sub-line items

## Pricing

Each license covers the stated number of developers and includes the right to use
FactoorSharp in production. All prices are net prices plus 19 % VAT.

### Developer licenses

Included in every license:

- ZUGFeRD, Factur-X, XRechnung and Peppol import and export (XML and PDF)
- Updates covering the latest revision of every supported standard
- Updates and technical support for the whole license term
- Extended validation quota: 600 documents per year (Mustang, VeraPDF, Valitool)
- Productive in-house use
- Redistribution in your own software, including SaaS

| License | Developers | 1 year | 2 years (−10 %) | 3 years (−20 %) |
|---|---|---|---|---|
| Freelancer | up to 2 | on request | on request | on request |
| SME | 2–4 | €549 | €999 | €1,299 |
| Corporate | unlimited | €1,099 | €1,999 | €2,599 |

The Freelancer license is aimed at sole traders, freelancers and micro businesses
with up to two developers. It is not priced publicly: write to us at
sales@factoorsharp.com and we will send you a quote. It is not intended for larger
companies, corporate groups or enterprises, even if only a handful of developers
there use the software. In those cases the SME license is the minimum requirement.

### Additional validation calls

- Valid for 12 months
- Applies on top of a developer license
- Use via the API or the web interface

| Package | 1,000 validations | 2,500 validations | 5,000 validations |
|---|---|---|---|
| Validation package | €129 | €289 | €509 |

## Frequently asked questions

**Which formats are supported?**
ZUGFeRD, Factur-X, XRechnung and Peppol BIS Billing 3.0, including the common profiles
such as EN 16931.

**Does FactoorSharp support Peppol?**
Yes, at the document level: FactoorSharp creates and reads Peppol BIS Billing 3.0 as a
CIUS on top of EN 16931 in UBL format, including the specification identifier (BT-24),
the business process (BT-23) and the electronic addresses of seller and buyer
(BT-34 / BT-49). Transport is not included: sending invoices over the Peppol network
(AS4) additionally requires an access point.

**Which national invoice formats can FactoorSharp validate?**
Besides ZUGFeRD, Factur-X and XRechnung, FactoorSharp validates the national
e-invoicing formats Facturae (Spain, FACe), FatturaPA (Italy, Fattura Elettronica /
SdI) and ebInterface (Austria); the version is detected automatically from the XML
namespace in each case. These three checks run entirely in-process against the
official XSD schemas shipped with the SDK: no validation server, no network latency
and no validation quota consumed. For Facturae, the embedded XAdES signature is
evaluated as well.

**Is there a free trial license?**
Yes. Right after signing up you automatically get a 30-day trial license with the full
feature set – no payment details required. We email a reminder before it expires, so
you can switch seamlessly to a paid license without any interruption to your
integration.

**Is the component complicated to use?**
ZUGFeRD, EN 16931 and XRechnung are fairly involved standards, and there is a certain
amount of ground to cover before you are comfortable with them. To make that easier,
we provide extensive documentation, sample code and a coding agent skill that plugs
straight into Claude Code, OpenAI Codex and other coding agents.

**May I use FactoorSharp commercially?**
Yes. The licenses cover both development use and productive use. That includes
integrating FactoorSharp into your own commercial software products.

**Do you offer consulting?**
Yes – integration workshops, migrations and architecture reviews.

**May I keep using FactoorSharp after my license expires?**
Yes. Your subscription includes a perpetual right to use the version that was current
when it expired. You may keep running that version indefinitely – in production and in
software you have already shipped. What ends with the subscription are updates, new
versions and support. ZUGFeRD, Factur-X and XRechnung keep evolving, so we recommend
renewing to stay compliant.

## Customers

More than 100 companies handle their e-invoicing with FactoorSharp. A few of them:

- **iglo GmbH**: "FactoorSharp lets us implement e-invoicing in C# quickly, reliably
  and without any hassle. We are very happy with both the SDK and the support."
- **Nowecor AG**: "We process thousands of invoices every month with FactoorSharp.
  Integration was straightforward and the product is highly reliable."
- **NEXUS / DIGITAL PATHOLOGY**: "As a healthcare software vendor, we depend on reliable
  and stable libraries. Good support and continuous maintenance of those libraries are
  essential to us, and so is easy integration into our products. That's why we chose
  FactoorSharp."
- **GTÜ Gesellschaft für Technische Überwachung mbH**
- **TimeLine ERP – TimeLine Business Solutions Group**

## Contact

Email: sales@factoorsharp.de – a short description of your use case is enough, we
reply within one working day.

## Related pages

- [Getting Started](https://www.factoorsharp.de/en/Home/GettingStarted.md) –
  installation, license key and your first Factur-X invoice step by step
- [ZUGFeRD .NET and ZUGFeRD C#](https://www.factoorsharp.de/en/Home/ZugferdDotNet.md) –
  a compact overview for .NET projects
- [ZUGFeRD documentation](https://www.factoorsharp.de/en/Service/Documentation) –
  searchable reference of the XML elements, BT/BG numbers and C# classes
- [Versions and release notes](https://www.factoorsharp.de/en/Home/Versions)
- [Sign up](https://www.factoorsharp.de/en/Account/SignUp) – 30-day free trial
- [llms.txt](https://www.factoorsharp.de/en/llms.txt) – overview of all pages for agents
