/api/v1/invoice/wtn
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 fletët shoqëruese të kompanisë, nga më e reja te më e vjetra, me filtrim sipas datës së
krijimit. Çdo fletë vjen e plotë, me origin, destination, carrier, fiscal dhe lines,
kështu që për rreshtat nuk duhet një thirrje e dytë.
- Pagination me
limitdheoffset.paginationnuk kthentotal, ndaj ndaloni kur një faqe vjen më e shkurtër selimit. - Një kërkesë e dytë nga i njëjti token, ndërsa e para nuk ka mbaruar, refuzohet menjëherë me
429. Vendi lirohet sapo kthehet përgjigja, ose pas 30 sekondash nëse kërkesa u ndërpre.
fiscal.status është FISCALIZED ose UNFISCALIZED, dhe print është adresa e të dhënave
për printim të fletës.
URL-ja e plotë: https://fature.al/api/v1/invoice/wtn
Query parameters
| Name | Tipi | E detyrueshme | Përshkrimi |
|---|---|---|---|
| limit | integer | no | Sa fletë të kthehen në një faqe. Defaults to `20`. |
| offset | integer | no | Nga cila fletë të fillohet, duke numëruar nga 0. Defaults to `0`. |
| fromDate | string | no | Data e fillimit, `YYYY-MM-DD`, sipas datës së krijimit. |
| toDate | string | no | Data e mbarimit, `YYYY-MM-DD`. |
Përgjigjet
200 Lista e fletëve të periudhës, me `pagination`; `items` është bosh kur nuk ka fletë.
| Field | Tipi | Përshkrimi |
|---|---|---|
| status | boolean | |
| data | object | |
| data.items | array | |
| data.items[].id | integer | Id-ja e fletës në fature.al; me të lexohen detajet dhe të dhënat për printim |
| data.items[].number | string, nullable | Numri i fletës, si `3/2026`: numri rendor i fletës brenda ditës për njësinë e biznesit, dhe viti |
| data.items[].type | string, nullable | Lloji i fletës: `WTN` për mall që lëviz pa shitje, `SALE` për mall që shoqëron një shitje |
| data.items[].transaction | string, nullable | Lloji i transaksionit: `TRANSFER` zhvendosje malli, `EXAMINATION` dërgim për ekzaminim ose provë, `SALES` shitje, `DOOR` shitje derë më derë |
| data.items[].issue_date | string, nullable | Data dhe ora e lëshimit, `YYYY-MM-DD HH:MM:SS`, orë lokale |
| data.items[].start_date | string, nullable | Data dhe ora e nisjes së mallit, `YYYY-MM-DD HH:MM:SS`, orë lokale; çasti i lëshimit kur nuk u dërgua |
| data.items[].destination_date | string, nullable | Data dhe ora e mbërritjes së mallit, `YYYY-MM-DD HH:MM:SS`, orë lokale; çasti i lëshimit kur nuk u dërgua |
| data.items[].origin | object | Pika e nisjes së mallit |
| data.items[].origin.point | string, nullable | Lloji i vendit: `WAREHOUSE` magazinë, `STORE` dyqan, `SALE` pikë shitjeje, `EXHIBITION` panair, `CUSTOMS` doganë, `ANOTHER` magazinë e një personi tjetër, `OTHER` tjetër. Kur nuk u dërgua gjë, nisja mban `WAREHOUSE` dhe mbërritja `STORE` |
| data.items[].origin.city | string, nullable | Qyteti; qyteti i kompanisë kur nuk u dërgua |
| data.items[].origin.address | string, nullable | Adresa; adresa e njësisë së biznesit kur nuk u dërgua |
| data.items[].destination | object | Pika e mbërritjes së mallit |
| data.items[].destination.point | string, nullable | Lloji i vendit: `WAREHOUSE` magazinë, `STORE` dyqan, `SALE` pikë shitjeje, `EXHIBITION` panair, `CUSTOMS` doganë, `ANOTHER` magazinë e një personi tjetër, `OTHER` tjetër. Kur nuk u dërgua gjë, nisja mban `WAREHOUSE` dhe mbërritja `STORE` |
| data.items[].destination.city | string, nullable | Qyteti; qyteti i kompanisë kur nuk u dërgua |
| data.items[].destination.address | string, nullable | Adresa; adresa e njësisë së biznesit kur nuk u dërgua |
| data.items[].carrier | object | Transportuesi dhe automjeti |
| data.items[].carrier.name | string, nullable | Emri i transportuesit; emri i përdoruesit të token-it kur nuk u dërgua |
| data.items[].carrier.id_type | string, nullable | Lloji i identifikuesit të transportuesit: `NUIS` për një biznes, `ID` për një person. `NUIS` kur nuk u dërgua |
| data.items[].carrier.id_num | string, nullable | NIPT-i ose numri i dokumentit të transportuesit, sipas `id_type`; NIPT-i i kompanisë kur nuk u dërgua |
| data.items[].carrier.town | string, nullable | Qyteti i transportuesit; qyteti i kompanisë kur nuk u dërgua |
| data.items[].carrier.address | string, nullable | Adresa e transportuesit; adresa e njësisë së biznesit kur nuk u dërgua |
| data.items[].carrier.vehicle_ownership | string, nullable | Pronësia e automjetit: `OWNER` automjet i kompanisë, `THIRDPARTY` automjet i një pale të tretë |
| data.items[].carrier.vehicle_plates | string, nullable | Targa e automjetit, me shkronja të mëdha |
| data.items[].value_of_goods | number | Vlera e mallit që udhëton, në lekë, siç u dërgua te `valueOfGoods` |
| data.items[].items_num | integer | Sasia e mallit: shuma e `quantity` të rreshtave, e rrumbullakosur lart në numër të plotë (0,3 kg jep 1) |
| data.items[].fiscal | object | Gjendja dhe kodet e fiskalizimit të fletës |
| data.items[].fiscal.status | string, nullable | `FISCALIZED` kur CIS-i e ka regjistruar fletën, `UNFISCALIZED` sa kohë ajo pret fiskalizimin. Një fletë e pafiskalizuar rifiskalizohet nga fature.al |
| data.items[].fiscal.iic | string, nullable | Kodi identifikues i fletës (WTNIC, në rolin e IIC-së së faturave), 32 shifra hex. Llogaritet nga fature.al me certifikatën e kompanisë para dërgimit te CIS-i, ndaj është i pranishëm edhe kur fleta pret fiskalizimin |
| data.items[].fiscal.fic | string, nullable | Kodi që ktheu CIS-i kur e regjistroi fletën (FWTNIC, në rolin e FIC-ut); `null` sa kohë fleta pret fiskalizimin |
| data.items[].fiscal.tcr_code | string, nullable | Kodi TCR i pajisjes fiskale të përdoruesit të token-it në çastin e lëshimit |
| data.items[].fiscal.business_code | string, nullable | Kodi i njësisë së biznesit nën të cilën u lëshua fleta |
| data.items[].fiscal.operator_code | string, nullable | Kodi i operatorit që e lëshoi fletën |
| data.items[].fiscal.fiscalized_at | string, nullable | Data dhe ora e fiskalizimit, `YYYY-MM-DD HH:MM:SS`, orë lokale. `null` sa kohë fleta pret fiskalizimin. Fletët e fiskalizuara para 28 shtatorit 2026 mbajnë `00:00:00`, sepse kolona ruante vetëm datën |
| data.items[].fiscal.verify_url | string, nullable | URL-ja e verifikimit të fletës te administrata tatimore, ajo që hap kodi QR; `null` kur fleta nuk ka `iic` |
| data.items[].lines | array | Rreshtat e mallit, ashtu siç u dërguan te `invoice_lines` |
| data.items[].lines[].product_name | any | Emri ose përshkrimi i mallit |
| data.items[].lines[].product_code | any | Kodi i mallit, siç u dërgua |
| data.items[].lines[].unit | any | Njësia matëse, siç u dërgua |
| data.items[].lines[].quantity | number | Sasia |
| data.items[].print | string | URL-ja e `GET /invoice/wtn/print/{id}`, të dhënat e kësaj flete për printim. Vjen nën të njëjtin version që e ktheu fletën |
| data.pagination | object | |
| data.pagination.records | integer | Sa fletë 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 |
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/wtn' \
-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/wtn');
$data = $response->json();
use GuzzleHttp\Client;
$client = new Client();
$response = $client->request('GET', 'https://fature.al/api/v1/invoice/wtn', [
'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/wtn', {
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": 403,
"number": "3/2026",
"type": "WTN",
"transaction": "TRANSFER",
"issue_date": "2026-09-13 10:30:00",
"start_date": "2026-09-13 10:30:00",
"destination_date": "2026-09-13 14:30:00",
"origin": {
"point": "WAREHOUSE",
"city": "Tiranë",
"address": "Rruga e Kavajës 12"
},
"destination": {
"point": "WAREHOUSE",
"city": "Tiranë",
"address": "Rruga e Kavajës 12"
},
"carrier": {
"name": "Transport Alba SHPK",
"id_type": "NUIS",
"id_num": "L01234567A",
"town": "Tiranë",
"address": "Rruga e Kavajës 12",
"vehicle_ownership": "OWNER",
"vehicle_plates": "AA123BB"
},
"value_of_goods": 10000,
"items_num": 5,
"fiscal": {
"status": "FISCALIZED",
"iic": "A1B2C3D4E5F60718293A4B5C6D7E8F90",
"fic": "7f1e2d3c-4b5a-4c6d-8e9f-0a1b2c3d4e5f",
"tcr_code": "cc123cc123",
"business_code": "bb123bb123",
"operator_code": "oo123oo123",
"fiscalized_at": "2026-09-13 10:30:00",
"verify_url": "https://efiskalizimi-app.tatime.gov.al/invoice-check/#/wtn?wtnic=A1B2C3D4E5F60718293A4B5C6D7E8F90&tin=L01234567A&crtd=2026-09-13T10:30:00+02:00&ord=3&bu=bb123bb123&sw=ss123ss123"
},
"lines": [
{
"product_name": "Kafe e pjekur 1kg",
"product_code": "K1",
"unit": "cope",
"quantity": 5
}
],
"print": "https://fature.al/api/v1/invoice/wtn/print/403"
}
],
"pagination": {
"records": 20,
"limit": 20,
"offset": 0
}
}
}
{
"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"
]
}