fature.al është platforma e faturimit dhe fiskalizimit për bizneset në Shqipëri. Hap një llogari
Skip to content
fature.al API Menu

Zbritjet në faturë

Një faturë e lëshuar nga API-ja zbritet në dy mënyra, dhe të dyja mund të zbatohen mbi të njëjtin dokument:

Zbritja Fushat Si lexohet vlera Ku zbatohet
mbi të gjithë faturën invoice_discount_type me invoice_discount_value përqindje ose vlerë fikse me TVSH, sipas tipit mbi shumën e rreshtave, e shpërndarë mbi normat e TVSH-së
mbi një rresht lines[].discount gjithmonë përqindje, nga 0 në 100 mbi çmimin e njësisë së atij rreshti

Kur të dyja dërgohen bashkë, së pari zbritet rreshti dhe pastaj zbritja e faturës zbatohet mbi totalin që del.

Zbritja mbi të gjithë faturën#

Fusha Vlerat Kuptimi
invoice_discount_type percent ose amount si lexohet vlera
invoice_discount_value numër jo negativ sa zbritet

Punojnë vetëm në çift. Njëra pa tjetrën, ose një vlerë 0, e lë faturën pa zbritje dhe nuk kthen gabim, prandaj mos prisni një 422 për të kuptuar se zbritja nuk u zbatua: lexoni amount.discount në përgjigje.

Tipi Si lexohet vlera Kufiri
percent përqindje mbi totalin me TVSH mbi 100 lexohet si 100
amount vlerë me TVSH, në monedhën e faturës mbi totalin lexohet si totali

amount është gjithmonë në monedhën e faturës, jo në lekë. Një faturë në euro me invoice_discount_value: 50 zbritet 50 euro.

Shembull me përqindje#

Një faturë prej 300 lekësh me TVSH 20 dhe një zbritje prej 10 për 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": "copë",
        "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 lekë më pak, ndërsa amount.discount në përgjigje është 25.00. Kjo nuk është mospërputhje: discount mban pjesën pa TVSH të zbritjes, sepse ashtu shkon zbritja në dokumentin fiskal dhe në UBL. Zbritja që sheh klienti është diferenca në amount.gross.

Fatura me disa norma TVSH-je#

Zbritja shpërndahet mbi grupet e TVSH-së sipas peshës së secilit në total, dhe TVSH-ja rillogaritet mbi vlerën e ulur të secilit grup. Një faturë me një rresht 1,000 me TVSH 20 dhe një 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

Përgjigja kthen amount.gross 1,200.00 dhe amount.discount 261.00, që është pjesa pa TVSH e atyre 300 lekëve.

Tarifa mbetet jashtë zbritjes#

Në faturat jo-cash, fee nuk hyn në bazën e zbritjes. Zbritet shuma e rreshtave, dhe tarifa i shtohet totalit të ulur. Një faturë me rreshta 1,000, tarifë 50 dhe zbritje 10 për qind zbret 100 lekë, jo 105, dhe totali del 950.

Zbritja mbi një rresht#

lines[].discount është përqindja e zbritjes së atij rreshti, nga 0 në 100. Fusha është opsionale: një body që nuk e përmend fare, ose e dërgon bosh, kalon si më parë dhe nuk kthen kurrë gabim për shkak të saj. Kontrolli më poshtë prek vetëm rreshtat që dërgojnë një zbritje.

price mbetet çmimi i plotë i njësisë dhe total vjen tashmë i ulur, sepse ashtu e mban zbritjen dokumenti fiskal: përqindje mbi çmimin, bashkë me një total tashmë të zbritur. Rregulli i vetëm që duhet mbajtur është ky:

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

Një total që nuk përputhet me atë shifër e refuzon kërkesën me 400, dhe errors tregon cili është rreshti dhe cila vlerë pritej. total nuk llogaritet në vend tuaj: një total i barabartë me price * quantity nuk dallohet nga një rresht që e ka zbritjen tashmë brenda çmimit, dhe zbatimi i saj përsëri do ta zbriste dy herë një faturë që pastaj fiskalizohet.

