/api/v1/reports/cash-register/closing
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.
Raporti i fundit i ditës, ai që printohet kur mbyllet turni: totalet e shitjeve, produktet e
shitura dhe lëvizjet e parave, me opened_at dhe closed_at të turnit.
Ndryshimi nga gjendja e arkës është fokusi: ky raport i përket turnit që u mbyll, jo ditës si periudhë.
- Pa
datemerret dita e sotme. Formati ështëYYYY-MM-DD. - Raporti i përket pajisjes fiskale të përdoruesit të token-it. Pa pajisje fiskale, ose kur
monedha ALL nuk është e konfiguruar, arka nuk është e disponueshme dhe përgjigja kthehet me
200dhestatus: false.
URL-ja e plotë: https://fature.al/api/v1/reports/cash-register/closing
Query parameters
| Name | Tipi | E detyrueshme | Përshkrimi |
|---|---|---|---|
| date | string<date>, nullable | no | Dita e raportit, `YYYY-MM-DD`. Pa të merret sot. |
Përgjigjet
200 Raporti i mbylljes së turnit te `data`, me `sales`, `sales_by_method`, `products_sold` dhe `movements`; pa pajisje fiskale, ose kur monedha ALL nuk është e konfiguruar, përgjigja kthehet me HTTP 200 dhe `status: false`, me arsyen te `errors`.
| Field | Tipi | Përshkrimi |
|---|---|---|
| status | boolean | |
| data | object | |
| data.date | string | Dita e raportit, `YYYY-MM-DD` |
| data.currency | string | Monedha e shumave, gjithmonë `ALL` |
| data.opening | number | Paratë me të cilat nisi turni, në lekë: gjendja e deklaruar në hapjen e ditës, minus zbrazja e arkës e bërë po atë ditë para hapjes, kur biznesi e rideklaron gjendjen |
| data.closing | number | Gjendja e arkës në mbarim të ditës sipas librit të fature.al, në lekë: shuma e të gjitha veprimeve të arkës dhe e të gjitha faturave cash të këtij TCR-i që nga fillimi deri në mbarim të ditës, me çdo mënyrë pagese, jo vetëm me para në dorë |
| data.closing_total | number, nullable | Paratë e numëruara dhe të nxjerra nga arka në mbylljen e turnit, në lekë, si vlerë pozitive; `null` kur turni nuk është mbyllur ende ose arka nuk u hap atë ditë |
| data.expected_closing | number | Sa duhet të ketë arka në para në dorë po të jetë regjistruar gjithçka, në lekë: `opening` plus shitjet e turnit me `BANKNOTE` plus `movements.deposits_total` minus `movements.withdrawals_total`. Diferenca me `closing_total` është ajo që kërkon rakordimi |
| data.opened_at | string, nullable | Data dhe ora e hapjes së turnit, ISO 8601 me zonën orare; `null` kur arka nuk u hap atë ditë |
| data.closed_at | string, nullable | Data dhe ora e mbylljes së turnit, ISO 8601 me zonën orare; `null` kur turni është ende i hapur ose arka nuk u hap atë ditë |
| data.tcr | string, nullable | Kodi TCR i pajisjes fiskale të përdoruesit; `null` kur pajisja nuk ka ende kod |
| data.operator | string | Emri i plotë i përdoruesit të token-it; bosh kur përdoruesi nuk ka emër |
| data.sales | object | Totalet e shitjeve të turnit |
| data.sales.invoice_count | integer | Numri i faturave të turnit, secila një herë, pavarësisht me sa mënyra u pagua |
| data.sales.gross_total | number | Vlera bruto e tyre, në lekë: shuma e `sales_by_method[].gross` |
| data.sales.net_total | number | Vlera neto (pa TVSH), në lekë |
| data.sales.vat_total | number | TVSH-ja, në lekë |
| data.sales_by_method | array | Shitjet e turnit sipas mënyrës së pagesës që i shleu, nga bruto më e madhe: `BANKNOTE`, `CARD`, `CHECK`, `SVOUCHER` ose `COMPANY` |
| data.sales_by_method[].method | string | Kodi i mënyrës së pagesës, ai i CIS-it: `BANKNOTE`, `CARD`, `CHECK`, `SVOUCHER`, `COMPANY` te faturat cash; `ACCOUNT`, `TRANSFER`, `COMPENSATION`, `FACTORING`, `KIND`, `WAIVER`, `OTHER` te faturat jo-cash dhe e-faturat. `OTHER` edhe kur fatura nuk mban mënyrë pagese |
| data.sales_by_method[].count | integer | Sa fatura u shlyen, plotësisht ose pjesërisht, me këtë mënyrë |
| data.sales_by_method[].gross | number | Shuma bruto e shlyer me këtë mënyrë, në lekë |
| data.sales_by_method[].net | number | Pjesa neto (pa TVSH), në lekë. Te faturat e ndara ndahet në përpjesëtim me bruton |
| data.sales_by_method[].vat | number | Pjesa e TVSH-së, në lekë, e ndarë po njësoj |
| data.products_sold | array | Produktet e shitura në turn, nga vlera bruto më e madhe |
| data.products_sold[].product_name | string | Emri i produktit siç është shkruar në faturë |
| data.products_sold[].product_code | string, nullable | Kodi i produktit në faturë; `null` kur rreshtat nuk mbajnë kod |
| data.products_sold[].quantity | number | Sasia e shitur gjithsej, me deri në tre shifra pas presjes |
| data.products_sold[].unit | string, nullable | Njësia e matjes në faturë; `null` kur rreshtat nuk mbajnë njësi |
| data.products_sold[].unit_price | number | Çmimi i njësisë me TVSH, pas zbritjes së rreshtit, në lekë |
| data.products_sold[].gross | number | Vlera bruto (me TVSH) e shitur, në lekë |
| data.products_sold[].net | number | Vlera neto (pa TVSH), në lekë |
| data.products_sold[].vat | number | TVSH-ja, në lekë |
| data.products_sold[].vat_rate | integer | Shkalla e TVSH-së në përqind, numër i plotë: `20`, `10`, `6` ose `0` |
| data.movements | object | Lëvizjet e parave të turnit, me totalet dhe listën e veprimeve |
| data.movements.deposits_count | integer | Sa hyrje parash (`MONEY_IN`) u regjistruan |
| data.movements.deposits_total | number | Shuma e hyrjeve, në lekë |
| data.movements.withdrawals_count | integer | Sa dalje parash (`MONEY_OUT`) u regjistruan |
| data.movements.withdrawals_total | number | Shuma e daljeve, në lekë, si vlerë pozitive |
| data.movements.items | array | Veprimet e turnit në rend kronologjik |
| data.movements.items[].type | string | `DEPOSIT` hyrje parash, `WITHDRAWAL` dalje |
| data.movements.items[].amount | number | Shuma, në lekë, gjithmonë pozitive; drejtimin e jep `type` |
| data.movements.items[].description | any | Përshkrimi i veprimit siç u shkrua; hapja dhe mbyllja e arkës vijnë me përshkrimet e tyre standarde, `Hapje e gjendjes fillestare` dhe `Mbyllje turni/xhiro ditore`. `null` kur veprimi nuk mban përshkrim |
| data.movements.items[].time | any | Data dhe ora e veprimit, ISO 8601 me zonën orare; `null` kur veprimi nuk mban orë |
| data.movements.items[].cash_action_no | any | Numri i veprimit në arkë, në formën `numër/vit/TCR`: sa veprime të këtij tipi ka bërë pajisja atë vit. `null` kur veprimi nuk mban numër |
401 Unauthenticated
| Field | Tipi | Përshkrimi |
|---|---|---|
| message | string |
422 `date` 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` |
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/reports/cash-register/closing' \
-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/cash-register/closing');
$data = $response->json();
use GuzzleHttp\Client;
$client = new Client();
$response = $client->request('GET', 'https://fature.al/api/v1/reports/cash-register/closing', [
'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/cash-register/closing', {
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": {
"date": "2026-09-13",
"currency": "ALL",
"opening": 5000,
"closing": 68450,
"closing_total": 67900,
"expected_closing": 68450,
"opened_at": "2026-09-13T08:02:11+02:00",
"closed_at": "2026-09-13T21:47:30+02:00",
"tcr": "ab123cd456",
"operator": "Arben Hoxha",
"sales": {
"invoice_count": 96,
"gross_total": 87300,
"net_total": 72750,
"vat_total": 14550
},
"sales_by_method": [
{
"method": "BANKNOTE",
"count": 318,
"gross": 1210400,
"net": 1008666.67,
"vat": 201733.33
}
],
"products_sold": [
{
"product_name": "Kafe espresso",
"product_code": "KF-001",
"quantity": 143,
"unit": "copë",
"unit_price": 150,
"gross": 21450,
"net": 17875,
"vat": 3575,
"vat_rate": 20
}
],
"movements": {
"deposits_count": 1,
"deposits_total": 3000,
"withdrawals_count": 1,
"withdrawals_total": 2000,
"items": [
{
"type": "DEPOSIT",
"amount": 3000,
"description": "Kusur për turnin",
"time": "2026-09-13T08:05:40+02:00",
"cash_action_no": "3/2026/ab123cd456"
}
]
}
}
}
{
"message": "Unauthenticated."
}
{
"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"
]
}