/api/v1/invoice/summary
Requires authentication
Rate limited by the `api-global` limiter
v1
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, të lëshuar nga TCR-ja e përdoruesit.
order_invoicesmbaniic-të e porosive që po mbyllen, të paktën një. Duhet të jenë fatura porosi të kësaj kompanie, ende të pambyllura; ndryshe kërkesa refuzohet me400dheerrorsthotë cila.- Rreshtat nuk dërgohen: merren nga vetë porositë, me zbritjet e tyre.
payment_methodpranon vetëmBANKNOTEoseCARD.- Zbritja e tavolinës vendoset këtu, me
invoice_discount_typedheinvoice_discount_value.
Përgjigja i liston porositë e mbyllura te settledOrderInvoices.
URL-ja e plotë: https://fature.al/api/v1/invoice/summary
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. |
| payment_method | string, one of BANKNOTE, CARD | yes | Mënyra e pagesës: `BANKNOTE` ose `CARD`. E detyrueshme. |
| 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. |
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.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 -X POST 'https://fature.al/api/v1/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",
"payment_method": "CARD",
"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
}'
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/v1/invoice/summary', [
'internalId' => 'SUMMARY-2026-000021',
'payment_method' => 'CARD',
'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,
]);
$data = $response->json();
use GuzzleHttp\Client;
$client = new Client();
$response = $client->request('POST', 'https://fature.al/api/v1/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',
'payment_method' => 'CARD',
'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,
],
]);
$data = json_decode((string) $response->getBody(), true);
const response = await fetch('https://fature.al/api/v1/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",
"payment_method": "CARD",
"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
})
});
const data = await response.json();
Shembull përgjigjeje
{
"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",
"isSummaryInvoice": true,
"settledOrderInvoices": [
{
"id": 40298,
"number": "9/2026",
"date": "2026-09-12 18:20:00",
"amountGross": 540,
"currency": "EUR"
}
]
}
}
}
{
"status": false,
"message": "Te dhenat jo te sakta.",
"errors": [
"errors"
]
}
{
"message": "Unauthenticated."
}
{
"status": false,
"message": "Te dhenat jo te sakta.",
"errors": [
"errors"
]
}
{
"status": false,
"message": "Te dhenat jo te sakta.",
"errors": [
"errors"
]
}
{
"success": false,
"message": "Te dhena jo te sakta",
"errors": []
}
{
"status": false,
"message": "Te dhenat jo te sakta.",
"errors": [
"errors"
]
}
{
"status": false,
"message": "Te dhenat jo te sakta.",
"errors": [
"errors"
]
}
{
"status": false,
"message": "Te dhenat jo te sakta.",
"errors": [
"errors"
]
}