Një kafe 150 lekë me TVSH 20, dy copë, e zbritur 10 për 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": "copë",
        "quantity": 2, "price": 150, "discount": 10, "total": 270, "vat": 20 },
      { "product_name": "Ujë", "product_code": "UJE-01", "unit": "copë",
        "quantity": 1, "price": 100, "total": 100, "vat": 20 }
    ]
  }'
Vlera e rreshtit Pa zbritje Me 10 për qind
Totali me TVSH 300.00 270.00
Baza pa TVSH 250.00 225.00
TVSH 50.00 45.00

Në përgjigje, ai rresht kthen discount_rate 10, unitPrice 135 dhe total 270. discount kthen 25.00, sepse si te zbritja e faturës mban pjesën pa TVSH.

Një përqindje jashtë intervalit 0 deri 100 refuzohet me 422.

Të dyja mbi të njëjtën faturë#

Kur një faturë mban zbritje rreshti dhe zbritje mbi të gjithë faturën, radha është e fiksuar: së pari zbriten rreshtat, pastaj zbritja e faturës zbatohet mbi totalin që del prej tyre. Kafeja e mësipërme, e zbritur edhe 10 për qind mbi faturën, jep 270 dhe pastaj 243.

Ku pranohet#

Endpoint-i Mbi faturën Mbi rreshtin
POST /invoice/cash po po
POST /invoice/noncash po po
POST /invoice/e-invoice po po
POST /invoice/order jo, shihni më poshtë po
POST /invoice/summary po vjen nga porositë
POST /invoice/bulk-noncash po, brenda çdo fature në invoices po

Porosia nuk zbritet e gjitha. Përmbledhësja i kopjon rreshtat nga porositë, kështu që një zbritje mbi të gjithë porosinë nuk kalon dot tek ajo dhe tavolina do të paguante më shumë se sa tregoi porosia. Ajo vendoset mbi përmbledhësen. Zbritja për rresht kalon: ruhet mbi rreshtin e porosisë dhe përmbledhësja e merr bashkë me të, prandaj nuk dërgohet përsëri mbi përmbledhësen.

Zbritja nuk varet nga konfigurimet e kompanisë në fature.al: cilësimet e ekranit të faturës ndikojnë vetëm te forma që plotësohet me dorë, ndërsa API-ja e zbaton zbritjen sa herë që e dërgoni.

Anulimi i një fature me zbritje#

Një faturë me zbritje mbi të gjithë faturën anulohet vetëm e plotë. Zbritja është shpërndarë mbi të gjitha normat e TVSH-së së dokumentit, kështu që anulimi i vetëm disa rreshtave do ta prishte TVSH-në.

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

Një kërkesë me lines mbi një faturë të tillë refuzohet me 422 dhe me shpjegimin përkatës në errors.

Zbritje pas faturimit#

Kur fatura ka dalë dhe zbritja bihet dakord më pas, ajo nuk vendoset mbi faturën: lëshohet një notë krediti për diferencën, që është dokument më vete dhe i lidhur me origjinalin. Rruga e plotë është te Fatura elektronike, dhe për faturat jo-cash e njëjta gjë bëhet me doc_type: "381" bashkë me original_invoice_iic.

Çfarë kthehet në përgjigje#

Zbritja nuk kthehet nga endpoint-i i lëshimit, i cili kthen faturën fiskale (id, number, iic, fic). Shihet te GET /invoice/{id}/details:

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

discount është zbritja mbi të gjithë faturën, pa TVSH. discount_all është e njëjta vlerë e kthyer në lekë, dhe ndryshon nga discount vetëm kur fatura është në monedhë të huaj. Zbritjet e rreshtave nuk hyjnë këtu: secila qëndron mbi rreshtin e vet, te lines[].discount_rate dhe lines[].discount.

Regjistrimi është falas.

Regjistrohu në fature.al