FiscalNet
Înapoi la Informații utile
Documentație · Pentru integratori

Documentație API FiscalNET.
HTTP, fișiere și Android.

Un webserver integrat, aceeași metodă POST pentru Windows și Android. Alege locul din care trimiți cererea și verifică răspunsul operației. Explicațiile includ ghidul general și precizările echipei FiscalNET din 19 octombrie 2026.

Ghid PDF · 15 pagini · ediția din 30 aprilie 2026. Poți citi mai jos explicațiile și referințele în format web, inclusiv fără un cititor PDF.

Alege metoda de integrare.

CanalPotrivit pentruRezultat
API HTTPWindows și Android: aplicații locale, middleware sau apel din browserul dispozitivului cu FiscalNETJSON sincron sau job asincron
Fișier de comandăAplicații Windows și ERP-uri cu export de fișiereFișier în folderul Raspuns
Android IntentAplicații instalate pe același terminal AndroidActivity Result și extra-uri de răspuns
Format INPCompatibilitate cu aplicații existenteFișier de răspuns, ca la integrarea prin fișiere

Un singur mod de apelare. Windows și Android.

Webserverul integrat primește cereri POST la http://localhost:65400/api/Receipt. Corpul cererii poate fi o listă JSON de șiruri, fiecare șir reprezentând o comandă. În Postman alege POST, Body → raw → JSON și antetul Content-Type: application/json.

Pe același dispozitiv

Folosește localhost când aplicația care execută cererea și FiscalNET rulează pe același calculator sau terminal Android.

Din rețeaua locală

Înlocuiește localhost cu IP-ul dispozitivului pe care rulează FiscalNET, de exemplu http://192.168.1.50:65400/api/Receipt. Permite portul TCP 65400 în firewall pentru dispozitivele autorizate din rețeaua locală. IP-ul din exemplu se înlocuiește cu cel real.

Din aplicația web

Execută apelul către serviciul local în browserul calculatorului cu FiscalNET. Un apel localhost executat pe serverul aplicației ajunge la acel server, nu la casa de marcat din locație. Apelul local din browser evită nevoia unui IP public dedicat și a redirecționării portului în router.

Conexiunea API și cablul aparatului sunt lucruri diferite.

Casa de marcat poate fi conectată prin USB sau LAN, dacă modelul și interfața respectivă sunt acceptate de FiscalNET. Aplicația comunică cu FiscalNET, iar driverul comunică cu aparatul. Apelarea HTTP este disponibilă inclusiv pentru Datecs BlueCash 50 și Partner Touch Evo, conform echipei FiscalNET.

Pe Windows rămâne disponibil și fluxul prin fișiere depuse în folderul Bonuri. Comanda către POS-ul bancar prin API este disponibilă numai pe Windows.

Aplicații web: verifică și regulile browserului

O pagină HTTPS și un serviciu local HTTP pot întâlni restricții de securitate ale browserului. Configurează originea permisă și răspunsul CORS/OPTIONS, iar când instalarea oferă HTTPS local folosește adresa și certificatul configurate pentru acea versiune. Nu presupune că simpla înlocuire a IP-ului rezolvă aceste cerințe; nu dezactiva protecțiile browserului.

Exemplul complet de cerere JSON furnizat integratorilor

Exemplu de sintaxă transmis de echipa FiscalNET. Include vânzare, storno, ajustări, cod de bare și linii de plată. Valorile, cotele TVA și totalurile trebuie adaptate și validate înainte de utilizare; exemplul nu certifică un bon comercial valid pentru orice aparat. Pagina nu trimite comenzi către dispozitive.

POST http://localhost:65400/api/Receipt · Content-Type: application/json
[
  "CF^RO 123456789",
  "S^ARTICOL DE STORNAT^600^1000^buc^1^1",
  "VS^ARTICOL STORNO^600^1000^buc^1^1",
  "S^ARTICOL 1^500^1000^buc^1^1",
  "DP^1000",
  "S^ARTICOL 2^500^1000^buc^1^1",
  "DV^100",
  "S^ARTICOL 3^415^1000^buc^1^1",
  "MP^500",
  "S^ARTICOL 4^315^1000^buc^1^1",
  "MV^50",
  "ST^",
  "DP^500",
  "CB^5940000000820^2",
  "TL^Rand text liber 1",
  "TL^Alt rand text liber",
  "P^2^1000",
  "P^1^2000"
]

