Coduri Eroare

Această pagină este referința completă a codurilor de eroare returnate de driverul FisCool, pe toate interfețele (HTTP, WebSocket, erorile de execuție INP).

Formatul Răspunsului de Eroare

Toate API-urile returnează erorile într-un format JSON consecvent:

{
  "status": 500,                             // cod de eroare specific aplicației (întreg pozitiv)
  "error": "Lipsă hârtie în imprimantă.",    // mesaj lizibil (în română)
  "receipt": "..."                           // OPȚIONAL: prezent doar la unele erori POS
}
  • Câmpul status din corp este codul de eroare al aplicației, documentat mai jos; statusul HTTP al răspunsului urmează convențiile REST (vezi maparea pe pagina API HTTP).
  • Câmpul opțional receipt apare la erorile de tranzacție POS care au produs o chitanță tipăribilă (ex: o vânzare refuzată).

Erori de Aplicație

Erori generate de driver - înainte de sau în jurul comunicării cu dispozitivul.

CodTip EroareDescriereStatus HTTPCauze Frecvente
400ConfigEroare de configurare/validare în cerere sau în configurarea dispozitivului400Parametri invalizi, plăți ≠ total, cotă TVA inactivă
404DeviceNotFoundDispozitivul specificat nu a fost găsit404device_id necunoscut, dispozitiv șters
408TimeoutOperațiunea a expirat408Dispozitivul nu a răspuns la timp
1000InternalEroare internă a driverului500Erori neașteptate la rulare
1001PersistenceEroare de citire/scriere pe disc500Erori de sistem de fișiere, permisiuni, disc plin
1002SerializationEroare de (de)serializare a datelor500JSON malformat, format de date neașteptat
1003ApiServerEroare a serverului API HTTP500Probleme la pornirea/rularea serverului
1004ConnectionEroare de conexiune înainte de comunicarea cu dispozitivul503TCP refuzat, port serial indisponibil, dispozitiv offline
1005InternetProblemă de conectivitate la internet502Fără internet, eroare DNS
1006UpdateEroare în procesul de actualizare503Server de actualizare indisponibil, fișiere corupte
1007PlatformEroare specifică platformei500Funcționalitate OS indisponibilă
1008SecretDataCorruptedDatele protejate au fost alterate500Corupția fișierelor de configurare
1009UnlicensedDispozitivul nu este licențiat403Licență lipsă sau expirată pentru acest dispozitiv
1010LicenseCorruptionDatele de licență au fost alterate403Corupția fișierului de licență
1011NetworkEroare generală de rețea502Timeout-uri, conexiune resetată
1012CryptoEroare de operațiune criptografică500Eșec la criptare/decriptare, probleme cu cheile
1013LicenseCheckFailedVerificarea online a licenței a eșuat503Server de licențe indisponibil
1014StartupErrorEroare la pornirea aplicației500Eșec la inițializarea serviciilor
1015NotSupportedOperațiune nesuportată de acest dispozitiv501Funcție indisponibilă pe modelul de dispozitiv (ex: control sertar)

Erori Dispozitive Fiscale (500–599)

Erori raportate de dispozitivele fiscale - probleme hardware, de stare sau operaționale. Mesajele sunt afișate exact cum sunt returnate în câmpul error.

Erori Hardware și de Stare (500–519)

CodEroareMesajRezolvare
500NoPaperLipsă hârtie în imprimantă.Încărcați o rolă de hârtie
501NearPaperEndRola de hârtie este aproape goală.Înlocuiți rola în curând
502CoverOpenCapacul imprimantei este deschis.Închideți capacul dispozitivului
503PrinterMechanismFailureEroare mecanică imprimantă.Verificați obstrucțiile; poate fi necesar service
504CutterErrorEroare la tăietorul de hârtie.Îndepărtați blocajul de hârtie, verificați cutter-ul
505DeviceBusyDispozitivul este ocupat. Încercați din nou.Așteptați și reîncercați
506ClockErrorEroare ceas intern dispozitiv.Sincronizați ora dispozitivului; verificați bateria internă
507LowBatteryBaterie descărcată.Conectați la alimentare
508GeneralDeviceErrorEroare generală dispozitiv (Cod: n)Verificați conexiunea; codul original al dispozitivului este inclus când e cunoscut
509GeneralDeviceErrorMessagemesaj specific dispozitivuluiTextul mesajului vine direct de la dispozitiv/driver

