/api/v1/invoice
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.
Kthen faturat e kompanisë, nga më e reja te më e vjetra, me filtrim sipas tipit, datës dhe një
teksti kërkimi. Çdo faturë vjen me blerësin, shumat dhe pagesën, por pa rreshtat; për rreshtat
thirrni GET /invoice/{id}/details.
- Pagination me
limitdheoffset.paginationnuk kthentotal, ndaj ndaloni kur një faqe vjen më e shkurtër selimit. - Kur lexoni një periudhë të mbyllur, kufizojeni me
fromDatedhetoDate, që faqet të mos zhvendosen nga faturat e reja. - Një kërkesë e dytë nga i njëjti token, ndërsa e para nuk ka mbaruar, pret deri në një sekondë
dhe pastaj refuzohet me
429.
URL-ja e plotë: https://fature.al/api/v1/invoice
Query parameters
| Name | Tipi | E detyrueshme | Përshkrimi |
|---|---|---|---|
| limit | integer | no | Sa fatura të kthehen në një faqe. Defaults to `20`. |
| offset | integer | no | Nga cila faturë të fillohet, duke numëruar nga 0. Defaults to `0`. |
| type | string | no | Filtro sipas tipit: `CASH`, `NONCASH` ose `EINVOICE`, disa tipe të ndara me presje. Një vlerë tjetër injorohet pa gabim; nëse asnjë nuk mbetet e vlefshme, filtri nuk zbatohet fare. |
| fromDate | string | no | Data e fillimit, `YYYY-MM-DD`. |
| toDate | string | no | Data e mbarimit, `YYYY-MM-DD`. |
| query | string | no | Kërkim sipas numrit të faturës, emrit të blerësit ose NIPT-it. |
Përgjigjet
200 Faturat e periudhës te `items`, nga më e reja te më e vjetra, me `pagination`; `items` është bosh kur nuk ka fatura.
| Field | Tipi | Përshkrimi |
|---|---|---|
| status | boolean | |
| data | object | |
| data.items | array | |
| data.items[].id | integer | Id-ja e faturës në fature.al |
| data.items[].number | string, nullable | Numri i faturës, si `12/2026` |
| data.items[].type | string | Lloji i faturës: `CASH`, `NONCASH` ose `EINVOICE` |
| data.items[].issue_date | string | Data e lëshimit, `YYYY-MM-DD` |
| data.items[].due_date | string | Afati i pagesës, `YYYY-MM-DD` |
| data.items[].delivery_date | string | Data e dorëzimit, ose fundi i periudhës së furnizimit, `YYYY-MM-DD` |
| data.items[].created_at | string, nullable | Data dhe ora e krijimit, `YYYY-MM-DD HH:MM:SS`, ora lokale |
| data.items[].supply_start_date | string, nullable | Fillimi i periudhës së furnizimit, `YYYY-MM-DD` |
| data.items[].supply_end_date | string, nullable | Fundi i periudhës së furnizimit, `YYYY-MM-DD` |
| data.items[].client | object | Blerësi i faturës |
| data.items[].client.name | string | Emri i plotë i personit ose emri i kompanisë |
| data.items[].client.id | object | Identifikuesi fiskal i blerësit |
| data.items[].client.address | object | Adresa e blerësit |
| data.items[].amount | object | Shumat e faturës, në monedhën e saj dhe në lekë |
| data.items[].amount.currency | string | Monedha e faturës, ISO 4217 |
| data.items[].amount.exchange_rate | any | Kursi i këmbimit ndaj lekut; null kur fatura është tashmë në lek |
| data.items[].amount.gross | number | Totali me TVSH, pasi është hequr zbritja mbi faturën |
| data.items[].amount.net | number | Totali pa TVSH, pasi është hequr zbritja mbi faturën |
| data.items[].amount.vat | number | TVSH-ja gjithsej |
| data.items[].amount.discount | number | Zbritja mbi të gjithë faturën, si shumë pa TVSH: sa u hoq nga vlera pa TVSH e faturës. Zbritjet e rreshtave nuk janë këtu; ato janë te `lines[].discount`. Zero kur fatura nuk ka zbritje mbi faturën |
| data.items[].amount.net_all | number | Totali pa TVSH në lek |
| data.items[].amount.gross_all | number | Totali me TVSH në lek |
| data.items[].amount.vat_all | number | TVSH-ja në lek |
| data.items[].amount.discount_all | number | Zbritja mbi faturën në lek |
| data.items[].amount.local_currency | any | I pranishëm vetëm në një faturë në monedhë të huaj |
| data.items[].payment | object | Sa është shlyer nga fatura |
| data.items[].payment.state | string | `PAID`, `PARTIALLY_PAID` ose `UNPAID` |
| data.items[].payment.amount_paid | number | Shuma e arkëtuar deri tani, në monedhën e faturës |
| data.items[].payment.amount_left | number | Totali me TVSH minus shumën e arkëtuar, në monedhën e faturës |
| data.items[].bank_account | object, nullable | Llogaria bankare e shtypur në faturë, ose `null` |
| data.items[].bank_account.id | any | Id-ja e llogarisë bankare në fature.al |
| data.items[].bank_account.bank_name | any | Emri i bankës |
| data.items[].bank_account.iban | any | IBAN-i i llogarisë |
| data.items[].bank_account.swift | any | Kodi SWIFT i bankës |
| data.items[].bank_account.currency | any | Monedha e llogarisë, ISO 4217 |
| data.items[].bank_account.notes | any | Shënime të lira mbi llogarinë |
| data.items[].notes | string, nullable | Shënimet që dalin në faturë |
| data.items[].iic | string, nullable | Kodi identifikues i faturës (IIC, në ligj NSLF) |
| data.items[].fic | string, nullable | Kodi që ktheu CIS-i kur e regjistroi faturën (FIC, në ligj NIVF). `null` sa kohë fatura pret fiskalizimin |
| data.items[].eic | string, nullable | Kodi i faturës në platformën e e-faturave. Vetëm te e-faturat |
| data.items[].doc_type | string, nullable | Lloji i dokumentit në UBL: `380` faturë, `381` notë krediti, `383` notë debiti. `null` te një faturë e zakonshme fiskale |
| data.items[].process | string, nullable | Profili UBL: `P1` për një shitje, `P9` për një korrigjim. Vendoset te e-faturat |
| data.items[].self_issue_type | string, nullable | Lloji i vetëfaturimit, kur fatura është vetëfaturim |
| data.items[].reversed_at | string, nullable | Kur u anulua fatura, `YYYY-MM-DD HH:MM:SS`, ose `null` |
| data.items[].reversed_by | integer, nullable | Id-ja e faturës që kjo faturë anulon, ose `null` |
| data.items[].pdf_url | string | URL-ja për të shkarkuar PDF-në e faturës |
| data.items[].reverse_charge | boolean | Ngarkesë e kundërt: TVSH-në e deklaron blerësi |
| data.items[].periodic_invoice | boolean | Faturë e një cikli të përsëritur faturimi |
| data.items[].payment_method | string, nullable | Mënyra e pagesës me të cilën u shlye fatura; te një pagesë e ndarë, ajo me pjesën më të madhe |
| data.pagination | object | |
| data.pagination.records | integer | Sa fatura mban `items` në këtë faqe |
| data.pagination.limit | integer | Parametri `limit` i kërkesës, pas rrumbullakimit në të paktën 1 |
| data.pagination.offset | integer | Parametri `offset` i kërkesës, pas rrumbullakimit në të paktën 0 |
| data.pagination.type | string, nullable | Filtri `type` ashtu siç u dërgua, `null` kur nuk u dërgua |
| data.pagination.query | string, nullable | Filtri `query` ashtu siç u dërgua, `null` kur nuk u dërgua |
401 Unauthenticated
| Field | Tipi | Përshkrimi |
|---|---|---|
| message | string |
422 Datat nuk janë në formatin `YYYY-MM-DD`.
| 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` |
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` |
Shembull kërkese
curl -X GET 'https://fature.al/api/v1/invoice' \
-H 'Authorization: Bearer YOUR_TOKEN' \
-H 'X-Client-Id: YOUR_CLIENT_ID' \
-H 'X-Client-Secret: YOUR_CLIENT_SECRET' \
-H 'Accept: application/json'
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',
])->get('https://fature.al/api/v1/invoice');
$data = $response->json();
use GuzzleHttp\Client;
$client = new Client();
$response = $client->request('GET', 'https://fature.al/api/v1/invoice', [
'headers' => [
'Authorization' => 'Bearer YOUR_TOKEN',
'X-Client-Id' => 'YOUR_CLIENT_ID',
'X-Client-Secret' => 'YOUR_CLIENT_SECRET',
'Accept' => 'application/json',
],
]);
$data = json_decode((string) $response->getBody(), true);
const response = await fetch('https://fature.al/api/v1/invoice', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_TOKEN',
'X-Client-Id': 'YOUR_CLIENT_ID',
'X-Client-Secret': 'YOUR_CLIENT_SECRET',
'Accept': 'application/json'
}
});
const data = await response.json();
Shembull përgjigjeje
{
"status": true,
"data": {
"items": [
{
"id": 40323,
"number": "12/2026",
"type": "EINVOICE",
"issue_date": "2026-09-13",
"due_date": "2026-09-27",
"delivery_date": "2026-09-13",
"created_at": "2026-09-13 10:15:00",
"supply_start_date": "2026-09-01",
"supply_end_date": "2026-09-13",
"client": {
"name": "Alba Trade shpk",
"id": [],
"address": []
},
"amount": {
"currency": "EUR",
"exchange_rate": 98.5,
"gross": 540,
"net": 450,
"vat": 90,
"discount": 0,
"net_all": 44325,
"gross_all": 53190,
"vat_all": 8865,
"discount_all": 0,
"local_currency": "USD"
},
"payment": {
"state": "PARTIALLY_PAID",
"amount_paid": 300,
"amount_left": 240
},
"bank_account": {
"id": 27,
"bank_name": "Banka Kombëtare Tregtare",
"iban": "AL47212110090000000235698741",
"swift": "NCBAALTX",
"currency": "EUR",
"notes": "Llogaria në euro"
},
"notes": "Pagesa brenda 14 ditëve.",
"iic": "3C7E9A1F52B84D0E6A2C4F8B1D9E7A35",
"fic": "2f6c1e8a-9b3d-4c7e-a5f1-0d8b6e4c2a91",
"eic": "9b4e2d1c-6f7a-4b3c-8d2e-1f0a9c8b7d65",
"doc_type": 380,
"process": "P1",
"self_issue_type": "DOMESTIC",
"reversed_at": "2026-09-14 08:05:00",
"reversed_by": 40311,
"pdf_url": "https://fature.al/api/v1/invoice/print/40323",
"reverse_charge": false,
"periodic_invoice": false,
"payment_method": "ACCOUNT"
}
],
"pagination": {
"records": 10,
"limit": 10,
"offset": 0,
"type": "CASH,NONCASH",
"query": "K12345AB"
}
}
}
{
"message": "Unauthenticated."
}
{
"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"
]
}