Zur Dokumentation

Kopiert

Cloud-Fiskalisierungs-API

01 · Erste Anfrage

Vom Token zur Fiskalrechnung

Nutzen Sie zuerst die Entwicklungsumgebung. Unternehmen und Fiskalgerät kommen aus dem Token; der Body enthält nur Dokumentdaten.

  1. 01

    Zugangsdaten erhalten

    Fordern Sie ein Token für Umgebung, Unternehmen und Gerät an.

  2. 02

    docId erstellen

    Erzeugen und speichern Sie vor der ersten Anfrage eine stabile ID.

  3. 03

    Registrieren und prüfen

    Senden Sie die Rechnung und prüfen Sie Kennungen statt nur HTTP 200.

Minimale normale Rechnung
curl --request POST \
  --url 'https://api.dev.easypos.al/fiscalisation-service/v1/invoice/register' \
  --header 'Authorization: Bearer {{accessToken}}' \
  --header 'Content-Type: application/json' \
  --header 'integration-app: your-client-name' \
  --data '{
  "docId": "SHOP-2026-000123",
  "articles": [
    {
      "articleId": "ART-1",
      "name": "Kafe",
      "vatCode": "B",
      "price": 120,
      "units": 2,
      "soldIn": "XPP"
    }
  ],
  "payment": [
    {
      "type": "CASH",
      "amount": 240
    }
  ]
}'
Abgeschlossene Antwort
{
  "orderId": "SHOP-2026-000123",
  "fic": "52ca073b-536e-48e9-8678-cc0bf2202046",
  "iic": "D21EBF3F7B7C502D6AAF2321A7CE2CE8",
  "invoiceNumber": "12/2026/xx123xx123",
  "invoiceType": "CASH",
  "totalPrice": 240
}

02 · Zugriff

Authentifizierung und Header

Jeder Endpoint benötigt ein Bearer-Token. Ersetzen Sie den Beispielwert von integration-app durch die stabile Kennung Ihrer Integration und verwenden Sie sie unverändert für alle Anfragen.

HeaderAnforderungZweck
AuthorizationErforderlichBearer-Token der gewählten Umgebung.
Content-TypeErforderlichFür jede Anfrage application/json.
integration-appEmpfohlenErsetzen Sie your-client-name oder erp-x durch die Kennung Ihrer Integration.

03 · Wiederherstellungsprotokoll

docId verhindert Duplikate

Wählen Sie docId vor dem Senden in Ihrem System. Die Wiederverwendung setzt denselben Fiskalvorgang fort und darf keine zweite Rechnung erzeugen.

Einmal erzeugen
5–200 Zeichen, eindeutig pro Geschäftsdokument.
Vor POST speichern
docId, unveränderlichen Body und lokale ID atomar speichern.
Bei Wiederherstellung nutzen
Timeout, Verbindungsabbruch, 502/503 und unvollständige E-Rechnung behalten dieselbe docId.
Single Flight
register und status nie parallel für dieselbe docId ausführen.

Sichere Wiederherstellung

same docId · same body
  1. 01

    POST register

  2. 02

    Unklar / unvollständig

  3. 03

    Warten + Jitter

  4. 04

    POST status

  5. 05

    Fertig?

  6. 06

    Gleichen Body senden

  1. 1Normal erfordert fic; elektronisch erfordert fic und eic.
  2. 2Bei Timeout, Netzwerk, 502/503 oder unvollständigem Ergebnis exponentielles Backoff mit Jitter bis 30 Sekunden.
  3. 3/invoice/status mit derselben docId aufrufen. Falls nicht vorhanden, /invoice/register mit identischem Body und docId wiederholen.
  4. 4Validierungsfehler oder env:CLIENT erst nach Korrektur wiederholen.

Eine Stornierung ist ein neues Fiskaldokument und erhält eine neue docId. Wiederholungen verwenden diese Storno-docId.

Client-Entscheidungsablauf
const docId = await persistOperation(payload)

const result = await register({ ...payload, docId })
if (result.fic && (!payload.isEinvoice || result.eic)) return complete(result)

await backoffWithJitter()
const recovered = await status({ docId })

if (recovered.notFound) {
  return register({ ...payload, docId }) // exact same body
}

return evaluate(recovered)

04 · Dokumentmodell

Beispiele für Rechnungsanfragen

Dokumenttyp öffnen, um vollständige Anfrage, Antwort und Abschlusskennungen zu sehen.

POST NORMALArtikel, kombinierte Zahlungen und optionaler buyer; documentType kann fehlen.
/invoice/registerAbschluss: fic #invoice-type-normal
Request-Body
curl --request POST \
  --url 'https://api.dev.easypos.al/fiscalisation-service/v1/invoice/register' \
  --header 'Authorization: Bearer {{accessToken}}' \
  --header 'Content-Type: application/json' \
  --header 'integration-app: your-client-name' \
  --data '{
  "docId": "SHOP-2026-000123",
  "articles": [
    {
      "articleId": "ART-COFFEE",
      "name": "Kafe ekspres",
      "vatCode": "B",
      "price": 120,
      "units": 2,
      "soldIn": "XPP"
    },
    {
      "articleId": "ART-WATER",
      "name": "Ujë natyral",
      "vatCode": "B",
      "price": 100,
      "units": 1,
      "soldIn": "XPP"
    }
  ],
  "payment": [
    {
      "type": "CASH",
      "amount": 200
    },
    {
      "type": "CARD",
      "amount": 140
    }
  ]
}'
Beispielantwort
{
  "orderId": "SHOP-2026-000123",
  "fic": "52ca073b-536e-48e9-8678-cc0bf2202046",
  "iic": "D21EBF3F7B7C502D6AAF2321A7CE2CE8",
  "invoiceNumber": "12/2026/xx123xx123",
  "invoiceType": "CASH",
  "totalPrice": 340
}

Request-Felder

FeldTyp
docIdstring
articlesobject[]
articles[].articleIdstring
articles[].namestring
articles[].vatCodestring
articles[].pricenumber
articles[].unitsnumber
articles[].soldInstring
paymentobject[]
payment[].typestring
payment[].amountnumber

Response-Felder

FeldTyp
orderIdstring
ficstring
iicstring
invoiceNumberstring
invoiceTypestring
totalPricenumber
POST ORDERNur Artikel; payment entfällt und wird als ORDER erzeugt.
/invoice/registerAbschluss: fic #invoice-type-order
Request-Body
curl --request POST \
  --url 'https://api.dev.easypos.al/fiscalisation-service/v1/invoice/register' \
  --header 'Authorization: Bearer {{accessToken}}' \
  --header 'Content-Type: application/json' \
  --header 'integration-app: your-client-name' \
  --data '{
  "docId": "ORDER-2026-000124",
  "documentType": "ORDER",
  "articles": [
    {
      "articleId": "ORD-1",
      "name": "Drekë biznesi",
      "vatCode": "B",
      "price": 1200,
      "units": 1,
      "soldIn": "XPP"
    }
  ]
}'
Beispielantwort
{
  "orderId": "ORDER-2026-000124",
  "fic": "52ca073b-536e-48e9-8678-cc0bf2202046",
  "iic": "D21EBF3F7B7C502D6AAF2321A7CE2CE8",
  "invoiceNumber": "13/2026/xx123xx123",
  "invoiceType": "CASH",
  "totalPrice": 1200
}

