/api/v1/reports/vat
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.
TVSH-ja e mbledhur nga shitjet përballë asaj të paguar në blerje për periudhën, me diferencën
që rezulton te summary.vat_due.
Rreshtat ndahen në dy grupe, si për shitjet ashtu edhe për blerjet te purchases:
taxable, sipas shkallës:0,6,10,20;exempt, sipas llojit të përjashtimit.
Blerjet vijnë nga faturat e blerjes që ka regjistruar CIS-i, prandaj raporti mbulon të dyja anët pa ju kërkuar të importoni gjë.
URL-ja e plotë: https://fature.al/api/v1/reports/vat
Query parameters
| Name | Tipi | E detyrueshme | Përshkrimi |
|---|---|---|---|
| from | string<date> | yes | Data e fillimit, `YYYY-MM-DD`, e përfshirë. E detyrueshme. |
| to | string<date> | yes | Data e mbarimit, `YYYY-MM-DD`, e përfshirë. E detyrueshme. Kur është para `from`, të dyja ndërrohen vend. |
Përgjigjet
200 Raporti i TVSH-së te `data`: shitjet te `totals`, `taxable` dhe `exempt`, blerjet te `purchases`, dhe diferenca te `summary.vat_due`.
| Field | Tipi | Përshkrimi |
|---|---|---|
| status | boolean | |
| data | object | |
| data.period | object | Periudha e konfirmuar e raportit |
| data.period.from | string | Data e fillimit, `YYYY-MM-DD`, përfshirëse |
| data.period.to | string | Data e mbarimit, `YYYY-MM-DD`, përfshirëse |
| data.totals | object | Totalet e shitjeve: shuma e `taxable` dhe `exempt` |
| data.totals.net | number | Vlera neto (pa TVSH) e rreshtave, në lekë |
| data.totals.vat | number | TVSH-ja e rreshtave, në lekë |
| data.totals.gross | number | Vlera bruto (me TVSH) e rreshtave, në lekë |
| data.totals.currency | string | Monedha e shumave, gjithmonë `ALL` |
| data.taxable | array | Shitjet e tatueshme sipas shkallës së TVSH-së, nga shkalla më e lartë |
| data.taxable[].rate | number | Shkalla e TVSH-së në përqind: `20`, `10`, `6` ose `0` |
| data.taxable[].net | number | Vlera neto (pa TVSH) e rreshtave, në lekë |
| data.taxable[].vat | number | TVSH-ja e rreshtave, në lekë |
| data.taxable[].gross | number | Vlera bruto (me TVSH) e rreshtave, në lekë |
| data.exempt | array | Shitjet e përjashtuara nga TVSH-ja sipas llojit të përjashtimit |
| data.exempt[].exempt_type | string | Lloji i përjashtimit, kodi i CIS-it: `TYPE_1` (neni 51 i ligjit të TVSH-së), `TYPE_2` (nenet 53 dhe 54), `TAX_FREE` (pa TVSH), `EXPORT_OF_GOODS` (eksport mallrash) ose `MARGIN_SCHEME` (skema e marzhit, marzhi i saj është te `margin_scheme`) |
| data.exempt[].rate | number | Shkalla e TVSH-së e rreshtave në përqind, zakonisht `0` |
| data.exempt[].net | number | Vlera neto e rreshtave, në lekë |
| data.exempt[].vat | number | TVSH-ja e rreshtave, në lekë, zakonisht `0` |
| data.exempt[].gross | number | Vlera bruto e rreshtave, në lekë |
| data.margin_scheme | object | Shitjet në skemën e marzhit: vlera e plotë, marzhi dhe TVSH-ja brenda tij |
| data.margin_scheme.gross | number | Vlera e plotë e rreshtave në skemën e marzhit, në lekë |
| data.margin_scheme.margin | number | Marzhi: shitja minus kostoja e blerjes, pas zbritjes në nivel fature, në lekë |
| data.margin_scheme.vat | number | TVSH-ja brenda marzhit, me normën 20%, në lekë. Hyn te `summary.output_vat` |
| data.margin_scheme.currency | string | Monedha e shumave, gjithmonë `ALL` |
| data.purchases | object | E njëjta ndarje për blerjet e periudhës |
| data.purchases.taxable | array | Blerjet e tatueshme sipas shkallës së TVSH-së, nga shkalla më e lartë |
| data.purchases.taxable[].rate | number | Shkalla e TVSH-së në përqind: `20`, `10`, `6` ose `0` |
| data.purchases.taxable[].net | number | Vlera neto (pa TVSH) e rreshtave, në lekë |
| data.purchases.taxable[].vat | number | TVSH-ja e rreshtave, në lekë |
| data.purchases.taxable[].gross | number | Vlera bruto (me TVSH) e rreshtave, në lekë |
| data.purchases.exempt | array | Blerjet e përjashtuara nga TVSH-ja sipas llojit të përjashtimit |
| data.purchases.exempt[].exempt_type | string | Lloji i përjashtimit, kodi i CIS-it: `TYPE_1` (neni 51 i ligjit të TVSH-së), `TYPE_2` (nenet 53 dhe 54), `TAX_FREE` (pa TVSH), `EXPORT_OF_GOODS` (eksport mallrash) ose `MARGIN_SCHEME` (skema e marzhit, marzhi i saj është te `margin_scheme`) |
| data.purchases.exempt[].rate | number | Shkalla e TVSH-së e rreshtave në përqind, zakonisht `0` |
| data.purchases.exempt[].net | number | Vlera neto e rreshtave, në lekë |
| data.purchases.exempt[].vat | number | TVSH-ja e rreshtave, në lekë, zakonisht `0` |
| data.purchases.exempt[].gross | number | Vlera bruto e rreshtave, në lekë |
| data.purchases.totals | object | Totalet e blerjeve |
| data.purchases.totals.net | number | Vlera neto (pa TVSH) e rreshtave, në lekë |
| data.purchases.totals.vat | number | TVSH-ja e rreshtave, në lekë |
| data.purchases.totals.gross | number | Vlera bruto (me TVSH) e rreshtave, në lekë |
| data.purchases.totals.currency | string | Monedha e shumave, gjithmonë `ALL` |
| data.summary | object | TVSH-ja e mbledhur përballë asaj të paguar dhe diferenca |
| data.summary.output_vat | number | TVSH-ja e mbledhur nga shitjet, në lekë: `totals.vat` plus TVSH-ja brenda marzhit, `margin_scheme.vat`. Pa shitje në skemën e marzhit është e njëjta me `totals.vat` |
| data.summary.input_vat | number | TVSH-ja e paguar në blerje, e njëjta me `purchases.totals.vat`, në lekë |
| data.summary.vat_due | number | `output_vat` minus `input_vat`, në lekë: TVSH-ja për t'u paguar; negative kur blerjet mbajnë më shumë TVSH se shitjet |
| data.summary.currency | string | Monedha e shumave, gjithmonë `ALL` |
401 Unauthenticated
| Field | Tipi | Përshkrimi |
|---|---|---|
| message | string |
403 Përdoruesi nuk ka të drejtën e raporteve. Një operator merr në raport vetëm faturat e veta.
| 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 `from` ose `to` mungon, ose nuk është në formatin `YYYY-MM-DD`. Kjo përgjigje përdor fushën `success`, jo `status`, dhe `errors` është objekt sipas fushës.
| 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` |
Shembull kërkese
curl -X GET 'https://fature.al/api/v1/reports/vat?from=2026-01-01&to=2026-01-31' \
-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/reports/vat?from=2026-01-01&to=2026-01-31');
$data = $response->json();
use GuzzleHttp\Client;
$client = new Client();
$response = $client->request('GET', 'https://fature.al/api/v1/reports/vat?from=2026-01-01&to=2026-01-31', [
'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/reports/vat?from=2026-01-01&to=2026-01-31', {
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": {
"period": {
"from": "2026-09-01",
"to": "2026-09-13"
},
"totals": {
"net": 1537708.33,
"vat": 250000,
"gross": 1787708.33,
"currency": "ALL"
},
"taxable": [
{
"rate": 20,
"net": 1250000,
"vat": 250000,
"gross": 1500000
}
],
"exempt": [
{
"exempt_type": "TAX_FREE",
"rate": 0,
"net": 287708.33,
"vat": 0,
"gross": 287708.33
}
],
"margin_scheme": {
"gross": 120000,
"margin": 18000,
"vat": 3000,
"currency": "ALL"
},
"purchases": {
"taxable": [
{
"rate": 20,
"net": 1250000,
"vat": 250000,
"gross": 1500000
}
],
"exempt": [
{
"exempt_type": "TAX_FREE",
"rate": 0,
"net": 287708.33,
"vat": 0,
"gross": 287708.33
}
],
"totals": {
"net": 1537708.33,
"vat": 250000,
"gross": 1787708.33,
"currency": "ALL"
}
},
"summary": {
"output_vat": 250000,
"input_vat": 96000,
"vat_due": 154000,
"currency": "ALL"
}
}
}
{
"message": "Unauthenticated."
}
{
"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"
]
}