Table of Contents

Interface IFiscalCountryProperties

Namespace
RetailForce.Fiscalisation.Implementation
Assembly
RetailForce.Fiscalisation.Model.dll

Represents fiscal country properties (necessary document types, type of fiscal interface, use of customer display...).

public interface IFiscalCountryProperties

Properties

AdditionalTaxesMayApply

True if additional taxes have to be sent according to the legislation; otherwise false.

[HelpInformation("Indicates whether additional taxes have to be sent according to the legislation in the respective country.", null)]
bool AdditionalTaxesMayApply { get; }

Property Value

bool

AmountDecimalPlaces

Returns the number of allowed decimal places for each amount (price, values, tax values, etc.).

[HelpInformation("Specifies how many decimal places can be included (maximum) in the JSON-document to the Fiscal Middleware when sending amounts / totals.", null)]
int AmountDecimalPlaces { get; }

Property Value

int

AuditLogMandatory

True if the audit log has to be filled up; otherwise false.

[HelpInformation("Indicates whether a technical journal is obligatory; Technical Journal records technical events of the cash register", "https://support.retailforce.cloud/hc/en-gb/articles/5277827737233-Technical-Event-Protocol-Event-Log")]
bool AuditLogMandatory { get; }

Property Value

bool

CertificationType

Returns if pos certification process is mandatory or not.

[HelpInformation("Returns if pos certification process is mandatory or not.", null)]
CertificationType CertificationType { get; }

Property Value

CertificationType

CompanyIdentification

Returns mapping for company identification to local numbering systems.

[HelpInformation("Specifies the unique identifier assigned to a company by a government or regulatory authority.", null)]
Dictionary<CompanyIdentification.IdentificationType, CompanyIdentificationInformation> CompanyIdentification { get; }

Property Value

Dictionary<CompanyIdentification.IdentificationType, CompanyIdentificationInformation>

CountryModuleVersion

Returns the version of the country module.

[HelpInformation("Indicates the currently valid version of the Trusted Fiscal Country Module", null)]
Version CountryModuleVersion { get; }

Property Value

Version

CustomerDisplayMandatory

True if the customer display fiscal interface has to be implemented; otherwise false.

[HelpInformation("Indicates whether customer display must be used mandatory (true, else: false).", null)]
bool CustomerDisplayMandatory { get; }

Property Value

bool

DocumentTypeBusinessTransactionTypeSupport

Returns a dictionary for information which document type supports which business transaction type.

Dictionary<DocumentType, Dictionary<BusinessTransactionType, bool>> DocumentTypeBusinessTransactionTypeSupport { get; }

Property Value

Dictionary<DocumentType, Dictionary<BusinessTransactionType, bool>>

Remarks

If document type is set, but business transaction type dictionary is null -> all business transaction types are allowed. If document type is not found, all business transaction types are allowed. If document type and business transaction type is found, value must be true to be supported.

DokumentBookDateMustBeAscending

Indicates if document book date must be ascending.

[HelpInformation("Indicates if document book date must be ascending.", null)]
DokumentBookDateMustBeAscendingType DokumentBookDateMustBeAscending { get; }

Property Value

DokumentBookDateMustBeAscendingType

EntityParameters

Returns a list of optional and mandatory entity parameters.

List<EntityParameterInfo> EntityParameters { get; }

Property Value

List<EntityParameterInfo>

Remarks

Entity parameters are parameters to master data entities (distributor, organization, company, store, terminal) which are necessary for fiscal client configuration.

FiscalCountry

The fiscal country for this property collection.

FiscalCountry FiscalCountry { get; }

Property Value

FiscalCountry

FiscalDocumentTypes

Returns a list of all fiscal necessary document types for this country.

List<DocumentType> FiscalDocumentTypes { get; }

Property Value

List<DocumentType>

FiscalLineInterface

True if the items must be transmitted to the fiscal interface individually; False if the whole document must be transmitted at once.

[HelpInformation("Indicates if line-by-line printing is mandatory (true, else:false).", null)]
bool FiscalLineInterface { get; }

Property Value

bool

FiscalModuleCalculatesTaxRates

True if the tax rates for the receipt are calculated by the fiscal module; otherwise false.

[HelpInformation("Indicates whether the VAT rates are calculated by the respective fiscal module of the country.", null)]
bool FiscalModuleCalculatesTaxRates { get; }