Request-Felder

FeldTyp
docIdstring
documentTypestring
articlesobject[]
articles[].articleIdstring
articles[].namestring
articles[].vatCodestring
articles[].pricenumber
articles[].unitsnumber
articles[].soldInstring

Response-Felder

FeldTyp
orderIdstring
ficstring
iicstring
invoiceNumberstring
invoiceTypestring
totalPricenumber
POST SUMMARYVerbraucht ungenutzte ORDER-iic; articles entfällt.
/invoice/registerAbschluss: fic #invoice-type-summary
Request-Body
curl --request POST \
  --url 'https://api.dev.easypos.al/fiscalisation-service/v1/invoice/register' \
  --header 'Authorization: Bearer {{accessToken}}' \
  --header 'Content-Type: application/json' \
  --header 'integration-app: your-client-name' \
  --data '{
  "docId": "SUMMARY-2026-000125",
  "documentType": "SUMMARY",
  "summaryInvoices": [
    "D21EBF3F7B7C502D6AAF2321A7CE2CE8",
    "A11EBF3F7B7C502D6AAF2321A7CE2CE9"
  ],
  "total": 1800,
  "payment": [
    {
      "type": "CASH",
      "amount": 1800
    }
  ]
}'
Beispielantwort
{
  "orderId": "SUMMARY-2026-000125",
  "fic": "52ca073b-536e-48e9-8678-cc0bf2202046",
  "iic": "D21EBF3F7B7C502D6AAF2321A7CE2CE8",
  "invoiceNumber": "14/2026/xx123xx123",
  "invoiceType": "CASH",
  "totalPrice": 1800
}

Request-Felder

FeldTyp
docIdstring
documentTypestring
summaryInvoicesstring[]
totalnumber
paymentobject[]
payment[].typestring
payment[].amountnumber

Response-Felder

FeldTyp
orderIdstring
ficstring
iicstring
invoiceNumberstring
invoiceTypestring
totalPricenumber
POST SELFISSUEBenötigt selfIssueType und Lieferantendaten in buyer.
/invoice/registerAbschluss: fic #invoice-type-selfissue
Request-Body
curl --request POST \
  --url 'https://api.dev.easypos.al/fiscalisation-service/v1/invoice/register' \
  --header 'Authorization: Bearer {{accessToken}}' \
  --header 'Content-Type: application/json' \
  --header 'integration-app: your-client-name' \
  --data '{
  "docId": "SELFISSUE-2026-000126",
  "documentType": "SELFISSUE",
  "selfIssueType": "DOMESTIC",
  "reverseCharge": true,
  "buyer": {
    "buyerIDType": "NUIS",
    "buyerIDNum": "{{supplierNipt}}",
    "buyerName": "Furnitor SHPK",
    "buyerAddress": "Tiranë",
    "buyerTown": "Tiranë",
    "buyerCountry": "ALB"
  },
  "articles": [
    {
      "articleId": "SVC-1",
      "name": "Shërbim profesional",
      "vatCode": "B",
      "price": 10000,
      "units": 1,
      "soldIn": "HUR"
    }
  ],
  "payment": [
    {
      "type": "CASH",
      "amount": 10000
    }
  ]
}'
Beispielantwort
{
  "orderId": "SELFISSUE-2026-000126",
  "fic": "52ca073b-536e-48e9-8678-cc0bf2202046",
  "iic": "D21EBF3F7B7C502D6AAF2321A7CE2CE8",
  "invoiceNumber": "15/2026/xx123xx123",
  "invoiceType": "CASH",
  "totalPrice": 10000
}

Request-Felder

FeldTyp
docIdstring
documentTypestring
selfIssueTypestring
reverseChargeboolean
buyerobject
buyer.buyerIDTypestring
buyer.buyerIDNumstring
buyer.buyerNamestring
buyer.buyerAddressstring
buyer.buyerTownstring
buyer.buyerCountrystring
articlesobject[]
articles[].articleIdstring
articles[].namestring
articles[].vatCodestring
articles[].pricenumber
articles[].unitsnumber
articles[].soldInstring
paymentobject[]
payment[].typestring
payment[].amountnumber

Response-Felder

FeldTyp
orderIdstring
ficstring
iicstring
invoiceNumberstring
invoiceTypestring
totalPricenumber
POST EXPORTAusländischer buyer und konfigurierter Export-USt-Code.
/invoice/registerAbschluss: fic #invoice-type-export
Request-Body
curl --request POST \
  --url 'https://api.dev.easypos.al/fiscalisation-service/v1/invoice/register' \
  --header 'Authorization: Bearer {{accessToken}}' \
  --header 'Content-Type: application/json' \
  --header 'integration-app: your-client-name' \
  --data '{
  "docId": "EXPORT-2026-000127",
  "documentType": "EXPORT",
  "supplyPeriod": {
    "start": "2026-08-01",
    "end": "2026-08-28"
  },
  "buyer": {
    "buyerIDType": "VAT",
    "buyerIDNum": "IT12345678901",
    "buyerName": "Acquirente Demo SRL",
    "buyerAddress": "Via Roma 1",
    "buyerTown": "Bari",
    "buyerCountry": "ITA",
    "buyerCountryCode": "IT"
  },
  "articles": [
    {
      "articleId": "EXP-1",
      "name": "Mall për eksport",
      "vatCode": "J",
      "price": 25000,
      "units": 4,
      "soldIn": "XPP"
    }
  ],
  "payment": [
    {
      "type": "TRANSFER",
      "amount": 100000
    }
  ]
}'
Beispielantwort
{
  "orderId": "EXPORT-2026-000127",
  "fic": "52ca073b-536e-48e9-8678-cc0bf2202046",
  "iic": "D21EBF3F7B7C502D6AAF2321A7CE2CE8",
  "invoiceNumber": "16/2026/xx123xx123",
  "invoiceType": "CASH",
  "totalPrice": 100000
}

Request-Felder

FeldTyp
docIdstring
documentTypestring
supplyPeriodobject
supplyPeriod.startstring
supplyPeriod.endstring
buyerobject
buyer.buyerIDTypestring
buyer.buyerIDNumstring
buyer.buyerNamestring
buyer.buyerAddressstring
buyer.buyerTownstring
buyer.buyerCountrystring
buyer.buyerCountryCodestring
articlesobject[]
articles[].articleIdstring
articles[].namestring
articles[].vatCodestring
articles[].pricenumber
articles[].unitsnumber
articles[].soldInstring
paymentobject[]
payment[].typestring
payment[].amountnumber

Response-Felder

