Coduri Eroare
Această secțiune oferă o referință comprehensivă a tuturor codurilor de eroare care pot fi returnate de driverul FisCool. Înțelegerea acestor coduri este crucială pentru construirea integrărilor robuste și implementarea gestionării corecte a erorilor.
Format Răspuns Eroare
Toate API-urile returnează erorile într-un format JSON consistent:
{
"status": 500, // Cod eroare specific aplicației
"error": "Lipsă hârtie în imprimantă." // Mesaj eroare prietenos utilizatorului (de obicei română)
}
Notă: Codurile de stare HTTP din antete urmează convențiile REST, în timp ce câmpul status din corpul JSON oferă clasificarea erorilor specifice aplicației.
Erori Aplicație (1000-1999)
Aceste erori apar la nivelul aplicației, înainte de comunicarea cu dispozitivul sau în timpul procesării interne.
| Cod | Tip Eroare | Descriere | Stare HTTP | Cauze Comune |
|---|---|---|---|---|
| 400 | Config | Eroare configurație în cerere sau setare dispozitiv | 400 Bad Request | Configurație dispozitiv invalidă, parametri malformați |
| 404 | DeviceNotFound | Dispozitivul specificat nu poate fi găsit | 404 Not Found | Device_id invalid, dispozitiv neConfigurat, dispozitiv deconectat |
| 1000 | Internal | A apărut o eroare internă de server | 500 Internal Server Error | Erori runtime neașteptate, defecțiuni sistem |
| 1001 | Persistence | Eroare citire din sau scriere pe disc | 500 Internal Server Error | Erori sistem fișiere, probleme permisiuni, disc plin |
| 1002 | Serialization | Eroare serializare sau deserializare date | 500 Internal Server Error | Erori parsare JSON, probleme format date |
| 1003 | ApiServer | Eroare server API HTTP | 500 Internal Server Error | Erori framework Rocket, probleme pornire server |
| 1004 | Connection | Eroare conexiune înainte de comunicarea cu dispozitivul | 503 Service Unavailable | Conexiune TCP eșuată, port serial indisponibil, probleme rețea |
| 1005 | Internet | Problemă conectivitate rețea sau internet | 502 Bad Gateway | Conexiune internet pierdută, rezolvare DNS eșuată |
| 1006 | Update | Eroare în timpul procesului de actualizare | 503 Service Unavailable | Server actualizare indisponibil, fișiere actualizare corupte |
| 1007 | SecretDataCorrupted | Datele secrete au fost compromise | 500 Internal Server Error | Corupție fișier configurație, breșă securitate |
| 1008 | Unlicensed | Dispozitivul nu este licențiat | 403 Forbidden | Licență expirată, cheie licență invalidă |
| 1009 | LicenseCorruption | Datele licenței au fost compromise | 403 Forbidden | Corupție fișier licență, breșă securitate |
| 1010 | Network | Eroare rețea generală | 502 Bad Gateway | Timeout rețea, conexiune resetată |
| 1011 | Crypto | Eroare operațiune criptografică | 500 Internal Server Error | Criptare/decriptare eșuată, probleme chei |
| 1012 | LicenseCheckFailed | Verificarea online a licenței a eșuat | 503 Service Unavailable | Server licență indisponibil, probleme rețea |
| 1013 | StartupError | Eroare în timpul pornirii aplicației | 500 Internal Server Error | Inițializare serviciu eșuată, probleme dependențe |
| 1014 | NotSupported | Operațiunea nu este suportată de dispozitiv | 501 Not Implemented | Funcționalitate nedisponibilă pe modelul dispozitivului, operațiune nesuportată |
Erori Dispozitive Fiscale (500-599)
Aceste erori sunt raportate de dispozitivele fiscale și reprezintă probleme hardware, de stare sau operaționale.
Erori Hardware și Stare (500-519)
| Cod | Eroare | Mesaj Română | Rezoluție |
|---|---|---|---|
| 500 | NoPaper | Lipsă hârtie în imprimantă. | Încărcați rola de hârtie, verificați calea hârtiei |
| 501 | NearPaperEnd | Rola de hârtie este aproape goală. | Înlocuiți rola de hârtie în curând |
| 502 | CoverOpen | Capacul imprimantei este deschis. | Închideți capacul dispozitivului corespunzător |
| 503 | PrinterMechanismFailure | Eroare mecanică imprimantă. | Verificați obstrucțiile mecanice, necesită service |
| 504 | CutterError | Eroare la tăietorul de hârtie. | Îndepărtați blocajul hârtiei, verificați mecanismul tăietor |
| 505 | DeviceBusy | Dispozitivul este ocupat. Încercați din nou. | Așteptați și reîncercați, verificați operațiunile în curs |
| 506 | ClockError | Eroare ceas intern dispozitiv. | Sincronizați ora dispozitivului, verificați bateria internă |
| 507 | LowBattery | Baterie descărcată. | Conectați la alimentare, înlocuiți bateria backup |
| 508 | GeneralDeviceError | Eroare generală dispozitiv | Verificați conexiunea dispozitivului, reporniți dispozitivul |
| 509 | GeneralDeviceErrorMessage | Mesaj eroare specific dispozitivului | Consultați manualul dispozitivului pentru eroarea specifică |
Erori Memorie Fiscală și Jurnal Electronic (520-529)
| Cod | Eroare | Mesaj Română | Rezoluție |
|---|---|---|---|
| 520 | FiscalMemoryFull | Memoria fiscală este plină. | Necesară înlocuirea dispozitivului, contactați autoritățile fiscale |
| 521 | FiscalMemoryError | Eroare citire/scriere memorie fiscală. | Necesită service, posibilă defecțiune hardware |
| 522 | FiscalMemoryNearFull | Memoria fiscală este aproape plină. | Planificați înlocuirea dispozitivului, monitorizați utilizarea |
| 523 | EJFull | Jurnalul electronic este plin. | Exportați și arhivați datele EJ, curățați dacă posibil |
| 524 | EJError | Eroare jurnal electronic. | Verificați starea EJ, poate fi necesar service |
| 525 | EJNearFull | Jurnalul electronic este aproape plin. | Exportați datele EJ regulat, monitorizați spațiul |
Erori Operaționale (530-549)
| Cod | Eroare | Mesaj Română | Rezoluție |
|---|---|---|---|
| 530 | ReceiptOpen | Există deja un bon fiscal deschis. Anulați-l sau finalizați-l. | Anulați sau finalizați bonul curent |
| 531 | ReceiptNotOpen | Niciun bon fiscal deschis pentru această operațiune. | Deschideți un bon nou înainte de a adăuga articole |
| 532 | DayClosed | Raportul Z a fost deja emis. Deschideți o nouă zi fiscală. | Așteptați ziua fiscală următoare sau deschideți zi nouă |
| 533 | DayNotClosed | Ziua fiscală nu este închisă (Raport Z neemis). | Tipăriți raportul Z pentru a închide ziua fiscală |
| 534 | DailyLimitReached | Limită zilnică atinsă | Tipăriți raportul Z, așteptați ziua fiscală următoare |
| 535 | TimeNeedsSync | Data/ora dispozitivului necesită sincronizare. | Sincronizați ora dispozitivului cu ora sistemului |
| 536 | CashLow | Fonduri insuficiente în casă pentru extragere. | Adăugați numerar în sertar sau reduceți suma retragerii |
| 537 | InvalidAmount | Sumă invalidă pentru operațiune (ex: zero). | Folosiți sumă validă mai mare decât zero |
| 538 | NotFiscalized | Dispozitivul nu este fiscalizat. | Fiscalizați dispozitivul prin tehnician autorizat |
| 539 | DailyReportingRequired | Este necesară emiterea raportului Z. | Tipăriți raportul Z obligatoriu |
| 540 | InvalidVatRate | Cotă TVA invalidă sau inactivă pe dispozitiv. | Folosiți cotă TVA validă configurată pe dispozitiv |
| 541 | OperationNotPermitted | Operațiune nepermisă în starea curentă. | Verificați starea dispozitivului și secvența operațiunilor |
| 542 | BlockingPeriodActive | Dispozitiv blocat temporar (ex: 24h fără comunicare). | Mențineți comunicarea regulată, urmați procedura de deblocare |
| 543 | TooManyArticlesOnReceipt | Prea multe articole pe bonul fiscal. | Împărțiți tranzacția în mai multe bonuri |
| 544 | ZNeeded | Este necesar să se tipărească raportul Z. | Tipăriți raportul Z înainte de a continua |
Erori Comandă și Sintaxă (550-559)
| Cod | Eroare | Mesaj Română | Rezoluție |
|---|---|---|---|
| 550 | InvalidCommand | Comandă invalidă pentru dispozitiv. | Folosiți comenzi suportate pentru acest model de dispozitiv |
| 551 | InvalidSyntaxOrParam | Sintaxă sau parametru invalid pentru comandă. | Verificați formatul și valorile parametrilor |
| 552 | WrongOperatorPassword | Parolă operator incorectă. | Folosiți parola corectă de operator |
| 599 | Other | Eroare specifică dispozitivului cu codul original | Consultați manualul dispozitivului pentru codul specific de eroare |
Erori Terminal POS (600-619)
Aceste erori sunt specifice operațiunilor terminalelor POS și procesării cardurilor.
| Cod | Eroare | Mesaj Română | Rezoluție |
|---|---|---|---|
| 600 | PosDeclinedGeneric | Tranzacție POS refuzată. | Verificați validitatea cardului, încercați metodă de plată diferită |
| 601 | PosDeclinedInsufficientFunds | Tranzacție POS refuzată: Fonduri insuficiente. | Clientul trebuie să folosească alt card sau metodă de plată |
| 602 | PosDeclinedCardExpired | Tranzacție POS refuzată: Card expirat. | Clientul trebuie să folosească un card valid, neexpirat |
| 603 | PosDeclinedIncorrectPin | Tranzacție POS refuzată: PIN incorect. | Clientul ar trebui să reîncerce cu PIN-ul corect |
| 604 | PosTransactionCancelled | Tranzacție POS anulată. | Tranzacția a fost anulată de utilizator sau sistem |
| 605 | PosTimeoutWaitingResponse | Tranzacție POS eșuată: Timp de așteptare răspuns depășit. | Verificați conexiunea terminalului, reîncercați tranzacția |
| 606 | PosCommunicationError | Eroare de comunicație cu terminalul POS. | Verificați conexiunea și cablurile terminalului |
| 607 | PosTransactionReversed | Tranzacție POS inversată (ex: refuz semnătură). | Tranzacția a fost inversată din cauza refuzului semnăturii sau altă problemă |
| 608 | PosDeclinedByTerminal | Tranzacție POS refuzată de terminal (eroare locală). | Terminalul a detectat eroare locală, verificați starea terminalului |
| 609 | PosSettlementFailed | Închiderea de zi POS (settlement) a eșuat. | Verificați conexiunea terminalului, reîncercați închiderea |
| 610 | PosInvalidResponseData | Răspuns invalid de la terminalul POS. | Verificați firmware-ul terminalului, contactați suportul |
| 611 | PosOperationFailed | Operațiune POS eșuată | Verificați detaliile erorii pentru motivul specific al eșecului |
Erori Imprimantă (2000-2999)
Aceste erori apar când se folosește subsistemul de tipărire pentru operațiuni de tipărire non-fiscală.
| Cod | Eroare | Descriere | Rezoluție |
|---|---|---|---|
| 2001 | PrinterNotFound | Imprimanta specificată nu poate fi găsită | Verificați instalarea și conexiunea imprimantei |
| 2002 | Tauri | A apărut o eroare în framework-ul Tauri | Verificați jurnalele aplicației, reporniți aplicația |
| 2003 | HtmlRendering | Eroare redare conținut HTML pentru tipărire | Verificați validitatea șablonului HTML, instalați fonturile necesare |
| 2004 | PrintJob | Eroare cu executarea lucrării de tipărire | Verificați starea imprimantei, disponibilitatea hârtiei |
| 2005 | Resource | Resursa necesară nu poate fi găsită | Verificați căile resurselor, verificați permisiunile fișierelor |
Bune Practici Gestionare Erori
Pentru Dezvoltatorii de Aplicații
- Intervale Coduri Stare: Folosiți intervalele codurilor de eroare pentru a categoriza tipurile de erori:
- 400, 404: Erori client/configurație - corectați cererea
- 1000-1999: Erori aplicație - verificați starea sistemului
- 500-599: Erori dispozitiv - verificați starea dispozitivului
- 600-619: Erori POS - gestionați starea tranzacției
- 2000+: Erori imprimantă - verificați setarea imprimantei
- Logică Reîncercare: Implementați logica de reîncercare corespunzătoare:
- Erori temporare (505, 1004, 1005): Sigur să reîncercați cu întârziere
- Erori stare (530, 531, 532): Corectați starea înainte de reîncercare
- Erori configurație (400, 404, 1008): Nu reîncercați fără a corecta problema
- Mesaje Utilizator: Folosiți mesajele de eroare în română pentru afișarea către utilizatorul final
- Jurnalizare: Jurnalizați întotdeauna atât codul de eroare cât și contextul complet al erorii
Scenarii Comune de Erori
Erori Flux Tipărire Bonuri
// Verificați starea dispozitivului înainte de a începe
GET /devices/{device_id}
// Erori comune de secvență:
530 (ReceiptOpen) → Anulați bonul existent mai întâi
531 (ReceiptNotOpen) → Inițializați bonul înainte de a adăuga articole
537 (InvalidAmount) → Validați că sumele sunt > 0
544 (ZNeeded) → Tipăriți raportul Z înainte de a continua
Probleme Conexiune Dispozitiv
// Progresie eroare conexiune:
404 (DeviceNotFound) → Dispozitiv neConfigurat
1004 (Connection) → Conexiune rețea/serială eșuată
505 (DeviceBusy) → Dispozitivul răspunde dar este ocupat
508 (GeneralDeviceError) → Comunicația cu dispozitivul stabilită dar a apărut eroare
Gestionarea Tranzacțiilor POS
// Gestionarea erorilor POS:
600-603 → Problemă card/plată - necesară acțiunea clientului
604 → Tranzacție anulată - nu este necesară acțiune suplimentară
605-606 → Problemă comunicație - reîncercarea este posibilă
609 → Închiderea eșuată - verificați starea terminalului
Testarea Integrării
Testați gestionarea erorilor pentru aceste scenarii critice:
- Deconectarea dispozitivului în timpul operațiunii
- Condiții lipsă hârtie
- Secvențe invalide de bonuri
- Eșecuri comunicație terminal POS
- Cerințe raport Z
- Eșecuri validare licență