50% found this document useful (2 votes)
866 views

JSON SPC en Revc

Uploaded by

Usama Shafiq
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
50% found this document useful (2 votes)
866 views

JSON SPC en Revc

Uploaded by

Usama Shafiq
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 65

Germany Fiscal Element

JSON Specification

M00124202
Rev.C
Precautions
• Unauthorized duplication, copying, reproduction, or modification of any part or all of this document is strictly
prohibited.
• Contents of this manual are subject to change without prior notice. Contact us directly for the most recent
information.
• Every effort is made to ensure that the contents of this manual are without error. Please contact us if any errors
or other issues are found.
• The previous statement notwithstanding, we will not be liable for any negative impact as a result of use.
• Epson shall not be liable for any damages caused as a result of using this product incorrectly, failing to comply
with the content of this document, or having repair or modifications performed by third parties other than
Epson or those specified by Epson.
• Epson shall not be liable for any issues as a result of installing optional parts or consumables that are not gen-
uine Epson parts or parts certified by Epson.

Trademarks
EPSON, EXCEED YOUR VISION, and ESC/POS are registered trademarks of Seiko Epson Corporation.

ESC/POS® Command System


Epson has embarked on a global initiative by developing ESC/POS, a unique POS printer command system. ESC/
POS contains a wealth of unique commands, many of which are patent-protected. Our system enables the con-
figuration of versatile POS systems with a high level of scalability. In addition to being compatible with most
Epson POS printers and displays, the flexibility provided by this unique control system facilitates ease of future
upgrades. This functionality and convenience of use are appreciated around the world.

© Seiko Epson Corporation 2019-2020. All rights reserved.


Safety Precautions

Meaning of Symbols
The following symbols are used in this manual. Make sure to understand the meaning of these symbols before
using the product.

Describes usage precautions that must be observed. Incorrect handling due to the disregard of this informa-
tion may result in product failure or incorrect operation.

Describes additional explanation or other useful information.

Usage Limitations
Please use our products in environments and systems designed with consideration to safety and disaster
recovery such as fail-safe configurations and redundant designs, for example, if this product is used in
applications in which a high level of reliability and safety in functionality and precision is required such as in
aircraft, trains, ships, automobiles and other transportation-related applications or in crime prevention
equipment and safety equipment.
This product is not intended for use in applications that require extremely high levels of reliability and safety
such as in aerospace equipment, trunk-line communications equipment, nuclear power control equipment, and
medical equipment. Consider your usage environment and requirements carefully before using this product in
such applications.

About this Manual

Purpose of this Manual


This document describes JSON specifications for developers who develop an application using
GermanyFiscalElement of Epson ePOS SDK.

Organization of this Manual


This manual is organized into the following chapters.
Chapter 1 Common Specifications

Chapter 2 Functional specifications

Chapter 3 Error Code List

3
Contents
■ Safety Precautions ............................................................................................................... 3
Meaning of Symbols.................................................................................................................................................................................3
■ Usage Limitations ................................................................................................................ 3
■ About this Manual................................................................................................................ 3
Purpose of this Manual............................................................................................................................................................................3
Organization of this Manual ..................................................................................................................................................................3
■ Contents ............................................................................................................................... 4

Common Specifications ..................................................................6


■ Data type definition............................................................................................................. 6
■ JSON message template....................................................................................................... 7
■ JSON message common part type definition....................................................................... 8
Request .........................................................................................................................................................................................................8
Response (When execution successful) ............................................................................................................................................9
Response (When execution fails).........................................................................................................................................................9

Functional specifications..............................................................10
■ Configuration..................................................................................................................... 10
SetUp .......................................................................................................................................................................................................... 10
SetUpForPrinter....................................................................................................................................................................................... 11
RunTSESelfTest......................................................................................................................................................................................... 12
RegisterSecretKey................................................................................................................................................................................... 13
UpdateTime .............................................................................................................................................................................................. 14
UpdateTimeForFirst ............................................................................................................................................................................... 15
RegisterClient........................................................................................................................................................................................... 16
DeregisterClient ...................................................................................................................................................................................... 17
GetRegisteredClientList........................................................................................................................................................................ 18
UnlockTSE.................................................................................................................................................................................................. 19
LockTSE ...................................................................................................................................................................................................... 20
SetTimeOutInterval................................................................................................................................................................................ 21
GetTimeOutInterval............................................................................................................................................................................... 22
EnableExportIfCspTestFails ................................................................................................................................................................. 23
DisableExportIfCspTestFails ................................................................................................................................................................ 24
DisableSecureElement.......................................................................................................................................................................... 25
■ User Authentication ........................................................................................................... 26
AuthenticateUserForAdmin................................................................................................................................................................ 26
AuthenticateUserForTimeAdmin...................................................................................................................................................... 27
LogOutForAdmin.................................................................................................................................................................................... 28
LogOutForTimeAdmin.......................................................................................................................................................................... 29
UnblockUserForAdmin ......................................................................................................................................................................... 30
UnblockUserForTimeAdmin ............................................................................................................................................................... 31
GetChallenge ........................................................................................................................................................................................... 32
AuthenticateHost ................................................................................................................................................................................... 33
DeauthenticateHost .............................................................................................................................................................................. 34

4
GetAuthenticatedUserList................................................................................................................................................................... 35
ChangePuk................................................................................................................................................................................................ 36
ChangePinForAdmin............................................................................................................................................................................. 37
ChangePinForTimeAdmin ................................................................................................................................................................... 38
■ Transaction ........................................................................................................................ 39
StartTransaction...................................................................................................................................................................................... 39
UpdateTransaction................................................................................................................................................................................. 41
FinishTransaction.................................................................................................................................................................................... 42
GetStartedTransactionList................................................................................................................................................................... 43
GetLastTransactionResponse............................................................................................................................................................. 44
■ Export ................................................................................................................................ 45
ArchiveExport .......................................................................................................................................................................................... 45
ExportFilteredByTransactionNumber.............................................................................................................................................. 46
ExportFilteredByTransactionNumberInterval .............................................................................................................................. 47
ExportFilteredByPeriodOfTime.......................................................................................................................................................... 49
GetExportData......................................................................................................................................................................................... 51
FinalizeExport .......................................................................................................................................................................................... 52
CancelExport ............................................................................................................................................................................................ 53
GetLogMessageCertificate.................................................................................................................................................................. 54
■ Information ........................................................................................................................ 55
GetStorageInfo ........................................................................................................................................................................................ 55

Error Code List ..............................................................................61


■ From Printer ....................................................................................................................... 61
■ From German fiscal element (TSE) ..................................................................................... 63

5
Chapter 1 Common Specifications - Data type definition

Common Specifications
❏ Character encoding: UTF-8
❏ Line feed code: LF
❏ Escape character: "”" "\" "/" "b" "f" "n" "r" "t" "uXXXX" => Escape with "/ (backslash)"

Data type definition


Data Type Description
string<n> String of up to n characters
• ASCII characters (0x20 to 0x7E)

string<[n]> String of n characters


• ASCII characters (0x20 to 0x7E)

DateTime • UTC
• Format: YYYY-MM-DDThh:mm:ssZ(ISO8601)

number Number (valid only in decimal notation)

base64 string Binary data represented as base64 encoding string

boolean Boolean value (true or false)

array Character string represented as an array (string enclosed in [])

6
Chapter 1 Common Specifications - JSON message template

JSON message template


[Request]

{
"storage":{
"type" :"[storage type]",
"vendor":"[vendor name]"
}
"function":"[requested function]",
"input":{
"Item1":"[input parameter1]",
"Item2":"[input parameter2]",
······
},
"compress":{
"required":true/false,
"type":"compression type"
}
}

[Response]
When execution succeeds:

{
"result":"EXECUTION_OK",
"function":"[requested function]",
"output":{
"Item1":"[output parameter1]",
"Item2":"[output parameter2]"
}
}

When execution fails:

