1.Prezentare generală

Fisco este un driver pentru Windows care permite aplicațiilor de vânzare, POS sau
ERP să transmită comenzi către imprimante fiscale și case de marcat compatibile.

Manualul descrie modul de transmitere a bonurilor fiscale, sintaxele acceptate
pentru comenzi și modul în care aplicația poate verifica rezultatul procesării.

Integrarea cu Fisco se poate face folosind două metode principale:

  • prin fișiere
    — aplicația creează un fișier de comandă într-un folder monitorizat de
    driverul Fisco.
  • prin API HTTP
    — aplicația transmite comenzile către Fisco printr-un request HTTP local,
    în format JSON.

Indiferent de metoda de transmitere folosită, comenzile pot fi scrise într-una
dintre sintaxele acceptate de Fisco.

Sintaxe acceptate
Sintaxă Descriere Utilizare recomandată
simplu Sintaxă simplificată, mai ușor de generat din aplicații POS sau ERP. Recomandată pentru integrări noi.
fprint Sintaxa FPrint clasică, compatibilă cu integrațiile existente. Recomandată pentru aplicații care folosesc deja formatul FPrint.

Metoda de transmitere și sintaxa comenzilor sunt lucruri diferite. De exemplu,
aceeași comandă de bon poate fi transmisă prin fișier sau prin API, folosind
sintaxa simplificată sau sintaxa FPrint.

Exemple de combinații posibile
Metodă de transmitere Sintaxă comandă Exemplu utilizare
Fișiere simplu Fișier .inp cu linii de tip S^... și P^....
Fișiere fprint Fișier .bon, .inp sau .txt cu comenzi FPrint.
API HTTP simplu Request JSON cu "syntax": "simplu".
API HTTP fprint Request JSON cu "syntax": "fprint".

Flux general de lucru

Fluxul general de integrare este asemănător indiferent de metoda aleasă:
aplicația transmite comenzile către Fisco, Fisco procesează comenzile și apoi
returnează sau generează un rezultat care trebuie verificat de aplicație.

Flux general
Aplicație POS / ERP
        ↓
Comenzi bon fiscal
        ↓
Fisco Driver
        ↓
Imprimantă fiscală / casă de marcat
        ↓
Răspuns procesare

Aplicația nu trebuie să considere bonul finalizat doar pentru că a transmis
comenzile către Fisco. Bonul trebuie considerat finalizat numai după confirmarea
procesării cu succes.

În cazul transmiterii prin fișiere, confirmarea se face prin verificarea
directoarelor BonANSWER și BonERR. În cazul transmiterii
prin API, confirmarea se face prin verificarea statusului jobului returnat de API.

Structura manualului

Manualul este organizat astfel încât să separe clar metoda de transmitere de
sintaxa comenzilor.

  • Secțiunea Printare bonuri folosind fișiere descrie modul de
    lucru prin folder de scanare și fișiere .inp, .bon
    sau .txt.
  • Secțiunea Printare bonuri folosind API descrie transmiterea
    comenzilor prin HTTP și verificarea rezultatului prin statusul jobului.
  • Secțiunile dedicate sintaxelor descriu comenzile disponibile pentru vânzare
    produs, plată, discount, subtotal, CUI/CIF, text liber și rapoarte fiscale.

2.Printare bonuri folosind API

Fisco HTTP API permite unei aplicații externe să trimită bonuri fiscale către
driverul Fisco instalat local pe Windows.

Aplicația transmite comenzile printr-un request HTTP în format JSON, iar Fisco
returnează un identificator de job care poate fi folosit ulterior pentru verificarea
rezultatului procesării.

Serverul HTTP rulează implicit local la adresa:

http://127.0.0.1:4040
Flux de procesare
Aplicație externă
        ↓
POST /api/v1/print
        ↓
Fisco primește și validează request-ul
        ↓
Fisco procesează comenzile
        ↓
Rezultatul este verificat prin /api/v1/status

Comenzile transmise prin API pot folosi una dintre sintaxele acceptate de Fisco:

  • simplu
    — sintaxa simplificată.
  • fprint
    — formatul FPrint clasic.

În modul prin fișiere, aplicația creează un fișier de comandă în folderul de scanare.
În modul API, aplicația transmite comenzile prin HTTP, iar rezultatul este urmărit
prin endpoint-ul de status.

Endpoint-uri disponibile
Metodă Endpoint Descriere
GET /api/v1/health Verifică dacă serverul și imprimanta sunt disponibile.
POST /api/v1/print Trimite un job de printare.
GET /api/v1/status?job_id=... Verifică statusul unui job trimis anterior.
GET /api/v1/status Returnează ultimele joburi HTTP cunoscute.
GET /api/v1/last-receipt Returnează ultimul job HTTP finalizat, tipărit sau eșuat.

Verificare stare driver și imprimantă

Înainte de trimiterea unui bon, aplicația poate verifica dacă serverul API și
imprimanta fiscală sunt disponibile.

Request
GET /api/v1/health
Exemplu curl
curl http://127.0.0.1:4040/api/v1/health
Răspuns când imprimanta este pregătită
{
  "ok": true,
  "service": "fisco-driver",
  "server": "running",
  "printer": {
    "ready": true,
    "status": "ready",
    "error": ""
  }
}
Răspuns când imprimanta nu este pregătită
{
  "ok": true,
  "service": "fisco-driver",
  "server": "running",
  "printer": {
    "ready": false,
    "status": "not_ready",
    "error": "Depasire 24h Raport Z imprimanta fiscala"
  }
}

Câmpul ok indică faptul că API-ul a răspuns corect. Starea imprimantei
se citește din printer.ready.

Exemplu trimitere bon prin API

Pentru trimiterea unui bon fiscal se folosește endpoint-ul:

POST /api/v1/print
Content-Type: application/json

Exemplul de mai jos transmite un bon folosind sintaxa simplu.

Request JSON
{
  "syntax": "simplu",
  "version": "1.0",
  "external_id": "bon-test-001",
  "commands": [
    "S^Ceai cu miere^350^1000^buc^2^1",
    "S^Bere Clausthaler NA^1200^1000^buc^2^1",
    "S^Cappuccino^400^1000^buc^2^1",
    "P^1^1950"
  ]
}

În sintaxa simplu, valorile numerice sunt transmise ca întregi,
pentru a evita problemele cauzate de separatorul zecimal regional.

  • 350 reprezintă 3.50 unități monetare.
  • 1000 reprezintă cantitatea 1.000.
  • 1950 reprezintă suma de plată 19.50.
Răspuns la acceptarea jobului
{
  "ok": true,
  "job_id": "http_20260512_133455_123_45678",
  "status": "queued",
  "syntax": "simplu",
  "fprint_command_count": 4,
  "queued_file": "http_20260512_133455_123_45678.bon"
}

Un răspuns cu status: queued nu înseamnă că bonul a fost tipărit.
Înseamnă doar că jobul a fost acceptat de API și pus în coada de procesare.
Pentru confirmarea tipăririi, aplicația trebuie să verifice statusul jobului.

2.1.Rezultatul procesării: succes sau eroare

După trimiterea unui job prin POST /api/v1/print, API-ul returnează
un job_id. Acest identificator trebuie salvat de aplicația client și
folosit pentru verificarea rezultatului.

Request verificare status
GET /api/v1/status?job_id={job_id}
Exemplu curl
curl "http://127.0.0.1:4040/api/v1/status?job_id=http_20260512_173854_384_23959"

Un job poate avea unul dintre următoarele statusuri:

Status Descriere
queued Jobul a fost acceptat și este în așteptare pentru procesare.
processing Jobul este în curs de procesare.
printed Bonul sau raportul a fost procesat cu succes.
failed Jobul a fost procesat, dar printarea a eșuat.
not_found Jobul nu a fost găsit.
Status queued
{
  "ok": true,
  "job_id": "http_20260512_173854_384_23959",
  "status": "queued",
  "result": {}
}
Status printed — bon fiscal
{
  "ok": true,
  "job_id": "http_20260512_173854_384_23959",
  "status": "printed",
  "result": {
    "type": "receipt",
    "CommandName": "receipt_Fiscal_Close",
    "ErrorCode": "0",
    "SlipNumber": "6147",
    "nZrep": "430",
    "nFNum": "10",
    "DeviceSerial": "DB4100000055"
  }
}

Parametri răspuns bon fiscal

  • type
    — tipul rezultatului. Pentru bon fiscal, valoarea este receipt.
  • CommandName
    — comanda fiscală care a generat răspunsul.
  • ErrorCode
    — codul de eroare returnat de imprimanta fiscală. Valoarea 0
    indică procesare fără eroare.
  • SlipNumber
    — numărul general al bonului fiscal.
  • nZrep
    — numărul raportului Z în care este inclus bonul.
  • nFNum
    — numărul bonului fiscal din raportul Z.
  • DeviceSerial
    — seria imprimantei fiscale.