FeldTyp
orderIdstring
ficstring
iicstring
invoiceNumberstring
invoiceTypestring
totalPricenumber
POST ELEKTRONISCH · P1Standard-E-Rechnung mit NUIS-buyer und bargeldloser Zahlung.
/invoice/registerAbschluss: fic + eic #invoice-type-electronic-p1
Request-Body
curl --request POST \
  --url 'https://api.dev.easypos.al/fiscalisation-service/v1/invoice/register' \
  --header 'Authorization: Bearer {{accessToken}}' \
  --header 'Content-Type: application/json' \
  --header 'integration-app: your-client-name' \
  --data '{
  "docId": "EINVOICE-P1-2026-000128",
  "isEinvoice": true,
  "selectedProcess": "P1",
  "payDeadline": "2026-09-30",
  "buyer": {
    "buyerIDType": "NUIS",
    "buyerIDNum": "{{buyerNipt}}",
    "buyerName": "Blerës SHPK",
    "buyerAddress": "Tiranë",
    "buyerTown": "Tiranë",
    "buyerCountry": "ALB",
    "buyerCountryCode": "AL"
  },
  "articles": [
    {
      "articleId": "SVC-CLOUD",
      "name": "Shërbim cloud",
      "vatCode": "B",
      "price": 10000,
      "units": 1,
      "soldIn": "HUR"
    }
  ],
  "payment": [
    {
      "type": "ACCOUNT",
      "amount": 10000,
      "details": [
        {
          "idNumber": "{{sellerIban}}",
          "name": "Shitësi SHPK",
          "bankName": "Banka",
          "swift_code": "ABCDEFGH",
          "country": "Shqipëri",
          "countryCode": "AL",
          "currency": "ALL"
        }
      ]
    }
  ]
}'
Beispielantwort
{
  "orderId": "EINVOICE-P1-2026-000128",
  "fic": "52ca073b-536e-48e9-8678-cc0bf2202046",
  "iic": "D21EBF3F7B7C502D6AAF2321A7CE2CE8",
  "invoiceNumber": "17/2026/xx123xx123",
  "invoiceType": "NONCASH",
  "totalPrice": 10000,
  "eic": "2a8d91cf-8fea-4d86-b79d-4bcb0b153e78"
}

Request-Felder

FeldTyp
docIdstring
isEinvoiceboolean
selectedProcessstring
payDeadlinestring
buyerobject
buyer.buyerIDTypestring
buyer.buyerIDNumstring
buyer.buyerNamestring
buyer.buyerAddressstring
buyer.buyerTownstring
buyer.buyerCountrystring
buyer.buyerCountryCodestring
articlesobject[]
articles[].articleIdstring
articles[].namestring
articles[].vatCodestring
articles[].pricenumber
articles[].unitsnumber
articles[].soldInstring
paymentobject[]
payment[].typestring
payment[].amountnumber
payment[].detailsobject[]
payment[].details[].idNumberstring
payment[].details[].namestring
payment[].details[].bankNamestring
payment[].details[].swift_codestring
payment[].details[].countrystring
payment[].details[].countryCodestring
payment[].details[].currencystring

Response-Felder

FeldTyp
orderIdstring
ficstring
iicstring
invoiceNumberstring
invoiceTypestring
totalPricenumber
eicstring
POST ELEKTRONISCH · P4Vorauszahlung; prepaidAmount darf den Gesamtbetrag nicht überschreiten.
/invoice/registerAbschluss: fic + eic #invoice-type-electronic-p4
Request-Body
curl --request POST \
  --url 'https://api.dev.easypos.al/fiscalisation-service/v1/invoice/register' \
  --header 'Authorization: Bearer {{accessToken}}' \
  --header 'Content-Type: application/json' \
  --header 'integration-app: your-client-name' \
  --data '{
  "docId": "EINVOICE-P4-2026-000129",
  "isEinvoice": true,
  "selectedProcess": "P4",
  "prepaidAmount": 5000,
  "buyer": {
    "buyerIDType": "NUIS",
    "buyerIDNum": "{{buyerNipt}}",
    "buyerName": "Blerës SHPK",
    "buyerAddress": "Tiranë",
    "buyerTown": "Tiranë",
    "buyerCountry": "ALB"
  },
  "articles": [
    {
      "articleId": "ADV-1",
      "name": "Parapagim shërbimi",
      "vatCode": "B",
      "price": 10000,
      "units": 1,
      "soldIn": "XPP"
    }
  ],
  "payment": [
    {
      "type": "TRANSFER",
      "amount": 10000
    }
  ]
}'
Beispielantwort
{
  "orderId": "EINVOICE-P4-2026-000129",
  "fic": "52ca073b-536e-48e9-8678-cc0bf2202046",
  "iic": "D21EBF3F7B7C502D6AAF2321A7CE2CE8",
  "invoiceNumber": "18/2026/xx123xx123",
  "invoiceType": "NONCASH",
  "totalPrice": 10000,
  "eic": "0543e84b-6108-48b2-a2af-5db66bb80616"
}

Request-Felder

FeldTyp
docIdstring
isEinvoiceboolean
selectedProcessstring
prepaidAmountnumber
buyerobject
buyer.buyerIDTypestring
buyer.buyerIDNumstring
buyer.buyerNamestring
buyer.buyerAddressstring
buyer.buyerTownstring
buyer.buyerCountrystring
articlesobject[]
articles[].articleIdstring
articles[].namestring
articles[].vatCodestring
articles[].pricenumber
articles[].unitsnumber
articles[].soldInstring
paymentobject[]
payment[].typestring
payment[].amountnumber

Response-Felder

FeldTyp
orderIdstring
ficstring
iicstring
invoiceNumberstring
invoiceTypestring
totalPricenumber
eicstring
POST ELEKTRONISCH · P9/P10Gutschrift oder Korrektur mit elektronischer iic-Referenz.
/invoice/registerAbschluss: fic + eic #invoice-type-electronic-p9-p10
Request-Body
curl --request POST \
  --url 'https://api.dev.easypos.al/fiscalisation-service/v1/invoice/register' \
  --header 'Authorization: Bearer {{accessToken}}' \
  --header 'Content-Type: application/json' \
  --header 'integration-app: your-client-name' \
  --data '{
  "docId": "EINVOICE-P9-2026-000130",
  "isEinvoice": true,
  "selectedProcess": "P9",
  "correctiveInvoice": {
    "iicRef": "{{electronicIic}}"
  },
  "buyer": {
    "buyerIDType": "NUIS",
    "buyerIDNum": "{{buyerNipt}}",
    "buyerName": "Blerës SHPK",
    "buyerAddress": "Tiranë",
    "buyerTown": "Tiranë",
    "buyerCountry": "ALB"
  },
  "articles": [
    {
      "articleId": "CORR-1",
      "name": "Korrigjim shërbimi",
      "vatCode": "B",
      "price": -1000,
      "units": 1,
      "soldIn": "XPP"
    }
  ],
  "payment": [
    {
      "type": "TRANSFER",
      "amount": -1000
    }
  ]
}'
Beispielantwort
{
  "orderId": "EINVOICE-P9-2026-000130",
  "fic": "52ca073b-536e-48e9-8678-cc0bf2202046",
  "iic": "D21EBF3F7B7C502D6AAF2321A7CE2CE8",
  "invoiceNumber": "19/2026/xx123xx123",
  "invoiceType": "NONCASH",
  "totalPrice": -1000,
  "eic": "6df80aec-f690-43ce-a2f2-45ee0cb948ce"
}