{
"result":"ERROR_EEEEE",
"function":"[requested function]",
"output":{
"Item1":"[output parameter1]",
},
"error":{
"fact":"[fact of error]"
"errorinfo":"[error info]",
}
}

7
Chapter 1 Common Specifications - JSON message common part type definition

JSON message common part type definition

Request

Element Data type Description


storage object Storage Information

- type string Storage type


• Only "TSE" and "COMMON" are valid
• If the storage type is known to be German fiscal element (TSE),
specify "TSE"
• If the storage type is not known, specify "COMMON"
• "COMMON" can be specified for GetStorageInfo only
For other functions, returns an error if "COMMON" is specified

- vendor string Nickname for storage vendor name


• Nickname for German fiscal element (TSE) model. When known
to be German fiscal element (TSE), also include the model name
• Model name can be acquired with GetStorageInfo
• Null character when not German fiscal element (TSE) or not
known to be German fiscal element (TSE)

function string Request function name


For details about the setting, see Functional specifications.

input object Input parameters required when request function is executed.


For details about the setting, see Functional specifications.
(When there is no input data, set an empty object.)

compress object Compression setting

- required boolean Whether to compress the response data.

- type string Compression format when the response data is compressed.


(When there is no compression, set a null character.)
• Only "zip_deflate" or null character are valid

8
Chapter 1 Common Specifications - JSON message common part type definition

Response (When execution successful)

Element Data type Description


result string Execution result
• Fixed as "EXECUTION_OK" when execution is successful

function string Request function name


• Function specified by Request
• Null character if the function name is unknown (such as invalid
JSON format)

output object Parameters output as a result of executing the request function


For details about the setting, see Functional specifications.
• Returns null characters if there is no parameters output.

Response (When execution fails)

Element Data type Description


result string Error code corresponding to the error that occurred
For the error code list and its contents, refer to Error Code List.

function string Request function name


• Function specified by Request
• Null character if the function name is unknown (such as invalid
JSON format)

output object Parameters output as a result of executing the request function


For details about what is set, refer to Functional specifications.
• Returns null characters if there is no parameters output.

error object Error details

- fact string Cause of error


• Error returned by JSON server: target parameter name
 refer to Error Code List
Error returned by German fiscal element (TSE): null character

- errorinfo string Position where the error occurred


• Error returned by JSON parser: Error information returned by
picojson
 JSON message line where error occurred and
error location information
• Error returned by German fiscal element (TSE): null character

9
Chapter 2 Functional specifications - Configuration

Functional specifications
Configuration

SetUp
Sets up German fiscal element (TSE)
❏ Sets PUK, AdminPIN, and TimeAdminPIN in German fiscal element (TSE)
❏ Internally executes German fiscal element (TSE) unlock (see UnlockTSE), enables export after a CSP test failure
in German fiscal element (TSE) (see EnableExportIfCspTestFails), and runs German fiscal element (TSE) self-
test.
❏ Initializes German fiscal element (TSE) and makes it ready to use
❏ As this procedure may require a maximum of 60 seconds for processing, set the timeout periods shown below
to 120 seconds.
• Timeout period for operate API of Epson ePOS SDK
• Timeout period for <type>operate</type> in StorageMessage of ePOS-Device XML

Role
-

Parameters

Input

Name Type Description


puk string<[6]> New PUK to be set

adminPIN string<[5]> New PIN to be set for Admin privileges

timeAdminPin string<[5]> New PIN to be set for TimeAdmin privileges

10
Chapter 2 Functional specifications - Configuration

SetUpForPrinter
Start-up after replacing printer
❏ Must be executed whenever the combination of German fiscal element (TSE) and printer is changed
❏ Internally registers the printer serial number as a client ID in German fiscal element (TSE).
❏ Internally runs German fiscal element (TSE) self-test.
[Cautions for SetUp/SetUpForPrinter/RunTSESelfTest]
❏ As this procedure may require a maximum of 60 seconds for processing, set the timeout periods shown below
to 120 seconds.
• Timeout period for operate API of Epson ePOS SDK
• Timeout period for <type>operate</type> in StorageMessage of ePOS-Device XML

Role
Admin

11
Chapter 2 Functional specifications - Configuration

RunTSESelfTest
Runs a self-test of the German fiscal element (TSE).
❏ After each power-on, the self-test of German fiscal element (TSE) is necessary before running the other control
command for the German fiscal element (TSE).
The self-test checks to see if the internal module of the German fiscal element (TSE) works properly.
❏ The printer automatically runs the self-test of German fiscal element (TSE) after each power-on, so basically,
the user does not need to run the self-test manually.
However, if the printer is used for 25 hours or longer without being turned off, the user needs to run the self-
test using this function before the time for continuous run of the printer reaches 25 hours.
❏ To acquire the remaining time before the self-test is required, use "timeUntilNextSelfTest" of GetStorageInfo.
[Cautions for SetUp/SetUpForPrinter/RunTSESelfTest]
❏ As this procedure may require a maximum of 60 seconds for processing, set the timeout periods shown below
to 120 seconds.
• Timeout period for operate API of Epson ePOS SDK
• Timeout period for <type>operate</type> in StorageMessage of ePOS-Device XML

Role
-

12
Chapter 2 Functional specifications - Configuration

RegisterSecretKey
Registers the secret key
❏ Registers the key used to calculate the hash value required for user/host authentication when logging in.
❏ This setting is persisted across power cycles.

Role
Admin

Parameters

Input

Name Type Description


secretKey string<[8]> Secret key used to calculate the hash value for
user/host authentication
• Default value is "EPSONKEY".
• The secret key must be registered (default
value changed) after installation or when
replacing the printer.

13
Chapter 2 Functional specifications - Configuration

UpdateTime
Updates the German fiscal element (TSE) time
❏ Updates the German fiscal element (TSE) time using the UTC time specified from POS
❏ This function (or UpdateTimeForFirst) must be executed before starting to write transactions.

Role
Admin/TimeAdmin

Parameters

Input

Name Type Description


userId string<30> Administrator logged in with Admin privileges
Or
Client ID logged in with TimeAdmin privileges

newDateTime DateTime Date and time specified from POS to synchronize


German fiscal element (TSE) and POS date and
time
• UTC specification
Format is ISO 8601 extended format
- YYYY-MM-DDThh:mm:ssZ
• Only year 2000 and after are valid

useTimeSync boolean If German fiscal element (TSE) supports time syn-


chronization, specify whether to use this func-
tion.
true: use time synchronization
false: do not use time synchronization
• Fixed to false if German fiscal element (TSE)
model is "TSE1"

14
Chapter 2 Functional specifications - Configuration

UpdateTimeForFirst
Updates the German fiscal element (TSE) time
❏ Updates the German fiscal element (TSE) time using the UTC time specified from POS
- Actually update the German fiscal element (TSE) time only when called the first time
- Skip updating the German fiscal element (TSE) time when called the second and subsequent times per
power-cycle
❏ This function (or UpdateTime) must be executed before starting to write transactions.

Role
Admin/TimeAdmin

Parameters

Input

Name Type Description


userId string<30> Administrator logged in with Admin privileges
Or
Client ID logged in with TimeAdmin privileges

newDateTime DateTime Date and time specified from POS to synchronize


German fiscal element (TSE) and POS date and
time
• UTC specification
Format is ISO 8601 extended format
YYYY-MM-DDThh:mm:ssZ
• Only year 2000 and after are valid

useTimeSync boolean If German fiscal element (TSE) supports time syn-


chronization, specify whether to use this func-
tion.
true: use time synchronization
false: do not use time synchronization
• Fixed to false if German fiscal element (TSE)
model is "TSE1"

15
Chapter 2 Functional specifications - Configuration

RegisterClient
Registers client IDs to be used in German fiscal element (TSE)
❏ 100 client IDs can be registered in German fiscal element (TSE).
However, as one ID is used internally by the printer, 99 client IDs can be registered by the user.
❏ Only client IDs registered in German fiscal element (TSE) can be used for transactions.

