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

Anulo një faturë sipas id

POST /api/v1/invoice/cancel/{id} 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.

Anulon faturën duke lëshuar te CIS-i një dokument korrigjues, i cili merr numër të ri rendor. Origjinali shënohet i anuluar vetëm kur anulimet e mbulojnë të gjithin.

I plotë ose i pjesshëm#

Body Çfarë ndodh
Bosh Anulohet e gjithë fatura, sido që të jetë lloji i saj
Me lines Anulohet vetëm pjesa e dërguar. Vetëm për faturat cash

Rregullat e anulimit të pjesshëm#

  • Çdo rresht duhet të ekzistojë në faturën origjinale me të njëjtin product_code dhe product_name.
  • Sasia mund vetëm të ulet ose të mbetet e njëjtë; produktet që nuk i dërgoni mbeten të shitura.
  • Kur i njëjti produkt është faturuar në dy rreshta me çmime të ndryshme, shtoni price për të zgjedhur rreshtin.
  • Një faturë me zbritje mbi të gjithë faturën anulohet vetëm e plotë: zbritja është shpërndarë mbi të gjitha normat e TVSH-së, dhe një pjesë e rreshtave nuk e mban dot pjesën e vet pa e gabuar TVSH-në.

Përgjigja është dokumenti korrigjues, me iic dhe fic të vetat. Kur CIS-i nuk arrihet, anulimi ruhet me fic: null dhe fiskalizohet vetë më vonë. Anulimet kanë kufirin e tyre të kërkesave: 30 në minutë dhe 600 në orë për token.

URL-ja e plotë: https://fature.al/api/v1/invoice/cancel/{id}

Path parameters

Name Tipi E detyrueshme Përshkrimi
id integer yes Id-ja e faturës në fature.al.

Body parameters

Name Tipi E detyrueshme Përshkrimi
lines array no Rreshtat që anulohen. Pa të anulohet e gjithë fatura; me të anulohet vetëm pjesa e dërguar, e mundur vetëm për faturat cash. Çdo rresht duhet të ekzistojë në faturën origjinale me të njëjtin `product_code` dhe `product_name`, dhe sasia mund vetëm të ulet. Një faturë e lëshuar me zbritje mbi të gjithë faturën nuk pranon anulim të pjesshëm: dërgojeni kërkesën pa `lines`, që të anulohet e plotë.
lines[].product_name string yes Emri i produktit, siç është në faturën origjinale.
lines[].product_code string yes Kodi i produktit, siç është në faturën origjinale.
lines[].quantity number yes Sasia që kthehet, më e madhe se 0 dhe jo më e madhe se ajo e faturës origjinale.
lines[].price number, nullable no Çmimi për njësi, me TVSH. Duhet vetëm kur i njëjti produkt është faturuar në dy rreshta me çmime të ndryshme, që të dallohet cili rresht anulohet.

Përgjigjet

200 Dokumenti korrigjues, me `iic` dhe `fic` të vetat; `fic` është `null` kur CIS-i nuk u arrit dhe fiskalizimi do të përfundojë vetë.

Field Tipi Përshkrimi
status boolean
data object
data.invoice object, or OrderInvoiceIssueResult, SummaryInvoiceIssueResult
data.invoice.id integer Id-ja e faturës në fature.al. Ruajeni pranë `internalId` tuaj
data.invoice.number string, nullable Numri i faturës, si `12/2026`
data.invoice.iic string, nullable Kodi identifikues i faturës, IIC (NSLF)
data.invoice.fic string, nullable Kodi që kthen CIS-i kur regjistron faturën, FIC (NIVF). Null sa kohë fatura pret fiskalizimin e shtyrë
data.invoice.tcrCode string, nullable Kodi TCR i pajisjes fiskale që e lëshoi; null te faturat që nuk lëshohen nga një TCR
data.invoice.businessCode string, nullable Kodi i njësisë së biznesit nën të cilën u lëshua fatura
data.invoice.operatorCode string, nullable Kodi i operatorit që e lëshoi faturën
data.invoice.fiscalizedAt string Data dhe ora e krijimit të faturës, `YYYY-MM-DD HH:MM:SS`, orë lokale
data.invoice.verifyURL string, nullable URL-ja e verifikimit te administrata tatimore, ajo që hap kodi QR
data.invoice.pdf string URL-ja për të shkarkuar dokumentin. Te një e-faturë që ka tashmë EIC, tregon PDF-në zyrtare të platformës së e-faturave në vend të asaj të fature.al
data.invoice.eic string, nullable Kodi i e-faturës në platformën e e-faturave, EIC. Çelësi është i pranishëm vetëm te një e-faturë që e ka tashmë; te çdo faturë tjetër mungon fare, nuk vjen null

