Bon nou
Pagina Bon nou îți permite, ca operator, să compui și să printezi un bon fiscal direct din back-office, fără să folosești aplicația Android. Alegi un dispozitiv conectat, adaugi articolele și plățile, apeși Printează bon, iar bonul este trimis la imprimantă prin conexiunea cu cloud-ul.
Folosește pagina când nu ai telefonul la îndemână, când vrei să emiți mai multe bonuri la rând de la birou sau când îți testezi integrarea cap-la-cap.
Deschide pagina
Din lista Bonuri, apasă + Nou în colțul din dreapta sus. Formularul se deschide la /portal/receipts/new.
Poți și să salvezi URL-ul ca favorit — nu sunt necesari parametri.
Alege dispozitivul țintă
Bara laterală din dreapta listează toate imprimantele revendicate de organizația ta, împreună cu statusul lor live.
Un dispozitiv poate fi selectat doar dacă este online și are un controller alocat. Dispozitivele care nu îndeplinesc una dintre condiții apar totuși în dropdown, dar sunt dezactivate, cu un badge care explică motivul:
- Offline — imprimanta nu este accesibilă.
- Deconectat de la WebSocket — controllerul și-a pierdut conexiunea live cu cloud-ul.
- Ocupat — pe dispozitiv rulează deja o altă comandă.
- Status de eroare — imprimanta a raportat o eroare hardware sau fiscală.
- Niciun controller alocat — niciun controller nu a revendicat încă dispozitivul.
Compune bonul
Alege tipul de bon
Alege una dintre opțiuni:
- Vânzare (Sale) — bon de vânzare normal (implicit).
- Restituire (Refund) — restituire pentru o vânzare anterioară.
- Storno — anularea unei vânzări anterioare.
Formularul arată la fel pentru toate trei; cloud-ul rutează diferit fiecare tip către AMEF.
Adaugă articole
Fiecare rând reprezintă o linie pe bon:
| Câmp | Notă |
|---|---|
| Denumire | Text liber, obligatoriu. |
| Cantitate | Trebuie să fie pozitivă. |
| Preț | Preț per unitate, cu TVA inclus (convenția fiscală din România). |
| Cotă TVA | Alege una dintre cotele legale (0%, 5%, 9%, 19%). |
| Departament | Indexul departamentului pe imprimantă. |
| Discount | Opțional, se aplică pe linie. |
Apasă + Adaugă articol pentru un rând nou sau pictograma de coș pentru a-l elimina. Există întotdeauna cel puțin un rând — ultimul nu poate fi șters, doar golit.
Adaugă plăți
Fiecare rând de plată stabilește o metodă și o sumă:
- Numerar (Cash)
- Card
- Tichet (Voucher)
- Credit
- Altă metodă (Other)
Împarte un bon pe mai multe metode adăugând mai multe rânduri (de exemplu, 50 RON numerar + 30 RON card). Suma plăților trebuie să fie egală exact cu totalul bonului — formularul nu acceptă o nepotrivire.
Verifică totalurile
Formularul afișează totalul curent și o defalcare TVA pe cote, pe măsură ce tastezi. Ambele sunt recalculate de cloud la printare, așa că nu trebuie să rotunjești manual.
Printează bonul
Când formularul este valid, apasă Printează bon.
Se rulează validarea
Formularul verifică dacă fiecare articol are denumire, cantitate și o cotă TVA validă și dacă suma plăților este egală cu totalul. Dacă ceva nu este în regulă, câmpul respectiv este evidențiat și un toast îți spune ce trebuie corectat.
Comanda este expediată
Bonul este trimis către cloud, care îl transmite controllerului dispozitivului ales. Pe durata acestui proces, formularul și selectorul de dispozitiv sunt blocate, ca să nu poți emite un al doilea bon din greșeală.
Apare badge-ul de status
Sub selectorul de dispozitiv apare un badge:
- În așteptare — bonul este pe drum spre imprimantă.
- Acceptat — imprimanta a confirmat emiterea bonului. Badge-ul dispare după câteva secunde.
- Respins — ceva nu a funcționat. Mesajul de eroare apare pe badge și într-un toast.
Formularul se deblochează
Imediat ce imprimanta confirmă bonul (acceptat sau respins), formularul se deblochează și poți emite următorul.
Rezolvă erorile frecvente
| Simptom | Ce să verifici |
|---|---|
| Toast Niciun dispozitiv selectat | Alege un dispozitiv din bara laterală înainte să apeși Printează bon. |
| Toast Plățile nu corespund totalului | Ajustează sumele plăților ca să fie exact cât totalul bonului. |
| Badge-ul rămâne În așteptare mai mult de un minut | Probabil imprimanta a căzut offline în timpul printării. Reîncarcă pagina și verifică Dispozitive. |
| Badge-ul afișează Respins cu un mesaj hardware | Citește mesajul de pe imprimantă (lipsă hârtie, sertar deschis, raport Z neînchis etc.) și încearcă din nou. |
| Formularul rămâne blocat și nu poți edita | O comandă anterioară este încă în așteptare. Așteaptă până dispare badge-ul sau reîncarcă pagina. |
Cunoaște limitele
- Un singur dispozitiv pe bon. Nu poți trimite același bon către mai multe imprimante simultan din formular.
- Doar online. Portalul are nevoie de conexiune la rețea ca să printeze. Pentru vânzări offline, folosește aplicația Android — pune bonurile în coadă local și le sincronizează la reconectare.
- Fără ciorne. Închiderea tab-ului sau reîncărcarea paginii golește formularul. Tot ce nu ai printat se pierde.
- Doar bonuri anonime. Formularul din Portal nu expune câmpuri pentru client sau CIF. Pentru un bon nominal cu CIF, apelează API-ul direct (vezi mai jos).
- Reduceri pe întreg bonul nu sunt suportate din formular. Aplică reducerile pe linie.
- Fără expediere programată. Bonurile se printează imediat la apăsarea butonului.
Trimite bonuri din propriul tău software
Tot ce face pagina Bon nou este disponibil și prin API-ul HTTP e-bon. Pentru a emite bonuri din POS-ul, ERP-ul sau scripturile tale, trimite o comandă print_receipt către dispozitiv:
POST /api/v1/devices/{deviceId}/commands
Authorization: Bearer <token-api>
Idempotency-Key: <cheie-unică-per-bon>
Content-Type: application/json
{
"type": "print_receipt",
"payload": {
"type": "sale",
"operatorId": "1",
"items": [
{ "name": "Cafea", "quantity": 2, "price": 12.50, "vatRate": 19, "department": 0 }
],
"payments": [
{ "method": "card", "amount": 25.00 }
]
}
}
Cloud-ul validează payload-ul, recalculează totalurile și defalcarea TVA pe server și transmite comanda controllerului. Aceleași reguli de idempotență, validare și evenimente de status se aplică indiferent dacă cererea vine din Portal, din aplicația Android sau din propria ta integrare.
Vezi /api/receipts pentru referința completă a payload-ului, Idempotență pentru comportamentul la reîncercare și WebSocket de evenimente pentru a primi statusul comenzilor în propria ta interfață.
Continuă explorarea
- Bonuri — răsfoiește, filtrează și inspectează bonurile anterioare.
- Dispozitive — asociază imprimante și verifică statusul lor live.
- Operațiuni fiscale — rulează rapoarte X/Z, încasări și retrageri din Portal.
/api/receipts— emite bonuri programatic din propriul tău software.
Istoric dispozitiv
Vezi fiecare comandă fiscală trimisă către un dispozitiv, filtrează după tip și verifică dacă erorile pot fi reîncercate în siguranță.
Detalii dispozitiv — Prezentare generală
Primul lucru pe care îl vezi când deschizi un dispozitiv în Portal — patru carduri care arată cine este dispozitivul, ce hardware are, ultimul bon emis și alertele active.