Role
Admin

Parameters

Input

Name Type Description


clientId string<30> Client ID to be registered
• The string must be representable as an ASN.1
PrintableString, which restricts the allowed
characters to the following:
A-Za-z0-9'()+,-./:=? and the space character.
• As strings that include "EPSON" are reserved by
the printer, registration by the user is prohib-
ited.

16
Chapter 2 Functional specifications - Configuration

DeregisterClient
Deregisters client IDs registered in German fiscal element (TSE)

Role
Admin

Parameters

Input

Name Type Description


clientId string<30> Client ID to be deregistered
• As strings that include "EPSON" are reserved by
the printer, deleting by the user is prohibited.

17
Chapter 2 Functional specifications - Configuration

GetRegisteredClientList
Acquires a list of client IDs registered in German fiscal element (TSE)
❏ Although the client ID "EPSONXXXXXXXX" is included, the XXXXXXXX part used inside the printer is the printer
serial number.

Role
Admin

Parameters

Output

Name Type Description


registeredClientIdList array List of client IDs registered in German fiscal ele-
ment (TSE)
Example: {"registeredClientIdList":[POS1]}

18
Chapter 2 Functional specifications - Configuration

UnlockTSE
Unlocks German fiscal element (TSE)
❏ Transactions and export functions are not available when German fiscal element (TSE) is locked.
In fact, only functions belonging to User Authentication can be used.
❏ This setting is persisted across power cycles.

Role
Admin

19
Chapter 2 Functional specifications - Configuration

LockTSE
Locks German fiscal element (TSE)
❏ Transactions and export functions are not available when German fiscal element (TSE) is locked.
In fact, only functions belonging to User Authentication can be used.
❏ This setting is persisted across power cycles.

Role
Admin

20
Chapter 2 Functional specifications - Configuration

SetTimeOutInterval
Sets the timeout period.
❏ This setting is persisted across power cycles.

Role
Admin

Parameters

Input

Name Type Description


timeoutIntervalForAdmin number Timeout period for Admin auto lockout
• Optional parameter
This setting is valid when specified.
• Valid range: 900 to 7200 [sec] (15 minutes to 2
hours)
• Default value 900 [sec]

timeoutIntervalForTimeAdmin number Timeout period for TimeAdmin auto lockout


• Optional parameter
This setting is valid when specified.
• Valid range: 900 to 86400 [sec] (15 minutes to
24 hours)
• Default value 28800 [sec]

timeoutIntervalForExport number Export timeout period


• Optional parameter
This setting is valid when specified.
• Valid range: 100 to 330 [sec]
• Default value 100 [sec]

21
Chapter 2 Functional specifications - Configuration

GetTimeOutInterval
Acquires the timeout period.
❏ This setting is persisted across power cycles.

Role
Admin

Parameters

Output

Name Type Description


timeoutIntervalForAdmin number Timeout period for Admin auto lockout
• Valid range: 900 to 7200 [sec] (15 minutes to 2
hours)
• Default value 900 [sec]

timeoutIntervalForTimeAdmin number Timeout period for TimeAdmin auto lockout


• Valid range: 900 to 86400 [sec] (15 minutes to
24 hours)
• Default value 28800 [sec] (8 hours)

timeoutIntervalForExport number Export timeout period


• Valid range: 100 to 330 [sec]
• Default value 100 [sec]

22
Chapter 2 Functional specifications - Configuration

EnableExportIfCspTestFails
Enables log data in German fiscal element (TSE) to be exported even if the CSP (Crypto Service Provider) test fails.
* The CSP test is executed in German fiscal element (TSE) self-test.
❏ If the CSP test fails due to a security module failure, log data cannot be exported by default.
❏ Only ArchiveExport can be executed with this command. (Filter-related exports cannot be executed.)
❏ This setting will only succeed after a successful German fiscal element (TSE) self-test (which includes the CSP
test). Once the CSP test fails, this value cannot be changed anymore.
❏ This setting is persisted across power cycles.

Role
Admin

23
Chapter 2 Functional specifications - Configuration

DisableExportIfCspTestFails
Disables log data in German fiscal element (TSE) to be exported if the CSP (Crypto Service Provider) test fails.
❏ This setting will only succeed after a successful German fiscal element (TSE) self-test (which includes the CSP
test). Once the CSP test fails, this value cannot be changed anymore.
❏ This setting is persisted across power cycles.

Role
Admin

24
Chapter 2 Functional specifications - Configuration

DisableSecureElement
Disables German fiscal element (TSE) use
❏ New transactions cannot be written after executing this function.
❏ Can be executed only when no incomplete transactions exist.

Role
Admin

25
Chapter 2 Functional specifications - User Authentication

User Authentication

AuthenticateUserForAdmin
Log in to German fiscal element (TSE) with Admin privileges (user authentication)
❏ Enables the use of functions whose "Role" is Admin (Admin privileges).
❏ Automatically log out when left (Admin privilege function not used) for a certain time (default 15 minutes).
This timeout period can be set using SetTimeOutInterval.

Role
-

Parameters

Input

Name Type Description


userId string<30> User ID logged in with Admin privileges
Only "Administrator" is valid

pin string<[5]> PIN for Admin privileges

hash base64 string Hash value for host authentication

Output

Name Type Description


remainingRetries number Number of input PIN/PUK retries remaining
• PIN/PUK authentication can fail up to 3 times.
• Not returned when PIN/PUK authentication is
successful
• Reduces by 1 on each PIN/PUK authentication
failure
- Number of retries is reduced only when PIN/
PUK authentication fails.
- Number of retries is not reduced in other
errors.

26
Chapter 2 Functional specifications - User Authentication

AuthenticateUserForTimeAdmin
Log in to German fiscal element (TSE) with TimeAdmin privileges (user authentication)
❏ Enables the use of functions whose "Role" is TimeAdmin (TimeAdmin privileges).
❏ Automatically log out when left (TimeAdmin privilege function not used) for a certain time (default 8 hours).
This timeout period can be set using SetTimeOutInterval.

Role
-

Parameters

Input

Name Type Description


clientId string<30> Client ID to log in with TimeAdmin privileges
• Only client IDs registered in German fiscal ele-
ment (TSE) are valid.
* Register client IDs in German fiscal element
(TSE) using RegisterClient.

pin string<[5]> PIN for TimeAdmin privileges

hash base64 string Hash value for host authentication

Output

Name Type Description


remainingRetries number Number of input PIN/PUK retries remaining
• PIN/PUK authentication can fail up to 3 times.
• Not returned when PIN/PUK authentication is
successful
• Reduces by 1 on each PIN/PUK authentication
failure
- Number of retries is reduced only when PIN/
PUK authentication fails.
- Number of retries is not reduced in other
errors.

27
Chapter 2 Functional specifications - User Authentication

LogOutForAdmin
Logs out a user logged in with Admin privileges

Role
Admin

28
Chapter 2 Functional specifications - User Authentication

LogOutForTimeAdmin
Logs out a client logged in with TimeAdmin privileges

Role
TimeAdmin

Parameters

Input

Name Type Description


clientId string<30> Client ID logged in with TimeAdmin privileges

29
Chapter 2 Functional specifications - User Authentication

UnblockUserForAdmin
Unblocks the PIN for Admin privileges
❏ This function is only available for hosts authenticated using AuthenticateHost.
❏ If PUK is blocked, it cannot be recovered. The only way to recover is to replace German fiscal element (TSE).

Role
Host authenticated using AuthenticateHost

Parameters

Input

Name Type Description


userId string<30> User ID of authenticated host
• Only "Administrator" is valid

puk string<[6]> PUK

newPin string<[5]> PIN for Admin privileges


• Only valid when PIN (new PIN) differs from cur-
rent PIN

Output

Name Type Description


