This repository provides:
- Test data for developing and testing solutions that integrate with SKAT's EMCS System
- Instructions and tools for validating IE documents
The sample documents provided herein comply with EC DGTAXUD EMCS PHASE4 EMCS V3.13 schemas.
SKAT provides a test system that runs all EMCS B2B Web Services and allows companies (and their system integrators) to develop and test solutions that integrate with SKAT's EMCS System. This test system is pre configured with test data for the company with central registration number (CVR) 19552101 and a set of Authorized Tax Warehouses, Consignees, and Consignors.
SKAT Help Desk provides details with regards to the X.509 certificate that identifies this CVR number (19552101) and is authorized to communicate with the EMCS B2B Web Services in test system.
The test system is pre configured with Authorized Tax Warehouses, Consignees, and Consignors that all have
delegated authorizations (roles) to the company with CVR 19552101. Consequently, the VirksomhedIdentifikationStruktur
part in the
SOAP request must reflect this configuration by setting the value 19552101
in the field VirksomhedSENummerIdentifikator
and the Excise Number in the field AfgiftOperatoerPunktAfgiftIdentifikator
.
Example: A SOAP Request with Excise Number = DK31175143300
<VirksomhedIdentifikationStruktur>
<Indberetter>
<VirksomhedSENummerIdentifikator>19552101</VirksomhedSENummerIdentifikator>
</Indberetter>
<AfgiftOperatoerPunktAfgiftIdentifikator>DK31175143300</AfgiftOperatoerPunktAfgiftIdentifikator>
</VirksomhedIdentifikationStruktur>
The available Authorized Tax Warehouses, Consignees, and Consignors are documented in the following sections.
Important Notes:
- The test material reflects a transaction between to Danish economical operators where as in production the other party is always another EU Member State.
- In the test environment all fields with dates and times must be set to GMT time. The production, however, runs in CET time.
Excise Number: DK31175143300
Role: Authorized Warehouse Keeper
Authorized Product Types: E, B
Address Information
<TraderName>eService FKT-TEST BLAA 0013</TraderName>
<StreetName>Silkeborgvej</StreetName>
<StreetNumber>8</StreetNumber>
<Postcode>8000</Postcode>
<City>Århus C</City>
Tax Warehouse: DK31175143301
Address of Tax Warehouse:
<TraderName>eService FKT-TEST BLAA 0013</TraderName>
<StreetName>Silkeborgvej</StreetName>
<StreetNumber>9</StreetNumber>
<Postcode>8000</Postcode>
<City>Århus C</City>
Excise Number: DK31174279300
Role: Authorized Warehouse Keeper
Authorized Product Types: S
Address Information
<TraderName>eService FKT-TEST-HVID-0025</TraderName>
<StreetName>Nyborgvej</StreetName>
<StreetNumber>123</StreetNumber>
<Postcode>5220</Postcode>
<City>Odense SØ</City>
Tax Warehouse: DK31174279301
Address of Tax Warehouse:
<TraderName>eService FKT-TEST-HVID-0025</TraderName>
<StreetName>Østbanegade</StreetName>
<StreetNumber>123</StreetNumber>
<Postcode>2100</Postcode>
<City>København Ø</City>
Excise Number: DK99025875300
Role: Authorized Warehouse Keeper
Authorized Product Types: E, I, W
Address Information
<TraderName>3S b 232 A/S</TraderName>
<StreetName>Kirkegade</StreetName>
<StreetNumber>1</StreetNumber>
<Postcode>6840</Postcode>
<City>Oksbøl</City>
Tax Warehouse: DK99025875499
Address of Tax Warehouse:
<TraderName>3S b 232 A/S</TraderName>
<StreetName>Statshaven</StreetName>
<StreetNumber>6</StreetNumber>
<Postcode>3000</Postcode>
<City>Helsingør</City>
Excise Number: DK82065873300
Role: Authorized Warehouse Keeper
Authorized Product Types: B, I, S, T, W
Address Information
<TraderName>Test af KS-1, testsitnr. 3.1.3.22</TraderName>
<StreetName>Borupvej</StreetName>
<StreetNumber>1</StreetNumber>
<Postcode>3320</Postcode>
<City>Skævinge</City>
Tax Warehouse No. 1: DK82065873305
Address of Tax Warehouse No. 1:
<TraderName>Test af KS-1, testsitnr. 3.1.3.22</TraderName>
<StreetName>Perlegade </StreetName>
<StreetNumber>38</StreetNumber>
<Postcode>6400</Postcode>
<City>Sønderborg</City>
Tax Warehouse No. 2: DK82065873307
Address of Tax Warehouse No. 2:
<TraderName>Test af KS-1, testsitnr. 3.1.3.22</TraderName>
<StreetName>Borupvej </StreetName>
<StreetNumber>7</StreetNumber>
<Postcode>3320</Postcode>
<City>Skævinge</City>
Excise Number: DK82065849300
Role: Authorized Warehouse Keeper
Authorized Product Types: E, T
Address Information
<TraderName>Test af KS-1, testsitnr. 3.1.3.19</TraderName>
<StreetName>Baunehøjen</StreetName>
<StreetNumber>1</StreetNumber>
<Postcode>3320</Postcode>
<City>Skævinge</City>
Tax Warehouse No. 1: DK82065849301
Address of Tax Warehouse No. 1:
<TraderName>Test af KS-1, testsitnr. 3.1.3.19</TraderName>
<StreetName>Baunehøjen</StreetName>
<StreetNumber>2</StreetNumber>
<Postcode>3320</Postcode>
<City>Skævinge</City>
Tax Warehouse No. 2: DK82065849302
Address of Tax Warehouse No. 2:
<TraderName>Test af KS-1, testsitnr. 3.1.3.19</TraderName>
<StreetName>Statshaven</StreetName>
<StreetNumber>6</StreetNumber>
<Postcode>3000</Postcode>
<City>Helsingør</City>
Excise Number: DK82065849200
Role: Consignee
Authorized Product Types: T
Address Information
<TraderName>Test af KS-1, testsitnr. 3.1.3.19</TraderName>
<StreetName>Baunehøjen</StreetName>
<StreetNumber>1</StreetNumber>
<Postcode>3320</Postcode>
<City>Skævinge</City>
Excise Number: DK82070478200
Role: Consignee
Authorized Product Types: B, E, I, T, W
Address Information
<TraderName>WS RISK20</TraderName>
<StreetName>Esrumvej</StreetName>
<StreetNumber>63</StreetNumber>
<Postcode>3000</Postcode>
<City>Helsingør</City>
Excise Number: DK99025875200
Role: Consignee
Authorized Product Types: E
Address Information
<TraderName>3S b 232 A/S</TraderName>
<StreetName>Kirkegade</StreetName>
<StreetNumber>1</StreetNumber>
<Postcode>6840</Postcode>
<City>Oksbøl</City>
Excise Number: DK31174341200
Role: Consignee
Authorized Product Types: I, W
Address Information
<TraderName>eService FKT-TEST HVID 0032</TraderName>
<StreetName>Nyborgvej</StreetName>
<StreetNumber>145</StreetNumber>
<Postcode>5220</Postcode>
Excise Number: DK99025875100
Role: Consignor
Authorized Product Types: B, T
Address Information
<TraderName>3S b 232 A/S</TraderName>
<StreetName>Kirkegade</StreetName>
<StreetNumber>1</StreetNumber>
<Postcode>6840</Postcode>
<City>Oksbøl</City>
Excise Number: DK82070486100
Role: Consignor
Authorized Product Types: B, E, I, S, T, W
Address Information
<TraderName>WS RISK20</TraderName>
<StreetName>Esrumvej</StreetName>
<StreetNumber>63</StreetNumber>
<Postcode>3000</Postcode>
<City>Helsingør</City>
On Linux based systems install the xmllint
tool, e.g. on Ubuntu:
$ sudo apt-get install libxml2-utils
Then validate document:
$ xmllint --schema schema/ie815.xsd sample/ie815.xml
sample/ie815.xml validates
Sample output when validating the invalid document sample/ie815-invalid.xml
:
$ xmllint --noout --schema schema/ie815.xsd sample/ie815-invalid.xml
sample/ie815-invalid.xml:27: element TraderName: Schemas validity error :
Element '{urn:publicid:-:EC:DGTAXUD:EMCS:PHASE3:IE815:V2.02}TraderName': This element is not expected. Expected is
( {urn:publicid:-:EC:DGTAXUD:EMCS:PHASE3:IE815:V1.76}TraderExciseNumber ).
sample/ie815-invalid.xml fails to validate
Assumes xmllint
tool has been installed. Then run the validate.sh
script:
$ ./validate.sh
sample/ie815.xml validates
sample/ie818.xml validates
sample/ie810.xml validates
sample/ie813.xml validates
sample/ie819.xml validates
sample/ie825.xml validates
sample/ie837.xml validates
sample/ie871.xml validates
Step 1: Build container
$ sudo ./docker-build.sh
Sending build context to Docker daemon 888.3kB
Step 1/8 : FROM oraclelinux:7
---> f6a4b5a3a7c7
Step 2/8 : MAINTAINER SKAT
---> Using cache
---> 374a5ce7239b
Step 3/8 : ADD schema /tmp/schema
---> Using cache
---> 6dcce52fad95
Step 4/8 : ADD sample /tmp/sample
---> Using cache
---> bbec8c86d503
Step 5/8 : ADD validate.sh /tmp/validate.sh
---> Using cache
---> bb5071eded02
Step 6/8 : RUN chmod a+x /tmp/validate.sh
---> Using cache
---> 1ac367be1d5b
Step 7/8 : WORKDIR /tmp
---> Using cache
---> 729d1a5b5e69
Step 8/8 : CMD "./validate.sh"
---> Running in 75a58a3673fa
---> 7f337aa90995
Removing intermediate container 75a58a3673fa
Successfully built 7f337aa90995
Step 2: Run container
$ sudo ./docker-run.sh
sample/ie815.xml validates
sample/ie818.xml validates
sample/ie810.xml validates
sample/ie813.xml validates
sample/ie819.xml validates
sample/ie825.xml validates
sample/ie837.xml validates
sample/ie871.xml validates