Error Codes

This page is the complete reference of the error codes returned by the FisCool driver, across all interfaces (HTTP, WebSocket, INP execution errors).

Error Response Format

All APIs return errors in a consistent JSON format:

{
  "status": 500,                             // application-specific error code (positive integer)
  "error": "Lipsă hârtie în imprimantă.",    // human-readable message (Romanian)
  "receipt": "..."                           // OPTIONAL: present only on some POS errors
}
  • The status field in the body is the application error code documented below; the HTTP status code of the response follows REST conventions (see the mapping on the HTTP API page).
  • The optional receipt field appears on POS transaction errors that produced a printable slip (e.g. a declined sale).

Application Errors

Errors raised by the driver itself - before or around device communication.

CodeError TypeDescriptionHTTP StatusCommon Causes
400ConfigConfiguration/validation error in the request or device setup400Invalid parameters, payments ≠ total, inactive VAT rate
404DeviceNotFoundThe specified device could not be found404Unknown device_id, device deleted
408TimeoutThe operation timed out408Device did not answer in time
1000InternalInternal driver error500Unexpected runtime errors
1001PersistenceDisk read/write error500File system errors, permissions, disk full
1002SerializationData (de)serialization error500Malformed JSON, unexpected data format
1003ApiServerHTTP API server error500Server startup/runtime issues
1004ConnectionConnection error before device communication503TCP refused, serial port unavailable, device offline
1005InternetInternet connectivity issue502No internet, DNS failure
1006UpdateUpdate process error503Update server unavailable, corrupted files
1007PlatformPlatform-specific error500OS feature unavailable
1008SecretDataCorruptedProtected data has been tampered with500Configuration file corruption
1009UnlicensedDevice is not licensed403Licence missing or expired for this device
1010LicenseCorruptionLicence data has been tampered with403Licence file corruption
1011NetworkGeneral network error502Timeouts, connection reset
1012CryptoCryptographic operation error500Encryption/decryption failure, key issues
1013LicenseCheckFailedOnline licence verification failed503Licence server unavailable
1014StartupErrorApplication startup error500Service initialisation failure
1015NotSupportedOperation not supported by this device501Feature not available on the device model (e.g. drawer control)

Fiscal Device Errors (500–599)

Errors reported by the fiscal devices - hardware, state or operational issues. Messages are shown exactly as returned in the error field.

Hardware and State Errors (500–519)

CodeErrorMessageResolution
500NoPaperLipsă hârtie în imprimantă.Load a paper roll
501NearPaperEndRola de hârtie este aproape goală.Replace the paper roll soon
502CoverOpenCapacul imprimantei este deschis.Close the device cover
503PrinterMechanismFailureEroare mecanică imprimantă.Check for obstructions; service may be required
504CutterErrorEroare la tăietorul de hârtie.Clear paper jam, check the cutter
505DeviceBusyDispozitivul este ocupat. Încercați din nou.Wait and retry
506ClockErrorEroare ceas intern dispozitiv.Synchronise the device time; check internal battery
507LowBatteryBaterie descărcată.Connect to power
508GeneralDeviceErrorEroare generală dispozitiv (Cod: n)Check connection; the original device code is included when known
509GeneralDeviceErrorMessagedevice-specific messageThe message text comes directly from the device/driver

Fiscal Memory and Electronic Journal Errors (520–529)

CodeErrorMessageResolution
520FiscalMemoryFullMemoria fiscală este plină.Device replacement required
521FiscalMemoryErrorEroare citire/scriere memorie fiscală.Service required
522FiscalMemoryNearFullMemoria fiscală este aproape plină.Plan device replacement
523EJFullJurnalul electronic este plin.Export/replace the EJ medium
524EJErrorEroare jurnal electronic.Check EJ status; service may be required
525EJNearFullJurnalul electronic este aproape plin.Export EJ data

Operational Errors (530–549)

CodeErrorMessageResolution
530ReceiptOpenExistă deja un bon fiscal deschis. Anulați-l sau finalizați-l.Cancel or finalise the open receipt
531ReceiptNotOpenNiciun bon fiscal deschis pentru această operațiune.Open a receipt first
532DayClosedRaportul Z a fost deja emis. Deschideți o nouă zi fiscală.Start a new fiscal day
533DayNotClosedZiua fiscală nu este închisă (Raport Z neemis).Print the Z report
534DailyLimitReachedLimită zilnică atinsă (details).Print the Z report / wait for the next fiscal day
535TimeNeedsSyncData/ora dispozitivului necesită sincronizare.Synchronise the device clock
536CashLowFonduri insuficiente în casă pentru extragere.Deposit cash or reduce the amount
537InvalidAmountSumă invalidă pentru operațiune (ex: zero).Use a valid amount greater than zero
538NotFiscalizedDispozitivul nu este fiscalizat.Fiscalise via an authorised technician
539DailyReportingRequiredEste necesară emiterea raportului Z.Print the mandatory Z report
540InvalidVatRateCotă TVA invalidă sau inactivă pe dispozitiv.Use a VAT rate active on the device
541OperationNotPermittedOperațiune nepermisă în starea curentă.Check the device state and operation sequence
542BlockingPeriodActiveDispozitiv blocat temporar (ex: 24h fără comunicare).Follow the unblocking procedure
543TooManyArticlesOnReceiptPrea multe articole pe bonul fiscal.Split the transaction across multiple receipts
544ZNeededEste necesar să se tipărească raportul Z.Print the Z report before continuing
545NFReceiptOpenExistă deja un bon nefiscal deschis.Close the open non-fiscal receipt