remainingRetries number Number of input PIN/PUK retries remaining
• PIN/PUK authentication can fail up to 3 times.
• Not returned when PIN/PUK authentication is
successful
• Reduces by 1 on each PIN/PUK authentication
failure
- Number of retries is reduced only when PIN/
PUK authentication fails.
- Number of retries is not reduced in other
errors.

30
Chapter 2 Functional specifications - User Authentication

UnblockUserForTimeAdmin
Unblocks the PIN for TimeAdmin privileges
❏ This function is only available for hosts authenticated using AuthenticateHost.
❏ If PUK is blocked, it cannot be recovered. The only way to recover is to replace German fiscal element (TSE).

Role
Host authenticated using AuthenticateHost

Parameters

Input

Name Type Description


userId string<30> User ID of authenticated host
• Only "Administrator" is valid

puk string<[6]> PUK

newPin string<[5]> PIN for TimeAdmin privileges


• Only valid when PIN (new PIN) differs from cur-
rent PIN

Output

Name Type Description


remainingRetries number Number of input PIN/PUK retries remaining
• PIN/PUK authentication can fail up to 3 times.
• Not returned when PIN/PUK authentication is
successful
• Reduces by 1 on each PIN/PUK authentication
failure
- Number of retries is reduced only when PIN/
PUK authentication fails.
- Number of retries is not reduced in other
errors.

31
Chapter 2 Functional specifications - User Authentication

GetChallenge
Acquires the challenge
❏ Acquires the challenge data used to calculate the hash value required for user/host authentication when log-
ging in.

Role
-

Parameters

Input

Name Type Description


userId string<30> User ID or client ID of logged-in (authenticated)
host
• The string must be representable as an ASN.1
PrintableString, which restricts the allowed
characters to the following:
A-Za-z0-9'()+,-./:=? and the space character.

Output

Name Type Description


challenge string<[16]> Random string for each specified user ID

32
Chapter 2 Functional specifications - User Authentication

AuthenticateHost
Authenticates the host
❏ This function (host authentication) must be executed before using the following functions.
- ChangePuk
- UnblockUserForAdmin
- UnblockUserForTimeAdmin

Role
-

Parameters

Input

Name Type Description


userId string<30> User ID of host to be authenticated
• Only "Administrator" is valid

hash base64 string Hash value for host authentication

33
Chapter 2 Functional specifications - User Authentication

DeauthenticateHost
Cancels host authentication.
❏ Logs out of a host logged into (authenticated) with AuthenticateHost

Role
Host authenticated using AuthenticateHost

Parameters

Input

Name Type Description


userId string<30> User ID of authenticated host
• Only "Administrator" is valid

34
Chapter 2 Functional specifications - User Authentication

GetAuthenticatedUserList
Acquires a list of logged-in (authenticated) user IDs and client IDs.

Role
Admin

Parameters

Input

Name Type Description


userRole string<30> Type of user privileges
• Only "Admin" or "TimeAdmin" are valid

Output

Name Type Description


authenticatedUserList array List of logged-in user IDs
Example:
{"authenticatedUserList":[POS1, POS2]}}

35
Chapter 2 Functional specifications - User Authentication

ChangePuk
Changes PUK
❏ This function is only available for hosts authenticated using AuthenticateHost.
❏ If PUK is blocked, it cannot be recovered. The only way to recover is to replace German fiscal element (TSE).

Role
Host authenticated using AuthenticateHost

Parameters

Input

Name Type Description


userId string<30> User ID of authenticated host
Only "Administrator" is valid

oldPuk string<[6]> Current PUK

newPuk string<[6]> New PUK to be set

Output

Name Type Description


remainingRetries number Number of input PIN/PUK retries remaining
• PIN/PUK authentication can fail up to 3 times.
• Not returned when PIN/PUK authentication is
successful
• Reduces by 1 on each PIN/PUK authentication
failure
- Number of retries is reduced only when PIN/
PUK authentication fails.
- Number of retries is not reduced in other
errors.

36
Chapter 2 Functional specifications - User Authentication

ChangePinForAdmin
Changes the Admin PIN

Role
Admin

Parameters

Input

Name Type Description


oldPin string<[5]> Current AdminPIN

newPin string<[5]> New AdminPIN to be set

Output

Name Type Description


remainingRetries number Number of input PIN/PUK retries remaining
• PIN/PUK authentication can fail up to 3 times.
• Not returned when PIN/PUK authentication is
successful
• Reduces by 1 on each PIN/PUK authentication
failure
- Number of retries is reduced only when PIN/
PUK authentication fails.
- Number of retries is not reduced in other
errors.

37
Chapter 2 Functional specifications - User Authentication

ChangePinForTimeAdmin
Changes the TimeAdmin PIN

Role
TimeAdmin

Parameters

Input

Name Type Description


clientId string<30> Client ID logged in with TimeAdmin privileges

oldPin string<[5]> Current TimeAdminPIN

newPin string<[5]> New TimeAdminPIN to be set

Output

Name Type Description


remainingRetries number Number of input PIN/PUK retries remaining
• PIN/PUK authentication can fail up to 3 times.
• Not returned when PIN/PUK authentication is
successful
• Reduces by 1 on each PIN/PUK authentication
failure
- Number of retries is reduced only when PIN/
PUK authentication fails.
- Number of retries is not reduced in other
errors.

38
Chapter 2 Functional specifications - Transaction

Transaction

StartTransaction
Starts a transaction

Role
TimeAdmin

Parameters

Input

Name Type Description


clientId string<30> Client ID logged in with TimeAdmin privileges
• Only client IDs registered in German fiscal ele-
ment (TSE) are valid
* Client IDs are registered in German fiscal
element (TSE) using RegisterClient.

processData base64 string Transaction data


• The contents of the data is decided by the app.

processType string<100> Transaction type


• The string must be representable as an ASN.1
PrintableString, which restricts the allowed
characters to the following:
A-Za-z0-9'()+,-./:=? and the space character.
• The contents of the data is decided by the app.

additionalData base64 string Additional data


• The contents of the data is decided by the app.
• Invalid for German fiscal element (TSE) model
"TSE1"
= Set value is ignored
=> Null character specification recommended

Output

Name Type Description


transactionNumber number Transaction number
• Valid range: range of unsigned long int type

logTime DateTime Date and time that the log was created
• UTC specification
Format is ISO 8601 extended format
- YYYY-MM-DDThh:mm:ssZ

39
Chapter 2 Functional specifications - Transaction

Name Type Description


serialNumber base64 string German fiscal element (TSE) serial number
• Hash value of public key used to generate sig-
nature

signatureCounter number Current signature counter


• Valid range: range of unsigned long int type

signature base64 string Signature value

40
Chapter 2 Functional specifications - Transaction

UpdateTransaction
Updates a transaction

Role
TimeAdmin

Parameters

Input

Name Type Description


clientId string<30> Client ID logged in with TimeAdmin privileges
• Only client IDs registered in German fiscal ele-
ment (TSE) are valid
* Client IDs are registered in German fiscal
element (TSE) using RegisterClient.

transactionNumber number Transaction number of the started transaction


• The transaction number returned as output of
StartTransaction is used
• Valid range: Range of unsigned long int type

processData base64 string Transaction data


• The contents of the data is decided by the app.

processType string<100> Transaction type


• The string must be representable as an ASN.1
PrintableString, which restricts the allowed
characters to the following:
A-Za-z0-9'()+,-./:=? and the space character.
• The contents of the data is decided by the app.

Output

Name Type Description


logTime DateTime Date and time that the log was created
• UTC specification
Format is ISO 8601 extended format
- YYYY-MM-DDThh:mm:ssZ

signatureCounter number Current signature counter


• Valid range: range of unsigned long int type

signature base64 string Signature value

41
Chapter 2 Functional specifications - Transaction

FinishTransaction
Ends a transaction

Role
TimeAdmin

Parameters

Input

Name Type Description