Precizări de integrare: echipa FiscalNET, 19 octombrie 2026. Exemplele din PDF folosesc și scrierea /api/receipt; adresa de mai sus reproduce forma comunicată integratorilor. Verifică ruta și configurația versiunii instalate.

API HTTP comun pentru Windows și Android.

Baza locală din ghid: http://localhost:65400. Folosește adresa și portul configurate în instanța ta. Nu expune serviciul local direct pe internet.

MetodăRutăRol
GET/api/healthVerifică dacă serviciul răspunde.
GET/api/devicesListează dispozitivele disponibile.
GET/api/devices/{deviceId}Detaliile dispozitivului selectat.
POST/api/receiptExecută o comandă.
POST/api/devices/{deviceId}/receiptTrimite comanda către un dispozitiv explicit.
GET/api/jobsListează joburile asincrone.
GET/api/jobs/{jobId}Starea și rezultatul unui job.
Exemplu pentru Windows · verificarea serviciului, fără emiterea unui bon
curl.exe http://localhost:65400/api/health

Pentru executarea comenzilor, ghidul acceptă text multilinie sau o listă JSON de linii. Exemplu de interogare a stării:

curl.exe -X POST "http://localhost:65400/api/receipt" -H "Content-Type: text/plain" --data-binary "STATUS"

Fișiere Windows: un flux ușor de urmărit.

  1. Construiește fișierul

    Folosește .txt, .inp sau .json, cu sintaxa corespunzătoare din ghid.

  2. Trimite comanda

    Depune fișierul complet în folderul Bonuri sau în folderul dispozitivului configurat.

  3. Citește rezultatul

    După prelucrare, comanda ajunge în Istoric, iar rezultatul se citește din Raspuns.

  4. Păstrează perechea

    Arhivează împreună comanda și răspunsul pentru diagnostic și trasabilitate.

Referința comenzilor în format text.

În formatul text simplu, fiecare linie reprezintă o instrucțiune. Separatorul câmpurilor este ^. În notația de mai jos, acoladele indică valori de înlocuit, iar ? marchează un parametru opțional; aceste semne nu fac parte din valoarea trimisă.

SintaxăRol
ID^{deviceId}Selectează dispozitivul fiscal pentru liniile următoare.
CF^{codFiscal}Setează codul fiscal al clientului pentru bonul curent.
NF sau NF^{text}Inițializează un document nefiscal; textul este opțional.
TL^{text}Text liber. Poziția lui stabilește dacă apare la început, lângă articol sau după subtotal.
S^{nume}^{pret}^{cantitate}^{um}^{tva}^{departament}Adaugă un articol de vânzare.
VS^{nume}^{pret}^{cantitate}^{um}^{tva}^{departament}Adaugă un articol storno; ordinea câmpurilor este aceeași ca la S.
ST^Deschide contextul de subtotal pentru ajustările la nivelul bonului.
DP^{valoare} / DV^{valoare}Discount procentual / valoric, aplicat articolului curent sau subtotalului, în funcție de poziție.
MP^{valoare} / MV^{valoare}Majorare procentuală / valorică, în funcție de context.
CB^{valoare}^{tip}Adaugă un cod de bare sau QR pentru tipărire.
P^{tipPlata}^{valoare?}Adaugă o linie de plată; valoarea este opțională în anumite scenarii.
X / ZRaport intermediar X / raport de închidere Z.
STATUSInteroghează starea dispozitivului fiscal.
BONINFO^{raport}^{bon}Citește informațiile unui bon din jurnal.
RAPZINFO^{start}^{end}Citește un interval de rapoarte Z din jurnal.
POS^{suma}^{idPos?}Inițiază o operație POS. Verifică licența PLUS, configurația terminalului și integrarea aplicației.
I^{suma} / O^{suma}Introducere / retragere numerar; sumele sunt în unități minore.
DISPLAY^{linie?}^{text} / MSG^{linie?}^{text} / D^{linie?}^{text}Mesaj pe display, dacă dispozitivul suportă operația.
CategorieValori din ghid
Plată în text simplu, comanda P1 = numerar; 2 = card; 3 = credit; 4 = FoodStamp; 5 = ValueTichets; 6 = Voucher; 7 = Modern; 8 = Other1; 9 = Other2.
Cod de bare, CB în text simplu / Q în INP1 = EAN8; 2 = EAN13; 3 = CODE128; 4 = QR.
Plată în INP, comanda T0 = numerar; 1 = card; 2 = credit; 3 = FoodStamp; 4 = ValueTichets; 5 = Voucher; 6 = Modern; 7 = Other1; 8 = Other2.

