Greece-PayItemCase

Country selector



Understanding ftPayItemCase

The ftPayItemCase in the ‘cbPayItems’ object indicates the type of payment within the pay items block and defines how the Viva Fiscalisation processes the individual payment in terms of the receipt. The data type is Int64 and contains a country specific code which is a value following the ISO-3166-1-ALPHA-2 standard, converted from ASCII into hex and used as byte 8 and 7.

CCCC_vlll_gggg_xxPP

Send the decimal Int64 in the API. Examples below show the human-readable hex; convert to decimal before sending.

cbPayItems (fields — common)

cbPayItems Array

cbPayItems array holds the payment details that the invoice includes.

Field Name Description Sample Data Mandatory Field
amount Total amount of payment 400
quantity Number of payments. This value is usually set to 100 (which represents 1). it can be higher when, for example, multiple vouchers of the same value are used for payment.

please note: the quantity should always be multiplied by 100, for example, send 1 as 100.
100
description Name or description of payment Card
ftPayItemCase Type of payment according to the reference table in the appendix. It is used in order to determine the processing logic. For more details about ftPayItemCase parameter, please see below. For Greece: 5139205309155246085
moment Time of payment. Must be provided in UTC, e.g. 2020-06-29T17:45:40Z. 2025-04-24T13:13:28Z
position Line number or position number on the receipt. Used to preserve the order of lines on the receipt. 1
currencyCode Used as currency code for money numbers in ISO 4217 978
accountNumber Account number for transfer into bookkeeping String
costCenter Indicator for transfer into cost accounting (type, center and payer) String
moneyGroup This value allows the logical grouping of payment types. String
moneyNumber This value identifies the payment type. String

Flag (gggg) — common

ValueDescription
0000Sale
Default flag for sale action.
0001IsVoid
Marks PayItem as Void previous position. Amounts and quantities are inverted. Used when the exchange of money has not yet been executed.
0002IsReturn / IsRefund
Marks PayItem as a return of goods or services. Amounts and quantities are inverted. Used when the exchange of money has already been executed.
0004(reserved)
(reserved)
0008Downpayment
— (+) create, (–) reduce downpayment.
0010IsForeignCurrency
Amount is in EUR at the moment of acceptance. Requires foreignCurrencySymbol and foreignCurrencyAmount.
0020IsChange
Usually contains a negative amount (-). Can be inverted when IsVoid.
0040IsTipMust be a negative amount (-) to flow out of payment method. ShowInChargeItems flag can visualize the tip separately.
0080IsDigital/IsElectronic
Electronic money, digital money.
0100IsInterface/AmountVerified
Verified by interface, automated amount transfer.
8000ShowInChargeItems
Visualizes the item before the total amount, inverting it to be included in the receipt total.

PP — Payment Type (per-country)

The PP code meaning is common, but specific notes / usage differ per country.
Choose a country above; only that country’s PP table will be shown.

Greece — PP: Payment Type

PP Meaning (Common / Generic) GR — Notes
01 Cash Μετρητά

(cash).
03 Crossed cheque Επιταγή
(Cheque/Check)
04 Debit card payment POS / e-POS
(Debit Card)
05 Credit card payment POS / e-POS
(Credit Card)
06 Voucher payment (coupon) — voucher by money value Voucher
Voucher payment (coupon) by money value.
07 Online payment (non-cash) Reserved
08 Loyalty program customer card payment Reserved
09 Accounts receivable Επί Πιστώσει
Accounts receivable (on credit).
0A Bank transfer (SEPA / web banking / professional account) Web Banking / IRIS / Επαγγελματικός λογαριασμός

Typical uses:
  • Web Banking with RF code — set description to "RF code payment (Web banking)".
  • Άμεσες Πληρωμές IRIS — set description to "IRIS".
  • Επαγγελματικός λογαριασμός πληρωμών ημεδαπής (domestic SEPA).
0B Other bank transfer Επαγ. Λογαριασμός Πληρωμών Αλλοδαπής
Professional payment account abroad (cross-border SEPA or non-SEPA).

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 — card payment (PP=04)

Human-readable pattern 4752_2000_0000_0004
Meaning
  • Country: GR
  • Flags (gggg): 0000 (Sale)
  • xx: 00 (fixed)
  • PP: 04 (Debit card payment)
API value 5139205309155246084 (decimal Int64)
{
  "cbPayItems": [
    {
      "amount": 400,
      "description": "Card",
      "position": 1,
      "currencyCode": "978",
      "moment": "2025-04-24T13:13:28Z",
      "ftPayItemCase": 5139205309155246084
    }
  ]
}

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

Conversion reminder

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