---
title: "Lësho faturë përmbledhëse"
operation_id: "api.v2.invoice.summary"
method: POST
path: "/api/v2/invoice/summary"
group: "Faturat"
api_version: "v2"
authenticated: true
canonical: "https://fature.al/api-reference/endpoints/api-v2-invoice-summary.html"
---

# Lësho faturë përmbledhëse

Pjesë e dokumentacionit [fature.al API](/api-reference/index.html).

## POST /api/v2/invoice/summary

Mbyll pagesën e një ose më shumë faturave porosi me një dokument të vetëm, si te `v1`, me
pagesën si listë `payment_methods`. Një tavolinë e paguar gjysmë me para në dorë dhe gjysmë me
kartë dërgon një listë me dy elemente; e paguar e gjitha me kartë, një listë me një element.
Lejohen vetëm `BANKNOTE` dhe `CARD`. Rregullat për `order_invoices` dhe zbritjen janë ato të
[`POST /api/v1/invoice/summary`](/docs/api).

Ndryshuar që nga `v1`:

| What changed | v1 | v2 |
| --- | --- | --- |
| body `payment_method` | string, one of BANKNOTE, CARD, required | — |
| body `payment_methods` | — | array, required |
| 200 `data.invoice.payment_methods` | — | array |
| 200 `data.invoice.payment_methods[].type` | — | string |
| 200 `data.invoice.payment_methods[].amount` | — | number |
| 200 `data.invoice.payment_methods[].company_card` | — | any |
| 200 `data.invoice.payment_methods[].vouchers` | — | any |

URL-ja e plotë: `https://fature.al/api/v2/invoice/summary`

Versioni i API-t: `v2`.

Identifikimi: i detyrueshëm (bearer token, plus the `X-Client-Id` and `X-Client-Secret` headers).

### Fushat e body-t

| Fusha | Tipi | E detyrueshme | Përshkrimi |
| --- | --- | --- | --- |
| `internalId` | string | po | Identifikuesi i faturës në sistemin tuaj; shërben edhe si çelës idempotence. I detyrueshëm. |
| `order_invoices` | array | po | IIC-të e faturave porosi që po mbyllen, të paktën një. Rreshtat e përmbledhëses merren nga këto porosi, prandaj nuk dërgohen në kërkesë. |
| `currency` | string, nullable | jo | Monedha e faturës, kod ISO 4217; pa të merret ALL. |
| `exchange_rate` | number, nullable | jo | Sa lekë vlen një njësi e monedhës së faturës. Pa të merret 1. |
| `supply_start_date` | string, nullable | jo | Fillimi i periudhës së furnizimit, `YYYY-MM-DD`, për fatura që mbulojnë një interval. |
| `supply_end_date` | string, nullable | jo | Fundi i periudhës së furnizimit, `YYYY-MM-DD`. |
| `invoice_discount_type` | string, one of percent, amount, nullable | jo | Si lexohet `invoice_discount_value`: `percent` si përqindje, `amount` si vlerë fikse me TVSH. Zbritja mbi të gjithë faturën vendoset te përmbledhësja, jo te porositë, të cilat nuk e pranojnë; zbritjet e rreshtave vijnë bashkë me rreshtat që kopjohen nga porositë. Punon vetëm në çift me `invoice_discount_value`. Njëra pa tjetrën injorohet në heshtje dhe fatura del pa zbritje. |
| `invoice_discount_value` | number, min 0, nullable | jo | Vlera e zbritjes, e lexuar sipas `invoice_discount_type`: përqindje deri në 100 kur tipi është `percent`; vlerë me TVSH në monedhën e faturës, deri në totalin e përmbledhëses, kur tipi është `amount`. Zeroja e lë faturën pa zbritje. |
| `payment_methods` | array | po | Listë me një element për çdo mënyrë pagese, deri në 10. Një përmbledhëse e paguar me një mënyrë të vetme dërgon një listë me një element. Shumat duhet të mbledhin saktë totalin e përmbledhëses, me zbritjen tashmë të zbatuar, dhe e njëjta mënyrë nuk përsëritet dy herë. |
| `payment_methods[].type` | string, one of BANKNOTE, CARD | po | Mënyra e pagesës e këtij elementi: `BANKNOTE` ose `CARD`. |
| `payment_methods[].amount` | number | po | Sa paguhet me këtë mënyrë, me TVSH, në monedhën e faturës. Pranon çdo vlerë që pranon CIS-i: edhe 0, për një përmbledhëse me vlerë 0, dhe negative. |

