Torna alla Home

easyPos - Guida all'Integrazione

Integrazione API Locale & File

Software di Fiscalizzazione

Versione 2.3.1 | Aggiornato: 04/2026

Panoramica

Questo documento fornisce una guida completa per l'integrazione con il sistema easyPos. Sono supportati due metodi principali:

  • Integrazione API Locale: Utilizzo di endpoint HTTP con payload JSON
  • Integrazione File: Utilizzo di file JSON o TXT nella directory monitorata

1. Introduzione

easyPos è un software di fiscalizzazione per fatture normali e semplici in Albania. Questa guida dimostra come integrare con easyPos utilizzando l'integrazione basata su file o chiamate RESTful API.

1.1 Metodi di Integrazione

  1. Integrazione API Locale: Richieste HTTP con payload JSON
  2. Integrazione File: Inserire file JSON o TXT nella directory monitorata

1.2 Prerequisiti

  • Sistema operativo Windows o MacOS (richiesto per l'installazione di easyPos)
  • Installazione e configurazione valida di easyPos
  • Stringa di autorizzazione API configurata (per integrazione API)
  • Servizio API locale abilitato nelle impostazioni easyPos (per integrazione API)
  • Connettività di rete al servizio locale easyPos (per integrazione API)
  • File watcher configurato (per integrazione file)

2. Integrazione API Locale

2.1 URL Base

http://[server-ip]:port/v1/...

2.2 Headers

Content-Type: application/json Authorization: [your-authorization-string]

2.3 Endpoint API

Method Endpoint Descrizione
GET/v1Test connessione
POST/v1/invoices/newCrea fattura/e
GET/v1/invoicesOttieni tutte le fatture
GET/v1/invoices/:idOttieni singola fattura
GET/v1/operatorsOttieni operatori
GET/v1/entitiesOttieni entità
GET/v1/balanceOttieni saldo cassa
POST/v1/balance/initiateRiporta saldo iniziale
POST/v1/balance/depositDeposito
POST/v1/balance/withdrawPrelievo

2.4 Formato Risposta

{
  "status": 0,
  "response": {
    "nslf": "C352A1442630779BD016323CB4765331",
    "nivf": "19d7cf18-9f2f-4501-b0d1-48830dfc0750",
    "link": "https://efiskalizimi-app.tatime.gov.al/...",
    "text": "Sukses"
  }
}
  • status: 0 = Successo, 1 = Errore, 2 = In attesa
  • nslf: NSLF - Contatore Interno Fattura (IIC)
  • nivf: NIVF - Numero Fiscale Fattura (FIC)
  • link: URL verifica fattura

3. Integrazione File

3.1 Formato JSON

Inserire i file JSON nella directory monitorata. easyPos li elaborerà automaticamente.

Importante: Il Campo "app"

Quando si utilizza l'integrazione file JSON, il campo "app" è CONSIGLIATO per identificare l'applicazione/fonte di integrazione.

Fattura Base

{
  "app": "",
  "articles": [
    {
      "articleId": "ART001",
      "vatCode": "B",
      "name": "Product",
      "soldIn": "cope",
      "price": 500,
      "units": 2
    }
  ]
}

Fattura con Acquirente

{
  "app": "",
  "buyer": {
    "buyerIDType": "NUIS",
    "buyerIDNum": "L12345678A",
    "buyerName": "Test Company",
    "buyerAddress": "Test Street 123",
    "buyerTown": "Tirana",
    "buyerCountry": "ALB"
  },
  "articles": [
    {
      "articleId": "ART001",
      "vatCode": "B",
      "name": "Service",
      "soldIn": "cope",
      "price": 1000,
      "units": 1
    }
  ]
}

3.2 Formati TXT

easyPos supporta due formati file TXT per l'integrazione con dispositivi fiscali legacy:

3.2.1 Formato AED

CLEAR
KEY REG
SALE DPT=1,QTY=1,PRICE=500,DES='Product'
SALE DPT=1,QTY=2,PRICE=300,DES='Service'
SUBTOT
CLOSE TENDER=1

3.2.2 Formato IVA

Il formato IVA utilizza una sintassi strutturata basata su righe con prefissi specifici:

Fattura Base:

H,1,______,_,__;
S,1,______,_,__;"Artikull";500.00;2.00;1;1;1;
T,1,______,_,__;
F,1,______,_,__;

Fattura con Acquirente (NUIS):

H,1,______,_,__;
B,1,______,_,__;"NUIS";"L00000000B";"Buyer Name";"Address";"Tirane";"ALB";
S,1,______,_,__;"Artikull";500.00;2.00;1;1;1;
T,1,______,_,__;
F,1,______,_,__;

Pagamento Carta:

H,1,______,_,__;
$ISWITHCARD=1
S,1,______,_,__;"Artikull";500.00;2.00;1;1;1;
T,1,______,_,__;
F,1,______,_,__;

Con Sconto:

H,1,______,_,__;
S,1,______,_,__;"Product";150.00;2.00;1;1;2;
C,1,______,_,__;2;15.0;
T,1,______,_,__;
F,1,______,_,__;

Prefissi Riga IVA

  • H - Intestazione (inizio fattura)
  • B - Informazioni acquirente
  • S - Riga vendita (articolo)
  • C - Sconto/ribasso per riga precedente
  • P - Note fattura
  • OP - Codice operatore
  • T - Totale
  • F - Piè di pagina (fine fattura)

4. Metodi di Pagamento

ValoreCategoriaDescrizione
BANKNOTECASHContanti
CARDCASHCarta
CHECKCASHAssegno
SVOUCHERCASHVoucher
COMPANYCASHAzienda
ACCOUNTNONCASHBonifico bancario
FACTORINGNONCASHFactoring
COMPENSATIONNONCASHCompensazione
KINDNONCASHPagamento in natura (clearing)
OTHERNONCASHAltro, non contanti

Tipi di Pagamento Semplificati per JSON

Per l'integrazione file JSON, utilizzare questi tipi di pagamento semplificati:

  • CASH - Pagamento contanti
  • CARD - Pagamento carta
  • ACCOUNT - Bonifico bancario (richiede bankDetails)
  • CHECK - Pagamento assegno
  • OTHER - Altro pagamento non contanti

Esempio con Pagamento OTHER

{
  "app": "",
  "articles": [
    {
      "articleId": "ART001",
      "vatCode": "B",
      "name": "Product",
      "soldIn": "cope",
      "price": 500,
      "units": 2
    }
  ],
  "payment": {
    "type": "OTHER"
  }
}

5. Riferimento Campi

5.1 Codici IVA

CodiceAliquotaDescrizione
A0%Esente (TAX_FREE)
B20%Aliquota standard
C0%Esenzione Tipo 2
D10%Aliquota ridotta
E6%Aliquota ridotta
J0%Esportazione merci

5.2 Tipi ID

ValoreDescrizione
NUISNIPT (Codice Fiscale)
IDNumero carta d'identità
PASSNumero passaporto
VATNumero IVA
TAXNumero fiscale
SOCNumero previdenza sociale

5.4 Tipi di Fattura

TipoDescrizione
(default)Fattura vendita standard
ORDEROrdine
CANCELAnnullamento fattura
CORRECTIVEFattura correttiva
SUMMARYFattura riepilogativa
EXCHANGECambio valuta

6. Esempi

6.1 Fattura con Pagamenti Multipli

{
  "app": "",
  "articles": [
    {
      "articleId": "ART001",
      "vatCode": "B",
      "name": "Product",
      "soldIn": "cope",
      "price": 1000,
      "units": 1
    }
  ],
  "payment": [
    { "type": "CASH", "amount": 600 },
    { "type": "CARD", "amount": 400 }
  ]
}

6.2 Fattura con Valuta Estera

{
  "app": "",
  "currency": {
    "code": "EUR",
    "exRate": 100.5
  },
  "articles": [
    {
      "articleId": "ART001",
      "vatCode": "B",
      "name": "Product",
      "soldIn": "cope",
      "price": 50,
      "units": 2
    }
  ],
  "payment": { "type": "CASH" }
}

6.3 Annullamento Fattura

{
  "app": "",
  "invoiceType": "CANCEL",
  "iicRef": "3CA552F6475201847CF63E3499E74727"
}

6.4 Fattura con Bonifico Bancario

{
  "app": "",
  "buyer": {
    "buyerIDType": "NUIS",
    "buyerIDNum": "L12345678A",
    "buyerName": "Company",
    "buyerTown": "Tirana",
    "buyerCountry": "ALB"
  },
  "articles": [
    {
      "articleId": "ART001",
      "vatCode": "B",
      "name": "Service",
      "soldIn": "cope",
      "price": 5000,
      "units": 1
    }
  ],
  "payment": {
    "type": "ACCOUNT",
    "bankDetails": {
      "country": "Albania",
      "countryCode": "AL",
      "currency": "ALL",
      "idNumber": "AL123456789012345678"
    }
  }
}

6.5 Fattura con Sconto Articolo

{
  "app": "",
  "articles": [
    {
      "articleId": "PROD001",
      "vatCode": "B",
      "name": "Product with % Discount",
      "soldIn": "cope",
      "price": 1000,
      "units": 5,
      "rebate": {
        "inPercentage": 10
      }
    }
  ],
  "payment": { "type": "CASH" }
}

7. Best Practices

7.1 Linee Guida Generali

  • Validare i Dati: Validare sempre la struttura JSON prima dell'invio
  • Gestire gli Errori: Implementare una corretta gestione degli errori per le transazioni fallite
  • Salvare IIC: Conservare l'IIC restituito (nslf) per riferimento futuro e annullamenti
  • Affidabilità Rete: Per l'integrazione API, implementare logica di retry
  • Account Demo: Richiedere un account demo allo staff di supporto per testare l'integrazione
  • ID Documento: Utilizzare formato UUIDv4 per campi docId personalizzati per garantire unicità

7.2 Best Practices Integrazione File

  • Utilizzare nomi file univoci per evitare conflitti
  • Monitorare i file di risposta per i risultati dell'elaborazione
  • Implementare meccanismi di blocco file per prevenire letture parziali
  • Pulire regolarmente i file elaborati
  • Includere sempre il campo app per identificare l'applicazione

7.3 Best Practices Integrazione API Locale

  • Utilizzare connection pooling per migliori prestazioni
  • Implementare backoff esponenziale per i retry
  • Registrare tutte le richieste e risposte per il debug
  • Configurare timeout di rete appropriati
  • Assicurare la connettività di rete al servizio easyPos

8. Risoluzione Problemi

8.1 File Non Elaborato

  • Verificare i permessi del file
  • Verificare la validità della sintassi JSON
  • Assicurarsi che il file sia completamente scritto prima che easyPos lo legga
  • Controllare lo stato del servizio easyPos
  • Verificare che il campo app sia presente

8.2 Errori Connessione API

  • Verificare la connettività di rete al server easyPos
  • Controllare le impostazioni del firewall
  • Confermare URL e porta dell'endpoint corretti
  • Validare la configurazione della stringa di autorizzazione
  • Assicurarsi che il servizio API locale sia abilitato nelle impostazioni easyPos

8.3 Errori Dati Non Validi

  • Validare che tutti i campi obbligatori siano presenti
  • Verificare che i tipi di dati corrispondano alle specifiche
  • Verificare che i codici IVA siano validi
  • Assicurarsi che gli importi siano formattati correttamente

9. Checklist Integrazione

9.1 Setup

  • ☐ Software installato e configurato
  • ☐ Account demo disponibile
  • ☐ Stringa di autorizzazione configurata
  • ☐ Metodo di integrazione selezionato (File o API)

9.2 Sviluppo

  • ☐ Struttura JSON implementata
  • ☐ Gestione errori implementata
  • ☐ Elaborazione risposta implementata

9.3 Testing

  • ☐ Fattura base testata
  • ☐ Fattura con acquirente testata
  • ☐ Annullamento testato
  • ☐ Scenari di errore testati

Nota Importante

Per testare l'integrazione, richiedere un account demo allo staff di supporto.


© ESDP - easyPos Guida all'Integrazione v2.3.1