Request-Felder

FeldTyp
docIdstring
isEinvoiceboolean
selectedProcessstring
correctiveInvoiceobject
correctiveInvoice.iicRefstring
buyerobject
buyer.buyerIDTypestring
buyer.buyerIDNumstring
buyer.buyerNamestring
buyer.buyerAddressstring
buyer.buyerTownstring
buyer.buyerCountrystring
articlesobject[]
articles[].articleIdstring
articles[].namestring
articles[].vatCodestring
articles[].pricenumber
articles[].unitsnumber
articles[].soldInstring
paymentobject[]
payment[].typestring
payment[].amountnumber

Response-Felder

FeldTyp
orderIdstring
ficstring
iicstring
invoiceNumberstring
invoiceTypestring
totalPricenumber
eicstring
POST ELEKTRONISCH · P11Teilweiser elektronischer Rechnungsfluss.
/invoice/registerAbschluss: fic + eic #invoice-type-electronic-p11
Request-Body
curl --request POST \
  --url 'https://api.dev.easypos.al/fiscalisation-service/v1/invoice/register' \
  --header 'Authorization: Bearer {{accessToken}}' \
  --header 'Content-Type: application/json' \
  --header 'integration-app: your-client-name' \
  --data '{
  "docId": "EINVOICE-P11-2026-000131",
  "isEinvoice": true,
  "selectedProcess": "P11",
  "buyer": {
    "buyerIDType": "NUIS",
    "buyerIDNum": "{{buyerNipt}}",
    "buyerName": "Blerës SHPK",
    "buyerAddress": "Tiranë",
    "buyerTown": "Tiranë",
    "buyerCountry": "ALB"
  },
  "articles": [
    {
      "articleId": "PART-1",
      "name": "Faturim i pjesshëm",
      "vatCode": "B",
      "price": 25000,
      "units": 1,
      "soldIn": "XPP"
    }
  ],
  "payment": [
    {
      "type": "TRANSFER",
      "amount": 25000
    }
  ]
}'
Beispielantwort
{
  "orderId": "EINVOICE-P11-2026-000131",
  "fic": "52ca073b-536e-48e9-8678-cc0bf2202046",
  "iic": "D21EBF3F7B7C502D6AAF2321A7CE2CE8",
  "invoiceNumber": "20/2026/xx123xx123",
  "invoiceType": "NONCASH",
  "totalPrice": 25000,
  "eic": "55df7eaf-126f-41b7-8270-6fa57080703e"
}

Request-Felder

FeldTyp
docIdstring
isEinvoiceboolean
selectedProcessstring
buyerobject
buyer.buyerIDTypestring
buyer.buyerIDNumstring
buyer.buyerNamestring
buyer.buyerAddressstring
buyer.buyerTownstring
buyer.buyerCountrystring
articlesobject[]
articles[].articleIdstring
articles[].namestring
articles[].vatCodestring
articles[].pricenumber
articles[].unitsnumber
articles[].soldInstring
paymentobject[]
payment[].typestring
payment[].amountnumber

Response-Felder

FeldTyp
orderIdstring
ficstring
iicstring
invoiceNumberstring
invoiceTypestring
totalPricenumber
eicstring
POST STORNIERUNG · NORMALNeue Storno-docId mit Verweis auf die ursprüngliche iic.
/invoice/cancelAbschluss: fic #invoice-type-cancellation
Request-Body
curl --request POST \
  --url 'https://api.dev.easypos.al/fiscalisation-service/v1/invoice/cancel' \
  --header 'Authorization: Bearer {{accessToken}}' \
  --header 'Content-Type: application/json' \
  --header 'integration-app: your-client-name' \
  --data '{
  "docId": "CANCEL-2026-000132",
  "correctiveInvoice": {
    "iicRef": "D21EBF3F7B7C502D6AAF2321A7CE2CE8"
  },
  "invoiceNotes": "Anulim me kërkesë të klientit"
}'
Beispielantwort
{
  "orderId": "CANCEL-2026-000132",
  "fic": "52ca073b-536e-48e9-8678-cc0bf2202046",
  "iic": "D21EBF3F7B7C502D6AAF2321A7CE2CE8",
  "invoiceNumber": "21/2026/xx123xx123",
  "invoiceType": "CASH",
  "totalPrice": -340
}

Request-Felder

FeldTyp
docIdstring
correctiveInvoiceobject
correctiveInvoice.iicRefstring
invoiceNotesstring

Response-Felder

FeldTyp
orderIdstring
ficstring
iicstring
invoiceNumberstring
invoiceTypestring
totalPricenumber
POST STORNIERUNG · ELEKTRONISCHP10-Korrekturstorno einer Rechnung, die bereits eine eic besitzt.
/invoice/cancelAbschluss: fic + eic #invoice-type-electronic-cancellation
Request-Body
curl --request POST \
  --url 'https://api.dev.easypos.al/fiscalisation-service/v1/invoice/cancel' \
  --header 'Authorization: Bearer {{accessToken}}' \
  --header 'Content-Type: application/json' \
  --header 'integration-app: your-client-name' \
  --data '{
  "docId": "CANCEL-EINVOICE-2026-000133",
  "isEinvoice": true,
  "selectedProcess": "P10",
  "correctiveInvoice": {
    "iicRef": "{{electronicIic}}"
  },
  "invoiceNotes": "Anulim i faturës elektronike"
}'
Beispielantwort
{
  "orderId": "CANCEL-EINVOICE-2026-000133",
  "fic": "52ca073b-536e-48e9-8678-cc0bf2202046",
  "iic": "D21EBF3F7B7C502D6AAF2321A7CE2CE8",
  "invoiceNumber": "22/2026",
  "invoiceType": "NONCASH",
  "totalPrice": -10000,
  "eic": "d59ef857-47df-4a80-a7d8-22ce70577df3"
}

Request-Felder

FeldTyp
docIdstring
isEinvoiceboolean
selectedProcessstring
correctiveInvoiceobject
correctiveInvoice.iicRefstring
invoiceNotesstring

Response-Felder

FeldTyp
orderIdstring
ficstring
iicstring
invoiceNumberstring
invoiceTypestring
totalPricenumber
eicstring

Prozessübersicht E-Rechnung

Fiskalisierung und E-Rechnungszustellung sind getrennte Stufen. Vollständig ist die Rechnung erst mit beiden Kennungen.

ProzessStandardtypZusatzregel
P1380Lieferungen gegen Bestellungen auf Vertragsbasis.
P2380Lieferungen von Waren oder Dienstleistungen auf Vertragsbasis.
P3380Lieferung gegen eine gelegentliche Bestellung.
P4386Vorauszahlung; prepaidAmount muss positiv und höchstens so hoch wie der Gesamtbetrag sein.
P5380Zahlung vor Ort.
P6380Zahlung vor Lieferung.
P7380Rechnung mit Verweis auf den Lieferschein.
P8380Rechnung mit Verweisen auf Liefer- und Empfangsbeleg.
P9384Gutschrift oder negative Rechnung; correctiveInvoice.iicRef verweist auf eine Rechnung mit eic.
P10384Korrektur oder Storno; correctiveInvoice.iicRef verweist auf eine Rechnung mit eic.
P11326Teil- und Schlussrechnung.
UNTDID-Codes für Rechnungstypen

