Regira.Invoicing
6.1.2
dotnet add package Regira.Invoicing --version 6.1.2
NuGet\Install-Package Regira.Invoicing -Version 6.1.2
<PackageReference Include="Regira.Invoicing" Version="6.1.2" />
<PackageVersion Include="Regira.Invoicing" Version="6.1.2" />
<PackageReference Include="Regira.Invoicing" />
paket add Regira.Invoicing --version 6.1.2
#r "nuget: Regira.Invoicing, 6.1.2"
#:package Regira.Invoicing@6.1.2
#addin nuget:?package=Regira.Invoicing&version=6.1.2
#tool nuget:?package=Regira.Invoicing&version=6.1.2
Regira Invoicing
Regira Invoicing covers electronic invoice creation, UBL/Peppol conversion, and document transmission via an AP gateway.
Projects
| Project | Package | Purpose |
|---|---|---|
Common.Invoicing |
Regira.Invoicing |
Shared abstractions |
Invoicing.Billit |
Regira.Invoicing.Billit |
Create and send invoices via Billit |
Invoicing.UblSharp |
Regira.Invoicing.UblSharp |
Convert invoices to UBL XML (Peppol BIS) |
Invoicing.ViaAdValvas |
Regira.Invoicing.ViaAdValvas |
Transmit UBL documents via AdValVas AP gateway |
Installation
<PackageReference Include="Regira.Invoicing.Billit" Version="6.*" />
<PackageReference Include="Regira.Invoicing.UblSharp" Version="6.*" />
<PackageReference Include="Regira.Invoicing.ViaAdValvas" Version="6.*" />
Billit
BillitConfig
| Property | Type | Description |
|---|---|---|
PartyId |
string? |
Your Billit party ID |
Api.BaseUrl |
string? |
Billit API base URL |
Api.Key |
string? |
API key |
DI Registration
services.AddBillit(sp => new BillitConfig
{
PartyId = configuration["Billit:PartyId"],
Api = new() { BaseUrl = configuration["Billit:Api:Url"], Key = configuration["Billit:Api:Key"] }
});
// Registers: IInvoiceManager, IFileManager, IPartyManager, IPeppolManager
IInvoiceManager
Task<ICreateInvoiceResult> Create(IInvoice item);
Task<ISendInvoiceResult> Send(params string[] ids); // send by IDs
Task<ISendInvoiceResult> Send(IInvoice input); // send by invoice object
UblSharp — UBL Conversion
IUblConverter
XDocument Convert(UblDocumentInput input);
Produces a UBL 2.1 Invoice document.
IInvoice invoice = new Invoice { /* lines, parties, tax, etc. */ };
var converter = new UblConverter();
XDocument ubl = converter.Convert(new UblDocumentInput
{
Invoice = invoice // required
});
Supporting constants
UblConstants— Customization ID and Profile ID for Peppol BIS Billing 3.0InvoiceTypeCode— e.g.380(Commercial),383(DebitNote); credit notes have no type code — they are distinguished by the UBL root element namePaymentMeansCode—1(NotDefined),42(BankAccount),ZZZ(MutuallyDefined)TaxCategoryCode—S(standard),Z(zero-rated),E(exempt),AE(reverse charge)
ViaAdValvas — Peppol Transmission
GatewaySettings
| Property | Type | Description |
|---|---|---|
Uri |
string |
AdValVas gateway endpoint |
SenderID |
string |
Your Peppol participant ID |
SenderName |
string |
Display name |
Token |
string |
API token |
SecretKey |
string |
Secret key included in the request seal |
IsProduction |
bool |
Target the production gateway (default false) |
PeppolService
var service = new PeppolService(gatewaySettings, jsonSerializer);
UblDocumentResponse result = await service.Send(ublDocument);
if (result.Success)
Console.WriteLine($"Sent. Reference: {result.Reference}");
Requests are sealed with SealUtility.Generate() — an MD5 digest over the token, sender ID, reference ID, date, and the secret key.
Typical end-to-end flow
// 1. Build the invoice domain model
IInvoice invoice = BuildInvoice(order);
// 2. Convert to UBL XML
XDocument ubl = new UblConverter().Convert(new UblDocumentInput { Invoice = invoice });
// 3. Transmit via Peppol
var result = await peppolService.Send(ubl);
// 4. (Optional) also create in Billit for accounting
await invoiceManager.Create(invoice);
await invoiceManager.Send(invoice);
License
Apache License 2.0 — this package contains no license validation and no runtime limits. See LICENSE. A few companion packages are commercially licensed with a free tier; see the licensing overview.
| Product | Versions 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. |
-
net10.0
- Regira.Common (>= 6.1.2)
-
net8.0
- Regira.Common (>= 6.1.2)
NuGet packages (5)
Showing the top 5 NuGet packages that depend on Regira.Invoicing:
| Package | Downloads |
|---|---|
|
Regira.Invoicing.Billit
Billit API integration for invoicing in Regira. |
|
|
Regira.Payments.Mollie
Mollie payment gateway integration for Regira. |
|
|
Regira.Invoicing.UblSharp
UBL (Universal Business Language) invoice serialization using UblSharp for Regira. |
|
|
Regira.Payments.Pom
POM payment integration for Regira. |
|
|
Regira.Invoicing.ViaAdValvas
ViaAdValvas integration for electronic invoicing in Regira. |
GitHub repositories
This package is not used by any popular GitHub repositories.