Greece — ftReceiptCase

Understanding ftReceiptCase (Greece)

Country selector

The ftReceiptCase in the main request body identifies the receipt type and how it must be processed for Greek fiscalisation. Its value is an Int64 decimal that represents a hexadecimal pattern with embedded flags. For Greece (country code GR = hex 4752), an unknown receipt case starts as 4752000000000000 (in hex before conversion).

Format

CCCC_vlll_gggg_txcc

Example for Greece Hex: CCCC_2000_0002_0001

Note: You build the hex pattern and then convert the whole value to decimal for the API field. Flags are combined with bitwise OR (e.g., 0x100 | 0x8 = 0x108, thus gggg = 0108). Example (Greece): 4752_2000_0008_0001 → decimal 5139205309155770369.

Note: ftReceiptCase is a decimal representation of a hexadecimal combination of binary flags, where each section encodes specific aspects of the receipt context. These flags are typically calculated based on powers of 2 (2ⁿ) and can be combined using bitwise OR logic.

Specifically, the gggg part of the ftReceiptCase represents global tagging flags. You can assign one or more flags to it by combining them. For example, the "custom-numbered receipts" flag has a value of 0x8 and the "refund" flag has a value of 0x100. When both apply, they are combined as:

0x100 | 0x8 = 0x108

Therefore, the gggg value for a refund with custom-numbered receipt tagging would be 0108.

The CCCC200000080001 is hex and should be converted to decimal number (5139205309155770369). So, the value that should be passed through in the body request for this hex is 5139205309155770369.

A helpful online tool for your converting tests is this.

Negative amounts in HashPayload (refunds)

Important: The HashPayload is a string with fields joined by a single dash (-) separator:
MerchantVATID-Series-AA-cbReceiptReference-cbReceiptMoment-Amount. When the final Amount is negative (refund/credit), keep the minus sign on that last field. Because the dash is also the field separator, you will see two dashes in a row right before the negative amount (...--2.25). This is expected and correct.

Do not remove, collapse, or encode away the minus sign. Compute the hash on the exact string bytes, then Base64URL-encode the SHA-256 digest (URL-safe, no padding).

Examples

Positive total (2.25 EUR):
099565360-SER-15-REF-2025-11-04T12:40:16Z-2.25

Negative total (-2.25 EUR):
099565360-SER-15-REF-2025-11-04T12:40:16Z--2.25

Formatting rules

Global flags — gggg

Value Description
0000 Sale
Default flag for sale action.
0001 Process as Late Signing Receipt
The cash register lost connection to the queue and processed receipts without communicating with the queue. All processed receipts marked with the hint “Security mechanism not reachable” need to be sent to the queue with this marker.
0002 Training Receipt
0004 IsVoid
Marks Receipt as Void to previous one. Mark line items also as IsVoid to signal clear data.
0008 Process as Handwritten Receipt
During a power outage, the Cash register will not work, and the merchant hands out handwritten receipts. These handwritten receipts need to be sent to the Security Mechanism by using this flag.
0010 IssuerIsSmallBusiness
Businesses below a country-specific size in revenue need not declare VAT.
With this marker, the receipt shows no VAT, all prices are gross, and a country-specific hint must be printed.
0020 ReceiverIsBusiness
Specific data need to be placed onto the receipt.
0040 ReceiverIsKnown
Characteristics related to VAT taxes are given. For example, Name, Address, VAT-ID, other local info.
0080 IsSaleInForeignCountry
0100 IsReturn/IsRefund
Marks Receipt as Return of good or service.
0800 Group by Position-Number / 100
100 = first position, 101 first subitem, 102 second subitem.
The sum of all charge items within a position must count toward the total receipt amount.
If the quantity and amount are 0.00, the quantity and amount will not be visualized for this line on the digital receipt, independent if main or subitem.
8000 ReceiptRequest
If you don’t receive a response, try this flag first before taking any other action.
This will return a stored result, for example, in case of a timeout when cash register calls queue.

t receipt type t

Italy — t receipt type

NN Description IT — Notes
0 Receipt A basic receipt that is generated as part of a POS sale. A receipt usually serves as proof of payment. The receipt is used after the transaction is done (if goods are received). This is the usual process that is done at a POS.
1 Invoice An invoice is generated for those cases where payment isn't handled immediately.
2 DailyOperations This category contains receipt cases that the Middleware requires for various downstream processes (e.g. book keeping)
3 Log Logs can be used for storing / securing events that are needed for additional processing or downstream processes (e.g. log for cash drawer opened).
4 Lifecycle These operations are used for changing the overall state of the Middleware. Depending on the local regulations these receipts are handed over as part of a notification (e.g. FinanzOnline).

