Digital signature – why a sale can never be changed
Every sale in Cmerce is digitally signed and linked to the sale before it. Here we explain why, what is signed, and what it means for you when something has been rung up wrongly.
When a sale is completed in Cmerce, it gets a digital signatur (digital signature) – a kind of electronic seal. The signature links the sale to the sale before it, so all the sales on a register form a chain. If someone changes a sale afterwards, the seal no longer fits, and the whole chain after that sale becomes invalid. That is why a completed sale can never be changed – only corrected with a new sale or a return.
How does it work?
Imagine each sale is written on a page in a ledger, and at the bottom of each page is a seal made from:
- the date and time of the sale
- the transaction number
- the amount with and without VAT
- the seal from the previous page
Because each seal builds on the one before, all the pages hang together. If someone changes the amount on an old page, its seal no longer matches – and nor do any of the seals after it. Anyone with the public key can check this, including Skatteetaten.
How Cmerce does it
- Every transaction is signed. Sales, returns, credit sales, training sales – everything written as a transaction at the till gets its signature when it is completed.
- One chain per register. Each till has its own chain. The first transaction on a register starts the chain.
- To Skatteetaten's specification. Cmerce uses the signature method Skatteetaten has described for cash register systems (RSA with a 1024-bit key and SHA-1), and signs exactly the fields the specification names.
- One key for the whole product. The specification says the supplier must use one key for the product, not one per customer. The private key is held by Cmerce and is never stored with the shop. The public key, used to check the signatures, has been filed with the produkterklæring (product declaration).
- Can be checked independently. The signatures are included in the SAF-T file. Skatteetaten can check them with its own tool, without asking Cmerce.
- Extra protection for the journal and Z-reports. In addition to the mandatory signature on transactions, Cmerce also signs and chains every entry in the electronic journal and every Z-report. The chains are checked automatically every night.
What does this mean for you?
You notice nothing of the signing day to day – it happens automatically and cannot be switched off. But it explains why some things are impossible in Cmerce:
| You want to … | It is not possible, because … | Do this instead |
|---|---|---|
| Correct the price on a completed sale | The sale is signed and locked | Return the item and sell it again at the right price. See Returns and refunds. |
| Delete a sale rung up by mistake | It would break the chain | Return the sale. Both appear in the journal. |
| Change the payment method afterwards | The payment method is part of the registered sale | Correct it with a return and a new sale. If you are unsure how the mistake should be documented, talk to your accountant. |
| Change an amount on a Z-report | The Z-report is also signed and chained | Explain the difference in the daily settlement and agree the booking with your accountant. |
In short
- Every sale is digitally signed and linked to the sale before it, per register.
- If a sale is changed afterwards, the chain breaks – and Skatteetaten can see it.
- Cmerce follows Skatteetaten's specification and uses one product key that Cmerce manages.
- Mistakes are always corrected with a new transaction, such as a return – never by changing the old sale.