Skip to main content

What is the fiscalisation queue?

Every time a sale is completed at the POS, DishInk creates a fiscalisation job — a record that needs to be submitted to ZRA. The Fiscalisation Queue tab shows the live status of all these jobs. The queue updates in real time. You can watch jobs flip from Pending to Success as DishInk processes them in the background. No page refresh needed.
Fiscalisation Queue

The Fiscalisation Queue tab showing live job status

Job statuses

How the queue works

When a cashier completes a payment, DishInk immediately attempts to fiscalise the sale with ZRA. The outcome depends on whether ZRA is reachable at that moment.
The entire process completes before the receipt finishes printing. The cashier and customer see no delay.

Retry behaviour

Failed jobs retry automatically. The wait time between retries increases exponentially so DishInk does not hammer ZRA during an outage: A random ±20% variation is added to each wait time. This prevents all restaurants from retrying ZRA simultaneously during a widespread outage.

Summary tiles

The top of the Fiscalisation Queue tab shows four counters that update in real time:

Pending

Jobs waiting to be sent to ZRA. A non-zero count during normal operations usually means ZRA is briefly slow or unreachable.

Processing

Jobs actively being submitted right now. This typically shows 0 or 1.

Failed

Jobs that failed and are waiting for their next automatic retry. Will clear on its own unless the underlying issue is permanent.

Success Today

Jobs successfully fiscalised today. This is your count of legally compliant receipts for the day.

Backlog warning

If the oldest pending job is more than 10 minutes old, DishInk displays a Backlog Building warning banner showing how old the oldest job is. What to check when you see this:
1

Check your internet connection

Confirm the device running DishInk has a working internet connection. Try opening a website in the browser.
2

Check ZRA service status

ZRA’s Smart Invoice service occasionally experiences downtime. Check ZRA’s official channels or contact their support team to confirm whether there is a known outage.
3

Check device credentials

Go to the Devices tab. If any device shows an Error status or has a red error message, the credentials may have been suspended by ZRA. This will cause all jobs for that device to fail.
4

Wait and monitor

If ZRA is experiencing downtime, all you can do is wait. The backlog will clear automatically once ZRA is reachable. No data is lost.

Manually retrying a job

For jobs in Failed or Dead status that you want to retry immediately:
  1. Click the job row to expand it
  2. Read the error message carefully
  3. Fix the underlying issue if needed (e.g. check device credentials)
  4. Click Retry Now
The job resets to Pending status with a next_retry_at of now, so the worker picks it up on its next cycle.
Only owners and managers can manually retry jobs. Regular staff can view the queue but cannot take action.

Understanding error messages

Network errors

network: fetch failed network: VSDC HTTP 503 text ZRA’s servers were unreachable or returned a server error. These are temporary. The job will retry automatically.

ZRA rejection errors

ZRA 894: Duplicate invoice number ZRA 881: Invalid item classification ZRA 882: TPIN mismatch ZRA 921: Device not registered or suspended text

Configuration errors

not_configured: VSDC endpoint not configured endpoint_not_configured: no endpoint set text The VSDC container for this restaurant has not been set up yet. Contact DishInk support.

Job details panel

Clicking any job row expands a detail panel showing:
string
Internal reference. Provide this to DishInk support when reporting an issue.
string
The first 8 characters of the device UUID. Identifies which POS terminal created this job.
string
The first 8 characters of the POS transaction UUID. Links this job to the sale record.
timestamp
When the job was created — matches the time of the sale.
timestamp
When DishInk last tried to submit this job to ZRA.
timestamp
When the next automatic retry will happen. Only shown for Failed jobs.
string
The ZRA result code or internal error kind.
string
The full error message from ZRA or from the network layer.
ZRA’s own guidance states that invoices should not be issued when the VSDC is offline for an extended period. Receipts showing PENDING ZRA SYNC are not yet legally complete tax invoices.
In practice DishInk handles brief outages gracefully — a few minutes of ZRA unavailability is common and the queue handles it transparently. For extended outages (hours), consider:
  • Informing customers their receipt will be updated once connectivity is restored
  • Keeping a note of which transactions are in the queue so you can follow up
Once the queue clears and jobs succeed, the full fiscal details (receipt number, signature, QR code) are stored against every transaction in DishInk and can be reprinted at any time.

How to reprint delayed receipts

When a previously queued job successfully processes in the background, DishInk automatically alerts the cashier so they can print the official copy.
  1. Go to POS → Transactions (the transaction history panel).
  2. Look for transactions marked with a green ✓ FISCAL RECEIPT READY badge.
  3. Click the 🧾 Reprint Fiscal button on that transaction.
Expanding the transaction row will also display a message explaining that the receipt was originally printed locally and is now ready for an official fiscal reprint. This ensures your customers can always receive a legally valid tax invoice, even if the network was down at the exact moment they paid.

Realtime updates

The Fiscalisation Queue updates automatically without page refresh. DishInk uses Supabase Realtime to listen for changes to the job queue — when the background worker processes a job, the status change appears on screen within a second or two. You do not need to click Refresh to see the current state.

ZRA Integration

Device setup and initialization.

Receipt Format

What appears on a ZRA-compliant tax invoice.

FAQ

Common questions and troubleshooting.

Overview

Back to Smart Invoice overview.
Last modified on August 20, 2026