Property Value

bool

FiscalRegions

If the country has different fiscal regions, you can query this property for the fiscal regions for this country.

List<string> FiscalRegions { get; }

Property Value

List<string>

FiscalisationType

Returns the type of the fiscalisation for this country.

[HelpInformation("Returns the type of the fiscalisation for this country.", null)]
FiscalisationType FiscalisationType { get; }

Property Value

FiscalisationType

GetCloudArchiveAccessLicense

Returns the cloud archive access license for the respective country.

string GetCloudArchiveAccessLicense { get; }

Property Value

string

Remarks

Return empty string if there is not cloud

ItemTypeClassificationRequired

True if classification of item is required; otherwise false.

bool ItemTypeClassificationRequired { get; }

Property Value

bool

LegalForms

Legal forms

[HelpInformation("Company legal form defines your business structure, liability, and tax obligations. Options include sole proprietorship, partnership, LLC, corporation, and more. Consult a professional for guidance.", null)]
List<LegalForm> LegalForms { get; }

Property Value

List<LegalForm>

MaximumHourIntervalForClosing

The maximum interval in hours between two daily closings. If set to -1 it is infinite.

[HelpInformation("Specifies the time period from the opening of the day within which a daily closing must be done.", null)]
int MaximumHourIntervalForClosing { get; }

Property Value

int

Remarks

If the maximum interval is set and documents (except EndOfDay) are sent to the service the documents are blocked with an exception.

MustRecordDocumentReprint

True if the methods TrustedFiscalModule.ReprintDocument(Guid, User, string, int) or TrustedFiscalModule.ReprintDocument(Document, string) must be used to store the number of reprints of a document.

[HelpInformation("Indicates whether it is obligatory to record reprints of documents (true, else: false)", null)]
bool MustRecordDocumentReprint { get; }

Property Value

bool

MustSendCanceledPosition

Returns how deleted positions have to be handled.

[HelpInformation("Specifies how deleted positions are going to be handled. If true, the deleted positions have to be sent together with their counterparts", null)]
bool MustSendCanceledPosition { get; }

Property Value

bool

MustSendClosingPerDay

True if the pos software must send a closing EndOfDay document each day; otherwise false.

[HelpInformation("Indicates if it is obligatory to do a daily closing of the cash register system.", null)]
bool MustSendClosingPerDay { get; }

Property Value

bool

NetValuePositionCalculation

Returns how the tax positions will be validated.

[HelpInformation("Specifies how the tax positions will be validated. If true, only net values will be summed per vatpercent and vat will be calculated only at document level.", null)]
bool NetValuePositionCalculation { get; }

Property Value

bool

NotSupportedBusinessTransactionTypes

Returns a list of all not supported business transaction types.

List<BusinessTransactionType> NotSupportedBusinessTransactionTypes { get; }

Property Value

List<BusinessTransactionType>

NotSupportedDocumentTypes

