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

Lësho faturë përmbledhëse

POST /api/v2/invoice/summary Requires authentication Rate limited by the `api-global` limiter v2

Send a bearer token, plus the X-Client-Id and X-Client-Secret headers in the Authorization header.

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.

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

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

Body parameters

Name Tipi E detyrueshme Përshkrimi
internalId string yes Identifikuesi i faturës në sistemin tuaj; shërben edhe si çelës idempotence. I detyrueshëm.
order_invoices array yes 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 no Monedha e faturës, kod ISO 4217; pa të merret ALL.
exchange_rate number, nullable no Sa lekë vlen një njësi e monedhës së faturës. Pa të merret 1.
supply_start_date string, nullable no Fillimi i periudhës së furnizimit, `YYYY-MM-DD`, për fatura që mbulojnë një interval.
supply_end_date string, nullable no Fundi i periudhës së furnizimit, `YYYY-MM-DD`.
invoice_discount_type string, one of percent, amount, nullable no 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 no 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 yes 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 yes Mënyra e pagesës e këtij elementi: `BANKNOTE` ose `CARD`.
payment_methods[].amount number yes 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.

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

Field 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

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

Field 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`

401 Unauthenticated

Field Tipi Përshkrimi
message string

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

Field 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`

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

Field 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`

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.

Field 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`

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.

Field 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`

500 Gabim i papritur në server.

Field 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`

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

Field 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`

Shembull kërkese

cURL
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
        }
    ]
}'
PHP (Laravel)
use Illuminate\Support\Facades\Http;

$response = Http::withHeaders([
    'Authorization' => 'Bearer YOUR_TOKEN',
    'X-Client-Id' => 'YOUR_CLIENT_ID',
    'X-Client-Secret' => 'YOUR_CLIENT_SECRET',
    'Accept' => 'application/json',
    'Content-Type' => 'application/json',
])->post('https://fature.al/api/v2/invoice/summary', [
    '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,
        ],
    ],
]);

$data = $response->json();
PHP (Guzzle)
use GuzzleHttp\Client;

$client = new Client();

$response = $client->request('POST', 'https://fature.al/api/v2/invoice/summary', [
    'headers' => [
        'Authorization' => 'Bearer YOUR_TOKEN',
        'X-Client-Id' => 'YOUR_CLIENT_ID',
        'X-Client-Secret' => 'YOUR_CLIENT_SECRET',
        'Accept' => 'application/json',
        'Content-Type' => 'application/json',
    ],
    'json' => [
        '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,
            ],
        ],
    ],
]);

$data = json_decode((string) $response->getBody(), true);
JavaScript
const response = await fetch('https://fature.al/api/v2/invoice/summary', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN',
    'X-Client-Id': 'YOUR_CLIENT_ID',
    'X-Client-Secret': 'YOUR_CLIENT_SECRET',
    'Accept': 'application/json',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
      "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
          }
      ]
  })
});

const data = await response.json();

Shembull përgjigjeje

200
{
    "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
{
    "status": false,
    "message": "Te dhenat jo te sakta.",
    "errors": [
        "errors"
    ]
}
401
{
    "message": "Unauthenticated."
}
403
{
    "status": false,
    "message": "Te dhenat jo te sakta.",
    "errors": [
        "errors"
    ]
}
409
{
    "status": false,
    "message": "Te dhenat jo te sakta.",
    "errors": [
        "errors"
    ]
}
422
{
    "success": false,
    "message": "Te dhena jo te sakta",
    "errors": []
}
429
{
    "status": false,
    "message": "Te dhenat jo te sakta.",
    "errors": [
        "errors"
    ]
}
500
{
    "status": false,
    "message": "Te dhenat jo te sakta.",
    "errors": [
        "errors"
    ]
}
503
{
    "status": false,
    "message": "Te dhenat jo te sakta.",
    "errors": [
        "errors"
    ]
}

Regjistrimi është falas.

Regjistrohu në fature.al

This page as Markdown, or the whole API as OpenAPI.