Status printed — raport X sau Z
{
  "ok": true,
  "job_id": "http_20260513_144034_961_89894",
  "status": "printed",
  "result": {
    "type": "report",
    "CommandName": "reports",
    "ErrorCode": "0",
    "nRep": "431",
    "TaxA": "0.00",
    "TaxB": "46.00",
    "TaxC": "0.00",
    "TaxD": "0.00",
    "TaxE": "0.00",
    "TaxF": "0.00",
    "TaxG": "0.00",
    "TotEXEPTAT": "0.00",
    "TotSInv": "0.00",
    "DeviceSerial": "DB4100000055"
  }
}

Parametri răspuns raport X sau Z

  • type
    — tipul rezultatului. Pentru raport fiscal, valoarea este report.
  • CommandName
    — comanda fiscală care a generat răspunsul.
  • ErrorCode
    — codul de eroare returnat de imprimanta fiscală. Valoarea 0
    indică procesare fără eroare.
  • nRep
    — numărul raportului X sau Z.
  • TaxA
    — total încasat pe cota TVA A.
  • TaxB
    — total încasat pe cota TVA B.
  • TaxC
    — total încasat pe cota TVA C.
  • TaxD
    — total încasat pe cota TVA D.
  • TaxE
    — total încasat pe cota TVA E.
  • TaxF
    — total încasat pe cota TVA F.
  • TaxG
    — total încasat pe cota TVA G.
  • TotEXEPTAT
    — total încasat scutit TVA.
  • TotSInv
    — total încasat cu CIF pe bonul fiscal.
  • DeviceSerial
    — seria imprimantei fiscale.
Status failed
{
  "ok": true,
  "job_id": "http_20260512_142403_695_19157",
  "status": "failed",
  "result": {},
  "error": {
    "code": "PRINT_FAILED",
    "message": "#Linia 2 | S,1,______,_,__;;10;1;1;1;1;0;0;Buc\n#ErrorCode (-112201) :"
  }
}

În cazul unui status failed, câmpul ok poate fi
true, deoarece interogarea API a reușit. Eșecul printării este indicat
de valoarea status: failed.

În acest caz, câmpul result poate fi gol, iar detaliile erorii sunt
returnate în obiectul error. Mesajul de eroare poate conține linii
marcate cu #, corespunzătoare explicațiilor generate în timpul
procesării.

Status not_found
{
  "ok": false,
  "job_id": "http_20260512_133455_123_45678",
  "status": "not_found",
  "result": {},
  "error": {
    "code": "JOB_NOT_FOUND",
    "message": "Job was not found"
  }
}

Ultimele bonuri / joburi HTTP

Dacă endpoint-ul /api/v1/status este apelat fără job_id,
API-ul returnează implicit ultimele 100 de bonuri / joburi HTTP cunoscute.

Numărul de rezultate poate fi limitat folosind parametrul opțional
limit.

Request
GET /api/v1/status
GET /api/v1/status?limit=10
Exemplu răspuns
{
  "ok": true,
  "status": "latest",
  "count": 10,
  "jobs": [
    {
      "job_id": "http_20260513_144034_961_89894",
      "status": "printed",
      "result": {
        "type": "report",
        "CommandName": "reports",
        "ErrorCode": "0",
        "nRep": "431",
        "TaxA": "0.00",
        "TaxB": "46.00",
        "TaxC": "0.00",
        "TaxD": "0.00",
        "TaxE": "0.00",
        "TaxF": "0.00",
        "TaxG": "0.00",
        "TotEXEPTAT": "0.00",
        "TotSInv": "0.00",
        "DeviceSerial": "DB4100000055"
      }
    },
    {
      "job_id": "http_20260512_173854_384_23959",
      "status": "printed",
      "result": {
        "type": "receipt",
        "CommandName": "receipt_Fiscal_Close",
        "ErrorCode": "0",
        "SlipNumber": "6147",
        "nZrep": "430",
        "nFNum": "10",
        "DeviceSerial": "DB4100000055"
      }
    },
    {
      "job_id": "http_20260512_142403_695_19157",
      "status": "failed",
      "result": {},
      "error": {
        "code": "PRINT_FAILED",
        "message": "#Linia 2 | S,1,______,_,__;;10;1;1;1;1;0;0;Buc\n#ErrorCode (-112201) :"
      }
    }
  ]
}

Câmpul count indică numărul de joburi returnate în răspuns.
Lista jobs conține joburile HTTP cunoscute, în limita solicitată prin
parametrul limit sau, în lipsa acestuia, până la maximum 100 de
înregistrări.

Ultimul bon / ultimul job finalizat

Endpoint-ul /api/v1/last-receipt returnează ultimul job HTTP finalizat.
Acesta poate fi un job tipărit cu succes sau un job eșuat.

Request
GET /api/v1/last-receipt
Exemplu răspuns bon fiscal
{
  "ok": true,
  "status": "printed",
  "job_id": "http_20260512_173854_384_23959",
  "result": {
    "type": "receipt",
    "CommandName": "receipt_Fiscal_Close",
    "ErrorCode": "0",
    "SlipNumber": "6147",
    "nZrep": "430",
    "nFNum": "10",
    "DeviceSerial": "DB4100000055"
  }
}
Exemplu răspuns raport X sau Z
{
  "ok": true,
  "status": "printed",
  "job_id": "http_20260513_144034_961_89894",
  "result": {
    "type": "report",
    "CommandName": "reports",
    "ErrorCode": "0",
    "nRep": "431",
    "TaxA": "0.00",
    "TaxB": "46.00",
    "TaxC": "0.00",
    "TaxD": "0.00",
    "TaxE": "0.00",
    "TaxF": "0.00",
    "TaxG": "0.00",
    "TotEXEPTAT": "0.00",
    "TotSInv": "0.00",
    "DeviceSerial": "DB4100000055"
  }
}

2.2.Recomandări de implementare

Pentru integrarea prin API, aplicația client trebuie să trateze trimiterea unui
bon ca un proces asincron: request-ul POST /api/v1/print pune jobul
în coadă, iar confirmarea tipăririi se obține ulterior prin
GET /api/v1/status?job_id=....

Flux recomandat
1. Trimite POST /api/v1/print
2. Salvează job_id din răspuns
3. Verifică periodic GET /api/v1/status?job_id=...
4. Se oprește când status este printed sau failed
Pseudo-flux
POST /api/v1/print

if ok == false:
    afișează eroarea
    stop

job_id = response.job_id

while timeout not reached:
    GET /api/v1/status?job_id=job_id

    if status == printed:
        salvează numărul bonului
        stop

    if status == failed:
        afișează eroarea de printare
        stop

    așteaptă 1 secundă

Interval recomandat de verificare:

500 ms - 2000 ms

Timeout recomandat:

30 - 60 secunde
  • Verificați starea imprimantei cu GET /api/v1/health înainte de
    trimiterea bonurilor, atunci când aplicația are nevoie de validare preventivă.
  • Salvați întotdeauna job_id returnat de
    POST /api/v1/print.
  • Nu considerați bonul tipărit când primiți status: queued.
    Acesta indică doar faptul că jobul a fost acceptat și pus în coadă.
  • Considerați bonul finalizat doar când statusul devine printed
    sau failed.
  • Dacă statusul este printed, salvați în aplicație datele fiscale
    returnate: numărul bonului, numărul raportului Z și seria imprimantei fiscale.
  • Dacă statusul este failed, marcați bonul ca netipărit sau cu
    eroare și afișați operatorului mesajul returnat în câmpul error.message.
  • Evitați retrimiterea automată a aceluiași bon fără verificarea statusului,
    pentru a preveni dublarea bonurilor fiscale.
  • API-ul este gândit pentru utilizare locală. Nu expuneți portul în rețea
    publică fără autentificare, firewall și măsuri suplimentare de securitate.

Request respins

Dacă imprimanta sau driverul nu este pregătit, API-ul poate respinge request-ul
înainte de punerea jobului în coadă.

Exemplu răspuns respins
{
  "ok": false,
  "status": "rejected",
  "error": {
    "code": "PRINTER_NOT_READY",
    "message": "Depasire 24h Raport Z imprimanta fiscala"
  }
}

Motive posibile:

  • Fiscal Driver processing is off
  • Lipsa conexiune cu imprimanta fiscala
  • Depasire 24h Raport Z imprimanta fiscala
  • Printer status is not known yet

Coduri de eroare

Cod Descriere
INVALID_JSON Body-ul requestului nu este JSON valid.
EMPTY_BODY Body-ul requestului este gol.
CONVERSION_ERROR Comenzile nu au putut fi procesate.
PRINTER_NOT_READY Imprimanta sau driverul nu este pregătit.
QUEUE_ERROR Fisco nu a putut pune jobul în coada de procesare.
JOB_NOT_FOUND Jobul nu a fost găsit.
PRINT_FAILED Jobul a fost procesat, dar printarea a eșuat.
METHOD_NOT_ALLOWED Metoda HTTP folosită este greșită.
SETTINGS_ERROR O setare Fisco nu a putut fi citită.
INTERNAL_ERROR Eroare internă neașteptată.
LAST_RECEIPT_NOT_FOUND Nu există niciun job HTTP finalizat.