Command and Syntax Errors (550–559, 599)

CodeErrorMessageResolution
550InvalidCommandComandă invalidă pentru dispozitiv.Use commands supported by the device model
551InvalidSyntaxOrParamSintaxă sau parametru invalid pentru comandă.Check parameter format and values
552WrongOperatorPasswordParolă operator incorectă.Use the correct operator password
599Othermessage (Cod: n)Device-specific error; the original device code is included

POS Terminal Errors (600–611)

Errors specific to POS terminal operations. These may carry the optional receipt field with the terminal slip.

CodeErrorMessageResolution
600PosDeclinedGenericTranzacție POS refuzată.Check the card; try another payment method
601PosDeclinedInsufficientFundsFonduri insuficiente.Customer must use a different card/method
602PosDeclinedCardExpiredCard expirat.Customer must use a valid card
603PosDeclinedIncorrectPinPIN incorect.Retry with the correct PIN
604PosTransactionCancelledTranzacție POS anulată.Cancelled by the customer or terminal
605PosTimeout*timeout message (several variants)Check the terminal connection and retry. Code 605 covers all POS timeout situations (waiting for response, ACK on connection initiation, command ACK, transaction result); the message identifies the exact phase.
606PosCommunicationErrorEroare de comunicație cu terminalul POS.Check cables/network to the terminal
607PosTransactionReversedTranzacție POS inversată (ex: refuz semnătură).Transaction was reversed by the terminal
608PosDeclinedByTerminalTranzacție POS refuzată de terminal (eroare locală).Check the terminal status
609PosSettlementFailedÎnchiderea de zi POS (settlement) a eșuat.Check the terminal and retry the settlement
610PosInvalidResponseDataRăspuns invalid de la terminalul POS.Check terminal firmware; contact support
611PosOperationFailedOperațiune POS eșuată: details.See the message details

Printer Errors (2001–2005)

Errors from the non-fiscal printing subsystem (/printers/print_html and the WebSocket print action).

CodeErrorDescriptionResolution
2001PrinterNotFoundThe specified printer could not be foundCheck printer installation and name
2002TauriApplication framework errorCheck logs; restart the application
2003HtmlRenderingError rendering the HTML contentCheck the HTML validity
2004PrintJobPrint job execution errorCheck printer status and paper
2005ResourceRequired resource not foundCheck resource paths and permissions

Error Handling Best Practices

  • Code ranges: categorise by range:
    • 400, 404, 408: request/configuration errors - fix the request
    • 1000–1015: application errors - check the driver/system state
    • 500–599: fiscal device errors - check the device
    • 600–611: POS errors - handle the transaction state
    • 2001–2005: printer errors - check the printer setup
  • Retry logic:
    • Transient errors (505, 408, 1004, 1005, 605, 606): safe to retry with backoff - but for POS sales always use an Idempotency-Key so a retry cannot double-charge.
    • State errors (530, 531, 532, 544, 545): fix the device state first, then retry.
    • Configuration errors (400, 404, 540, 1009): do not retry without fixing the request/setup.
  • User messaging: the error messages are already user-friendly Romanian text, suitable for direct display.
  • Logging: always log both the code and the full message.

Common Error Scenarios

Receipt Printing
530 (ReceiptOpen)   → cancel/finalise the receipt left open on the device
544 (ZNeeded)       → print the Z report first
400 (Config)        → payments don't match the total, inactive VAT rate, no item lines
1004 (Connection)   → the device is not connected
Device Connectivity
404 (DeviceNotFound)      → wrong device_id / device deleted
1004 (Connection)         → network/serial connection failed
505 (DeviceBusy)          → device responding but busy - retry
509/508 (GeneralError)    → device reachable but reported an error
POS Transactions
600–603 → card/payment problem - customer action required
604     → cancelled - no further action
605–606 → communication problem - check terminal, retry (idempotency!)
609     → settlement failed - check terminal status
Note: the error body may include "receipt" with the decline slip.

Integration Testing

Test your error handling for these critical scenarios:

  • Device disconnected mid-operation
  • Out-of-paper conditions
  • Receipt left open on the device
  • POS terminal communication failures and declines
  • Z report required
  • Licence validation failures