Fiscalisation — Core Concepts (Global)
What lives here - Global formats/bit layouts for the three “cases” -
ftChargeItemCase(charge item level) -ftPayItemCase(payment item level) -ftReceiptCase(fiscalisation level) - Shared payload fields and validation rulesWhat’s not here - Per-country mappings (e.g. GR myDATA, IT NI markers), PP lists, VAT indices, and long JSON samples — these live in the Business Tautorials pages.
- Overview
- Benefits
- POS Integrations
- Fiscalisation response and receipt handling
- E-commerce
- Account setup
Overview
Viva Fiscal API is designed to help businesses comply with fiscalization laws, especially in countries with strict regulations on tax reporting and cash register security. It acts as an intermediary between a company’s point-of-sale (POS) system and government tax authorities, ensuring that all transactions are accurately recorded, securely signed, and transmitted in compliance with legal requirements.
Benefits
- Legal Compliance – Many countries, such as Germany and Austria, enforce strict fiscal laws requiring businesses to securely record transactions. The Viva Fiscal API ensures businesses meet these regulations seamlessly.
- Security & Integrity – Protects against tax fraud by ensuring all sales data is securely stored and transmitted in an immutable format.
- Automation & Efficiency – Reduces manual errors and administrative burdens by automating tax reporting.
- Seamless Integration – Enables businesses to integrate fiscal compliance into their existing POS systems with minimal effort.
- Handle Government-Mandated Requirements – Some countries require certified fiscalization solutions for all POS systems.
POS Integrations
Viva offers Auto Fiscalization functionality within its POS integrations, providing an electronic fiscalization service that allows businesses to record, process, and store transactions digitally. This ensures transparency, accuracy, and compliance without complex procedures.
Fiscalization is available through:
- Local Terminal API – Local ECR integration
- InterApp Integration – Terminal/SoftPos Interapp integration
- Cloud Terminal API – POS integration via Cloud Terminal API
Merchants and ISV partners do not need to allocate resources for fiscalization integration, as all transactions are automatically fiscalized during payments.
The fiscalisation feature is currently available exclusively on our SoftPOS for Android. Please use this link to download the demo version of the Viva Terminal app with fiscalisation enabled and try it out in demo environment.
The fiscalisation feature encompasses AADE integration, so merchants using fiscalisation should not send AADE-related parameters separately.
How to Fiscalize POS Payments
Ensuring that a payment is tax-compliant is quite straightforward. Your integration remains the same, with just one additional object added to your sale requests. This object(fiscalisationData) contains essential data, including the items sold, the payment amount for each item, and the corresponding VAT details. You can find the object structure and its parameters here.
The fiscalisationData is same across all types of POS integrations. By understanding what to include in your requests, you can seamlessly integrate fiscalisation into Viva’s any POS integration. Viva Fiscalisation handles the compliance process by signing the transaction with the relevant authorities. It then returns the receipt details, including the required signature for tax authorities. 2This information must be printed on the receipt and provided to the customer.
Ensuring that a POS payment is tax-compliant is straightforward:
- Your payment integration stays the same (Inter-app / Cloud / P2P).
- You add a single extra object to your sale request:
fiscalisationData. - This object contains:
- The items sold (
cbChargeItems) - The payments (
cbPayItems) - Optional user / customer context (
cbUser,cbCustomer) - The fiscal receipt type (
ftReceiptCase) and any mandatory local data (ftReceiptCaseData)
- The items sold (
The fiscalisationData shape is the same across all POS integrations (Inter-app, Cloud Terminal, P2P). By understanding what to put into this object, you can plug fiscalisation into any Viva POS flow.
Viva Fiscalisation:
- Validates and signs the transaction against the relevant national scheme.
- Returns the fiscalised receipt, including the signature / hash / QR data required by the tax authorities.
- You print or show these details on the receipt and hand them to the customer.
Encoding & validation (applies everywhere)
- All
ft…Casevalues are sent as decimal Int64, but constructed from a hex pattern (CCCC_vlll_gggg_NN S V). Convert hex → decimal before sending. - Amount is in the smallest currency unit (e.g. €12.45 →
1245) for items, payments and totals.
(The only exceptions are explicitly documented in country overlays, e.g. human-readableHashPayloadamounts.) - Times are ISO-8601 UTC (e.g.
2025-08-27T00:01:06Z). - Currency codes are ISO-4217 numeric (e.g. EUR =
978). - For Inter-app (app-to-app) integrations, the
fiscalisationDataobject is Base64URL-encoded and passed via the deeplink URI payload.
The fiscalisationData object
At a high level, fiscalisationData groups 3 layers of information:
Line-level
cbChargeItems[]— what is being sold (goods / services / other lines).cbPayItems[]— how the receipt is being paid.
Receipt-level
ftReceiptCase— what type of receipt/invoice it is.ftReceiptCaseData— mandatory per-country extra data (e.g. Series / AA / MerchantVATID).cbReceiptMoment,cbReceiptReference, optionalcbPreviousReceiptReference,cbArea,cbReceiptAmount,currencyCode.
Context (optional but recommended)
cbUser— who is issuing the receipt (merchant / cashier).cbCustomer— who the customer is (B2B/B2C, address, VAT, country).
Country-specific logic (e.g. Greece myDATA Document Type / Category / Characterisation Type or Italian NI/N2 codes) is derived from a combination of:
ftReceiptCaseftChargeItemCase(especially Type of Service)cbCustomerdata (B2B / B2C / EU / third country)- Sometimes other flags in
ftReceiptCaseData
Detailed mappings live in Regional Examples (e.g. Greece, Italy).
Country overlays for fiscalisationData
fiscalisationData parameters (receipt level)
All time-related fields must be sent in ISO 8601 UTC format, e.g. 2025-08-27T00:01:06Z.
| Field | Description | Example | Req. |
|---|---|---|---|
| cbChargeItems | Array of line items being sold (goods/services/etc.). Each entry includes amount, quantity, VAT, and classification bits. |
[{"amount":40,"description":"description1","position":1,"quantity":100,"unit":"pcs","unitPrice":40,"vatAmount":1,"vatRate":2400,"currencyCode":"978","moment":"2025-04-24T22:09:32Z","ftChargeItemCase":5139205309155246083}]
|
✅ |
| cbPayItems | Array of payments applied to this receipt. Each entry includes payment method, amount and classification bits. |
[{"amount":40,"description":"Card","position":1,"currencyCode":"978","moment":"2025-04-24T22:09:32Z","ftPayItemCase":5139205309155246085}]
|
✅ |
| cbUser | Information about the user/merchant issuing the receipt. |
{"merchantName":"Merchant","cashier":{"name":"John Doe","id":10}}
|
❌ |
| cbCustomer | Business/customer identification (B2B, or enriched B2C). |
{"customerVATId":"999999999","customerCountry":"GR","customerName":"ProfessionalServices LTD","customerStreet":"Street 1","customerZip":"15125","customerCity":"Athens"}
|
❌ |
| cbReceiptMoment | Time of receipt creation (UTC). | 2025-04-24T22:09:32Z |
✅ |
| cbReceiptReference | Reference number sent by the cash register. Should be a unique identifier in the POS / ERP. | "INV-2025-000123" |
✅ |
| cbPreviousReceiptReference | Reference(s) to previous receipts, for split/merge/void flows. |
"reference1" or
["reference1","reference2"]
|
❌ |
| cbArea | Area/table identifier when the receipt is based on an order slip. | "table-12" |
❌ |
| cbReceiptAmount | Total amount of the receipt in the smallest currency unit (e.g. cents). | 734 |
✅ |
| currencyCode | ISO 4217 numeric currency code. | 978 |
✅ |
| cbReceiptReference | Reference number sent by the cash register. Should be a unique identifier in the POS / ERP. | "INV-2025-000123" |
✅ |
| cbPreviousReceiptReference | Reference(s) to previous receipts, for split/merge/void flows. |
"reference1" or
["reference1","reference2"]
|
❌ |
| cbArea | Area/table identifier when the receipt is based on an order slip. | "table-12" |
❌ |
| ftReceiptCase | Defines the type of receipt (POS, invoice, payment transfer, order, protocol-payment, etc.). | 5139205309155246081 |
✅ |
| ftReceiptCaseData |
Additional per-country data required by the fiscal authority. Structure is
usually keyed by country code (e.g. "GR", "IT").
|
{ "GR": { "MerchantVATID":"012345678","Series":"A","AA":397717,"HashAlg":"sha256","HashPayload":"012345678-A-397717-ReceiptReferenceX123-2025-07-15T14:57:55Z-12.4" } }
|
✅ |
| cbReceiptAmount |
Gross receipt amount (incl. taxes) in minor units
(e.g. €19.80 → 1980).
|
1980 |
✅ |
| currencyCode | Numeric ISO-4217 currency code for the receipt. | 978 |
✅ |
For country-specific rules (e.g. how
ftReceiptCasemaps to “Invoice vs Receipt” in Greece or Italy), see Country overlays / Regional Examples.
cbChargeItems (line items) — shared fields
These fields and types are the same regardless of country; only mappings (NN / S / V meaning) vary by country.
| Field | Meaning (global) | Req. | Notes |
|---|---|---|---|
| amount | Gross line total. | ✅ | Net values derive from amount and VAT rate/amount. |
| quantity | Quantity × 100. | ✅ | Always send 1 → 100. |
| position | Line number on the receipt. | ✅ | Preserves row order. |
| description | Item name / description. | ✅ | |
| vatRate | Fixed-point VAT (e.g. 2400 → 24.00%). |
✅ | Avoids floating-point imprecision. |
| vatAmount | VAT amount for this line. | — | Optional if backend calculates VAT. |
| currencyCode | ISO-4217 numeric currency code. | ✅ | E.g. 978 for EUR. |
| moment | UTC timestamp for the line. | — | Optional per line; required in some countries. |
| ftChargeItemCase | Item-level classification bits (NN / S / V). | ✅ | Per-country behaviour via the country selector on the ChargeItemCase page. |
cbPayItems (payments) — shared fields
Fields are global; country overlays may extend them with local PP (payment type) lists or extra requirements.
| Field | Description (global) | Req. | Notes |
|---|---|---|---|
| amount | Payment amount in the smallest currency unit (e.g. cents). | ✅ | Across all payments, the sum should equal cbReceiptAmount. |
| quantity | Usually 100 (=1.00). |
— | Only used in some setups. When used, multiply by 100 (1 → 100). |
| description | Payment label (e.g. Card, Cash, Voucher). |
✅ | Shown to the merchant; free text. |
| position | Payment line number. | ✅ | Preserve order (1..N). |
| currencyCode | ISO-4217 numeric currency code. | ✅ | E.g. 978 for EUR. |
| moment | UTC timestamp for the payment. | — | Optional per payment; may be required by some countries. |
| ftPayItemCase | Payment-level classification bits. | ✅ | Per-country mappings documented in Regional Examples. |
cbUser — shared fields
cbUser object indicates the user, who creates the receipt. Although all string values are supported, we suggest using data structures serialized into JSON format.
Example
"cbUser": {
"merchantName": "Merchant",
"cashier": {
"name": "John Doe",
"id": 10
}
}
cbcustomer-object — shared fields
cbCustomer object is used when the receipt is for a business customer.
| Field Name | Description | Sample Data | Mandatory Field |
|---|---|---|---|
| customerName | Name of beneficiary customer. | John Dohn's Company | ❌ |
| customerStreet | Street and house number of the beneficiary customer. | York Road | ❌ |
| customerZip | Zip of the beneficiary customer. | 1234 | ❌ |
| customerCity | City of the beneficiary customer. | Athens | ❌ |
| customerCountry | Country of the beneficiary customer. [ISO 3166 ALPHA-3 country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3). | GRC | ❌ |
| customerVATId | VAT-ID of the beneficiary customer. | 123456789 | ❌ |
Example
"cbCustomer":
{
"customerVATId": "123456789",
"customerCountry": "GR",
"customerName": "Professional Services LTD",
"customerStreet": "Street 18-20",
"customerZip": "99999",
"customerCity": "Athens"
}
Receipt classification — shared concepts
A dedicated page documents the bit layout and examples:
Typical use cases:
- POS receipt
- Invoice / credit note
- Payment transfer / protocol payment
- Orders (non-fiscal slips)
Local schemes (e.g. GR myDATA, IT SDI) derive their own document types from ftReceiptCase plus:
ftChargeItemCase(Type of Service)cbCustomer(B2B/B2C, domestic/EU/third country)- Optional extra flags in
ftReceiptCaseData.
For full country logic, see:
- Business Tautorials → Greece
- Business Tautorials → Italy
- …and so on for each onboarded country.
Fiscalisation response and receipt handling
When you fiscalize a transaction via a sale request, the response contains critical fiscalization data that ensures the transaction complies with the relevant fiscal regulations. Among the details returned, two key parameters(transmissionIndicator and signatures) stand out and should be carefully reviewed. It is important to note that these fiscalization details, should also be printed or displayed on the receipt according to instructions below. Including this information is a legal requirement in many fiscal jurisdictions.
Fiscalisation Response
| Field | Description | Example |
|---|---|---|
| ftState | The country-specific code is made of the country’s code value following the ISO-3166-1-ALPHA-2 standard, converted from ASCII into hex. For Greece (GR) this is 0x4752, which results in 4752_2000_0000_0000 as the value for the “ready” status. The table below describes it supported statuses for the ftState field following the Greek implementation. The ftState from this reference table and the general part of this documentation can be combined through the logic operator “OR”. For example 4752_2000_0000_0010 (monthly report due) and 4752_2000_0000_0008 combined through OR results in 4752_2000_0000_0018. For more details please see this section. |
5139205309155246080 |
| ftReceiptIdentification | The number of the receipt, which was assigned by the Viva Fiscalisation | ft5#0-5 |
| ftCashBoxIdentification | Cash register identification number. | fiskaltrust1 |
| transmissionIndicator | Reflects the status of the fiscal data’s transmission to the tax authority or fiscal system. For more detail please see this section. | 0 |
| ftSignatures | The cryptographic signatures applied to the transaction data. For more detail please see this section. | array of objects |
ftState
| Type | Int64 |
|---|---|
| Default | 0 |
| Mandatory | Yes |
| Description | Flag indicating the status of the fiskaltrust.Middleware; set accordingly to the reference table in the appendix. |
Format
The hex format of the ftState parameter on fiscalization level is as follows.
CCCC_vlll_gggg_gggg
- CCCC = 4752 | The two ASCII letters that specify the ISO country code (https://en.wikipedia.org/wiki/ISO_3166-1) (e.g. GR = 4752)
- vlll = 2000 | This section is for versioning the tagging system (the current is the v2) (e.g. 2000)
- gggg_gggg = 0000_0000 | This item is used for flag. Flag can change the basic behavior of a given type
Example
4752_2000_0000_000
ftState Global tagging/flag values(gggg_gggg)
| Value | Description |
|---|---|
| 0000_0000 | Ready status. |
| 0000_0001 |
Security Mechanism is out Out of Operation Queue is not started or already stopped. |
| 0000_0002 |
SCU (Signature Creation Unit) temporary out of service For at least one receipt, it was not possible to receive the signature from an allocated SCU, therefore the security mechanism has been put into "signature creation device out of service" mode. Regardless of whether an allocated SCU is available again or not, the mode remains in place until a ZeroReceipt cleans up the state and takes the market specific action required. |
| 0000_0008 | When the POS/ERP cannot reach the Viva Fiscal service, it queues up the receipt requests while continuing to do business. Also, during a major failure of the POS/ERP or a power outage, custom-numbered receipts are queued up while continuing to do business. After getting back to a fully functional state, these queued-up ReceiptRequests are sent to the queue, having the original cbReceiptMoment of the business case and ReceiptCase tagged/flagged with 0001 (Deferred Queue / Late Signing) or 0008 (custom-numbered receipts). |
| 0000_0040 |
Message Pending Middleware/Queue is a headless background service, but there are situations where communication with the cashier/operator or the cash register is necessary. For example, if the last daily closing was missed or if a special condition related to the signature creation unit or service happened. This is the moment when the message pending flag is set by the middleware, which should be signalled to the cashier by the POS system. By executing a ZeroReceipt, the cashier can read the message or instruction on the printed or displayed receipt. Related to local regulations, this receipt may be stored/archived with/for bookkeeping purposes; if this is the case, this is also visualized. |
| 0000_0100 |
DailyClosing due When the first cbReceiptMoment used since the last DailyClosing and the current/latest cbReceiptMoment in the ReceiptRequest have a date-gap of more than two days (for example, the first since the last daily closing is 24/08 and the current is 26/08), then this state indicates, a Daily Closing should be done. DailyClosing is an essential part of the security mechanism and also executes additional market-specific cleanup tasks. Therefore, each queue should do a DailyClsoing to clear persistent changes in business data and also changes in the business period. |
| EEEE_EEEE |
Error Something went wrong while processing the last request. QueueItem exists but didn’t reach the state of a ReceiptItem and didn’t consume a ftReceiptNumber within the chain. Error reason is shown within the responded ftSignatureItems. This happens, for example, if the ReceiptCase is not recognized or is wrong. |
| FFFF_FFFF |
Fail Something went wrong while processing the last request, and nothing persisted within the Queue. Fail reason is shown within the responded ftSignatureItems. This happens, for example, when the flag ReceiptRequest is used after a communication outage, and no properly processed item is found. |
transmissionIndicator
This parameter reflects the status of the fiscal data’s transmission to the tax authority or fiscal system. It indicates whether the transaction was successfully reported, is pending transmission, or encountered an error. Monitoring this value is crucial for audit readiness and legal compliance, especially in jurisdictions where real-time or near-real-time reporting is mandatory.
| Parameter | Value | Description |
|---|---|---|
| transmissionIndicator | 0 | Succesfully fiscalised transaction. Please use the signature object and create your receipt/invoice accordingly. |
| transmissionIndicator | 1 | TRANSMISSION_FAILURE_1: Please mark the transaction as TRANSMISSION_FAILURE_1 and print "TRANSMISSION_FAILURE_1" on the sale receipt/invoice. |
| transmissionIndicator | 2 or it is either missing or not present in the response. | TRANSMISSION_FAILURE_2: AADE myDATA is unreachable. Please mark the transaction as TRANSMISSION_FAILURE_2 and print "TRANSMISSION_FAILURE_2" on the sale receipt/invoice |
Please note: The cash register must always create a URI and generate a QR code using the following steps and print it on the receipt:
1- Use the base URL supplied by Viva.
For demo: https://r-sb.ft.ms/
For production: https://r.ft.ms/
2- Generate a Base64URL-encoded SHA-256 of HashPayload string:
MerchantVATID-Series-AA-cbReceiptReference-cbReceiptMoment-Amount
(same as passed in the HashPayload field under ftReceiptCaseData)
- Example input string for SHA-256 hashing: 098000979-ABC-123456-ReceiptReferenceX123-2025-07-15T14:57:55Z-12.4
- Example Base64 representation of a hashed string: Y2M0NjI2ZjU1N2RlYjIwNmNjNmRmNmFjY2ZjNzRmNWMyYjE4NTJiODA4YjQ0MzI5NzU5ZjM0MDhlZGY3Y2YwYw
3- Append the encoded hash to the base URL to form the final URI. Generate a QR code from that URI and print it on the receipt.
Example URI for generating a QR code: https://r-sb.ft.ms/Y2M0NjI2ZjU1N2RlYjIwNmNjNmRmNmFjY2ZjNzRmNWMyYjE4NTJiODA4YjQ0MzI5NzU5ZjM0MDhlZGY3Y2YwYw
Please see the below table for more detailed scenarios.
| Scenario | Local network connection disruption | Viva Terminal app/device unresponsive | Internet connection disruption | Viva.com cloud infrastructure unreachable | AADE myDATA cloud infrastructure unreachable |
|---|---|---|---|---|---|
| Payment + Fiscalisation integration APIs | Reachable | Unreachable | Reachable | Reachable | Reachable |
| Fiscalisation outcome |
Fiscalisation temporarily unavailable. TRANSMISSION_FAILURE_1 Viva informs POS via API response that fiscalisation cannot proceed due to a TRANSMISSION_FAILURE_1 error. According to myDATA reporting regulations, POS should mark the sale as TRANSMISSION_FAILURE_1 and print this message on the sales receipt/invoice. Simultaneously, Viva polls continuously the Viva infrastructure endpoint and when the connection is restored, it automatically transmits the contents of the receipt/invoice, marked with TRANSMISSION_FAILURE_1 designator to AADE myDATA. Please note: the cash register must always create a URI and generate a QR code using the following steps and print it on the receipt: Use the base URL supplied by Viva. For demo: https://r-sb.ft.ms/ For production: https://r.ft.ms/ https://r.ft.ms/ 2- Generate a Base64URL-encoded SHA-256 of HashPayload string: - Example input string for SHA-256 hashing: 098000979-ABC-123456-ReceiptReferenceX123-2025-07-15T14:57:55Z-12.4 - Example Base64 representation of a hashed string: Y2M0NjI2ZjU1N2RlYjIwNmNjNmRmNmFjY2ZjNzRmNWMyYjE4NTJiODA4YjQ0MzI5NzU5ZjM0MDhlZGY3Y2YwYw 3- Append the encoded hash to the base URL to form the final URI. Generate a QR code from that URI and print it on the receipt. Example URI for generating a QR code: https://r-sb.ft.ms/Y2M0NjI2ZjU1N2RlYjIwNmNjNmRmNmFjY2ZjNzRmNWMyYjE4NTJiODA4YjQ0MzI5NzU5ZjM0MDhlZGY3Y2YwYw |
||||
| Fiscalisation outcome (Alternate scenario) |
Fiscalisation temporarily unavailable. TRANSMISSION_FAILURE_2 Viva informs POS via API response that fiscalisation cannot proceed due to a TRANSMISSION_FAILURE_2 error. According to myDATA reporting regulations, POS should mark the sale as TRANSMISSION_FAILURE_2 and print this message on the sales receipt/invoice. No follow-up receipt/invoice needs to be generated. Simultaneously, Viva polls continuously the AADE myDATA infrastructure endpoint and when the connection is restored, it automatically transmits the contents of the receipt/invoice, marked with TRANSMISSION_FAILURE_2 designator to AADE myDATA. Please note: The cash register must always create a URI and generate a QR code using the following steps and print it on the receipt: 1- Use the base URL supplied by Viva. For demo: https://r-sb.ft.ms/ For production: https://r.ft.ms/ 2- Generate a Base64URL-encoded SHA-256 of HashPayload string: - Example input string for SHA-256 hashing: 098000979-ABC-123456-ReceiptReferenceX123-2025-07-15T14:57:55Z-12.4 - Example Base64 representation of a hashed string: Y2M0NjI2ZjU1N2RlYjIwNmNjNmRmNmFjY2ZjNzRmNWMyYjE4NTJiODA4YjQ0MzI5NzU5ZjM0MDhlZGY3Y2YwYw 3- Append the encoded hash to the base URL to form the final URI. Generate a QR code from that URI and print it on the receipt. Example URI for generating a QR code: https://r-sb.ft.ms/Y2M0NjI2ZjU1N2RlYjIwNmNjNmRmNmFjY2ZjNzRmNWMyYjE4NTJiODA4YjQ0MzI5NzU5ZjM0MDhlZGY3Y2YwYw |
||||
| Electronic payment outcome | Electronic payments possible (offline mode) | Electronic payments not possible | Electronic payments possible (offline mode) | Electronic payments possible (offline mode) | Electronic payments possible (online mode) |
ftSignatures
These are cryptographic signatures applied to the transaction data. They serve as proof of authenticity and integrity showing that the fiscalized data has not been tampered with. Signatures include a unique hash or token generated based on the transaction’s content and a secure private key, aligning with the digital security requirements set by fiscal authorities.| Parameter | Value | Description |
|---|---|---|
| ftSignatures.caption | Example values -invoiceUid -invoiceMark -authenticationCode -[www.viva.com] -Σημείωση: Με βάση την ΠΟΛ.1002/2014 (ΦΕΚ Β’ 3/2-1-2014), τα δεδομένα αυτά δεν επιδέχονται αλλοίωση. |
The caption that needs to be printed above the signature data |
| ftSignatures.data | Sample values -322C0863893A5EB62F4865D26129075BBDF46BD3 -https://receipts-sandbox.viva.com/8c0a4594 -112545020|27/03/2025|0|Item113|0|128 |
The signature data that needs to be printed under the relevant caption according to the mentioned format. |
| ftSignatures.ftSignatureFormat |
0: Unknown / no format defined 1: Text 2: Link 3: QR-Code (2D Code) 4: Code128 (Barcode) 5: OCR-A (optical character recognition, possible for Base32 data) 6: PDF417-(2D Code) 7: DATAMATRIX-(2D Code) 8: AZTEC-(2D Code) 9: EAN-8 (Barcode) A: EAN-13 (bar code) B: UPC-A (bar code) C: Code39 (bar code, Base32 compatible) |
Specifies the format that you need to use when printing the signature data. For example, if format is 3, the data value should be presented as QR code. |
| ftSignatures.ftSignatureType | Sample values -4154000000000000: - -112545020|27/03/2025|0|Item113|0|128 |
The descimal corresponding of signature data that needs to be printed under the relevant caption according to the mentioned format. The ftSignatureType indicates the type and origin of the signature. The data type is Int64 and can contain a country-specific code, a value following the ISO-3166-1-ALPHA-2 standard, converted from ASCII into hex and used as byte 8 and 7. For more details please see the next section |
ftSignatureType
FormatThe format of the ftsignaturetype parameter on signature level, should be as follows.
CCCC_vlll_gggg_tsss
- CCCC = 4752 | The two ASCII letters that specify the ISO country code (https://en.wikipedia.org/wiki/ISO_3166-1) (e.g. GR = 4752)
- vlll = 2000 | This section is for versioning the tagging system (the current is the v2) (e.g. 2000)
- gggg = 0000 | This item is used for flag. Flag can change the basic behavior of a given type.
- tsss = 0000 | `t`flag stands for Type/Category. `sss` flag stands for SignatureCase.
Example
The corresponding decimal value of ftSignatureType(4752_2000_0000_0001) is 5139205309155246081.
t - Type/Category
| Value | Description |
|---|---|
| 0 | Uncategorized, Normal use (notification) |
| 1 | Information (notification), low priority |
| 2 | Alert (notification), high priority |
| 3 | Failure (notification), high priority |
sss - SignatureCase
| Value | Description | Caption |
|---|---|---|
| TBD | TBD | TBD |
gggg - Global Flags
| Value | Description |
|---|---|
| 0000 | The signature marked with this gggg flag indicates that the data in this object is a URI, which should be converted into a QR code and printed on the receipt. This allows users to scan the code and access their receipt online. Example: https://r-sb.ft.ms/9d750303-1bb9-45e7-ae7e-984386739c91 Please note: the cash register must always create a URI and generate a QR code using the following steps and print it on the receipt: |
0001 |
Archiving required. Signatures marked with this flag are known to be archived related to market specific bookkeeping requirements. In case of offline usage or pure open-source usage, receipts/artefacts having this flag need to be handled as bookkeeping/accounting-relevant item. |
| 0020 | A signature marked with this gggg flag signifies that the data contained in this signature object is not intended to be printed on the receipt. |
| 0040 | A signature marked with this gggg flag indicates that the data contained in this signature object should be printed on the receipt. |
| 0080 | A signature marked with this gggg flag indicates that the data contained in this signature object should be printed on the receipt. |
Response Example
The following data sample is returned during session retrieval, whether through the Cloud REST API or the Local Terminal API, or as a Base64-encoded format in inter-app responses when using app-to-app integration.
{
"signatures": [
{
"caption": "invoiceUid",
"data": "FDF3F4414097B4786363FA8A70A98653CFC92B0C",
"format": 1
},
{
"caption": "invoiceMark",
"data": "400001948544829",
"format": 1
},
{
"caption": "authenticationCode",
"data": "D4824EB973D3E0E2A802FC0FF55B1283F22A8629",
"format": 1
},
{
"caption": "[www.fiskaltrust.gr]",
"data": "https://receipts-sandbox.fiskaltrust.eu/8c0a4594-ab69-43bb-a7ef-ebc4bef51494/8abf2ada-afa8-4616-a07a-562dbe1ee211",
"format": 3
},
{
"caption": "Σημείωση: Με βάση την ΠΟΛ.1002/2014 (ΦΕΚ Β’ 3/2-1-2014), τα δεδομένα αυτά δεν επιδέχονται αλλοίωση.",
"data": "112545020|27/03/2025|0|Item113|0|128",
"format": 1
},
{
"caption": "S A N D B O X",
"data": "8c0a4594-ab69-43bb-a7ef-ebc4bef51494",
"format": 1
}
],
"transmissionIndicator": 0
}E-commerce
While the Fiscal API is not yet available for web payments, it will be launching soon.
Account Setup
To activate fiscalization for your integration, please contact your sales representative.
Get Support
If you would like to integrate with Viva, or if you have any queries about our products and solutions, please see our Contact & Support page to see how we can help!