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

Lësho faturë përmbledhëse

POST /api/v1/invoice/summary 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.

Mbyll pagesën e një ose më shumë faturave porosi me një dokument të vetëm, të lëshuar nga TCR-ja e përdoruesit.

  • order_invoices mban iic-të e porosive që po mbyllen, të paktën një. Duhet të jenë fatura porosi të kësaj kompanie, ende të pambyllura; ndryshe kërkesa refuzohet me 400 dhe errors thotë cila.
  • Rreshtat nuk dërgohen: merren nga vetë porositë, me zbritjet e tyre.
  • payment_method pranon vetëm BANKNOTE ose CARD.
  • Zbritja e tavolinës vendoset këtu, me invoice_discount_type dhe invoice_discount_value.

Përgjigja i liston porositë e mbyllura te settledOrderInvoices.

URL-ja e plotë: https://fature.al/api/v1/invoice/summary

Body parameters

Name Tipi E detyrueshme Përshkrimi
internalId string yes Identifikuesi i faturës në sistemin tuaj; shërben edhe si çelës idempotence. I detyrueshëm.
payment_method string, one of BANKNOTE, CARD yes Mënyra e pagesës: `BANKNOTE` ose `CARD`. E detyrueshme.
order_invoices array yes IIC-të e faturave porosi që po mbyllen, të paktën një. Rreshtat e përmbledhëses merren nga këto porosi, prandaj nuk dërgohen në kërkesë.
currency string, nullable no Monedha e faturës, kod ISO 4217; pa të merret ALL.
exchange_rate number, nullable no Sa lekë vlen një njësi e monedhës së faturës. Pa të merret 1.
supply_start_date string, nullable no Fillimi i periudhës së furnizimit, `YYYY-MM-DD`, për fatura që mbulojnë një interval.
supply_end_date string, nullable no Fundi i periudhës së furnizimit, `YYYY-MM-DD`.
invoice_discount_type string, one of percent, amount, nullable no Si lexohet `invoice_discount_value`: `percent` si përqindje, `amount` si vlerë fikse me TVSH. Zbritja mbi të gjithë faturën vendoset te përmbledhësja, jo te porositë, të cilat nuk e pranojnë; zbritjet e rreshtave vijnë bashkë me rreshtat që kopjohen nga porositë. Punon vetëm në çift me `invoice_discount_value`. Njëra pa tjetrën injorohet në heshtje dhe fatura del pa zbritje.
invoice_discount_value number, min 0, nullable no Vlera e zbritjes, e lexuar sipas `invoice_discount_type`: përqindje deri në 100 kur tipi është `percent`; vlerë me TVSH në monedhën e faturës, deri në totalin e përmbledhëses, kur tipi është `amount`. Zeroja e lë faturën pa zbritje.

Përgjigjet

200 Kur përdoruesi nuk ka pajisje fiskale, ose kur fatura refuzohet pas validimit nga CIS-i ose gjatë ruajtjes, përgjigja kthehet me HTTP 200 dhe `status: false`; arsyeja është te `message`.

Field Tipi Përshkrimi
status boolean
data object
data.invoice object
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
data.invoice.isSummaryInvoice boolean Gjithmonë true; çelësi e shënon faturën si përmbledhëse
data.invoice.settledOrderInvoices array Porositë që u mbyllën me këtë faturë
data.invoice.settledOrderInvoices[].id integer Id-ja e porosisë në fature.al
data.invoice.settledOrderInvoices[].number string, nullable Numri i faturës së porosisë
data.invoice.settledOrderInvoices[].date string Kur u lëshua porosia, `YYYY-MM-DD HH:MM:SS`
data.invoice.settledOrderInvoices[].amountGross number Totali i porosisë me TVSH, në monedhën e saj
data.invoice.settledOrderInvoices[].currency string, nullable Monedha e porosisë, ISO 4217

