Zurück zur Startseite

easyPos - Integrationsleitfaden

Lokale API & Datei-Integration

Fiskalisierungssoftware

Version 2.3.1 | Aktualisiert: 04/2026

Übersicht

Dieses Dokument bietet umfassende Anleitungen zur Integration mit dem easyPos-System. Zwei Hauptmethoden werden unterstützt:

  • Lokale API-Integration: Verwendung von HTTP-Endpunkten mit JSON-Payloads
  • Datei-Integration: Verwendung von JSON- oder TXT-Dateien im überwachten Verzeichnis

1. Einführung

easyPos ist eine Fiskalisierungssoftware für normale und einfache Rechnungen in Albanien. Diese Anleitung zeigt, wie Sie mit easyPos über dateibasierte Integration oder RESTful-API-Aufrufe integrieren können.

1.1 Integrationsmethoden

  1. Lokale API-Integration: HTTP-Anfragen mit JSON-Payloads
  2. Datei-Integration: JSON- oder TXT-Dateien im überwachten Verzeichnis ablegen

1.2 Voraussetzungen

  • Windows- oder MacOS-Betriebssystem (erforderlich für easyPos-Installation)
  • Gültige easyPos-Installation und -Konfiguration
  • API-Autorisierungsstring konfiguriert (für API-Integration)
  • Lokaler API-Dienst in easyPos-Einstellungen aktiviert (für API-Integration)
  • Netzwerkverbindung zum lokalen easyPos-Dienst (für API-Integration)
  • Datei-Watcher konfiguriert (für Datei-Integration)

2. Lokale API-Integration

2.1 Basis-URL

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

2.2 Headers

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

2.3 API-Endpunkte

Method Endpoint Beschreibung
GET/v1Verbindung testen
POST/v1/invoices/newRechnung(en) erstellen
GET/v1/invoicesAlle Rechnungen abrufen
GET/v1/invoices/:idEinzelne Rechnung abrufen
GET/v1/operatorsOperatoren abrufen
GET/v1/entitiesEntitäten abrufen
GET/v1/balanceKassenstand abrufen
POST/v1/balance/initiateAnfangsbestand melden
POST/v1/balance/depositEinzahlung
POST/v1/balance/withdrawAuszahlung

2.4 Antwortformat

{
  "status": 0,
  "response": {
    "nslf": "C352A1442630779BD016323CB4765331",
    "nivf": "19d7cf18-9f2f-4501-b0d1-48830dfc0750",
    "link": "https://efiskalizimi-app.tatime.gov.al/...",
    "text": "Sukses"
  }
}
  • status: 0 = Erfolg, 1 = Fehler, 2 = Ausstehend
  • nslf: NSLF - Interner Rechnungszähler (IIC)
  • nivf: NIVF - Fiskalische Rechnungsnummer (FIC)
  • link: Rechnungsverifizierungs-URL

3. Datei-Integration

3.1 JSON-Format

Legen Sie JSON-Dateien im überwachten Verzeichnis ab. easyPos verarbeitet sie automatisch.

Wichtig: Das "app"-Feld

Bei der JSON-Datei-Integration wird das "app"-Feld EMPFOHLEN, um die Anwendung/Integrationsquelle zu identifizieren.

Basisrechnung

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

Rechnung mit Käufer