clientId string<30> Client ID logged in with TimeAdmin privileges
• Only client IDs registered in German fiscal ele-
ment (TSE) are valid
* Client IDs are registered in German fiscal
element (TSE) using RegisterClient.

transactionNumber number Transaction number of the started transaction


• The transaction number returned as output of
StartTransaction is used
• Valid range: Range of unsigned long int type

processData base64 string Transaction data


• The contents of the data is decided by the app.

processType string<100> Transaction type


• The string must be representable as an ASN.1
PrintableString, which restricts the allowed
characters to the following:
A-Za-z0-9'()+,-./:=? and the space character.
• The contents of the data is decided by the app.

additionalData base64 string Additional data


• The contents of the data is decided by the app.
• Invalid for German fiscal element (TSE) model
"TSE1"
= Set value is ignored
=> Null character specification recommended

Output
Name Type Description
logTime DateTime Date and time that the log was created
• UTC specification
Format is ISO 8601 extended format
- YYYY-MM-DDThh:mm:ssZ

signatureCounter number Current signature counter


• Valid range: range of unsigned long int type

signature base64 string Signature value

42
Chapter 2 Functional specifications - Transaction

GetStartedTransactionList
Acquires a list of started (incomplete*) transactions.
* The incomplete status is the status where FinishTransaction has not been executed for a transaction that was
started with StartTransaction.

Role
-

Parameters

Input

Name Type Description


clientId string<30> Client ID of started transaction
• When an empty string "" is specified, a list of
transaction numbers of all incomplete transac-
tions is returned regardless of the client ID.

Output

Name Type Description


startedTransactionNumberList array List of transaction numbers of incomplete trans-
actions and the associated client IDs
Example:
{"startedTransactionNumberList":[2,5]}

43
Chapter 2 Functional specifications - Transaction

GetLastTransactionResponse
Gets the result of the last transaction stored in German fiscal element (TSE) for each client ID

Role
-

Parameters

Input

Name Type Description


clientId string<30> Client ID of the latest transaction result
• When an empty string "" is specified, the latest
transaction result is returned regardless of the
client ID.

Output

Name Type Description


logTime DateTime Date and time that the latest transaction log cor-
responding to the specified client ID was gener-
ated
• UTC specification
Format is ISO 8601 extended format
- YYYY-MM-DDThh:mm:ssZ

signatureCounter number Signature counter of the latest transaction log


corresponding to the specified client ID
• Valid range: range of unsigned long int type

transactionNumber number Transaction counter of the latest transaction cor-


responding to the specified client ID
• Valid range: range of unsigned long int type

signature base64 string Signature value

serialNumber base64 string German fiscal element (TSE) serial number


• Hash value of public key used to generate sig-
nature

44
Chapter 2 Functional specifications - Export

Export

ArchiveExport
Starts archive export
❏ Acquires all log data saved in German fiscal element (TSE) in TAR file format
❏ After exporting starts, the printer enters export status and only the following commands can be accepted.
- GetExportData
- FinalizeExport
- CancelExport
❏ Exporting cannot be restarted while in export status.
❏ Before starting exporting, the German fiscal element (TSE) time must be updated by executing UpdateTime or
UpdateTimeForFirst.
❏ In export status, automatically log out when left (GetExportData not used) for a certain time (default 90 min-
utes).
This timeout period can be set using SetTimeOutInterval.
❏ In the case of archive export, all log data can be deleted from German fiscal element (TSE) using FinalizeExport
after confirming that all data has been acquired.

[Cautions during export]


❏ The time required to export depends on the amount of data and the interface.
❏ Check that the smart device is charged sufficiently.
❏ Check that no errors have occurred in the printer.
❏ Check that the printer's communication status is in good condition while exporting.
❏ Do not turn off the printer while exporting.
❏ Do not disconnect the connection cable and power cable while exporting.
❏ Do not sleep the smart device while exporting.
❏ If data is not received properly while exporting due to an error such as disconnected communication, the
exported data may be invalid, and CancelExport must be executed to start exporting again.

Role
Admin

Parameters

Output

Name Type Description


tarExportSize number Size when acquiring all log data in TAR file format
• Valid range: range of unsigned long int type

45
Chapter 2 Functional specifications - Export

ExportFilteredByTransactionNumber
Starts exporting the specified transaction number
❏ Acquires the specified target log saved in German fiscal element (TSE) in TAR file format
❏ As data in German fiscal element (TSE) cannot be deleted by this export function, it is not used for archiving
but to acquire a log when an export is requested by an auditor.
❏ After exporting starts, the printer enters export status and only the following commands can be accepted.
- GetExportData
- FinalizeExport
- CancelExport
❏ Exporting cannot be restarted while in export status.
❏ Before starting exporting, the German fiscal element (TSE) time must be updated by executing UpdateTime or
UpdateTimeForFirst.
❏ In export status, automatically log out when left (GetExportData not used) for a certain time (default 90 min-
utes).
This timeout period can be set using SetTimeOutInterval.

[Cautions during export]


❏ The time required to export depends on the amount of data and the interface.
❏ Check that the smart device is charged sufficiently.
❏ Check that no errors have occurred in the printer.
❏ Check that the printer's communication status is in good condition while exporting.
❏ Do not turn off the printer while exporting.
❏ Do not disconnect the connection cable and power cable while exporting.
❏ Do not sleep the smart device while exporting.
❏ If data is not received properly while exporting due to an error such as disconnected communication, the
exported data may be invalid, and CancelExport must be executed to start exporting again.

Role
Admin

Parameters

Input

Name Type Description


clientId string<30> Client ID to be exported
• Only the log associated with the specified cli-
ent ID is to be exported.
• When an empty string "" is specified, the log of
all client IDs is to be exported.

transactionNumber number Transaction number


• Valid range: range of unsigned long int type

46
Chapter 2 Functional specifications - Export

ExportFilteredByTransactionNumberInterval
Starts exporting with the specified transaction number range
❏ Acquires the specified target log saved in German fiscal element (TSE) in TAR file format
❏ As data in German fiscal element (TSE) cannot be deleted by this export function, it is not used for archiving
but to acquire a log when an export is requested by an auditor.
❏ After exporting starts, the printer enters export status and only the following commands can be accepted.
- GetExportData
- FinalizeExport
- CancelExport
❏ Exporting cannot be restarted while in export status.
❏ Before starting exporting, the German fiscal element (TSE) time must be updated by executing UpdateTime or
UpdateTimeForFirst.
❏ In export status, automatically log out when left (GetExportData not used) for a certain time (default 90 min-
utes).
This timeout period can be set using SetTimeOutInterval.

[Cautions during export]


❏ The time required to export depends on the amount of data and the interface.
❏ Check that the smart device is charged sufficiently.
❏ Check that no errors have occurred in the printer.
❏ Check that the printer's communication status is in good condition while exporting.
❏ Do not turn off the printer while exporting.
❏ Do not disconnect the connection cable and power cable while exporting.
❏ Do not sleep the smart device while exporting.
❏ If data is not received properly while exporting due to an error such as disconnected communication, the
exported data may be invalid, and CancelExport must be executed to start exporting again.

Role
Admin

Parameters

Input

Name Type Description


clientId string<30> Client ID to be exported
• Only the log associated with the specified cli-
ent ID is to be exported.
• When an empty string "" is specified, the log of
all client IDs is to be exported.

startTransactionNumber number Start number of specified transaction numbers


• Valid range: range of unsigned long int type

47
Chapter 2 Functional specifications - Export

Name Type Description


endTransactionNumber number End number of specified transaction numbers
• Valid range: range of unsigned long int type
• startTransactionNumber
≤ Must be endTransactionNumber

48
Chapter 2 Functional specifications - Export