Erori de Memorie Fiscală și Jurnal Electronic (520–529)

CodEroareMesajRezolvare
520FiscalMemoryFullMemoria fiscală este plină.Este necesară înlocuirea dispozitivului
521FiscalMemoryErrorEroare citire/scriere memorie fiscală.Este necesar service
522FiscalMemoryNearFullMemoria fiscală este aproape plină.Planificați înlocuirea dispozitivului
523EJFullJurnalul electronic este plin.Exportați/înlocuiți suportul JE
524EJErrorEroare jurnal electronic.Verificați starea JE; poate fi necesar service
525EJNearFullJurnalul electronic este aproape plin.Exportați datele JE

Erori Operaționale (530–549)

CodEroareMesajRezolvare
530ReceiptOpenExistă deja un bon fiscal deschis. Anulați-l sau finalizați-l.Anulați sau finalizați bonul deschis
531ReceiptNotOpenNiciun bon fiscal deschis pentru această operațiune.Deschideți mai întâi un bon
532DayClosedRaportul Z a fost deja emis. Deschideți o nouă zi fiscală.Începeți o nouă zi fiscală
533DayNotClosedZiua fiscală nu este închisă (Raport Z neemis).Tipăriți raportul Z
534DailyLimitReachedLimită zilnică atinsă (detalii).Tipăriți raportul Z / așteptați ziua fiscală următoare
535TimeNeedsSyncData/ora dispozitivului necesită sincronizare.Sincronizați ceasul dispozitivului
536CashLowFonduri insuficiente în casă pentru extragere.Introduceți numerar sau reduceți suma
537InvalidAmountSumă invalidă pentru operațiune (ex: zero).Folosiți o sumă validă, mai mare ca zero
538NotFiscalizedDispozitivul nu este fiscalizat.Fiscalizați prin tehnician autorizat
539DailyReportingRequiredEste necesară emiterea raportului Z.Tipăriți raportul Z obligatoriu
540InvalidVatRateCotă TVA invalidă sau inactivă pe dispozitiv.Folosiți o cotă TVA activă pe dispozitiv
541OperationNotPermittedOperațiune nepermisă în starea curentă.Verificați starea dispozitivului și ordinea operațiunilor
542BlockingPeriodActiveDispozitiv blocat temporar (ex: 24h fără comunicare).Urmați procedura de deblocare
543TooManyArticlesOnReceiptPrea multe articole pe bonul fiscal.Împărțiți tranzacția pe mai multe bonuri
544ZNeededEste necesar să se tipărească raportul Z.Tipăriți raportul Z înainte de a continua
545NFReceiptOpenExistă deja un bon nefiscal deschis.Închideți bonul nefiscal deschis

Erori de Comandă și Sintaxă (550–559, 599)

CodEroareMesajRezolvare
550InvalidCommandComandă invalidă pentru dispozitiv.Folosiți comenzi suportate de modelul de dispozitiv
551InvalidSyntaxOrParamSintaxă sau parametru invalid pentru comandă.Verificați formatul și valorile parametrilor
552WrongOperatorPasswordParolă operator incorectă.Folosiți parola de operator corectă
599Othermesaj (Cod: n)Eroare specifică dispozitivului; codul original este inclus

Erori Terminale POS (600–611)

Erori specifice operațiunilor pe terminalele POS. Acestea pot purta câmpul opțional receipt cu chitanța terminalului.