txcc — ReceiptCase values (per Country)

Italy — ReceiptCase values (txcc)

txcc Description IT — Notes
0000 Unknown type for country-code "IT"
0001 POS receipt

Represents the main kind of receipt processed by a POS system. Creates a turnover and/or a change in the amount of cash in the till or similar operations.
0002 Payment transfer receipt type
0003 Point-Of-Sale receipt without fiscalization
Obligation or with exception on fiscalization regulation.
0004 E-Commerce receipt type
0005 Delivery Note
1000 Unknown invoice type
1002 B2B invoice type
1003 B2G invoice type
2000 Zero Receipt
2001 (reserved) One Receipt
2010 Shift Closing Receipt
2011 Daily Closing Receipt
2012 Monthly Closing Receipt
2013 Yearly Closing Receipt
3000 Protocol (unspecified type)
3001 Protocol (technical event)
3002 Protocol (audit event / accounting event)
3003 Internal usage / Material consumption
3004 Order
3010 Copy Receipt / Print existing Receipt
4001 Queue-Start-Receipt (Initial operations receipt)
4002 Queue-Stop-Receipt (Out of operations receipt)
4011 Initiate SCU-switch
4012 Finish SCU-switch

Understanding ftReceiptCaseData for Greece

This field contains jurisdiction-specific fiscalization data that is required to comply with local electronic invoicing or tax regulations.

Field Description Example Mandatory
MerchantVATID The VAT identification number of the merchant, required for tax reporting in that jurisdiction. 098000979
Series The Series field (Σειρά) refers to the receipt series or document code assigned to a category or type of fiscal document. It's part of the unique identification for each invoice or receipt. Used to group documents of the same type (e.g., retail receipts, credit notes) and to distinguish between different sequences of documents for organizational or fiscal purposes. "AB" - Main receipt series
"BB" - Another document category
"CC" - Credit notes
etc.
AA Type: Integer
AA stands for "Αριθμός Αναφοράς" or "Αύξων Αριθμός" — a sequential unique number for each receipt within a given Series. Serves as a strictly increasing counter per Series. It helps uniquely identify receipts and ensures no gaps or duplicates in fiscal document numbering.The merchant's system must increment and track this per Series. If Series "A" has receipts 1 to 1000, the next receipt in Series "A" must be 1001.
397717
HashAlg The algorithm used to compute the hash of the payload Always send "sha256"
HashPayload Concatenated string of key values of MerchantVATID, Series, AA, cbReceiptReference, cbReceiptMoment, Amount used for hash calculation.

Note:
In most monetary fields (e.g., cbChargeItems.amount, cbPayItems.amount) values are in cents (e.g., €12.451245).
However, in ftReceiptCaseData.HashPayload, the Amount must be the human-readable decimal with a dot. Keep two decimals unless the second decimal digit is zero; in that case drop the trailing 0.
Send 12.45 (not 1245) in the hash string.

"098000979-ABC-123456-ReceiptReferenceX123-2025-07-15T14:57:55Z-12.4"

"098000979-ABC-123456-ReceiptReferenceX123-2025-07-15T14:57:55Z-12.35"

"098000979-ABC-123456-ReceiptReferenceX123-2025-07-15T14:57:55Z-12.0"

Examples (per-country)

Each example shows: (a) the human-readable pattern, (b) what it means, and (c) the value you send to the API (decimal Int64).

Greece — POS receipt (Handwritten + Refund)

Human-readable pattern 4752_2000_0108_0001
Meaning
  • Country: GR
  • Flags (gggg): 0108 (Refund + Handwritten)
  • txcc: 0001 (POS receipt)
API value 5139205309155770369 (decimal Int64)
{
  "ftReceiptCase": 5139205309155770369
}

Rule: in requests, always send the decimal Int64 (not the hex pattern).

Tip: When the response includes fiscalisation details, you’ll also receive fields like transmissionIndicator, ftState, and ftSignatures that you can print on the receipt. (Those are documented separately.)


Conversion reminder

All CCCC_vlll_… show the human-friendly hex. Always send decimal Int64 in the API.