Class InvoiceBuilder

Namespace
EInvoice.Core.Builder
Assembly
EInvoice.Core.dll

Fluent builder for constructing XRechnung-conformant invoices.

public sealed class InvoiceBuilder
Inheritance
InvoiceBuilder
Inherited Members

Methods

AddAllowance(decimal, TaxCategoryCode?, decimal?, string?)

public InvoiceBuilder AddAllowance(decimal amount, TaxCategoryCode? taxCategoryCode = null, decimal? taxPercent = null, string? reason = null)

Parameters

amount decimal
taxCategoryCode TaxCategoryCode
taxPercent decimal?
reason string

Returns

InvoiceBuilder

AddAllowance(decimal, string?, decimal?, string?)

public InvoiceBuilder AddAllowance(decimal amount, string? taxCategoryCode = null, decimal? taxPercent = null, string? reason = null)

Parameters

amount decimal
taxCategoryCode string
taxPercent decimal?
reason string

Returns

InvoiceBuilder

AddAltteilsteuerExchangePart(AltteilsteuerExchangePart)

Adds all three Altteilsteuer lines and the invoice note in one call.

public InvoiceBuilder AddAltteilsteuerExchangePart(AltteilsteuerExchangePart part)

Parameters

part AltteilsteuerExchangePart

Returns

InvoiceBuilder

AddAltteilsteuerExchangeParts(IReadOnlyList<AltteilsteuerExchangePart>)

Adds all lines for each exchange part and a single combined BT-22 invoice note. Use this overload when invoicing multiple exchange parts to produce exactly one note instead of one per part.

public InvoiceBuilder AddAltteilsteuerExchangeParts(IReadOnlyList<AltteilsteuerExchangePart> parts)

Parameters

parts IReadOnlyList<AltteilsteuerExchangePart>

Returns

InvoiceBuilder

AddAltteilsteuerExchangeParts(params ReadOnlySpan<AltteilsteuerExchangePart>)

public InvoiceBuilder AddAltteilsteuerExchangeParts(params ReadOnlySpan<AltteilsteuerExchangePart> parts)

Parameters

parts ReadOnlySpan<AltteilsteuerExchangePart>

Returns

InvoiceBuilder

AddCharge(decimal, TaxCategoryCode?, decimal?, string?)

public InvoiceBuilder AddCharge(decimal amount, TaxCategoryCode? taxCategoryCode = null, decimal? taxPercent = null, string? reason = null)

Parameters

amount decimal
taxCategoryCode TaxCategoryCode
taxPercent decimal?
reason string

Returns

InvoiceBuilder

AddCharge(decimal, string?, decimal?, string?)

public InvoiceBuilder AddCharge(decimal amount, string? taxCategoryCode = null, decimal? taxPercent = null, string? reason = null)

Parameters

amount decimal
taxCategoryCode string
taxPercent decimal?
reason string

Returns

InvoiceBuilder

AddDocument(Action<DocumentReferenceBuilder>)

public InvoiceBuilder AddDocument(Action<DocumentReferenceBuilder> configure)

Parameters

configure Action<DocumentReferenceBuilder>

Returns

InvoiceBuilder

AddDocument(string, string?)

public InvoiceBuilder AddDocument(string id, string? description = null)

Parameters

id string
description string

Returns

InvoiceBuilder

AddLine(InvoiceLine)

Adds a pre-built invoice line directly.

public InvoiceBuilder AddLine(InvoiceLine line)

Parameters

line InvoiceLine

Returns

InvoiceBuilder

AddLine(Action<InvoiceLineBuilder>)

public InvoiceBuilder AddLine(Action<InvoiceLineBuilder> configure)

Parameters

configure Action<InvoiceLineBuilder>

Returns

InvoiceBuilder

Build()

public Invoice Build()

Returns

Invoice

WithBuyer(Action<PartyBuilder>)

public InvoiceBuilder WithBuyer(Action<PartyBuilder> configure)

Parameters

configure Action<PartyBuilder>

Returns

InvoiceBuilder

WithBuyerReference(string, string?)

public InvoiceBuilder WithBuyerReference(string reference, string? schemeId = null)

Parameters

reference string
schemeId string

Returns

InvoiceBuilder

WithCurrencyCode(CurrencyCode)

Sets the document currency code. Defaults to EUR if not called.

public InvoiceBuilder WithCurrencyCode(CurrencyCode code)

Parameters

code CurrencyCode

Returns

InvoiceBuilder

WithCurrencyCode(string)

Sets the document currency code. Defaults to EUR if not called.

public InvoiceBuilder WithCurrencyCode(string code)

Parameters

code string

Returns

InvoiceBuilder

WithDueDate(DateOnly)

public InvoiceBuilder WithDueDate(DateOnly date)

Parameters

date DateOnly

Returns

InvoiceBuilder

WithId(string)

public InvoiceBuilder WithId(string id)

Parameters

id string

Returns

InvoiceBuilder

WithInvoiceTypeCode(InvoiceTypeCode)

public InvoiceBuilder WithInvoiceTypeCode(InvoiceTypeCode code)

Parameters

code InvoiceTypeCode

Returns

InvoiceBuilder

WithInvoiceTypeCode(string)

public InvoiceBuilder WithInvoiceTypeCode(string code)

Parameters

code string

Returns

InvoiceBuilder

WithIssueDate(DateOnly)

public InvoiceBuilder WithIssueDate(DateOnly date)

Parameters

date DateOnly

Returns

InvoiceBuilder

WithMonetaryTotal(Action<MonetaryTotalBuilder>)

public InvoiceBuilder WithMonetaryTotal(Action<MonetaryTotalBuilder> configure)

Parameters

configure Action<MonetaryTotalBuilder>

Returns

InvoiceBuilder

WithNote(string, string?)

public InvoiceBuilder WithNote(string text, string? subjectCode = null)

Parameters

text string
subjectCode string

Returns

InvoiceBuilder

WithOrderReference(string)

public InvoiceBuilder WithOrderReference(string reference)

Parameters

reference string

Returns

InvoiceBuilder

WithPaymentMeans(PaymentMeansCode, string?, Action<BankAccountBuilder>?)

public InvoiceBuilder WithPaymentMeans(PaymentMeansCode code, string? paymentId = null, Action<BankAccountBuilder>? account = null)

Parameters

code PaymentMeansCode
paymentId string
account Action<BankAccountBuilder>

Returns

InvoiceBuilder

WithPaymentMeans(string, string?, Action<BankAccountBuilder>?)

public InvoiceBuilder WithPaymentMeans(string code, string? paymentId = null, Action<BankAccountBuilder>? account = null)

Parameters

code string
paymentId string
account Action<BankAccountBuilder>

Returns

InvoiceBuilder

WithPaymentTerms(string)

public InvoiceBuilder WithPaymentTerms(string terms)

Parameters

terms string

Returns

InvoiceBuilder

WithSeller(Action<PartyBuilder>)

public InvoiceBuilder WithSeller(Action<PartyBuilder> configure)

Parameters

configure Action<PartyBuilder>

Returns

InvoiceBuilder

WithTaxTotal(decimal, Action<TaxSubtotalListBuilder>)

public InvoiceBuilder WithTaxTotal(decimal taxAmount, Action<TaxSubtotalListBuilder> configure)

Parameters

taxAmount decimal
configure Action<TaxSubtotalListBuilder>

Returns

InvoiceBuilder