28
Zurück zur Startseite

easyInvoice - Integrationsleitfaden

Lokale API & Datei-Integration

Elektronische Rechnungsstellung

Version 2.3.1 | Aktualisiert: 04/2026

Übersicht

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

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

1. Einführung

easyInvoice ist ein elektronisches Rechnungssystem für B2B-Transaktionen und Steuerkonformität in Albanien. Diese Anleitung zeigt, wie Sie mit easyInvoice ü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-Dateien im überwachten Verzeichnis ablegen

1.2 Voraussetzungen

  • Windows- oder MacOS-Betriebssystem (erforderlich für easyInvoice-Installation)
  • Gültige easyInvoice-Installation und -Konfiguration
  • API-Autorisierungsstring konfiguriert (für API-Integration)
  • Lokaler API-Dienst in easyInvoice-Einstellungen aktiviert (für API-Integration)
  • Netzwerkverbindung zum lokalen easyInvoice-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

2.4 Antwortformat

{
  "status": 0,
  "response": {
    "nslf": "9F01C3580F765D733529ED8C2822CA81",
    "nivf": "9775c78c-1363-4469-9b26-e9a19204a0a4",
    "eic": "aae0770c-0e44-4a0a-b8d1-004c2a6eacf4",
    "link": "https://efiskalizimi-app.tatime.gov.al/invoice-check/...",
    "text": "Sukses"
  },
  "docId": "0384a667-ea97-4e53-9e8e-5a234162ca42"
}
  • status: 0 = Success, 1 = Error
  • nslf: IIC (Internal Invoice Counter)
  • nivf: FIC (Fiscal Invoice Counter)
  • eic: EIC (Electronic Invoice Counter)
  • link: Invoice verification URL

3. Datei-Integration

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

Basisrechnung mit Käufer

{
  "operatorCode": "gh537ez280",
  "buyer": {
    "buyerIDType": "NUIS",
    "buyerIDNum": "K00000000A",
    "buyerName": "GENERAL DIRECTORATE OF TAXES",
    "buyerAddress": "Rruga Gjin Bue Shpata",
    "buyerTown": "Tirana",
    "buyerCountry": "ALB"
  },
  "articles": [
    {
      "articleId": "1412134",
      "vatCode": "B",
      "name": "Water",
      "soldIn": "cope",
      "price": 150,
      "units": 195
    }
  ],
  "bankDetails": {
    "country": "Albania",
    "countryCode": "AL",
    "currency": "ALL",
    "idNumber": "AL70202310040000000011237412"
  }
}

4. Rechnungsformat

Wichtiger Hinweis

  • operatorCode - Required for all invoices
  • buyer - Required with valid NUIS
  • bankDetails - Required for ACCOUNT payment
  • docId - Recommended (UUIDv4)

4.1 Standardrechnung mit Käufer

{
  "app": "your-app-name",
  "operatorCode": "gh537ez280",
  "buyer": {
    "buyerIDType": "NUIS",
    "buyerIDNum": "K00000000A",
    "buyerName": "GENERAL DIRECTORATE OF TAXES",
    "buyerAddress": "Rruga Gjin Bue Shpata",
    "buyerTown": "Tirana",
    "buyerCountry": "ALB"
  },
  "articles": [
    {
      "articleId": "1412134",
      "vatCode": "B",
      "name": "Water",
      "soldIn": "cope",
      "price": 150,
      "units": 195
    },
    {
      "articleId": "2412412",
      "vatCode": "B",
      "name": "Cola",
      "soldIn": "cope",
      "price": 200,
      "units": 120
    }
  ],
  "bankDetails": {
    "country": "Albania",
    "countryCode": "AL",
    "currency": "ALL",
    "idNumber": "AL70202310040000000011237412"
  },
  "paymentDeadline": "2025-01-28",
  "supplyPeriod": {
    "start": "2025-01-01",
    "end": "2025-01-28"
  },
  "invoiceNotes": "Test note"
}

