/api/v1/reports/reversals
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.
Faturat e anuluara në periudhë, secila me original_invoice_id, faturën origjinale që
korrigjon, dhe reversed_at. totals mban numrin dhe vlerën e tyre.
limitpranon nga1deri në500, me100si parazgjedhje.- Përdoreni për të parë sa dhe pse anulohet: një numër i lartë anulimesh është zakonisht shenjë e një problemi në procesin e shitjes.
URL-ja e plotë: https://fature.al/api/v1/reports/reversals
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. |
| limit | integer, min 1, max 500, nullable | no | Sa rreshta të kthehen, nga 1 deri në 500. |
Përgjigjet
200 Faturat e anuluara të periudhës te `items`, nga anulimi më i fundit, deri në `limit`, me `totals` mbi të gjitha anulimet; `items` është bosh kur nuk ka anulime.
| 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 | Numri dhe vlera e të gjitha anulimeve të periudhës, pavarësisht nga `limit` |
| data.totals.count | integer | Sa fatura u anuluan në periudhë |
| data.totals.gross | number | Vlera bruto e faturave të anuluara, në lekë |
| data.items | array | Faturat e anuluara, nga anulimi më i fundit, deri në `limit` (parazgjedhja `100`) |
| data.items[].id | integer | Id-ja e faturës së anuluar në fature.al |
| data.items[].number | string | Numri i faturës së anuluar, si `118/2026`; bosh kur fatura nuk mban numër |
| data.items[].type | string | Tipi i faturës: `CASH`, `NONCASH` ose `EINVOICE` |
| data.items[].reversed_at | string, nullable | Data dhe ora e anulimit, `YYYY-MM-DD HH:MM:SS`, orë lokale; `null` te faturat e vjetra pa datë anulimi |
| data.items[].original_invoice_id | integer, nullable | Id-ja e faturës nga e cila rrjedh fatura e anuluar: kur ajo ishte vetë një faturë korrigjuese, fatura që korrigjonte. `null` te një shitje e zakonshme |
| data.items[].gross | number | Vlera bruto e faturës së anuluar, në lekë |
| data.items[].operator | string, nullable | Emri i plotë i përdoruesit që e kishte lëshuar; `null` kur fatura nuk mban përdorues |
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`, ose `limit` është jashtë `1` deri në `500`. 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/reversals?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/reversals?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/reversals?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/reversals?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": {
"count": 7,
"gross": 23150
},
"items": [
{
"id": 51902,
"number": "118/2026",
"type": "CASH",
"reversed_at": "2026-09-08 14:22:05",
"original_invoice_id": 51877,
"gross": 4200,
"operator": "Arben Hoxha"
}
]
}
}
{
"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"
]
}