fature.al është platforma e faturimit dhe fiskalizimit për bizneset në Shqipëri. Hap një llogari
Skip to content
fature.al API Menu

Regjistro një pajisje fiskale

POST /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, name dhe fromDate (YYYY-MM-DD) janë të detyrueshme. toDate mbyll 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
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"
}'
PHP (Laravel)
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();
PHP (Guzzle)
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);
JavaScript
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

200
{
    "status": true,
    "data": {
        "device": {
            "fiscalTcrCode": "ab123ab123"
        }
    }
}
401
{
    "message": "Unauthenticated."
}
403
{
    "status": false,
    "message": "Te dhenat jo te sakta.",
    "errors": [
        "errors"
    ]
}
422
{
    "success": false,
    "message": "Te dhena jo te sakta",
    "errors": []
}

Regjistrimi është falas.

Regjistrohu në fature.al

This page as Markdown, or the whole API as OpenAPI.