400 Një porosi nuk u gjet, nuk është faturë porosi, ose është mbyllur tashmë; ose të dhënat janë të paplota për fiskalizim. `errors` thotë saktë cila. Fatura nuk u ruajt; riprovoni me të njëjtin `internalId`.

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`

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`

409 Një kërkesë me këtë `internalId` është ende në proces. Prisni pak dhe riprovoni, ose lexoni gjendjen me `POST /invoice/details/{internalId}`.

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. Vetëm `internalId` që mungon kthehet me formatin standard të gabimit.

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`

503 Shërbimi i fiskalizimit nuk u arrit dhe fatura nuk u ruajt. Riprovoni me të njëjtin `internalId`.

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/summary' \
  -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 '{
    "internalId": "SUMMARY-2026-000021",
    "payment_method": "CARD",
    "order_invoices": [
        "8FE72E2ACD1C500A83F8C89B4E2E3E1D"
    ],
    "currency": "ALL",
    "exchange_rate": 100.5,
    "supply_start_date": "2026-09-01",
    "supply_end_date": "2026-09-30",
    "invoice_discount_type": "percent",
    "invoice_discount_value": 10
}'
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/summary', [
    'internalId' => 'SUMMARY-2026-000021',
    'payment_method' => 'CARD',
    'order_invoices' => [
        '8FE72E2ACD1C500A83F8C89B4E2E3E1D',
    ],
    'currency' => 'ALL',
    'exchange_rate' => 100.5,
    'supply_start_date' => '2026-09-01',
    'supply_end_date' => '2026-09-30',
    'invoice_discount_type' => 'percent',
    'invoice_discount_value' => 10,
]);

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

$client = new Client();

$response = $client->request('POST', 'https://fature.al/api/v1/invoice/summary', [
    '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' => [
        'internalId' => 'SUMMARY-2026-000021',
        'payment_method' => 'CARD',
        'order_invoices' => [
            '8FE72E2ACD1C500A83F8C89B4E2E3E1D',
        ],
        'currency' => 'ALL',
        'exchange_rate' => 100.5,
        'supply_start_date' => '2026-09-01',
        'supply_end_date' => '2026-09-30',
        'invoice_discount_type' => 'percent',
        'invoice_discount_value' => 10,
    ],
]);

$data = json_decode((string) $response->getBody(), true);
JavaScript
const response = await fetch('https://fature.al/api/v1/invoice/summary', {
  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({
      "internalId": "SUMMARY-2026-000021",
      "payment_method": "CARD",
      "order_invoices": [
          "8FE72E2ACD1C500A83F8C89B4E2E3E1D"
      ],
      "currency": "ALL",
      "exchange_rate": 100.5,
      "supply_start_date": "2026-09-01",
      "supply_end_date": "2026-09-30",
      "invoice_discount_type": "percent",
      "invoice_discount_value": 10
  })
});

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",
            "isSummaryInvoice": true,
            "settledOrderInvoices": [
                {
                    "id": 40298,
                    "number": "9/2026",
                    "date": "2026-09-12 18:20:00",
                    "amountGross": 540,
                    "currency": "EUR"
                }
            ]
        }
    }
}
400
{
    "status": false,
    "message": "Te dhenat jo te sakta.",
    "errors": [
        "errors"
    ]
}
401
{
    "message": "Unauthenticated."
}
403
{
    "status": false,
    "message": "Te dhenat jo te sakta.",
    "errors": [
        "errors"
    ]
}
409
{
    "status": false,
    "message": "Te dhenat jo te sakta.",
    "errors": [
        "errors"
    ]
}
422
{
    "success": false,
    "message": "Te dhena jo te sakta",
    "errors": []
}
429
{
    "status": false,
    "message": "Te dhenat jo te sakta.",
    "errors": [
        "errors"
    ]
}
500
{
    "status": false,
    "message": "Te dhenat jo te sakta.",
    "errors": [
        "errors"
    ]
}
503
{
    "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.