3.Printare bonuri folosind fișiere

În acest mod de lucru, driverul Fisco scanează în mod constant
<Folderul de scanat> și caută fișiere de comandă.

Folderul de scanat implicit este:

C:\<Director instalare Fisco>\Bonuri

De exemplu, dacă Fisco este instalat în C:\Fisco, folderul de scanat
devine:

C:\Fisco\Bonuri

Fișierele de input transmise către casa de marcat sunt cele care respectă extensiile
configurate în secțiunea „Setări Driver”. Extensiile implicite sunt
*.bon, *.inp și *.txt.

La identificarea unui fișier de comandă, driverul verifică starea casei de marcat:
conexiune, hârtie, memorie, depășirea intervalului de 24h de la ultimul raport Z etc.

Dacă starea casei este corectă, driverul începe trimiterea instrucțiunilor către
casa de marcat.

Dacă sunt identificate probleme în starea casei, fișierul nu este transmis către
casa de marcat. Driverul atenționează utilizatorul în mod repetat asupra problemei
și așteaptă remedierea acesteia pentru a continua procesarea.

După trimiterea cu succes a fișierului, o copie a acestuia este salvată în directorul:

<Folderul de scanat>\BonOK

În același timp, este creat un fișier de răspuns în directorul:

<Folderul de scanat>\BonANSWER

În caz de eroare, o copie a fișierului care nu a putut fi printat este salvată în directorul:

<Folderul de scanat>\BonERR

Fișierul din BonERR conține comenzile bonului și informații despre eroarea apărută.
Explicațiile de eroare sunt marcate cu caracterul #.

Flux de procesare
Aplicație de vânzare
        ↓
Fișier .inp / .bon / .txt
        ↓
<Folderul de scanat>
        ↓
Driver Fisco
        ↓
Casa de marcat
        ↓
BonOK + BonANSWER
sau
BonERR

Exemplu fișier bon simplu în format simplificat

Exemplul de mai jos prezintă un fișier .inp în format simplificat,
care conține trei produse și o linie de plată.

Fișierul bon_20280512.inp este creat de aplicația de vânzare în folderul:

C:\Fisco\Bonuri\bon_20280512.inp
Conținut fișier
S^Ceai cu miere^350^1000^buc^2^1
S^Bere Clausthaler NA^1200^1000^buc^2^1
S^Cappuccino^400^1000^buc^2^1
P^1^1950

După procesarea cu succes, o copie a fișierului este salvată în:

C:\Fisco\Bonuri\BonOK\bon_20280512.inp

iar fișierul de răspuns este creat în:

C:\Fisco\Bonuri\BonANSWER\bon_20280512.inp

3.1.Rezultatul procesării: succes sau eroare

Pentru fiecare fișier de comandă procesat, aplicația care a generat fișierul
trebuie să urmărească rezultatul în directoarele create de driver.

Director Descriere
BonOK Conține copii ale fișierelor de comandă procesate cu succes.
BonANSWER Conține fișierele de răspuns generate după procesarea cu succes.
BonERR Conține copii ale fișierelor care nu au putut fi printate, împreună cu
explicații de eroare marcate cu #.

Dispariția fișierului din folderul de scanare nu trebuie interpretată automat ca
succes. Aplicația trebuie să verifice existența răspunsului în
BonANSWER sau existența erorii în BonERR.

Exemplu răspuns bon fiscal
[Answer]
SlipNumber=1959
nZrep=42
nFNum=200
DeviceSerial=DB4100000055

Parametri răspuns bon fiscal

  • SlipNumber
    — numărul general al bonului fiscal.
  • nZrep
    — numărul raportului Z în care este inclus bonul.
  • nFNum
    — numărul bonului fiscal din raportul Z.
  • DeviceSerial
    — seria aparatului fiscal.

Pentru instrucțiunile de raport X sau Z, fișierul de răspuns este generat tot în
directorul BonANSWER, dar conține informații specifice raportului
fiscal executat.

Exemplu răspuns raport X sau Z
[Answer]
nRep=46
TaxA=1210.00
TaxB=1172.00
TaxC=12771.00
TotEXEPTAT=0.00
TotSInv=0.00
VatSInv=0.00
DeviceSerial=DB4100000055

Parametri răspuns raport X sau Z

  • nRep
    — numărul raportului X sau Z.
  • TaxA
    — total încasat pe cota TVA A.
  • TaxB
    — total încasat pe cota TVA B.
  • TaxC
    — total încasat pe cota TVA C.
  • TotEXEPTAT
    — total încasat scutit TVA.
  • TotSInv
    — total încasat cu CIF pe bonul fiscal.
  • VatSInv
    — valoare TVA încasată cu CIF pe bonul fiscal.
  • DeviceSerial
    — seria de fabricație a aparatului fiscal.

3.2.Recomandări de implementare

Pentru o integrare sigură, aplicația de vânzare trebuie să urmărească explicit
rezultatul fiecărui fișier transmis.

  • Generați nume unice pentru fișierele de comandă.
  • Scrieți fișierul cu o extensie temporară și redenumiți-l doar după finalizarea
    scrierii.
  • Nu suprascrieți fișiere existente în folderul de scanare.
  • Verificați explicit directoarele BonANSWER și BonERR.
  • Salvați în aplicație informațiile fiscale returnate în fișierul de răspuns.
  • În caz de eroare, marcați bonul ca netipărit sau cu eroare și afișați
    operatorului mesajul returnat.
Exemplu recomandat pentru creare fișier
bon_20280512.tmp → bon_20280512.inp

Fișierul se scrie inițial cu extensia .tmp, apoi se redenumește în
.inp doar după ce conținutul a fost scris complet.

4.Comenzi format simplificat

Formatul simplificat este un format compact de comenzi acceptat de Fisco pentru integrarea rapidă cu aplicații POS, ERP sau alte sisteme externe.

Comenzile sunt transmise ca linii text, fiecare linie reprezentând o instrucțiune pentru imprimanta fiscală:
vânzare produs, aplicare discount sau adaos, plată, text liber, CUI/CIF client, rapoarte sau alte operații disponibile.

În formatul simplificat, câmpurile sunt separate prin caracterul ^.
Comenzile sunt mai scurte decât în formatul FPrint și nu folosesc header-ul clasic ,1,______,_,__.

Format general
COMANDĂ^parametru1^parametru2^parametru3^...

Exemplu comandă simplificată pentru vânzarea unui produs:

Exemplu
S^Ceai cu miere^350^1000^buc^1^1

În exemplul de mai sus, comanda adaugă pe bon produsul Ceai cu miere,
cu prețul 3.50 RON, cantitatea 1.000, unitatea de măsură
buc, cota TVA 1 și departamentul 1.

Observații generale

  • Fiecare comandă se transmite pe o linie separată.
  • Caracterul ^ este folosit ca separator între câmpuri.
  • Caracterul ^ nu trebuie folosit în interiorul valorilor transmise, de exemplu în denumirea produsului.
  • Valorile monetare se transmit fără separator zecimal, cu 2 zecimale implicite. Exemplu: 350 înseamnă 3.50 RON.
  • Cantitățile se transmit fără separator zecimal, cu 3 zecimale implicite. Exemplu: 1000 înseamnă 1.000.
  • Formatul simplificat este util când aplicația de vânzare generează comenzi scurte sau când se dorește o integrare mai compactă.

4.1.Vânzare produs

Comanda este folosită pentru adăugarea unui produs pe bonul fiscal în format simplificat.

Exemplul de mai jos vinde 1 buc. din produsul
Ceai cu miere, la prețul de 3.50 RON,
cu TVA 1 și departamentul 1.

Format comandă
S^<Denumire produs>^<Preț în bani>^<Cantitate>^<Unitate de măsură>^<Cotă TVA>^<Departament>
Exemplu
S^Ceai cu miere^350^1000^buc^1^1

Parametri

  • <Denumire produs>
    — denumirea produsului.
    Caracterul ^ nu este permis, deoarece este folosit ca separator.
  • <Preț în bani>
    — prețul produsului, transmis cu 2 zecimale fără separator.
    Exemplu: 350 înseamnă 3.50 RON, iar 1000 înseamnă 10.00 RON.
  • <Cantitate>
    — cantitatea vândută, transmisă cu 3 zecimale fără separator.
    Exemplu: 1000 înseamnă 1.000, adică o bucată sau o unitate.
    Pentru produse cântărite, dacă prețul este pe kg, 120 înseamnă 0.120 kg, adică 120 grame.
  • <Unitate de măsură>
    — unitatea de măsură a produsului.
    Exemplu: buc, kg, l.
  • <Cotă TVA>
    — cota TVA folosită pentru produs.
    Se transmite indexul cotei TVA configurate în imprimanta fiscală.
  • <Departament>
    — codul departamentului sau al grupei de articole.
    Dacă nu se folosește departamentul, se transmite de obicei 1.

Valori acceptate pentru <Cotă TVA>

Pentru parametrul <Cotă TVA> se transmite indexul cotei TVA configurate în imprimanta fiscală.
Indexul depinde de configurarea cotelor TVA din casa de marcat.

  • 1
    Cota TVA A
  • 2
    Cota TVA B
  • 3
    Cota TVA C
  • 4
    Cota TVA D
  • 5
    Neplătitor TVA / scutit TVA

Exemple

Produs cu preț 3.50 RON și cantitate 1 bucată:

S^Ceai cu miere^350^1000^buc^1^1

Produs cu preț 12.00 RON și cantitate 2 bucăți:

S^Bere fara alcool^1200^2000^buc^1^1

Produs cântărit, preț 8.50 RON / kg și cantitate 120 grame:

S^Mere golden^850^120^kg^1^1

În exemplul de mai sus, 120 reprezintă 0.120 kg, adică 120 grame.

Mențiuni

  • În formatul simplificat, prețul se transmite în bani, fără separator zecimal.
    Exemplu: 350 pentru 3.50 RON.
  • În formatul simplificat, cantitatea se transmite cu 3 zecimale fără separator.
    Exemplu: 1000 înseamnă 1.000, adică o bucată sau o unitate.
    Pentru produse cântărite, dacă prețul este pe kg, 120 înseamnă 0.120 kg, adică 120 grame.
  • Caracterul ^ nu trebuie folosit în denumirea produsului, deoarece este separatorul câmpurilor.
  • În cazul în care utilizatorul este neplătitor de TVA, Fisco poate trimite automat produsele
    pe cota configurată pentru regimul de neplătitor TVA, conform setărilor imprimantei fiscale.

4.2.Metoda plată (Închidere Bon)

Comanda este folosită pentru închiderea bonului fiscal prin una sau mai multe metode de plată.

Exemplul de mai jos închide bonul cu plată numerar, în valoare de
3.50 RON.

Format comandă
P^<Tip plată>^<Sumă în bani>
Exemplu
P^1^350

Parametri

  • <Tip plată>
    — codul metodei de plată folosite pentru închiderea bonului.
  • <Sumă în bani>
    — suma achitată prin metoda de plată selectată, transmisă cu 2 zecimale fără separator.
    Exemplu: 350 înseamnă 3.50 RON, iar 1000 înseamnă 10.00 RON.

Valori acceptate pentru <Tip plată>

  • 1
    Numerar
  • 2
    Card
  • 3
    Credit
  • 4
    Tichet masă
  • 5
    Tichet valoric
  • 6
    Voucher
  • 7
    Plată modernă
  • 8
    Alte modalități
  • 9
    Alte modalități

Exemple

Plată numerar 3.50 RON:

P^1^350

Plată card 10.00 RON:

P^2^1000

Plată mixtă, 10.00 RON numerar și 13.00 RON card:

P^1^1000
P^2^1300

Mențiuni

Comanda de plată se transmite de obicei la finalul bonului fiscal.

Se pot transmite mai multe comenzi de plată pentru același bon, în cazul plăților mixte.

Suma totală a metodelor de plată trebuie să acopere valoarea totală a bonului.

În formatul simplificat, suma se transmite în bani, fără separator zecimal.
Exemplu: 350 pentru 3.50 RON.

Atenție: codurile metodelor de plată diferă față de formatul FPrint.
În formatul simplificat sunt cu 1 mai mari: numerar 1 în loc de 0, card 2 în loc de 1.

4.3.Discount / adaos

Comenzile sunt folosite pentru aplicarea unui discount sau a unui adaos pe bonul fiscal.
Discountul sau adaosul poate fi procentual sau valoric.

Exemplul de mai jos aplică un discount procentual de 10%.

Format comenzi
DP^<Valoare>
DV^<Valoare>
MP^<Valoare>
MV^<Valoare>
Exemplu
DP^1000

Comenzi disponibile

  • DP
    Discount procentual
  • DV
    Discount valoric
  • MP
    Adaos procentual
  • MV
    Adaos valoric

Parametri

  • <Valoare>
    — valoarea discountului sau adaosului.
    Pentru operațiile procentuale, valoarea se transmite cu două zecimale implicite:
    1000 înseamnă 10%, 500 înseamnă 5%,
    iar 1250 înseamnă 12.5%.
    Pentru operațiile valorice, valoarea se transmite în bani:
    250 înseamnă 2.50 RON.

Exemple rapide

Discount procentual de 10%:

DP^1000

Discount valoric de 2.50 RON:

DV^250

Adaos procentual de 5%:

MP^500

Adaos valoric de 2.50 RON:

MV^250

Mențiuni

Poziția comenzii de discount sau adaos este importantă.
Comanda se aplică în funcție de instrucțiunea transmisă imediat înaintea ei.

Discount / adaos aplicat unui singur articol:
dacă această comandă este transmisă imediat după o comandă de vânzare produs,
discountul sau adaosul se aplică produsului tocmai vândut.

Exemplu discount la articol
S^Ceai cu miere^1000^1000^buc^1^1
DP^1000
P^1^900

În exemplul de mai sus, se vinde produsul Ceai cu miere la prețul de
10.00 RON, apoi se aplică un discount procentual de 10%
doar pentru acest produs. Bonul se închide cu plată numerar de 9.00 RON.

Discount / adaos aplicat subtotalului:
dacă această comandă este transmisă imediat după o comandă de subtotal,
discountul sau adaosul se aplică sumei generate de articolele vândute până la acel subtotal.

Exemplu discount la subtotal
S^Ceai cu miere^1000^1000^buc^1^1
S^Cafea^2000^1000^buc^1^1
ST^
DP^1000
P^1^2700

În exemplul de mai sus, se vând două produse:
Ceai cu miere la 10.00 RON și
Cafea la 20.00 RON.
Comanda ST^ generează subtotalul de 30.00 RON, iar comanda următoare aplică un
discount procentual de 10% pe subtotal.
Bonul se închide cu plată numerar de 27.00 RON.

Pentru discount procentual sau adaos procentual, valoarea se transmite cu două zecimale implicite.
Exemplu: 500 pentru 5%, 1000 pentru 10%,
1250 pentru 12.5%.

Pentru discount valoric sau adaos valoric, valoarea se transmite în bani, fără separator zecimal.
Exemplu: 250 pentru 2.50 RON.

4.4.Subtotal

Comanda este folosită pentru afișarea subtotalului pe bonul fiscal în format simplificat.
Subtotalul nu închide bonul și nu oprește vânzarea de produse.
După comanda de subtotal se pot transmite în continuare comenzi de vânzare produs.

Format comandă
ST^
Exemplu subtotal simplu
S^Ceai cu miere^1000^1000^buc^1^1
S^Cafea^2000^1000^buc^1^1
ST^
S^Apa plata^500^1000^buc^1^1
P^1^3500

În exemplul de mai sus, se vând produsele Ceai cu miere și
Cafea, apoi se transmite comanda de subtotal.
După subtotal se mai vinde produsul Apa plata, iar bonul se închide cu plată numerar.

Subtotal urmat de discount / adaos


Dacă o comandă de discount sau adaos este transmisă imediat după comanda de subtotal,
discountul sau adaosul se aplică sumei generate de articolele vândute până la acel subtotal.

Exemplu subtotal cu discount
S^Ceai cu miere^1000^1000^buc^1^1
S^Cafea^2000^1000^buc^1^1
ST^
DP^1000
S^Apa plata^500^1000^buc^1^1
P^1^3200

În exemplul de mai sus, se vând două produse înainte de subtotal:
Ceai cu miere la 10.00 RON și
Cafea la 20.00 RON.
Subtotalul este 30.00 RON.

Comanda DP^1000 este transmisă imediat după subtotal, deci aplică un
discount procentual de 10% la subtotalul de 30.00 RON.
Valoarea după discount este 27.00 RON.
După acest discount se mai vinde produsul Apa plata la
5.00 RON, iar bonul se închide cu totalul de 32.00 RON.

Mențiuni

Comanda de subtotal nu închide bonul fiscal. Pentru închiderea bonului este necesară transmiterea unei comenzi de plată.

După comanda de subtotal se pot transmite în continuare comenzi de vânzare produs, discount, adaos sau plată, în funcție de fluxul dorit.


Pentru aplicarea unui discount sau adaos pe subtotal, comanda de discount sau adaos trebuie transmisă imediat după comanda de subtotal.

4.5.Text liber

Comanda este folosită pentru tipărirea unui text liber pe bonul fiscal în format simplificat.
Textul liber poate fi folosit pentru mesaje către client, observații sau alte informații care nu modifică totalul bonului.

Format comandă
TL^<Text>
Exemplu
TL^Va multumim pentru vizita

Parametri

  • <Text>
    — textul care va fi tipărit pe bon.
    Caracterul ^ nu este permis, deoarece este folosit ca separator.

Exemple

Tipărire o linie de text:

TL^Va multumim pentru vizita

Tipărire mai multe linii de text:

TL^Va multumim
TL^pentru vizita
TL^va mai asteptam

Mențiuni

Textul liber nu reprezintă o vânzare de produs și nu modifică totalul bonului fiscal.

Pentru tipărirea mai multor linii de text, se transmite câte o comandă TL^ pentru fiecare linie.

Numărul de caractere care poate fi tipărit pe o linie depinde de lățimea hârtiei și de fontul folosit de imprimanta fiscală.

4.6.CUI/CIF pe bonul fiscal

Comanda este folosită pentru tipărirea CUI-ului sau CIF-ului clientului pe bonul fiscal în format simplificat.
Aceasta se folosește atunci când clientul solicită emiterea bonului cu date de identificare fiscală.

Comanda se transmite la începutul bonului, înainte de comenzile de vânzare produs.

Format comandă
CF^<CUI/CIF client>
Exemplu
CF^RO22352741

Parametri

  • <CUI/CIF client>
    — codul fiscal al clientului. Poate fi transmis cu sau fără prefixul de țară, de exemplu RO22352741 sau 22352741.

Exemplu bon cu CUI/CIF client

CF^RO22352741
S^Ceai cu miere^350^1000^buc^1^1
P^1^350

În exemplul de mai sus, bonul conține CUI/CIF-ul clientului RO22352741,
apoi se vinde produsul Ceai cu miere, iar bonul se închide cu plată numerar.

Mențiuni

Comanda pentru CUI/CIF client trebuie transmisă înainte de prima comandă de vânzare produs.

Dacă bonul nu trebuie emis cu CUI/CIF client, această comandă nu se transmite.

4.7.Introducere / Restragere numerar

Comenzile sunt folosite pentru introducerea sau scoaterea unei sume de numerar din sertarul casei, în format simplificat.
Aceste operații nu reprezintă vânzări de produse și nu se includ în totalul unui bon fiscal.

Comenzile se folosesc pentru operații de casă, de exemplu pentru introducerea banilor de rest la începutul zilei de lucru sau pentru scoaterea numerarului folosit la plăți către furnizori.

Format comandă introducere numerar
I^<Sumă în bani>
Format comandă scoatere numerar
O^<Sumă în bani>

Parametri

  • <Sumă în bani>
    — suma introdusă sau scoasă din sertar, transmisă cu 2 zecimale fără separator.
    Exemplu: 1000 înseamnă 10.00 RON, iar 5000 înseamnă 50.00 RON.

Exemple

Introducerea banilor de rest la începutul zilei de lucru, 100.00 RON:

I^10000

Scoaterea numerarului pentru o plată către furnizor, 50.00 RON:

O^5000

Mențiuni

Comanda I^ este folosită pentru introducerea numerarului în sertar.

Comanda O^ este folosită pentru scoaterea numerarului din sertar.

Aceste comenzi se execută independent de bonul fiscal și nu trebuie transmise în interiorul unui bon deschis.

Introducerea de numerar poate fi folosită la începutul zilei de lucru, atunci când se pun bani în sertar pentru acordarea restului către clienți.

Scoaterea de numerar poate fi folosită atunci când se scot bani din casă, de exemplu pentru plăți către furnizori sau alte cheltuieli operaționale.

Operația poate genera un document nefiscal sau o înregistrare internă, în funcție de modelul imprimantei fiscale.

4.8.Printare Raport Z, X

Comenzile sunt folosite pentru tipărirea rapoartelor disponibile pe imprimanta fiscală, în format simplificat.
Rapoartele sunt folosite pentru verificarea vânzărilor și pentru închiderea zilei fiscale.

Această secțiune prezintă raportul X și raportul Z.

Comandă raport X
X^
Comandă raport Z
Z^

Comenzi disponibile

  • X^
    Raport X
  • Z^
    Raport Z

Exemple

Tipărire raport X:

X^

Tipărire raport Z:

Z^

Mențiuni

Raportul X este folosit pentru verificarea situației curente a vânzărilor, fără închiderea zilei fiscale.

Raportul Z închide ziua fiscală.
După tipărirea raportului Z, totalurile fiscale acumulate de la ultimul raport Z sunt închise și memorate de imprimanta fiscală.

Raportul Z trebuie tipărit în maximum 24 de ore de la prima vânzare fiscală efectuată după ultimul raport Z.
Dacă acest termen este depășit, imprimanta fiscală nu mai permite emiterea altor bonuri fiscale până la tipărirea raportului Z.

4.9.Exemple complete sintaxa simplificata

Această secțiune conține exemple complete de fișiere de comenzi în format simplificat.
Fiecare exemplu poate fi salvat într-un fișier text și transmis către Fisco conform metodei de integrare folosite.

Bon fiscal simplu, achitat numerar

Exemplu
S^Ceai cu miere^350^1000^buc^2^1
S^Bere Clausthaler NA^1200^1000^buc^2^1
S^Cappuccino^400^1000^buc^2^1
P^1^1950

În acest exemplu se vând trei produse, iar bonul este închis cu plată numerar în valoare de 19.50 RON.

Bon fiscal cu metode multiple de plată: numerar și card

Exemplu
S^Fanta 0 33^350^1000^buc^2^1
S^Cappy^450^1000^buc^2^1
S^Aloe Vera 0 5^1100^1000^buc^2^1
S^Pepsi^400^1000^buc^2^1
P^1^1000
P^2^1300

În acest exemplu, totalul bonului este 23.00 RON.
Se achită 10.00 RON numerar și 13.00 RON card.

Bon fiscal cu discount 5% pe produs și text simplu

Exemplu
S^CAIET CLASIC A4 60F VE^380^5000^buc^1^1
DP^500
S^SACOSA IMPRIMATA 400X3^60^1000^buc^1^1
TL^Eco Taxa este inclusa in pret
P^1^1865

În acest exemplu, comanda DP^500 este transmisă imediat după vânzarea produsului
CAIET CLASIC A4 60F VE, deci discountul de 5% se aplică doar acelui produs.
După aceea se vinde sacoșa, se tipărește un text liber, iar bonul este închis cu plată numerar.

Bon fiscal cu text liber

Exemplu
S^CAIET CLASIC A4 60F VE^380^5000^buc^1^1
S^SACOSA IMPRIMATA 400X3^60^1000^buc^1^1
TL^Eco Taxa este inclusa in pretul sacosei
P^1^1960

În acest exemplu se vând două produse, se tipărește un text liber pe bon, iar bonul este închis cu plată numerar.

Bon fiscal cu CUI/CIF client

Exemplu
CF^RO22352741
S^Ceai cu miere^350^1000^buc^2^1
S^Bere Clausthaler NA^1200^1000^buc^2^1
S^Cappuccino^400^1000^buc^2^1
P^1^1950

În acest exemplu, bonul conține CUI/CIF-ul clientului RO22352741, apoi se vând produsele și bonul este închis cu plată numerar.

Fișier introducere numerar în sertar

Exemplu
I^6000

Acest exemplu introduce 60.00 RON numerar în sertar.
Operația poate fi folosită, de exemplu, la începutul zilei de lucru pentru banii de rest.

Fișier scoatere numerar din sertar

Exemplu
O^2000

Acest exemplu scoate 20.00 RON numerar din sertar.
Operația poate fi folosită, de exemplu, pentru plăți numerar către furnizori sau alte cheltuieli operaționale.

Fișier printare raport X

Exemplu
X^

Acest exemplu tipărește raportul X, folosit pentru verificarea situației curente a vânzărilor, fără închiderea zilei fiscale.

Fișier printare raport Z

Exemplu
Z^

Acest exemplu tipărește raportul Z.
Raportul Z închide ziua fiscală și memorează totalurile fiscale acumulate de la ultimul raport Z.

5.Comenzi format FPrint

Formatul FPrint este formatul clasic de comenzi acceptat de Fisco pentru integrarea cu aplicații POS, ERP sau alte sisteme de vânzare.
Acest format este păstrat pentru compatibilitate cu aplicațiile existente care generează deja comenzi în stil FPrint.

Comenzile sunt transmise ca linii text, fiecare linie reprezentând o instrucțiune pentru imprimanta fiscală:
vânzare produs, aplicare discount sau adaos, plată, text liber, raport fiscal sau alte operații disponibile.

În formatul FPrint, câmpurile sunt separate prin caracterul ;.
Prima parte a comenzii reprezintă header-ul standard, iar câmpurile următoare reprezintă parametrii specifici operației.

Format general
COD,1,______,_,__;parametru1;parametru2;parametru3;...

Exemplu de comandă pentru vânzarea unui produs:

Exemplu
S,1,______,_,__;Ceai cu miere;3.50;1.000;1;1;1;0;0;buc

În exemplul de mai sus, comanda adaugă pe bon produsul Ceai cu miere,
cu prețul 3.50 RON, cantitatea 1.000, departamentul
1, cota TVA 1 și unitatea de măsură buc.

Observații generale

  • Fiecare comandă se transmite pe o linie separată.
  • Caracterul ; este folosit ca separator între câmpuri.
  • Caracterul ; nu trebuie folosit în interiorul valorilor transmise, de exemplu în denumirea produsului.
  • Valorile monetare se transmit cu separator zecimal, de exemplu 3.50.
  • Cantitățile se transmit cu maximum 3 zecimale, de exemplu 1.000.
  • Header-ul de forma ,1,______,_,__ este păstrat pentru compatibilitate cu formatul FPrint.

5.1.Vânzare produs

Comanda este folosită pentru adăugarea unui produs pe bonul fiscal.

Exemplul de mai jos vinde produsul Ceai cu miere, cu prețul
3.50 RON, cantitatea 1.000, departamentul
1, cota TVA 1 și unitatea de măsură buc.

Format comandă
S,1,______,_,__;<Denumire produs>;<Preț>;<Cantitate>;<Departament>;1;<Cotă TVA>;0;0;<Unitate de măsură>
Exemplu
S,1,______,_,__;Ceai cu miere;3.50;1.000;1;1;1;0;0;buc

Parametri

  • <Denumire produs>
    — denumirea produsului, maximum 72 de caractere.
    Caracterul ; nu este permis, deoarece este folosit ca separator.
  • <Preț>
    — prețul produsului, cu maximum 2 zecimale.
    Exemplu: 3.50.
  • <Cantitate>
    — cantitatea vândută, cu maximum 3 zecimale.
    Exemplu: 1.000.
  • <Departament>
    — codul departamentului, maximum 99.
    Se transmite 0 dacă se vinde fără departament.
  • <Cotă TVA>
    — cota TVA folosită pentru produs.
    Se poate transmite fie indexul cotei TVA configurate în imprimanta fiscală, fie procentul TVA cu semnul %.
  • <Unitate de măsură>
    — unitatea de măsură a produsului, maximum 6 caractere.
    Dacă lipsește, se listează automat cu buc.

Valori acceptate pentru <Cotă TVA>

Pentru parametrul <Cotă TVA> se poate transmite fie
indexul cotei TVA configurate în imprimanta fiscală, fie
procentul TVA.

Transmitere prin index de cotă TVA

În acest caz se transmite direct indexul cotei TVA configurate în imprimanta fiscală.
Indexul depinde de configurarea cotelor TVA din casa de marcat.

  • 1
    Cota TVA A
  • 2
    Cota TVA B
  • 3
    Cota TVA C
  • 4
    Cota TVA D
  • 5
    Neplătitor TVA / scutit TVA
Exemplu folosind indexul cotei TVA
S,1,______,_,__;Ceai cu miere;3.50;1.000;1;1;1;0;0;buc

Transmitere prin procent TVA

În locul indexului se poate transmite procentul TVA, folosind semnul %.
În acest caz, Fisco caută automat prima cotă TVA configurată în imprimanta fiscală care are procentul transmis.
Dacă nu există nicio cotă TVA cu procentul respectiv, Fisco returnează eroare.

  • 21%
    Fisco caută prima cotă TVA configurată cu procentul 21%.
  • 11%
    Fisco caută prima cotă TVA configurată cu procentul 11%.
  • 0%
    Fisco caută prima cotă TVA configurată cu procentul 0%, dacă există în imprimanta fiscală.
Exemplu folosind procentul TVA
S,1,______,_,__;Ceai cu miere;3.50;1.000;1;1;21%;0;0;buc

Mențiuni

  • Valorile fixe din comandă, cum ar fi 1, 0 și 0,
    sunt păstrate pentru compatibilitate cu formatul FPrint și se transmit ca în exemplu.
  • Prețul negativ pentru voidare este permis doar pentru anumite modele de imprimante fiscale,
    în funcție de protocolul și configurația dispozitivului.
  • În cazul în care utilizatorul este neplătitor de TVA, Fisco poate trimite automat produsele
    pe cota configurată pentru regimul de neplătitor TVA, conform setărilor imprimantei fiscale.
  • Caracterul % din denumirea produsului poate fi filtrat pentru a evita comportamente
    nedorite pe anumite modele de imprimante fiscale.

5.2.Metoda plată (Închidere Bon)

Comanda este folosită pentru închiderea bonului fiscal prin una sau mai multe metode de plată.

Exemplul de mai jos închide bonul cu plată numerar, în valoare de
3.50 RON.

Format comandă
T,1,______,_,__;<Tip plată>;<Sumă>;;;
Exemplu plată numerar
T,1,______,_,__;0;3.50;;;;
Exemplu plată card
T,1,______,_,__;1;3.50;;;;

Parametri

  • <Tip plată>
    — codul metodei de plată folosite pentru închiderea bonului.
  • <Sumă>
    — suma achitată prin metoda de plată selectată, exprimată în RON, cu maximum 2 zecimale.
    Exemplu: 3.50.

Valori acceptate pentru <Tip plată>

  • 0
    Numerar
  • 1
    Card
  • 2
    Credit
  • 3
    Tichete masă
  • 4
    Tichete valorice
  • 5
    Voucher
  • 6
    Plată modernă
  • 8
    Alte metode

Exemple

Plată numerar 3.50 RON:

T,1,______,_,__;0;3.50;;;;

Plată card 3.50 RON:

T,1,______,_,__;1;3.50;;;;

Plată mixtă, 2.00 RON numerar și 1.50 RON card:

T,1,______,_,__;0;2.00;;;;
T,1,______,_,__;1;1.50;;;;

Mențiuni

  • Comanda de plată se transmite de obicei la finalul bonului fiscal, după vânzarea produselor și aplicarea eventualelor reduceri sau adaosuri.
  • Se pot transmite mai multe comenzi de plată pentru același bon, în cazul plăților mixte.
  • Suma totală a metodelor de plată trebuie să acopere valoarea totală a bonului.
  • Disponibilitatea anumitor metode de plată poate depinde de modelul imprimantei fiscale și de configurația acesteia.

5.3.Discount / adaos

Comanda este folosită pentru aplicarea unui discount sau a unui adaos pe bonul fiscal.
Discountul sau adaosul poate fi procentual sau valoric.

Exemplul de mai jos aplică un discount procentual de 10%.

Format comandă
C,1,______,_,__;<Tip>;<Valoare>;;;
Exemplu
C,1,______,_,__;1;10.00;;;;

Parametri

  • <Tip>
    — tipul operației: adaos procentual, discount procentual, adaos valoric sau discount valoric.
  • <Valoare>
    — valoarea discountului sau adaosului.
    Pentru operațiile procentuale se transmite procentul, de exemplu 10.00.
    Pentru operațiile valorice se transmite suma în RON, de exemplu 2.50.

Valori acceptate pentru <Tip>

  • 0
    Adaos procentual
  • 1
    Discount procentual
  • 2
    Adaos valoric
  • 3
    Discount valoric

Exemple rapide

Adaos procentual de 5%:

C,1,______,_,__;0;5.00;;;;

Discount procentual de 10%:

C,1,______,_,__;1;10.00;;;;

Adaos valoric de 2.50 RON:

C,1,______,_,__;2;2.50;;;;

Discount valoric de 2.50 RON:

C,1,______,_,__;3;2.50;;;;

Mențiuni

Poziția comenzii de discount sau adaos este importantă.
Comanda se aplică în funcție de instrucțiunea transmisă imediat înaintea ei.

Discount / adaos aplicat unui singur articol:
dacă această comandă este transmisă imediat după o comandă de vânzare produs,
discountul sau adaosul se aplică produsului tocmai vândut.

Exemplu discount la articol
S,1,______,_,__;Ceai cu miere;10.00;1.000;1;1;1;0;0;buc
C,1,______,_,__;1;10.00;;;;
T,1,______,_,__;0;9.00;;;;

În exemplul de mai sus, se vinde produsul Ceai cu miere la prețul de
10.00 RON, apoi se aplică un discount procentual de 10%
doar pentru acest produs. Bonul se închide cu plată numerar de 9.00 RON.

Discount / adaos aplicat subtotalului:
dacă această comandă este transmisă imediat după o comandă de subtotal,
discountul sau adaosul se aplică sumei generate de articolele vândute până la acel subtotal.

Exemplu discount la subtotal
S,1,______,_,__;Ceai cu miere;10.00;1.000;1;1;1;0;0;buc
S,1,______,_,__;Cafea;20.00;1.000;1;1;1;0;0;buc
T,1,______,_,__;4;;;;;
C,1,______,_,__;1;10.00;;;;
T,1,______,_,__;0;27.00;;;;

În exemplul de mai sus, se vând două produse:
Ceai cu miere la 10.00 RON și
Cafea la 20.00 RON.
Comanda T,1,______,_,__;4;;;;; generează subtotalul de
30.00 RON, iar comanda următoare aplică un
discount procentual de 10% pe subtotal.
Bonul se închide cu plată numerar de 27.00 RON.

Pentru discount procentual sau adaos procentual, valoarea se transmite ca procent,
de exemplu 10.00 pentru 10%.

Pentru discount valoric sau adaos valoric, valoarea se transmite în RON,
cu maximum 2 zecimale, de exemplu 2.50.

Disponibilitatea discountului sau adaosului poate depinde de modelul imprimantei fiscale
și de configurația acesteia.

5.4.Subtotal

Comanda este folosită pentru afișarea subtotalului pe bonul fiscal.
Subtotalul nu închide bonul și nu oprește vânzarea de produse.
După comanda de subtotal se pot transmite în continuare comenzi de vânzare produs.

Format comandă
T,1,______,_,__;4;;;;;

Alternativ, se poate folosi și comanda:

L,1,______,_,__;;;;;;

Exemplu subtotal simplu

S,1,______,_,__;Ceai cu miere;10.00;1.000;1;1;1;0;0;buc
S,1,______,_,__;Cafea;20.00;1.000;1;1;1;0;0;buc
T,1,______,_,__;4;;;;;
S,1,______,_,__;Apa plata;5.00;1.000;1;1;1;0;0;buc
T,1,______,_,__;0;35.00;;;;

În exemplul de mai sus, se vând produsele Ceai cu miere și
Cafea, apoi se transmite comanda de subtotal.
După subtotal se mai vinde produsul Apa plata, iar bonul se închide cu plată numerar.

Subtotal urmat de discount / adaos


Dacă o comandă de discount sau adaos este transmisă imediat după comanda de subtotal,
discountul sau adaosul se aplică sumei generate de articolele vândute până la acel subtotal.

Exemplu subtotal cu discount
S,1,______,_,__;Ceai cu miere;10.00;1.000;1;1;1;0;0;buc
S,1,______,_,__;Cafea;20.00;1.000;1;1;1;0;0;buc
T,1,______,_,__;4;;;;;
C,1,______,_,__;1;10.00;;;;
S,1,______,_,__;Apa plata;5.00;1.000;1;1;1;0;0;buc
T,1,______,_,__;0;32.00;;;;

În exemplul de mai sus, se vând două produse înainte de subtotal:
Ceai cu miere la 10.00 RON și
Cafea la 20.00 RON.
Subtotalul este 30.00 RON.

Comanda de discount este transmisă imediat după subtotal, deci aplică un
discount procentual de 10% la subtotalul de 30.00 RON.
Valoarea după discount este 27.00 RON.
După acest discount se mai vinde produsul Apa plata la
5.00 RON, iar bonul se închide cu totalul de 32.00 RON.

Mențiuni

Comanda de subtotal nu închide bonul fiscal. Pentru închiderea bonului este necesară transmiterea unei comenzi de plată.

După comanda de subtotal se pot transmite în continuare comenzi de vânzare produs, discount, adaos sau plată, în funcție de fluxul dorit.


Pentru aplicarea unui discount sau adaos pe subtotal, comanda de discount sau adaos trebuie transmisă imediat după comanda de subtotal.

5.5.Text liber

Comanda este folosită pentru tipărirea unui text liber pe bonul fiscal.
Textul liber poate fi folosit pentru mesaje către client, observații, informații comerciale sau alte mențiuni permise de imprimanta fiscală.

Exemplul de mai jos tipărește trei linii de text pe bon.

Format comandă
P,1,______,_,__;<Linia 1>;<Linia 2>;<Linia 3>;;
Exemplu
P,1,______,_,__;Va multumim;pentru vizita;va mai asteptam;;

Parametri

  • <Linia 1>
    — prima linie de text care va fi tipărită pe bon.
  • <Linia 2>
    — a doua linie de text care va fi tipărită pe bon.
  • <Linia 3>
    — a treia linie de text care va fi tipărită pe bon.

Exemple

O singură linie de text:

P,1,______,_,__;Va multumim;;;;

Două linii de text:

P,1,______,_,__;Va multumim;pentru vizita;;;

Trei linii de text:

P,1,______,_,__;Va multumim;pentru vizita;va mai asteptam;;

Mențiuni

Caracterul ; nu trebuie folosit în interiorul textului, deoarece este separatorul câmpurilor în formatul FPrint.

Numărul de caractere care poate fi tipărit pe o linie depinde de modelul imprimantei fiscale, lățimea hârtiei și fontul folosit.

Textul liber nu reprezintă o vânzare de produs și nu modifică totalul bonului fiscal.

Disponibilitatea și poziția textului liber pe bon pot depinde de modelul imprimantei fiscale și de configurația acesteia.

5.6.CUI/CIF pe bonul fiscal

Comanda este folosită pentru deschiderea unui bon fiscal cu CUI / CIF client.
Aceasta permite tipărirea codului fiscal al clientului pe bon, atunci când este necesar.

Comanda se transmite la începutul bonului, înainte de comenzile de vânzare produs.

Format comandă
K,1,______,_,__;<CUI client>;
Exemplu
K,1,______,_,__;RO22352741;

Parametri

  • <CUI client>
    — codul fiscal al clientului. Poate fi transmis cu sau fără prefixul de țară, în funcție de modul în care este introdus în aplicația de vânzare.

Exemplu bon cu CUI client

K,1,______,_,__;RO22352741;
S,1,______,_,__;Ceai cu miere;3.50;1.000;1;1;1;0;0;buc
T,1,______,_,__;0;3.50;;;;

În exemplul de mai sus, bonul este deschis cu CUI-ul clientului RO22352741,
apoi se vinde produsul Ceai cu miere, iar bonul se închide cu plată numerar.

Mențiuni

Comanda pentru CUI client trebuie transmisă înainte de prima comandă de vânzare produs.

Dacă bonul nu trebuie emis cu CUI client, această comandă nu se transmite.

5.7.Introducere / Restragere numerar

Comanda este folosită pentru introducerea sau retragerea unei sume de numerar din sertarul casei.
Această operație nu reprezintă o vânzare de produs și nu se include în totalul unui bon fiscal.

Comanda se folosește pentru operații de casă, de exemplu pentru introducerea banilor de rest la începutul zilei de lucru sau pentru retragerea numerarului folosit la plăți către furnizori.

Format comandă
I,1,______,_,__;<Tip operație>;<Sumă>;;;
Exemplu introducere sumă
I,1,______,_,__;0;100.00;;;;
Exemplu retragere sumă
I,1,______,_,__;1;50.00;;;;

Parametri

  • <Tip operație>
    — indică tipul operației: introducere sumă sau retragere sumă.
  • <Sumă>
    — suma introdusă sau retrasă, exprimată în RON, cu maximum 2 zecimale.
    Exemplu: 100.00.

Valori acceptate pentru <Tip operație>

  • 0
    Introducere sumă
  • 1
    Retragere sumă

Exemple

Introducerea banilor de rest la începutul zilei de lucru, 100.00 RON:

I,1,______,_,__;0;100.00;;;;

Retragerea numerarului pentru o plată către furnizor, 50.00 RON:

I,1,______,_,__;1;50.00;;;;

Mențiuni

Această comandă se execută independent de bonul fiscal și nu trebuie transmisă în interiorul unui bon deschis.

Introducerea de sumă poate fi folosită la începutul zilei de lucru, atunci când se pun bani în sertar pentru acordarea restului către clienți.

Retragerea de sumă poate fi folosită atunci când se scot bani numerar din casă, de exemplu pentru plăți către furnizori sau alte cheltuieli operaționale.

Operația poate genera un document nefiscal sau o înregistrare internă, în funcție de modelul imprimantei fiscale.

5.8.Printare Raport Z, X, Departamente

Comanda este folosită pentru tipărirea rapoartelor disponibile pe imprimanta fiscală.
Rapoartele sunt folosite pentru verificarea vânzărilor, totalurilor și activității pe departamente.

Această secțiune prezintă raportul X, raportul Z și raportul pe departamente.

Format comandă
Z,1,______,_,__;<Tip raport>;
Exemplu raport X
Z,1,______,_,__;0;
Exemplu raport Z
Z,1,______,_,__;1;
Exemplu raport departamente
Z,1,______,_,__;3;

Parametri

  • <Tip raport>
    — indică tipul raportului care trebuie tipărit.

Valori acceptate pentru <Tip raport>

  • 0
    Raport X
  • 1
    Raport Z
  • 3
    Raport pe departamente

Exemple

Tipărire raport X:

Z,1,______,_,__;0;

Tipărire raport Z:

Z,1,______,_,__;1;

Tipărire raport pe departamente:

Z,1,______,_,__;3;

Mențiuni

Raportul X este folosit pentru verificarea situației curente a vânzărilor, fără închiderea zilei fiscale.

Raportul Z închide ziua fiscală.
După tipărirea raportului Z, totalurile fiscale acumulate de la ultimul raport Z sunt închise și memorate de imprimanta fiscală.

Raportul Z trebuie tipărit în maximum 24 de ore de la prima vânzare fiscală efectuată după ultimul raport Z.
Dacă acest termen este depășit, imprimanta fiscală nu mai permite emiterea altor bonuri fiscale până la tipărirea raportului Z.

Raportul pe departamente este folosit pentru verificarea vânzărilor grupate pe departamente sau grupe de articole.

5.9.Exemple complete sintaxa FPrint