ExportFilteredByPeriodOfTime
Starts exporting for a specified date and time range
❏ Acquires the specified target log saved in German fiscal element (TSE) in TAR file format
❏ As data in German fiscal element (TSE) cannot be deleted by this export function, it is not used for archiving
but to acquire a log when an export is requested by an auditor.
❏ After exporting starts, the printer enters export status and only the following commands can be accepted.
- GetExportData
- FinalizeExport
- CancelExport
❏ Exporting cannot be restarted while in export status.
❏ Before starting exporting, the German fiscal element (TSE) time must be updated by executing UpdateTime or
UpdateTimeForFirst.
❏ In export status, automatically log out when left (GetExportData not used) for a certain time (default 90 min-
utes).
This timeout period can be set using SetTimeOutInterval.

[Cautions during export]


❏ The time required to export depends on the amount of data and the interface.
❏ Check that the smart device is charged sufficiently.
❏ Check that no errors have occurred in the printer.
❏ Check that the printer's communication status is in good condition while exporting.
❏ Do not turn off the printer while exporting.
❏ Do not disconnect the connection cable and power cable while exporting.
❏ Do not sleep the smart device while exporting.
❏ If data is not received properly while exporting due to an error such as disconnected communication, the
exported data may be invalid, and CancelExport must be executed to start exporting again.

Role
Admin

Parameters

Input

Name Type Description


clientId string<30> Client ID to be exported
• Only the log associated with the specified cli-
ent ID is to be exported.
• When an empty string "" is specified, the log of
all client IDs is to be exported.

49
Chapter 2 Functional specifications - Export

Name Type Description


startDate DateTime Start date and time of specified log time
• UTC specification
Format is ISO 8601 extended format
- YYYY-MM-DDThh:mm:ssZ

endDate DateTime End date and time of specified log time


• UTC specification
Format is ISO 8601 extended format
- YYYY-MM-DDThh:mm:ssZ
• startDate
≤ Must be endDate

50
Chapter 2 Functional specifications - Export

GetExportData
Acquires exported data
❏ If exportStatus was not "EXPORT_COMPLETE", acquisition of all log data is not complete and GetExportData
must be executed again.
❏ If exportStatus was "EXPORT_COMPLETE", acquisition of all log data is complete and it is not necessary to exe-
cute GetExportData again. Execute FinalizeExport.
❏ Each time data is acquired, it is Base64 decoded into binary data.
All this binary data must be concatenated and saved as a single TAR file.

Role
Admin

Parameters

Output

Name Type Description


exportData base64 string Data exported (from German fiscal element
(TSE))
• Character string of up to 128 KB binary data
that is Base64 encoded
• While German fiscal element (TSE) is searching
the target data, an empty string is returned.

exportStatus string<100> Whether all the specified log data has been
acquired
"EXPORT_COMPLETE"
: all specified log data has been acquired
"EXPORT_INCOMPLETE"
: all specified log data has not yet been acquired
and the target data is being collected
"EXPORT_INCOMPLETE_SEARCHING"
: all specified log data has not been acquired and
the target data is being searched

51
Chapter 2 Functional specifications - Export

FinalizeExport
Ends exporting
❏ This can be executed only when all export target data has been acquired using GetExportData.
❏ This procedure clears the export status.
❏ If deleteData is set to true, all the log data in German fiscal element (TSE) is deleted.

Role
Admin

Parameters

Input

Name Type Description


deleteData boolean Whether to delete all log data in German fiscal
element (TSE)
true: delete
false: do not delete
• Only valid for ArchiveExport
• Invalid for functions other than ArchiveExport

52
Chapter 2 Functional specifications - Export

CancelExport
Cancels exporting
❏ This procedure clears the export status.

Role
Admin

53
Chapter 2 Functional specifications - Export

GetLogMessageCertificate
Acquires the public key for the signature
Acquires the certificate that can be used to verify the signatures of all Log Messages created by the German fiscal
element (TSE).
❏ The returned data is a single PEM file, which contains multiple certificates, since the TSE's certificate is signed
by other certificates.
❏ To verify the signature, only the leaf certificate (the first one in the PEM file) is required.
❏ To make sure the leaf certificate is genuine, the next certificate in the file can be used to verify the previous
certificate until the last certificate is about to be checked, which will be the root certificate that must be
trusted by the system.

Role
-

Parameters

Output

Name Type Description


logMessageCertificate base64 string The certificate that can be used to verify the sig-
natures of all Log Messages created by the Ger-
man fiscal element (TSE).

54
Chapter 2 Functional specifications - Information

Information

GetStorageInfo
Acquires German fiscal element (TSE) information

Role
-

Parameters

Output

Name Type Description


vendorType string<100> German fiscal element (TSE) model name

tseInformation - Object

tseCapacity number German fiscal element (TSE) capacity


• Valid range: range of unsigned long int type
• Units: blocks. 1Block = 512 Byte

tseCurrentSize number German fiscal element (TSE) size used


• Valid range: range of unsigned long int type
• Units: blocks. 1Block = 512 Byte.
• Returns a correct value only when the German
fiscal element (TSE) has been unlocked, and
the self-test has been done.
Returns 0 except for that.

tseInitializationState string<100> German fiscal element (TSE) initialization status


• "UNINITIALIZED"
: uninitialized status
• "INITIALIZED"
: initialized status
• "DECOMMISSIONED"
: cannot be used

hasValidTime boolean Whether a valid time is set in German fiscal ele-


ment (TSE) (whether UpdateTime has been exe-
cuted)
true: valid time set
false: valid time not set
• A transaction can be started only if a valid time
has been set.

55
Chapter 2 Functional specifications - Information

Name Type Description


hasPassedSelfTest boolean Whether the German fiscal element (TSE) passed
its self-test.
true: German fiscal element (TSE) self-test has
passed
false: German fiscal element (TSE) self-test has
not passed

timeUntilNextSelfTest number The timeout in seconds after which the next self
test must be run.
• If this reaches 0, all following commands will
fail until the self test is executed again.
• This time will only change after the first time
update on the German fiscal element (TSE).
• Valid range: range for "unsigned int" type

isExportEnabledIfCspTestFails boolean Whether data export is enabled if the CSP test


failed.
true: data export is enabled if the CSP test failed
false: data export is disabled if the CSP test
failed

maxUpdateDelay number Interval (in seconds) after which a started trans-


action must have received an update in case new
data is available on the cash register.
This is currently set to 45 seconds according to
MAX_UPDATE_DELAY from [BSI-TR-03116-5].

startedTransactions number Number of transactions that have not been fin-


ished, yet. If this equals Max Started Transactions,
no new transactions can be started until at least
one transaction has been finished.
• Valid range: 0 to 512
• Returns the correct value only when German
fiscal element (TSE) is unlocked

maxStartedTransactions number Maximum number of started transactions, i.e.


amount of transactions that can be started in
parallel.
• Maximum value 512

createdSignatures number Amount of signatures that have been created


with this German fiscal element (TSE).
• Valid range: 0 to 10000000

remainingSignatures number Remaining amount of signatures


• Valid range: 0 to 10000000

maxSignatures number Maximum amount of signatures that can be cre-


ated with this German fiscal element (TSE).
• Maximum value 10000000

56
Chapter 2 Functional specifications - Information

Name Type Description


registeredClients number The number of clients that is currently registered
clients.
• Valid range: 0 to 100
• However, as one client ID is used by the printer,
up to 99 client IDs can be registered by the
user.

maxRegisteredClients number Maximum number of clients that can be regis-


tered.
• Maximum value 100
• However, as one client ID is used by the printer,
up to 99 client IDs can be registered by the
user.

certificateExpirationDate DateTime Timestamp after which the certificate of this Ger-


man fiscal element (TSE) will be invalid. As the
German fiscal element (TSE) will not be usable
afterwards, all data must have been properly
exported before this date.
• UTC specification
Format is ISO 8601 extended format
- YYYY-MM-DDThh:mm:ssZ

tarExportSize number Size of the whole German fiscal element (TSE)


Store in bytes, if exported.
• Valid range: range of unsigned long int type
• Units: bytes
• Returns a correct value only when the German
fiscal element (TSE) has been unlocked, and
the self-test has been done.
Returns 0 except for that.