Sintaxa completă și exemplele din PDF · paginile 5–8

Android Intent: aplicații pe același dispozitiv.

Pachetul tehnic rămâne com.econmedia.fiscalnet; acesta este identificatorul aplicației, nu denumirea societății.

ElementValoare
Inițializarecom.econmedia.fiscalnet.action.WARMUP_APP
Procesarecom.econmedia.fiscalnet.action.PROCESS_COMMAND
Comandă textcom.econmedia.fiscalnet.extra.COMMAND_TEXT
Comandă pe liniicom.econmedia.fiscalnet.extra.COMMAND_LINES
Referințăcom.econmedia.fiscalnet.extra.REFERENCE
Timeoutcom.econmedia.fiscalnet.extra.TIMEOUT_MS
ElementIdentificator
Aplicația sursăcom.econmedia.fiscalnet.extra.SOURCE
Mutarea aplicației în fundalcom.econmedia.fiscalnet.extra.MOVE_TO_BACK

Extra-urile de rezultat folosesc prefixul com.econmedia.fiscalnet.result.: SUCCESS, RESPONSE_JSON, HTTP_STATUS_CODE, RECEIPT_STATUS, RECEIPT_NUMBER, RECEIPT_INFO, ERROR_CODE și ERROR_INFO. Păstrează identificatorii exact cum apar în ghid.

Exemple Kotlin și rezultatele Android · pagina 13

INP: păstrează compatibilitatea, verifică semnificația.

INP este un format de comandă pentru integrări existente. Folosește virgula și punctul și virgula ca separatori, sume și cantități zecimale și același număr logic, între 1 și 99, pe toate liniile documentului. Ordinea liniilor stabilește contextul.

ComandăRol / regulă
K / SCod fiscal client / articol de vânzare.
CAjustare: 0 = majorare procentuală, 1 = discount procentual, 2 = majorare valorică, 3 = discount valoric.
LSubtotal. Poziția sa schimbă contextul ajustărilor.
P / WText liber / suplimentar, dependent de poziție. P din INP nu este comanda de plată din text simplu.
QCod de bare / QR; tipurile sunt în tabelul de coduri de mai sus.
TPlată; închide fluxul comercial. Folosește codificarea INP, care începe de la 0 pentru numerar.
ZParametrul 0 indică raport X; altă valoare sau lipsa parametrului indică raport Z.
IParametrul 0 indică introducere numerar; 1 indică retragere numerar.

Nu converti o comandă între text simplu și INP doar prin înlocuirea separatorilor. Codurile de plată, reprezentarea sumelor și unele litere de comandă au semnificații diferite. Consultă structura completă a liniilor INP în PDF, paginile 8–10.

Deschide referința INP

Plăți POS: verifică operația reală.

Pentru integrarea cu POS bancar, verifică licența PLUS, terminalul configurat și ID-ul POS când există mai multe terminale. Confirmă metoda de conectare pentru terminalul și platforma folosite.

Regulile speciale pentru comanda POS · pagina 14

Detalii de integrare FiscalNET PLUS cu POS bancar

Interpretează rezultatul, nu doar transportul.