4.2 Rechnung mit mehreren Zahlungen

"payment": [
  {
    "type": "FACTORING",
    "amount": 23500
  },
  {
    "type": "ACCOUNT",
    "bankDetails": [{
      "country": "Albania",
      "countryCode": "AL",
      "currency": "ALL",
      "idNumber": "AL70202310040000000011237412"
    }],
    "amount": 35600
  }
]

4.3 Rechnungsstornierung

{
  "invoices": [{
    "docId": "ab4f61ac-d812-4939-80f3-e964fd1a041a",
    "operatorCode": "gh537ez280",
    "invoiceType": "CANCEL",
    "iicRef": "3A0029767862ACE2DDCB70C2E4363C09"
  }]
}

4.4 easyInvoice-spezifische Felder

FeldTypBeschreibung
bankDetailsobjectBankdaten des Verkäufers
paymentDeadlinestringZahlungsfrist (YYYY-MM-DD)
supplyPeriodobjectLieferzeitraum (start, end)
invoiceNotesstringRechnungsnotizen

4.5 Zahlungsmethoden

TypKategorieBeschreibung
ACCOUNTNONCASHBanküberweisung
FACTORINGNONCASHFactoring
COMPENSATIONNONCASHKompensation
KINDNONCASHSachleistung (Clearing)
OTHERNONCASHSonstige, bargeldlos

5. Warenbegleitschein (WTN)

5.1 WTN-Struktur

{
  "app": "your-app-name",
  "invoiceType": "WTN",
  "articles": [
    {
      "articleId": "12344412",
      "name": "Water",
      "soldIn": "cope",
      "cost": 50.4121,
      "units": 10.192
    },
    {
      "articleId": "2341234",
      "name": "Bread",
      "soldIn": "cope",
      "cost": 150.245,
      "units": 3.142
    }
  ],
  "wtnOptions": {
    "transaction": "TRANSFER",
    "vehicleOwnership": "OWNER",
    "vehiclePlate": "AA293BB",
    "startPoint": "STORE",
    "startAddress": "Lunder",
    "startCity": "Tirana",
    "startDate": "2025-01-12",
    "startTime": "22:55",
    "destinationPoint": "STORE",
    "destinationCity": "Durres",
    "destinationAddress": "Test Street",
    "destinationDate": "2025-01-14",
    "destinationTime": "21:32",
    "areGoodsFlammable": true,
    "isEscortRequired": false,
    "packagingType": "Box",
    "packagesNumber": "24",
    "itemsNumber": "12"
  }
}

5.2 WTN-Optionen

FeldMögliche WerteBeschreibung
transactionTRANSFER, SALE, EXAMINATION, DISPOSAL, RETURNTransaktionstyp
vehicleOwnershipOWNER, THIRD_PARTYFahrzeugeigentum
startPointSTORE, WAREHOUSE, OTHERStartpunkt
destinationPointSTORE, WAREHOUSE, OTHERZielpunkt

6. Feldreferenz

6.1 Bankdaten

FeldBeschreibungBeispiel
countryLändernameAlbania
countryCodeISO 2-Buchstaben-CodeAL
currencyWährungscodeALL, EUR
idNumberIBANAL70202310040000000011237412

6.2 Lieferzeitraum

"supplyPeriod": {
  "start": "2025-01-01",
  "end": "2025-01-28"
}

6.3 Fehlercodes

CodeTypNachricht
E1000NOT_FOUND_ERRORRessource nicht gefunden
E1001ALREADY_EXISTS_ERRORRessource existiert bereits
E1002FIELDS_VALIDATION_ERRORFeldvalidierungsfehler
E1300INVOICE_ERRORRechnung konnte nicht erstellt werden
E9800CIS_ERRORFehler von CIS

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 - easyInvoice Integrationsleitfaden v2.3.1