isTransactionInProgress boolean Whether a transaction is currently in progress.


true: a transaction is currently in progress
false: a transaction is not currently in progress

isTSEUnlocked boolean German fiscal element (TSE) lock status


* Transactions and export functions are not avail-
able when the German fiscal element (TSE) is
locked.
true: German fiscal element (TSE) is unlocked
false: German fiscal element (TSE) is locked
• This will only be true, if the German fiscal ele-
ment (TSE) has been unlocked and the self test
has been successful.

serialNumber base64 string Raw SHA-256 hash over the public key that
belongs to the private key generating signatures.
This can be used as German fiscal element (TSE)
unique ID.

57
Chapter 2 Functional specifications - Information

Name Type Description


tsePublicKey base64 string The public key that belongs to the private key
generating signatures,formatted according to
[BSI TR-03111].
This key can be used to verify all signatures cre-
ated by the German fiscal element (TSE).

signatureAlgorithm string<100> The signature algorithm that is used by the Ger-


man fiscal element (TSE).

tseDescription string<128> ASCII string containing the certificate ID issued


by BSI to prove TR-03153 compliance.

softwareVersion number The German fiscal element (TSE)'s software ver-


sion

hardwareVersion number The German fiscal element (TSE)'s hardware ver-


sion

cdcId string<18> This is a unique identifier created by Epson to


track a specific German fiscal element (TSE).

cdcHash string<64> This will be used to confirm integrity of the data.

lastExportExecutedDate DateTime Date and time of the last export


* Date and time that FinalizeExport was last exe-
cuted successfully.
• UTC specification
Format is ISO 8601 extended format
- YYYY-MM-DDThh:mm:ssZ

smartInformation - Object

spareBlockStatus - Object

healthStatus string<64> Available values are as follows:


• "DEAD" when the value of remainingSpare-
Blocks is less than 25
• "WARNING" when the value of remaining-
SpareBlocks is less than 30
• "PASS" when the value of remainingSpare-
Blocks is other than the above
• Returns a correct value only when the self-test
has been done.
Returns "UNKNOWN" except for that.

remainingSpareBlocks number Percentage of remaining spare blocks.


• Valid range: 0 to 100
• Returns a correct value only when the self-test
has been done.
Returns 100 except for that.
eraseLifetimeStatus - • Object

58
Chapter 2 Functional specifications - Information

Name Type Description


healthStatus string<64> Available values are as follows:
• "DEAD" when the value of remainingEraseC-
ounts is less than 2
• "WARNING" when the value of remainingErase-
Counts is less than 10
• "PASS" when the value of remainingEraseC-
ounts is other than the above
• Returns a correct value only when the self-test
has been done.
Returns "UNKNOWN" except for that.
remainingEraseCounts number Percentage of remaining erase counts.
• Valid range: 0 to 100
• Returns a correct value only when the self-test
has been done.
Returns 100 except for that.
dataIntegrity - • Object

healthStatus string<64> Available values are as follows:


• "DEAD" when the value of uncorrectableECCEr-
rors is 1 or higher
• "PASS" when the value of uncorrectableECCEr-
rors is 0
• Returns a correct value only when the self-test
has been done.
Returns "UNKNOWN" except for that.
uncorrectableECCErrors number Shows the number of uncorrectable(unrecover-
able) ECC errors that occurred on read com-
mands.
• Valid range: range of unsigned short int type
• Returns a correct value only when the self-test
has been done.
Returns 0 except for that.
remainingTenYearsDataRetention number Percentage of remaining erase counts until the
ten year data retention can not be guaranteed
anymore.
• Valid range: 0 to 100
• Returns a correct value only when the self-test
has been done.
Returns 0 except for that.

59
Chapter 2 Functional specifications - Information

Name Type Description


isReplacementNeeded boolean Whether the German fiscal element (TSE) should
be replaced with a new one based on the current
flash health.
true: German fiscal element (TSE) should be
replaced
false: German fiscal element (TSE) does not
need to be replaced
* Set to true when tseHealth is "DEAD".
• Returns a correct value only when the self-test
has been done.
Returns false except for that.
tseHealth string<64> Available values are as follows:
• "DEAD" when "healthStatus" in any one of
"spareBlockStatus", "eraseLifetimeStatus", or
"dataIntegrity" is "DEAD".
• "WARNING" when "healthStatus" in each of
"spareBlockStatus", "eraseLifetimeStatus", and
"dataIntegrity" is not "DEAD" and "healthSta-
tus" in any one of the above is "WARNING".
• "PASS" when "healthStatus" in "spareBlockSta-
tus", "eraseLifetimeStatus", and "dataIntegrity"
is all "PASS".
• Returns a correct value only when the self-test
has been done.
Returns "UNKNOWN" except for that.

60
Chapter 3 Error Code List - From Printer

Error Code List


From Printer
Error Code Condition
JSON_ERROR_NOT_ENOUGH_CONTENTS Inadequate JSON message contents (missing parameter, etc.)

JSON_ERROR_UNEXPECTED_PARAM_TYPE Incorrect JSON message parameter data type

JSON_ERROR_OVER_DATA_SIZE JSON message size exceeds the maximum value supported


(64 KB)

JSON_ERROR_INVALID_PARAMETER_RANGE JSON message parameters are outside their valid range

JSON_ERROR_INVALID_PARAMETER Invalid parameter

JSON_ERROR_INVALID_TIME_FORMAT Invalid (not supported) timestamp format for a specified


JSON message parameter

JSON_ERROR_UNEXPECTED_STORAGE_TYPE Unexpected (not supported) "storage" "type" specified by a


JSON message parameter

JSON_ERROR_UNEXPECTED_STORAGE_VENDOR Unexpected (not supported) "storage" "vendor" specified by


a JSON message parameter

JSON_ERROR_UNEXPECTED_FUNCTION Unexpected "function" specified by a JSON message parame-


ter

JSON_ERROR_UNEXPECTED_COMPRESSION_TYPE Unexpected (not supported) "compress" "type" specified by a


JSON message parameter

JSON_ERROR_WRONG_JSON_FORMAT JSON message is not in JSON format

OTHER_ERROR_UNKNOWN_STORAGE Inserted storage is not a supported German fiscal element


(TSE)

OTHER_ERROR_NO_STORAGE_FOUND No valid storage is inserted

OTHER_ERROR_UPDATE_SYSTIME_FAIL Failed to update the printer time

OTHER_ERROR_INVALID_ADMIN_USER_ID A user ID with Admin privileges besides "Administrator" was


specified

OTHER_ERROR_HOST_AUTHENTICATION_FAILED Failed to authenticate the host


(Incorrect hash value entered for AuthenticateUserForAdmin,
AuthenticateUserForTimeAdmin, or AuthenticateHost)

OTHER_ERROR_UNAUTHENTICATED_TIME_ADMIN_USER A request was received from an unauthenticated (not


logged-in) user with TimeAdmin privileges

OTHER_ERROR_UNAUTHENTICATED_ADMIN_USER A request was received from an unauthenticated (not


logged-in) user with Admin privileges

OTHER_ERROR_UNAUTHENTICATED_USER A request was received from a user not authenticated with


Admin or TimeAdmin privileges

OTHER_ERROR_UNAUTHENTICATED_HOST A request was received from an unauthenticated (not


logged-in) host

61
Chapter 3 Error Code List - From Printer

Error Code Condition


OTHER_ERROR_CURRENTLY_EXPORTING Another request was received while in export status

OTHER_ERROR_NO_EXPORT_STARTED A request was received that can only be executed in export


status while not in export status (export not started)

OTHER_ERROR_CURRENTLY_EXPORTING_USER The user ID who is currently exporting has logged out

OTHER_ERROR_NO_TIME_SET_BEFORE_EXPORT German fiscal element (TSE) time was not updated before
starting the export

OTHER_ERROR_ALREADY_ALL_DATA_EXPORTED An export data acquisition request was received when all