Verwenden Sie selectedInvoiceType nur für eine gezielte Dokumentklassifizierung. Fehlt der Wert, wählt selectedProcess den oben angegebenen Standardcode.

CodeBedeutung
82Rechnung für gemessene Dienstleistungen
84Lastschrift für finanzielle Anpassungen
325Pro-forma-Rechnung
326Teilrechnung
380Handelsrechnung
383Lastschrift
386Vorauszahlungsrechnung
393Factoring-Rechnung
394Leasingrechnung
395Konsignationsrechnung
575Versichererrechnung
623Spediteurrechnung
780Frachtrechnung

Die Codes 80, 381, 384, 385 und 389 sind für automatisch vom Prozess zugewiesene Dokumenttypen reserviert und nicht direkt auswählbar.

05 · HTTP-Referenz

Endpoints

Alle Endpoints verwenden POST, JSON und dieselben Auth-Header.

POST/invoice/registerRechnung registrieren · Neues Dokument erstellen oder per docId fortsetzen.
Erforderlich
docId · articles[]* · payment[]*
Regeln
NORMAL | ORDER | SUMMARY | SELFISSUE | EXPORT | eInvoice

Request-Felder

FeldTyp
docIdstring
operatorCodestring?
currencyCurrency?
articlesArticle[] (conditional)
paymentPayment[] (conditional)
invoiceRebateRebate?
buyerBuyer (conditional)
correctiveInvoiceCorrectiveInvoiceRef (conditional)
invoiceNotesstring?
documentTypeNORMAL | ORDER | SUMMARY | SELFISSUE | EXPORT?
selfIssueTypeAGREEMENT | DOMESTIC | ABROAD | SELF | OTHER (conditional)
reverseChargeboolean?
summaryInvoicesstring[] (conditional)
totalnumber (conditional)
supplyPeriod{ start: date; end: date }?
isEinvoiceboolean?
selectedProcessP1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11?
selectedInvoiceTypeUNTDID code?
payDeadlinestring(date)?
prepaidAmountnumber (conditional)

Response-Felder

FeldTyp
orderIdstring
ficstring?
eicstring?
iicstring?
linkstring(uri)?
errorFiscalError?
invoiceNumberstring?
invoiceOrderNumberinteger?
invoiceTypeCASH | NONCASH?
totalPricenumber?
totalPriceWithoutVatnumber?
totalVatAmountnumber?
taxFreeAmountnumber?
goodsExportnumber?
markUpAmountnumber?
operatorCodestring?
businessUnitCodestring?
tcrCodestring?
sellerNamestring?
sellerNuisstring?
sellerAddressstring?
Request-Body
curl --request POST \
  --url 'https://api.dev.easypos.al/fiscalisation-service/v1/invoice/register' \
  --header 'Authorization: Bearer {{accessToken}}' \
  --header 'Content-Type: application/json' \
  --header 'integration-app: your-client-name' \
  --data '{
  "docId": "SHOP-2026-000123",
  "articles": [
    {
      "articleId": "ART-1",
      "name": "Kafe",
      "vatCode": "B",
      "price": 120,
      "units": 2,
      "soldIn": "XPP"
    }
  ],
  "payment": [
    {
      "type": "CASH",
      "amount": 240
    }
  ]
}'
Beispielantwort
{
  "orderId": "SHOP-2026-000123",
  "fic": "52ca073b-536e-48e9-8678-cc0bf2202046",
  "iic": "D21EBF3F7B7C502D6AAF2321A7CE2CE8",
  "invoiceNumber": "12/2026/xx123xx123",
  "invoiceType": "CASH",
  "totalPrice": 240
}
POST/invoice/cancelRechnung stornieren · Korrekturstorno für eine vorhandene iic erstellen.
Rechnungen#cancel-invoice
Erforderlich
new docId · correctiveInvoice.iicRef
Regeln
no articles · no payment

Request-Felder

FeldTyp
docIdstring
operatorCodestring?
correctiveInvoiceCorrectiveInvoiceRef
invoiceNotesstring?
isEinvoiceboolean?
selectedProcessP1–P11?
selectedInvoiceTypeUNTDID code?
payDeadlinestring(date)?
prepaidAmountnumber?

Response-Felder

FeldTyp
orderIdstring
ficstring?
eicstring?
iicstring?
linkstring(uri)?
errorFiscalError?
invoiceNumberstring?
invoiceOrderNumberinteger?
invoiceTypeCASH | NONCASH?
totalPricenumber?
totalPriceWithoutVatnumber?
totalVatAmountnumber?
taxFreeAmountnumber?
goodsExportnumber?
markUpAmountnumber?
operatorCodestring?
businessUnitCodestring?
tcrCodestring?
sellerNamestring?
sellerNuisstring?
sellerAddressstring?
Request-Body
curl --request POST \
  --url 'https://api.dev.easypos.al/fiscalisation-service/v1/invoice/cancel' \
  --header 'Authorization: Bearer {{accessToken}}' \
  --header 'Content-Type: application/json' \
  --header 'integration-app: your-client-name' \
  --data '{
  "docId": "SHOP-2026-000123-CANCEL",
  "correctiveInvoice": {
    "iicRef": "D21EBF3F7B7C502D6AAF2321A7CE2CE8"
  },
  "invoiceNotes": "Customer cancellation"
}'
Beispielantwort
{
  "orderId": "SHOP-2026-000123-CANCEL",
  "fic": "52ca073b-536e-48e9-8678-cc0bf2202046",
  "iic": "D21EBF3F7B7C502D6AAF2321A7CE2CE8",
  "invoiceNumber": "13/2026/xx123xx123",
  "invoiceType": "CASH",
  "totalPrice": -240
}
POST/invoice/statusRechnungsstatus · Status per docId lesen und unvollständigen Vorgang fortsetzen.
Rechnungen#invoice-status
Erforderlich
docId
Regeln
same docId · may continue processing

Request-Felder

FeldTyp
docIdstring

Response-Felder

FeldTyp
orderIdstring
ficstring?
eicstring?
iicstring?
linkstring(uri)?
errorFiscalError?
invoiceNumberstring?
invoiceOrderNumberinteger?
invoiceTypeCASH | NONCASH?
totalPricenumber?
totalPriceWithoutVatnumber?
totalVatAmountnumber?
taxFreeAmountnumber?
goodsExportnumber?
markUpAmountnumber?
operatorCodestring?
businessUnitCodestring?
tcrCodestring?
sellerNamestring?
sellerNuisstring?
sellerAddressstring?
Request-Body
curl --request POST \
  --url 'https://api.dev.easypos.al/fiscalisation-service/v1/invoice/status' \
  --header 'Authorization: Bearer {{accessToken}}' \
  --header 'Content-Type: application/json' \
  --header 'integration-app: your-client-name' \
  --data '{
  "docId": "SHOP-2026-000123"
}'
Beispielantwort
{
  "orderId": "SHOP-2026-000123",
  "fic": "52ca073b-536e-48e9-8678-cc0bf2202046",
  "iic": "D21EBF3F7B7C502D6AAF2321A7CE2CE8",
  "invoiceNumber": "12/2026/xx123xx123",
  "invoiceType": "CASH",
  "totalPrice": 240
}
POST/invoice/pdfRechnungs-PDF · A4-PDF, Beleg-PNG oder E-Rechnungs-PDF als base64.
Rechnungen#invoice-pdf
Erforderlich
iic
Regeln
A4 | receipt | eInvoice

