---
title: "Zbritjet ne fature"
page_id: "discounts"
section: "Shembuj"
canonical: "https://fature.al/api-reference/pages/discounts.html"
---

# Zbritjet ne fature

Part of the [fature.al API](/api-reference/index.html) documentation.

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:

```bash
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:

```bash
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.

```bash
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](/api-reference/pages/e-invoice.html), 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`:

```json
{
  "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`.