401 Unauthenticated

Field Tipi Përshkrimi
message string

404 Fatura nuk u gjet, ose nuk i përket kompanisë suaj.

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 Fatura nuk mund të anulohet në gjendjen e saj aktuale, ose rreshtat e dërguar nuk përputhen me origjinalin. `errors` thotë pse.

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`

429 Kufiri i anulimeve u arrit, ose një anulim tjetër i të njëjtit tip është ende në proces. Nga kufiri i anulimeve përgjigja mban vetëm `message` dhe header-in `Retry-After`.

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, përfshirë rastin kur anulimi nuk u regjistrua dot te CIS-i.

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
curl -X POST 'https://fature.al/api/v1/invoice/cancel/403' \
  -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 '{
    "lines": [
        {
            "product_name": "Jane Doe",
            "product_code": "product code",
            "quantity": 2,
            "price": 1999
        }
    ]
}'
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/invoice/cancel/403', [
    'lines' => [
        [
            'product_name' => 'Jane Doe',
            'product_code' => 'product code',
            'quantity' => 2,
            'price' => 1999,
        ],
    ],
]);

$data = $response->json();
PHP (Guzzle)
use GuzzleHttp\Client;

$client = new Client();

$response = $client->request('POST', 'https://fature.al/api/v1/invoice/cancel/403', [
    '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' => [
        'lines' => [
            [
                'product_name' => 'Jane Doe',
                'product_code' => 'product code',
                'quantity' => 2,
                'price' => 1999,
            ],
        ],
    ],
]);

$data = json_decode((string) $response->getBody(), true);
JavaScript
const response = await fetch('https://fature.al/api/v1/invoice/cancel/403', {
  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({
      "lines": [
          {
              "product_name": "Jane Doe",
              "product_code": "product code",
              "quantity": 2,
              "price": 1999
          }
      ]
  })
});

const data = await response.json();

Shembull përgjigjeje

200
{
    "status": true,
    "data": {
        "invoice": {
            "id": 40323,
            "number": "12/2026",
            "iic": "3C7E9A1F52B84D0E6A2C4F8B1D9E7A35",
            "fic": "2f6c1e8a-9b3d-4c7e-a5f1-0d8b6e4c2a91",
            "tcrCode": "xb131xb131",
            "businessCode": "bb123bb123",
            "operatorCode": "aa123aa123",
            "fiscalizedAt": "2026-09-13 10:15:00",
            "verifyURL": "https://efiskalizimi-app.tatime.gov.al/invoice-check/#/verify?iic=3C7E9A1F52B84D0E6A2C4F8B1D9E7A35&tin=L81306019C&crtd=2026-09-13T10:15:00+02:00&prc=53190.00",
            "pdf": "https://fature.al/api/v1/invoice/print/40323",
            "eic": "9b4e2d1c-6f7a-4b3c-8d2e-1f0a9c8b7d65"
        }
    }
}
401
{
    "message": "Unauthenticated."
}
404
{
    "status": false,
    "message": "Te dhenat jo te sakta.",
    "errors": [
        "errors"
    ]
}
422
{
    "status": false,
    "message": "Te dhenat jo te sakta.",
    "errors": [
        "errors"
    ]
}
429
{
    "status": false,
    "message": "Te dhenat jo te sakta.",
    "errors": [
        "errors"
    ]
}
500
{
    "status": false,
    "message": "Te dhenat jo te sakta.",
    "errors": [
        "errors"
    ]
}

Regjistrimi është falas.

Regjistrohu në fature.al

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