fature.al eshte platforma e faturimit dhe fiskalizimit per bizneset ne Shqiperi. Hap nje llogari
Skip to content
fature.al API Menu

Zbritjet ne fature

Nje fature e leshuar nga API-ja zbritet ne dy menyra, dhe te dyja mund te zbatohen mbi te njejtin dokument:

Zbritja Fushat Si lexohet vlera Ku zbatohet
mbi te gjithe faturen invoice_discount_type me invoice_discount_value perqindje ose vlere fikse me TVSH, sipas tipit mbi shumen e rreshtave, e shperndare mbi normat e TVSH-se
mbi nje rresht lines[].discount gjithmone perqindje, nga 0 ne 100 mbi cmimin e njesise se atij rreshti

Kur te dyja dergohen bashke, se pari zbritet rreshti dhe pastaj zbritja e fatures zbatohet mbi totalin qe del.

Zbritja mbi te gjithe faturen#

Fusha Vlerat Kuptimi
invoice_discount_type percent ose amount si lexohet vlera
invoice_discount_value numer jo negativ sa zbritet

Punojne vetem ne cift. Njera pa tjetren, ose nje vlere 0, e le faturen pa zbritje dhe nuk kthen gabim, prandaj mos prisni nje 422 per te kuptuar se zbritja nuk u zbatua: lexoni amount.discount ne pergjigje.

Tipi Si lexohet vlera Kufiri
percent perqindje mbi totalin me TVSH mbi 100 lexohet si 100
amount vlere me TVSH, ne monedhen e fatures mbi totalin lexohet si totali

amount eshte gjithmone ne monedhen e fatures, jo ne leke. Nje fature ne euro me invoice_discount_value: 50 zbritet 50 euro.

Shembull me perqindje#

Nje fature prej 300 leke me TVSH 20 dhe nje zbritje prej 10 per qind:

curl -X POST 'https://fature.al/api/v1/invoice/cash' \
  -H 'Authorization: Bearer TOKEN_I_JUAJ' \
  -H 'Content-Type: application/json' \
  -d '{
    "internalId": "ARK-2026-0101",
    "payment_method": "BANKNOTE",
    "invoice_discount_type": "percent",
    "invoice_discount_value": 10,
    "lines": [
      { "product_name": "Kafe", "product_code": "KAF-001", "unit": "cope",
        "quantity": 2, "price": 150, "total": 300, "vat": 20 }
    ]
  }'
Vlera Para zbritjes Pas zbritjes
Totali me TVSH 300.00 270.00
Baza pa TVSH 250.00 225.00
TVSH 50.00 45.00

Klienti paguan 30 leke me pak, ndersa amount.discount ne pergjigje eshte 25.00. Kjo nuk eshte mosperputhje: discount mban pjesen pa TVSH te zbritjes, sepse ashtu shkon zbritja ne dokumentin fiskal dhe ne UBL. Zbritja qe ndjen klienti eshte diferenca ne amount.gross.

Fatura me disa norma TVSH-je#

Zbritja shperndahet mbi grupet e TVSH-se sipas peshes se secilit ne total, dhe TVSH-ja rillogaritet mbi vleren e ulur te secilit grup. Nje fature me nje rresht 1,000 me TVSH 20 dhe nje rresht 500 me TVSH 6, e zbritur me amount: 300:

Norma Totali para Pjesa e zbritjes Baza pas TVSH pas
20 1,000.00 200.00 666.67 133.33
6 500.00 100.00 377.36 22.64
Gjithsej 1,500.00 300.00 1,044.03 155.97

Pergjigja kthen amount.gross 1,200.00 dhe amount.discount 261.00, qe eshte pjesa pa TVSH e atyre 300 lekeve.

Tarifa mbetet jashte zbritjes#

Ne faturat jo-cash, fee nuk hyn ne bazen e zbritjes. Zbritet shuma e rreshtave, dhe tarifa i shtohet totalit te ulur. Nje fature me rreshta 1,000, tarife 50 dhe zbritje 10 per qind zbret 100 leke, jo 105, dhe totali del 950.

Zbritja mbi nje rresht#

lines[].discount eshte perqindja e zbritjes se atij rreshti, nga 0 ne 100. Fusha eshte opsionale: nje trup qe nuk e permend fare, ose e dergon bosh, kalon pikerisht si me pare dhe nuk kthen kurre gabim per shkak te saj. Kontrolli me poshte prek vetem rreshtat qe dergojne nje zbritje.

price mbetet cmimi i plote i njesise dhe total vjen tashme i ulur, sepse ashtu e mban zbritjen dokumenti fiskal: perqindje mbi cmimin, bashke me nje total tashme te zbritur. Rregulli i vetem qe duhet mbajtur eshte ky:

total = price * quantity * (100 - discount) / 100