Request-Felder

FeldTyp
iicstring
pdfType'A4' | 'receipt' | 'eInvoice'
paperWidth58 | 80 | 110?
lang'sq' | 'en'?

Response-Felder

FeldTyp
base64string
langstring?
eicstring?
Request-Body
curl --request POST \
  --url 'https://api.dev.easypos.al/fiscalisation-service/v1/invoice/pdf' \
  --header 'Authorization: Bearer {{accessToken}}' \
  --header 'Content-Type: application/json' \
  --header 'integration-app: your-client-name' \
  --data '{
  "iic": "D21EBF3F7B7C502D6AAF2321A7CE2CE8",
  "pdfType": "A4",
  "lang": "sq"
}'
Beispielantwort
{
  "base64": "JVBERi0xLjQKJcfsj6IK...",
  "lang": "sq"
}
POST/balance/initiateKasse initialisieren · Anfangsbestand in ALL melden.
Kassenbestand#initiate-balance
Erforderlich
docId · amount
Regeln
once per business day and fiscal device · before the first cash invoice · amount in ALL

Request-Felder

FeldTyp
docIdstring
amountnumber
notesstring?
operatorCodestring?

Response-Felder

FeldTyp
orderIdstring
fcdcstring?
errorFiscalError?
Request-Body
curl --request POST \
  --url 'https://api.dev.easypos.al/fiscalisation-service/v1/balance/initiate' \
  --header 'Authorization: Bearer {{accessToken}}' \
  --header 'Content-Type: application/json' \
  --header 'integration-app: your-client-name' \
  --data '{
  "docId": "SHIFT-2026-08-28-OPEN",
  "amount": 10000
}'
Beispielantwort
{
  "orderId": "SHIFT-2026-08-28-OPEN",
  "fcdc": "b5c3e1a2-9f44-4c3a-9c1e-2f0d7a5b8e10"
}
POST/balance/depositBargeld einzahlen · Kassenzugang in ALL melden.
Kassenbestand#deposit-balance
Erforderlich
docId · amount
Regeln
amount in ALL

Request-Felder

FeldTyp
docIdstring
amountnumber
notesstring?
operatorCodestring?

Response-Felder

FeldTyp
orderIdstring
fcdcstring?
errorFiscalError?
Request-Body
curl --request POST \
  --url 'https://api.dev.easypos.al/fiscalisation-service/v1/balance/deposit' \
  --header 'Authorization: Bearer {{accessToken}}' \
  --header 'Content-Type: application/json' \
  --header 'integration-app: your-client-name' \
  --data '{
  "docId": "SHIFT-2026-08-28-IN-1",
  "amount": 5000,
  "notes": "Cash added to till"
}'
Beispielantwort
{
  "orderId": "SHIFT-2026-08-28-IN-1",
  "fcdc": "d6a4e2b3-8e55-4d2b-8b2f-3a1e6b4c9f21"
}
POST/balance/withdrawBargeld entnehmen · Kassenentnahme in ALL melden.
Kassenbestand#withdraw-balance
Erforderlich
docId · amount
Regeln
amount in ALL

Request-Felder

FeldTyp
docIdstring
amountnumber
notesstring?
operatorCodestring?

Response-Felder

FeldTyp
orderIdstring
fcdcstring?
errorFiscalError?
Request-Body
curl --request POST \
  --url 'https://api.dev.easypos.al/fiscalisation-service/v1/balance/withdraw' \
  --header 'Authorization: Bearer {{accessToken}}' \
  --header 'Content-Type: application/json' \
  --header 'integration-app: your-client-name' \
  --data '{
  "docId": "SHIFT-2026-08-28-OUT-1",
  "amount": 2500,
  "notes": "Bank deposit"
}'
Beispielantwort
{
  "orderId": "SHIFT-2026-08-28-OUT-1",
  "fcdc": "e7b5f3c4-7d66-5e3c-9a3e-4b2f7c5d0a32"
}
POST/utilities/get-taxpayersSteuerzahler suchen · Nach NIPT oder Firmenname suchen.
Hilfsfunktionen#get-taxpayers
Erforderlich
searchTerm (3–200)
Regeln
NIPT or business name · searchTerm minimum 3 characters · no activity-status field

Request-Felder

FeldTyp
searchTermstring (3–200)

Response-Felder

FeldTyp
[]Taxpayer[]
[].Tinstring
[].Namestring
[].Addressstring
[].Townstring
[].Countrystring (ISO 3166-1 alpha-3)
Request-Body
curl --request POST \
  --url 'https://api.dev.easypos.al/fiscalisation-service/v1/utilities/get-taxpayers' \
  --header 'Authorization: Bearer {{accessToken}}' \
  --header 'Content-Type: application/json' \
  --header 'integration-app: your-client-name' \
  --data '{
  "searchTerm": "Vodafone"
}'
Beispielantwort
[
  {
    "Address": "Rruga Pavaresia, kodi postal 1050, Kashar 61",
    "Country": "ALB",
    "Name": "FONDACIONI VODAFONE ALBANIA",
    "Tin": "K72118452F",
    "Town": "Tirane"
  },
  {
    "Address": "Autostrada Tirane-Durres, Rruga Pavaresia, Nr.61, Kashar",
    "Country": "ALB",
    "Name": "VODAFONE ALBANIA",
    "Tin": "K11715005L",
    "Town": "Kashar"
  }
]
POST/utilities/get-operatorsOperatoren auflisten · Verfügbare Operatoren zurückgeben.
Hilfsfunktionen#get-operators
Erforderlich
none
Regeln
authenticated business + device

Request-Felder

FeldTyp
body{}

Response-Felder

FeldTyp
[]Operator[]
[].namestring
[].opCodestring
Request-Body
curl --request POST \
  --url 'https://api.dev.easypos.al/fiscalisation-service/v1/utilities/get-operators' \
  --header 'Authorization: Bearer {{accessToken}}' \
  --header 'Content-Type: application/json' \
  --header 'integration-app: your-client-name' \
  --data '{}'
Beispielantwort
[
  {
    "name": "test3",
    "opCode": "gh537ez280"
  },
  {
    "name": "User A",
    "opCode": "aa111aa222"
  }
]

06 · Feldreferenz

API-Schemakatalog

Schema öffnen, um jedes Feld, den exakten Datentyp, die Anforderung und Validierungsregel zu sehen.

