e-bon
e-bon.ro
Portal

Alerte

Alerte de dispozitiv în timp real în Portalul e-bon — cele cinci tipuri de alerte, cum se derivă fiecare, unde apar în interfață și cum le citești programatic prin API.

Alerte

Alertele de dispozitiv sunt semnalul în timp real al e-bon că un dispozitiv fiscal are nevoie de atenție. Te anunță când o imprimantă a rămas fără hârtie, când un capac este deschis, când un Raport Z este întârziat, când memoria fiscală se umple și când un dispozitiv a căzut offline pentru prea mult timp.

Alertele sunt derivate determinist din starea dispozitivului la fiecare citire. Nu sunt stocate ca înregistrări individuale și nu au un ciclu de viață separat în baza de date — de fiecare dată când Portalul sau API-ul calculează alertele, citește indicatorii de stare curenți ai dispozitivului, ultimul Raport Z reușit, marca de timp lastSeen a dispozitivului și starea conexiunii WebSocket active, apoi produce lista de la zero. De îndată ce condiția care a generat alerta dispare (s-a reîncărcat hârtia, s-a închis capacul, s-a trimis Raportul Z, dispozitivul s-a reconectat), alerta pur și simplu nu mai apare la următoarea citire.

Nu există confirmare, respingere sau pauzare per alertă în modelul de date de astăzi. Alertele apar și dispar odată cu starea reală a dispozitivului. Pentru a opri o alertă, rezolvă condiția care o declanșează.

Cele cinci tipuri de alerte

Există exact cinci tipuri de alerte — nici mai multe, nici mai puține. Fiecare are una dintre cele trei severități: warning, error sau info.

Hârtie pe terminate — paper_low

  • Severitate: warning
  • Declanșator: dispozitivul raportează paperEnd sau paperNearEnd în indicatorii de stare.
  • Mesaj: Paper is running low
  • Ce ai de făcut: încarcă o rolă nouă de hârtie pe AMEF înainte să se termine în mijlocul unui bon.

Capac deschis — cover_open

  • Severitate: error
  • Declanșator: dispozitivul raportează coverOpen în indicatorii de stare.
  • Mesaj: Cover is open
  • Ce ai de făcut: închide capacul imprimantei. Dispozitivul nu poate tipări bonuri cât timp capacul este deschis.

Memorie fiscală aproape plină — fiscal_memory_almost_full

  • Severitate: warning
  • Declanșator: dispozitivul raportează fiscalMemoryAlmostFull în indicatorii de stare.
  • Mesaj: Fiscal memory is almost full
  • Ce ai de făcut: programează o intervenție tehnică autorizată pentru schimbarea modulului de memorie fiscală înainte ca acesta să se umple complet. Odată plină, AMEF-ul va refuza emiterea de bonuri noi până la intervenția în service.

Raport Z întârziat — z_report_overdue

  • Severitate: warning
  • Declanșator: au trecut mai mult de 24 de ore de la ultimul Raport Z reușit — sau nu a fost trimis niciodată un Raport Z de pe acest dispozitiv.
  • Mesaj: Z report not submitted in over 24 hours
  • Ce ai de făcut: trimite un Raport Z pentru dispozitiv — din aplicația e-bon de pe dispozitiv, sau din fluxul de operațiuni fiscale al Portalului.

Dispozitiv offline — disconnected

  • Severitate: error
  • Declanșator: dispozitivul este offline de mai mult de 1 oră — fără conexiune activă la backend-ul e-bon și fără activitate recentă.
  • Mesaj: Device disconnected for over 1 hour
  • Ce ai de făcut: verifică alimentarea, rețeaua și controlerul Android de la fața locului care rulează aplicația e-bon. Alerta dispare automat odată ce dispozitivul se reconectează.

Unde vezi alertele în Portal

Insignă pe lista de dispozitive

