---
title: "Regjistro hyrje parash"
operation_id: "api.v2.cash-register.deposit"
method: POST
path: "/api/v2/cash-register/deposit"
group: "Arka fiskale"
api_version: "v2"
authenticated: true
canonical: "https://fature.al/api-reference/endpoints/api-v2-cash-register-deposit.html"
---

# Regjistro hyrje parash

Pjesë e dokumentacionit [fature.al API](/api-reference/index.html).

## POST /api/v2/cash-register/deposit

Regjistron para që hyjnë në arkë pa qenë shitje, si një arkëtim nga klienti ose një fond
fillestar, si veprim `MONEY_IN` në pajisjen fiskale (TCR) të përdoruesit të token-it.

Për një shitje lëshoni faturë cash, jo hyrje. Nëse dita nuk është hapur ende, hapet vetë me
`0`.

- `internalId` është i detyrueshëm.
- `amount` është në ALL dhe duhet të jetë më e madhe se `0`.
- `id_client`, kur dërgohet, duhet të jetë `id`-ja e një klienti të kompanisë suaj.
- Përdoruesi duhet të ketë një TCR.

### internalId

Ky është ndryshimi i vetëm nga [`POST /api/v1/cash-register/deposit`](/docs/api). Mbajeni unik
brenda kompanisë për vitin: një kërkesë e dytë me të njëjtin `internalId` nuk regjistron hyrje
të dytë, kthen veprimin e parë me `200`. Kështu riprovimi pas një timeout-i është i sigurt.
Një `internalId` i përdorur më parë për një dalje refuzohet me `409`.

Përgjigja mban `id`-në e veprimit, `internalId`, numrat e tij (`transaction_no`,
`cash_action_no`) dhe gjendjen fiskale (`fiscal_status`, `fiscal_uuid`, `fiscal_fic`). Kur
CIS-i nuk arrihet, veprimi ruhet dhe fiskalizohet vetë më vonë: përgjigja vjen e plotë, me
`fiscal_status: UNFISCALIZED`.

Ndryshuar që nga `v1`:

| What changed | v1 | v2 |
| --- | --- | --- |
| body `internalId` | — | string, maxLength 255, required |
| 200 `data.internalId` | — | string |
| 409 | not documented | documented |

URL-ja e plotë: `https://fature.al/api/v2/cash-register/deposit`

Versioni i API-t: `v2`.

Identifikimi: i detyrueshëm (bearer token, plus the `X-Client-Id` and `X-Client-Secret` headers).

### Fushat e body-t

| Fusha | Tipi | E detyrueshme | Përshkrimi |
| --- | --- | --- | --- |
| `internalId` | string, maxLength 255 | po | Identifikuesi i veprimit në sistemin tuaj, unik brenda kompanisë për vitin; shërben edhe si çelës idempotence. I detyrueshëm. |
| `amount` | number | po | Shuma, gjithmonë pozitive, në ALL. Hyrje apo dalje e vendos endpoint-i që thirrni, jo shenja e numrit. |
| `description` | string, maxLength 255, nullable | jo | Përshkrimi i veprimit. |
| `third_party` | string, maxLength 255, nullable | jo | Pala e tretë e veprimit: kush i solli ose kush i mori paratë. |
| `id_client` | integer, nullable | jo | 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. |

### Shembull kërkese

```bash
curl -X POST 'https://fature.al/api/v2/cash-register/deposit' \
  -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": "ARKA-2026-000318",
    "amount": 1500,
    "description": "Arketim nga klienti",
    "third_party": "Klienti XYZ",
    "id_client": 42
}'
```

### Përgjigjet

**200**: Kur përdoruesi nuk ka pajisje fiskale, 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`.

| Fusha | Tipi | Përshkrimi |
| --- | --- | --- |
| `status` | boolean |  |
| `data` | object |  |
| `data.id` | integer | Id-ja e veprimit në fature.al |
| `data.internalId` | string | Identifikuesi i veprimit në sistemin tuaj, ai që dërguat te `internalId` |
| `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) |
| `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) |
| `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ë |
| `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 |

```json
{
    "status": true,
    "data": {
        "id": 5120,
        "internalId": "ARKA-2026-000318",
        "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**: Unauthenticated

| Fusha | Tipi | Përshkrimi |
| --- | --- | --- |
| `message` | string |  |

```json
{
    "message": "Unauthenticated."
}
```

**409**: Një kërkesë me këtë `internalId` është ende në proces, ose `internalId` është përdorur për një dalje. Arsyeja është te `message`.

| Fusha | 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` |

```json
{
    "status": false,
    "message": "Te dhenat jo te sakta.",
    "errors": [
        "errors"
    ]
}
```

**422**: Të dhënat nuk kaluan validimin, `internalId` që mungon përfshirë. Kjo përgjigje përdor fushën `success`, jo `status`, dhe `errors` është objekt sipas fushës.

| Fusha | 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` |

```json
{
    "success": false,
    "message": "Te dhena jo te sakta",
    "errors": []
}
```
