/api/v2/clients/{id}
Requires authentication
Rate limited by the `api-global` limiter
v2
Send a bearer token, plus the X-Client-Id and X-Client-Secret headers in the Authorization header.
Përditëson një klient me PATCH dhe me të njëjtin body si krijimi, me një kufizim: type
nuk ndryshon. Një kompani nuk bëhet person dhe as e kundërta; një type i ndryshëm nga ai
ekzistues refuzohet me 422.
Një kërkesë e dytë nga i njëjti token, ndërsa e para nuk ka mbaruar, refuzohet menjëherë me
429.
URL-ja e plotë: https://fature.al/api/v2/clients/{id}
Path parameters
| Name | Tipi | E detyrueshme | Përshkrimi |
|---|---|---|---|
| id | integer | yes | Id-ja e klientit. |
Body parameters
| Name | Tipi | E detyrueshme | Përshkrimi |
|---|---|---|---|
| type | string, one of company, person | yes | Lloji i klientit: `company` ose `person`. I detyrueshëm; vendos cili objekt plotësohet. Në përditësim nuk ndryshohet: një `type` i ndryshëm nga ai ekzistues refuzohet me `422`. |
| company | object | yes | Të dhënat e kompanisë. Të detyrueshme kur `type` është `company`. Required depending on type. |
| company.name | string, maxLength 255, nullable | yes | Emri i kompanisë. I detyrueshëm për `company`. Required depending on type. |
| company.category | string, one of business, bank, exchange, nullable | no | Kategoria e kompanisë: `business`, `bank` ose `exchange`. |
| company.id | object | yes | Identifikuesi i kompanisë, si objekt me `type` dhe `value`. I detyrueshëm për `company`. Required depending on type. |
| company.id.type | string, one of nuis, vat, tax | yes | Lloji i identifikuesit: `nuis` për një biznes shqiptar, `vat` ose `tax` për një biznes të huaj. Required when company.id is present. |
| company.id.value | string, maxLength 20 | yes | Vlera e identifikuesit, p.sh. NIPT-i kur `type` është `nuis`. Deri në 20 karaktere. Required when company.id is present. |
| person | object | yes | Të dhënat e personit. Të detyrueshme kur `type` është `person`. Required depending on type. |
| person.first_name | string, maxLength 255, nullable | yes | Emri. I detyrueshëm për `person`. Required depending on type. |
| person.last_name | string, maxLength 255, nullable | yes | Mbiemri. I detyrueshëm për `person`. Required depending on type. |
| person.birthday | string<date-time>, nullable | no | Data e lindjes, `YYYY-MM-DD`. |
| person.id | object | yes | Dokumenti i identifikimit, si objekt me `type` dhe `value`. I detyrueshëm për `person`. Required depending on type. |
| person.id.type | string, one of id, passport, social | yes | Lloji i dokumentit: `id` kartë identiteti, `passport` pasaportë, `social` numër i sigurimeve shoqërore. Required when person.id is present. |
| person.id.value | string, maxLength 255 | yes | Numri i dokumentit. Required when person.id is present. |
| address | object, nullable | no | Adresa e klientit. Opsionale, e njëjta për të dy llojet. |
| address.line | string, maxLength 255, nullable | no | Rruga dhe numri. |
| address.city | string, maxLength 50, nullable | no | Qyteti. |
| address.country | string, minLength 3, maxLength 3, nullable | no | Shteti, kod ISO 3166-1 alpha-3. Pa të merret `ALB`. |
| contact | object, nullable | no | Kontaktet e klientit. Opsionale. |
| contact.phone | string, maxLength 255, nullable | no | Telefoni. |
| contact.email | string<email>, maxLength 255, nullable | no | Email-i. |
| customer_number | string, maxLength 30, nullable | no | Numri i klientit në sistemin tuaj, nëse mbani një të tillë. |
Përgjigjet
200 Klienti i përditësuar te `data.client`, i plotë, jo vetëm fushat e dërguara.
| Field | Tipi | Përshkrimi |
|---|---|---|
| status | boolean | |
| data | object | |
| data.client | object | |
| data.client.id | integer | Id-ja e klientit në fature.al |
| data.client.type | string | `company` ose `person` |
| data.client.company | object, nullable | I plotësuar kur `type` është `company`, përndryshe null |
| data.client.company.name | string, nullable | Emri i kompanisë |
| data.client.company.category | string, nullable | `business`, `bank` ose `exchange`; null kur kompania nuk është klasifikuar |
| data.client.company.id | object | Identifikuesi fiskal i kompanisë, zakonisht NIPT-i |
| data.client.company.id.type | any | `nuis`, `vat` ose `tax` te një kompani; `id`, `passport` ose `social` te një person |
| data.client.company.id.value | any | Vetë identifikuesi; null kur klienti nuk ka asnjë të regjistruar |
| data.client.person | object, nullable | I plotësuar kur `type` është `person`, përndryshe null |
| data.client.person.first_name | string, nullable | Emri |
| data.client.person.last_name | string, nullable | Mbiemri |
| data.client.person.birthday | string, nullable | Datëlindja, `YYYY-MM-DD` |
| data.client.person.id | object | Dokumenti i identifikimit të personit |
| data.client.person.id.type | any | `nuis`, `vat` ose `tax` te një kompani; `id`, `passport` ose `social` te një person |
| data.client.person.id.value | any | Vetë identifikuesi; null kur klienti nuk ka asnjë të regjistruar |
| data.client.address | object | Adresa e klientit |
| data.client.address.line | string, nullable | Rruga dhe numri |
| data.client.address.city | string, nullable | Qyteti |
| data.client.address.country | string, nullable | Kodi i shtetit, ISO 3166-1 alpha-3 |
| data.client.contact | object | Telefoni dhe email-i i klientit |
| data.client.contact.phone | string, nullable | Numri i telefonit |
| data.client.contact.email | string, nullable | Adresa e email-it |
| data.client.customer_number | string, nullable | Referenca juaj për këtë klient, kur e keni dhënë |
| data.client.verified | boolean | true kur identifikuesi i klientit është konfirmuar te administrata tatimore |
| data.client.created_at | string, nullable | Data dhe ora e krijimit, ISO 8601 |
| data.client.updated_at | string, nullable | Data dhe ora e ndryshimit të fundit, ISO 8601 |
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` |
404 Klienti 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` |
409 Ekziston tashmë një klient me të njëjtat të dhëna.
| 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 një `type` i ndryshëm nga ai ekzistues 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` |
Shembull kërkese
curl -X PATCH 'https://fature.al/api/v2/clients/42' \
-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 '{
"type": "company",
"company": {
"name": "Jane Doe",
"category": "business",
"id": {
"type": "nuis",
"value": "value"
}
},
"person": {
"first_name": "Jane",
"last_name": "Doe",
"birthday": "2026-01-15T09:30:00Z",
"id": {
"type": "id",
"value": "value"
}
},
"address": {
"line": "line",
"city": "Berlin",
"country": "USx"
},
"contact": {
"phone": "+15551234567",
"email": "[email protected]"
},
"customer_number": "CL-00412"
}'
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',
])->patch('https://fature.al/api/v2/clients/42', [
'type' => 'company',
'company' => [
'name' => 'Jane Doe',
'category' => 'business',
'id' => [
'type' => 'nuis',
'value' => 'value',
],
],
'person' => [
'first_name' => 'Jane',
'last_name' => 'Doe',
'birthday' => '2026-01-15T09:30:00Z',
'id' => [
'type' => 'id',
'value' => 'value',
],
],
'address' => [
'line' => 'line',
'city' => 'Berlin',
'country' => 'USx',
],
'contact' => [
'phone' => '+15551234567',
'email' => '[email protected]',
],
'customer_number' => 'CL-00412',
]);
$data = $response->json();
use GuzzleHttp\Client;
$client = new Client();
$response = $client->request('PATCH', 'https://fature.al/api/v2/clients/42', [
'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' => [
'type' => 'company',
'company' => [
'name' => 'Jane Doe',
'category' => 'business',
'id' => [
'type' => 'nuis',
'value' => 'value',
],
],
'person' => [
'first_name' => 'Jane',
'last_name' => 'Doe',
'birthday' => '2026-01-15T09:30:00Z',
'id' => [
'type' => 'id',
'value' => 'value',
],
],
'address' => [
'line' => 'line',
'city' => 'Berlin',
'country' => 'USx',
],
'contact' => [
'phone' => '+15551234567',
'email' => '[email protected]',
],
'customer_number' => 'CL-00412',
],
]);
$data = json_decode((string) $response->getBody(), true);
const response = await fetch('https://fature.al/api/v2/clients/42', {
method: 'PATCH',
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({
"type": "company",
"company": {
"name": "Jane Doe",
"category": "business",
"id": {
"type": "nuis",
"value": "value"
}
},
"person": {
"first_name": "Jane",
"last_name": "Doe",
"birthday": "2026-01-15T09:30:00Z",
"id": {
"type": "id",
"value": "value"
}
},
"address": {
"line": "line",
"city": "Berlin",
"country": "USx"
},
"contact": {
"phone": "+15551234567",
"email": "[email protected]"
},
"customer_number": "CL-00412"
})
});
const data = await response.json();
Shembull përgjigjeje
{
"status": true,
"data": {
"client": {
"id": 8123,
"type": "company",
"company": {
"name": "Alba Trade shpk",
"category": "business",
"id": {
"type": "nuis",
"value": "K91807012A"
}
},
"person": {
"first_name": "Arben",
"last_name": "Hoxha",
"birthday": "1985-04-21",
"id": {
"type": "nuis",
"value": "K91807012A"
}
},
"address": {
"line": "Rruga e Kavajës 12",
"city": "Tiranë",
"country": "ALB"
},
"contact": {
"phone": "+355 69 234 5678",
"email": "[email protected]"
},
"customer_number": "CL-0042",
"verified": true,
"created_at": "2026-03-02T09:30:00+01:00",
"updated_at": "2026-09-10T16:45:00+02:00"
}
}
}
{
"message": "Unauthenticated."
}
{
"status": false,
"message": "Te dhenat jo te sakta.",
"errors": [
"errors"
]
}
{
"status": false,
"message": "Te dhenat jo te sakta.",
"errors": [
"errors"
]
}
{
"status": false,
"message": "Te dhenat jo te sakta.",
"errors": [
"errors"
]
}
{
"success": false,
"message": "Te dhena jo te sakta",
"errors": []
}
{
"status": false,
"message": "Te dhenat jo te sakta.",
"errors": [
"errors"
]
}
{
"status": false,
"message": "Te dhenat jo te sakta.",
"errors": [
"errors"
]
}