Pe Dispozitive, fiecare card de dispozitiv afișează o insignă cu numărul de alerte atunci când există cel puțin o alertă deschisă. Culoarea insignei reflectă severitatea cea mai mare prezentă: roșu când există o alertă error, chihlimbar când cea mai mare este warning. Un dispozitiv fără alerte nu afișează insignă. Lista se actualizează în timp real — atât printr-o reîmprospătare periodică, cât și prin evenimentul device.alert livrat pe canalul WebSocket al Portalului.

Detaliu dispozitiv → Prezentare generală

Deschide un dispozitiv din listă, iar tabul Prezentare generală afișează fiecare alertă deschisă pentru acel dispozitiv, sortată după severitate, cu mesajul alertei și marca de timp detectedAt. De îndată ce condiția care a generat alerta dispare, rândul iese din listă la următoarea citire.

Filtrarea API-ului după severitate

API-ul acceptă un parametru de interogare severity=warning|error|info pentru ca dashboard-urile sau uneltele externe să poată afișa un singur nivel de severitate — vezi secțiunea API mai jos.

Cine primește notificări

Alertele care se declanșează pe un dispozitiv generează și notificări pe email către destinatarii configurați pentru organizația ta. Destinatarii se abonează pe categorii (alerte, rapoarte, facturare, evenimente) și primesc doar categoriile la care s-au înscris. Lista de destinatari și abonările pe categorii se gestionează pe pagina dedicată Notificări — acea pagină este sursa unică de adevăr pentru cine primește ce.

Email-ul este singurul canal de notificare astăzi. Nu există SMS, web-push sau alt canal de notificare în aplicație dincolo de interfața Portalului în sine.

API-ul

Accesul programatic la alerte este expus printr-un singur endpoint batch cu domeniul de aplicare la nivel de organizație.

GET /api/v1/devices/alerts

Returnează alertele derivate pentru fiecare dispozitiv din organizația apelantă, indexate după id-ul dispozitivului.

  • Autentificare: cheie API cu domeniul devices:read (sau un JWT al Portalului).
  • Parametri de interogare:
    • severity (opțional) — una dintre warning, error, info. Când este furnizată, sunt returnate doar alertele de acea severitate, iar dispozitivele fără alerte care se potrivesc sunt omise din răspuns.

Cerere

curl -H "Authorization: Bearer $EBON_API_KEY" \
  "https://api.e-bon.ro/api/v1/devices/alerts?severity=error"

Forma răspunsului

{
  "alerts": {
    "device-abc123": [
      {
        "type": "cover_open",
        "severity": "error",
        "message": "Cover is open",
        "deviceId": "device-abc123",
        "deviceName": "POS-01 — București",
        "detectedAt": "2026-04-25T08:42:11.503Z"
      }
    ],
    "device-xyz789": [
      {
        "type": "disconnected",
        "severity": "error",
        "message": "Device disconnected for over 1 hour",
        "deviceId": "device-xyz789",
        "deviceName": "POS-02 — Cluj",
        "detectedAt": "2026-04-25T08:42:11.503Z"
      }
    ]
  }
}

Valorile complete ale enumerării type sunt paper_low, cover_open, fiscal_memory_almost_full, z_report_overdue, disconnected. Valorile complete ale enumerării severity sunt warning, error, info.

Pentru suprafața mai largă a API-ului de dispozitive (listă, citire, stare, comenzi) vezi API → Dispozitive. Pentru încapsulările tipate ale aceluiași endpoint în SDK vezi SDK → Dispozitive.

Pași următori

  • Dispozitive — lista de dispozitive și pagina de Detaliu dispozitiv unde apar alertele în interfață.
  • Notificări — configurează destinatarii de email și abonările pe categorii care alimentează email-urile de alertă.
  • API → Dispozitive — suprafața REST mai largă a API-ului de dispozitive.
  • SDK → Dispozitive — metodele tipate ale clientului pentru getAllAlerts și restul API-ului de dispozitive.