The following JSON examples illustrate the business case of a deposit or loading of a customer card ("multi-purpose voucher"), and the subsequent redemption of this credit during a sale.
1. Loading the Customer Card
The first receipt shows the loading of the multi-purpose voucher. The amount is paid in cash and recorded in the cash register as income, without VAT. With this loading, no taxable transaction occurs yet, as it is not yet determined how the credit will be used.
{ "ModelVersion": "1.4.0", "UniqueClientId": "2a296a14-f644-4f3f-9ea2-d3f00a3b587c", "fiscalDocumentNumber": "8", "fiscalDocumentStartTime": 1743161079, "fiscalDocumentRevision": 1, "AdditionalFields": {}, "AutomaticVatCalculation": 0, "DocumentGuid": "a5f35b65-b5fc-45c8-9b8f-10543c19fa68", "DocumentId": "946398c5-d72c-450d-9cdd-8f4d49c5643d", "CreateDate": "2025-03-28T12:26:28.4312186+01:00", "BookDate": "2025-03-28T12:26:28.4322612+01:00", "DocumentType": "[0] = Receipt", "User": { "Id": "123", "Caption": "TestUser", "firstName": "Test", "lastName": "Test", "dateOfEntry": "2020-01-01T08:00:00+01:00" }, "Positions": [ { "Type": "[0] = Item", "ItemId": "MPV-0001", "ItemCaption": "Deposit via Loyalty Card (MultiPurposeVoucher)", "BusinessTransactionType": "[4] = MultiPurposeVoucher", "Quantity": 1, "VatIdentification": 5, "VatPercent": 0.0, "NetValue": 100.0, "GrossValue": 100.00, "TaxValue": 0.00, "PositionNumber": 0, "AdditionalFields": { "VoucherId": "MPV-0001" }, "ExternalIdentifier": [] } ], "Payments": [ { "Amount": 100.00, "CurrencyIsoCode": "EUR", "UniqueReadablePaymentIdentifier": "CASH", "caption": "Cash+Euro", "AdditionalFields": {}, "PaymentType": 0, "ExternalIdentifier": [] } ], "FiscalAdditionalFields": {} }
In this example, the position "Deposit via Loyalty Card" is marked as a multi-purpose voucher. The payment is made in cash (100 EUR), and no VAT rate is applied.
The following elements are crucial:
JSON Element | Meaning |
"BusinessTransactionType": "[4] = MultiPurposeVoucher" |
Marks the business transaction as the sale of a multi-purpose voucher |
"AdditionalFields": { "VoucherId": "MPV-0001" } | Establishes the technical connection to the original loading process |
2. Redemption via the Customer Card
The second receipt shows the sale of goods (e.g., flowers), which are now paid partly using the previously loaded credit and partly in cash.
{ "UniqueClientId": "2a296a14-f644-4f3f-9ea2-d3f00a3b587c", "AdditionalFields": {}, "DocumentGuid": "4dc6f469-4481-4ae3-9b7e-f9b729901698", "DocumentId": "4dc6f469-4481-4ae3-9b7e-f9b729901698", "CreateDate": "2025-03-28T12:32:28.4312186+01:00", "BookDate": "2025-03-28T12:32:28.4322612+01:00", "DocumentNumber": "001", "DocumentType": "[0] = Receipt", "User": { "Id": "123", "Caption": "TestUser" }, "fiscalDocumentNumber": "9", "fiscalDocumentStartTime": 1743161104, "fiscalDocumentRevision": 1, "Positions": [ { "ItemCaption": "Flower green", "ItemShortCaption": null, "Discounts": [], "Type": 0, "UseSubItemVatCalculation": true, "SubItems": null, "InHouse": false, "Quantity": 9.0, "QuantityUnit": null, "ItemId": "000714", "BaseNetValue": 32.52, "BaseGrossValue": 38.70, "BaseTaxValue": 6.18, "GTIN": null, "BusinessTransactionType": 0, "VatIdentification": 1, "VatPercent": 19.0, "NetValue": 32.52, "GrossValue": 38.70, "TaxValue": 6.18, "AccountingIdentifier": null, "PositionNumber": 0, "PositionReference": null, "CancellationPosition": false }, { "ItemCaption": "Wedding bouquet", "ItemShortCaption": null, "Discounts": [], "Type": 0, "UseSubItemVatCalculation": true, "SubItems": null, "InHouse": false, "Quantity": 3.0, "QuantityUnit": null, "ItemId": "001180", "BaseNetValue": 57.48, "BaseGrossValue": 68.40, "BaseTaxValue": 10.92, "GTIN": "8718274490558", "BusinessTransactionType": 0, "VatIdentification": a1, "VatPercent": 19.0, "NetValue": 57.48, "GrossValue": 68.40, "TaxValue": 10.92, "AccountingIdentifier": null, "PositionNumber": 1, "PositionReference": null, "CancellationPosition": false } ], "Payments": [ { "Amount": 100.00, "PaymentType": "MultiPurposeVoucher", "CurrencyIsoCode": "EUR", "Caption": "Loyalty Card", "UniqueReadablePaymentIdentifier": "MPV-0001", "VatIdentification": 5, "TaxValue": 0.0, "VatPercent": 0.0, "AdditionalFields": { "VoucherId": "MPV-0001" } }, { "Amount": 7.10, "PaymentType": "cash", "CurrencyIsoCode": "EUR", "Caption": "Cash+Euro", "UniqueReadablePaymentIdentifier": "CASH", "ForeignAmount": 0.0, "ForeignAmountExchangeRate": 0.0 } ] }
Only at this moment, when redeeming through the purchase of goods, does the taxable transaction occur and the VAT becomes due. The payment is made partly via the multi-purpose voucher (customer card) and partly in cash. In this scenario, the previously loaded amount (first example) is now actually used, which becomes relevant for VAT purposes at the moment of redemption.
The following elements are crucial:
JSON Element | Meaning |
"PaymentType": "[4] = "MultiPurposeVoucher" | Identifies the payment as redemption of a multi-purpose voucher (e.g., customer card) |
"UniqueReadablePaymentIdentifier": "MPV-0001" | Unique identifier for the payment method, which in this case identifies the multi-purpose voucher |
VatIdentification": 5 & "VatPercent": 0.0 | Indicate that no VAT applies to the voucher redemption itself |
"AdditionalFields": { "VoucherId": "MPV-0001" } | Establishes the connection to the original loading process |
Important Implementation Notes
When implementing multi-purpose vouchers or payments with customer cards in the POS system, the following points should be considered:
- For loading the customer card:
- The business transaction must be marked as a multi-purpose voucher (BusinessTransactionType = 4)
- The voucher ID must be stored in the "AdditionalFields" field with the key "VoucherId"
- For redeeming the credit:
- The same voucher ID must be used in the payment under "UniqueReadablePaymentIdentifier" and AdditionalFields
- The VAT rate is applied to the sold goods
- The redemption is marked as PaymentType: "[4] = MultiPurposeVoucher"
Comments
0 comments
Please sign in to leave a comment.