Fiscalization Service
Fiscalization Service
(Version v07)
Technical Specification
Versions
Version Description of Change
2 | 121
Version Description of Change
3 | 121
Version Description of Change
Related Documents
Document Name Description
4 | 121
CONTENTS
1. INTRODUCTION.................................................................................................................... 7
1.1 USED ABBREVIATIONS ....................................................................................................................................... 7
1.2 TERMINOLOGY ................................................................................................................................................... 8
2. ENVIRONMENTS ................................................................................................................ 10
2.1 PREPARATION WORKS FOR FISCALIZATION SERVICE USE ............................................................................... 10
2.2 TOPOLOGY ....................................................................................................................................................... 11
2.2.1 CIS access point .......................................................................................................................................... 11
2.2.2 Internet connection .................................................................................................................................... 11
2.2.3 Information system of the client ................................................................................................................ 11
2.3 CONDITIONS FOR CONNECTION TO CIS ........................................................................................................... 11
2.3.1 Network preconditions and recommendations .......................................................................................... 12
2.3.2 Security preconditions ................................................................................................................................ 12
2.3.3 Aplication preconditions ............................................................................................................................. 12
3. INTERFACE ......................................................................................................................... 13
3.1 INTERFACE VERSIONING .................................................................................................................................. 13
3.2 DATA MESSAGE CODING ................................................................................................................................. 14
3.3 DATA MESSAGE STRUCTURE............................................................................................................................ 14
3.4 CONTROLS ........................................................................................................................................................ 14
3.5 REGISTER TCR................................................................................................................................................... 15
3.5.1 Register TCR Request Data Message .......................................................................................................... 17
3.5.2 Register TCR Response Data Message ....................................................................................................... 20
3.5.3 Mandatory Controls ................................................................................................................................... 21
3.5.4 Error Message ............................................................................................................................................ 21
3.5.5 Example XML .............................................................................................................................................. 22
3.6 REGISTER CASH DEPOSIT ................................................................................................................................. 22
3.6.1 Register Cash Deposit Request Data Message ........................................................................................... 24
3.6.2 Register Cash Deposit Response Data Message ......................................................................................... 26
3.6.3 Mandatory Controls ................................................................................................................................... 28
3.6.4 Error Message ............................................................................................................................................ 28
3.6.5 Example XML .............................................................................................................................................. 28
3.7 REGISTER INVOICE ........................................................................................................................................... 30
3.7.1 Register Invoice Request Data Message .................................................................................................... 33
3.7.2 Register Invoice Response Data Message .................................................................................................. 55
3.7.3 Mandatory Controls ................................................................................................................................... 57
3.7.4 Error Message ............................................................................................................................................ 58
3.7.5 Example XML .............................................................................................................................................. 58
3.7.6 QR code generation .................................................................................................................................... 59
3.8 WAREHOUSE TRANSFER NOTE ........................................................................................................................ 60
3.8.1 Warehouse transfer note request message ............................................................................................... 62
3.8.2 Warehouse transfer note response message ............................................................................................. 73
3.8.3 Mandatory Controls ................................................................................................................................... 74
5 | 121
3.8.4 Error Message ............................................................................................................................................ 75
3.8.5 Example XML .............................................................................................................................................. 75
3.9 ERROR MESSAGES ............................................................................................................................................ 76
3.9.1 XML Format ................................................................................................................................................ 76
3.9.2 Error Codes ................................................................................................................................................. 79
3.9.3 Example XML .............................................................................................................................................. 80
5. SECURITY ........................................................................................................................... 85
5.1 DIGITAL CERTIFICATES ..................................................................................................................................... 85
5.2 TRANSPORT SECURITY ..................................................................................................................................... 85
5.3 MESSAGE SECURITY ......................................................................................................................................... 85
5.3.1 Request And Response Data Messasge Signing ......................................................................................... 86
5.3.2 Response Data Message Signature Verification ......................................................................................... 86
5.3.3 IIC and WTNIC Data Element ...................................................................................................................... 86
6 | 121
1. Introduction
This document provides a description of the data interface for invoice and acknowledgement of data messages
containing information on sales which the taxpayers are obliged to send for every sale made and subject to registration
of Sales, i.e. invoices issued.
Files containing definition of the XML schema and the Web service (WSDL), which describe the structure of the
registered invoice data messages and the Web service used to receive them are provided as Annexes 6.3 and 8 to this
document.
Old deprecated service version will be available for 4 weeks after the new version is released. Date when a new version
is released can be found at GDT website.
CA Certificate Authority -
CPCM CPCM is central portal for the control and management of taxpayers in -
the cash transaction subsystem
FIC Fiscal Identification Code (generated at server side after successful UII – Unique invoice identifier
verification of the invoice)
FWTNIC Fiscal WTN Identification Code (generated at server side after UWTNI - Unique Warehouse Transfer
successful verification of the warehouse transfer note) Note Identifier
TCR Taxpayer Cash Register. The same as billing device or electronic cash Taxpayer’s electronic cash device
device.
TCRCode Taxpayer Cash Register Code. Taxpayer’s electronic cash device code
UC Use case -
7 | 121
Terminology used in the Law
Abbreviation Description
(if it is different)
and
https://www.w3.org/TR/xmlschema11-2/
1.2 TERMINOLOGY
A data structure in a defined format prescribed by the A data structure in a defined format prescribed by the
financial authority, which contains the Fiscal financial authority, which contains Unique invoice
Response data
Identification Code (FIC) and is used as identifier (UII) and is used as acknowledgement of
message
acknowledgement of invoice and formal correctness of invoice and formal correctness of the registered invoice
the registered invoice data message sent. data message sent.
Registered Invoice Invoice which is registered on CIS containing FIC. Invoice which is registered on CIS containing UII.
8 | 121
Terminology used in the Law
Term Definition
(if it is different)
the context, an end device such as a cash register, or
additional SW and HW actually sending the registered
invoices information. The data messages include an item
marked as "Electronic cash device code", which
identifies the end device (electronic cash device). In
other parts of the text, this term usually means the end
device and the relevant SW and HW sending the data
messages.
Table 2 - Terminology
9 | 121
2. Environments
The government will publish Web service addresses for two types of environments: production environment and one
or more test environments:
- Non-production environment will be used solely by software developers (developing software for cash
registers), not by cash registers' end users. Sending a data message to the non-production environment shall
not be considered sending of registered invoice information. The FIC returned by the non-production
environment is not a valid FIC (it is different per prefix). In the non-production environment, digital certificates
for cash registers may be issued using a simplified process.
- Production environment is intended for the taxpayers and will be used for routine operations, i.e. receipt and
acknowledgement of data messages containing information on registered sales.
Endpoints:
o Test environment:
o https://eFiskalizimi-test.tatime.gov.al/FiscalizationService-v3/FiscalizationService.wsdl
o Production environment:
o https://efiskalizimi.tatime.gov.al/FiscalizationService-v3/FiscalizationService.wsdl
10 | 121
2.2 TOPOLOGY
Users access the CIS by initiating 1-way TLS connection. Clients exchange messages with Tax administration’s access
point using TLS channel by described procedure. Data exchange is synchronous, meaning access point answers on user’s
request immediately. Request and response messages formats are specified through XML schema.
Connection conditions are similar but differ in addresses of their access points and certificates. Both, in production and
test environment certificates are issued by NAIS. Environments are not different in its functionality (besides new
functionalities development), only difference is in data – test environment uses test data.
11 | 121
2.3.1 NETWORK PRECONDITIONS AND RECOMMENDATIONS
To connect to the CIS of the Tax Administration, client system needs to fulfil these conditions:
Bandwidth 2 Mb/s at minimum (up to 40 messages per second with assumption that message takes 6 KB)
Protection at the transport layer HTTPS (TLS v1.1 and v1.2, AES_256 encryption at least)
Certificates for the electronic signing Certificate type: application digital certificate for fiscalization
12 | 121
3. Interface
Interface for exchanging the data between the taxpayer and CIS regarding the fiscalization will be SOAP web service.
Messages are in XML format according to the standards of SOAP messages.
The web service has several operations which will be used by the taxpayer who needs to do the fiscalization of the
invoices. Invoices are issued by the electronic cash device represented by its code (for cash transactions). The code is
assigned in operation of registration of electronic cash device which needs to be executed during the installation of each
electronic cash device. At the beginning of each day, electronic cash device which handles cash transactions must
register the amount of cash in the deposit and only then it should start to issue invoices. Each invoice must be registered
to the fiscalization service and upon successful registration the invoice is assigned with a FIC which is printed on the
invoice together with other mandatory invoice elements. In case that the invoice needs to be corrected, new corrective
invoice is issued with a reference to the invoice which needs to be corrected. During the day, electronic cash devices for
cash payments should have the possibility for the taxpayer to see the current cash balance (it is recommended to do it
when the operators of electronic cash device changes) as well as notify the Tax Administration through fiscalization
service of any withdrawal or extra deposit of cash in the cash register. Each of this operation is explained in its chapter
together with the list of elements of the exchanged messages.
Taxpayers should also register warehouse transfer notes for all goods transferred between warehouses and sale
premises inside territory of Republic of Albania in situations specified by the Law “on invoice and system for monitoring
transactions” and its bylaws.
Message sent by the taxpayer to CIS is the request message to which CIS replies by sending the response message. In
case of an error, the error message is sent in the response with its structure. Request and response messages (except
for the error message) all have the following parts: header (general info about the message), data (data specific for the
operation), signature (digital signature signed by the person who is sending the message which provides the identity of
the sender and info to verify that the data of the message is not changed). Signature is explained in chapter 5.3.
MAJOR version is increased when there are incompatible API changes. New interface will be provided, and old
interface will remain for some period. Clients are expected to upgrade to new version as described in release
notes of the new version.
MINOR version is increased when a functionality is added in a backwards-compatible manner. Current interface
remains compatible with current clients, but new functionalities are added which can or should be used. Clients
are expected to upgrade to new version as described in release notes of the new version.
PATCH version is increased when there are backwards-compatible bug fixes. Current interface remains the
same.
Service endpoint will have a context suffix -vMAJOR, e.g. /FiscalizationService-v3. This means that at one moment there
might be several active service endpoints with different MAJOR versions but each of them will always have the latest
MINOR and PATCH versions.
13 | 121
3.2 DATA MESSAGE CODING
All items in all data messages will only use selected characters encoded as a single byte in a standard decimal ASCII
character set. The allowed decimal codes are 9, 10, 13, or 32 to 126.
UTF-8 must be used for encoding the data messages as XML documents, i.e. first line of the XML SOAP envelope will
always be:
All XML elements of the fiscalization service are part of the same namespace, referenced in the Web service definition
(WSDL).
The data format mask for individual items, which is listed along with their detailed description below, is a regular
expression in the sense of the XML Schema, which defines the required syntax of the given item.
Every request and response data message shall be signed with a private key belonging to the issuer or fiscalization
service respectably. Exception to that rule are error messages (described in the chapter 3.7.6) which are not signed by
the fiscalization service.
Digital signature is calculated only for the data message that resides inside SOAP envelope body element and is
incorporated inside that data message as a envelop signature XML element.
3.4 CONTROLS
There are three types of controls:
Mandatory controls shall be performed by CIP system in all methods in real time. In case that the control is not passed,
an error message will be returned with error code defined here. The mandatory controls include the following:
Check of the individual registered invoice data message's in XML against the XSD schema (*.xsd). 11
XML structure validation XSD schema contains an exact definition of the data and format structure for the individual data
items and a check of presence of individual items
14 | 121
Check that the hash of the message calculated by CIS corresponds to the hash listed in the 22, 23, 24,
message. 25, 26, 27,
Electronic signature check 28, 29, 30,
Check that the signature corresponds to the hash of the message and to the public key of the 31, 32, 33,
certificate. 34
Client time differs Client time differs from a server’s time by more than allowed time in minutes 2
Other controls as specified in the functional specification and for control purposes of the Tax
Other controls
Administration
Table 3
Additional controls are not performed at the moment of registration of the invoice but are instead postponed for later
processing of the invoices. Errors detected here will be available to taxpayer over central invoice platform and to tax
officials through CPCM.
Before this, taxpayer needs to be registered in Tax Administration in active Registry of taxpayers. Taxpayer must also
register the business premise (in application Central invoice platform) in which the TCR is located prior to registration
of the TCR.
If this registration is done for the same internal identification of the TCR and business unit code, CIS will update only
ValidTo field information with new data provided in the request message and return same TCRCode. Deregistration is
possible by providing current date as value for ValidTo attribute field date field in the RegisterTCRRequest message.
15 | 121
Figure 3 - Registration of taxpayer's cash register
16 | 121
3.5.1 REGISTER TCR REQUEST DATA MESSAGE
Id Attribute [1, 1] Attribute used for signature creation and verification. Fixed value “Request”.
Version Attribute [1,1] Attribute used to specify compliance with XSD schema. For this version fixed value is “3”.
SendDateTime Attribute [1, 1] Date and time of sending the message to the Tax administration.
Source Attribute [0, 1] Only for internal usage. Must not be populated by a TCR.
TCR Element [1, 1] XML element representing a single TCR registration message.
TCRIntID Attribute [1, 1] TCR internal identification. This identification attribute can be used for old cash registers.
MaintainerCode Attribute [0, 1] Code of the maintainer for the TCR software.
ValidFrom Attribute [0, 1] Date from which the TCR will be used.
ValidTo Attribute [0,1] Date until which the TCR will be used.
Table 4
3.5.1.1 Header
Element generated by the TCR. It uniquely identifies the request message sent from TCR to CIS. UUID should be
constructed according to the RFC4122 version 4.
Length 36 characters
Pattern [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}
58e0a7d7-eebc-41d8-9669-0800200c9a66
Example 58E0A7D7-EEBC-41D8-9669-0800200C9A66
Table 5
Element represents date and time of sending the request message to the CIS. Date and time should be in ISO 8601
format.
Pattern [0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([+-][0-9]{2}:[0-9]{2}|Z)
2019-01-24T22:00:58+01:00
Example 2019-01-24T22:00:58-01:00
Table 6
17 | 121
3.5.1.4 Header Source
Length 32 characters
Example N/A
Table 7
3.5.1.5 TCR
Length 10
Pattern [a-zA-Z]{1}[0-9]{8}[a-zA-Z]{1}
Example K72001008V
Table 8
Length 10 characters
Pattern [a-z]{2}[0-9]{3}[a-z]{2}[0-9]{3}
Example ab123ab123
Table 9
Attribute representing the internal identification of the TCR. This identification attribute can be used for old cash
registers.
Length 50 characters
Example 2
Table 10
Length 10 characters
Pattern [a-z]{2}[0-9]{3}[a-z]{2}[0-9]{3}
Example ab123ab123
18 | 121
Table 11
Length 10 characters
Pattern [a-z]{2}[0-9]{3}[a-z]{2}[0-9]{3}
Example ab123ab123
Table 12
Element represents date from which the TCR will be used or is valid.
Pattern [0-9]{4}-[0-9]{2}-[0-9]{2}
Example 2019-01-24
Table 13
Element represents date until which the TCR will be used or is valid.
Pattern [0-9]{4}-[0-9]{2}-[0-9]{2}
Example 2019-01-24
Table 14
Example REGULAR
Table 15
Following table shows the list of allowed values inside Type attribute.
Value Description
Table 16
3.5.1.14 Signature
XML element stores enveloped digital signature described in the chapter 5.3.1.
19 | 121
3.5.2 REGISTER TCR RESPONSE DATA MESSAGE
Id Attribute [1, 1] Attribute used for signature creation and verification. Fixed value “Response”.
Version Attribute [1,1] Attribute used to specify compliance with XSD schema. For this version fixed value is “3”.
RequestUUID Attribute [1, 1] UUID of the request message for which this response message was sent.
SendDateTime Attribute [1, 1] Date and time of sending the message to the Tax administration.
Table 17
3.5.2.1 Header
Element generated by the CIS. It uniquely identifies the response message sent from CIS to TCR. UUID should be
constructed according to the RFC4122 version 4.
Length 36 characters
Pattern [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}
58e0a7d7-eebc-41d8-9669-0800200c9a66
Example 58E0A7D7-EEBC-41D8-9669-0800200C9A66
Table 18
Element generated by the TCR and referenced by the CIS. It uniquely identifies the request message for which the
response message was sent to the TCR. UUID should be constructed according to the RFC4122 version 4.
Length 36 characters
Pattern [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}
58e0a7d7-eebc-41d8-9669-0800200c9a66
Example 58E0A7D7-EEBC-41D8-9669-0800200C9A66
Table 19
Element represents date and time of sending the response message to the TCR. Date and time should be in ISO 8601
format.
20 | 121
Data type dateTime
Pattern [0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([+-][0-9]{2}:[0-9]{2}|Z)
2019-01-24T22:00:58+01:00
Example 2019-01-24T22:00:58-01:00
Table 20
3.5.2.2 TCRCode
Length 10 characters
Pattern [a-z]{2}[0-9]{3}[a-z]{2}[0-9]{3}
Example ab123ab123
Table 21
3.5.2.3 Signature
XML element stores enveloped digital signature described in the chapter 5.3.1.
Upon identifying a critical error, CIS will return an error data message containing the error’s numeric code and its text
description (see chapter 3.9). When errors which the system can interpret as a cyber-attack are identified, the system
does not send any response to the client (the taxpayer’s TCR).
The mandatory controls include all the controls from chapter 3.4 and the following:
Registered taxpayer TCR.IssuerNUIS does not reference active taxpayer in the Registry of taxpayers. 52
Registered business unit TCR.BusinUnitCode does not reference active business unit (premise) of the taxpayer. 41
Table 22
21 | 121
3.5.5 EXAMPLE XML
3.5.5.1 Request XML
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<RegisterTCRRequest xmlns="https://eFiskalizimi.tatime.gov.al/FiscalizationService/schema"
xmlns:ns2="http://www.w3.org/2000/09/xmldsig#" Id="Request" Version="3">
<Header SendDateTime="2019-12-02T10:57:01+01:00" UUID="78b37523-3677-416a-8bc0-e0dd77296fc7"/>
<TCR BusinUnitCode="bb123bb123" IssuerNUIS="L91806031N" MaintainerCode="mm123mm123" SoftCode="ss123ss123"
TCRIntID="1" ValidFrom="2019-12-05" Type="REGULAR"/>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
<Reference URI="#Request">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<DigestValue>0ilvSabbyg8..........GzADJ0DO8=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>tpGg48z..........0HmXIVOA==</SignatureValue>
<KeyInfo>
<X509Data>
<X509Certificate>MIIFYDCCB..........Pifz0UlKJAanmqN3</X509Certificate>
</X509Data>
</KeyInfo>
</Signature>
</RegisterTCRRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
During the day, the operator can put or take cash from the TCR and each of these actions must be registered (Operation
WITHDRAW or DEPOSIT).
In special cases defined by the Law (when there is failure of internet connection or if the taxpayer operates in the area
without internet connection), information about opening deposit or withdrawal must be stored in TCR memory. If there
is failure of TCR, data of the deposit/withdrawal is written in the bound invoice book and submitted to the Tax
Administration later together with all invoices that are going to be fiscalized through that process.
22 | 121
The open cash deposit can be 0.00.
Cash balance registration is not required in the business premises that operates only (i.e. issues only) with non-cash
invoices or in case of web-shop.
23 | 121
3.6.1 REGISTER CASH DEPOSIT REQUEST DATA MESSAGE
RegisterCashDepositRequest Element [1, 1] Root XML element representing registration of TCR first deposit.
Id Attribute [1, 1] Attribute used for signature creation and verification. Fixed value “Request”.
Version Attribute [1,1] Attribute used to specify compliance with XSD schema. For this version fixed value is “3”.
UUID Attribute [1, 1] UUID generated by a TCR for every data message sent to the CIS.
SendDateTime Attribute [1, 1] Date and time of sending the message from a TCR to the CIS.
SubseqDelivType Attribute [0, 1] Type of subsequent delivery if message is delivered after cash deposit activity occurred.
Source Attribute [0, 1] Only for internal usage. Must not be populated by a TCR.
CashDeposit Element [1, 1] XML element representing a single cash deposit request.
ChangeDateTime Attribute [1, 1] Date and time when the cash deposit was changed.
CashAmt Attribute [1, 1] Amount of the cash transferred to or from the TCR.
TCRCode Attribute [1, 1] Code of the TCR for which the cash deposit is registered.
Table 23
3.6.1.1 Header
Element generated by the TCR. It uniquely identifies the request message sent from TCR to CIS. UUID should be
constructed according to the RFC4122 version 4.
Length 36 characters
Pattern [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}
58e0a7d7-eebc-41d8-9669-0800200c9a66
Example 58E0A7D7-EEBC-41D8-9669-0800200C9A66
Table 24
Element represents date and time of sending the request message to the CIS. Date and time should be in ISO 8601
format.
Pattern [0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([+-][0-9]{2}:[0-9]{2}|Z)
2019-01-24T22:00:58+01:00
Example 2019-01-24T22:00:58-01:00
Table 25
This element shows the type of subsequent delivery if message is delivered after cash deposit issuance.
24 | 121
Data type string
Example NOINTERNET
Table 26
Following table shows the list of allowed values inside SubseqDelivType attribute.
Value Description
NOINTERNET When TCR operates in the area where there is no Internet available.
BOUNDBOOK When TCR is not working and message cannot be created with TCR.
SERVICE When there is an issue with the fiscalization service that blocks fiscalization.
TECHNICALERROR When there is a temporary technical error at TCR side that prevents successful fiscalization.
Table 27
Length 32 characters
Example N/A
Table 28
3.6.1.6 CashDeposit
Element representing date and time when the deposit of cash was changed in the cash register.
Pattern [0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([+-][0-9]{2}:[0-9]{2}|Z)
2019-01-24T22:00:58+01:00
Example 2019-01-24T22:00:58-01:00
Table 29
This is an XML element that represents the operation made at the cash register.
Example INITIAL
Table 30
Enumeration values for the operation are listed in the table below.
Value Description
25 | 121
Table 31
Element representing the amount of cash found in the cash register after the operation.
Pattern ([1-9][0-9]*|0)\.[0-9]{2}|0
Example 212.12
Table 32
Length 10 characters
Pattern [a-z]{2}[0-9]{3}[a-z]{2}[0-9]{3}
Example ab123ab123
Table 33
Length 10
Pattern [a-zA-Z]{1}[0-9]{8}[a-zA-Z]{1}
Example K72001008V
Table 34
3.6.1.12 Signature
XML element stores enveloped digital signature described in the chapter 5.3.1.
RegisterCashDepositResponse Element [1, 1] Root XML element representing registration of cash deposit.
Id Attribute [1, 1] Attribute used for signature creation and verification. Fixed value “Response”.
Version Attribute [1,1] Attribute used to specify compliance with XSD schema. For this version fixed value is “3”.
RequestUUID Attribute [1, 1] UUID of the request message for which this response message was sent.
SendDateTime Attribute [1, 1] Date and time of sending the message to the Tax Administration.
FCDC Element [1, 1] Fiscalization cash deposit code generated by the CIS.
Table 35
26 | 121
3.6.2.1 Header
Element generated by the CIS. It uniquely identifies the response message sent from CIS to TCR. UUID should be
constructed according to the RFC4122 version 4.
Length 36 characters
Pattern [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}
58e0a7d7-eebc-41d8-9669-0800200c9a66
Example 58E0A7D7-EEBC-41D8-9669-0800200C9A66
Table 36
Element generated by the TCR and referenced by the CIS. It uniquely identifies the request message for which response
message was sent to the TCR. UUID should be constructed according to the RFC4122 version 4.
Length 36 characters
Pattern [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}
58e0a7d7-eebc-41d8-9669-0800200c9a66
Example 58E0A7D7-EEBC-41D8-9669-0800200C9A66
Table 37
Element represents date and time of sending the response message to the TCR. Date and time should be in ISO 8601
format.
Pattern [0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([+-][0-9]{2}:[0-9]{2}|Z)
2019-01-24T22:00:58+01:00
Example 2019-01-24T22:00:58-01:00
Table 38
3.6.2.5 FCDC
Fiscalization cash deposit code. Unique code generated by the CIS for every successful cash deposit registration.
Length 36 characters
Pattern [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}
58e0a7d7-eebc-41d8-9669-0800200c9a66
Example 58E0A7D7-EEBC-41D8-9669-0800200C9A66
Table 39
3.6.2.6 Signature
XML element stores enveloped digital signature described in the chapter 5.3.1.
27 | 121
3.6.3 MANDATORY CONTROLS
Mandatory controls shall be performed by CIP system in process of registering the cash deposit of TCR. In case that the
control is not passed, an error message will be returned with an error code.
Upon identifying a critical error, CIS will return an error data message containing the error’s numeric code and its text
description (see chapter 3.9). When errors which the system can interpret as a cyber-attack are identified, the system
does not send any response to the client (the taxpayer’s TCR).
The mandatory controls include all the controls from chapter 3.4 and the following:
Registered taxpayer CashDeposit.IssuerNUIS does not reference active taxpayer in the Registry of taxpayers. 52
CashDeposit.TCRCode does not reference registered or active TCR or the TCR doesn’t belongs 53
Registered TCR
to the referenced issuer.
Table 40
28 | 121
<X509Data>
<X509Certificate>MIIFYDCCB.......... ..........Pifz0UlKJAanmqN3</X509Certificate>
</X509Data>
</KeyInfo>
</Signature>
</RegisterCashDepositRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
29 | 121
3.7 REGISTER INVOICE
Issuer of the invoice is obliged to deliver information on each invoice he issues. Information has to be delivered at the
moment of issuing. Exceptionally, it can be delivered afterwards (as stipulated in the Law).
Data exchange process starts at the moment when the issuer is about to issue an invoice to the customer. The TCR
prepares invoice data and based on that data it creates IIC. After that it prepares XML invoice request message and signs
it electronically by its certificate private key (using a certificate that was issued to issuer by CIS with purpose being the
implementation of fiscalization). After that the 1-way TLS communication is started and once successful it calls the
service.
Central information system receives and processes request message. If the request is successfully processed, central
information system prepares XML message that contains FIC, which is unique for every invoice, signs it electronically
with its certificate, and sends it back to the TCR.
TCR receives answer message and checks its electronic signature. After that, cashier (operator) issues the invoice and
hands it to the buyer.
Corrective invoice is a special type of invoice which contains a reference to the original invoice and is issued in order to
change some data in the original invoice, e.g. some items from the original invoice should be removed because they are
returned from the buyer to the seller.
If there were errors during the operation (invalid XML, invalid certificate or similar), central information system shows
the error as XML message. If that is the case, there is no FIC so issuer will issue the invoice without FIC. The invoice
issuing process must not be halted because of the error, but the issuer is obliged to correct the error and deliver it after
he receives the correct message.
In all situations when issuer does not get FIC for invoice he issued (loss of Internet connection, computer breakdown,
central information system unavailability or similar), he is obliged to make another invoice request. Invoice is found to
be properly sent and reported to the CIS once issuer gets FIC for it.
In cases when there are invoices without FIC, those should be sent again later (and in timeframe defined in laws), as
invoices processed at the moment have advantage over invoices issued prior. Invoices without FIC should be delivered
when traffic load is smaller or immediately and automatically when Internet connection becomes available again.
When the taxpayer is operating in the area without internet connection, he can export invoice registration request into
special file format which can be then delivered through the Central invoice platform with bulk upload of invoice or
brought to the Tax Administration office.
Maximum time-out for machine to wait for the answer that contains FIC is set by issuer himself. Issuer needs to check
the Internet connection quality and time needed for issuing one receipt so that will not affect his business. When
calculating maximum time-out, issuer should count in additional two seconds (time needed for request to come in and
get out of process).
Invoice registration can be verified by online application. Each invoice contains a QR-code which contains a link to the
web page which displays information about the invoice, if it was successfully registered. Details are explained in
subchapter 3.7.6.
30 | 121
Figure 5 – Fiscalization of invoices
31 | 121
Figure 6 - XML validations
32 | 121
Prepared response message is sent back to the taxpayer.
Field Occurrence
Name Description
type [Min, Max]
RegisterInvoiceRequest Root [1, 1] Root XML element representing register invoice message.
Id Attribute [1, 1] Attribute used for signature creation and verification. Fixed value “Request”.
Version Attribute [1,1] Attribute used to specify compliance with XSD schema. For this version fixed value is “3”.
XML element representing header of the invoice containing data about the message (request)
Header Element [1, 1] sent.
UUID Attribute [1, 1] UUID generated by a TCR for every register sale data message send to the CIS.
SendDateTime Attribute [1, 1] Date and time of sending the register invoice data message from a TCR to the CIS.
SubseqDelivType Attribute [0, 1] Type of subsequent delivery if message is delivered after invoice issuance.
Source Attribute [0, 1] Only for internal usage. Must not be populated by a TCR.
IssueDateTime Attribute [1, 1] Date and time when the invoice is created and issued at TCR.
Invoice number composed of invoice ordinal number, year of invoice issuance and code of TCR
InvNum Attribute [1, 1] that issued invoice.
TCRCode Attribute [0, 1] Code of the device that issued the invoice.
TaxFreeAmt Attribute [0, 1] The total amount of goods and services delivered when VAT is not charged
MarkUpAmt Attribute [0, 1] Amount related to special procedure for margin scheme
GoodsExAmt Attribute [0, 1] Amount of goods for export from the Republic of Albania.
TotPrice Attribute [1, 1] Total price of all items including taxes and discounts.
OperatorCode Attribute [1, 1] Reference to the operator code, who is operating on TCR and issues invoices.
ImpCustDecNum Attribute [0, 1] Import customs declaration number. Only for internal usage. Must not be populated by a TCR.
IIC Attribute [1, 1] Issuer’s invoice code calculated as MD5 hash from IICSignature attribute.
IsReverseCharge Attribute [1, 1] If true, the buyer is obliged to pay the VAT.
CorrectiveInv Element [0, 1] XML element groups data for an original invoice that will be corrected with current invoice.
IssueDateTime Attribute [1, 1] Date and time the original invoice is created and issued at TCR.
XML element groups data for an original invoice that will be declared bad debt invoice, as
BadDebtInv Element [0, 1] uncollectible.
33 | 121
IssueDateTime Attribute [1, 1] Date and time the original invoice is created and issued at TCR.
XML element that contains list of IIC-s to which this invoice referred to, e.g. if this is a summary
Element invoice it shall contain a reference to each individual invoice issued and fiscalized before and
SumInvIICRefs [0, 1]
included in this summary invoice.
XML element that contains one IIC reference, e.g. reference of the invoice that is part of the
SumInvIICRef Element [1, 1000] summary invoice.
IIC Attribute [1, 1] IIC of the invoice that is referenced in the summary invoice.
IssueDateTime Attribute [1, 1] Date and time the invoice referenced by the summary invoice is created and issued at TCR.
XML element representing supply date or period of supply, if it is different from the date when the
SupplyDateOrPeriod Element [0, 1] invoice was issued.
PayMethod Element [1, 10] XML element representing one payment method.
CompCard Attribute [0, 1] Company card number if the payment method is company card.
Vouchers Element [0, 1] XML element that contains list of voucher numbers if the payment method is voucher.
Voucher Element [1, 20] XML element that contains one voucher number.
XML element representing currency in which the amount on the invoice should be paid, if
Currency Element [0, 1] different from ALL
Code Attribute [1, 1] Currency code in which the amount on the invoice should be paid, if different from ALL.
Exchange rate applied to calculate the equivalent amount of foreign currency for the total amount
ExRate Attribute [1, 1] expressed in ALL. Exchange rate express equivalent amount of ALL for 1 unit of foreign currency.
True if exchange transaction is buying of the foreign currency.
IsBuying Attribute [0, 1] False if exchange transaction is selling of the foreign currency.
C (Code) Attribute [0, 1] Code of the item from the barcode or similar representation.
U (Unit of measure) Attribute [1, 1] What is the item’s unit of measure (piece, weight measure, length measure, etc.)
UPB (Unit price without VAT) Attribute [1,1] Unit price before Value added tax is applied
UPA (Unit Price with VAT) Attribute [1, 1] Unit price after Value added tax is applied
34 | 121
RR (Rebate Reducing base price) Attribute [0, 1] Is rebate reducing tax base amount?
IN (Is Investment) Attribute [0, 1] If true, the item is investment for the buyer. Mandatory only for importation of goods.
VD (Vouchers sold data) Element [1, 1] XML element representing data of vouchers sold
VN (Voucher sold numbers) Element [1, 1] XML element representing serial numbers of voucher sold.
V (Voucher) Element [1, 1000] XML element representing single voucher serial number.
SameTaxes Element [0, 1] XML element representing list of the aggregated items that go under same tax rate/exemption.
SameTax Element [1, 20] XML element representing one same tax item.
ConsTaxes Element [0, 1] XML element representing list of special, consumption taxes.
ConsTax Element [1, 20] XML element representing one cons tax item.
Signature Element [1, 1] XML element representing signature for the invoice.
Table 41
3.7.1.1 Header
Element generated by the TCR. It uniquely identifies the request message sent from TCR to CIS. UUID should be
constructed according to the RFC4122 version 4.
Length 36 characters
35 | 121
Pattern [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}
58e0a7d7-eebc-41d8-9669-0800200c9a66
Example 58E0A7D7-EEBC-41D8-9669-0800200C9A66
Element represents date and time of sending the request message to the CIS. Date and time should be in ISO 8601
format.
Pattern [0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([+-][0-9]{2}:[0-9]{2}|Z)
2019-01-24T22:00:58+01:00
Example 2019-01-24T22:00:58-01:00
Table 42
This element shows the type of subsequent delivery if message is delivered after invoice issuance.
Example NOINTERNET
Table 43
Following table shows the list of allowed values inside SubseqDelivType attribute.
Value Description
When TCR operates in the area where there is no Internet available. Invoice is issued with IIC and without FIC.
NOINTERNET IIC in the message with this type must corresponds to the IIC issued to the customer.
BOUNDBOOK When TCR is not working and message cannot be created with TCR. Invoice is issued without IIC and FIC from the bound invoice book.
When there is an issue with the fiscalization service that blocks fiscalization. Invoice is issued with IIC and without FIC.
SERVICE IIC in the message with this type must corresponds to the IIC issued to the customer.
When there is a temporary technical error at TCR side that prevents successful fiscalization. Invoice is issued with IIC and without FIC
TECHNICALERROR IIC in the message with this type must corresponds to the IIC issued to the customer.
Table 44
Length 32 characters
Example N/A
Table 45
3.7.1.6 Invoice
Type of the item represents the type of invoice item, e.g. regular sale or a returned item.
Example CASH
36 | 121
Table 46
Following table shows the list of allowed values inside TypeOfInv attribute.
Value Description
CASH Cash
NONCASH Non-cash
Table 47
Example ABROAD
Table 48
Following table shows the list of allowed values inside TypeOfSelfIss attribute.
Value Description
SELF Self-consumption.
OTHER Other
Table 49
Is invoice simplified.
Example true
Table 50
Time and date when the invoice is created and issued at TCR.
Pattern [0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([+-][0-9]{2}:[0-9]{2}|Z)
2019-01-24T22:00:58+01:00
Example 2019-01-24T22:00:58-01:00
Table 51
Invoice number composed of invoice ordinal number, year of invoice issuance and code of the TCR that issued invoice
if the invoice is not equal to NONCASH. Invoice ordinal number is a sequence that is assigned to each new invoice so
that the invoices can be counted. The sequence is reset at the beginning of each year.
37 | 121
Data type string
Pattern [1-9]{1}[0-9]{0,14}\/[0-9]{4}(\/[a-z]{2}[0-9]{3}[a-z]{2}[0-9]{3})?
TypeOfInv is not equal to NONCASH: 9934/2019/ab123ab123
Example TypeOfInv is equal to NONCASH: 9934/2019
Table 52
Invoice ordinal number. Invoice ordinal number is a sequence that is assigned to each new invoice so that the invoices
can be counted. The sequence is reset at the beginning of each year.
Constraint Positive
2
Example
Table 53
Pattern [a-z]{2}[0-9]{3}[a-z]{2}[0-9]{3}
Example ab123ab123
Table 54
Example true
Table 55
Invoice amount that is exempted from VAT, either because the taxpayer is not in the VAT register or some other
exemption applied that is different from the one in other fields of this XML message.
Pattern -?([1-9][0-9]*|0)\.[0-9]{2}|0
Example 17.24
Table 56
The total amount pertaining to the special margin scheme procedure in the invoice in decimal form (the taxable
amount). The margin for used goods, works of art, collectibles or antiques.
Pattern -?([1-9][0-9]*|0)\.[0-9]{2}|0
38 | 121
Example 23.10
Table 57
Pattern -?([1-9][0-9]*|0)\.[0-9]{2}|0
Example 246.00
Table 58
Pattern -?([1-9][0-9]*|0)\.[0-9]{2}|0
Example 212.12
Table 59
Total amount of VAT (value added tax) which needs to be payed for all groups of items listed in this invoice.
Pattern -?([1-9][0-9]*|0)\.[0-9]{2}|0
Example 242.23
Table 60
Total price which needs to be payed by the customer for all groups of items listed in this invoice including VAT.
Pattern -?([1-9][0-9]*|0)\.[0-9]{2}|0
Example 212.12
Table 61
Reference to the operator who is operating on TCR. Value represents code of the operator.
Length 10 characters
Pattern [a-z]{2}[0-9]{3}[a-z]{2}[0-9]{3}
Example ab123ab123
Table 62
39 | 121
Data type string
Length 10 characters
Pattern [a-z]{2}[0-9]{3}[a-z]{2}[0-9]{3}
Example ab123ab123
Table 63
Length 10 characters
Pattern [a-z]{2}[0-9]{3}[a-z]{2}[0-9]{3}
Example ab123ab123
Table 64
Import customs declaration number. Only for internal use. Must not be populated by a TCR.
Length 50 characters
Example N/A
Table 65
Invoice identification code which is generated by the TCR of the issuer of the invoice. This is a unique code for every
invoice. The code is formed by concatenating the fields, signing with issuer’s private key and calculating MD5 hash.
Further description can be found tin the chapter 5.3.3.3.
Max length 32
Pattern [0-9a-fA-F]{32}
C701FB4839E7D2C3D8DBC81BBAC06164
Example c701fb4839e7d2c3d8dbc81bbac06164
Table 66
Signed invoice identification code concatenated parameters. Further description can be found tin the chapter 5.3.3.2.
Pattern [0-9a-fA-F]{512}
B2C218486302EC553EE1AB9124E1A14705742E870E8872EF34E63617AB252E189ACDF7A3E3F5C82061FFFF8AC2826A5588596A8807F648410899B6193F77F4BDCDFA
87553A62079A2EF9E6E6F0B8DA1038968D2FCB920B580EBF33ACEEDFEA0DAA78067F916ADC5D278CC237EFD53A6156EABAFBE98A8F3CE99E854818822FA20C0FF46
Example E5B3805264BBCD085F0A8A9BD503A1304E9202D7304FF93541FB7FAA4629EE0BD7ED566F610DCD047721AEAA828DFECA651087CDE5AF95C125793D4CD8E83B801D
E171335A866D7E31F1473BF0C93EBFD994326C0FE97ACB8DA722F788EA27B8D9E15E8E7B6EF772AB7534060F2BCAF1C3E82645235C9D1857B0790C2
Table 67
40 | 121
3.7.1.27 Invoice CorrectiveInv
XML element groups data for an original invoice that is will be corrected with current invoice.
Reference to the invoice IIC of the original invoice. It is entered only if this is a corrective invoice of the original invoice
that has to be changed.
Max length 32
Pattern [0-9a-fA-F]{32}
C701FB4839E7D2C3D8DBC81BBAC06164
Example c701fb4839e7d2c3d8dbc81bbac06164
Table 68
Date and time the original invoice is created and issued at TCR.
Pattern [0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([+-][0-9]{2}:[0-9]{2}|Z)
2019-01-24T22:00:58+01:00
Example 2019-01-24T22:00:58-01:00
Table 69
Example DEBIT
Table 70
Enumeration values for corrective invoice types are listed in table below.
Value Description
Table 71
XML element groups data for an original invoice that will be declared bad debt invoice, as uncollectible.
Max length 32
Pattern [0-9a-fA-F]{32}
41 | 121
C701FB4839E7D2C3D8DBC81BBAC06164
Example c701fb4839e7d2c3d8dbc81bbac06164
Table 72
Pattern [0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([+-][0-9]{2}:[0-9]{2}|Z)
2019-01-24T22:00:58+01:00
Example 2019-01-24T22:00:58-01:00
Table 73
Example true
Table 74
Pattern [0-9]{4}-[0-9]{2}-[0-9]{2}
Example 2019-01-24
Table 75
If invoice is created for einvoice. When this flag is set, invoice is confirmed only after einvoice is received by the
einvoice service.
Example true
Table 76
XML element that contains list of IIC-s referenced by this Summary invoice, e.g. individual invoices (or invoice/orders)
that are included in the Summary invoice and which had payment method type COMPANY or ORDER.
XML element that contains one IIC reference, e.g. reference of the invoice that is part of the summary invoice.
42 | 121
Data type string
Pattern [0-9a-fA-F]{32}
C701FB4839E7D2C3D8DBC81BBAC06164
Example c701fb4839e7d2c3d8dbc81bbac06164
Table 77
Date and time the invoice referenced by the summary invoice is created and issued at TCR.
Pattern [0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([+-][0-9]{2}:[0-9]{2}|Z)
2019-01-24T22:00:58+01:00
Example 2019-01-24T22:00:58-01:00
Table 78
XML element representing supply date or period of supply, if different from the date when the invoice was issued.
Start date of the supply. To represent a specific date, start date must be same as the end date. To represent a period,
start date must be before end date and in the same month as the end date.
Pattern [0-9]{4}-[0-9]{2}-[0-9]{2}
Example 2019-01-24
Table 79
End date of the supply. To represent a specific date, end date must be same as the start date. To represent a period,
end date must be after start date, and in the same month as start date.
Pattern [0-9]{4}-[0-9]{2}-[0-9]{2}
Example 2019-01-24
Table 80
XML element representing a single payment method on the list of payment methods.
Method of payment.
43 | 121
Constraint Enumeration, described in the table below.
Example BANKNOTE
Table 81
Enumeration values for the method of payment are listed in table below.
ORDER Invoice not yet paid. It will be paid by summary invoice. CASH
Table 82
Pattern -?([1-9][0-9]*|0)\.[0-9]{2}|0
Example 212.12
Table 83
Length 50 characters
Example 1257896
Table 84
XML element that contains list of voucher numbers if the payment method is voucher. It can be more than one
voucher used for the same invoice (i.e. for the same supply, but one voucher cannot be split for 2 or more supplies).
44 | 121
3.7.1.51 Invoice PayMethods PayMethod Vouchers Voucher Num
Pattern [1-9][0-9]{0,7}-[0-9]{4}-[a-zA-Z]{1}[0-9]{8}[a-zA-Z]{1}
2-2020- J43675678H
Example 34564-2020- J43675678H
Table 85
XML element representing currency in which the amount on the invoice is or should be paid.
Currency code in which the amount on the invoice is or should be paid. Code is expressed by the ISO 4217 standard.
Example EUR
Table 86
Enumeration values for selected currency codes are listed in table below. Other values can be found in the
fiscalization service scheme in the chapter 8.
Value Description
EUR Euro
… …
Table 87
Exchange rate applied to calculate the equivalent amount of foreign currency for the total amount expressed in ALL.
Exchange rate express equivalent amount of ALL for 1 unit of foreign currency.
Example 123.56
Table 88
45 | 121
3.7.1.55 Invoice Currency IsBuying
True if exchange transaction is buying of the foreign currency. False if exchange transaction is selling of the foreign
currency.
Example true
Table 89
Length 20 characters
For NUIS: K72001008V
Example For Social security number: 123-45-6789
Table 90
Example NUIS
Table 91
Enumeration values for the identification number type are listed in table below.
Value Description
ID Personal ID number
Table 92
Seller’s name.
Table 93
46 | 121
3.7.1.60 Invoice Seller Address
Seller’s address.
Table 94
Seller’s town.
Example Tirana
Table 95
Example ALB
Table 96
Value Description
ALB Albania
GRC Greece
RKS Kosovo
MNE Montenegro
ITA Italy
… …
Table 97
Length 20 characters
For NUIS: K72001008V
Example For Social security number: 123-45-6789
Table 98
47 | 121
3.7.1.65 Invoice Buyer IDType
Example NUIS
Table 99
Enumeration values for the identification number type are listed in table below.
Value Description
ID Personal ID number
Table 100
Buyer’s name.
Table 101
Buyer’s address.
Buyer’s town.
Example Tirana
Table 102
48 | 121
Example ALB
Table 103
Value Description
ALB Albania
GRC Greece
RKS Kosovo
MNE Montenegro
ITA Italy
… …
Table 104
XML element representing list of invoice items (goods or services). Items which are the same should be grouped as one
item (one XML element called “Item”) with the appropriate amount (sum of the same items).
Table 105
Code of the item from the barcode or similar representation. It helps in identification of the product (item).
Example 978020137962
Table 106
Example Kg
Table 107
49 | 121
3.7.1.75 Invoice Items I Q (Item Quantity)
Pattern -?([1-9][0-9]*|0)(\.[0-9]{1,3})?
3.500
Example -0.375
Table 108
Price of one item before Value added tax is applied (unit price without VAT).
Pattern ([1-9][0-9]*|0)\.[0-9]{2}|0
Example 3.50
Table 109
Price of one item after Value added tax is applied (unit price with VAT). It is calculated as PA/Q.
Pattern ([1-9][0-9]*|0)\.[0-9]{2}|0
Example 3.85
Table 110
Rebate percentage.
Table 111
Example True
Table 112
Price before VAT for the items in this group of items. This is not the unit price of the item. It is the unit price multiplied
by the quantity of items (UPB*Q).
Pattern -?([1-9][0-9]*|0)\.[0-9]{2}|0
50 | 121
Example 134.34
Table 113
Rate of value added tax expressed as percentage. Currently allowed tax rates are 0%, 6%, 10% and 20%.
Pattern -?([1-9][0-9]*|0)\.[0-9]{2}|0
Example 10.00
Table 114
Example TYPE_1
Table 115
Enumeration values for the exempt from VAT types are listed in table below.
Value Description
Exempt type 1.
TYPE_1 Exempted on the basis of Article 51 of the VAT law
Exempt type 2.
TYPE_2 Exempted on the basis of Articles 53 and 54 of the VAT law
TAX_FREE Tax free amount. Sales without VAT that is exempted based on VAT law other then articles 51, 53 and 54 of VAT law, and is not margin scheme nor export of goods
MARGIN_SCHEME Margin scheme (Travel agents VAT scheme, second hand goods VAT scheme, works of art VAT scheme, collectors’ items and antiques VAT scheme etc.).
Table 116
Amount of value added tax for all quantity of the same item. Calculated as PB*VR
Pattern -?([1-9][0-9]*|0)\.[0-9]{2}|0
Example 3.50
Table 117
Item bought is investment for the buyer. Optional field, mandatory just for importation of goods.
Example true
Table 118
Price including VAT for all quantity of the same item. Is calculated as PB+VA
51 | 121
Data type decimal
Pattern -?([1-9][0-9]*|0)\.[0-9]{2}|0
Example 3.50
Table 119
Pattern [0-9]{4}-[0-9]{2}-[0-9]{2}
Example 2020-05-28
Table 120
Nominal voucher value, i.e. the amount written on the voucher or accompanying documentation representing the
price of the goods and services that can be exchanged for the voucher. If there is no nominal value on the voucher,
but jus the quantity of the goods that can be exchanged, then the nominal value is the price that the buyer of the
voucher has paid to the seller (i.e. issuer) of the voucher.
Pattern ([1-9][0-9]*|0)\.[0-9]{2}|0
Example 350.00
Table 121
Voucher sold serial number consistent of: ordinal number-year of issuance-NIPT of issuer.
Pattern [1-9][0-9]{0,7}-[0-9]{4}-[a-zA-Z]{1}[0-9]{8}[a-zA-Z]{1}
2-2020- J43675678H
Example 34564-2020- J43675678H
Table 122
52 | 121
3.7.1.93 Invoice SameTaxes
XML element representing list of invoice items (goods or services) that are under same VAT rate/or exempted form
VAT. All items of same VAT rate/exemption are grouped together. Only the exemption Type_1 and Type_2 are written
here.
XML element representing several goods or services that are under same VAT rate/exemption.
Constraint Positive
Example 2
Table 123
Pattern -?([1-9][0-9]*|0)\.[0-9]{2}|0
Example 12.20
Table 124
VAT rate applied on items with the same tax rate/exemption, expressed as percentage.
Pattern -?([1-9][0-9]*|0)\.[0-9]{2}|0
Example 10.00
Table 125
Example TYPE_1
Table 126
Enumeration values for the exempt from VAT types are listed in table below.
Value Description
Exempt type 1.
TYPE_1 Exempted on the basis of Article 51 of the VAT law
Exempt type 2.
TYPE_2 Exempted on the basis of Articles 53 and 54 of the VAT law
Table 127
53 | 121
3.7.1.99 Invoice SameTaxes SameTax VATAmt
Pattern -?([1-9][0-9]*|0)\.[0-9]{2}|0
Example 246.00
Table 128
XML element representing list of invoice items (goods or services) that are under consumption tax.
XML element representing a single goods or services that are under same consumption tax.
Constraint Positive
Example 2
Table 129
Pattern -?([1-9][0-9]*|0)\.[0-9]{2}|0
Example 12.20
Table 130
Pattern -?([1-9][0-9]*|0)\.[0-9]{2}|0
Example 10.00
Table 131
Pattern -?([1-9][0-9]*|0)\.[0-9]{2}|0
Example 246.00
Table 132
54 | 121
3.7.1.106 Invoice Fees
Example PACK
Table 133
Value Description
Table 134
Pattern -?([1-9][0-9]*|0)\.[0-9]{2}|0
Example 12.20
Table 135
3.7.1.110 Signature
XML element stores enveloped digital signature described in the chapter 5.3.1.
RegisterInvoiceResponse Element [1, 1] Root XML element representing register invoice response message.
Id Attribute [1, 1] Attribute used for signature creation and verification. Fixed value “Response”.
Version Attribute [1,1] Attribute used to specify compliance with XSD schema. For this version fixed value is “3”.
Header Element [1, 1] XML element representing generic message data about the response sent.
UUID Attribute [1, 1] UUID generated by a CIS for every register invoice response data message send to the TCR.
RequestUUID Attribute [1, 1] UUID of the request message for which this response message was sent.
SendDateTime Attribute [1, 1] Date and time of sending the register invoice response data message from a CIS to the TCR.
FIC Element [1, 1] CIS generated verification code that can be used to uniquely identify registered invoice.
55 | 121
Table 136
3.7.2.1 Header
Element generated by the CIS for every message sent to the TCR. It uniquely identifies the message sent to the TCR.
UUID should be constructed according to the RFC4122 version 4.
Length 36 characters
Pattern [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}
58e0a7d7-eebc-41d8-9669-0800200c9a66
Example 58E0A7D7-EEBC-41D8-9669-0800200C9A66
Table 137
Element generated by the TCR and referenced by the CIS. It uniquely identifies the request message for which response
message was sent to the TCR. UUID should be constructed according to the RFC4122 version 4.
Length 36 characters
Pattern [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}
58e0a7d7-eebc-41d8-9669-0800200c9a66
Example 58E0A7D7-EEBC-41D8-9669-0800200C9A66
Table 138
Element represents date and time of sending the response message to the TCR. Date and time should be in ISO 8601
format.
Pattern [0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([+-][0-9]{2}:[0-9]{2}|Z)
2019-01-24T22:00:58+01:00
Example 2019-01-24T22:00:58-01:00
Table 139
3.7.2.5 FIC
Element represents unique number generated by the CIS under which the requested invoice is registered.
Length 36 characters
Pattern [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}
58e0a7d7-eebc-41d8-9669-0800200c9a66
Example 58E0A7D7-EEBC-41D8-9669-0800200C9A66
Table 140
3.7.2.6 Signature
XML element stores enveloped digital signature described in the chapter 5.3.1.
56 | 121
3.7.3 MANDATORY CONTROLS
Mandatory controls shall be performed on received invoices data messages in the CIP system in real time. When any of
the critical controls return a failure, the invoice data message shall not be approved, and FIC shall not be issued.
Upon identifying a critical error, CIS will return an error data message containing the error's numeric code and its text
description (see chapter 3.9). When errors which the system can interpret as a cyber-attack are identified, the system
does not send any response to the client (the TCR).
The mandatory controls include all the controls from chapter 3.1 and the following:
Issuer VAT status Invoice.IsIssuerInVAT status is different from the real issuer VAT status. 44
invalid
Cash invoice limit Invoice.TypeOfInv is CASH, Invoice Buyer IDType is NUIS, Invoice Seller IDType is NUIS and Invoice.TotPrice is 40
more than allowed amount.
Invoice.IssueDateTime more than 2 days in the past from now and Header.SubseqDelivType equals to
Issue datetime
SERVICE or TECHNICALERROR. 11
invalid
Invoice.IssueDateTime more than 11 days in the past from now and Header.SubseqDelivType equals
BOUNDBOOK.
Invoice.IssueDateTime is not in the current or previous month or is in the previous month but the send date
is not less or equal to 10th of the current month and Header.SubseqDelivType equals NOINTERNET.
Invoice.CorrectiveInv or Invoice.BadDebtInv does not exist and negative values found in following fields:
Invoice.TaxFreeAmt
Invoice.MarkUpAmt
Invoice.GoodsExAmt
Negative values Invoice.TotPriceWoVAT
invalid Invoice.TotVATAmt
Invoice.TotPrice
Invoice.SameTaxs.SameTax.VATAmt
Invoice.ConsTaxes.ConsTax.ConsTaxAmt
Fees.Fee.Amt
TCRCode invalid Invoice.TCRCode does not exist and Invoice.TypeOfInv equals to CASH. 11
57 | 121
Supply date or Invoice.SupplyDateOrPeriod.Start date is not before Invoice.SupplyDateOrPeriod.End date.
11
period invalid Invoice.SupplyDateOrPeriod.Start month is different from Invoice.SupplyDateOrPeriod.End month.
Seller fields Seller.IDType is not NUIS or ID and Seller.Address, Seller.Town and Seller.Country does not exist.
11
missing
Buyer fields All Invoice.Buyer fields doesn’t exist and Invoice.TypeOfSelfIss exists or Invoice.GoodsExAmt exists or
11
missing Invoice.IsReverseCharge equals true.
Total price TotPriceWoVAT attribute value is not sum of SameTaxes, TaxFreeAmt, MarkUpAmt and GoodsExAmt
59
without VAT attributes.
Invoice number Invoice.InvNum is not composed of invoice ordinal number, year of invoice issuance and code of TCR that
60
invalid issued invoice only if CASH invoice is issued.
Invoice.SumInvIICRefs.SumInvIICRef.IssueDateTime or Invoice.CorrectiveInv.IssueDateTime or
Issue date of Invoice.BedDeptInv.IssueDateTime are in distant past.
61
original invoice Invoice.SumInvIICRefs.SumInvIICRef.IssueDateTime or Invoice.CorrectiveInv.IssueDateTime or
Invoice.BedDeptInv.IssueDateTime are in future.
Table 141
58 | 121
<DigestValue>ECWby0FKaNQ6..........m8BPjyk6g=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>LHFUg3xNi..........tjpeYNw==</SignatureValue>
<KeyInfo>
<X509Data>
<X509Certificate>MIIFYDCC..........Pifz0UlKJAanmqN3</X509Certificate>
</X509Data>
</KeyInfo>
</Signature>
</RegisterInvoiceRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
QR-code contains a URL with special query string which identifies the invoice. First part of the URL is fixed and contains
the protocol, hostname and path followed by the query parameters.
Test environment:
o https://efiskalizimi-app-test.tatime.gov.al/invoice-check/#/verify
Production environment:
o https://efiskalizimi-app.tatime.gov.al/invoice-check/#/verify
Query parameters:
crtd Date and time when the invoice was created. 2019-09-26T13:50:13+01:00
Value is displayed in special format “yyyy-mm-
ddThh:mi:ss+/-zh:zm” where yyyy represents
59 | 121
year, mm month, dd day of the month, T is
fixed value, hh represents hours in 24-hours
format, mi minutes, ss seconds, +/-zh:zm
represents time zone.
QR code must be created with at least M error correction level that guaranties that at least 15% of character can be
restored.
Example URL encoded in a QR-code with sample values from the Table 142 is:
https://efiskalizimi-app-test.tatime.gov.al/invoice-
check/#/verify?iic=EA26D5BE7F45827026108F825A8A512B&tin=L91806031N&crtd=2019-09-
26T13:50:13+01:00&ord=6&bu=bg517kw842&cr=xb131ap287&sw=gz434bv927&prc=199.00
60 | 121
Process itself starts with the request for the new note. Fiscalization is initiated and an XML message is created on the
taxpayer’s electronic billing device and then signed with a digital certificate. Message is then sent to the CIS. If it is valid,
it is saved in the database and its IIC is generated. XML message with data is then created and signed and then sent back
to the electronic billing device where it is printed out.
If the message is not valid when CIS receives it, it will be sent back and refiscalized.
61 | 121
3.8.1 WAREHOUSE TRANSFER NOTE REQUEST MESSAGE
Field Occurrence
Name Description
type [Min, Max]
RegisterWTNRequest Root [1, 1] Root XML element representing warehouse transfer note request message.
Header Element [1, 1] XML element representing header of the note containing data about the message sent.
SendDateTime Attribute [1, 1] Date and time of sending the message from a TCR to the CIS.
SubseqDelivType Attribute [0, 1] Type of subsequent delivery if message is delivered after warehouse transfer note issuance.
Source Attribute [0, 1] Only for internal usage. Must not be populated by a TCR.
WTN Element [1, 1] XML element representing header of the note containing data about the message sent.
OperatorCode Attribute [1,1] Reference to the operator who is operating on TCR. Value represents code of the operator.
BusinUnitCode Attribute [1,1] Code of the business unit in which the note is issued.
SoftCode Attribute [1,1] Code of the software used for WTN issuing.
Unique identifying number of the warehouse transfer note. It consists of ordinal number of the
WTNNum Attribute [1,1] note and calendar year, without leading zero.
VehPlates Attribute [1,1] Plates of the vehicle that will transport the goods.
StartDateTime Attribute [1,1] Date and time of the transport departure from start address.
DestinDateTime Attribute [1,1] Expected date when the goods should arrive to its destination.
WTNICSignature Attribute [1,1] Signed warehouse transfer note identification code concatenated parameters.
Issuer Element [1,1] XML element representing the issuer of the WTN.
Carrier Element [0,1] XML element representing the carrier of the goods.
62 | 121
IDType Attribute [1,1] Carrier's identification number type.
C (Code) Attribute [0,1] Code of the item from the barcode or similar representation.
U (Unit of measure) Attribute [1,1] What is the item’s unit of measure (piece, weight measure, length measure…).
Table 143
63 | 121
3.8.1.1 Header
Element generated by the CIS for every message sent to the TCR. It uniquely identifies the message sent to the TCR.
UUID should be constructed according to the RFC4122 version 4.
Length 36 characters
Pattern [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}
58e0a7d7-eebc-41d8-9669-0800200c9a66
Example 58E0A7D7-EEBC-41D8-9669-0800200C9A66
Table 144
Element represents date and time of sending the response message to the TCR. Date and time should be in ISO 8601
format.
Pattern [0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([+-][0-9]{2}:[0-9]{2}|Z)
2019-01-24T22:00:58+01:00
Example 2019-01-24T22:00:58-01:00
Table 145
This element shows the type of subsequent delivery if message is delivered after warehouse transfer note issuance.
Example NOINTERNET
Table 146
Following table shows the list of allowed values inside SubseqDelivType attribute.
Value Description
NOINTERNET When TCR operates in the area where there is no Internet available.
BOUNDBOOK When TCR is not working and message cannot be created with TCR.
SERVICE When there is an issue with the fiscalization service that blocks fiscalization.
TECHNICALERROR When there is a temporary technical error at TCR side that prevents successful fiscalization.
Table 147
Length 32 characters
Example N/A
Table 148
64 | 121
3.8.1.6 WTN
Example WTN
Table 149
Following table shows the list of allowed values inside Type attribute.
Value Description
Table 150
Example SALES
Table 151
Following table shows the list of allowed values inside Transaction attribute.
Value Description
DOOR The goods are transferred for door to door sales transaction type.
Table 152
Time and date when the WTN is created and issued at TCR.
Pattern [0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([+-][0-9]{2}:[0-9]{2}|Z)
2019-01-24T22:00:58+01:00
Example 2019-01-24T22:00:58-01:00
Table 153
Reference to the operator who is operating on TCR. Value represents code of the operator.
65 | 121
Length 10 characters
Pattern [a-z]{2}[0-9]{3}[a-z]{2}[0-9]{3}
Example ab123ab123
Table 154
Length 10 characters
Pattern [a-z]{2}[0-9]{3}[a-z]{2}[0-9]{3}
Example ab123ab123
Table 155
Length 10 characters
Pattern [a-z]{2}[0-9]{3}[a-z]{2}[0-9]{3}
Example ab123ab123
Table 156
WTN ordinal number is a sequence that is assigned to each new WTN so that the WTNs can be counted. The sequence
is reset at the beginning of each year.
Constraint Positive
Example 2
Table 157
WTN number composed of WTN ordinal number, year of WTN issuance. WTN ordinal number is a sequence that is
assigned to each new WTN so that the WTNs can be counted. The sequence is reset at the beginning of each year.
Pattern [1-9]{1}[0-9]{0,14}\/[0-9]{4}(\/[a-z]{2}[0-9]{3}[a-z]{2}[0-9]{3})?
Example 9934/2019
Table 158
66 | 121
Pattern -?([1-9][0-9]*|0)\.[0-9]{2}|0
Example 212.12
Table 159
Example OWNER
Table 160
Following table shows the list of allowed values inside VehOwnership attribute.
Value Description
Table 161
Length 30 characters
Pattern [a-zA-Z0-9]+
Example AA 000 AA
Table 162
Table 163
Example Tirana
Table 164
67 | 121
Data type string
Example Warehouse
Table 165
Following table shows the list of allowed values inside StartPoint attribute.
Value Description
WAREHOUSE Warehouse.
EXHIBITION Exhibition.
STORE Store.
OTHER Other.
Table 166
Pattern [0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([+-][0-9]{2}:[0-9]{2}|Z)
2019-01-24T22:00:58+01:00
Example 2019-01-24T22:00:58-01:00
Table 167
Table 168
Example Tirana
Table 169
68 | 121
Example Warehouse
Table 170
Following table shows the list of allowed values inside DestinPoint attribute.
Value Description
WAREHOUSE Warehouse.
EXHIBITION Exhibition.
STORE Store.
OTHER Other.
Table 171
Pattern [0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([+-][0-9]{2}:[0-9]{2}|Z)
2019-01-24T22:00:58+01:00
Example 2019-01-24T22:00:58-01:00
Table 172
Example true
Table 173
Example true
Table 174
Type of packaging.
Length 50 characters
Table 175
Number of packs.
69 | 121
Data type int
Constraint Positive
Example 2
Table 176
Constraint Positive
Example 2
Table 177
WTN identification code which is generated by the TCR of the issuer of the WTN. This is a unique code for every WTN.
The code is formed by concatenating the fields, signing with issuer’s private key and calculating MD5 hash. Further
description can be found tin the chapter 5.3.3.3.
Pattern [0-9a-fA-F]{32}
C701FB4839E7D2C3D8DBC81BBAC06164
Example c701fb4839e7d2c3d8dbc81bbac06164
Table 178
Signed WTN identification code concatenated parameters. Further description can be found tin the chapter 5.3.3.2.
Pattern [0-9a-fA-F]{512}
B2C218486302EC553EE1AB9124E1A14705742E870E8872EF34E63617AB252E189ACDF7A3E3F5C82061FFFF8AC2826A5588596A8807F648410899B6193F77F4BDCDFA
87553A62079A2EF9E6E6F0B8DA1038968D2FCB920B580EBF33ACEEDFEA0DAA78067F916ADC5D278CC237EFD53A6156EABAFBE98A8F3CE99E854818822FA20C0FF46
Example E5B3805264BBCD085F0A8A9BD503A1304E9202D7304FF93541FB7FAA4629EE0BD7ED566F610DCD047721AEAA828DFECA651087CDE5AF95C125793D4CD8E83B801D
E171335A866D7E31F1473BF0C93EBFD994326C0FE97ACB8DA722F788EA27B8D9E15E8E7B6EF772AB7534060F2BCAF1C3E82645235C9D1857B0790C2
Table 179
Length 10 characters
Pattern [a-zA-Z]{1}[0-9]{8}[a-zA-Z]{1}
Example K72001008V
Table 180
70 | 121
3.8.1.35 WTN Issuer Name
Table 181
Table 182
Example Tirana
Table 183
Length 20 characters
For NUIS: K72001008V
Example For ID: I12345678Q
Table 184
Example NUIS
Table 185
Enumeration values for the identification number type are listed in table below.
Value Description
71 | 121
ID Personal ID number
Table 186
Table 187
Table 188
Example Tirana
Table 189
Table 190
Code of the item from the barcode or similar representation. It helps in identification of the product (item).
72 | 121
Example 978020137962
Table 191
Example Kg
Table 192
Pattern -?([1-9][0-9]*|0)(\.[0-9]{1,3})?
3.500
Example -0.375
Table 193
RegisterWtnResponse Element [1, 1] Root XML element representing warehouse transfer note response message.
Id Attribute [1, 1] Attribute used for signature creation and verification. Fixed value “Response”.
Version Attribute [1,1] Attribute used to specify compliance with XSD schema. For this version fixed value is “3”.
Header Element [1, 1] XML element representing generic message data about the response sent.
UUID Attribute [1, 1] UUID generated by a CIS for every note response data message send to the TCR.
RequestUUID Attribute [1, 1] UUID of the request message for which this response message was sent.
SendDateTime Attribute [1, 1] Date and time of sending the note response data message from a CIS to the TCR.
Table 194
3.8.2.1 Header
Element generated by the CIS for every message sent to the TCR. It uniquely identifies the message sent to the TCR.
UUID should be constructed according to the RFC4122 version 4.
Length 36 characters
Pattern [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}
58e0a7d7-eebc-41d8-9669-0800200c9a66
Example 58E0A7D7-EEBC-41D8-9669-0800200C9A66
73 | 121
Table 195
Element generated by the TCR and referenced by the CIS. It uniquely identifies the request message for which response
message was sent to the TCR. UUID should be constructed according to the RFC4122 version 4.
Length 36 characters
Pattern [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}
58e0a7d7-eebc-41d8-9669-0800200c9a66
Example 58E0A7D7-EEBC-41D8-9669-0800200C9A66
Table 196
Element represents date and time of sending the response message to the TCR. Date and time should be in ISO 8601
format.
Pattern [0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([+-][0-9]{2}:[0-9]{2}|Z)
2019-01-24T22:00:58+01:00
Example 2019-01-24T22:00:58-01:00
Table 197
3.8.2.5 FWTNIC
Fiscal warehouse transfer note identification code. Element represents unique number generated by the CIS.
Length 36 characters
Pattern [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}
58e0a7d7-eebc-41d8-9669-0800200c9a66
Example 58E0A7D7-EEBC-41D8-9669-0800200C9A66
Table 198
3.8.2.6 Signature
XML element stores enveloped digital signature described in the chapter 5.3.1
Upon identifying a critical error, CIS will return an error data message containing the error's numeric code and its text
description (see chapter 3.9). When errors which the system can interpret as a cyber-attack are identified, the system
does not send any response to the client (the TCR).
The mandatory controls include all the controls from chapter 3.1 and the following:
74 | 121
Issuer status Issuer is not active in the RTP. 55
invalid
WTN.IssueDateTime is not equal to the Header.SendDateTime and Header.SubseqDelivType does not exist.
WTN.IssueDateTime more than 2 days in the past from now and Header.SubseqDelivType equals to SERVICE
Issue datetime or TECHNICALERROR.
11
invalid
WTN.IssueDateTime more than 11 days in the past from now and Header.SubseqDelivType equals
BOUNDBOOK.
WTN.IssueDateTime is not in the current or previous month or is in the previous month but the send date is
not less or equal to 10th of the current month and Header.SubseqDelivType equals NOINTERNET.
Table 199
75 | 121
<ns2:Header RequestUUID="a8e6b3d0-f880-4a78-808b-e17bdfec7f18" SendDateTime="2020-03-17T23:06:12+01:00" UUID="7056b8c1-b65b-482e-
88ac-00fe5c6ee58a"/>
<ns2:FWTNIC>56aeb7c6-ebb6-496e-8b6a-b6f483546a7d</ns2:FWTNIC>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
<Reference URI="#Response">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<DigestValue>A6hoQC1LkYJPw..........iMPApxSjn8JHk=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>LvCJPrr9bjtpjFQWKVEKme8tH..........N6fS7KK/1n1tEFi6LmvQ==</SignatureValue>
<KeyInfo>
<X509Data>
<X509Certificate>MIIFRzCCBC+gAwIBAgIKQ3usFH..........D+GgzHcFfWiaTGDHt6qiDOcjSY=</X509Certificate>
</X509Data>
</KeyInfo>
</Signature>
</ns2:RegisterWTNResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Occurrence
Name Description
[Min, Max]
detail [1, 1] XML element that carries error messages. It can contain multiple child elements.
responseUUID [1, 1] XML element that specifies UUID of this error response.
requestUUID [0, 1] XML element that specifies UUID of the request for which error occurred if available.
Table 200
3.9.1.1 Header
This is an XML root element representing the header of the error message.
This is an attribute that uniquely describes the message and gives it the unique identification.
Length 36 characters
Pattern [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}
58e0a7d7-eebc-41d8-9669-0800200c9a66
Example 58E0A7D7-EEBC-41D8-9669-0800200C9A66
Table 201
3.9.1.3 Fault
76 | 121
3.9.1.4 FaultCode
Example Client
Table 202
Enumeration values for the method of payment are listed in table below.
Value Description
Server There was a problem with the server, so the message could not proceed.
Table 203
3.9.1.5 FaultString
This is an XML element that contains textual explanation for error that occurred.
Length Undefined
Table 204
3.9.1.6 Detail
3.9.1.7 Code
This is a Detail’s child element, that describes the numeric error code. Numeric error codes are listed in the chapter
3.9.2.
Length 3
Pattern [1-9][0-9]{0,2}
Example 21
Table 205
3.9.1.8 ResponseUUID
This is a Detail’s child element, that specifies UUID of this error message.
Length 36 characters
Pattern [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}
58e0a7d7-eebc-41d8-9669-0800200c9a66
Example 58E0A7D7-EEBC-41D8-9669-0800200C9A66
Table 206
77 | 121
3.9.1.9 RequestUUID
This is a Detail’s child element, that specifies UUID of the request message that generated an error if available.
Length 36 characters
Pattern [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}
58e0a7d7-eebc-41d8-9669-0800200c9a66
Example 58E0A7D7-EEBC-41D8-9669-0800200C9A66
Table 207
78 | 121
3.9.2 ERROR CODES
Following table lists the error codes that a fiscalization service can return to the invoice issuer. It’s not an exhaustive
list.
Error Error
Error description
code origin
0 Client Exception occurred while extracting received XML message during size check.
2 Client Client time differs from a server’s time by more than allowed time in minutes
10 Client Exception occurred while extracting received XML message during XML validation against the XSD.
20 Client Exception occurred while extracting received XML message during signature check.
23 Client Exception occurred while extracting Signature XML element during signature check.
37 Client Compare the NIPT in XML with the NIPT in the certificate
41 Client Business unit code doesn’t reference active business unit (premise) of the taxpayer.
79 | 121
46 Client ValidTo cannot be in the past.
49 Client Change date and time differences from CISs time more than allowed time in minutes.
53 Client TCR code doesn’t reference registered or active TCR or the TCR doesn’t belongs to the referenced issuer.
56 Client Cash deposit with operation INITIAL already registered for a current day.
Table 208
80 | 121
4. Data Export And Upload
When the taxpayer is operating in the area where there is no internet connection, he can use the alternative way
of invoice registration. Invoice registration requests must be exported into files in a special format. These files can then
be uploaded on Central invoice platform which will register invoices. Responses from the registration service will be
generated and the taxpayer will download files with responses and bring them back to the TCR for import. See process
diagram.
Instead of using the Central invoice platform web application, the taxpayer can bring the files on USB flash drive to the
local Tax administration office where the officer will do the same process as in the Central invoice platform.
What taxpayer does in that case is that he uses TCR to creates a file for each of those invoices or cash deposits, and files
should be named in format described in table below.
When those .xml files (WS messages) are created, they will be created in the way that only main part of the XML, the
one that contains data, will be preserved. It will omit WS header and WS envelope from the message. The file must
contain only content of envelope body element. Content of the body element must not be altered to preserve valid
signature. To allow time difference between the server and a client, a header part of the message from the body must
contain SubseqDelivType attribute.
Then each of those files should be saved in a zipped (archived) folder, named as described in table. Size of the ZIP archive
should not exceed 15 MB.
After that the taxpayer transfers that archive to the USB flash drive or other transferable media and takes it to the place
where there is an active internet connection. After logging in to Central invoice platform using the certificate, taxpayer
imports ZIP archive with invoices represented as XML files. Central invoice platform will extract XML files from the ZIP
archive, form a web service message request and send it to fiscalization service. The fiscalization service will make a
response, which the Central invoice platform will transform into XML file by extracting the content of SOAP envelope
body element.
81 | 121
XML file representing the response will be named <yyyyMMddHHmmSS>_<IIC>_response.xml. XML files will be
compressed in a ZIP archive with corresponding name <yyyyMMddHHmmSS>_response.zip where
<yyyyMMddHHmmSS> is the same as in the ZIP archive with request XML files. That means that each request in XML file
named <yyyyMMddHHmmSS>_<IIC>_request.xml or <yyyyMMddHHmmSS>_deposit_request.xml will be
paired with response in XML file <yyyyMMddHHmmSS>_<IIC>_response.xml or
<yyyyMMddHHmmSS>_deposit_response.xml, and each archive containing XML request named
<yyyyMMddHHmmSS>_request.zip will be paired with archive named <yyyyMMddHHmmSS>_response.zip
containing XML responses.
Request ZIP archive file must contain all the request XML files in the root folder. For example:
20200921130159_request.zip
o 20200921130159_deposit_request.xml
o 20200921130200_96B3948368B39A0F841FAB88A34DE961_request.xml
o 20200921130201_AD7A3A67DE12043FC1A022B9DFCBC8C1_request.xml
o 20200921130202_9062559C02462241933282493EC4077E_request.xml
Also, response ZIP archive file will contain all the response XML files in the root folder. For example:
20200921130159_response.zip
o 20200921130159_deposit_response.xml
o 20200921130200_96B3948368B39A0F841FAB88A34DE961_response.xml
o 20200921130201_AD7A3A67DE12043FC1A022B9DFCBC8C1_response.xml
o 20200921130202_9062559C02462241933282493EC4077E_response.xml
<yyyyMMddHHmmSS>_request.zip ZIP archive file containing all incoming request XML files produced by TCR.
<yyyyMMddHHmmSS>_response.zip ZIP archive file containing all outgoing response XML files produced by CIS after import.
Table 210
If there are errors, they will also be stored inside XML responses and the Central Invoice Platform will notify the user
about it.
82 | 121
<Header SendDateTime="2019-12-05T14:30:13+01:00" UUID="8d216f9a-55bb-445a-be32-30137f11b964"
SubseqDelivType="NOINTERNET"/>
<Invoice BusinUnitCode="bb123bb123" IssueDateTime="2019-12-05T14:30:13+01:00" IIC="4AD5A215BEAF85B0416235736A6DACAB"
IICSignature="83D728C8E10BA04C430BE64CE98612B0256C0FE618C167F28BF62A0C0CB38C51824F152AB00510AE076508E53ACE4F877D25D51C7830F043E09B
B1500D3A0AEA233ECC6175A45FE58CBF53E517FD9EA1D06CBABC055EEE6B430A16560C96D3A27720A6E5C9BA5C8D18A7AE5C2A7F1D8E46B293F56D32847FCEE199
D2AFDC6E5BC1164BA974A6E29D6F40FBD8C51D40A99BC97DD6DB2AE9EC0582F2E74E9C7841AC5A854DE92B1D778A809CACCBBEF4DC325C852487BCF035AA2D5459
4DC6BDD859E250782CCCDD7CC89EE80A2FE1030AAAD615DA5D728322F8590D9F56E6DDE5975A738F304F56BB832996763624B72C77E97881D9C647B50709F20AFB
FA0602" InvNum="1/2019/cc123cc123" InvOrdNum="1" IsIssuerInVAT="true" IsReverseCharge="false" IsSimplifiedInv="false"
OperatorCode="oo123oo123" SoftCode="ss123ss123" TCRCode="cc123cc123" TotPrice="20.00" TotPriceWoVAT="16.00" TotVATAmt="4.00"
TypeOfInv="CASH">
<PayMethods>
<PayMethod Amt="20.00" Type="BANKNOTE"/>
</PayMethods>
<Seller Address="Seller address" Country="ALB" IDNum="L91806031N" IDType="NUIS" Name="Seller name" Town="Seller
town"/>
<Items>
<I C="501234567890" N="Item name" PA="20.00" PB="16.00" Q="1.0" R="0" RR="true" U="piece" UPB="16.00"
UPA="20.00" VA="4.00" VR="25.00"/>
</Items>
<SameTaxes>
<SameTax NumOfItems="1" PriceBefVAT="16.00" VATAmt="4.00" VATRate="25.00"/>
</SameTaxes>
</Invoice>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
<Reference URI="#Request">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<DigestValue>ECWby0FKaNQ6..........m8BPjyk6g=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>LHFUg3xNi..........tjpeYNw==</SignatureValue>
<KeyInfo>
<X509Data>
<X509Certificate>MIIFYDCC..........Pifz0UlKJAanmqN3</X509Certificate>
</X509Data>
</KeyInfo>
</Signature>
</RegisterInvoiceRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Here is the example of a valid response (SOAP envelope elements are removed and, in the example, they are
strikethrough):
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:RegisterInvoiceResponse Id="Response" Version="3"
xmlns:ns2="https://eFiskalizimi.tatime.gov.al/FiscalizationService/schema" xmlns:ns3="http://www.w3.org/2000/09/xmldsig#">
<ns2:Header RequestUUID="8d216f9a-55bb-445a-be32-30137f11b964" SendDateTime="2019-12-05T14:30:15+01:00"
UUID="f8bcb5ae-59fb-41ac-9011-f4db86bbce26"/>
<ns2:FIC>a592e7ec-9517-4f02-8d54-ac965f679a8c</ns2:FIC>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
83 | 121
<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
<Reference URI="#Response">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<DigestValue>WYXOkHAd..........SLOIbwDdHCQk=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>Bnr1bB8Ic..........bfAjdVUpA==</SignatureValue>
<KeyInfo>
<X509Data>
<X509Certificate>MIIFRjCCB..........gpNT2r23YQ==</X509Certificate>
</X509Data>
</KeyInfo>
</Signature>
</ns2:RegisterInvoiceResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:CLIENT</faultcode>
<faultstring xml:lang="en">Validation failed with digest wrong.</faultstring>
<detail>
<code>30</code>
<requestUUID>8d216f9a-55bb-445a-be32-30137f11b964</requestUUID>
<responseUUID>9416dcca-499a-4724-933d-40d115ea4fc7</requestUUID>
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
84 | 121
5. Security
Following chapter describes security principles used by fiscalization service and parties that communicate with it.
Certificate for transport security with common name *.tatime.gov.al issued to the service.
Used to secure transport between the service and an issuer.
Issued by public CA different from NAIS CA.
Certificate for message security issued to the service.
Used to digitally sign response data messages.
Issued by NAIS CA.
Certificate for message security issued to an issuer.
Used to digitally sign request data messages and IIC data elements.
Issued by NAIS CA.
A digital certificate for fiscalization purposes is issued by the competent authority for issuing digital certificates (CAs).
In the case of the Republic of Albania it is NAIS. A detailed description of the submission of a request for issuing a
digital certificate and obtaining a certificate is (or will have to be) defined in the instructions of NAIS and is not the
subject of this documentation. Certificates issued by NAIS will have following certificate authorities:
In most cases, the private key used to digitally sign request data message and IIC data is the same. An exception under
this rule is possible if the certificate used at the time of initial creation of the request is no longer valid at the time of
resending the request. In that case, a private key from valid corresponding certificate must be used to digitally sign
request data message, but not the IIC data element, which remains the same.
Request and response data messages are digitally signed according to the XML Signature Syntax and Processing standard
edition 1.1 available at https://www.w3.org/TR/xmldsig-core/. Additional description is available in the chapter 5.3.1.
IIC data element is created and digitally signed according to the custom cryptographic algorithm described in the chapter
5.3.3.
85 | 121
5.3.1 REQUEST AND RESPONSE DATA MESSASGE SIGNING
Every request and response data message described in the chapter 3, must contain signature XML element. That
element is generated according to XML Signature Syntax and Processing standard edition 1.1 available at
https://www.w3.org/TR/xmldsig-core/.
Element to signed is a first and only element inside soap envelope body XML element, with Id equals to Request or
Response, depending on the message direction.
1. To protect issuer from malicious third party because only the issuer that generated IIC or WTNIC can regenerate
it by supplying the algorithm with the same parameters and using the same private key.
2. To verify that issued invoice and WTN is registered in the CIS.
At the tax administration's request, the taxpayer, based on the same input parameters, must create an IIC or WTNIC
equal to that of the invoice or WTN.
1. Concatenate parameters
2. Calculate digital signature with SHA256, RSA and RSASSA-PKCS-v1_5 padding
3. Calculate digest
86 | 121
WTNIC is generated by concatenating following parameters of the invoice:
Before concatenation, all parameters must be converted into UTF-8 encoding. Parameters are concatenated with pipe
character UTF-8 with decimal code 124.
For example, for parameters:
After the concatenation, resulting value is hashed with SHA256 algorithm and then signed with RSA algorithm and
issuer’s private key.
Concatenated value:
I12345678I|2019-06-12T17:05:43+02:00|9952|bb123bb123|cc123cc123|ss123ss123|99.01
PEM encoded private key:
87 | 121
fZYeRBMobvWvRADLznH21Bgu3HDxXJdOg9AXkklkbZSTOURmXKB43VG5Ffke5t3i
C3E5V6yLPxvieHsa9B5hlG4BrB6yyGFhvBCQfFWnBOWgUL4tvu0+tmmvCRIO4G7J
5i8JiwKBgQCQHTfRrGaEsq1BG7zPOQSqo9q5cxL8WzYd0sTs3FDcwCtHqxBEQ3rr
O/l+HvRa+y6ZEH6q4pREewTIymfv9tmGxVe3f8zrKGR5litvN6OnZuWJdq57Y1lN
J1sdpMxTtxQQmexsADif+QByCvdeFKE5C3veMLdgS5I6HTMN9k5laA==
-----END RSA PRIVATE KEY-----
Signature value:
404ADDB017B2DE49B0A51340A991130E670F08BC2BE854EEAAE9C3F41A2C98E1D70545690F0EFBD13511A
38DB1E36E086DC253C3519E7DAF896A418BFAFCCE9836B0759B2E84713B25C39C040E35608AC85141A65D6
23454BAF4D0E04D69A8D77505879C1DB9552542309A110B8CB2B9885C2236C3C6D65E695DFA4CA7D6258B
D9EB0749A9EE09DA237C4E1B8EE39C3CAD3E32A21F807DA0908192DADA3F9D55C4FEB3C100F97D5AA81CF
E157E1A90059111E6DCD2F2AD3DB9AAA202D084144E60ADED38988C384012967EF47B548135804EF2F4542
DD0971E11AA392F048836D1C7DF9014F507B79258FA9B43AA14E32196D6127FD8154C24CE0CB374677D20
MD5 digest value is: D04C13B4063D63A13B5D822A90178A7C
88 | 121
6. ANNEX - Code examples
import javax.xml.bind.DatatypeConverter;
// issuerNuis
iicInput += "I12345678I";
// dateTimeCreated
iicInput += "|2019-06-12T17:05:43+02:00";
// invoiceNumber
iicInput += "|9952";
// busiUnitCode
iicInput += "|bb123bb123";
// tcrCode
iicInput += "|cc123cc123";
// softCode
iicInput += "|ss123ss123";
// totalPrice
iicInput += "|99.01";
89 | 121
6.1.2 C# EXAMPLE
This is the example for the generation of the IIC in C# language. Variables are hardcoded as this is just an example.
using System;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Text;
namespace FiscalizationSigningUtilityDotNet
{
class SampleGenerateIIC
{
private const String KEYSTORE_LOCATION = "***.p12";
private const String KEYSTORE_PASS = "***";
// issuerNuis
iicInput += "I12345678I";
// dateTimeCreated
iicInput += "|2019-06-12T17:05:43+02:00";
// invoiceNumber
iicInput += "|9952";
// busiUnitCode
iicInput += "|bb123bb123";
// tcrCode
iicInput += "|cc123cc123";
// softCode
iicInput += "|ss123ss123";
// totalPrice
iicInput += "|99.01";
import javax.xml.crypto.dsig.*;
import javax.xml.crypto.dsig.keyinfo.*;
import javax.xml.crypto.dsig.spec.*;
import javax.xml.crypto.dsig.dom.DOMSignContext;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.*;
import org.xml.sax.InputSource;
90 | 121
public static final String XML_SCHEMA_NS = "https://eFiskalizimi.tatime.gov.al/FiscalizationService/schema";
public static final String XML_REQUEST_ELEMENT = "RegisterInvoiceRequest";
public static final String XML_REQUEST_ID = "Request";
public static final String XML_SIG_METHOD = "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256";
// Add certificate
List<X509Certificate> certificateList = new ArrayList<>();
certificateList.add(certificate);
// Sign document
XMLSignature signature = xmlSigFactory.newXMLSignature(signedInfo, keyInfo);
signature.sign(dsc);
// Output to string
TransformerFactory transformFactory = TransformerFactory.newInstance();
Transformer transformer = transformFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
StringWriter sw = new StringWriter();
StreamResult streamRes = new StreamResult(sw);
transformer.transform(new DOMSource(doc), streamRes);
System.out.println ("Signed document is: " + sw.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
91 | 121
6.2.2 C# EXAMPLE
This is the example for the generation of the signature in .NET C# language. Variables are hardcoded as this is just an
example.
using System;
using System.IO;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Security.Cryptography.Xml;
using System.Xml;
namespace FiscalizationSigningUtilityDotNet
{
class SampleGenerateSignature
{
public const String XML_SCHEMA_NS = "https://eFiskalizimi.tatime.gov.al/FiscalizationService/schema";
public const String XML_REQUEST_ID = "Request";
public const String XML_SIG_METHOD = "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256";
public const String XML_DIG_METHOD = "http://www.w3.org/2001/04/xmlenc#sha256";
// Create signature
SignedXml xml = new SignedXml(request);
xml.SigningKey = privateKey;
xml.SignedInfo.CanonicalizationMethod = SignedXml.XmlDsigExcC14NTransformUrl;
xml.SignedInfo.SignatureMethod = XML_SIG_METHOD;
xml.KeyInfo = keyInfo;
xml.AddReference(reference);
xml.ComputeSignature();
92 | 121
6.3 SIGNATURE VALIDATION CODE
import javax.xml.crypto.*;
import javax.xml.crypto.dom.*;
import javax.xml.crypto.dsig.*;
import javax.xml.crypto.dsig.keyinfo.*;
import javax.xml.crypto.dsig.dom.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.xml.sax.*;
93 | 121
}
}
// Check methods
Reference reference = (Reference)refList.get(0);
if (reference.getURI() == null || !reference.getURI().equals("#" + XML_RESPONSE_ID)) {
throw new Exception(String.format("Signature reference URI must be provided with value \"%s\".", XML_RESPONSE_ID));
}
if (!signedInfo.getSignatureMethod().getAlgorithm().equalsIgnoreCase(XML_SIG_METHOD)) {
throw new Exception(String.format("Signature method should be %s, provided %s.", XML_SIG_METHOD,
signedInfo.getSignatureMethod().getAlgorithm()));
}
if (!signedInfo.getCanonicalizationMethod().getAlgorithm().equalsIgnoreCase(CanonicalizationMethod.EXCLUSIVE)) {
throw new Exception(String.format("Canonicalization method should be %s, provided %s.", CanonicalizationMethod.EXCLUSIVE,
signedInfo.getCanonicalizationMethod().getAlgorithm()));
}
if(!reference.getDigestMethod().getAlgorithm().equalsIgnoreCase(DigestMethod.SHA256)) {
throw new Exception(String.format("Digest method should be %s, provided %s.", DigestMethod.SHA256,
reference.getDigestMethod().getAlgorithm()));
}
// Do additional checks
// * Check that certificate is issued by AKSHI CA
// * Check that CN of the certificate contains value "GDT eFiskalizimi"
// Conclusion
System.out.println ("Signature is valid");
}
}
94 | 121
7. ANNEX - WSDL version 3
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
name="FiscalizationService"
targetNamespace="https://eFiskalizimi.tatime.gov.al/FiscalizationService"
xmlns:al="https://eFiskalizimi.tatime.gov.al/FiscalizationService"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:als="https://eFiskalizimi.tatime.gov.al/FiscalizationService/schema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<wsdl:types>
<xsd:schema>
<xsd:import namespace="https://eFiskalizimi.tatime.gov.al/FiscalizationService/schema" schemaLocation="alimc-fiscalization-
service.xsd"/>
</xsd:schema>
</wsdl:types>
<wsdl:message name="RegisterInvoiceRequest">
<wsdl:documentation>Element representing register sale message.</wsdl:documentation>
<wsdl:part element="als:RegisterInvoiceRequest" name="request" />
</wsdl:message>
<wsdl:message name="RegisterInvoiceResponse">
<wsdl:documentation>Element representing register invoice response message.</wsdl:documentation>
<wsdl:part element="als:RegisterInvoiceResponse" name="response" />
</wsdl:message>
<wsdl:message name="RegisterTCRRequest">
<wsdl:documentation>Element representing request of the TCR registration message.</wsdl:documentation>
<wsdl:part element="als:RegisterTCRRequest" name="request" />
</wsdl:message>
<wsdl:message name="RegisterTCRResponse">
<wsdl:documentation>Element representing response of the TCR registration message.</wsdl:documentation>
<wsdl:part element="als:RegisterTCRResponse" name="response" />
</wsdl:message>
<wsdl:message name="RegisterCashDepositRequest">
<wsdl:documentation>Element representing request of the cash deposit request message.</wsdl:documentation>
<wsdl:part element="als:RegisterCashDepositRequest" name="request" />
</wsdl:message>
<wsdl:message name="RegisterCashDepositResponse">
<wsdl:documentation>Element representing response of the cash deposit response message.</wsdl:documentation>
<wsdl:part element="als:RegisterCashDepositResponse" name="response" />
</wsdl:message>
<wsdl:message name="RegisterWTNRequest">
<wsdl:documentation>Element representing warehouse transfer note request message</wsdl:documentation>
<wsdl:part element="als:RegisterWTNRequest" name="request" />
</wsdl:message>
<wsdl:message name="RegisterWTNResponse">
<wsdl:documentation>Element representing warehouse transfer note response message.</wsdl:documentation>
<wsdl:part element="als:RegisterWTNResponse" name="response" />
</wsdl:message>
<wsdl:portType name="FiscalizationServicePortType">
<wsdl:operation name="registerInvoice">
<wsdl:input message="al:RegisterInvoiceRequest"/>
<wsdl:output message="al:RegisterInvoiceResponse"/>
</wsdl:operation>
<wsdl:operation name="registerTCR">
<wsdl:input message="al:RegisterTCRRequest"/>
<wsdl:output message="al:RegisterTCRResponse"/>
</wsdl:operation>
<wsdl:operation name="registerCashDeposit">
<wsdl:input message="al:RegisterCashDepositRequest"/>
<wsdl:output message="al:RegisterCashDepositResponse"/>
</wsdl:operation>
<wsdl:operation name="registerWTN">
<wsdl:input message="al:RegisterWTNRequest"/>
<wsdl:output message="al:RegisterWTNResponse"/>
</wsdl:operation>
</wsdl:portType>
95 | 121
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="registerCashDeposit">
<soap:operation soapAction="https://eFiskalizimi.tatime.gov.al/FiscalizationService/RegisterCashDeposit"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="registerWTN">
<soap:operation soapAction="https://eFiskalizimi.tatime.gov.al/FiscalizationService/RegisterWTN"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="FiscalizationService">
<wsdl:port name="FiscalizationServicePort" binding="al:FiscalizationServiceSoap">
<soap:address location="https://eFiskalizimi.tatime.gov.al/FiscalizationService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
96 | 121
8. ANNEX - XSD version 3
<?xml version="1.0" encoding="UTF-8"?>
<schema
targetNamespace="https://eFiskalizimi.tatime.gov.al/FiscalizationService/schema"
xmlns:al="https://eFiskalizimi.tatime.gov.al/FiscalizationService/schema"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
elementFormDefault="qualified"
vc:minVersion="1.1">
<element name="RegisterInvoiceRequest">
<annotation>
<documentation>Root XML element representing register invoice message.</documentation>
</annotation>
<complexType>
<all minOccurs="1" maxOccurs="1">
<element name="Header" type="al:RegisterInvoiceRequestHeaderType" minOccurs="1" maxOccurs="1">
<annotation>
<documentation>XML element representing header of the invoice containing data about the message (request)
sent.</documentation>
</annotation>
</element>
<element name="Invoice" type="al:InvoiceType" minOccurs="1" maxOccurs="1">
<annotation>
<documentation>XML element representing a single invoice.</documentation>
</annotation>
</element>
<element ref="ds:Signature" minOccurs="1" maxOccurs="1">
<annotation>
<documentation>XML element representing signature for the invoice.</documentation>
</annotation>
</element>
</all>
<attribute name="Id" type="string" use="required" fixed="Request">
<annotation>
<documentation>Attribute used for signature creation and verification.</documentation>
</annotation>
</attribute>
<attribute name="Version" type="al:IntSType" use="required" fixed="3">
<annotation>
<documentation>Attribute used to specify compliance with XSD schema.</documentation>
</annotation>
</attribute>
</complexType>
</element>
<element name="RegisterInvoiceResponse">
<annotation>
<documentation>Root XML element representing register invoice response message.</documentation>
</annotation>
<complexType>
<all>
<element name="Header" type="al:RegisterInvoiceResponseHeaderType" minOccurs="1" maxOccurs="1">
<annotation>
<documentation>Element representing the header of the message.</documentation>
</annotation>
</element>
<element name="FIC" type="al:UUIDSType" minOccurs="1" maxOccurs="1">
<annotation>
<documentation>CIS generated verification code that can be used to uniquely identify registered
invoice.</documentation>
</annotation>
</element>
<element ref="ds:Signature" minOccurs="1" maxOccurs="1"/>
</all>
<attribute name="Id" type="string" use="required" fixed="Response">
<annotation>
<documentation>Identification of the response, used to reference a signature.</documentation>
</annotation>
</attribute>
<attribute name="Version" type="al:IntSType" use="required" fixed="3">
<annotation>
<documentation>Identification of the schema version.</documentation>
</annotation>
</attribute>
</complexType>
</element>
<element name="RegisterCashDepositRequest">
<annotation>
<documentation>Root XML element representing cash deposit request message.</documentation>
</annotation>
<complexType>
<all minOccurs="1" maxOccurs="1">
<element name="Header" type="al:RegisterCashDepositRequestHeaderType" minOccurs="1" maxOccurs="1">
<annotation>
<documentation>Element representing the header of the message.</documentation>
</annotation>
</element>
<element name="CashDeposit" type="al:CashDepositType" minOccurs="1" maxOccurs="1">
<annotation>
<documentation>Element representing a single cash deposit request.</documentation>
</annotation>
</element>
<element ref="ds:Signature" minOccurs="1" maxOccurs="1"/>
</all>
97 | 121
<attribute name="Id" type="string" use="required" fixed="Request">
<annotation>
<documentation>Identification of the request, used to reference a signature.</documentation>
</annotation>
</attribute>
<attribute name="Version" type="al:IntSType" use="required" fixed="3">
<annotation>
<documentation>Identification of the schema version.</documentation>
</annotation>
</attribute>
</complexType>
</element>
<element name="RegisterCashDepositResponse">
<annotation>
<documentation>Root XML element representing cash deposit response message.</documentation>
</annotation>
<complexType>
<all minOccurs="1" maxOccurs="1">
<element name="Header" type="al:RegisterCashDepositResponseHeaderType" minOccurs="1" maxOccurs="1">
<annotation>
<documentation>Element representing the header of the message.</documentation>
</annotation>
</element>
<element name="FCDC" type="al:UUIDSType" minOccurs="1" maxOccurs="1">
<annotation>
<documentation>Fiscalization cash deposit code generated by the CIS.</documentation>
</annotation>
</element>
<element ref="ds:Signature" minOccurs="1" maxOccurs="1"/>
</all>
<attribute name="Id" type="string" use="required" fixed="Response">
<annotation>
<documentation>Identification of the response, used to reference a signature.</documentation>
</annotation>
</attribute>
<attribute name="Version" type="al:IntSType" use="required" fixed="3">
<annotation>
<documentation>Identification of the schema version.</documentation>
</annotation>
</attribute>
</complexType>
</element>
<element name="RegisterTCRRequest">
<annotation>
<documentation>Root XML element representing TCR request message.</documentation>
</annotation>
<complexType>
<all minOccurs="1" maxOccurs="1">
<element name="Header" type="al:RegisterTCRRequestHeaderType" minOccurs="1" maxOccurs="1">
<annotation>
<documentation>Element representing the header of the message.</documentation>
</annotation>
</element>
<element name="TCR" type="al:TCRType" minOccurs="1" maxOccurs="1">
<annotation>
<documentation>XML element representing a single TCR registration message.</documentation>
</annotation>
</element>
<element ref="ds:Signature" minOccurs="1" maxOccurs="1"/>
</all>
<attribute name="Id" type="string" use="required" fixed="Request">
<annotation>
<documentation>Identification of the request, used to reference a signature.</documentation>
</annotation>
</attribute>
<attribute name="Version" type="al:IntSType" use="required" fixed="3">
<annotation>
<documentation>Identification of the schema version.</documentation>
</annotation>
</attribute>
</complexType>
</element>
<element name="RegisterTCRResponse">
<annotation>
<documentation>Root XML element representing TCR response message.</documentation>
</annotation>
<complexType>
<all minOccurs="1" maxOccurs="1">
<element name="Header" type="al:RegisterTCRResponseHeaderType" minOccurs="1" maxOccurs="1">
<annotation>
<documentation>Element representing the header of the message.</documentation>
</annotation>
</element>
<element name="TCRCode" type="al:RegistrationCodeSType" minOccurs="1" maxOccurs="1">
<annotation>
<documentation>TCR code generated by the service.</documentation>
</annotation>
</element>
<element ref="ds:Signature" minOccurs="1" maxOccurs="1"/>
</all>
<attribute name="Id" type="string" use="required" fixed="Response">
<annotation>
<documentation>Identification of the response, used to reference a signature.</documentation>
</annotation>
</attribute>
<attribute name="Version" type="al:IntSType" use="required" fixed="3">
<annotation>
<documentation>Identification of the schema version.</documentation>
</annotation>
</attribute>
</complexType>
98 | 121
</element>
<element name="RegisterWTNRequest">
<annotation>
<documentation>Root XML element representing warehouse transfer note request message.</documentation>
</annotation>
<complexType>
<all minOccurs="1" maxOccurs="1">
<element name="Header" type="al:RegisterWTNRequestHeaderType" minOccurs="1" maxOccurs="1">
<annotation>
<documentation>Element representing the header of the message.</documentation>
</annotation>
</element>
<element name="WTN" type="al:WTNType" minOccurs="1" maxOccurs="1">
<annotation>
<documentation>Element representing a single warehouse transfer note.</documentation>
</annotation>
</element>
<element ref="ds:Signature" minOccurs="1" maxOccurs="1"/>
</all>
<attribute name="Id" type="string" use="required" fixed="Request">
<annotation>
<documentation>Identification of the response, used to reference a signature.</documentation>
</annotation>
</attribute>
<attribute name="Version" type="al:IntSType" use="required" fixed="3">
<annotation>
<documentation>Identification of the schema version.</documentation>
</annotation>
</attribute>
</complexType>
</element>
<element name="RegisterWTNResponse">
<annotation>
<documentation>Root XML element representing warehouse transfer note response message.</documentation>
</annotation>
<complexType>
<all minOccurs="1" maxOccurs="1">
<element name="Header" type="al:RegisterWTNResponseHeaderType" minOccurs="1" maxOccurs="1">
<annotation>
<documentation>Element representing the header of the message.</documentation>
</annotation>
</element>
<element name="FWTNIC" type="al:UUIDSType" minOccurs="1" maxOccurs="1">
<annotation>
<documentation>Fiscal warehouse transfer note code.</documentation>
</annotation>
</element>
<element ref="ds:Signature" minOccurs="1" maxOccurs="1"/>
</all>
<attribute name="Id" type="string" use="required" fixed="Response">
<annotation>
<documentation>Identification of the response, used to reference a signature.</documentation>
</annotation>
</attribute>
<attribute name="Version" type="al:IntSType" use="required" fixed="3">
<annotation>
<documentation>Identification of the schema version.</documentation>
</annotation>
</attribute>
</complexType>
</element>
<complexType name="RegisterInvoiceRequestHeaderType">
<attribute name="UUID" type="al:UUIDSType" use="required">
<annotation>
<documentation>UUID generated by a TCR for every register sale data message send to the CIS.</documentation>
</annotation>
</attribute>
<attribute name="SendDateTime" type="al:UTCSType" use="required">
<annotation>
<documentation>Date and time of sending the register invoice data message from a TCR to the CIS.</documentation>
</annotation>
</attribute>
<attribute name="SubseqDelivType" type="al:SubseqDelivTypeSType" use="optional" >
<annotation>
<documentation>Type of subsequent delivery if message is delivered after invoice issuance.</documentation>
</annotation>
</attribute>
</complexType>
<complexType name="RegisterInvoiceResponseHeaderType">
<attribute name="UUID" type="al:UUIDSType" use="required">
<annotation>
<documentation>Element generated by the CIS for every message sent to the TCR. It uniquely identifies the message
sent to the TCR.</documentation>
</annotation>
</attribute>
<attribute name="RequestUUID" type="al:UUIDSType" use="required">
<annotation>
<documentation>Element generated by the TCR and referenced by the CIS. It uniquely identifies the request message
for which response message was sent to the TCR.</documentation>
</annotation>
</attribute>
<attribute name="SendDateTime" type="al:UTCSType" use="required">
<annotation>
<documentation>Element represents date and time of sending the response message to the TCR. </documentation>
</annotation>
</attribute>
</complexType>
<complexType name="RegisterCashDepositRequestHeaderType">
<attribute name="UUID" type="al:UUIDSType" use="required" >
<annotation>
99 | 121
<documentation>Element generated by the TCR. It uniquely identifies the request message sent from TCR to
CIS.</documentation>
</annotation>
</attribute>
<attribute name="SendDateTime" type="al:UTCSType" use="required" >
<annotation>
<documentation>Element represents date and time of sending the request message to the CIS.</documentation>
</annotation>
</attribute>
<attribute name="SubseqDelivType" type="al:SubseqDelivTypeSType" use="optional" >
<annotation>
<documentation>Type of subsequent delivery if message is delivered after cash deposit issuance.</documentation>
</annotation>
</attribute>
</complexType>
<complexType name="RegisterCashDepositResponseHeaderType">
<attribute name="UUID" type="al:UUIDSType" use="required">
<annotation>
<documentation>Element generated by the CIS. It uniquely identifies the response message sent from CIS to
TCR.</documentation>
</annotation>
</attribute>
<attribute name="RequestUUID" type="al:UUIDSType" use="required">
<annotation>
<documentation>Element generated by the TCR and referenced by the CIS. It uniquely identifies the request message
for which response message was sent to the TCR.</documentation>
</annotation>
</attribute>
<attribute name="SendDateTime" type="al:UTCSType" use="required">
<annotation>
<documentation>Element represents date and time of sending the response message to the TCR. </documentation>
</annotation>
</attribute>
</complexType>
<complexType name="RegisterTCRRequestHeaderType">
<attribute name="UUID" type="al:UUIDSType" use="required">
<annotation>
<documentation>Element generated by the TCR. It uniquely identifies the request message sent from TCR to
CIS.</documentation>
</annotation>
</attribute>
<attribute name="SendDateTime" type="al:UTCSType" use="required">
<annotation>
<documentation>Element represents date and time of sending the request message to the CIS.</documentation>
</annotation>
</attribute>
</complexType>
<complexType name="RegisterTCRResponseHeaderType">
<attribute name="UUID" type="al:UUIDSType" use="required">
<annotation>
<documentation>Element generated by the CIS. It uniquely identifies the response message sent from CIS to TCR.
</documentation>
</annotation>
</attribute>
<attribute name="RequestUUID" type="al:UUIDSType" use="required">
<annotation>
<documentation>Element generated by the TCR and referenced by the CIS. It uniquely identifies the request message
for which the response message was sent to the TCR.</documentation>
</annotation>
</attribute>
<attribute name="SendDateTime" type="al:UTCSType" use="required">
<annotation>
<documentation>Element represents date and time of sending the response message to the TCR. </documentation>
</annotation>
</attribute>
</complexType>
<complexType name="RegisterWTNRequestHeaderType">
<attribute name="UUID" type="al:UUIDSType" use="required">
<annotation>
<documentation>Element generated by the CIS for every message sent to the TCR. It uniquely identifies the message
sent to the TCR. </documentation>
</annotation>
</attribute>
<attribute name="SendDateTime" type="al:UTCSType" use="required">
<annotation>
<documentation>Element represents date and time of sending the response message to the TCR.</documentation>
</annotation>
</attribute>
<attribute name="SubseqDelivType" type="al:SubseqDelivTypeSType" use="optional" >
<annotation>
<documentation>Type of subsequent delivery if message is delivered after warehouse transfer note
issuance.</documentation>
</annotation>
</attribute>
</complexType>
<complexType name="RegisterWTNResponseHeaderType">
<attribute name="UUID" type="al:UUIDSType" use="required">
<annotation>
<documentation>Element generated by the CIS for every message sent to the TCR. It uniquely identifies the message
sent to the TCR.</documentation>
</annotation>
</attribute>
<attribute name="RequestUUID" type="al:UUIDSType" use="required">
<annotation>
<documentation>Element generated by the TCR and referenced by the CIS. It uniquely identifies the request message
for which response message was sent to the TCR.</documentation>
</annotation>
</attribute>
<attribute name="SendDateTime" type="al:UTCSType" use="required">
<annotation>
<documentation>Element represents date and time of sending the response message to the TCR.</documentation>
100 | 121
</annotation>
</attribute>
</complexType>
<complexType name="InvoiceType">
<all>
<element name="SupplyDateOrPeriod" type="al:SupplyDateOrPeriodType" minOccurs="0" maxOccurs="1">
<annotation>
<documentation>XML element representing supply date or period is supply is different from the date when the
invoice was issued.</documentation>
</annotation>
</element>
<element name="CorrectiveInv" type="al:CorrectiveInvType" minOccurs="0" maxOccurs="1">
<annotation>
<documentation>XML element groups data for a corrective invoice.</documentation>
</annotation>
</element>
<element name="PayMethods" type="al:PayMethodsType" minOccurs="1" maxOccurs="1">
<annotation>
<documentation>XML element representing list of payment methods.</documentation>
</annotation>
<unique name="UniquePayMethodType">
<selector xpath=".//al:PayMethod"/>
<field xpath="@Type"/>
</unique>
</element>
<element name="Currency" type="al:CurrencyType" minOccurs="0" maxOccurs="1">
<annotation>
<documentation>XML element representing currency in which the amount on the invoice is
expressed.</documentation>
</annotation>
</element>
<element name="Seller" type="al:SellerType" minOccurs="1" maxOccurs="1" >
<annotation>
<documentation>XML element representing an seller of the goods.</documentation>
</annotation>
</element>
<element name="Buyer" type="al:BuyerType" minOccurs="0" maxOccurs="1" >
<annotation>
<documentation>XML element representing a buyer of the goods.</documentation>
</annotation>
</element>
<element name="Items" type="al:InvoiceItemsType" minOccurs="1" maxOccurs="1" >
<annotation>
<documentation>XML element representing list of invoice items (goods or services).</documentation>
</annotation>
</element>
<element name="SameTaxes" type="al:SameTaxesType" minOccurs="0" maxOccurs="1" >
<annotation>
<documentation>XML element representing list of items of the same VAT rate.</documentation>
</annotation>
</element>
<element name="ConsTaxes" type="al:ConsTaxesType" minOccurs="0" maxOccurs="1" >
<annotation>
<documentation>XML element representing list of invoice items (goods or services) that are under consumption
tax.</documentation>
</annotation>
</element>
<element name="Fees" type="al:FeesType" minOccurs="0" maxOccurs="1" >
<annotation>
<documentation>XML element representing list of fees.</documentation>
</annotation>
<unique name="UniqueFeesType">
<selector xpath=".//al:Fee"/>
<field xpath="@Type"/>
</unique>
</element>
<element name="SumInvIICRefs" type="al:SumInvIICRefsType" minOccurs="0" maxOccurs="1" >
<annotation>
<documentation>XML element representing list of invoices IIC referenced by a summary invoice.</documentation>
</annotation>
</element>
<element name="BadDebtInv" type="al:BadDebtInvType" minOccurs="0" maxOccurs="1">
<annotation>
<documentation>XML element groups data for an original invoice that will be declared bad debt invoice, as
uncollectible.</documentation>
</annotation>
</element>
</all>
<attribute name="TypeOfInv" type="al:InvoiceSType" use="required" >
<annotation>
<documentation>Type of the item represents the type of invoice item, e.g. regular sale or a returned
item.</documentation>
</annotation>
</attribute>
<attribute name="IsSimplifiedInv" type="boolean" use="required" >
<annotation>
<documentation>If the invoice is simplified or not.</documentation>
</annotation>
</attribute>
<attribute name="TypeOfSelfIss" type="al:SelfIssSType" use="optional" >
<annotation>
<documentation>Type of self-issuing.</documentation>
</annotation>
</attribute>
<attribute name="IssueDateTime" type="al:UTCSType" use="required" >
<annotation>
<documentation>Date and time of invoice created and issued at TCR.</documentation>
</annotation>
</attribute>
<attribute name="InvNum" type="al:InvNumSType" use="required" >
101 | 121
<annotation>
<documentation>Invoice number composed of invoice ordinal number, year of invoice issuance and code of TCR that
issued invoice.</documentation>
</annotation>
</attribute>
<attribute name="InvOrdNum" type="al:IntegerSType" use="required" >
<annotation>
<documentation>Invoice ordinal number.</documentation>
</annotation>
</attribute>
<attribute name="TCRCode" type="al:RegistrationCodeSType" use="optional" >
<annotation>
<documentation>Code of the device that issued the invoice.</documentation>
</annotation>
</attribute>
<attribute name="IsIssuerInVAT" type="boolean" use="required" >
<annotation>
<documentation>Is the taxpayer in the VAT system.</documentation>
</annotation>
</attribute>
<attribute name="TaxFreeAmt" type="al:DecimalNegSType" use="optional" >
<annotation>
<documentation>Amount on items that are tax free.</documentation>
</annotation>
</attribute>
<attribute name="MarkUpAmt" type="al:DecimalNegSType" use="optional" >
<annotation>
<documentation>Amount of the mark-up on the invoice.</documentation>
</annotation>
</attribute>
<attribute name="GoodsExAmt" type="al:DecimalNegSType" use="optional" >
<annotation>
<documentation>Total price of delivery of exported goods. There is no VAT on the invoice.</documentation>
</annotation>
</attribute>
<attribute name="TotPriceWoVAT" type="al:DecimalNegSType" use="required" >
<annotation>
<documentation>Total price of the invoice without VAT.</documentation>
</annotation>
</attribute>
<attribute name="TotVATAmt" type="al:DecimalNegSType" use="optional" >
<annotation>
<documentation>Total VAT amount.</documentation>
</annotation>
</attribute>
<attribute name="TotPrice" type="al:DecimalNegSType" use="required" >
<annotation>
<documentation>Total price of the invoice including VAT.</documentation>
</annotation>
</attribute>
<attribute name="OperatorCode" type="al:RegistrationCodeSType" use="required" >
<annotation>
<documentation>Reference to the operator who is operating on TCR. Value represents code of the
operator.</documentation>
</annotation>
</attribute>
<attribute name="BusinUnitCode" type="al:RegistrationCodeSType" use="required" >
<annotation>
<documentation>Code (ID) of the business unit in which the invoice is issued.</documentation>
</annotation>
</attribute>
<attribute name="SoftCode" type="al:RegistrationCodeSType" use="required" >
<annotation>
<documentation>Number of the software used for invoice issuing.</documentation>
</annotation>
</attribute>
<attribute name="ImpCustDecNum" type="al:String50SType" use="optional" >
<annotation>
<documentation>Import customs declaration number. Only for internal use. Must not be populated by a
TCR.</documentation>
</annotation>
</attribute>
<attribute name="IIC" type="al:Hex32SType" use="required" >
<annotation>
<documentation>Issuers’s invoice code which is generated by the cash register of the issuer of the invoice. This
is a unique code for every invoice. </documentation>
</annotation>
</attribute>
<attribute name="IICSignature" type="al:Hex512SType" use="required" >
<annotation>
<documentation>Signed issuer’s invoice code concatenated parameters.</documentation>
</annotation>
</attribute>
<attribute name="IsReverseCharge" type="boolean" use="required" >
<annotation>
<documentation>Buyer is obliged to pay taxes by himself rather than issuer does it for him.</documentation>
</annotation>
</attribute>
<attribute name="PayDeadline" type="al:DateSType" use="optional" >
<annotation>
<documentation>Last day for a payment.</documentation>
</annotation>
</attribute>
<attribute name="IsEinvoice" type="boolean" use="optional" >
<annotation>
<documentation>Is the invoice fiscalized during the einvoice creation process.</documentation>
</annotation>
</attribute>
</complexType>
<complexType name="InvoiceItemType">
<all>
102 | 121
<element name="VS" type="al:VouchersSoldType" minOccurs="0" maxOccurs="1">
<annotation>
<documentation>Element representing voucher data linked to this item.</documentation>
</annotation>
</element>
</all>
<attribute name="N" type="al:String50SType" use="required">
<annotation>
<documentation>Name of the item.</documentation>
</annotation>
</attribute>
<attribute name="C" type="al:String50SType" use="optional">
<annotation>
<documentation>Code of the item.</documentation>
</annotation>
</attribute>
<attribute name="U" type="al:String50SType" use="required">
<annotation>
<documentation>Unit of measure for specific item – piece, weight, length...</documentation>
</annotation>
</attribute>
<attribute name="Q" type="al:DoubleNegForQuantitySType" use="required">
<annotation>
<documentation>Amount or number (quantity) of items.</documentation>
</annotation>
</attribute>
<attribute name="UPB" type="al:DecimalSType" use="required">
<annotation>
<documentation>Price of one item before VAT is applied (unit price without VAT).</documentation>
</annotation>
</attribute>
<attribute name="UPA" type="al:DecimalSType" use="required">
<annotation>
<documentation>Price of one item after VAT is applied (unit price with VAT). It is calculated as
PA/Q.</documentation>
</annotation>
</attribute>
<attribute name="R" type="al:DecimalSType" use="optional">
<annotation>
<documentation>Rebate percentage.</documentation>
</annotation>
</attribute>
<attribute name="RR" type="boolean" use="optional">
<annotation>
<documentation>Is rebate reducing base price?</documentation>
</annotation>
</attribute>
<attribute name="PB" type="al:DecimalNegSType" use="required">
<annotation>
<documentation>Price before VAT for the items in this group of items. This is not the unit price of the item. It
is the unit price multiplied by the quantity of items.</documentation>
</annotation>
</attribute>
<attribute name="VR" type="al:DecimalSType" use="optional">
<annotation>
<documentation>Rate of value added tax expressed as percentage.</documentation>
</annotation>
</attribute>
<attribute name="VA" type="al:DecimalNegSType" use="optional">
<annotation>
<documentation>Amount of value added tax for the items in this group of items.</documentation>
</annotation>
</attribute>
<attribute name="IN" type="boolean" use="optional" >
<annotation>
<documentation>If true, the item is investment.</documentation>
</annotation>
</attribute>
<attribute name="PA" type="al:DecimalNegSType" use="required">
<annotation>
<documentation>Price after applying VAT for the items in this group of items.</documentation>
</annotation>
</attribute>
<attribute name="EX" type="al:ExemptFromVATSType" use="optional">
<annotation>
<documentation>Exempt from VAT.</documentation>
</annotation>
</attribute>
</complexType>
<complexType name="InvoiceItemsType">
<sequence>
<element name="I" type="al:InvoiceItemType" minOccurs="1" maxOccurs="1000">
<annotation>
<documentation>Element representing a single item on the invoice.</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="SupplyDateOrPeriodType">
<attribute name="Start" type="al:DateSType" use="required">
<annotation>
<documentation>Issuer's NUIS.</documentation>
</annotation>
</attribute>
<attribute name="End" type="al:DateSType" use="required">
<annotation>
<documentation>Issuer's name.</documentation>
</annotation>
</attribute>
</complexType>
<complexType name="CorrectiveInvType">
103 | 121
<attribute name="IICRef" type="al:Hex32SType" use="required">
<annotation>
<documentation>IIC reference on the original invoice.</documentation>
</annotation>
</attribute>
<attribute name="IssueDateTime" type="al:UTCSType" use="required">
<annotation>
<documentation>Date and time the original invoice is created and issued at TCR</documentation>
</annotation>
</attribute>
<attribute name="Type" type="al:CorrectiveInvTypeSType" use="required">
<annotation>
<documentation>Type of the corrective invoice.</documentation>
</annotation>
</attribute>
</complexType>
<complexType name="CurrencyType">
<attribute name="Code" type="al:CurrencyCodeSType" use="required">
<annotation>
<documentation>Currency code from the ISO 4217 standard.</documentation>
</annotation>
</attribute>
<attribute name="ExRate" type="al:DoubleSType" use="required">
<annotation>
<documentation>Exchange rate applied to calculate the equivalent amount of foreign currency for the total amount
expressed in LEK. Exchange rate express equivalent amount of LEK for 1 unit of foreign currency.</documentation>
</annotation>
</attribute>
<attribute name="IsBuying" type="boolean" use="optional">
<annotation>
<documentation>True if exchange transaction is buying of the currency. False if exchange transaction is selling of
the currency.</documentation>
</annotation>
</attribute>
</complexType>
<complexType name="SellerType">
<attribute name="IDType" type="al:IDTypeSType" use="required">
<annotation>
<documentation>Seller's identification number type.</documentation>
</annotation>
</attribute>
<attribute name="IDNum" type="al:String20SType" use="required">
<annotation>
<documentation>Seller's identification number.</documentation>
</annotation>
</attribute>
<attribute name="Name" type="al:String100SType" use="required">
<annotation>
<documentation>Seller's name.</documentation>
</annotation>
</attribute>
<attribute name="Address" type="al:String200SType" use="optional">
<annotation>
<documentation>Seller's address.</documentation>
</annotation>
</attribute>
<attribute name="Town" type="al:String100SType" use="optional">
<annotation>
<documentation>Seller's town.</documentation>
</annotation>
</attribute>
<attribute name="Country" type="al:CountryCodeSType" use="optional">
<annotation>
<documentation>Seller's country.</documentation>
</annotation>
</attribute>
</complexType>
<complexType name="BuyerType">
<attribute name="IDType" type="al:IDTypeSType" use="optional">
<annotation>
<documentation>Buyer's identification number type.</documentation>
</annotation>
</attribute>
<attribute name="IDNum" type="al:String20SType" use="optional">
<annotation>
<documentation>Buyer's identification number.</documentation>
</annotation>
</attribute>
<attribute name="Name" type="al:String100SType" use="optional">
<annotation>
<documentation>Buyer's name.</documentation>
</annotation>
</attribute>
<attribute name="Address" type="al:String200SType" use="optional">
<annotation>
<documentation>Buyer's address.</documentation>
</annotation>
</attribute>
<attribute name="Town" type="al:String100SType" use="optional">
<annotation>
<documentation>Buyer's town.</documentation>
</annotation>
</attribute>
<attribute name="Country" type="al:CountryCodeSType" use="optional">
<annotation>
<documentation>Buyer's country.</documentation>
</annotation>
</attribute>
</complexType>
<complexType name="WTNIssuerType">
<attribute name="NUIS" type="al:NUISSType" use="required">
104 | 121
<annotation>
<documentation>NUIS of the WTN issuer.</documentation>
</annotation>
</attribute>
<attribute name="Name" type="al:String100SType" use="required">
<annotation>
<documentation>Name of the WTN issuer.</documentation>
</annotation>
</attribute>
<attribute name="Address" type="al:String200SType" use="required">
<annotation>
<documentation>Address of the WTN issuer.</documentation>
</annotation>
</attribute>
<attribute name="Town" type="al:String100SType" use="required">
<annotation>
<documentation>Town of the WTN issuer.</documentation>
</annotation>
</attribute>
</complexType>
<complexType name="WTNBuyerType">
<attribute name="NUIS" type="al:NUISSType" use="required">
<annotation>
<documentation>NUIS of the buyer of goods.</documentation>
</annotation>
</attribute>
<attribute name="Name" type="al:String100SType" use="required">
<annotation>
<documentation>Name of the buyer of goods.</documentation>
</annotation>
</attribute>
<attribute name="Address" type="al:String200SType" use="required">
<annotation>
<documentation>Address of the buyer of goods.</documentation>
</annotation>
</attribute>
<attribute name="Town" type="al:String100SType" use="required">
<annotation>
<documentation>Town of the buyer of goods.</documentation>
</annotation>
</attribute>
</complexType>
<complexType name="WTNCarrierType">
<attribute name="IDType" type="al:CarrierIDTypeSType" use="required">
<annotation>
<documentation>Carrier's identification number type.</documentation>
</annotation>
</attribute>
<attribute name="IDNum" type="al:String20SType" use="required">
<annotation>
<documentation>Carrier's identification number.</documentation>
</annotation>
</attribute>
<attribute name="Name" type="al:String100SType" use="required">
<annotation>
<documentation>Carrier's name.</documentation>
</annotation>
</attribute>
<attribute name="Address" type="al:String200SType" use="optional">
<annotation>
<documentation>Carrier's address.</documentation>
</annotation>
</attribute>
<attribute name="Town" type="al:String100SType" use="optional">
<annotation>
<documentation>Carrier's town.</documentation>
</annotation>
</attribute>
</complexType>
<complexType name="PayMethodsType">
<sequence>
<element name="PayMethod" type="al:PayMethodType" minOccurs="1" maxOccurs="10">
<annotation>
<documentation>XML element representing one payment method.</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="SameTaxesType">
<sequence>
<element name="SameTax" type="al:SameTaxType" minOccurs="1" maxOccurs="20">
<annotation>
<documentation>Element representing an item of list of same tax items.</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="ConsTaxesType">
<sequence>
<element name="ConsTax" type="al:ConsTaxType" minOccurs="1" maxOccurs="20">
<annotation>
<documentation>Element representing an item on list of items under consumption tax.</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="FeesType">
<sequence>
<element name="Fee" type="al:FeeType" minOccurs="1" maxOccurs="20">
<annotation>
<documentation>Element representing an item of list of fee items.</documentation>
105 | 121
</annotation>
</element>
</sequence>
</complexType>
<complexType name="SumInvIICRefsType">
<sequence>
<element name="SumInvIICRef" type="al:SumInvIICRefType" minOccurs="1" maxOccurs="1000">
<annotation>
<documentation>XML element representing a single IIC reference on the list of SumInvIICRefs.</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="PayMethodType">
<sequence>
<element name="Vouchers" type="al:VouchersType" minOccurs="0" maxOccurs="1">
<annotation>
<documentation>XML element representing list of voucher numbers if the payment method is
voucher.</documentation>
</annotation>
</element>
</sequence>
<attribute name="Type" type="al:PaymentMethodTypeSType" use="required">
<annotation>
<documentation>Type of the payment method.</documentation>
</annotation>
</attribute>
<attribute name="Amt" type="al:DecimalNegSType" use="optional">
<annotation>
<documentation>Amount payed by payment method in the country currency.</documentation>
</annotation>
</attribute>
<attribute name="CompCard" type="al:String50SType" use="optional">
<annotation>
<documentation>Company card number if the payment method is company cards.</documentation>
</annotation>
</attribute>
</complexType>
<complexType name="VouchersType">
<sequence>
<element name="Voucher" type="al:VoucherType" minOccurs="1" maxOccurs="20">
<annotation>
<documentation>XML element representing a single voucher number.</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="VoucherType">
<attribute name="Num" type="al:VoucherNumSType" use="required">
<annotation>
<documentation>XML element representing single voucher serial number.</documentation>
</annotation>
</attribute>
</complexType>
<complexType name="SameTaxType">
<attribute name="NumOfItems" type="al:IntSType" use="required">
<annotation>
<documentation>Number of items.</documentation>
</annotation>
</attribute>
<attribute name="PriceBefVAT" type="al:DecimalNegSType" use="required">
<annotation>
<documentation>Price before VAT.</documentation>
</annotation>
</attribute>
<attribute name="VATRate" type="al:DecimalNegSType" use="optional">
<annotation>
<documentation>VAT rate.</documentation>
</annotation>
</attribute>
<attribute name="ExemptFromVAT" type="al:ExemptFromVATSameTaxItemSType" use="optional">
<annotation>
<documentation>Exempt from VAT.</documentation>
</annotation>
</attribute>
<attribute name="VATAmt" type="al:DecimalNegSType" use="optional">
<annotation>
<documentation>VAT amount.</documentation>
</annotation>
</attribute>
</complexType>
<complexType name="ConsTaxType">
<attribute name="NumOfItems" type="al:IntSType" use="required">
<annotation>
<documentation>Number of items.</documentation>
</annotation>
</attribute>
<attribute name="PriceBefConsTax" type="al:DecimalNegSType" use="required">
<annotation>
<documentation>Price before consumption tax.</documentation>
</annotation>
</attribute>
<attribute name="ConsTaxRate" type="al:DecimalNegSType" use="required">
<annotation>
<documentation>Consumption tax rate.</documentation>
</annotation>
</attribute>
<attribute name="ConsTaxAmt" type="al:DecimalNegSType" use="required">
<annotation>
<documentation>Consumption tax amount.</documentation>
</annotation>
106 | 121
</attribute>
</complexType>
<complexType name="FeeType">
<attribute name="Type" type="al:FeeTypeSType" use="required">
<annotation>
<documentation>Type of the fee.</documentation>
</annotation>
</attribute>
<attribute name="Amt" type="al:DecimalNegSType" use="required">
<annotation>
<documentation>The decimal amount of the fee in the country currency.</documentation>
</annotation>
</attribute>
</complexType>
<complexType name="SumInvIICRefType">
<attribute name="IIC" type="al:Hex32SType" use="required">
<annotation>
<documentation>IIC of the invoice that is referenced by the summary invoice.</documentation>
</annotation>
</attribute>
<attribute name="IssueDateTime" type="al:UTCSType" use="required">
<annotation>
<documentation>Date and time the invoice referenced by the summary invoice is created and issued at
TCR.</documentation>
</annotation>
</attribute>
</complexType>
<complexType name="CashDepositType">
<attribute name="ChangeDateTime" type="al:UTCSType" use="required" >
<annotation>
<documentation>Element representing date and time when the deposit of cash was checked in the cash
register.</documentation>
</annotation>
</attribute>
<attribute name="Operation" type="al:CashDepositOperationSType" use="required">
<annotation>
<documentation>This is an XML element that represents the operation made at the cash register.</documentation>
</annotation>
</attribute>
<attribute name="CashAmt" type="al:DecimalSType" use="required" >
<annotation>
<documentation>Element representing the amount of cash found in the cash register after the
operation.</documentation>
</annotation>
</attribute>
<attribute name="TCRCode" type="al:RegistrationCodeSType" use="required" >
<annotation>
<documentation>Element representing the unique code of the TCR in question.</documentation>
</annotation>
</attribute>
<attribute name="IssuerNUIS" type="al:NUISSType" use="required">
<annotation>
<documentation>Element representing issuer's NUIS (tax number).</documentation>
</annotation>
</attribute>
</complexType>
<complexType name="TCRType">
<simpleContent>
<extension base="string">
<attribute name="IssuerNUIS" type="al:NUISSType" use="required">
<annotation>
<documentation>Issuer's NUIS.</documentation>
</annotation>
</attribute>
<attribute name="BusinUnitCode" type="al:RegistrationCodeSType" use="required">
<annotation>
<documentation>Code of the business unit in which the invoice is issued.</documentation>
</annotation>
</attribute>
<attribute name="TCRIntID" type="al:String50SType" use="required">
<annotation>
<documentation>Element representing the internal identification of the TCR.</documentation>
</annotation>
</attribute>
<attribute name="SoftCode" type="al:RegistrationCodeSType" use="optional">
<annotation>
<documentation>Code of the software used for invoice issuing.</documentation>
</annotation>
</attribute>
<attribute name="MaintainerCode" type="al:RegistrationCodeSType" use="optional">
<annotation>
<documentation>Code of the maintainer of the software used for invoice issuing.</documentation>
</annotation>
</attribute>
<attribute name="ValidFrom" type="al:DateSType" use="optional">
<annotation>
<documentation>Date from which the TCR will be used.</documentation>
</annotation>
</attribute>
<attribute name="ValidTo" type="al:DateSType" use="optional">
<annotation>
<documentation>Date until the TCR will be used.</documentation>
</annotation>
</attribute>
<attribute name="Type" type="al:TCRSType" use="optional">
<annotation>
<documentation>TCR type.</documentation>
</annotation>
</attribute>
</extension>
</simpleContent>
107 | 121
</complexType>
<complexType name="WTNType">
<sequence>
<element name="Issuer" type="al:WTNIssuerType" minOccurs="1" maxOccurs="1">
<annotation>
<documentation>Issuer of the WTN.</documentation>
</annotation>
</element>
<element name="Carrier" type="al:WTNCarrierType" minOccurs="0" maxOccurs="1">
<annotation>
<documentation>Carrier of the goods.</documentation>
</annotation>
</element>
<element name="Items" type="al:WTNItemsType" minOccurs="1" maxOccurs="1">
<annotation>
<documentation>XML element representing a list of items of the note.</documentation>
</annotation>
</element>
</sequence>
<attribute name="Type" type="al:WTNSType" use="required">
<annotation>
<documentation>Type of WTN.</documentation>
</annotation>
</attribute>
<attribute name="Transaction" type="al:WTNTransactionSType" use="required">
<annotation>
<documentation>Transaction type.</documentation>
</annotation>
</attribute>
<attribute name="IssueDateTime" type="al:UTCSType" use="required">
<annotation>
<documentation>Date and time of the note creation on a TCR.</documentation>
</annotation>
</attribute>
<attribute name="OperatorCode" type="al:RegistrationCodeSType" use="required">
<annotation>
<documentation>Reference to the operator who is operating on TCR. Value represents code of the
operator.</documentation>
</annotation>
</attribute>
<attribute name="BusinUnitCode" type="al:RegistrationCodeSType" use="required">
<annotation>
<documentation>Code of the business unit in which the note is issued.</documentation>
</annotation>
</attribute>
<attribute name="SoftCode" type="al:RegistrationCodeSType" use="required">
<annotation>
<documentation>Code of the software used for WTN issuing.</documentation>
</annotation>
</attribute>
<attribute name="WTNOrdNum" type="al:IntegerSType" use="required" >
<annotation>
<documentation>WTN ordinal number.</documentation>
</annotation>
</attribute>
<attribute name="WTNNum" type="al:WTNNumSType" use="required">
<annotation>
<documentation>Unique identifying number of the warehouse transfer note. It consists of ordinal number of the note
and calendar year, without leading zero.</documentation>
</annotation>
</attribute>
<attribute name="ValueOfGoods" type="al:DecimalNegSType" use="required" >
<annotation>
<documentation>Cost of goods at cost price.</documentation>
</annotation>
</attribute>
<attribute name="VehOwnership" type="al:VehOwnershipSType" use="required" >
<annotation>
<documentation>Vehicle ownership type.</documentation>
</annotation>
</attribute>
<attribute name="VehPlates" type="al:VehPlatesSType" use="required">
<annotation>
<documentation>Plates of the vehicle that will transport the goods.</documentation>
</annotation>
</attribute>
<attribute name="StartAddr" type="al:String200SType" use="required">
<annotation>
<documentation>Starting address of the transportation.</documentation>
</annotation>
</attribute>
<attribute name="StartCity" type="al:String100SType" use="required">
<annotation>
<documentation>City where the transportation started in.</documentation>
</annotation>
</attribute>
<attribute name="StartDateTime" type="al:UTCSType" use="required">
<annotation>
<documentation>Date and time of the transport departure from start address.</documentation>
</annotation>
</attribute>
<attribute name="StartPoint" type="al:WTNStartPointSType" use="required">
<annotation>
<documentation>Type of start point.</documentation>
</annotation>
</attribute>
<attribute name="DestinAddr" type="al:String200SType" use="required">
<annotation>
<documentation>Destination address of the transportation.</documentation>
</annotation>
</attribute>
108 | 121
<attribute name="DestinCity" type="al:String100SType" use="required">
<annotation>
<documentation>City where the transportation will end.</documentation>
</annotation>
</attribute>
<attribute name="DestinDateTime" type="al:UTCSType" use="required">
<annotation>
<documentation>Expected date when the goods should arrive to its destination.</documentation>
</annotation>
</attribute>
<attribute name="DestinPoint" type="al:WTNDestinPointSType" use="required">
<annotation>
<documentation>Type of destination point.</documentation>
</annotation>
</attribute>
<attribute name="IsGoodsFlammable" type="boolean" use="required">
<annotation>
<documentation>Are goods flammable or not.</documentation>
</annotation>
</attribute>
<attribute name="IsEscortRequired" type="boolean" use="required">
<annotation>
<documentation>Is escort required or not.</documentation>
</annotation>
</attribute>
<attribute name="PackType" type="al:String50SType" use="optional">
<annotation>
<documentation>Type of packaging.</documentation>
</annotation>
</attribute>
<attribute name="PackNum" type="al:IntSType" use="optional">
<annotation>
<documentation>Number of packs.</documentation>
</annotation>
</attribute>
<attribute name="ItemsNum" type="al:IntSType" use="optional">
<annotation>
<documentation>Number of items of goods.</documentation>
</annotation>
</attribute>
<attribute name="WTNIC" type="al:Hex32SType" use="required">
<annotation>
<documentation>Warehouse transfer note identification code.</documentation>
</annotation>
</attribute>
<attribute name="WTNICSignature" type="al:Hex512SType" use="required" >
<annotation>
<documentation>Signed warehouse transfer note identification code concatenated parameters.</documentation>
</annotation>
</attribute>
</complexType>
<complexType name="WTNItemsType">
<sequence>
<element name="I" type="al:WTNItemType" minOccurs="1" maxOccurs="1000">
<annotation>
<documentation>XML element representing a list of items of the note.</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="WTNItemType">
<annotation>
<documentation/>
</annotation>
<attribute name="N" type="al:String50SType" use="required">
<annotation>
<documentation>Name of the item.</documentation>
</annotation>
</attribute>
<attribute name="C" type="al:String50SType" use="optional">
<annotation>
<documentation>Code of the item.</documentation>
</annotation>
</attribute>
<attribute name="U" type="al:String50SType" use="required">
<annotation>
<documentation>Unit of measure for specific item – piece, weight, length...</documentation>
</annotation>
</attribute>
<attribute name="Q" type="al:DoubleNegForQuantitySType" use="required">
<annotation>
<documentation>Amount or number (quantity) of items.</documentation>
</annotation>
</attribute>
</complexType>
<complexType name="VouchersSoldType">
<all>
<element name="VD" type="al:VoucherSoldDataType" minOccurs="1" maxOccurs="1">
<annotation>
<documentation>XML element representing a voucher data.</documentation>
</annotation>
</element>
<element name="VN" type="al:VouchersSoldNumType" minOccurs="1" maxOccurs="1">
<annotation>
<documentation>XML element representing a voucher numbers.</documentation>
</annotation>
</element>
</all>
</complexType>
<complexType name="VoucherSoldDataType">
<attribute name="D" type="al:DateSType" use="required">
109 | 121
<annotation>
<documentation>Expiration date of the voucher.</documentation>
</annotation>
</attribute>
<attribute name="N" type="al:DecimalSType" use="required">
<annotation>
<documentation>Nominal voucher value.</documentation>
</annotation>
</attribute>
</complexType>
<complexType name="VouchersSoldNumType">
<sequence>
<element name="V" type="al:VoucherType" minOccurs="1" maxOccurs="1000">
<annotation>
<documentation>XML element representing a single voucher number sold.</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="BadDebtInvType">
<attribute name="IICRef" type="al:Hex32SType" use="required">
<annotation>
<documentation>IIC reference on the original invoice.</documentation>
</annotation>
</attribute>
<attribute name="IssueDateTime" type="al:UTCSType" use="required">
<annotation>
<documentation>Date and time the original invoice is created and issued at TCR</documentation>
</annotation>
</attribute>
</complexType>
<simpleType name="InvoiceSType">
<annotation>
<documentation>Invoice type.</documentation>
</annotation>
<restriction base="string">
<enumeration value="CASH">
<annotation>
<documentation>Cash invoice.</documentation>
</annotation>
</enumeration>
<enumeration value="NONCASH">
<annotation>
<documentation>Non-cash invoice.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="WTNSType">
<annotation>
<documentation>Warehouse transfer note type.</documentation>
</annotation>
<restriction base="string">
<enumeration value="WTN">
<annotation>
<documentation>WTN without changing ownership.</documentation>
</annotation>
</enumeration>
<enumeration value="SALE">
<annotation>
<documentation>WTN with changing ownership.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="TCRSType">
<annotation>
<documentation>TCR type.</documentation>
</annotation>
<restriction base="string">
<enumeration value="REGULAR">
<annotation>
<documentation>Regular TCR.</documentation>
</annotation>
</enumeration>
<enumeration value="VENDING">
<annotation>
<documentation>Self-vending machine.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="WTNGroupOfGoodsSType">
<annotation>
<documentation>Warehouse transfer note group of goods.</documentation>
</annotation>
<restriction base="string">
<enumeration value="FUEL">
<annotation>
<documentation>Fuel group of goods.</documentation>
</annotation>
</enumeration>
<enumeration value="ALCOHOL">
<annotation>
<documentation>Alcohol group of goods.</documentation>
</annotation>
</enumeration>
<enumeration value="CIGARETTES">
<annotation>
<documentation>Cigarettes group of goods.</documentation>
110 | 121
</annotation>
</enumeration>
<enumeration value="OTHER">
<annotation>
<documentation>Other group of goods.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="WTNTransactionSType">
<annotation>
<documentation>Warehouse transfer note transaction type.</documentation>
</annotation>
<restriction base="string">
<enumeration value="SALES">
<annotation>
<documentation>Regular sales transaction type.</documentation>
</annotation>
</enumeration>
<enumeration value="EXAMINATION">
<annotation>
<documentation>Examination transaction type.</documentation>
</annotation>
</enumeration>
<enumeration value="TRANSFER">
<annotation>
<documentation>Transfer transaction type.</documentation>
</annotation>
</enumeration>
<enumeration value="DOOR">
<annotation>
<documentation>Door to door sales transaction type.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="WTNStartPointSType">
<annotation>
<documentation>Type of start point.</documentation>
</annotation>
<restriction base="string">
<enumeration value="WAREHOUSE">
<annotation>
<documentation>Warehouse.</documentation>
</annotation>
</enumeration>
<enumeration value="EXHIBITION">
<annotation>
<documentation>Exhibition.</documentation>
</annotation>
</enumeration>
<enumeration value="STORE">
<annotation>
<documentation>Store.</documentation>
</annotation>
</enumeration>
<enumeration value="SALE">
<annotation>
<documentation>Point of sale.</documentation>
</annotation>
</enumeration>
<enumeration value="ANOTHER">
<annotation>
<documentation>Another person's warehouse.</documentation>
</annotation>
</enumeration>
<enumeration value="CUSTOMS">
<annotation>
<documentation>Customs warehouse.</documentation>
</annotation>
</enumeration>
<enumeration value="OTHER">
<annotation>
<documentation>Other.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="WTNDestinPointSType">
<annotation>
<documentation>Type of destination point.</documentation>
</annotation>
<restriction base="string">
<enumeration value="WAREHOUSE">
<annotation>
<documentation>Warehouse.</documentation>
</annotation>
</enumeration>
<enumeration value="EXHIBITION">
<annotation>
<documentation>Exhibition.</documentation>
</annotation>
</enumeration>
<enumeration value="STORE">
<annotation>
<documentation>Store.</documentation>
</annotation>
</enumeration>
<enumeration value="SALE">
<annotation>
<documentation>Point of sale.</documentation>
111 | 121
</annotation>
</enumeration>
<enumeration value="OTHER">
<annotation>
<documentation>Other.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="VehOwnershipSType">
<annotation>
<documentation>Vehicle ownership type.</documentation>
</annotation>
<restriction base="string">
<enumeration value="OWNER">
<annotation>
<documentation>Vehicle owned.</documentation>
</annotation>
</enumeration>
<enumeration value="THIRDPARTY">
<annotation>
<documentation>Third party vehicle.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="DecimalSType">
<annotation>
<documentation>Decimal number with two numbers after decimal point.</documentation>
</annotation>
<restriction base="decimal">
<pattern value="([1-9][0-9]*|0)\.[0-9]{2}|0"/>
</restriction>
</simpleType>
<simpleType name="SelfIssSType">
<annotation>
<documentation>Self issuing type.</documentation>
</annotation>
<restriction base="string">
<enumeration value="AGREEMENT">
<annotation>
<documentation>The previous agreement between the parties.</documentation>
</annotation>
</enumeration>
<enumeration value="DOMESTIC">
<annotation>
<documentation>Buying from domestic farmers.</documentation>
</annotation>
</enumeration>
<enumeration value="ABROAD">
<annotation>
<documentation>Buying services from abroad.</documentation>
</annotation>
</enumeration>
<enumeration value="SELF">
<annotation>
<documentation>Self-consumption.</documentation>
</annotation>
</enumeration>
<enumeration value="OTHER">
<annotation>
<documentation>Other</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="PaymentMethodTypeSType">
<annotation>
<documentation>Payment method type.</documentation>
</annotation>
<restriction base="string">
<enumeration value="BANKNOTE">
<annotation>
<documentation>Banknotes and coins</documentation>
</annotation>
</enumeration>
<enumeration value="CARD">
<annotation>
<documentation>Credit and debit card</documentation>
</annotation>
</enumeration>
<enumeration value="CHECK">
<annotation>
<documentation>Bank check</documentation>
</annotation>
</enumeration>
<enumeration value="SVOUCHER">
<annotation>
<documentation>Single-purpose voucher</documentation>
</annotation>
</enumeration>
<enumeration value="COMPANY">
<annotation>
<documentation>Seller's company cards and similar</documentation>
</annotation>
</enumeration>
<enumeration value="ORDER">
<annotation>
<documentation>Invoice not yet paid. It will be paid by summary invoice.</documentation>
</annotation>
</enumeration>
112 | 121
<enumeration value="ACCOUNT">
<annotation>
<documentation>Transaction account</documentation>
</annotation>
</enumeration>
<enumeration value="FACTORING">
<annotation>
<documentation>Factoring</documentation>
</annotation>
</enumeration>
<enumeration value="COMPENSATION">
<annotation>
<documentation>Compensation</documentation>
</annotation>
</enumeration>
<enumeration value="TRANSFER">
<annotation>
<documentation>Transfer of rights or debts</documentation>
</annotation>
</enumeration>
<enumeration value="WAIVER">
<annotation>
<documentation>Waiver of debts</documentation>
</annotation>
</enumeration>
<enumeration value="KIND">
<annotation>
<documentation>Payment in kind (clearing)</documentation>
</annotation>
</enumeration>
<enumeration value="OTHER">
<annotation>
<documentation>Other cashless payments</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="UTCSType">
<annotation>
<documentation>Date and time represented as UTC time with ISO 8601 format.</documentation>
</annotation>
<restriction base="dateTime">
<pattern value="[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([+-][0-9]{2}:[0-9]{2}|Z)"/>
</restriction>
</simpleType>
<simpleType name="DateSType">
<annotation>
<documentation>Date expressed as year-month-day.</documentation>
</annotation>
<restriction base="date">
<pattern value="[0-9]{4}-[0-9]{2}-[0-9]{2}"/>
</restriction>
</simpleType>
<simpleType name="UUIDSType">
<annotation>
<documentation>UUID constructed according to the RFC4122 (https://tools.ietf.org/html/rfc4122).</documentation>
</annotation>
<restriction base="string">
<pattern value="[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}"/>
</restriction>
</simpleType>
<simpleType name="VoucherNumSType">
<annotation>
<documentation>Voucher serial number.</documentation>
</annotation>
<restriction base="string">
<pattern value="[1-9]{1}[0-9]{0,7}-[0-9]{4}-[a-zA-Z]{1}[0-9]{8}[a-zA-Z]{1}"/>
</restriction>
</simpleType>
<simpleType name="NUISSType">
<annotation>
<documentation>NUIS constructed in one letter - eight numbers - one letter pattern, unique.</documentation>
</annotation>
<restriction base="string">
<pattern value="[a-zA-Z]{1}[0-9]{8}[a-zA-Z]{1}"/>
</restriction>
</simpleType>
<simpleType name="InvNumSType">
<annotation>
<documentation>Invoice number composed of Invoice ordinal number, year of invoice issuing and TCR
code.</documentation>
</annotation>
<restriction base="string">
<pattern value="[1-9]{1}[0-9]{0,14}\/[0-9]{4}(\/[a-z]{2}[0-9]{3}[a-z]{2}[0-9]{3})?"/>
</restriction>
</simpleType>
<simpleType name="WTNNumSType">
<annotation>
<documentation>Warehouse transfer note composed of ordinal number of the note and calendar year.</documentation>
</annotation>
<restriction base="string">
<pattern value="[1-9]{1}[0-9]{0,14}\/[0-9]{4}"/>
</restriction>
</simpleType>
<simpleType name="String200SType">
<annotation>
<documentation>String of up to 200 characters.</documentation>
</annotation>
<restriction base="string">
<minLength value="1"/>
<maxLength value="200"/>
113 | 121
</restriction>
</simpleType>
<simpleType name="String100SType">
<annotation>
<documentation>String of up to 100 characters.</documentation>
</annotation>
<restriction base="string">
<minLength value="1"/>
<maxLength value="100"/>
</restriction>
</simpleType>
<simpleType name="String50SType">
<annotation>
<documentation>String of up to 50 characters.</documentation>
</annotation>
<restriction base="string">
<minLength value="1"/>
<maxLength value="50"/>
</restriction>
</simpleType>
<simpleType name="String20SType">
<annotation>
<documentation>String of up to 20 characters.</documentation>
</annotation>
<restriction base="string">
<minLength value="1"/>
<maxLength value="20"/>
</restriction>
</simpleType>
<simpleType name="Hex32SType">
<annotation>
<documentation>Hexadecimal code made of 32 characters.</documentation>
</annotation>
<restriction base="string">
<pattern value="[0-9a-fA-F]{32}"/>
</restriction>
</simpleType>
<simpleType name="Hex512SType">
<annotation>
<documentation>Hexadecimal code made of 512 characters.</documentation>
</annotation>
<restriction base="string">
<pattern value="[0-9a-fA-F]{512}"/>
</restriction>
</simpleType>
<simpleType name="DecimalNegSType">
<annotation>
<documentation>Decimal number that can be written as negative number.</documentation>
</annotation>
<restriction base="decimal">
<pattern value="-?([1-9][0-9]*|0)\.[0-9]{2}|0"/>
</restriction>
</simpleType>
<simpleType name="RegistrationCodeSType">
<annotation>
<documentation>Registration code in two letters - three numbers - two letters - three number format.</documentation>
</annotation>
<restriction base="string">
<pattern value="[a-z]{2}[0-9]{3}[a-z]{2}[0-9]{3}"/>
</restriction>
</simpleType>
<simpleType name="DoubleNegForQuantitySType">
<annotation>
<documentation>Double number for quantity fields that can be written as negative number.</documentation>
</annotation>
<restriction base="double">
<pattern value="-?([1-9][0-9]*|0)(\.[0-9]{1,3})?"/>
</restriction>
</simpleType>
<simpleType name="DoubleSType">
<annotation>
<documentation>Positive double.</documentation>
</annotation>
<restriction base="double">
<minExclusive value="0"></minExclusive>
</restriction>
</simpleType>
<simpleType name="IntSType">
<annotation>
<documentation>Positive integer.</documentation>
</annotation>
<restriction base="int">
<minExclusive value="0"/>
</restriction>
</simpleType>
<simpleType name="IntegerSType">
<annotation>
<documentation>Positive unbounded integer.</documentation>
</annotation>
<restriction base="integer">
<minExclusive value="0"/>
</restriction>
</simpleType>
<simpleType name="CashDepositOperationSType">
<annotation>
<documentation>Cash deposit operation types.</documentation>
</annotation>
<restriction base="string">
<enumeration value="INITIAL">
<annotation>
<documentation>Initial deposit in the TCR.</documentation>
114 | 121
</annotation>
</enumeration>
<enumeration value="WITHDRAW">
<annotation>
<documentation>Amount of cash withdrawn from the TCR.</documentation>
</annotation>
</enumeration>
<enumeration value="DEPOSIT">
<annotation>
<documentation>Amount of cash deposited to the TCR.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="IDTypeSType">
<annotation>
<documentation>Identification number types.</documentation>
</annotation>
<restriction base="string">
<enumeration value="NUIS">
<annotation>
<documentation>NUIS number.</documentation>
</annotation>
</enumeration>
<enumeration value="ID">
<annotation>
<documentation>Personal ID number.</documentation>
</annotation>
</enumeration>
<enumeration value="PASS">
<annotation>
<documentation>Passport number.</documentation>
</annotation>
</enumeration>
<enumeration value="VAT">
<annotation>
<documentation>VAT number.</documentation>
</annotation>
</enumeration>
<enumeration value="TAX">
<annotation>
<documentation>TAX number.</documentation>
</annotation>
</enumeration>
<enumeration value="SOC">
<annotation>
<documentation>Social security number.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="CarrierIDTypeSType">
<annotation>
<documentation>Identification number types for carrier.</documentation>
</annotation>
<restriction base="string">
<enumeration value="NUIS">
<annotation>
<documentation>NUIS number.</documentation>
</annotation>
</enumeration>
<enumeration value="ID">
<annotation>
<documentation>Personal ID number.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="FeeTypeSType">
<annotation>
<documentation>Fee types.</documentation>
</annotation>
<restriction base="string">
<enumeration value="PACK">
<annotation>
<documentation>Packaging fee.</documentation>
</annotation>
</enumeration>
<enumeration value="BOTTLE">
<annotation>
<documentation>Fee for the return of glass bottles.</documentation>
</annotation>
</enumeration>
<enumeration value="COMMISSION">
<annotation>
<documentation>Commission for currency exchange activities.</documentation>
</annotation>
</enumeration>
<enumeration value="OTHER">
<annotation>
<documentation>Other fees that are not listed here.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="CorrectiveInvTypeSType">
<annotation>
<documentation>Types of the corrective invoice.</documentation>
</annotation>
<restriction base="string">
<enumeration value="CORRECTIVE">
115 | 121
<annotation>
<documentation>Corrective invoice.</documentation>
</annotation>
</enumeration>
<enumeration value="DEBIT">
<annotation>
<documentation>Debit note.</documentation>
</annotation>
</enumeration>
<enumeration value="CREDIT">
<annotation>
<documentation>Credit note.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="ExemptFromVATSType">
<annotation>
<documentation>Exempt from VAT types.</documentation>
</annotation>
<restriction base="string">
<enumeration value="TYPE_1">
<annotation>
<documentation>Exempt type 1.</documentation>
</annotation>
</enumeration>
<enumeration value="TYPE_2">
<annotation>
<documentation>Exempt type 2.</documentation>
</annotation>
</enumeration>
<enumeration value="TAX_FREE">
<annotation>
<documentation>Tax free amount.</documentation>
</annotation>
</enumeration>
<enumeration value="MARGIN_SCHEME">
<annotation>
<documentation>Margin scheme.</documentation>
</annotation>
</enumeration>
<enumeration value="EXPORT_OF_GOODS">
<annotation>
<documentation>Export of goods. No VAT.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="ExemptFromVATSameTaxItemSType">
<annotation>
<documentation>Exempt from VAT types.</documentation>
</annotation>
<restriction base="string">
<enumeration value="TYPE_1">
<annotation>
<documentation>Exempt type 1.</documentation>
</annotation>
</enumeration>
<enumeration value="TYPE_2">
<annotation>
<documentation>Exempt type 2.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="CarrierIdSType">
<annotation>
<documentation>Warehouse transfer note carrier ID.</documentation>
</annotation>
<restriction base="string">
<pattern value="[a-zA-Z0-9-]+"/>
</restriction>
</simpleType>
<simpleType name="VehPlatesSType">
<annotation>
<documentation>Vehicle plates of the warehouse transfer note carrier.</documentation>
</annotation>
<restriction base="string">
<pattern value="[a-zA-Z0-9-]+"/>
</restriction>
</simpleType>
<simpleType name="SubseqDelivTypeSType">
<annotation>
<documentation>Type of subsequent delivery if message is delivered after issuance.</documentation>
</annotation>
<restriction base="string">
<enumeration value="NOINTERNET">
<annotation>
<documentation>When TCR operates in the area where there is no Internet available.</documentation>
</annotation>
</enumeration>
<enumeration value="BOUNDBOOK">
<annotation>
<documentation>When TCR is not working and message cannot be created with TCR.</documentation>
</annotation>
</enumeration>
<enumeration value="SERVICE">
<annotation>
<documentation>When there is an issue with the fiscalization service that blocks
fiscalization.</documentation>
</annotation>
116 | 121
</enumeration>
<enumeration value="TECHNICALERROR">
<annotation>
<documentation>When there is a temporary technical error at TCR side that prevents successful
fiscalization.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="CountryCodeSType">
<annotation>
<documentation>Country codes from ISO 3166-1 alpha3 standard</documentation>
</annotation>
<restriction base="string">
<enumeration value="ABW"><annotation><documentation>Aruba</documentation></annotation></enumeration>
<enumeration value="AFG"><annotation><documentation>Afghanistan</documentation></annotation></enumeration>
<enumeration value="AGO"><annotation><documentation>Angola</documentation></annotation></enumeration>
<enumeration value="AIA"><annotation><documentation>Anguilla</documentation></annotation></enumeration>
<enumeration value="ALA"><annotation><documentation>Aland Islands</documentation></annotation></enumeration>
<enumeration value="ALB"><annotation><documentation>Albania</documentation></annotation></enumeration>
<enumeration value="AND"><annotation><documentation>Andorra</documentation></annotation></enumeration>
<enumeration value="ARE"><annotation><documentation>United Arab Emirates</documentation></annotation></enumeration>
<enumeration value="ARG"><annotation><documentation>Argentina</documentation></annotation></enumeration>
<enumeration value="ARM"><annotation><documentation>Armenia</documentation></annotation></enumeration>
<enumeration value="ASM"><annotation><documentation>American Samoa</documentation></annotation></enumeration>
<enumeration value="ATA"><annotation><documentation>Antarctica</documentation></annotation></enumeration>
<enumeration value="ATF"><annotation><documentation>French Southern
Territories</documentation></annotation></enumeration>
<enumeration value="ATG"><annotation><documentation>Antigua and Barbuda</documentation></annotation></enumeration>
<enumeration value="AUS"><annotation><documentation>Australia</documentation></annotation></enumeration>
<enumeration value="AUT"><annotation><documentation>Austria</documentation></annotation></enumeration>
<enumeration value="AZE"><annotation><documentation>Azerbaijan</documentation></annotation></enumeration>
<enumeration value="BDI"><annotation><documentation>Burundi</documentation></annotation></enumeration>
<enumeration value="BEL"><annotation><documentation>Belgium</documentation></annotation></enumeration>
<enumeration value="BEN"><annotation><documentation>Benin</documentation></annotation></enumeration>
<enumeration value="BES"><annotation><documentation>Bonaire, Sint Eustatius and
Saba</documentation></annotation></enumeration>
<enumeration value="BFA"><annotation><documentation>Burkina Faso</documentation></annotation></enumeration>
<enumeration value="BGD"><annotation><documentation>Bangladesh</documentation></annotation></enumeration>
<enumeration value="BGR"><annotation><documentation>Bulgaria</documentation></annotation></enumeration>
<enumeration value="BHR"><annotation><documentation>Bahrain</documentation></annotation></enumeration>
<enumeration value="BHS"><annotation><documentation>Bahamas</documentation></annotation></enumeration>
<enumeration value="BIH"><annotation><documentation>Bosnia and Herzegovina</documentation></annotation></enumeration>
<enumeration value="BLM"><annotation><documentation>Saint Barthelemy</documentation></annotation></enumeration>
<enumeration value="BLR"><annotation><documentation>Belarus</documentation></annotation></enumeration>
<enumeration value="BLZ"><annotation><documentation>Belize</documentation></annotation></enumeration>
<enumeration value="BMU"><annotation><documentation>Bermuda</documentation></annotation></enumeration>
<enumeration value="BOL"><annotation><documentation>Bolivia (Plurinational State
of)</documentation></annotation></enumeration>
<enumeration value="BRA"><annotation><documentation>Brazil</documentation></annotation></enumeration>
<enumeration value="BRB"><annotation><documentation>Barbados</documentation></annotation></enumeration>
<enumeration value="BRN"><annotation><documentation>Brunei Darussalam</documentation></annotation></enumeration>
<enumeration value="BTN"><annotation><documentation>Bhutan</documentation></annotation></enumeration>
<enumeration value="BVT"><annotation><documentation>Bouvet Island</documentation></annotation></enumeration>
<enumeration value="BWA"><annotation><documentation>Botswana</documentation></annotation></enumeration>
<enumeration value="CAF"><annotation><documentation>Central African
Republic</documentation></annotation></enumeration>
<enumeration value="CAN"><annotation><documentation>Canada</documentation></annotation></enumeration>
<enumeration value="CCK"><annotation><documentation>Cocos (Keeling) Islands</documentation></annotation></enumeration>
<enumeration value="CHE"><annotation><documentation>Switzerland</documentation></annotation></enumeration>
<enumeration value="CHL"><annotation><documentation>Chile</documentation></annotation></enumeration>
<enumeration value="CHN"><annotation><documentation>China</documentation></annotation></enumeration>
<enumeration value="CIV"><annotation><documentation>Cote d'Ivoire</documentation></annotation></enumeration>
<enumeration value="CMR"><annotation><documentation>Cameroon</documentation></annotation></enumeration>
<enumeration value="COD"><annotation><documentation>Congo, Democratic Republic of
the</documentation></annotation></enumeration>
<enumeration value="COG"><annotation><documentation>Congo</documentation></annotation></enumeration>
<enumeration value="COK"><annotation><documentation>Cook Islands</documentation></annotation></enumeration>
<enumeration value="COL"><annotation><documentation>Colombia</documentation></annotation></enumeration>
<enumeration value="COM"><annotation><documentation>Comoros</documentation></annotation></enumeration>
<enumeration value="CPV"><annotation><documentation>Cabo Verde</documentation></annotation></enumeration>
<enumeration value="CRI"><annotation><documentation>Costa Rica</documentation></annotation></enumeration>
<enumeration value="CUB"><annotation><documentation>Cuba</documentation></annotation></enumeration>
<enumeration value="CUW"><annotation><documentation>Curacao</documentation></annotation></enumeration>
<enumeration value="CXR"><annotation><documentation>Christmas Island</documentation></annotation></enumeration>
<enumeration value="CYM"><annotation><documentation>Cayman Islands</documentation></annotation></enumeration>
<enumeration value="CYP"><annotation><documentation>Cyprus</documentation></annotation></enumeration>
<enumeration value="CZE"><annotation><documentation>Czechia</documentation></annotation></enumeration>
<enumeration value="DEU"><annotation><documentation>Germany</documentation></annotation></enumeration>
<enumeration value="DJI"><annotation><documentation>Djibouti</documentation></annotation></enumeration>
<enumeration value="DMA"><annotation><documentation>Dominica</documentation></annotation></enumeration>
<enumeration value="DNK"><annotation><documentation>Denmark</documentation></annotation></enumeration>
<enumeration value="DOM"><annotation><documentation>Dominican Republic</documentation></annotation></enumeration>
<enumeration value="DZA"><annotation><documentation>Algeria</documentation></annotation></enumeration>
<enumeration value="ECU"><annotation><documentation>Ecuador</documentation></annotation></enumeration>
<enumeration value="EGY"><annotation><documentation>Egypt</documentation></annotation></enumeration>
<enumeration value="ERI"><annotation><documentation>Eritrea</documentation></annotation></enumeration>
<enumeration value="ESH"><annotation><documentation>Western Sahara</documentation></annotation></enumeration>
<enumeration value="ESP"><annotation><documentation>Spain</documentation></annotation></enumeration>
<enumeration value="EST"><annotation><documentation>Estonia</documentation></annotation></enumeration>
<enumeration value="ETH"><annotation><documentation>Ethiopia</documentation></annotation></enumeration>
<enumeration value="FIN"><annotation><documentation>Finland</documentation></annotation></enumeration>
<enumeration value="FJI"><annotation><documentation>Fiji</documentation></annotation></enumeration>
<enumeration value="FLK"><annotation><documentation>Falkland Islands
(Malvinas)</documentation></annotation></enumeration>
<enumeration value="FRA"><annotation><documentation>France</documentation></annotation></enumeration>
<enumeration value="FRO"><annotation><documentation>Faroe Islands</documentation></annotation></enumeration>
<enumeration value="FSM"><annotation><documentation>Micronesia (Federated States
of)</documentation></annotation></enumeration>
<enumeration value="GAB"><annotation><documentation>Gabon</documentation></annotation></enumeration>
117 | 121
<enumeration value="GBR"><annotation><documentation>United Kingdom of Great Britain and Northern
Ireland</documentation></annotation></enumeration>
<enumeration value="GEO"><annotation><documentation>Georgia</documentation></annotation></enumeration>
<enumeration value="GGY"><annotation><documentation>Guernsey</documentation></annotation></enumeration>
<enumeration value="GHA"><annotation><documentation>Ghana</documentation></annotation></enumeration>
<enumeration value="GIB"><annotation><documentation>Gibraltar</documentation></annotation></enumeration>
<enumeration value="GIN"><annotation><documentation>Guinea</documentation></annotation></enumeration>
<enumeration value="GLP"><annotation><documentation>Guadeloupe</documentation></annotation></enumeration>
<enumeration value="GMB"><annotation><documentation>Gambia</documentation></annotation></enumeration>
<enumeration value="GNB"><annotation><documentation>Guinea-Bissau</documentation></annotation></enumeration>
<enumeration value="GNQ"><annotation><documentation>Equatorial Guinea</documentation></annotation></enumeration>
<enumeration value="GRC"><annotation><documentation>Greece</documentation></annotation></enumeration>
<enumeration value="GRD"><annotation><documentation>Grenada</documentation></annotation></enumeration>
<enumeration value="GRL"><annotation><documentation>Greenland</documentation></annotation></enumeration>
<enumeration value="GTM"><annotation><documentation>Guatemala</documentation></annotation></enumeration>
<enumeration value="GUF"><annotation><documentation>French Guiana</documentation></annotation></enumeration>
<enumeration value="GUM"><annotation><documentation>Guam</documentation></annotation></enumeration>
<enumeration value="GUY"><annotation><documentation>Guyana</documentation></annotation></enumeration>
<enumeration value="HKG"><annotation><documentation>Hong Kong</documentation></annotation></enumeration>
<enumeration value="HMD"><annotation><documentation>Heard Island and McDonald
Islands</documentation></annotation></enumeration>
<enumeration value="HND"><annotation><documentation>Honduras</documentation></annotation></enumeration>
<enumeration value="HRV"><annotation><documentation>Croatia</documentation></annotation></enumeration>
<enumeration value="HTI"><annotation><documentation>Haiti</documentation></annotation></enumeration>
<enumeration value="HUN"><annotation><documentation>Hungary</documentation></annotation></enumeration>
<enumeration value="IDN"><annotation><documentation>Indonesia</documentation></annotation></enumeration>
<enumeration value="IMN"><annotation><documentation>Isle of Man</documentation></annotation></enumeration>
<enumeration value="IND"><annotation><documentation>India</documentation></annotation></enumeration>
<enumeration value="IOT"><annotation><documentation>British Indian Ocean
Territory</documentation></annotation></enumeration>
<enumeration value="IRL"><annotation><documentation>Ireland</documentation></annotation></enumeration>
<enumeration value="IRN"><annotation><documentation>Iran (Islamic Republic
of)</documentation></annotation></enumeration>
<enumeration value="IRQ"><annotation><documentation>Iraq</documentation></annotation></enumeration>
<enumeration value="ISL"><annotation><documentation>Iceland</documentation></annotation></enumeration>
<enumeration value="ISR"><annotation><documentation>Israel</documentation></annotation></enumeration>
<enumeration value="ITA"><annotation><documentation>Italy</documentation></annotation></enumeration>
<enumeration value="JAM"><annotation><documentation>Jamaica</documentation></annotation></enumeration>
<enumeration value="JEY"><annotation><documentation>Jersey</documentation></annotation></enumeration>
<enumeration value="JOR"><annotation><documentation>Jordan</documentation></annotation></enumeration>
<enumeration value="JPN"><annotation><documentation>Japan</documentation></annotation></enumeration>
<enumeration value="KAZ"><annotation><documentation>Kazakhstan</documentation></annotation></enumeration>
<enumeration value="KEN"><annotation><documentation>Kenya</documentation></annotation></enumeration>
<enumeration value="KGZ"><annotation><documentation>Kyrgyzstan</documentation></annotation></enumeration>
<enumeration value="KHM"><annotation><documentation>Cambodia</documentation></annotation></enumeration>
<enumeration value="KIR"><annotation><documentation>Kiribati</documentation></annotation></enumeration>
<enumeration value="KNA"><annotation><documentation>Saint Kitts and Nevis</documentation></annotation></enumeration>
<enumeration value="KOR"><annotation><documentation>Korea, Republic of</documentation></annotation></enumeration>
<enumeration value="KWT"><annotation><documentation>Kuwait</documentation></annotation></enumeration>
<enumeration value="LAO"><annotation><documentation>Lao People's Democratic
Republic</documentation></annotation></enumeration>
<enumeration value="LBN"><annotation><documentation>Lebanon</documentation></annotation></enumeration>
<enumeration value="LBR"><annotation><documentation>Liberia</documentation></annotation></enumeration>
<enumeration value="LBY"><annotation><documentation>Libya</documentation></annotation></enumeration>
<enumeration value="LCA"><annotation><documentation>Saint Lucia</documentation></annotation></enumeration>
<enumeration value="LIE"><annotation><documentation>Liechtenstein</documentation></annotation></enumeration>
<enumeration value="LKA"><annotation><documentation>Sri Lanka</documentation></annotation></enumeration>
<enumeration value="LSO"><annotation><documentation>Lesotho</documentation></annotation></enumeration>
<enumeration value="LTU"><annotation><documentation>Lithuania</documentation></annotation></enumeration>
<enumeration value="LUX"><annotation><documentation>Luxembourg</documentation></annotation></enumeration>
<enumeration value="LVA"><annotation><documentation>Latvia</documentation></annotation></enumeration>
<enumeration value="MAC"><annotation><documentation>Macao</documentation></annotation></enumeration>
<enumeration value="MAF"><annotation><documentation>Saint Martin (French
part)</documentation></annotation></enumeration>
<enumeration value="MAR"><annotation><documentation>Morocco</documentation></annotation></enumeration>
<enumeration value="MCO"><annotation><documentation>Monaco</documentation></annotation></enumeration>
<enumeration value="MDA"><annotation><documentation>Moldova, Republic of</documentation></annotation></enumeration>
<enumeration value="MDG"><annotation><documentation>Madagascar</documentation></annotation></enumeration>
<enumeration value="MDV"><annotation><documentation>Maldives</documentation></annotation></enumeration>
<enumeration value="MEX"><annotation><documentation>Mexico</documentation></annotation></enumeration>
<enumeration value="MHL"><annotation><documentation>Marshall Islands</documentation></annotation></enumeration>
<enumeration value="MKD"><annotation><documentation>North Macedonia</documentation></annotation></enumeration>
<enumeration value="MLI"><annotation><documentation>Mali</documentation></annotation></enumeration>
<enumeration value="MLT"><annotation><documentation>Malta</documentation></annotation></enumeration>
<enumeration value="MMR"><annotation><documentation>Myanmar</documentation></annotation></enumeration>
<enumeration value="MNE"><annotation><documentation>Montenegro</documentation></annotation></enumeration>
<enumeration value="MNG"><annotation><documentation>Mongolia</documentation></annotation></enumeration>
<enumeration value="MNP"><annotation><documentation>Northern Mariana
Islands</documentation></annotation></enumeration>
<enumeration value="MOZ"><annotation><documentation>Mozambique</documentation></annotation></enumeration>
<enumeration value="MRT"><annotation><documentation>Mauritania</documentation></annotation></enumeration>
<enumeration value="MSR"><annotation><documentation>Montserrat</documentation></annotation></enumeration>
<enumeration value="MTQ"><annotation><documentation>Martinique</documentation></annotation></enumeration>
<enumeration value="MUS"><annotation><documentation>Mauritius</documentation></annotation></enumeration>
<enumeration value="MWI"><annotation><documentation>Malawi</documentation></annotation></enumeration>
<enumeration value="MYS"><annotation><documentation>Malaysia</documentation></annotation></enumeration>
<enumeration value="MYT"><annotation><documentation>Mayotte</documentation></annotation></enumeration>
<enumeration value="NAM"><annotation><documentation>Namibia</documentation></annotation></enumeration>
<enumeration value="NCL"><annotation><documentation>New Caledonia</documentation></annotation></enumeration>
<enumeration value="NER"><annotation><documentation>Niger</documentation></annotation></enumeration>
<enumeration value="NFK"><annotation><documentation>Norfolk Island</documentation></annotation></enumeration>
<enumeration value="NGA"><annotation><documentation>Nigeria</documentation></annotation></enumeration>
<enumeration value="NIC"><annotation><documentation>Nicaragua</documentation></annotation></enumeration>
<enumeration value="NIU"><annotation><documentation>Niue</documentation></annotation></enumeration>
<enumeration value="NLD"><annotation><documentation>Netherlands</documentation></annotation></enumeration>
<enumeration value="NOR"><annotation><documentation>Norway</documentation></annotation></enumeration>
<enumeration value="NPL"><annotation><documentation>Nepal</documentation></annotation></enumeration>
<enumeration value="NRU"><annotation><documentation>Nauru</documentation></annotation></enumeration>
<enumeration value="NZL"><annotation><documentation>New Zealand</documentation></annotation></enumeration>
<enumeration value="OMN"><annotation><documentation>Oman</documentation></annotation></enumeration>
<enumeration value="PAK"><annotation><documentation>Pakistan</documentation></annotation></enumeration>
118 | 121
<enumeration value="PAN"><annotation><documentation>Panama</documentation></annotation></enumeration>
<enumeration value="PCN"><annotation><documentation>Pitcairn</documentation></annotation></enumeration>
<enumeration value="PER"><annotation><documentation>Peru</documentation></annotation></enumeration>
<enumeration value="PHL"><annotation><documentation>Philippines</documentation></annotation></enumeration>
<enumeration value="PLW"><annotation><documentation>Palau</documentation></annotation></enumeration>
<enumeration value="PNG"><annotation><documentation>Papua New Guinea</documentation></annotation></enumeration>
<enumeration value="POL"><annotation><documentation>Poland</documentation></annotation></enumeration>
<enumeration value="PRI"><annotation><documentation>Puerto Rico</documentation></annotation></enumeration>
<enumeration value="PRK"><annotation><documentation>Korea (Democratic People's Republic
of)</documentation></annotation></enumeration>
<enumeration value="PRT"><annotation><documentation>Portugal</documentation></annotation></enumeration>
<enumeration value="PRY"><annotation><documentation>Paraguay</documentation></annotation></enumeration>
<enumeration value="PSE"><annotation><documentation>Palestine, State of</documentation></annotation></enumeration>
<enumeration value="PYF"><annotation><documentation>French Polynesia</documentation></annotation></enumeration>
<enumeration value="QAT"><annotation><documentation>Qatar</documentation></annotation></enumeration>
<enumeration value="REU"><annotation><documentation>Reunion</documentation></annotation></enumeration>
<enumeration value="ROU"><annotation><documentation>Romania</documentation></annotation></enumeration>
<enumeration value="RUS"><annotation><documentation>Russian Federation</documentation></annotation></enumeration>
<enumeration value="RWA"><annotation><documentation>Rwanda</documentation></annotation></enumeration>
<enumeration value="SAU"><annotation><documentation>Saudi Arabia</documentation></annotation></enumeration>
<enumeration value="SDN"><annotation><documentation>Sudan</documentation></annotation></enumeration>
<enumeration value="SEN"><annotation><documentation>Senegal</documentation></annotation></enumeration>
<enumeration value="SGP"><annotation><documentation>Singapore</documentation></annotation></enumeration>
<enumeration value="SGS"><annotation><documentation>South Georgia and the South Sandwich
Islands</documentation></annotation></enumeration>
<enumeration value="SHN"><annotation><documentation>Saint Helena, Ascension and Tristan da
Cunha</documentation></annotation></enumeration>
<enumeration value="SJM"><annotation><documentation>Svalbard and Jan Mayen</documentation></annotation></enumeration>
<enumeration value="SLB"><annotation><documentation>Solomon Islands</documentation></annotation></enumeration>
<enumeration value="SLE"><annotation><documentation>Sierra Leone</documentation></annotation></enumeration>
<enumeration value="SLV"><annotation><documentation>El Salvador</documentation></annotation></enumeration>
<enumeration value="SMR"><annotation><documentation>San Marino</documentation></annotation></enumeration>
<enumeration value="SOM"><annotation><documentation>Somalia</documentation></annotation></enumeration>
<enumeration value="SPM"><annotation><documentation>Saint Pierre and
Miquelon</documentation></annotation></enumeration>
<enumeration value="SRB"><annotation><documentation>Serbia</documentation></annotation></enumeration>
<enumeration value="SSD"><annotation><documentation>South Sudan</documentation></annotation></enumeration>
<enumeration value="STP"><annotation><documentation>Sao Tome and Principe</documentation></annotation></enumeration>
<enumeration value="SUR"><annotation><documentation>Suriname</documentation></annotation></enumeration>
<enumeration value="SVK"><annotation><documentation>Slovakia</documentation></annotation></enumeration>
<enumeration value="SVN"><annotation><documentation>Slovenia</documentation></annotation></enumeration>
<enumeration value="SWE"><annotation><documentation>Sweden</documentation></annotation></enumeration>
<enumeration value="SWZ"><annotation><documentation>Eswatini</documentation></annotation></enumeration>
<enumeration value="SXM"><annotation><documentation>Sint Maarten (Dutch
part)</documentation></annotation></enumeration>
<enumeration value="SYC"><annotation><documentation>Seychelles</documentation></annotation></enumeration>
<enumeration value="SYR"><annotation><documentation>Syrian Arab Republic</documentation></annotation></enumeration>
<enumeration value="TCA"><annotation><documentation>Turks and Caicos
Islands</documentation></annotation></enumeration>
<enumeration value="TCD"><annotation><documentation>Chad</documentation></annotation></enumeration>
<enumeration value="TGO"><annotation><documentation>Togo</documentation></annotation></enumeration>
<enumeration value="THA"><annotation><documentation>Thailand</documentation></annotation></enumeration>
<enumeration value="TJK"><annotation><documentation>Tajikistan</documentation></annotation></enumeration>
<enumeration value="TKL"><annotation><documentation>Tokelau</documentation></annotation></enumeration>
<enumeration value="TKM"><annotation><documentation>Turkmenistan</documentation></annotation></enumeration>
<enumeration value="TLS"><annotation><documentation>Timor-Leste</documentation></annotation></enumeration>
<enumeration value="TON"><annotation><documentation>Tonga</documentation></annotation></enumeration>
<enumeration value="TTO"><annotation><documentation>Trinidad and Tobago</documentation></annotation></enumeration>
<enumeration value="TUN"><annotation><documentation>Tunisia</documentation></annotation></enumeration>
<enumeration value="TUR"><annotation><documentation>Turkey</documentation></annotation></enumeration>
<enumeration value="TUV"><annotation><documentation>Tuvalu</documentation></annotation></enumeration>
<enumeration value="TWN"><annotation><documentation>Taiwan, Province of
China</documentation></annotation></enumeration>
<enumeration value="TZA"><annotation><documentation>Tanzania, United Republic
of</documentation></annotation></enumeration>
<enumeration value="UGA"><annotation><documentation>Uganda</documentation></annotation></enumeration>
<enumeration value="UKR"><annotation><documentation>Ukraine</documentation></annotation></enumeration>
<enumeration value="UMI"><annotation><documentation>United States Minor Outlying
Islands</documentation></annotation></enumeration>
<enumeration value="RKS"><annotation><documentation>Kosovo</documentation></annotation></enumeration>
<enumeration value="URY"><annotation><documentation>Uruguay</documentation></annotation></enumeration>
<enumeration value="USA"><annotation><documentation>United States of
America</documentation></annotation></enumeration>
<enumeration value="UZB"><annotation><documentation>Uzbekistan</documentation></annotation></enumeration>
<enumeration value="VAT"><annotation><documentation>Holy See</documentation></annotation></enumeration>
<enumeration value="VCT"><annotation><documentation>Saint Vincent and the
Grenadines</documentation></annotation></enumeration>
<enumeration value="VEN"><annotation><documentation>Venezuela (Bolivarian Republic
of)</documentation></annotation></enumeration>
<enumeration value="VGB"><annotation><documentation>Virgin Islands
(British)</documentation></annotation></enumeration>
<enumeration value="VIR"><annotation><documentation>Virgin Islands (U.S.)</documentation></annotation></enumeration>
<enumeration value="VNM"><annotation><documentation>Viet Nam</documentation></annotation></enumeration>
<enumeration value="VUT"><annotation><documentation>Vanuatu</documentation></annotation></enumeration>
<enumeration value="WLF"><annotation><documentation>Wallis and Futuna</documentation></annotation></enumeration>
<enumeration value="WSM"><annotation><documentation>Samoa</documentation></annotation></enumeration>
<enumeration value="YEM"><annotation><documentation>Yemen</documentation></annotation></enumeration>
<enumeration value="ZAF"><annotation><documentation>South Africa</documentation></annotation></enumeration>
<enumeration value="ZMB"><annotation><documentation>Zambia</documentation></annotation></enumeration>
<enumeration value="ZWE"><annotation><documentation>Zimbabwe</documentation></annotation></enumeration>
</restriction>
</simpleType>
<simpleType name="CurrencyCodeSType">
<annotation>
<documentation>Currency codes from ISO 4217 standard</documentation>
</annotation>
<restriction base="string">
<enumeration value="AED"><annotation><documentation>United Arab Emirates
Dirham</documentation></annotation></enumeration>
<enumeration value="AFN"><annotation><documentation>Afghanistan Afghani</documentation></annotation></enumeration>
<enumeration value="AMD"><annotation><documentation>Armenia Dram</documentation></annotation></enumeration>
119 | 121
<enumeration value="ANG"><annotation><documentation>Netherlands Antilles
Guilder</documentation></annotation></enumeration>
<enumeration value="AOA"><annotation><documentation>Angola Kwanza</documentation></annotation></enumeration>
<enumeration value="ARS"><annotation><documentation>Argentina Peso</documentation></annotation></enumeration>
<enumeration value="AUD"><annotation><documentation>Australia Dollar</documentation></annotation></enumeration>
<enumeration value="AWG"><annotation><documentation>Aruba Guilder</documentation></annotation></enumeration>
<enumeration value="AZN"><annotation><documentation>Azerbaijan Manat</documentation></annotation></enumeration>
<enumeration value="BAM"><annotation><documentation>Bosnia and Herzegovina Convertible
Mark</documentation></annotation></enumeration>
<enumeration value="BBD"><annotation><documentation>Barbados Dollar</documentation></annotation></enumeration>
<enumeration value="BDT"><annotation><documentation>Bangladesh Taka</documentation></annotation></enumeration>
<enumeration value="BGN"><annotation><documentation>Bulgaria Lev</documentation></annotation></enumeration>
<enumeration value="BHD"><annotation><documentation>Bahrain Dinar</documentation></annotation></enumeration>
<enumeration value="BIF"><annotation><documentation>Burundi Franc</documentation></annotation></enumeration>
<enumeration value="BMD"><annotation><documentation>Bermuda Dollar</documentation></annotation></enumeration>
<enumeration value="BND"><annotation><documentation>Brunei Darussalam
Dollar</documentation></annotation></enumeration>
<enumeration value="BOB"><annotation><documentation>Bolivia Boliviano</documentation></annotation></enumeration>
<enumeration value="BRL"><annotation><documentation>Brazil Real</documentation></annotation></enumeration>
<enumeration value="BSD"><annotation><documentation>Bahamas Dollar</documentation></annotation></enumeration>
<enumeration value="BTN"><annotation><documentation>Bhutan Ngultrum</documentation></annotation></enumeration>
<enumeration value="BWP"><annotation><documentation>Botswana Pula</documentation></annotation></enumeration>
<enumeration value="BYN"><annotation><documentation>Belarus Ruble</documentation></annotation></enumeration>
<enumeration value="BZD"><annotation><documentation>Belize Dollar</documentation></annotation></enumeration>
<enumeration value="CAD"><annotation><documentation>Canada Dollar</documentation></annotation></enumeration>
<enumeration value="CDF"><annotation><documentation>Congo/Kinshasa Franc</documentation></annotation></enumeration>
<enumeration value="CHF"><annotation><documentation>Switzerland Franc</documentation></annotation></enumeration>
<enumeration value="CLP"><annotation><documentation>Chile Peso</documentation></annotation></enumeration>
<enumeration value="CNY"><annotation><documentation>China Yuan Renminbi</documentation></annotation></enumeration>
<enumeration value="COP"><annotation><documentation>Colombia Peso</documentation></annotation></enumeration>
<enumeration value="CRC"><annotation><documentation>Costa Rica Colon</documentation></annotation></enumeration>
<enumeration value="CUC"><annotation><documentation>Cuba Convertible Peso</documentation></annotation></enumeration>
<enumeration value="CUP"><annotation><documentation>Cuba Peso</documentation></annotation></enumeration>
<enumeration value="CVE"><annotation><documentation>Cape Verde Escudo</documentation></annotation></enumeration>
<enumeration value="CZK"><annotation><documentation>Czech Republic Koruna</documentation></annotation></enumeration>
<enumeration value="DJF"><annotation><documentation>Djibouti Franc</documentation></annotation></enumeration>
<enumeration value="DKK"><annotation><documentation>Denmark Krone</documentation></annotation></enumeration>
<enumeration value="DOP"><annotation><documentation>Dominican Republic Peso</documentation></annotation></enumeration>
<enumeration value="DZD"><annotation><documentation>Algeria Dinar</documentation></annotation></enumeration>
<enumeration value="EGP"><annotation><documentation>Egypt Pound</documentation></annotation></enumeration>
<enumeration value="ERN"><annotation><documentation>Eritrea Nakfa</documentation></annotation></enumeration>
<enumeration value="ETB"><annotation><documentation>Ethiopia Birr</documentation></annotation></enumeration>
<enumeration value="EUR"><annotation><documentation>Euro Member Countries</documentation></annotation></enumeration>
<enumeration value="FJD"><annotation><documentation>Fiji Dollar</documentation></annotation></enumeration>
<enumeration value="FKP"><annotation><documentation>Falkland Islands (Malvinas)
Pound</documentation></annotation></enumeration>
<enumeration value="GBP"><annotation><documentation>United Kingdom Pound</documentation></annotation></enumeration>
<enumeration value="GEL"><annotation><documentation>Georgia Lari</documentation></annotation></enumeration>
<enumeration value="GGP"><annotation><documentation>Guernsey Pound</documentation></annotation></enumeration>
<enumeration value="GHS"><annotation><documentation>Ghana Cedi</documentation></annotation></enumeration>
<enumeration value="GIP"><annotation><documentation>Gibraltar Pound</documentation></annotation></enumeration>
<enumeration value="GMD"><annotation><documentation>Gambia Dalasi</documentation></annotation></enumeration>
<enumeration value="GNF"><annotation><documentation>Guinea Franc</documentation></annotation></enumeration>
<enumeration value="GTQ"><annotation><documentation>Guatemala Quetzal</documentation></annotation></enumeration>
<enumeration value="GYD"><annotation><documentation>Guyana Dollar</documentation></annotation></enumeration>
<enumeration value="HKD"><annotation><documentation>Hong Kong Dollar</documentation></annotation></enumeration>
<enumeration value="HNL"><annotation><documentation>Honduras Lempira</documentation></annotation></enumeration>
<enumeration value="HRK"><annotation><documentation>Croatia Kuna</documentation></annotation></enumeration>
<enumeration value="HTG"><annotation><documentation>Haiti Gourde</documentation></annotation></enumeration>
<enumeration value="HUF"><annotation><documentation>Hungary Forint</documentation></annotation></enumeration>
<enumeration value="IDR"><annotation><documentation>Indonesia Rupiah</documentation></annotation></enumeration>
<enumeration value="ILS"><annotation><documentation>Israel Shekel</documentation></annotation></enumeration>
<enumeration value="IMP"><annotation><documentation>Isle of Man Pound</documentation></annotation></enumeration>
<enumeration value="INR"><annotation><documentation>India Rupee</documentation></annotation></enumeration>
<enumeration value="IQD"><annotation><documentation>Iraq Dinar</documentation></annotation></enumeration>
<enumeration value="IRR"><annotation><documentation>Iran Rial</documentation></annotation></enumeration>
<enumeration value="ISK"><annotation><documentation>Iceland Krona</documentation></annotation></enumeration>
<enumeration value="JEP"><annotation><documentation>Jersey Pound</documentation></annotation></enumeration>
<enumeration value="JMD"><annotation><documentation>Jamaica Dollar</documentation></annotation></enumeration>
<enumeration value="JOD"><annotation><documentation>Jordan Dinar</documentation></annotation></enumeration>
<enumeration value="JPY"><annotation><documentation>Japan Yen</documentation></annotation></enumeration>
<enumeration value="KES"><annotation><documentation>Kenya Shilling</documentation></annotation></enumeration>
<enumeration value="KGS"><annotation><documentation>Kyrgyzstan Som</documentation></annotation></enumeration>
<enumeration value="KHR"><annotation><documentation>Cambodia Riel</documentation></annotation></enumeration>
<enumeration value="KMF"><annotation><documentation>Comorian Franc</documentation></annotation></enumeration>
<enumeration value="KPW"><annotation><documentation>Korea (North) Won</documentation></annotation></enumeration>
<enumeration value="KRW"><annotation><documentation>Korea (South) Won</documentation></annotation></enumeration>
<enumeration value="KWD"><annotation><documentation>Kuwait Dinar</documentation></annotation></enumeration>
<enumeration value="KYD"><annotation><documentation>Cayman Islands Dollar</documentation></annotation></enumeration>
<enumeration value="KZT"><annotation><documentation>Kazakhstan Tenge</documentation></annotation></enumeration>
<enumeration value="LAK"><annotation><documentation>Laos Kip</documentation></annotation></enumeration>
<enumeration value="LBP"><annotation><documentation>Lebanon Pound</documentation></annotation></enumeration>
<enumeration value="LKR"><annotation><documentation>Sri Lanka Rupee</documentation></annotation></enumeration>
<enumeration value="LRD"><annotation><documentation>Liberia Dollar</documentation></annotation></enumeration>
<enumeration value="LSL"><annotation><documentation>Lesotho Loti</documentation></annotation></enumeration>
<enumeration value="LYD"><annotation><documentation>Libya Dinar</documentation></annotation></enumeration>
<enumeration value="MAD"><annotation><documentation>Morocco Dirham</documentation></annotation></enumeration>
<enumeration value="MDL"><annotation><documentation>Moldova Leu</documentation></annotation></enumeration>
<enumeration value="MGA"><annotation><documentation>Madagascar Ariary</documentation></annotation></enumeration>
<enumeration value="MKD"><annotation><documentation>Macedonia Denar</documentation></annotation></enumeration>
<enumeration value="MMK"><annotation><documentation>Myanmar (Burma) Kyat</documentation></annotation></enumeration>
<enumeration value="MNT"><annotation><documentation>Mongolia Tughrik</documentation></annotation></enumeration>
<enumeration value="MOP"><annotation><documentation>Macau Pataca</documentation></annotation></enumeration>
<enumeration value="MRU"><annotation><documentation>Mauritania Ouguiya</documentation></annotation></enumeration>
<enumeration value="MUR"><annotation><documentation>Mauritius Rupee</documentation></annotation></enumeration>
<enumeration value="MVR"><annotation><documentation>Maldives (Maldive Islands)
Rufiyaa</documentation></annotation></enumeration>
<enumeration value="MWK"><annotation><documentation>Malawi Kwacha</documentation></annotation></enumeration>
<enumeration value="MXN"><annotation><documentation>Mexico Peso</documentation></annotation></enumeration>
<enumeration value="MYR"><annotation><documentation>Malaysia Ringgit</documentation></annotation></enumeration>
<enumeration value="MZN"><annotation><documentation>Mozambique Metical</documentation></annotation></enumeration>
120 | 121
<enumeration value="NAD"><annotation><documentation>Namibia Dollar</documentation></annotation></enumeration>
<enumeration value="NGN"><annotation><documentation>Nigeria Naira</documentation></annotation></enumeration>
<enumeration value="NIO"><annotation><documentation>Nicaragua Cordoba</documentation></annotation></enumeration>
<enumeration value="NOK"><annotation><documentation>Norway Krone</documentation></annotation></enumeration>
<enumeration value="NPR"><annotation><documentation>Nepal Rupee</documentation></annotation></enumeration>
<enumeration value="NZD"><annotation><documentation>New Zealand Dollar</documentation></annotation></enumeration>
<enumeration value="OMR"><annotation><documentation>Oman Rial</documentation></annotation></enumeration>
<enumeration value="PAB"><annotation><documentation>Panama Balboa</documentation></annotation></enumeration>
<enumeration value="PEN"><annotation><documentation>Peru Sol</documentation></annotation></enumeration>
<enumeration value="PGK"><annotation><documentation>Papua New Guinea Kina</documentation></annotation></enumeration>
<enumeration value="PHP"><annotation><documentation>Philippines Peso</documentation></annotation></enumeration>
<enumeration value="PKR"><annotation><documentation>Pakistan Rupee</documentation></annotation></enumeration>
<enumeration value="PLN"><annotation><documentation>Poland Zloty</documentation></annotation></enumeration>
<enumeration value="PYG"><annotation><documentation>Paraguay Guarani</documentation></annotation></enumeration>
<enumeration value="QAR"><annotation><documentation>Qatar Riyal</documentation></annotation></enumeration>
<enumeration value="RON"><annotation><documentation>Romania Leu</documentation></annotation></enumeration>
<enumeration value="RSD"><annotation><documentation>Serbia Dinar</documentation></annotation></enumeration>
<enumeration value="RUB"><annotation><documentation>Russia Ruble</documentation></annotation></enumeration>
<enumeration value="RWF"><annotation><documentation>Rwanda Franc</documentation></annotation></enumeration>
<enumeration value="SAR"><annotation><documentation>Saudi Arabia Riyal</documentation></annotation></enumeration>
<enumeration value="SBD"><annotation><documentation>Solomon Islands Dollar</documentation></annotation></enumeration>
<enumeration value="SCR"><annotation><documentation>Seychelles Rupee</documentation></annotation></enumeration>
<enumeration value="SDG"><annotation><documentation>Sudan Pound</documentation></annotation></enumeration>
<enumeration value="SEK"><annotation><documentation>Sweden Krona</documentation></annotation></enumeration>
<enumeration value="SGD"><annotation><documentation>Singapore Dollar</documentation></annotation></enumeration>
<enumeration value="SHP"><annotation><documentation>Saint Helena Pound</documentation></annotation></enumeration>
<enumeration value="SLL"><annotation><documentation>Sierra Leone Leone</documentation></annotation></enumeration>
<enumeration value="SOS"><annotation><documentation>Somalia Shilling</documentation></annotation></enumeration>
<enumeration value="SPL"><annotation><documentation>Seborga Luigino</documentation></annotation></enumeration>
<enumeration value="SRD"><annotation><documentation>Suriname Dollar</documentation></annotation></enumeration>
<enumeration value="STN"><annotation><documentation>Sao Tome and Principe
Dobra</documentation></annotation></enumeration>
<enumeration value="SVC"><annotation><documentation>El Salvador Colon</documentation></annotation></enumeration>
<enumeration value="SYP"><annotation><documentation>Syria Pound</documentation></annotation></enumeration>
<enumeration value="SZL"><annotation><documentation>eSwatini Lilangeni</documentation></annotation></enumeration>
<enumeration value="THB"><annotation><documentation>Thailand Baht</documentation></annotation></enumeration>
<enumeration value="TJS"><annotation><documentation>Tajikistan Somoni</documentation></annotation></enumeration>
<enumeration value="TMT"><annotation><documentation>Turkmenistan Manat</documentation></annotation></enumeration>
<enumeration value="TND"><annotation><documentation>Tunisia Dinar</documentation></annotation></enumeration>
<enumeration value="TOP"><annotation><documentation>Tonga Pa'anga</documentation></annotation></enumeration>
<enumeration value="TRY"><annotation><documentation>Turkey Lira</documentation></annotation></enumeration>
<enumeration value="TRL"><annotation><documentation>First Turkish Lira</documentation></annotation></enumeration>
<enumeration value="TTD"><annotation><documentation>Trinidad and Tobago
Dollar</documentation></annotation></enumeration>
<enumeration value="TVD"><annotation><documentation>Tuvalu Dollar</documentation></annotation></enumeration>
<enumeration value="TWD"><annotation><documentation>Taiwan New Dollar</documentation></annotation></enumeration>
<enumeration value="TZS"><annotation><documentation>Tanzania Shilling</documentation></annotation></enumeration>
<enumeration value="UAH"><annotation><documentation>Ukraine Hryvnia</documentation></annotation></enumeration>
<enumeration value="UGX"><annotation><documentation>Uganda Shilling</documentation></annotation></enumeration>
<enumeration value="USD"><annotation><documentation>United States Dollar</documentation></annotation></enumeration>
<enumeration value="UYU"><annotation><documentation>Uruguay Peso</documentation></annotation></enumeration>
<enumeration value="UZS"><annotation><documentation>Uzbekistan Som</documentation></annotation></enumeration>
<enumeration value="VEF"><annotation><documentation>Venezuela Bolivar</documentation></annotation></enumeration>
<enumeration value="VND"><annotation><documentation>Viet Nam Dong</documentation></annotation></enumeration>
<enumeration value="VUV"><annotation><documentation>Vanuatu Vatu</documentation></annotation></enumeration>
<enumeration value="WST"><annotation><documentation>Samoa Tala</documentation></annotation></enumeration>
<enumeration value="XAF"><annotation><documentation>Communaute Financiere Africaine (BEAC) CFA Franc
BEAC</documentation></annotation></enumeration>
<enumeration value="XCD"><annotation><documentation>East Caribbean Dollar</documentation></annotation></enumeration>
<enumeration value="XDR"><annotation><documentation>International Monetary Fund (IMF) Special Drawing
Rights</documentation></annotation></enumeration>
<enumeration value="XOF"><annotation><documentation>Communaute Financiere Africaine (BCEAO)
Franc</documentation></annotation></enumeration>
<enumeration value="XPF"><annotation><documentation>Comptoirs Francais du Pacifique (CFP)
Franc</documentation></annotation></enumeration>
<enumeration value="YER"><annotation><documentation>Yemen Rial</documentation></annotation></enumeration>
<enumeration value="ZAR"><annotation><documentation>South Africa Rand</documentation></annotation></enumeration>
<enumeration value="ZMW"><annotation><documentation>Zambia Kwacha</documentation></annotation></enumeration>
<enumeration value="ZWD"><annotation><documentation>Zimbabwe Dollar</documentation></annotation></enumeration>
</restriction>
</simpleType>
</schema>
121 | 121