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
- CCCC – Country (ASCII of ISO 3166-1 alpha-2), e.g. GR → hex
4752 - vlll – Tagging version (current:
2000) - gggg – Flag bits (behavior modifiers)
- txcc – Receipt type
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, thusgggg = 0108). Example (Greece):4752_2000_0008_0001→ decimal5139205309155770369.
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
- Fields are joined with a single dash (
-) separator; for negative amounts, the last field starts with a minus, so you get--before the number. - Amount uses a dot decimal (e.g.,
12.5,9.04); no thousands, no spaces, no plus sign. cbReceiptMomentmust match exactly the ISO-8601 timestamp you send (YYYY-MM-DDTHH:MM:SSZ).- Compute:
SHA-256(HashPayload)→ Base64URL (URL-safe, no padding).
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.45 → 1245). 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 |
|
| 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.