### Shembull kërkese

```bash
curl -X POST 'https://fature.al/api/v2/invoice/summary' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'X-Client-Id: YOUR_CLIENT_ID' \
  -H 'X-Client-Secret: YOUR_CLIENT_SECRET' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "internalId": "SUMMARY-2026-000021",
    "order_invoices": [
        "8FE72E2ACD1C500A83F8C89B4E2E3E1D"
    ],
    "currency": "ALL",
    "exchange_rate": 100.5,
    "supply_start_date": "2026-09-01",
    "supply_end_date": "2026-09-30",
    "invoice_discount_type": "percent",
    "invoice_discount_value": 10,
    "payment_methods": [
        {
            "type": "BANKNOTE",
            "amount": 1200
        }
    ]
}'
```

### Përgjigjet

**200**: Kur përdoruesi nuk ka pajisje fiskale, ose kur fatura refuzohet pas validimit nga CIS-i ose gjatë ruajtjes, përgjigja kthehet me HTTP 200 dhe `status: false`; arsyeja është te `message`.

| Fusha | Tipi | Përshkrimi |
| --- | --- | --- |
| `status` | boolean |  |
| `data` | object |  |
| `data.invoice` | object |  |
| `data.invoice.id` | integer | Id-ja e faturës në fature.al. Ruajeni pranë `internalId` tuaj |
| `data.invoice.number` | string, nullable | Numri i faturës, si `12/2026` |
| `data.invoice.iic` | string, nullable | Kodi identifikues i faturës, IIC (NSLF) |
| `data.invoice.fic` | string, nullable | Kodi që kthen CIS-i kur regjistron faturën, FIC (NIVF). Null sa kohë fatura pret fiskalizimin e shtyrë |
| `data.invoice.tcrCode` | string, nullable | Kodi TCR i pajisjes fiskale që e lëshoi; null te faturat që nuk lëshohen nga një TCR |
| `data.invoice.businessCode` | string, nullable | Kodi i njësisë së biznesit nën të cilën u lëshua fatura |
| `data.invoice.operatorCode` | string, nullable | Kodi i operatorit që e lëshoi faturën |
| `data.invoice.fiscalizedAt` | string | Data dhe ora e krijimit të faturës, `YYYY-MM-DD HH:MM:SS`, orë lokale |
| `data.invoice.verifyURL` | string, nullable | URL-ja e verifikimit te administrata tatimore, ajo që hap kodi QR |
| `data.invoice.pdf` | string | URL-ja për të shkarkuar dokumentin. Te një e-faturë që ka tashmë EIC, tregon PDF-në zyrtare të platformës së e-faturave në vend të asaj të fature.al |
| `data.invoice.eic` | string, nullable | Kodi i e-faturës në platformën e e-faturave, EIC. Çelësi është i pranishëm vetëm te një e-faturë që e ka tashmë; te çdo faturë tjetër mungon fare, nuk vjen null |
| `data.invoice.payment_methods` | array | Një element për çdo mënyrë pagese, me shumën që u shlye me secilën. E njëjta listë që kthen `GET /invoice/{id}/details` |
| `data.invoice.payment_methods[].type` | string | Mënyra e pagesës, p.sh. `BANKNOTE` ose `CARD` |
| `data.invoice.payment_methods[].amount` | number | Shuma e shlyer me këtë mënyrë, me TVSH, në monedhën e faturës |
| `data.invoice.payment_methods[].company_card` | any | Numri i kartës së kompanisë; i plotësuar vetëm kur `type` është `COMPANY`, përndryshe null |
| `data.invoice.payment_methods[].vouchers` | any | Numrat serialë të tollonave; të plotësuar vetëm kur `type` është `SVOUCHER`, përndryshe listë bosh |
| `data.invoice.isSummaryInvoice` | boolean | Gjithmonë true; çelësi e shënon faturën si përmbledhëse |
| `data.invoice.settledOrderInvoices` | array | Porositë që u mbyllën me këtë faturë |
| `data.invoice.settledOrderInvoices[].id` | integer | Id-ja e porosisë në fature.al |
| `data.invoice.settledOrderInvoices[].number` | string, nullable | Numri i faturës së porosisë |
| `data.invoice.settledOrderInvoices[].date` | string | Kur u lëshua porosia, `YYYY-MM-DD HH:MM:SS` |
| `data.invoice.settledOrderInvoices[].amountGross` | number | Totali i porosisë me TVSH, në monedhën e saj |
| `data.invoice.settledOrderInvoices[].currency` | string, nullable | Monedha e porosisë, ISO 4217 |