{
  "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 TXT-Formate

easyPos unterstützt zwei TXT-Dateiformate für die Integration mit Legacy-Fiskalgeräten:

3.2.1 AED-Format

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 IVA-Format

Das IVA-Format verwendet eine strukturierte zeilenbasierte Syntax mit spezifischen Präfixen:

Basisrechnung:

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

Rechnung mit Käufer (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,______,_,__;

Kartenzahlung:

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

Mit Rabatt:

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

IVA-Zeilenpräfixe

  • H - Kopfzeile (Rechnungsbeginn)
  • B - Käuferinformationen
  • S - Verkaufszeile (Artikel)
  • C - Rabatt für vorherige Zeile
  • P - Rechnungsnotizen
  • OP - Operatorcode
  • T - Summe
  • F - Fußzeile (Rechnungsende)

4. Zahlungsmethoden

WertKategorieBeschreibung
BANKNOTECASHBargeld
CARDCASHKarte
CHECKCASHScheck
SVOUCHERCASHGutschein
COMPANYCASHUnternehmen
ACCOUNTNONCASHBanküberweisung
FACTORINGNONCASHFactoring
COMPENSATIONNONCASHKompensation
KINDNONCASHSachleistung (Clearing)
OTHERNONCASHSonstige, bargeldlos

Vereinfachte Zahlungsarten für JSON

Für die JSON-Datei-Integration verwenden Sie diese vereinfachten Zahlungsarten:

  • CASH - Barzahlung
  • CARD - Kartenzahlung
  • ACCOUNT - Banküberweisung (erfordert bankDetails)
  • CHECK - Scheckzahlung
  • OTHER - Andere bargeldlose Zahlung

Beispiel mit OTHER-Zahlung

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

5. Feldreferenz

5.1 MwSt-Codes

CodeSatzBeschreibung
A0%Steuerfrei (TAX_FREE)
B20%Standardsatz
C0%Befreiung Typ 2
D10%Ermäßigter Satz
E6%Ermäßigter Satz
J0%Warenexport

5.2 ID-Typen

WertBeschreibung
NUISNIPT (Steuer-ID)
IDPersonalausweisnummer
PASSReisepassnummer
VATUSt-IdNr.
TAXSteuernummer
SOCSozialversicherungsnummer

5.4 Rechnungstypen

TypBeschreibung
(default)Standard-Verkaufsrechnung
ORDERBestellung
CANCELRechnungsstornierung
CORRECTIVEKorrekturrechnung
SUMMARYSammelrechnung
EXCHANGEWährungsumtausch

6. Beispiele

6.1 Rechnung mit mehreren Zahlungen

{
  "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 Rechnung mit Fremdwährung

{
  "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 Rechnungsstornierung

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

6.4 Rechnung mit Banküberweisung

{
  "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 Rechnung mit Artikelrabatt

{
  "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 Allgemeine Richtlinien

  • Daten validieren: JSON-Struktur vor dem Senden immer validieren
  • Fehler behandeln: Ordnungsgemäße Fehlerbehandlung für fehlgeschlagene Transaktionen implementieren
  • IIC speichern: Den zurückgegebenen IIC (nslf) für zukünftige Referenz und Stornierungen speichern
  • Netzwerkzuverlässigkeit: Für API-Integration Wiederholungslogik implementieren
  • Demo-Konto: Demo-Konto beim Support-Team anfordern, um die Integration zu testen
  • Dokument-ID: UUIDv4-Format für benutzerdefinierte docId-Felder verwenden, um Eindeutigkeit zu gewährleisten

7.2 Best Practices für Datei-Integration

  • Eindeutige Dateinamen verwenden, um Konflikte zu vermeiden
  • Antwortdateien auf Verarbeitungsergebnisse überwachen
  • Dateisperrmechanismen implementieren, um partielle Lesevorgänge zu verhindern
  • Verarbeitete Dateien regelmäßig bereinigen
  • Immer das app-Feld einschließen, um Ihre Anwendung zu identifizieren

7.3 Best Practices für lokale API-Integration

  • Connection Pooling für bessere Leistung verwenden
  • Exponentielles Backoff für Wiederholungen implementieren
  • Alle Anfragen und Antworten für das Debugging protokollieren
  • Angemessene Netzwerk-Timeouts konfigurieren
  • Netzwerkverbindung zum easyPos-Dienst sicherstellen

8. Fehlerbehebung

8.1 Datei wird nicht verarbeitet

  • Dateiberechtigungen prüfen
  • JSON-Syntax auf Gültigkeit prüfen
  • Sicherstellen, dass die Datei vollständig geschrieben ist, bevor easyPos sie liest
  • easyPos-Dienststatus prüfen
  • Prüfen, ob das app-Feld vorhanden ist

8.2 API-Verbindungsfehler

  • Netzwerkverbindung zum easyPos-Server prüfen
  • Firewall-Einstellungen prüfen
  • Korrekte Endpunkt-URL und Port bestätigen
  • Autorisierungsstring-Konfiguration validieren
  • Sicherstellen, dass der lokale API-Dienst in den easyPos-Einstellungen aktiviert ist

8.3 Ungültige Datenfehler

  • Validieren, dass alle erforderlichen Felder vorhanden sind
  • Prüfen, ob Datentypen den Spezifikationen entsprechen
  • Prüfen, ob MwSt-Codes gültig sind
  • Sicherstellen, dass Beträge korrekt formatiert sind

9. Integrations-Checkliste

9.1 Setup

  • ☐ Software installiert und konfiguriert
  • ☐ Demo-Konto verfügbar
  • ☐ Autorisierungsstring konfiguriert
  • ☐ Integrationsmethode ausgewählt (Datei oder API)

9.2 Entwicklung

  • ☐ JSON-Struktur implementiert
  • ☐ Fehlerbehandlung implementiert
  • ☐ Antwortverarbeitung implementiert

9.3 Testing

  • ☐ Basisrechnung getestet
  • ☐ Rechnung mit Käufer getestet
  • ☐ Stornierung getestet
  • ☐ Fehlerszenarien getestet

Wichtiger Hinweis

Um die Integration zu testen, fordern Sie ein Demo-Konto beim Support-Team an.


© ESDP - easyPos Integrationsleitfaden v2.3.1