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 dalje parash

POST /api/v1/cash-register/withdraw 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 para që dalin nga arka, si një pagesë furnitori ose një tërheqje gjatë ditës, si veprim MONEY_OUT në pajisjen fiskale (TCR) të përdoruesit të token-it.

Për tërheqjen e gjithë gjendjes në fund të turnit përdorni POST /cash-register/close-balance. Nëse dita nuk është hapur ende, hapet vetë me 0.

  • amount është në ALL dhe duhet të jetë më e madhe se 0; shenja vjen nga endpoint-i, jo nga numri.
  • Arka duhet të ketë të paktën amount; kur nuk ka, dalja refuzohet.
  • id_client, kur dërgohet, duhet të jetë id-ja e një klienti të kompanisë suaj.
  • Përdoruesi duhet të ketë një TCR.

Përgjigja ka të njëjtin format si hyrja. Kur CIS-i nuk arrihet, veprimi ruhet dhe fiskalizohet vetë më vonë: përgjigja vjen me status: true, fiscal_status: UNFISCALISED dhe pa id; lexojeni më pas te GET /cash-register/actions.

URL-ja e plotë: https://fature.al/api/v1/cash-register/withdraw

Body parameters

Name Tipi E detyrueshme Përshkrimi
amount number yes Shuma, gjithmonë pozitive, në ALL. Hyrje apo dalje e vendos endpoint-i që thirrni, jo shenja e numrit.
description string, maxLength 255, nullable no Përshkrimi i veprimit.
third_party string, maxLength 255, nullable no Pala e tretë e veprimit: kush i solli ose kush i mori paratë.
id_client integer, nullable no Klienti: id-ja e një klienti tuajin në fature.al, për ta lidhur veprimin me të. Kthehet më pas në listën e veprimeve. Një id që nuk i përket kompanisë suaj refuzohet.

Përgjigjet

200 Kur përdoruesi nuk ka pajisje fiskale, kur arka nuk ka aq para sa `amount`, kur `id_client` nuk i përket kompanisë suaj, ose kur ruajtja dështon, përgjigja kthehet me HTTP 200 dhe `status: false`; arsyeja është te `message`.

Field Tipi Përshkrimi
status boolean
data object
data.id integer Id-ja e veprimit në fature.al. Mungon kur CIS-i nuk arrihej në momentin e thirrjes; lexojeni më pas te `GET /cash-register/actions`
data.action_type string Lloji i veprimit: `MONEY_IN` hyrje parash, nga `POST /cash-register/deposit`; `MONEY_OUT` dalje parash, nga `POST /cash-register/withdraw`
data.amount number Shuma e veprimit, gjithmonë pozitive, në lekë; drejtimin e jep `action_type`
data.currency string Kodi ISO 4217 i monedhës së veprimit. Nga API-ja veprimet regjistrohen vetëm në lekë, ndaj vjen gjithmonë `ALL`
data.transaction_date string Data e veprimit, `YYYY-MM-DD`: dita kur u regjistrua
data.transaction_no integer Numri rendor i veprimit brenda kompanisë: numëron të gjitha veprimet e arkës të kompanisë, të çdo tipi dhe të çdo pajisjeje fiskale (TCR). Mungon kur CIS-i nuk arrihej
data.cash_action_no string Numri i veprimit, `n/viti/kodi TCR`: `n` nis nga 1 çdo vit, veçmas për çdo tip veprimi dhe çdo pajisje fiskale (TCR). Mungon kur CIS-i nuk arrihej
data.fiscal_status string, nullable Gjendja fiskale: `FISCALIZED` kur CIS-i e ka regjistruar veprimin, `UNFISCALIZED` sa kohë pret fiskalizimin, të cilin fature.al e riprovon vetë. Kur CIS-i nuk arrihej në momentin e thirrjes, kjo përgjigje e sjell si `UNFISCALISED`
data.fiscal_uuid string, nullable UUID-ja që fature.al i cakton veprimit kur e dërgon te CIS-i, e njëjta që shkon si UUID i kërkesës `RegisterCashDeposit`. `null` kur veprimi nuk i është dërguar ende CIS-it
data.fiscal_fic string, nullable Kodi FCDC që kthen CIS-i kur regjistron veprimin. `null` sa kohë veprimi pret fiskalizimin; mbetet `null` edhe kur CIS-i u përgjigj me një nga gabimet 56, 63 ose 920, të cilat fature.al i mbyll si `FISCALIZED` pa kod
data.description string, nullable Përshkrimi i veprimit, ashtu siç u dërgua te `description`; `null` kur nuk u dërgua. Kur CIS-i nuk arrihej në momentin e thirrjes, vjen si string bosh në vend të `null`

401 Unauthenticated

Field Tipi Përshkrimi
message string

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/cash-register/withdraw' \
  -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 '{
    "amount": 1500,
    "description": "Arketim nga klienti",
    "third_party": "Klienti XYZ",
    "id_client": 42
}'
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/cash-register/withdraw', [
    'amount' => 1500,
    'description' => 'Arketim nga klienti',
    'third_party' => 'Klienti XYZ',
    'id_client' => 42,
]);

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

$client = new Client();

$response = $client->request('POST', 'https://fature.al/api/v1/cash-register/withdraw', [
    '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' => [
        'amount' => 1500,
        'description' => 'Arketim nga klienti',
        'third_party' => 'Klienti XYZ',
        'id_client' => 42,
    ],
]);

$data = json_decode((string) $response->getBody(), true);
JavaScript
const response = await fetch('https://fature.al/api/v1/cash-register/withdraw', {
  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({
      "amount": 1500,
      "description": "Arketim nga klienti",
      "third_party": "Klienti XYZ",
      "id_client": 42
  })
});

const data = await response.json();

Shembull përgjigjeje

200
{
    "status": true,
    "data": {
        "id": 5120,
        "action_type": "MONEY_IN",
        "amount": 1500,
        "currency": "ALL",
        "transaction_date": "2026-09-14",
        "transaction_no": 812,
        "cash_action_no": "12/2026/pp556gh743",
        "fiscal_status": "FISCALIZED",
        "fiscal_uuid": "3f2c9a4e-6b1d-4c8e-9a7f-2d5e8b1c4a60",
        "fiscal_fic": "b6e1f2a3-9c4d-4e5f-8a7b-1c2d3e4f5a6b",
        "description": "Arketim nga klienti"
    }
}
401
{
    "message": "Unauthenticated."
}
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.