```json
{
    "status": true,
    "data": {
        "invoice": {
            "id": 40323,
            "number": "12/2026",
            "iic": "3C7E9A1F52B84D0E6A2C4F8B1D9E7A35",
            "fic": "2f6c1e8a-9b3d-4c7e-a5f1-0d8b6e4c2a91",
            "tcrCode": "xb131xb131",
            "businessCode": "bb123bb123",
            "operatorCode": "aa123aa123",
            "fiscalizedAt": "2026-09-13 10:15:00",
            "verifyURL": "https://efiskalizimi-app.tatime.gov.al/invoice-check/#/verify?iic=3C7E9A1F52B84D0E6A2C4F8B1D9E7A35&tin=L81306019C&crtd=2026-09-13T10:15:00+02:00&prc=53190.00",
            "pdf": "https://fature.al/api/v1/invoice/print/40323",
            "eic": "9b4e2d1c-6f7a-4b3c-8d2e-1f0a9c8b7d65",
            "payment_methods": [
                {
                    "type": "ACCOUNT",
                    "amount": 540,
                    "company_card": "company card",
                    "vouchers": []
                }
            ],
            "isSummaryInvoice": true,
            "settledOrderInvoices": [
                {
                    "id": 40298,
                    "number": "9/2026",
                    "date": "2026-09-12 18:20:00",
                    "amountGross": 540,
                    "currency": "EUR"
                }
            ]
        }
    }
}
```

**400**: Një porosi nuk u gjet, nuk është faturë porosi, ose është mbyllur tashmë; ose të dhënat janë të paplota për fiskalizim. `errors` thotë saktë cila. Fatura nuk u ruajt; riprovoni me të njëjtin `internalId`.

| Fusha | Tipi | Përshkrimi |
| --- | --- | --- |
| `status` | boolean | Gjithmonë false. Një përgjigje e suksesshme mban `status: true` dhe objektin `data` |
| `message` | string | Përshkrimi i gabimit. Bosh kur dështimi nuk mban ndonjë mesazh të vetin |
| `errors` | array | Mesazhe për t'u shfaqur te përdoruesi ose për t'u ruajtur në log. Mungon kur nuk ka gjë për të shtuar përtej `message` |

```json
{
    "status": false,
    "message": "Te dhenat jo te sakta.",
    "errors": [
        "errors"
    ]
}
```

**401**: Unauthenticated

| Fusha | Tipi | Përshkrimi |
| --- | --- | --- |
| `message` | string |  |

```json
{
    "message": "Unauthenticated."
}
```

**403**: Abonimi ka mbaruar, ose veprimi nuk lejohet për këtë llogari.

| Fusha | Tipi | Përshkrimi |
| --- | --- | --- |
| `status` | boolean | Gjithmonë false. Një përgjigje e suksesshme mban `status: true` dhe objektin `data` |
| `message` | string | Përshkrimi i gabimit. Bosh kur dështimi nuk mban ndonjë mesazh të vetin |
| `errors` | array | Mesazhe për t'u shfaqur te përdoruesi ose për t'u ruajtur në log. Mungon kur nuk ka gjë për të shtuar përtej `message` |