Nje total qe nuk perputhet me ate shifer e refuzon kerkesen me 400, dhe errors tregon cili eshte rreshti dhe cila vlere pritej. Nuk e llogarisim ne vend tuaj me qellim: nje total i barabarte me price * quantity do te dukej njelloj si nje rresht qe e ka zbritjen tashme brenda cmimit, dhe zbatimi i saj perseri do ta zbriste dy here nje fature qe pastaj fiskalizohet.

Nje kafe 150 leke me TVSH 20, dy cope, e zbritur 10 per qind:

curl -X POST 'https://fature.al/api/v1/invoice/cash' \
  -H 'Authorization: Bearer TOKEN_I_JUAJ' \
  -H 'Content-Type: application/json' \
  -d '{
    "internalId": "ARK-2026-0102",
    "payment_method": "BANKNOTE",
    "lines": [
      { "product_name": "Kafe", "product_code": "KAF-001", "unit": "cope",
        "quantity": 2, "price": 150, "discount": 10, "total": 270, "vat": 20 },
      { "product_name": "Uje", "product_code": "UJE-01", "unit": "cope",
        "quantity": 1, "price": 100, "total": 100, "vat": 20 }
    ]
  }'
Vlera e rreshtit Pa zbritje Me 10 per qind
Totali me TVSH 300.00 270.00
Baza pa TVSH 250.00 225.00
TVSH 50.00 45.00

Ne pergjigje, ai rresht kthen discount_rate 10, unitPrice 135 dhe total 270. discount kthen 25.00, sepse si tek zbritja e fatures mban pjesen pa TVSH.

Nje perqindje jashte intervalit 0 deri 100 refuzohet me 422.

Te dyja mbi te njejten fature#

Kur nje fature mban zbritje rreshti dhe zbritje mbi te gjithe faturen, radha eshte e fiksuar: se pari zbriten rreshtat, pastaj zbritja e fatures zbatohet mbi totalin qe del prej tyre. Kafeja e mesiperme, e zbritur edhe 10 per qind mbi faturen, jep 270 dhe pastaj 243.

Ku pranohet#

Endpoint Mbi faturen Mbi rreshtin
POST /invoice/cash po po
POST /invoice/noncash po po
POST /invoice/e-invoice po po
POST /invoice/order jo, shihni me poshte po
POST /invoice/summary po vjen nga porosite
POST /invoice/bulk-noncash po, brenda cdo fature te bllokut po

Porosia nuk zbritet e gjitha. Permbledhesja i kopjon rreshtat nga porosite, keshtu qe nje zbritje mbi te gjithe porosine nuk kalon dot tek ajo dhe tavolina do te paguante me shume se sa tregoi porosia. Ajo vendoset mbi permbledhesen. Zbritja per rresht kalon: ruhet mbi rreshtin e porosise dhe permbledhesja e merr bashke me te, prandaj nuk dergohet perseri mbi permbledhesen.

Zbritja nuk varet nga konfigurimet e kompanise ne fature.al: cilesimet e ekranit te fatures ndikojne vetem tek forma qe plotesohet me dore, ndersa API-ja e zbaton zbritjen sa here qe e dergoni.

Anulimi i nje fature me zbritje#

Nje fature me zbritje mbi te gjithe faturen anulohet vetem e plote. Zbritja eshte shperndare mbi te gjitha normat e TVSH-se se dokumentit, keshtu qe anulimi i vetem disa rreshtave do ta prishte TVSH-ne.

curl -X POST 'https://fature.al/api/v1/invoice/cancel/40312' \
  -H 'Authorization: Bearer TOKEN_I_JUAJ'

Nje kerkese me lines mbi nje fature te tille refuzohet me 422 dhe me shpjegimin perkates ne errors.

Zbritje pas faturimit#

Kur fatura ka dale dhe zbritja bihet dakord me pas, ajo nuk vendoset mbi faturen: leshohet nje note krediti per diferencen, qe eshte dokument me vete dhe i lidhur me origjinalin. Rruga e plote eshte tek Fatura elektronike, dhe per faturat jo-cash e njejta gje behet me doc_type: "381" bashke me original_invoice_iic.

Cfare kthehet ne pergjigje#

Zbritja nuk kthehet nga endpoint-i i leshimit, i cili kthen faturen fiskale (id, number, iic, fic). Shihet tek GET /invoice/{id}/details:

{
  "amount": {
    "currency": "ALL",
    "gross": 270.00,
    "net": 225.00,
    "vat": 45.00,
    "discount": 25.00,
    "discount_all": 25.00
  }
}

discount eshte zbritja mbi te gjithe faturen, pa TVSH. discount_all eshte e njejta vlere e kthyer ne leke, dhe ndryshon nga discount vetem kur fatura eshte ne monedhe te huaj. Zbritjet e rreshtave nuk hyjne ketu: secila qendron mbi rreshtin e vet, tek lines[].discount_rate dhe lines[].discount.

Regjistrimi eshte falas.

Regjistrohu ne fature.al