RegisterInvoiceRequest22
FeldTypAnforderungRegeln
docIdstringErforderlich5–200 chars · unique per business document
operatorCodestringOptional^[a-z]{2}\d{3}[a-z]{2}\d{3}$
currencyCurrencyOptionaldefault: ALL / 1
articlesArticle[]Bedingtrequired except SUMMARY · minItems: 1
paymentPayment[]Bedingtrequired except ORDER · minItems: 1
invoiceRebateRebateOptionalpercentage or value, never both
buyerBuyerBedingtrequired for eInvoice and EXPORT
correctiveInvoiceCorrectiveInvoiceRefBedingtrequired for P9 / P10
invoiceNotesstringOptionalmaxLength: 500
documentTypeenumOptionalNORMAL | ORDER | SUMMARY | SELFISSUE | EXPORT
selfIssueTypeenumBedingtAGREEMENT | DOMESTIC | ABROAD | SELF | OTHER
reverseChargebooleanOptionaltrue only for SELFISSUE
summaryInvoicesstring[]BedingtSUMMARY only · minItems: 1 · each iic is 32 hex chars
totalnumberBedingtSUMMARY only · exact referenced ORDER total
supplyPeriodobjectOptionalstart/end in one calendar month
supplyPeriod.startstring(date)BedingtYYYY-MM-DD
supplyPeriod.endstring(date)BedingtYYYY-MM-DD
isEinvoicebooleanOptionaldefault: false
selectedProcessenumOptionalP1–P11 · default: P1
selectedInvoiceTypestring(enum)Optional82 | 84 | 325 | 326 | 380 | 383 | 386 | 393 | 394 | 395 | 575 | 623 | 780
payDeadlinestring(date)OptionalYYYY-MM-DD · current year · not in the past
prepaidAmountnumberBedingtrequired for P4 · >= 0 · max 2 decimals
Article8
FeldTypAnforderungRegeln
articleIdstringErforderlichmaxLength: 100
namestringErforderlichmaxLength: 100
vatCodestring(enum)ErforderlichA | B | C | D | E | F | G | H | I | J | K | L · must match the business fiscal configuration
pricenumberErforderlichunit price including VAT
unitsnumberErforderlichquantity
soldInstringErforderlichUN/CEFACT unit code, e.g. XPP | KGM | LTR | HUR
totalPricenumberOptionaldefault: price × units
rebateRebateOptionalline-level discount
Rebate2
FeldTypAnforderungRegeln
inPercentagenumberBedingtmutually exclusive with inValue
inValuenumberBedingtmutually exclusive with inPercentage
Payment3
FeldTypAnforderungRegeln
typestring(enum)ErforderlichCASH | BANKNOTE | CARD | CHECK | SVOUCHER | COMPANY | ORDER | ACCOUNT | FACTORING | COMPENSATION | TRANSFER | WAIVER | KIND | OTHER
amountnumberErforderlichpayment sum must equal calculated invoice total
detailsPaymentDetail[]Bedingtrequired and non-empty for ACCOUNT
PaymentDetail7
FeldTypAnforderungRegeln
idNumberstringErforderlichIBAN or account number
namestringErforderlichaccount holder
bankNamestringErforderlichbank name
swift_codestringErforderlichSWIFT / BIC
countrystringErforderlichcountry name
countryCodestringErforderlichISO 3166-1 alpha-2 · exactly 2 chars
currencystringErforderlichISO 4217 · exactly 3 chars
Buyer7
FeldTypAnforderungRegeln
buyerIDTypestring(enum)ErforderlichNUIS | ID | PASS | VAT | TAX | SOC | POINTS
buyerIDNumstringErforderlichwhen buyerIDType=NUIS: ^[A-Za-z][0-9]{8}[A-Za-z]$ · normalize to uppercase
buyerNamestringErforderlichbuyer legal/display name
buyerAddressstringErforderlichbuyer address
buyerTownstringErforderlichbuyer town
buyerCountrystringErforderlichISO 3166-1 alpha-3, e.g. ALB
buyerCountryCodestringOptionalISO 3166-1 alpha-2 · default: AL
Currency2
FeldTypAnforderungRegeln
codestringOptionalISO 4217 · default: ALL
exRatenumberBedingtrequired when code != ALL · rate against ALL
CorrectiveInvoiceRef2
FeldTypAnforderungRegeln
iicRefstringErforderlichexisting invoice iic · 32 hex chars
issueDateTimestring(date)Optionaldefaults to original invoice date
CancelInvoiceRequest9
FeldTypAnforderungRegeln
docIdstringErforderlichnew cancellation id · 5–200 chars
operatorCodestringOptional^[a-z]{2}\d{3}[a-z]{2}\d{3}$
correctiveInvoiceCorrectiveInvoiceRefErforderlichiicRef points to original invoice
invoiceNotesstringOptionalmaxLength: 500
isEinvoicebooleanOptionalinherits from original when omitted
selectedProcessenumOptionalP1–P11 · electronic default: P10
selectedInvoiceTypestring(enum)Optionalsame values as RegisterInvoiceRequest
payDeadlinestring(date)OptionalYYYY-MM-DD
prepaidAmountnumberOptional>= 0 · max 2 decimals
StatusInvoiceRequest1
FeldTypAnforderungRegeln
docIdstringErforderlichsame invoice docId · 5–200 chars
InvoicePdfRequest4
FeldTypAnforderungRegeln
iicstringErforderlichexactly 32 hexadecimal chars
pdfTypestring(enum)OptionalA4 | receipt | eInvoice · default: A4
paperWidthinteger(enum)Optional58 | 80 | 110 · receipt only · default: 80
langstring(enum)Optionalsq | en
BalanceRequest4
FeldTypAnforderungRegeln
docIdstringErforderlich5–200 chars · unique per balance operation · no prescribed naming convention
amountnumberErforderlichamount in ALL
notesstringOptionaloperation note
operatorCodestringOptional^[a-z]{2}\d{3}[a-z]{2}\d{3}$
GetTaxpayersRequest1
FeldTypAnforderungRegeln
searchTermstringErforderlichNIPT or business name · 3–200 chars
InvoiceResponse21
FeldTypAnforderungRegeln
orderIdstringErforderlichechoes request docId
ficstringBedingtnormal completion identifier
eicstringBedingtrequired with fic for electronic completion
iicstringBedingtinvoice identifier · 32 hex chars
linkstring(uri)Optionalpublic verification URL
errorFiscalErrorOptionalpresent when incomplete or failed
invoiceNumberstringOptionalfiscal invoice number
invoiceOrderNumberintegerOptionalfiscal sequence number
invoiceTypestring(enum)OptionalCASH | NONCASH
totalPricenumberOptionalgross total
totalPriceWithoutVatnumberOptionalnet total
totalVatAmountnumberOptionalVAT total
taxFreeAmountnumberOptionaltax-free total
goodsExportnumberOptionalexport amount
markUpAmountnumberOptionalmarkup amount
operatorCodestringOptionalfiscal operator code
businessUnitCodestringOptionalfiscal business-unit code
tcrCodestringOptionalempty for electronic invoices
sellerNamestringOptionalseller name
sellerNuisstringOptionalseller NIPT
sellerAddressstringOptionalseller address
InvoiceIncompleteResponse2
FeldTypAnforderungRegeln
orderIdstringErforderlichechoes request docId
errorFiscalErrorErforderlichfiscalization or eInvoice delivery has not completed
Error2
FeldTypAnforderungRegeln
messagestringErforderlichvalidation, authorization or domain error message
fieldstringOptionalfield that failed validation
CisError3
FeldTypAnforderungRegeln
faultEnvstring(enum)Optionalenv:CLIENT | env:SERVER
faultStringstringOptionalmessage returned by the tax platform
faultCodestringOptionaltax-platform error code
FiscalError2
FeldTypAnforderungRegeln
cisErrorCisErrorOptionaltax platform error
otherErrorstringOptionaltemporary processing error
PdfResponse2
FeldTypAnforderungRegeln
base64stringErforderlichbase64 PDF or PNG
langstringOptionaldocument language
EinvoicePdfResponse2
FeldTypAnforderungRegeln
base64stringErforderlichofficial eInvoice PDF encoded as base64
eicstringErforderlichelectronic invoice identifier
BalanceResponse3
FeldTypAnforderungRegeln
orderIdstringErforderlichechoes request docId
fcdcstringBedingtbalance-operation completion identifier
errorFiscalErrorOptionalprocessing error
Taxpayer5
FeldTypAnforderungRegeln
TinstringErforderlichtaxpayer NIPT
NamestringErforderlichregistered name
AddressstringErforderlichregistered address
TownstringErforderlichregistered town
CountrystringErforderlichISO 3166-1 alpha-3
Operator2
FeldTypAnforderungRegeln
namestringErforderlichoperator display name
opCodestringErforderlichuse as operatorCode in fiscal requests