```json
{
    "status": false,
    "message": "Te dhenat jo te sakta.",
    "errors": [
        "errors"
    ]
}
```

**409**: Një kërkesë me këtë `internalId` është ende në proces. Prisni pak dhe riprovoni, ose lexoni gjendjen me `POST /invoice/details/{internalId}`.

| Fusha | Tipi | Përshkrimi |
| --- | --- | --- |
| `status` | boolean | Gjithmonë false. Një përgjigje e suksesshme mban `status: true` dhe objektin `data` |
| `message` | string | Përshkrimi i gabimit. Bosh kur dështimi nuk mban ndonjë mesazh të vetin |
| `errors` | array | Mesazhe për t'u shfaqur te përdoruesi ose për t'u ruajtur në log. Mungon kur nuk ka gjë për të shtuar përtej `message` |

```json
{
    "status": false,
    "message": "Te dhenat jo te sakta.",
    "errors": [
        "errors"
    ]
}
```

**422**: Të dhënat nuk kaluan validimin. Kjo përgjigje përdor fushën `success`, jo `status`, dhe `errors` është objekt sipas fushës. Vetëm `internalId` që mungon kthehet me formatin standard të gabimit.

| Fusha | Tipi | Përshkrimi |
| --- | --- | --- |
| `success` | boolean | Gjithmonë false |
| `message` | string | Një rresht përmbledhës, i njëjtë për çdo dështim validimi |
| `errors` | object | Fushat që nuk kaluan validimin, secila me mesazhet e veta. Çelësat me pikë tregojnë brenda objekteve dhe elementëve të array-ve, p.sh. `lines.0.quantity` |

```json
{
    "success": false,
    "message": "Te dhena jo te sakta",
    "errors": []
}
```

**429**: Kufiri i kërkesave u arrit. Nga kufiri i përgjithshëm përgjigja mban vetëm `message` dhe header-in `Retry-After`; nga kufiri i endpoint-it mban formatin standard të gabimit.

| Fusha | Tipi | Përshkrimi |
| --- | --- | --- |
| `status` | boolean | Gjithmonë false. Një përgjigje e suksesshme mban `status: true` dhe objektin `data` |
| `message` | string | Përshkrimi i gabimit. Bosh kur dështimi nuk mban ndonjë mesazh të vetin |
| `errors` | array | Mesazhe për t'u shfaqur te përdoruesi ose për t'u ruajtur në log. Mungon kur nuk ka gjë për të shtuar përtej `message` |

```json
{
    "status": false,
    "message": "Te dhenat jo te sakta.",
    "errors": [
        "errors"
    ]
}
```

**500**: Gabim i papritur në server.

| Fusha | Tipi | Përshkrimi |
| --- | --- | --- |
| `status` | boolean | Gjithmonë false. Një përgjigje e suksesshme mban `status: true` dhe objektin `data` |
| `message` | string | Përshkrimi i gabimit. Bosh kur dështimi nuk mban ndonjë mesazh të vetin |
| `errors` | array | Mesazhe për t'u shfaqur te përdoruesi ose për t'u ruajtur në log. Mungon kur nuk ka gjë për të shtuar përtej `message` |

```json
{
    "status": false,
    "message": "Te dhenat jo te sakta.",
    "errors": [
        "errors"
    ]
}
```

**503**: Shërbimi i fiskalizimit nuk u arrit dhe fatura nuk u ruajt. Riprovoni me të njëjtin `internalId`.

| Fusha | Tipi | Përshkrimi |
| --- | --- | --- |
| `status` | boolean | Gjithmonë false. Një përgjigje e suksesshme mban `status: true` dhe objektin `data` |
| `message` | string | Përshkrimi i gabimit. Bosh kur dështimi nuk mban ndonjë mesazh të vetin |
| `errors` | array | Mesazhe për t'u shfaqur te përdoruesi ose për t'u ruajtur në log. Mungon kur nuk ka gjë për të shtuar përtej `message` |

```json
{
    "status": false,
    "message": "Te dhenat jo te sakta.",
    "errors": [
        "errors"
    ]
}
```