CanalIndicator principalDetalii
FișierBONOK=1 / BONOK=0NRBON, NRZ, ERRCODE, ERRINFO
HTTPReceiptStatus: true / falseReceiptNumber, ReceiptInfo, ErrorCode, ErrorInfo
AndroidSUCCESS: true / falseRESPONSE_JSON, HTTP_STATUS_CODE, ERROR_INFO
Un răspuns HTTP înseamnă că bonul a fost emis?

Nu. Codul HTTP arată rezultatul transportului; verifică ReceiptStatus, ReceiptNumber, ErrorCode și ErrorInfo pentru operația fiscală. La integrarea prin fișiere, citește BONOK și detaliile răspunsului. La Intent, verifică SUCCESS și RESPONSE_JSON. Pentru plățile POS, verifică și regulile speciale de mai jos.

Ce fac dacă plata sau bonul rămân fără răspuns?

Nu retrimite automat o operație financiară. Verifică jobul, jurnalul și rezultatul pe dispozitiv înainte de a decide reluarea, pentru a evita dublarea.

Depanare: pornește de la simptom.

SimptomCe verifici
Nu apare fișierul de răspunsFolderul configurat, drepturile de scriere, aplicația pornită și formatul fișierului trimis.
ReceiptStatus este falseCitește ErrorCode și ErrorInfo înainte de următorul pas.
API-ul returnează o eroare tehnicăAdresa și portul, ruta endpoint-ului, metoda HTTP, Content-Type și corpul cererii.
Android Intent nu întoarce rezultatulFolosește ActivityResultLauncher sau echivalentul startActivityForResult, nu doar startActivity.
POS-ul nu primește operațiaVerifică dacă dispozitivul fiscal este de test, dacă are licență PLUS și dacă există un terminal bancar configurat.
Este folosit alt aparat fiscalSelectează explicit ID-ul dispozitivului fiscal.
Bonul este respins la parsareVerifică ordinea liniilor și existența unui articol de vânzare sau storno în bonul fiscal.

Vezi și întrebările frecvente despre instalare, licențe și suport

Înainte de utilizarea în producție.

  1. Identifică dispozitivul

    Dacă sunt mai multe aparate, transmite explicit ID-ul dispozitivului fiscal. Pentru o plată bancară, transmite și ID-ul POS-ului atunci când este disponibil și verifică licența PLUS și terminalul configurat.

  2. Testează răspunsurile

    Acoperă succes, dispozitiv indisponibil, hârtie lipsă și erori de comandă, într-un mediu controlat.

  3. Separă plata de confirmare

    Nu presupune că un timeout înseamnă eșec. Verifică operația înainte de retrimitere.

  4. Documentează integrarea

    Păstrează versiunile, setările și exemplele de comandă/răspuns, fără date de card sau alte informații sensibile.

Surse: ghidul general pentru integratori, ediția 30 aprilie 2026 (15 pagini), precizările echipei FiscalNET din 19 octombrie 2026 privind apelarea Windows/Android și browserul local și confirmarea din 3 noiembrie 2026 privind integrarea POS bancar pe Android.

Exemple și referințe pentru integrări existente

Pentru o integrare nouă, pornește de la ghidul general 2026 și referința comenzilor de mai sus. Materialele din 2024 sunt păstrate ca referință pentru integrările existente.

Vezi exemplele de comenzi și documentația de integrare · 2024
MaterialCând îl foloseștiAcces
BonuriTest · exemple TXT din 202416 fișiere originale de comenzi. Conțin operațiuni fiscale, rapoarte și plăți; integratorul trebuie să verifice valorile și compatibilitatea înainte de utilizare.Deschide ZIP · 3 KB
Documentație FiscalNet · 2024Document original pentru integrările existente. Pentru o integrare nouă pornește de la ghidul general 2026.Deschide PDF · 553 KB

Configurarea FiscalLink și a echipamentelor se găsește în Tutoriale pentru echipamente.

Manualele Windows/V2 sunt în Tutoriale V2, iar materialele TVA sunt în arhiva TVA.

Următoarea conexiune?
Afacerea ta.

Descarcă FiscalNet și configurează echipamentul tău.