How it works
How SoftSDC signs, stores, reports and reconciles fiscal invoices with TaxCore, and why accurate time and the secure element matter.
SoftSDC is a service that runs on your device. It works for one POS only. The POS can run on the same device (phone, tablet or computer) or on a different one. They talk through an API that exchanges JSON messages over HTTP. The API reference describes every request.
SoftSDC follows the technical specification for an E-SDC in the fiscal system powered by TaxCore v3.
The secure element
To create fiscal invoices, SoftSDC needs a smart card with a secure element (SE), issued by your Tax Authority.
When SoftSDC is configured, it reads these details from the digital certificate on the SE:
- Taxpayer identification number (TIN)
- UID of the secure element
- Business name and shop name
- Shop or head office address and district, as printed on the invoice
SoftSDC uses the SE certificate (stored in the PKI applet) to authenticate with the Tax Authority and get an authentication token. It uses that token for every call to the Tax Authority API.
Operations between SoftSDC and the SE do not slow down normal POS work. If you switch secure elements, SoftSDC does not stop a remote or local audit that is in progress.
How a receipt is fiscalized
When the cashier finishes a receipt, the POS sends the invoice data to SoftSDC. Fiscalization then runs in five steps.
Signing
SoftSDC checks the request and signs the receipt with the secure element in the card reader.
SoftSDC calculates taxes from the rates that match the tax labels sent by the POS. It rounds all amounts to 4 decimal places using round half up. It rejects tax labels that are not official.
Temporary storage
SoftSDC saves the receipt in permanent memory, which keeps data when the device is off. The SE adds the receipt amount to the total of unconfirmed receipts.
The home screen shows this total.
Reporting to the Tax Authority
If the device is online, SoftSDC reports the receipt to the Tax Authority. If not, it keeps trying until it succeeds.
After reporting, the receipt is visible on the Tax Authority portal. It stays on the device and in the unconfirmed total until the next step.
Reconciliation
About every 15 to 20 minutes, when online, SoftSDC reconciles reported receipts with TaxCore.
For each receipt that TaxCore confirms, SoftSDC deletes it from permanent memory and the SE removes its amount from the unconfirmed total. SoftSDC needs a proof of audit (POA) before it clears memory.
Confirmation
When all receipts are confirmed, the unconfirmed amount on the home screen shows 0.00. This usually happens within 15 to 20 minutes after the last receipt.
Invoice types
SoftSDC signs and transfers internal data for every receipt type:
| Code | Type |
|---|---|
| N | Normal |
| C | Copy |
| T | Training |
| P | Proforma |
| A | Advance |
Each signed invoice includes a unique URL. The POS turns it into a QR code so anyone can verify the receipt, as the regulation requires.
Online and offline mode
SoftSDC can issue invoices with or without an internet connection. Offline invoices wait in permanent memory until they can be sent.
Storage for offline work
An invoice is 20 to 200 kB, depending on the number of items. For each day offline, keep this much free space on the system drive between audits:
| Standard invoices per day (up to 20 items each) | Space needed per day |
|---|---|
| 10 | 2 MB |
| 100 | 20 MB |
| 1,000 | 200 MB |
The system requirements list the minimum free storage for each platform.
SoftSDC never overwrites or erases audit packages until a proof of audit (POA) approves it.
Background processes
While it runs, SoftSDC keeps doing these tasks.
Commands from the Tax Authority
SoftSDC processes commands received from the Tax Authority server, or locally from a drive:
- Configure time server URL
- Set tax rates (sent during initialization or when taxes change, with the date and time they apply from)
- Update verification URL
- Proof of audit
SoftSDC processes commands in the order they arrive. Commands take priority over a local audit.
Time synchronization
SoftSDC syncs date and time with the NTP server named in the Tax Authority command.
Audit
- SoftSDC keeps sending audit packages to the Tax Authority server.
- It sends proof of audit requests to the SE and the Tax Authority server.
- It tells the Tax Authority server when it is online.
When receipts cannot be confirmed
TaxCore cannot reconcile receipts if an earlier receipt is missing. In normal use this never happens. It can happen if a receipt is signed (step 1) but not saved (step 2), for example when:
- The device fails.
- The device shuts down between the two steps, because the user turns it off, the battery runs out or the power fails.
- The card reader reports an error even though the card signed the receipt.
If this happens:
- Later receipts are not confirmed, and the unconfirmed total keeps growing.
- SoftSDC still reports every receipt to the Tax Authority.
- You can still see all receipts on the TaxCore portal.
- You can keep working as normal.
TaxCore plans changes to prevent this in most cases.
Why accurate time matters
Correct fiscalization depends on the device clock showing the right time.
Every PC has a hardware real-time clock (RTC). It runs all the time, from the same power source as the BIOS, and sets the system clock at startup. It should not drift more than 3 minutes per year at 20 °C.
Windows and Android can sync time over the internet. If your device is only online now and then, check the clock regularly.
SoftSDC also runs its own checks. For example, it checks that the previous receipt is not newer than the current time, and that the certificate is valid for the current date.
Never change the date or time
Do not change the date and time settings on a device that runs SoftSDC. Invoices with a wrong date or time can have legal consequences, and SoftSDC may sign incorrectly or stop signing.
Moving receipts without internet
If the point of sale is offline for a long time, you can move unconfirmed receipts on a USB drive:
The full procedure, including commands and confirmations, is in local audit.
Next steps
Quick start
Set up SoftSDC in six steps. Check requirements, get a trial or license, install, connect your card reader, activate and connect your POS.
System requirements
What you need to run SoftSDC on Windows or Android, including network access, card reader, smart card, time settings and firewall rules.