Übersicht der USt.-Codes

vatCode hängt vom USt.-Status und der fiskalischen Konfiguration des Unternehmens ab, nicht nur vom Artikel. Für ein USt.-pflichtiges Unternehmen ist B die Standardkategorie mit 20%; A ist die 0%-Kategorie für ein nicht USt.-pflichtiges Unternehmen.

CodeSatzSteuerliche Behandlung
A0%Nicht USt.-pflichtiges Unternehmen
B20%Regelsteuersatz
C0%Steuerbefreite Lieferung
D10%Ermäßigter Satz
E6%Ermäßigter Satz
J0%Warenausfuhr

Die API liefert diese Zuordnung derzeit nicht zurück. Speichern Sie sie in Ihrer Integrationskonfiguration. Verwenden Sie andere A–L-Codes nicht ohne bestätigte fiskalische Konfiguration.

Vollständige ACCOUNT-Zahlung

details muss ein nicht leeres Array sein. Jeder Eintrag beschreibt ein Verkäuferbankkonto und benötigt alle sieben hier gezeigten Felder.

Zahlungsfragment
{
  "payment": [
    {
      "type": "ACCOUNT",
      "amount": 10000,
      "details": [
        {
          "idNumber": "AL47212110090000000235698741",
          "name": "Shitësi SHPK",
          "bankName": "Banka XYZ",
          "swift_code": "ABCDEFGH",
          "country": "Shqipëri",
          "countryCode": "AL",
          "currency": "ALL"
        }
      ]
    }
  ]
}

Betriebliche Klarstellungen

FeldRegeln
buyerIDNum · NUISAkzeptiertes Format: ein Buchstabe, acht Ziffern, ein Buchstabe (^[A-Za-z][0-9]{8}[A-Za-z]$). In Großbuchstaben normalisieren. Ein alternatives älteres NIPT-Format ist nicht Teil dieses Vertrags.
get-taxpayersCountry verwendet ISO 3166-1 Alpha-3 (ALB für Albanien). Die Antwort enthält keinen Aktiv-, Passiv- oder Abmeldestatus; verwenden Sie den Endpoint zur Suche und zum Ausfüllen der Käuferdaten, nicht zur abschließenden Prüfung des Steuerstatus.
RatenbegrenzungDerzeit ist kein numerisches Limit veröffentlicht. Suchanfragen entprellen und nicht bei jedem Tastendruck einen Request senden.
balance/initiateSenden Sie pro Geschäftstag und authentifiziertem Fiskalgerät/TCR genau einen erfolgreichen Anfangsbestand, vor dessen erster Bar-Rechnung. Eine Anwendungsschicht ist keine Fiskalgrenze; einen Endpoint zum Schließen des Bestands gibt es nicht.
Bestands-docIdSHIFT-…-Werte sind nur Beispiele. Verwenden Sie eine stabile eindeutige Kennung mit 5–200 Zeichen und nutzen Sie sie nur zur Wiederherstellung desselben Bestandsvorgangs erneut.
MaßeinheitencodesLaden Sie die Liste der unterstützten Maßeinheiten herunter und verwenden Sie den Codewert als soldIn, zum Beispiel XPP, KGM, LTR oder HUR.Liste der Maßeinheiten herunterladen (.xlsx)
Kanonische Enums
soldIn
XPP · KGM · LTR · HUR · other UN/CEFACT unit codes
vatCode
A · B · C · D · E · F · G · H · I · J · K · L
payment.type
CASH · BANKNOTE · CARD · CHECK · SVOUCHER · COMPANY · ORDER · ACCOUNT · FACTORING · COMPENSATION · TRANSFER · WAIVER · KIND · OTHER
buyerIDType
NUIS · ID · PASS · VAT · TAX · SOC · POINTS
selectedProcess
P1 · P2 · P3 · P4 · P5 · P6 · P7 · P8 · P9 · P10 · P11
selectedInvoiceType
82 · 84 · 325 · 326 · 380 · 383 · 386 · 393 · 394 · 395 · 575 · 623 · 780
selfIssueType
AGREEMENT · DOMESTIC · ABROAD · SELF · OTHER
pdfType
A4 · receipt · eInvoice

07 · Abschlussvertrag

Kennungen prüfen, bevor Erfolg gemeldet wird

Eine erfolgreiche HTTP-Antwort kann einen noch unvollständigen externen Vorgang beschreiben. Entscheiden Sie anhand der Kennungen.

VorgangVollständig wennWenn unvollständig
Normale Rechnung / Stornofic vorhandenMit gleicher docId wiederherstellen.
E-Rechnung / Stornofic und eic vorhandenStatus mit gleicher docId abfragen.
Kassenvorgangfcdc vorhandenVorgang mit gleicher docId wiederholen.
PDFbase64 vorhandenNach Abschluss der Rechnung wiederholen.

Fehlerentscheidung

ErrorWiederholbarAktion
400 Validierung / FeldNeinAnfrage korrigieren.
401 UnauthorizedNach ZugangsdatenRichtiges Token erneuern und docId behalten.
cisError env:CLIENTNeinFiskal- oder Requestdaten korrigieren.
cisError env:SERVER / otherErrorJaBackoff und gleiche docId.
Timeout / Netzwerk / 502 / 503JaZuerst status; nur bei nicht gefunden erneut senden.
Andere Anfrage läuftJa, späterParallelität stoppen, warten, status abfragen.

08 · Quelldateien

Derselbe Vertrag in Ihren Werkzeugen

Die Seite ist die lesbare Referenz; diese Dateien sind direkte Downloads für Generatoren, API-Clients und Agenten.

Benötigen Sie Zugangsdaten oder Vertragsklärung?

easyPos Cloud API