Migration Guide
Mapping
Retailer ($.attributes.retailer
)
Retailer (v2020-02)
{
"name": "ACME Global",
"branchName": "Wien Marxergasse",
"branchId": "85",
"legalName": "ACME GmbH",
"emailAddress": "wien1@acme.at",
"websiteURL": "https://acme.at",
"phoneNumber": "+43 660 1234567",
"vatId": "ATU88888888",
"postalAddress": {
/*...*/
},
"meta": {}
}
Receipts (v2020-02) | Sales (v2022-03-07) |
---|---|
$.attributes.retailer.name | $.attributes.retailer.name |
Not supported | $.attributes.retailer.brand |
$.attributes.retailer.branchId | $.attributes.retailer.branch.branchId |
$.attributes.retailer.branchName | $.attributes.retailer.branch.name |
$.attributes.retailer.postalAddress | $.attributes.retailer.branch.address |
Combined in $.attributes.retailer | $.attributes.retailer.branch.contact |
$.attributes.retailer.legalName | $.attributes.retailer.companyName |
$.attributes.retailer.emailAddress | $.attributes.retailer.contact.email |
$.attributes.retailer.websiteURL | $.attributes.retailer.contact.website |
$.attributes.retailer.phoneNumber | $.attributes.retailer.contact.phoneNumber |
$.attributes.retailer.vatId | $.attributes.retailer.taxId |
Combined in $.attributes.retailer.postalAddress | $.attributes.retailer.address |
Customer ($.attributes.customer
)
Customer (v2020-02)
{
"customerId": "8e561e73-4664-56d6-a0ca-23a9d97e48b2",
"employeeId": "908f3317-c0da-4eb7-91d8-47182f465d0b",
"uid": "1673197c-5c8c-4148-99d1-f9bdb61af284",
"awi": "123456678",
"oti": "AZ6275cq1J",
"gs1_128": "Kassa 1",
"eid": "0hpThs_iew3D"
}
Receipts (v2020-02) | Sales (v2022-03-07) |
---|---|
$.attributes.customer.customerId | $.attributes.customer.customerId |
No supported | $.attributes.customer.loyaltyCardNumber |
$.attributes.customer.employeeId | $.attributes.customer.employeeId |
$.attributes.customer.uid | $.attributes.customer.warrifyUserId |
Not supported | $.attributes.customer.taxId |
Not supported | $.attributes.customer.address |
Not supported | $.attributes.customer.contact |
Not supported | $.attributes.customer.fullName |
Not supported | $.attributes.customer.givenName |
Not supported | $.attributes.customer.familyName |
Not supported | $.attributes.customer.locale |
$.attributes.customer.awi | Sent via the WarrifyCard Extension |
$.attributes.customer.oti | Sent via the WarrifyCard Extension |
$.attributes.customer.gs1_128 | Sent via the WarrifyCard Extension |
$.attributes.customer.eid | Sent via the WarrifyCard Extension |
$.attributes.customer.* | $.attributes.customer.meta |
Line Items ($.attributes.lineItems
)
LineItem (v2020-02)
{
"commonName": "iPhone X 64GB",
"description": "A smartphone packed with the new A11 Bionic chip with a 64‑bit architecture",
"storageLocationDescriptor": "HL00700000009",
"GTIN": {
"name": "GTIN-13",
"value": "123456789012"
},
"quantity": {
"value": 1,
"unit": "PCS"
},
"serialNumbers": ["490154203237518"],
"returned": false,
"VAT": {},
"articleId": "A-1234",
"unitPriceAfterTaxesInCents": 84999,
"beforeTaxesInCents": 70833,
"afterTaxesInCents": 84999,
"originalPriceInCents": 99999,
"discounts": [],
"meta": {}
}
Receipts (v2020-02) | Sales (v2022-03-07) |
---|---|
Not supported | $.attributes.lineItems[*].lineItemId |
$.attributes.lineItems[*].commonName | $.attributes.lineItems[*].name |
$.attributes.lineItems[*].description | $.attributes.lineItems[*].description |
Not supported | $.attributes.lineItems[*].sku |
Not supported | $.attributes.lineItems[*].plu |
$.attributes.lineItems[*].storageLocationDescriptor | No longer officially supported (can be sent in $.attributes.lineItems[*].meta ) |
$.attributes.lineItems[*].GTIN | $.attributes.lineItems[*].gtin |
$.attributes.lineItems[*].quantity | $.attributes.lineItems[*].quantity |
$.attributes.lineItems[*].serialNumbers | No longer officially supported (can be sent in $.attributes.lineItems[*].meta ) |
$.attributes.lineItems[*].returned | $.attributes.lineItems[*].returned |
$.attributes.lineItems[*].VAT | $.attributes.lineItems[*].taxes |
$.attributes.lineItems[*].articleId | $.attributes.lineItems[*].articleId |
$.attributes.lineItems[*].unitPriceAfterTaxesInCents | $.attributes.lineItems[*].grossUnitPrice |
$.attributes.lineItems[*].beforeTaxesInCents | $.attributes.lineItems[*].netTotal |
$.attributes.lineItems[*].afterTaxesInCents | $.attributes.lineItems[*].grossTotal |
$.attributes.lineItems[*].originalPriceInCents | $.attributes.lineItems[*].baseGrossTotal |
Not supported | $.attributes.lineItems[*].totalTax |
$.attributes.lineItems[*].discounts | $.attributes.lineItems[*].discounts |
Taxes ($.attributes.VATs
)
VAT (v2020-02)
{
"taxClass": "normal",
"percentage": 20,
"amountInCents": 14166,
"beforeTaxesInCents": 70833,
"afterTaxesInCents": 84999
}
Receipts (v2020-02) | Sales (v2022-03-07) |
---|---|
Not supported | $.attributes.taxes[*].taxType |
Not supported | $.attributes.taxes[*].code |
$.attributes.VATs[*].taxClass | No longer enforced. Instead a custom code can be sent and the percentage |
$.attributes.VATs[*].percentage | $.attributes.taxes[*].percentage |
$.attributes.VATs[*].amountInCents | $.attributes.taxes[*].taxAmount |
$.attributes.VATs[*].beforeTaxesInCents | $.attributes.taxes[*].netAmount |
$.attributes.VATs[*].afterTaxesInCents | $.attributes.taxes[*].grossAmount |
Payments ($.attributes.payments
)
Receipts (v2020-02) | Sales (v2022-03-07) |
---|---|
$.attributes.payments[*].paymentType | $.attributes.payments[*].paymentMethod |
$.attributes.payments[*].paidAmountInCents | $.attributes.payments[*].amount |
$.attributes.payments[*].paidAmountInCents | $.attributes.payments[*].foreignAmount |
$.attributes.payments[*].ISOCurrencyCode | Each monetary value (Money) has its own currency set |
$.attributes.payments[*].exchangeRate | No longer supported |
$.attributes.payments[*].localCurrencyAmountInCents | $.attributes.payments[*].amount |
Cash
CashPayment (v2020-02)
{
"paymentType": "CASH",
"paidAmountInCents": 84999,
"handedAmountInCents": 100000,
"meta": {}
}
Receipts (v2020-02) | Sales (v2022-03-07) |
---|---|
$.attributes.payments[*].handedAmountInCents | $.attributes.payments[*].handed |
Not Supported | $.attributes.payments[*].returned |
Card
Receipts (v2020-02) | Sales (v2022-03-07) |
---|---|
$.attributes.payments[*].cardApplicationId | $.attributes.payments[*].applicationId |
$.attributes.payments[*].cardType | $.attributes.payments[*].card.brand |
$.attributes.payments[*].maskedCardNumber | $.attributes.payments[*].card.lastFour |
Not supported | $.attributes.payments[*].card.issuerId |
Not supported | $.attributes.payments[*].card.expiryDate |
Not supported | $.attributes.payments[*].card.sequenceNumber |
$.attributes.payments[*].transactionLocalDateTime | $.attributes.payments[*].transactionTimestamp |
$.attributes.payments[*].paymentTerminalId | $.attributes.payments[*].terminalId |
$.attributes.payments[*].transactionUnixTimeStamp | $.attributes.payments[*].transactionTimestamp |
$.attributes.payments[*].paymentReference | No longer supported |
$.attributes.payments[*].paymentReferenceNumber | $.attributes.payments[*].referenceNumber |
$.attributes.payments[*].authorizationCode | $.attributes.payments[*].authorizationCode |
$.attributes.payments[*].authorizationMethodType | $.attributes.payments[*].authorizationMethodType |
$.attributes.payments[*].transactionId | $.attributes.payments[*].transactionId |
$.attributes.payments[*].contactless | $.attributes.payments[*].entryMethod |
Voucher
Receipts (v2020-02) | Sales (v2022-03-07) |
---|---|
$.attributes.payments[*].description | $.attributes.payments[*].description |
$.attributes.payments[*].voucherCode | $.attributes.payments[*].voucherCode |
Online
Receipts (v2020-02) | Sales (v2022-03-07) |
---|---|
$.attributes.payments[*].paymentProvider | $.attributes.payments[*].provider |
$.attributes.payments[*].transactionId | $.attributes.payments[*].transactionId |
$.attributes.payments[*].transactionUnixTimeStamp | $.attributes.payments[*].transactionTimestamp |
$.attributes.payments[*].transactionLocalDateTime | $.attributes.payments[*].transactionTimestamp |
Other
Receipts (v2020-02) | Sales (v2022-03-07) |
---|---|
$.attributes.payments[*].description | $.attributes.payments[*].description |
Discounts ($.attributes.discounts
)
Discount (v2020-02)
{
"amountInCents": 15000,
"percentage": 15,
"description": "Black Friday Sale",
"discountCode": "KZAB2rMB",
"meta": {}
}
Receipts (v2020-02) | Sales (v2022-03-07) |
---|---|
$.attributes.discounts[*].amountInCents | $.attributes.discounts[*].totalGrossAmount |
Not supported | $.attributes.discounts[*].unitGrossAmount |
Not supported | $.attributes.discounts[*].quantity |
$.attributes.discounts[*].percentage | $.attributes.discounts[*].percentage |
$.attributes.discounts[*].description | $.attributes.discounts[*].description |
$.attributes.discounts[*].discountCode | $.attributes.discounts[*].discountCode |
Attachments ($.attributes.attachments
)
Attachment (v2020-02)
{
"contentType": "application/pdf",
"filename": "Receipt_6449_7362.pdf",
"type": "receipt",
"content": {
"base64": "d2FycmlmeSdzIGRpZ2l0YWwgcmVjZWlwdHMgcm9jaw=="
}
}
Attachments need to be uploaded before creating a sale. Hence, there is no direct mapping for the attachments. Instead, the attachments upload request returns a blobUrn
and a blobVersion
as response headers, which need to be used when creating a sale with attachments.
Receipts (v2020-02) | Sales (v2022-03-07) |
---|---|
$.attributes.attachments[*].contentType | Use Content-Type header when uploading the attachment |
$.attributes.attachments[*].contentLanguage | Use Content-Language header when uploading the attachment |
$.attributes.attachments[*].filename | Defined as a path parameter during the upload of the attachments |
$.attributes.attachments[*].type | No longer needed |
$.attributes.attachments[*].content | No longer directly supported as attachments need to be uploaded before creating a sale |
$.attributes.attachments[*].encryption | No longer directly supported as attachments need to be uploaded before creating a sale |
Misc
Receipt (v2020-02)
{
"retailer": {},
"customer": {},
"lineItems": [],
"freeText": "Stammkunden-Punkte: 1234",
"footerText": "Vielen Dank für Ihren Einkauf!",
"VATs": [],
"payments": [],
"discounts": [],
"cashRegisterId": "0856001",
"cashDrawerId": "1287346",
"receiptSequenceNumber": "0808560002000201912147683",
"ISOCurrencyCode": "EUR",
"localDateTime": "2019-12-14T17:37:49",
"receiptLanguage": "de",
"beforeTaxesInCents": 70833,
"afterTaxesInCents": 84999,
"totalTaxesInCents": 14166,
"unixTimeStamp": 1528290969,
"fiscalSignature": "_R1-AT0_0856001_0808560002000201912147683_2019-12-14T17:37:49_989,99_0,00_0,00_0,00_0,00_79i+IjcrAOw=_U:ATU999999999-2_+1l2cMqOuVw=_j87cj3w8OJ5VuCg2OULi5R70g1Lf80shyCim+TCuuAQ96PQcJUoquy17HPiL1675o7FiEknf1dBFmSVRL/mgrg==",
"testing": true,
"attachments": [],
"identificationCode": {},
"externalId": "d80193e4-c6e6-4e25-878a-7aa152158c84",
"original": true,
"cashierId": "LMhvAnJ",
"warrantyHint": "string"
}
Receipts (v2020-02) | Sales (v2022-03-07) |
---|---|
Not supported | $.attributes.country |
Not supported | $.attributes.locale |
Not supported | $.attributes.version |
$.attributes.freeText | Sent in $.attributes.sections |
$.attributes.footerText | Sent in $.attributes.sections |
$.attributes.cashRegisterId | $.attributes.cashRegister.cashRegisterId |
$.attributes.cashDrawerId | $.attributes.cashRegister.cashDrawerId |
$.attributes.receiptSequenceNumber | $.attributes.receipt.receiptId |
Not supported | $.attributes.order.orderId |
$.attributes.ISOCurrencyCode | Each monetary value (Money) has its own currency set |
$.attributes.localDateTime | $.attributes.timestamp |
$.attributes.receiptLanguage | $.attributes.locale |
$.attributes.beforeTaxesInCents | $.attributes.totals.netAmount |
$.attributes.afterTaxesInCents | $.attributes.totals.grossAmount |
$.attributes.totalTaxesInCents | $.attributes.totals.taxAmount |
$.attributes.unixTimeStamp | $.attributes.timestamp |
$.attributes.fiscalSignature | Sent in RKSV Extension |
$.attributes.tseInformation | Sent in KassenSichV Extension or DSFinVK Extension |
$.attributes.testing | $.attributes.testing |
$.attributes.identificationCode | Sent in Return Code Extension |
$.attributes.externalId | $.attributes.externalId |
$.attributes.original | TODO |
$.attributes.cashierId | $.attributes.cashRegister.cashierId |
$.attributes.warrantyHint | Sent in EU Directive 2019-771 Extension |
Address
PostalAddress (v2020-02)
{
"streetAddress": "Marxergasse 4",
"localizedCityName": "Wien",
"postalCode": "1030",
"localizedCountryName": "Österreich",
"ISOCountryCode": "AT",
"postOfficeBoxNumber": null,
"localizedAddressRegion": "Wien",
"meta": {}
}
Receipts (v2020-02) | Sales (v2022-03-07) |
---|---|
streetAddress | line1 |
Not supported (combined in streetAddress ) | line2 |
localizedCityName | city |
postalCode | postalCode |
localizedCountryName | countryName |
ISOCountryCode | country |
postOfficeBoxNumber | postOfficeBoxNumber |
localizedAddressRegion | region |
Not supported | coordinates |