Returns a list of not supported document types (normal case: MiscellaneousNonFiscal.

List<DocumentType> NotSupportedDocumentTypes { get; }

Property Value

List<DocumentType>

Remarks

A not supported document type must not be included in FiscalDocumentTypes.

NotSupportedPayOutTypes

Returns a list of all not supported pay out types.

List<PayOutType> NotSupportedPayOutTypes { get; }

Property Value

List<PayOutType>

NotSupportedPaymentTypes

Returns a list of all not supported payment types.

List<PaymentType> NotSupportedPaymentTypes { get; }

Property Value

List<PaymentType>

OverpaymentNotAllowed

Returns a list of payments for which overpayment (and thus cash return) is not allowed, e.g. voucher payment in some countries.

List<PaymentType> OverpaymentNotAllowed { get; }

Property Value

List<PaymentType>

PrintFiscalDocumentNumber

Returns whether the fiscal document number (of FiscalResponse) has to be printed out on the receipt or not.

bool PrintFiscalDocumentNumber { get; }

Property Value

bool

PrinterSupportsAdditionalFooter

True if additional header printing is supported/implemented; otherwise false.

[HelpInformation("Indicates if additional footer printing is supported/implemented.", null)]
bool? PrinterSupportsAdditionalFooter { get; }

Property Value

bool?

PrinterSupportsAdditionalHeader

True if additional header printing is supported/implemented; otherwise false.

[HelpInformation("Indicates if additional header printing is supported/implemented.", null)]
bool? PrinterSupportsAdditionalHeader { get; }

Property Value

bool?

PrinterSupportsBarcode

True if printing of barcodes on receipt is supported/implemented; otherwise false.

[HelpInformation("Indicates if printing of barcodes on receipt is supported/implemented.", null)]
bool? PrinterSupportsBarcode { get; }

Property Value

bool?

PrinterSupportsCouponData

True if additional printing of coupon data is supported/implemented; otherwise false.

[HelpInformation("Indicates if additional printing of coupon data is supported/implemented.", null)]
bool? PrinterSupportsCouponData { get; }

Property Value

bool?

PrinterSupportsCouponDataGraphic

True if additional graphic printing is supported/implemented; otherwise false.

[HelpInformation("Indicates if additional printing of coupon data graphic is supported/implemented.", null)]
bool? PrinterSupportsCouponDataGraphic { get; }

Property Value

bool?

PrinterSupportsPositionGraphics

True if printing of positioned graphics is supported/implemented; otherwise false.

[HelpInformation("Indicates if printing of positioned graphics is supported/implemented.", null)]
bool? PrinterSupportsPositionGraphics { get; }

Property Value

bool?

PrinterSupportsPrintCardData

True if additional printing of card data is supported/implemented; otherwise false.

[HelpInformation("Indicates if additional printing of card data is supported/implemented.", null)]
bool? PrinterSupportsPrintCardData { get; }

Property Value

bool?

ReprintAllowedDomain

Returns the domain within reprints are allowed.

[HelpInformation("Specifies the domain within which a document may be reprinted: only at the same cash register, in the same shop/branch/organization but on a different cash register, or also in another shop/branch/organization.", null)]
ReceiptDomain ReprintAllowedDomain { get; }

Property Value

ReceiptDomain

RequiredTimeZone

If set, time zone will be validated; otherwise null or empty.

[HelpInformation("Indicates whether time zone should be validated for respective country.", null)]
string? RequiredTimeZone { get; }

Property Value

string

RequiresParagonRegistration

Returns cash registers must subsequently record handwritten documents (=paragons) which were created in offline mode.

[HelpInformation("If true, cash registers must subsequently record handwritten documents (=paragons) which were created in offline mode.", null)]
bool RequiresParagonRegistration { get; }

Property Value

bool

ReturnAndSaleBehavior

Returns whether one or more receipts have to be created when return and sales would both exist on one receipt.

[HelpInformation("Indicates whether it is allowed to mix sales transactions and redemptions (exchanges) on one receipt or whether they must be recorded separately (multipleReceiptAllowed).", null)]
ReturnAndSaleBehavior ReturnAndSaleBehavior { get; }

Property Value

ReturnAndSaleBehavior

ReturnDomainAllowed

Returns the domain where document references are allowed.

[HelpInformation("Specifies within which domain a return of goods may be made; only at the same cash register as the sales transaction, at another cash register at the same location / branch / organization etc., or also at another location / branch / organization etc. of the same company.", null)]
ReceiptDomain ReturnDomainAllowed { get; }

Property Value

ReceiptDomain

ReturnReferenceBehavior

Returns if more than one document is allowed to reference in one document (Multiple); otherwise not (Single).

[HelpInformation("Specifies whether multiple sales transactions (multiple) or only a single sales transaction (single) may be referenced for a return of goods / services.", null)]
ReturnReferenceBehavior ReturnReferenceBehavior { get; }

Property Value

ReturnReferenceBehavior

RoundingSummaryInEndOfDay

Indicates if rounding summary should be printed in end of day document.

[HelpInformation("Indicates if rounding summary should be printed in end of day document.", null)]
bool RoundingSummaryInEndOfDay { get; }

Property Value

bool

StartDocumentType

Returns the start document type for initialization.

[HelpInformation("Returns the start document type for initialization.", null)]
DocumentType StartDocumentType { get; }

Property Value

DocumentType

StoreNumberValidCharsRegex

The valid characters for the store number in this country (default: a-z0-9_).

string StoreNumberValidCharsRegex { get; }

Property Value

string

Remarks

This regex is Microsoft .net notation (for special characters and functions).

SupportedBusinessTransactionTypes

Returns a list of all supported business transaction types.

List<BusinessTransactionType> SupportedBusinessTransactionTypes { get; }

Property Value

List<BusinessTransactionType>

SupportedDocumentTypes

Returns a list of all by the fiscal module supported document types. Contains all document types (including fiscal document types).

[HelpInformation("Returns all document types which are supported in this country.", null)]
List<DocumentType> SupportedDocumentTypes { get; }

Property Value

List<DocumentType>

Remarks

A supported document type can be send to the fiscal system, but is not a fiscalized document. Non fiscalized documents normally will not send a FiscalResponse.

SupportedEnvironments

Returns the supported environments for the fiscal module.

List<FiscalModuleEnvironment> SupportedEnvironments { get; }

Property Value

List<FiscalModuleEnvironment>

SupportedItemTypeClassification

Returns a list of supported item classification

List<ItemTypeClassification> SupportedItemTypeClassification { get; }

Property Value

List<ItemTypeClassification>

SupportedLegislation

Returns the supported legislation/regulation in this country (as string). For instance Denmark 1.5.2 or France NF525 2.3.

[HelpInformation("Returns the supported legislation/regulation in this country (as string). For instance Denmark 1.5.2 or France NF525 2.3.", null)]
string SupportedLegislation { get; }

Property Value

string

SupportedPayOutTypes

Returns a list of all supported pay out types.

List<PayOutType> SupportedPayOutTypes { get; }

Property Value

List<PayOutType>

SupportedPaymentTypes

Returns a list of all supported payment types.

List<PaymentType> SupportedPaymentTypes { get; }

Property Value

List<PaymentType>

SupportedPlatformTypes

Returns a list of all supported os platform types.

List<PlatformType> SupportedPlatformTypes { get; }

Property Value

List<PlatformType>

Remarks

Please note that although os platform is supported by the country, there could be limitation by a possible security device (tss in Germany, ...)

SupportedVatDefinitions

Returns the supported vat definitions for this country.

ReadOnlyCollection<Vat> SupportedVatDefinitions { get; }

Property Value

ReadOnlyCollection<Vat>

Remarks

It is important that values in this list are not changed but only added with respective date span (ValidFrom, ValidTo) to keep the history of vat rates!

SurchargesPossible

True if surcharges in fiscal document types are allowed; otherwise false.

[HelpInformation("Indicates whether surcharges are allowed in the respective country.", null)]
bool SurchargesPossible { get; }

Property Value

bool

TaxFreeVat

The tax free vat class for this country.

Vat TaxFreeVat { get; }

Property Value

Vat

TerminalNumberValidCharsRegex

The valid characters for the terminal number in this country (default: a-z0-9_).

string TerminalNumberValidCharsRegex { get; }

Property Value

string

Remarks

This regex is Microsoft .net notation (for special characters and functions).

TerminalSlaveSupported

True if this country supports slave terminals; otherwise false.

[HelpInformation("Indicates if this country supports slave terminals (additional terminals for input).", null)]
bool TerminalSlaveSupported { get; }

Property Value

bool

TrainingModeAllowed

True if the training mode in this country is allowed; otherwise false.

[HelpInformation("Indicates whether a training / demo / training mode of the cash register is allowed in the respective country.", null)]
bool TrainingModeAllowed { get; }

Property Value

bool

Methods

GetVatIdentification(decimal, DateTime, decimal?)

Returns the appropriate vat identification for the requested percentage and date/time.

int? GetVatIdentification(decimal vatPercent, DateTime requestDate, decimal? vatPercent2)

Parameters

vatPercent decimal

The vat percentage for the requested vat identification.

requestDate DateTime

The date/time for the requested vat identification.

vatPercent2 decimal?

The vat percentage 2 for the requested vat identification, optional.

Returns

int?

An integer representing the vat identification for the requested values; null if nothing is found.

ValidateClient(FiscalClient, bool)

Validates a fiscal client.

List<ValidationError> ValidateClient(FiscalClient client, bool isNewClient = false)

Parameters

client FiscalClient

The client to validate.

isNewClient bool

Flag for enhanced client validation if set.

Returns

List<ValidationError>

A list of RetailForce.Common.Validation.ValidationError objects representing the validation errors for the client configuration. Null if no validation was done.

Exceptions

ArgumentNullException

Thrown if client is set to null.