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