International.EInvoicing.Countries.Greece 1.1.0

dotnet add package International.EInvoicing.Countries.Greece --version 1.1.0
                    
NuGet\Install-Package International.EInvoicing.Countries.Greece -Version 1.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="International.EInvoicing.Countries.Greece" Version="1.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="International.EInvoicing.Countries.Greece" Version="1.1.0" />
                    
Directory.Packages.props
<PackageReference Include="International.EInvoicing.Countries.Greece" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add International.EInvoicing.Countries.Greece --version 1.1.0
                    
#r "nuget: International.EInvoicing.Countries.Greece, 1.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package International.EInvoicing.Countries.Greece@1.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=International.EInvoicing.Countries.Greece&version=1.1.0
                    
Install as a Cake Addin
#tool nuget:?package=International.EInvoicing.Countries.Greece&version=1.1.0
                    
Install as a Cake Tool

International.EInvoicing.Countries.Greece

What Greek electronic invoicing adds on top of the norms.

Greece exchanges Peppol BIS Billing, with Greek rules that travel inside the Peppol rule set — and they ask for two things nothing else in this library does.

The invoice number is a compound key. GR-R-001 is fatal: when the supplier is Greek, BT-1 is six segments separated by |, and every one of them is checked against the rest of the document.

string number = GrInvoiceNumber.For(
    supplierTaxIdentifier: "100000003",     // must satisfy its checksum and match the seller's VAT number
    issueDate: new DateOnly(2026, 9, 1),    // must be the same date as BT-2, written DD/MM/YYYY
    branch: 0,
    documentType: "1.1",                    // one of six myDATA codes
    series: "A",
    number: "0001");

An ordinary invoice number is rejected outright, and a hand-built string fails for reasons that are hard to read off a validation report — so For checks each part where it can, and names the rule when it refuses.

The AFM has a checksum of its own. The first eight digits are weighted by descending powers of two — 256, 128, 64, 32, 16, 8, 4, 2 — and the ninth is the sum modulo 11, modulo 10. GrTaxIdentifier verifies it, and writes the number in scheme 9933.

And one MARK number. GR-R-004-1 requires exactly one additional document reference described as ##M.AR.K##, carrying the myDATA registration:

invoice.AdditionalDocuments.Add(new AdditionalDocument
{
    Identifier = "400001234567890",
    Description = "##M.AR.K##",
});

myDATA itself is out of scope. Reporting every invoice to the platform is a transmission, not a document, and this library performs no network I/O. What it does is produce the document myDATA expects to hear about.

The Greek rules are inside the Peppol rule set: build/fetch-specs.sh peppol, then AddPeppolRulesFrom(...).

Full documentation: https://github.com/Epic-Dice-Studio/International.EInvoicing

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.0 114 9/7/2026
1.0.1-alpha.0.3 71 9/7/2026
1.0.1-alpha.0.2 72 9/7/2026
1.0.1-alpha.0.1 65 9/7/2026
1.0.0 109 9/5/2026
0.1.0-preview.1.107 67 9/5/2026
0.1.0-preview.1.106 65 9/4/2026
0.1.0-preview.1.105 76 9/4/2026
0.1.0-preview.1.104 69 9/4/2026
0.1.0-preview.1.103 75 9/4/2026
0.1.0-preview.1.102 69 9/3/2026
0.1.0-preview.1.101 75 9/3/2026
0.1.0-preview.1.96 98 9/3/2026
0.1.0-preview.1.95 75 9/3/2026
0.1.0-preview.1.94 72 9/3/2026
0.1.0-preview.1.93 72 9/3/2026
0.1.0-preview.1.92 68 9/3/2026
0.1.0-preview.1.91 71 9/3/2026
0.1.0-preview.1.90 72 9/3/2026
0.1.0-preview.1.89 69 9/3/2026
Loading failed