Migrare
Treci de pe FiscalNet sau Fisco, fără schimbări în programul tău.
Aplicația FiscalLink citește aceleași foldere și ascultă pe aceeași interfață Fisco, pe desktop. Toate intrările vechi tipăresc prin același traseu ca restul aplicației.
Ce rămâne la fel
Programul scris pentru driverele vechi merge neschimbat prin patru intrări:
| Intrare | Cum lucrează |
|---|---|
| Folderul FiscalNet | Scrii fișierul în Bonuri, răspunsul apare în Raspuns, pe trei rânduri: BONOK=1 sau BONOK=0, numărul bonului sau codul erorii, detaliul. Prefixele nf_* (bon nefiscal) și display_* (afișaj client) aleg tipul lucrării. |
| Folderul Fisco | Folderul scanat, cu BonOK, BonANSWER și BonERR. |
| API-ul Fisco | /api/v1/print, /validate, /status, /health, /last-receipt. |
POST /api/Receipt | Ruta veche FiscalNet / INP a API-ului local, neschimbată. |
Ce instalezi
- Aplicația FiscalLink pe același calculator, cu Windows, macOS sau Linux. Folderele merg doar pe desktop.
- O licență pe casă și dispozitivul autorizat: fără ele, fiecare lucrare e refuzată (
LICENSE_REQUIRED,DEVICE_AUTHORIZATION_REQUIRED). Pașii clientului: /app/docs. - La o instalare nouă, aplicația pornește singură API-ul Fisco (doar pe acest calculator) și preia sau creează folderul
~/FiscalLink. La o actualizare de la versiunea 2.2.1 le lasă oprite și ți le oferă în setări. - Oprește driverul vechi. Dacă găsește un driver concurent pornit (
Fisco,FiscoDriver,EcmFiscalNet,FiscalNet,DriverFiscal) sau portul 4040 ocupat, aplicația nu preia nimic și îți spune de ce. Două drivere pe aceeași casă tipăresc aceeași vânzare de două ori. - Fișierele care erau deja în folder când îl preia aplicația nu se tipăresc: se mută în
Preluate-la-activare.
Folderele
- Un fișier fără linie de plată e refuzat: într-un fișier, o plată lipsă e semnul unei scrieri întrerupte.
- O linie de raport trebuie să fie singura comandă din fișier.
- Sumele INP cu virgulă zecimală sunt refuzate.
- Codurile de plată trec printr-o hartă a instalării, care implicit le lasă neschimbate. Pe o casă Daisy, fișierele care numerotează plățile ca Datecs sunt traduse, dacă nu ai configurat altă hartă.
- Fișierul cu totalurile zilei (
Z./txt X.) se scrie pentru fiecare raport, din orice intrare, când e configurat un folder pentru el.txt
API-ul Fisco
- Ascultă pe portul 4040, doar pe acest calculator, deci un POS setat pe
localhost:4040se conectează. Ascultarea pe toate interfețele (pentru tablete) se pornește explicit, cu avertisment. Dacă portul e ocupat, de exemplu de driverul vechi, API-ul rămâne oprit, iar Starea arată „Port ocupat”. - Refuză paginile web (
403, antetulOrigin), în afară de un POS din browser servit de pe același calculator (localhostsau o adresă loopback). /printși/validateprimesc doarapplication/json; altfel415./api/v1/healtharată separat dacă e conectată casa, dacă are licență și dacă dispozitivul e autorizat.- Un
external_idse tipărește cel mult o dată, chiar și după o repornire. Unexternal_ida cărui lucrare sigur nu a tipărit nimic se poate trimite din nou; unul cu rezultat necunoscut rămâne folosit.
Ruta /api/Receipt
POST /api/Receipt
Tipărește un bon în format FiscalNet sau INP
Primește un șir JSON de linii de comandă. Formatul se detectează singur: FiscalNet folosește ^, INP folosește , și ;.
Răspunde mereu HTTP 200; rezultatul e în ReceiptStatus ("true" sau "false"), cu șiruri goale în loc de null. O vânzare fără linie de plată se achită în numerar.
FiscalNet
[
"S^Espresso^1000^1000^pcs^1^1",
"ST^",
"P^1^1000"
]INP
[
"S,1,______,_,__;Espresso;10.00;1.000;1;1;2;0;0;pcs",
"T,1,______,_,__;0;10.00;;;;"
]Răspuns
{
"ReceiptStatus": "true",
"ReceiptNumber": "12345",
"ErrorCode": "",
"ErrorInfo": ""
}{
"ReceiptStatus": "false",
"ReceiptNumber": "",
"ErrorCode": "123",
"ErrorInfo": "<error text>"
}