/api/v1/on-boarding/fiscal-device
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.
Regjistron një pajisje fiskale (TCR) te CIS-i për një njësi biznesi dhe kthen kodin e saj. Duhet vetëm për fatura cash; faturat jo-cash dhe e-faturat nuk kanë TCR.
- Bëhet pasi certifikata është ngarkuar dhe njësia ka
businessUnitCode; pa to CIS-i e refuzon regjistrimin. branchId,namedhefromDate(YYYY-MM-DD) janë të detyrueshme.toDatembyll pajisjen në atë datë; pa të pajisja mbetet aktive pa afat.- Kur njësia ka arritur numrin e pajisjeve aktive që i lejohet, kërkesa refuzohet me
403.
Ruani fiscalTcrCode dhe vendoseni te përdoruesi që do të lëshojë fatura cash, me
POST /on-boarding/user/{id}.
Kur CIS-i e refuzon regjistrimin, pajisja nuk ruhet dhe përgjigja kthehet me 200 dhe
status: false. Kur CIS-i nuk arrihet, pajisja gjithashtu nuk ruhet, por përgjigja kthehet
me status: true dhe fiscalTcrCode: null: kontrolloni vlerën, jo vetëm status, dhe
riprovoni më vonë.
URL-ja e plotë: https://fature.al/api/v1/on-boarding/fiscal-device
Body parameters
| Name | Tipi | E detyrueshme | Përshkrimi |
|---|---|---|---|
| branchId | integer | yes | Id-ja e njësisë së biznesit ku ndodhet pajisja, ajo që ju ktheu `POST /on-boarding/branch`. Çdo TCR i përket një njësie të vetme. E detyrueshme. |
| name | string, maxLength 255 | yes | Emri i pajisjes fiskale, ai që e dallon nga të tjerat në të njëjtën njësi. I detyrueshëm. |
| fromDate | string | yes | Data e fillimit, `YYYY-MM-DD`: nga kjo datë pajisja lëshon fatura. E detyrueshme. |
| toDate | string, nullable | no | Data e mbarimit, `YYYY-MM-DD`: deri kur pajisja është aktive. Pa të, pajisja mbetet aktive pa afat. |
Përgjigjet
200 Kur CIS-i e refuzon regjistrimin, ose kur ruajtja dështon, përgjigja kthehet me HTTP 200 dhe `status: false`; arsyeja është te `message` ose te `errors`. Kur CIS-i nuk arrihet, `status` është `true` dhe `fiscalTcrCode` është `null`.
| Field | Tipi | Përshkrimi |
|---|---|---|
| status | boolean | |
| data | object | |
| data.device | object | |
| data.device.fiscalTcrCode | string, nullable | Kodi TCR që i dha CIS-i pajisjes; vendoseni te përdoruesi me `POST /on-boarding/user/{id}`. null kur CIS-i nuk u arrit: pajisja nuk u ruajt, riprovoni më vonë |
401 Unauthenticated
| Field | Tipi | Përshkrimi |
|---|---|---|
| message | string |
403 Abonimi ka mbaruar, ose veprimi nuk lejohet për këtë llogari.
| 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 Të dhënat nuk kaluan validimin. 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` |
Shembull kërkese
curl -X POST 'https://fature.al/api/v1/on-boarding/fiscal-device' \
-H 'Authorization: Bearer YOUR_TOKEN' \
-H 'X-Client-Id: YOUR_CLIENT_ID' \
-H 'X-Client-Secret: YOUR_CLIENT_SECRET' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"branchId": 12,
"name": "Arka 1",
"fromDate": "2026-01-01",
"toDate": "2026-12-31"
}'
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',
'Content-Type' => 'application/json',
])->post('https://fature.al/api/v1/on-boarding/fiscal-device', [
'branchId' => 12,
'name' => 'Arka 1',
'fromDate' => '2026-01-01',
'toDate' => '2026-12-31',
]);
$data = $response->json();
use GuzzleHttp\Client;
$client = new Client();
$response = $client->request('POST', 'https://fature.al/api/v1/on-boarding/fiscal-device', [
'headers' => [
'Authorization' => 'Bearer YOUR_TOKEN',
'X-Client-Id' => 'YOUR_CLIENT_ID',
'X-Client-Secret' => 'YOUR_CLIENT_SECRET',
'Accept' => 'application/json',
'Content-Type' => 'application/json',
],
'json' => [
'branchId' => 12,
'name' => 'Arka 1',
'fromDate' => '2026-01-01',
'toDate' => '2026-12-31',
],
]);
$data = json_decode((string) $response->getBody(), true);
const response = await fetch('https://fature.al/api/v1/on-boarding/fiscal-device', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_TOKEN',
'X-Client-Id': 'YOUR_CLIENT_ID',
'X-Client-Secret': 'YOUR_CLIENT_SECRET',
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"branchId": 12,
"name": "Arka 1",
"fromDate": "2026-01-01",
"toDate": "2026-12-31"
})
});
const data = await response.json();
Shembull përgjigjeje
{
"status": true,
"data": {
"device": {
"fiscalTcrCode": "ab123ab123"
}
}
}
{
"message": "Unauthenticated."
}
{
"status": false,
"message": "Te dhenat jo te sakta.",
"errors": [
"errors"
]
}
{
"success": false,
"message": "Te dhena jo te sakta",
"errors": []
}