CodEroareMesajRezolvare
600PosDeclinedGenericTranzacție POS refuzată.Verificați cardul; încercați altă metodă de plată
601PosDeclinedInsufficientFundsFonduri insuficiente.Clientul trebuie să folosească alt card/altă metodă
602PosDeclinedCardExpiredCard expirat.Clientul trebuie să folosească un card valid
603PosDeclinedIncorrectPinPIN incorect.Reîncercați cu PIN-ul corect
604PosTransactionCancelledTranzacție POS anulată.Anulată de client sau de terminal
605PosTimeout*mesaj de timeout (mai multe variante)Verificați conexiunea terminalului și reîncercați. Codul 605 acoperă toate situațiile de timeout POS (așteptarea răspunsului, ACK la inițierea conexiunii, ACK de comandă, rezultatul tranzacției); mesajul identifică faza exactă.
606PosCommunicationErrorEroare de comunicație cu terminalul POS.Verificați cablurile/rețeaua către terminal
607PosTransactionReversedTranzacție POS inversată (ex: refuz semnătură).Tranzacția a fost inversată de terminal
608PosDeclinedByTerminalTranzacție POS refuzată de terminal (eroare locală).Verificați starea terminalului
609PosSettlementFailedÎnchiderea de zi POS (settlement) a eșuat.Verificați terminalul și reîncercați închiderea
610PosInvalidResponseDataRăspuns invalid de la terminalul POS.Verificați firmware-ul terminalului; contactați suportul
611PosOperationFailedOperațiune POS eșuată: detalii.Vezi detaliile din mesaj

Erori de Imprimantă (2001–2005)

Erori din subsistemul de tipărire nefiscală (/printers/print_html și acțiunea de tipărire WebSocket).

CodEroareDescriereRezolvare
2001PrinterNotFoundImprimanta specificată nu a fost găsităVerificați instalarea și numele imprimantei
2002TauriEroare a framework-ului aplicațieiVerificați log-urile; reporniți aplicația
2003HtmlRenderingEroare la randarea conținutului HTMLVerificați validitatea HTML-ului
2004PrintJobEroare la execuția lucrării de tipărireVerificați starea imprimantei și hârtia
2005ResourceResursă necesară negăsităVerificați căile resurselor și permisiunile

Bune Practici de Tratare a Erorilor

  • Intervale de coduri: categorisiți după interval:
    • 400, 404, 408: erori de cerere/configurare - corectați cererea
    • 1000–1015: erori de aplicație - verificați starea driverului/sistemului
    • 500–599: erori de dispozitiv fiscal - verificați dispozitivul
    • 600–611: erori POS - tratați starea tranzacției
    • 2001–2005: erori de imprimantă - verificați configurarea imprimantei
  • Logica de reîncercare:
    • Erori tranzitorii (505, 408, 1004, 1005, 605, 606): pot fi reîncercate cu backoff - dar pentru vânzările POS folosiți întotdeauna un Idempotency-Key, ca reîncercarea să nu poată debita dublu.
    • Erori de stare (530, 531, 532, 544, 545): rezolvați mai întâi starea dispozitivului, apoi reîncercați.
    • Erori de configurare (400, 404, 540, 1009): nu reîncercați fără a corecta cererea/configurarea.
  • Mesaje pentru utilizatori: mesajele din error sunt deja text prietenos în română, potrivit pentru afișare directă.
  • Logging: logați întotdeauna atât codul, cât și mesajul complet.

Scenarii Frecvente de Eroare

Tipărirea Bonurilor
530 (ReceiptOpen)   → anulați/finalizați bonul rămas deschis pe dispozitiv
544 (ZNeeded)       → tipăriți mai întâi raportul Z
400 (Config)        → plățile nu corespund totalului, cotă TVA inactivă, fără linii de produs
1004 (Connection)   → dispozitivul nu este conectat
Conectivitatea Dispozitivelor
404 (DeviceNotFound)      → device_id greșit / dispozitiv șters
1004 (Connection)         → conexiunea de rețea/serială a eșuat
505 (DeviceBusy)          → dispozitivul răspunde dar este ocupat - reîncercați
509/508 (GeneralError)    → dispozitivul e accesibil dar a raportat o eroare
Tranzacții POS
600–603 → problemă card/plată - este necesară acțiunea clientului
604     → anulată - nicio acțiune suplimentară
605–606 → problemă de comunicare - verificați terminalul, reîncercați (idempotență!)
609     → închiderea de zi a eșuat - verificați starea terminalului
Notă: corpul erorii poate include "receipt" cu chitanța de refuz.

Testarea Integrării

Testați tratarea erorilor pentru aceste scenarii critice:

  • Dispozitiv deconectat în timpul operațiunii
  • Condiții de lipsă hârtie
  • Bon rămas deschis pe dispozitiv
  • Eșecuri de comunicare și refuzuri ale terminalului POS
  • Raport Z necesar
  • Eșecuri de validare a licenței