API Headless
API-ul Headless este un set specializat de endpoint-uri HTTP conceput pentru gestionarea programatică a driverului FisCool, fără interacțiunea utilizatorului prin interfața grafică. Acesta este ideal pentru medii integrate unde driverul rulează în fundal și este gestionat complet de aplicația gazdă.
Toate endpoint-urile sunt disponibile sub calea /manage și acceptă/returnează JSON.
Gestionare Dispozitive
Salvare Dispozitiv Fiscal
Adaugă sau actualizează configurația unui dispozitiv fiscal.
Important: Înainte de a salva un dispozitiv, apelați /manage/get_supported_devices pentru a obține valorile valide pentru manufacturer și model. Trebuie să utilizați șirurile exacte returnate de acel endpoint.
Notă: Furnizați câmpul id doar atunci când editați un dispozitiv existent. Dacă id lipsește sau este null, va fi creat un dispozitiv nou.
Corp Cerere (DeviceConfig):
{
"id": "uuid-string",
"name": "Imprimanta Mea",
"manufacturer": "Datecs",
"model": "DP25",
"connection_details": {
"type": "Serial",
"details": {
"port": "COM3",
"baud_rate": 115200
}
},
"notes": "Casa principală"
}
Tipuri de Conexiune și Suport Platformă
| Tip | Suport Platformă | Descriere | Structură Detalii JSON |
|---|---|---|---|
Serial |
Doar Windows | Utilizat pentru porturi COM fizice și convertoare USB-Serial (VCP). |
|
Network |
Windows și Android | Utilizat pentru dispozitive conectate prin LAN sau WiFi. |
|
Usb |
Doar Android | Conexiune USB directă folosind Android USB Host API. |
|
Răspuns:
{
"success": true,
"message": "Fiscal device saved successfully"
}
Ștergere Dispozitiv Fiscal
Elimină configurația unui dispozitiv fiscal.
Corp Cerere:
{
"id": "uuid-string" // ID-ul dispozitivului de șters
}
Răspuns:
{
"success": true,
"message": "Fiscal device deleted successfully"
}
Salvare Terminal POS
Adaugă sau actualizează configurația unui terminal POS. Urmează aceleași reguli de conexiune ca și dispozitivele fiscale.
Notă: Furnizați câmpul id doar atunci când editați un dispozitiv existent. Dacă id lipsește sau este null, va fi creat un dispozitiv nou.
Corp Cerere (DeviceConfig):
{
"id": "uuid-string",
"name": "POS-ul Meu",
"manufacturer": "Ingenico",
"model": "Desk3200",
"connection_details": {
"type": "Network",
"details": {
"ip_address": "192.168.1.50",
"port": 2000
}
},
"notes": "Casa 1"
}
Răspuns:
{
"success": true,
"message": "POS terminal saved successfully"
}
Ștergere Terminal POS
Elimină configurația unui terminal POS.
Corp Cerere:
{
"id": "uuid-string"
}
Răspuns:
{
"success": true,
"message": "POS terminal deleted successfully"
}
Sistem și Configurare
Obținere Porturi COM Disponibile
Listează toate porturile seriale disponibile în sistem (Doar Windows).
Răspuns:
[
"COM1",
"COM3",
"COM4"
]
Obținere Dispozitive Suportate
Returnează o listă cu producătorii și modelele suportate atât pentru dispozitive fiscale, cât și pentru terminale POS. Utilizați aceste valori la crearea de noi dispozitive.
Răspuns (SupportedDevices):
{
"fiscal": {
"manufacturers": [
{
"value": "DATECS",
"label": "DATECS",
"models": ["DP25", "DP25 MX", "DP05", "DP150", "FP650", "FP700", "FP800", "WP50"],
"default_port": 3999,
"supports_serial": true,
"supports_network": true
},
{
"value": "Daisy",
"label": "Daisy",
"models": ["eXpert SX", "Expert L", "Perfect M", "Compact S", "Compact M"],
"default_port": null,
"supports_serial": true,
"supports_network": false
},
{
"value": "Tremol",
"label": "Tremol",
"models": ["A19 Plus", "M20", "M23", "S21", "S25", "Tremol S"],
"default_port": null,
"supports_serial": true,
"supports_network": true
}
]
},
"pos": {
"banks": ["Banca Transilvania", "BCR"],
"manufacturers": [
{
"value": "Ingenico",
"label": "Ingenico",
"models": ["Desk3200", "Desk3500"],
"default_port": null,
"supports_serial": true,
"supports_network": true
},
{
"value": "PAX",
"label": "PAX",
"models": ["A920", "A920 Pro"],
"default_port": null,
"supports_serial": true,
"supports_network": true
}
]
}
}
Obținere Configurare Notificări
Recuperează setările curente de notificare.
Răspuns (NotificationConfig):
{
"email_list": ["admin@example.com", "suport@magazin.ro"],
"send_z_report_email": true
}
Salvare Configurare Notificări
Actualizează setările de notificare.
Corp Cerere (NotificationConfig):
{
"email_list": ["admin@example.com", "manager@example.com"],
"send_z_report_email": true
}
Răspuns:
{
"success": true,
"message": "Notification config saved successfully"
}
Jurnal și Actualizări
Obținere Intrări Jurnal
Recuperează jurnalele de operațiuni. Util pentru audit și istoric.
Corp Cerere:
{
"start_time": 1672531200000,
"end_time": 1672617600000
}
Structură Intrare Jurnal
| Câmp | Tip | Descriere |
|---|---|---|
id | number | ID unic incremental. |
timestamp | string | Timestamp ISO 8601. |
device_name | string | Numele dispozitivului care a efectuat acțiunea. |
action_type | string | Tipul operațiunii efectuate (vezi tabelul de mai jos). |
success | boolean | Dacă operațiunea a avut succes. |
receipt_data | object|null | Datele originale ale cererii de bon (dacă este cazul). |
amount_cents | number|null | Suma monetară implicată (dacă este cazul). |
full_text | string|null | Textul brut returnat de dispozitiv (ex: rapoarte). |
Tipuri de Acțiuni
| Tip Acțiune | Descriere | Câmpuri de Date Relevante |
|---|---|---|
PrintReceipt | Tipărire bon fiscal standard. | receipt_data |
NonFiscalReceipt | Tipărire text/documente non-fiscale. | - |
ZReport | Raport Z zilnic (resetează totalurile zilnice). | amount_cents, full_text |
XReport | Raport X (totaluri doar pentru citire). | amount_cents, full_text |
Sale | Operațiune de vânzare directă (POS). | amount_cents |
Settlement | Decontare POS/Închidere Lot. | - |
Deposit | Depunere numerar în sertar. | amount_cents |
Withdraw | Retragere numerar din sertar. | amount_cents |
FiscalMemoryReport | Raport din memoria fiscală. | - |
AnafExport | Export date pentru ANAF. | - |
ServiceConnection | Conexiune Service/Mentenanță. | - |
Exemplu Răspuns:
[
{
"id": 1024,
"timestamp": "2023-10-27T10:30:00Z",
"device_name": "Imprimanta Principală",
"device_id": "uuid-string",
"action_type": "PrintReceipt",
"description": "Tipărit bon #123",
"success": true,
"error_message": null,
"receipt_data": { "items": [...] },
"amount_cents": 1500,
"full_text": null
}
]
Verificare Actualizări
Verifică dacă este disponibilă o nouă versiune a driverului.
Răspuns (UpdateCheckResponse):
{
"has_update": true,
"latest_version": "1.2.0",
"versions": [
{
"version": "1.2.0",
"description": "Adăugat suport pentru noi modele Datecs",
"date": "2023-10-25",
"manifest_url": "https://...",
"is_current": false,
"is_newer": true
}
]
}
Instalare Actualizare
Declanșează procesul de instalare a actualizării. Necesită confirmarea utilizatorului pe mașina gazdă, cu excepția cazului în care rulează într-un mod complet silențios (dacă este suportat).
Corp Cerere:
{
"version": "1.2.0"
}
Răspuns:
{
"success": true,
"message": "Update installation started"
}