export data had been acquired

OTHER_ERROR_ALL_DATA_NOT_EXPORTED_YET An export end request was received when all export data had
not been acquired

OTHER_ERROR_TSE_ALREADY_SET_UP Another set-up request was received for a German fiscal ele-
ment (TSE) that is already set-up

OTHER_ERROR_SECRETKEY_REGISTRATION_FAILED Failed to register the secret key

OTHER_ERROR_PARAMETER_MISMATCH Incorrect parameters entered to specify the export range

OTHER_ERROR_TOO_MANY_TIME_ADMIN_ The number of users (clients) logged in with TimeAdmin priv-


USER_LOGGED_IN ileges exceeds the upper limit

OTHER_ERROR_TOO_MANY_CHALLENGE_REQUESTED The number of users requesting the challenge exceeds the


upper limit

OTHER_ERROR_NO_MEMORY Memory overflow error. This does not normally occur.

OTHER_ERROR_FATAL Fatal error due to an unexpected event (mainly at the Ger-


man fiscal element (TSE) side). This does not normally occur.

62
Chapter 3 Error Code List - From German fiscal element (TSE)

From German fiscal element (TSE)


Error Code Condition
TSE1_ERROR_INVALID_PARAMETER Invalid input parameter.

TSE1_ERROR_NO_TSE No German fiscal element (TSE) was found at the provided


path.

TSE1_ERROR_IO No German fiscal element (TSE) detected (inserted) when a


command request arrived
* When the printer accesses German fiscal element (TSE)

TSE1_ERROR_TIMEOUT The operation timed out

TSE1_ERROR_OUTOFMEM A location was accessed that is outside the memory

TSE1_ERROR_INVALID_RESPONSE No correct response from German fiscal element (TSE)

TSE1_ERROR_STORE_FULL_INTERNAL German fiscal element (TSE) is internally full.

TSE1_ERROR_RESPONSE_MISSING This happens if two commands are sent at the same time or
if a command is not allowed in the current state.

TSE1_ERROR_EXPORT_NOT_INITIALIZED German fiscal element (TSE) Store not initialized.

TSE1_ERROR_EXPORT_FAILED Export Failed.

TSE1_ERROR_POWER_CYCLE_DETECTED A power cycle occurred during command execution.

TSE1_ERROR_FIRMWARE_UPDATE_NOT_APPLIED The firmware update was not properly applied.

TSE1_ERROR_FROM_TSE_FIRST Lowest error code that might be raised from the German fis-
cal element (TSE).

TSE1_ERROR_UNKNOWN Unspecified, internal processing error.

TSE1_ERROR_NO_TIME_SET Time not set.

TSE1_ERROR_NO_TRANSACTION_IN_PROGRESS No transaction in progress.

TSE1_ERROR_INVALID_CMD_SYNTAX Wrong command length.

TSE1_ERROR_NOT_ENOUGH_DATA_WRITTEN Not enough data written during transaction.

TSE1_ERROR_TSE_INVALID_PARAMETER Invalid Parameter.

TSE1_ERROR_TRANSACTION_NOT_STARTED Given transaction is not started.

TSE1_ERROR_MAX_PARALLEL_TRANSACTIONS Maximum parallel transactions reached.

TSE1_ERROR_CERTIFICATE_EXPIRED Certificate expired.

TSE1_ERROR_NO_LAST_TRANSACTION No last transaction to fetch.

TSE1_ERROR_CMD_NOT_ALLOWED Command not allowed in current state.

TSE1_ERROR_TRANSACTION_SIGNATURES_EXCEEDED Signatures exceeded.

TSE1_ERROR_NOT_AUTHORIZED Not authorized.

TSE1_ERROR_MAX_REGISTERED_CLIENTS_REACHED Maximum registered clients reached.

TSE1_ERROR_CLIENT_NOT_REGISTERED Client not registered.

TSE1_ERROR_EXPORT_UNACKNOWLEDGED_DATA Failed to delete, data not completely exported.

63
Chapter 3 Error Code List - From German fiscal element (TSE)

Error Code Condition


TSE1_ERROR_CLIENT_HAS_UNFINISHED_TRANSACTIONS Failed to deregister, client has unfinished transactions.

TSE1_ERROR_TSE_HAS_UNFINISHED_TRANSACTIONS Failed to decommission, German fiscal element (TSE) has


unfinished transactions.

TSE1_ERROR_TSE_NO_RESPONSE_TO_FETCH Wrong state, there is no response to fetch.

TSE1_ERROR_NOT_ALLOWED_EXPORT_IN_PROGRESS Wrong state, ongoing Filtered Export must be finished


before this command is allowed.

TSE1_ERROR_STORE_FULL Operation failed, not enough remaining capacity in German


fiscal element (TSE) Store.

TSE1_ERROR_WRONG_STATE_NEEDS_PUK_CHANGE Wrong state, changed PUK required.

TSE1_ERROR_WRONG_STATE_NEEDS_PIN_CHANGE Wrong state, changed PIN required.

TSE1_ERROR_WRONG_STATE_NEEDS_TSE_UNLOCK Wrong state, unlocked German fiscal element (TSE) required.

TSE1_ERROR_WRONG_STATE_NEEDS_SELF_TEST Wrong state, self test must be run first.

TSE1_ERROR_WRONG_STATE_NEEDS_SELF_TEST_PASSED Wrong state, passed self test required.

TSE1_ERROR_FWU_INTEGRITY_FAILURE Firmware Update: Integrity check failed.

TSE1_ERROR_FWU_DECRYPTION_FAILURE Firmware Update: Decryption failed.

TSE1_ERROR_FWU_WRONG_FORMAT Firmware Update: Wrong format.

TSE1_ERROR_FWU_INTERNAL_ERROR Firmware Update: Internal error.

TSE1_ERROR_FWU_DOWNGRADE_PROHIBITED Firmware Update: downgrade prohibited.

TSE1_ERROR_TSE_ALREADY_INITIALIZED German fiscal element (TSE) already initialized.

TSE1_ERROR_TSE_DECOMMISSIONED German fiscal element (TSE) decommissioned.

TSE1_ERROR_TSE_NOT_INITIALIZED German fiscal element (TSE) not initialized.

TSE1_ERROR_AUTHENTICATION_FAILED Authentication B90:C90failed.

TSE1_ERROR_AUTHENTICATION_PIN_BLOCKED PIN is blocked.

TSE1_ERROR_AUTHENTICATION_USER_NOT_LOGGED_IN Given user is not authenticated.

TSE1_ERROR_SELF_TEST_FAILED_FW Self test of FW failed.

TSE1_ERROR_SELF_TEST_FAILED_CSP Self test of CSP failed.

TSE1_ERROR_SELF_TEST_FAILED_RNG Self test of RNG failed.

TSE1_ERROR_FWU_BASE_FW_ERROR Firmware Update: Base FW update error.

TSE1_ERROR_FWU_FWEXT_ERROR Firmware Update: FW Extension update error.

TSE1_ERROR_FWU_CSP_ERROR Firmware Update: CSP update error.

TSE1_ERROR_EXPORT_NONE_IN_PROGRESS Filtered Export: no export in progress.

TSE1_ERROR_EXPORT_RETRY Filtered Export: no new data, keep polling.

TSE1_ERROR_EXPORT_NO_DATA_AVAILABLE Filtered Export: no matching entries, export would be


empty.

TSE1_ERROR_CMD_NOT_FOUND Command not found

TSE1_ERROR_SIG_ERROR Signature creation error.

64
Chapter 3 Error Code List - From German fiscal element (TSE)

Error Code Condition


TSE1_ERROR_FROM_TSE_LAST Highest error code that might be raised from the German fis-
cal element (TSE).

TSE1_ERROR_RAISED_FROM_TSE Errors that raised from the German fiscal element (TSE)
except for the above.
In the current version, it might be raised when the German
fiscal element (TSE) self test fails.

65

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy