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.
| 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.
| 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.
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
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.
| 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.
GET /api/v1/health
curl http://127.0.0.1:4040/api/v1/health
{
"ok": true,
"service": "fisco-driver",
"server": "running",
"printer": {
"ready": true,
"status": "ready",
"error": ""
}
}
{
"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.
{
"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.
-
350reprezintă3.50unități monetare. -
1000reprezintă cantitatea1.000. -
1950reprezintă suma de plată19.50.
{
"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.
GET /api/v1/status?job_id={job_id}
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. |
{
"ok": true,
"job_id": "http_20260512_173854_384_23959",
"status": "queued",
"result": {}
}
{
"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 estereceipt. -
CommandName
— comanda fiscală care a generat răspunsul. -
ErrorCode
— codul de eroare returnat de imprimanta fiscală. Valoarea0
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.
{
"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 estereport. -
CommandName
— comanda fiscală care a generat răspunsul. -
ErrorCode
— codul de eroare returnat de imprimanta fiscală. Valoarea0
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.
{
"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.
{
"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.
GET /api/v1/status
GET /api/v1/status?limit=10
{
"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.
GET /api/v1/last-receipt
{
"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"
}
}
{
"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=....
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
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_idreturnat 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
saufailed. -
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âmpulerror.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ă.
{
"ok": false,
"status": "rejected",
"error": {
"code": "PRINTER_NOT_READY",
"message": "Depasire 24h Raport Z imprimanta fiscala"
}
}
Motive posibile:
Fiscal Driver processing is offLipsa conexiune cu imprimanta fiscalaDepasire 24h Raport Z imprimanta fiscalaPrinter 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 #.
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
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.
[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.
[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șiBonERR. - 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.
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,______,_,__.
COMANDĂ^parametru1^parametru2^parametru3^...
Exemplu comandă simplificată pentru vânzarea unui produs:
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.
S^<Denumire produs>^<Preț în bani>^<Cantitate>^<Unitate de măsură>^<Cotă TVA>^<Departament>
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, iar1000î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 obicei1.
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:350pentru3.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.
P^<Tip plată>^<Sumă în bani>
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, iar1000î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%.
DP^<Valoare>
DV^<Valoare>
MP^<Valoare>
MV^<Valoare>
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%,
iar1250î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.
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.
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.
ST^
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.
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.
TL^<Text>
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.
CF^<CUI/CIF client>
CF^RO22352741
Parametri
-
<CUI/CIF client>
— codul fiscal al clientului. Poate fi transmis cu sau fără prefixul de țară, de exempluRO22352741sau22352741.
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.
I^<Sumă în bani>
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, iar5000î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.
X^
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
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
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
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
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
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
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
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
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
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.
COD,1,______,_,__;parametru1;parametru2;parametru3;...
Exemplu de comandă pentru vânzarea unui produs:
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.
S,1,______,_,__;<Denumire produs>;<Preț>;<Cantitate>;<Departament>;1;<Cotă TVA>;0;0;<Unitate de măsură>
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 transmite0dacă 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 cubuc.
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
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ă.
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și0,
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.
T,1,______,_,__;<Tip plată>;<Sumă>;;;
T,1,______,_,__;0;3.50;;;;
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%.
C,1,______,_,__;<Tip>;<Valoare>;;;
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 exemplu10.00.
Pentru operațiile valorice se transmite suma în RON, de exemplu2.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.
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.
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.
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.
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.
P,1,______,_,__;<Linia 1>;<Linia 2>;<Linia 3>;;
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.
K,1,______,_,__;<CUI client>;
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.
I,1,______,_,__;<Tip operație>;<Sumă>;;;
I,1,______,_,__;0;100.00;;;;
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.
Z,1,______,_,__;<Tip raport>;
Z,1,______,_,__;0;
Z,1,______,_,__;1;
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
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
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
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
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
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
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
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
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
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.
54,<Text>^<Bold>^<Italic>^<DoubleH>^<Underline>^<Aliniere>^
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:0sau1. -
<Italic>
— activează tipărirea cu caractere italic. Valori:0sau1. -
<DoubleH>
— activează tipărirea cu înălțime dublă. Valori:0sau1. -
<Underline>
— activează tipărirea subliniată. Valori:0sau1. -
<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.
84,<Tip>^<Date>^<Dimensiune QR>^
84,2^8410376017113^
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ă.