Această secțiune conține exemple complete de fișiere de comenzi în format FPrint.
Fiecare exemplu poate fi salvat într-un fișier text și transmis către Fisco conform metodei de integrare folosite.

Comentariile din exemple, marcate cu # sau //, sunt folosite doar pentru explicații.
Dacă aplicația de integrare nu acceptă comentarii în fișierele de comandă, acestea trebuie eliminate înainte de trimiterea către Fisco.

Bon fiscal simplu, achitat numerar

Exemplu
S,1,______,_,__;Ceai cu miere;3.50;1.000;1;1;2;0;0;buc
S,1,______,_,__;Bere Clausthaler NA;12.00;1.000;1;1;2;0;0;buc
S,1,______,_,__;Cappuccino;4.00;1.000;1;1;2;0;0;buc
T,1,______,_,__;0;19.50;;;;

În acest exemplu se vând trei produse, iar bonul este închis cu plată numerar în valoare de 19.50 RON.

Bon fiscal cu metode multiple de plată: numerar și card

Exemplu
S,1,______,_,__;Fanta 0 33;3.50;1.000;1;1;2;0;0;buc
S,1,______,_,__;Cappy;4.50;1.000;1;1;2;0;0;buc
S,1,______,_,__;Aloe Vera 0 5;11.00;1.000;1;1;2;0;0;buc
S,1,______,_,__;Pepsi;4.00;1.000;1;1;2;0;0;buc
T,1,______,_,__;0;10.00;;;;
T,1,______,_,__;1;13.00;;;;

În acest exemplu, totalul bonului este 23.00 RON.
Se achită 10.00 RON numerar și 13.00 RON card.

Bon fiscal cu discount 5% pe produs și text simplu

Exemplu
S,1,______,_,__;CAIET CLASIC A4 60F VE;3.80;5.000;1;1;1;0;0;buc
C,1,______,_,__;1;5.00;;;;
S,1,______,_,__;SACOSA IMPRIMATA 400X3;0.60;1.000;1;1;1;0;0;buc
P,1,______,_,__;Eco Taxa este inclusa in pret;;;;;
T,1,______,_,__;0;18.65;;;;

În acest exemplu, comanda de discount este transmisă imediat după vânzarea produsului
CAIET CLASIC A4 60F VE, deci discountul de 5% se aplică doar acelui produs.
După aceea se vinde sacoșa, se tipărește un text liber, iar bonul este închis cu plată numerar.

Bon fiscal cu text liber avansat

Exemplu
S,1,______,_,__;CAIET CLASIC A4 60F VE;3.80;5.000;1;1;1;0;0;buc
S,1,______,_,__;SACOSA IMPRIMATA 400X3;0.60;1.000;1;1;1;0;0;buc
54,Eco Taxa este inclusa in pretul sacosei^1^1^1^1^1^
T,1,______,_,__;0;;;;;

În acest exemplu, comanda 54 este folosită pentru tipărirea unui text formatat.
Textul este tipărit cu opțiuni de formatare precum bold, dublă înălțime, dublă lățime și centrare, în funcție de parametrii trimiși și de capabilitățile imprimantei fiscale.

În comanda de plată, suma nu este specificată. În acest caz, Fisco poate completa automat valoarea de plată cu totalul produselor din bon.

Bon fiscal cu cod de bare EAN13

Exemplu
S,1,______,_,__;Ceai cu miere;3.50;1.000;1;1;2;0;0;buc
S,1,______,_,__;Bere Clausthaler NA;12.00;1.000;1;1;2;0;0;buc
S,1,______,_,__;Cappuccino;4.00;1.000;1;1;2;0;0;buc
84,2	8410376017113	
T,1,______,_,__;0;19.50;;;;

În acest exemplu, după vânzarea produselor se tipărește un cod de bare EAN13 cu valoarea
8410376017113, apoi bonul este închis cu plată numerar.

Fișier introducere sumă în sertar

Exemplu
I,1,______,_,__;0;60.00;;;;

Acest exemplu introduce 60.00 RON numerar în sertar.
Operația poate fi folosită, de exemplu, la începutul zilei de lucru pentru banii de rest.

Fișier retragere sumă din sertar

Exemplu
I,1,______,_,__;1;20.00;;;;

Acest exemplu retrage 20.00 RON numerar din sertar.
Operația poate fi folosită, de exemplu, pentru plăți numerar către furnizori sau alte cheltuieli operaționale.

Fișier printare raport X

Exemplu
Z,1,______,_,__;0;

Acest exemplu tipărește raportul X, folosit pentru verificarea situației curente a vânzărilor, fără închiderea zilei fiscale.

Fișier printare raport Z

Exemplu
Z,1,______,_,__;1;

Acest exemplu tipărește raportul Z.
Raportul Z închide ziua fiscală și memorează totalurile fiscale acumulate de la ultimul raport Z.

6.Comenzi speciale: text formatat și coduri de bare

Această secțiune descrie comenzi speciale pentru tipărirea de text formatat, coduri de bare și coduri QR.
Comenzile pot fi folosite împreună cu fișierele de comenzi în format FPrint sau în format simplificat.

Comenzile din această secțiune nu reprezintă vânzări de produse și nu modifică totalul bonului fiscal.
Ele sunt folosite pentru tipărirea de informații suplimentare pe bon.

Notă: disponibilitatea acestor comenzi depinde de modelul imprimantei fiscale.
Comanda pentru text formatat este disponibilă doar pentru imprimante fiscale Datecs care suportă această funcționalitate.

Text formatat

Comanda este folosită pentru tipărirea unui text pe bon cu opțiuni de formatare:
bold, italic, înălțime dublă, subliniere și aliniere.

Format comandă
54,<Text>^<Bold>^<Italic>^<DoubleH>^<Underline>^<Aliniere>^
Exemplu
54,Text nefiscal^1^1^1^1^1^

Parametri text formatat

  • <Text>
    — textul care va fi tipărit. Lungime maximă recomandată: 42 de caractere.
  • <Bold>
    — activează tipărirea cu caractere bold. Valori: 0 sau 1.
  • <Italic>
    — activează tipărirea cu caractere italic. Valori: 0 sau 1.
  • <DoubleH>
    — activează tipărirea cu înălțime dublă. Valori: 0 sau 1.
  • <Underline>
    — activează tipărirea subliniată. Valori: 0 sau 1.
  • <Aliniere>
    — stabilește alinierea textului.

Valori pentru formatare

  • 0
    Opțiune dezactivată
  • 1
    Opțiune activată
  • gol
    Valoare implicită / text normal

Valori pentru <Aliniere>

  • 0
    Stânga
  • 1
    Centru
  • 2
    Dreapta
  • gol
    Valoare implicită

Exemple text formatat

Text simplu:

54,Text nefiscal^^^^^^

Text bold:

54,Text nefiscal^1^^^^^

Text centrat:

54,Text nefiscal^^^^^1^

Text bold, înălțime dublă și centrat:

54,Text nefiscal^1^^1^^1^

Cod de bare / QR Code

Comanda este folosită pentru tipărirea unui cod de bare sau a unui cod QR pe bon.

Format comandă
84,<Tip>^<Date>^<Dimensiune QR>^
Exemplu EAN13
84,2^8410376017113^
Exemplu QR Code
84,4^8410376017113^5^

Parametri cod de bare / QR Code

  • <Tip>
    — tipul codului de bare sau QR care trebuie tipărit.
  • <Date>
    — informația care va fi codificată în codul de bare sau în codul QR.
  • <Dimensiune QR>
    — multiplicator pentru dimensiunea codului QR. Parametru opțional, folosit doar pentru cod QR.

Valori acceptate pentru <Tip>

  • 1
    EAN8 — câmpul Date trebuie să conțină exact 8 cifre
  • 2
    EAN13 — câmpul Date trebuie să conțină exact 13 cifre
  • 3
    Code128 — caractere ASCII între 32 și 127, lungime între 3 și 31 caractere
  • 4
    QR Code — caractere ASCII între 32 și 127, lungime între 3 și 279 caractere
  • 5
    Interleaved 2 of 5 — doar cifre, lungime între 3 și 22 cifre

Dimensiune QR

Pentru codurile QR, parametrul <Dimensiune QR> este opțional.
Se poate transmite o valoare între 3 și 10.
Dacă nu este transmisă, se folosește valoarea implicită 5.

Exemple coduri de bare / QR Code

Cod EAN13:

84,2^8410376017113^

Cod QR cu dimensiune implicită:

84,4^8410376017113^

Cod QR cu dimensiune specificată:

84,4^8410376017113^7^

Mențiuni

Textul formatat, codul de bare și codul QR nu reprezintă vânzări de produse și nu modifică totalul bonului fiscal.

Lungimea și conținutul câmpului <Date> trebuie să respecte regulile tipului de cod ales.
De exemplu, pentru EAN13 se transmit exact 13 cifre.

Pentru codurile QR, dacă parametrul <Dimensiune QR> nu este transmis, se folosește dimensiunea implicită.