Adóalanyok
Egy adóalany (taxpayer) egy NAV felé adatszolgáltatásra kötelezett vállalkozást képvisel. Minden nyugtát egy adóalanyhoz kell rendelni, és a NAV hitelesítő adatokat is adóalany-szinten tároljuk.
Adóalany létrehozása
curl -X POST https://api.fiscon.hu/v1/taxpayers \
-H "Authorization: Bearer fis_live_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"name": "Példa Kereskedelmi Kft.",
"tax_number": "12345678-2-42",
"country_code": "HU"
}'$curl = curl_init('https://api.fiscon.hu/v1/taxpayers');
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Példa Kereskedelmi Kft.',
'tax_number' => '12345678-2-42',
'country_code' => 'HU',
]),
CURLOPT_HTTPHEADER => [
'Authorization: Bearer fis_live_xxxxxxxxxxxxxxxx',
'Content-Type: application/json',
],
]);
$response = curl_exec($curl);
curl_close($curl);use Illuminate\Support\Facades\Http;
$taxpayer = Http::withToken(config('services.fiscon.key'))
->post('https://api.fiscon.hu/v1/taxpayers', [
'name' => 'Példa Kereskedelmi Kft.',
'tax_number' => '12345678-2-42',
'country_code' => 'HU',
])
->json();const response = await fetch('https://api.fiscon.hu/v1/taxpayers', {
method: 'POST',
headers: {
Authorization: 'Bearer fis_live_xxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'Példa Kereskedelmi Kft.',
tax_number: '12345678-2-42',
country_code: 'HU',
}),
});
const taxpayer = await response.json();Az aktív adóalanyok száma a szervezeted csomagjától függően korlátozott (Starter: 1, Business: 5, Platform: korlátlan). A keret betelte esetén a kérés 403 státusszal és PLAN_LIMIT_EXCEEDED hibakóddal tér vissza — lásd Hibakezelés.
Válasz
{
"id": "txp_01hz3k9c8v0000000000000000",
"name": "Példa Kereskedelmi Kft.",
"tax_number": "12345678-2-42",
"country_code": "HU",
"status": "active",
"created_at": "2026-09-02T14:00:00+02:00",
"updated_at": "2026-09-02T14:00:00+02:00"
}Állapotok (status)
| Érték | Jelentés |
|---|---|
active | Az adóalany aktív, nyugta küldhető rá. |
suspended | Az adóalany felfüggesztve — nyugta beküldés nem lehetséges rá, amíg vissza nem kerül aktív állapotba. |
Adóalanyok listázása
A lista status szerint szűrhető, és — a nyugtákkal ellentétben — kurzor alapú lapozást használ (limit, valamint a links.next URL-ben szereplő cursor paraméter) — lásd a Lapozás szakaszt.
curl "https://api.fiscon.hu/v1/taxpayers?status=active&limit=50" \
-H "Authorization: Bearer fis_live_xxxxxxxxxxxxxxxx"$curl = curl_init('https://api.fiscon.hu/v1/taxpayers?status=active&limit=50');
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer fis_live_xxxxxxxxxxxxxxxx',
],
]);
$response = curl_exec($curl);
curl_close($curl);use Illuminate\Support\Facades\Http;
$taxpayers = Http::withToken(config('services.fiscon.key'))
->get('https://api.fiscon.hu/v1/taxpayers', [
'status' => 'active',
'limit' => 50,
])
->json();const response = await fetch('https://api.fiscon.hu/v1/taxpayers?status=active&limit=50', {
headers: {
Authorization: 'Bearer fis_live_xxxxxxxxxxxxxxxx',
},
});
const taxpayers = await response.json();Adóalany lekérdezése
curl https://api.fiscon.hu/v1/taxpayers/txp_01hz3k9c8v0000000000000000 \
-H "Authorization: Bearer fis_live_xxxxxxxxxxxxxxxx"$curl = curl_init('https://api.fiscon.hu/v1/taxpayers/txp_01hz3k9c8v0000000000000000');
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer fis_live_xxxxxxxxxxxxxxxx',
],
]);
$response = curl_exec($curl);
curl_close($curl);use Illuminate\Support\Facades\Http;
$taxpayer = Http::withToken(config('services.fiscon.key'))
->get('https://api.fiscon.hu/v1/taxpayers/txp_01hz3k9c8v0000000000000000')
->json();const response = await fetch('https://api.fiscon.hu/v1/taxpayers/txp_01hz3k9c8v0000000000000000', {
headers: {
Authorization: 'Bearer fis_live_xxxxxxxxxxxxxxxx',
},
});
const taxpayer = await response.json();Adóalany frissítése
A végpont PATCH-szemantikájú: csak a ténylegesen megadott mezők módosulnak, a többi változatlan marad.
| Mező | Leírás |
|---|---|
name | Max. 255 karakter. |
tax_number | A nyugta-létrehozásnál ismertetett formátumban. |
country_code | Jelenleg csak HU fogadható el. |
status | active vagy suspended. |
curl -X PATCH https://api.fiscon.hu/v1/taxpayers/txp_01hz3k9c8v0000000000000000 \
-H "Authorization: Bearer fis_live_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"name": "Példa Kereskedelmi Kft. II.",
"tax_number": "12345678-2-42",
"country_code": "HU",
"status": "suspended"
}'$curl = curl_init('https://api.fiscon.hu/v1/taxpayers/txp_01hz3k9c8v0000000000000000');
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PATCH',
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Példa Kereskedelmi Kft. II.',
'tax_number' => '12345678-2-42',
'country_code' => 'HU',
'status' => 'suspended',
]),
CURLOPT_HTTPHEADER => [
'Authorization: Bearer fis_live_xxxxxxxxxxxxxxxx',
'Content-Type: application/json',
],
]);
$response = curl_exec($curl);
curl_close($curl);use Illuminate\Support\Facades\Http;
$taxpayer = Http::withToken(config('services.fiscon.key'))
->patch('https://api.fiscon.hu/v1/taxpayers/txp_01hz3k9c8v0000000000000000', [
'name' => 'Példa Kereskedelmi Kft. II.',
'tax_number' => '12345678-2-42',
'country_code' => 'HU',
'status' => 'suspended',
])
->json();const response = await fetch('https://api.fiscon.hu/v1/taxpayers/txp_01hz3k9c8v0000000000000000', {
method: 'PATCH',
headers: {
Authorization: 'Bearer fis_live_xxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'Példa Kereskedelmi Kft. II.',
tax_number: '12345678-2-42',
country_code: 'HU',
status: 'suspended',
}),
});
const taxpayer = await response.json();NAV hitelesítő adatok
Az adóalany NAV Online Számla technikai felhasználói hitelesítő adatait a credentials alvégponton lehet beállítani. Ezek mindig az éles NAV környezethez tartoznak — a sandbox környezetben nincs szükség valós hitelesítő adatra, mert a NAV-hívások szimuláltak.
A beállítás sikeres válasza a hitelesítő adatok aktuális status mezőjét adja vissza, amit a kapcsolat tesztelése végpont vagy egy tényleges nyugtabeküldés frissít:
{
"environment": "live",
"credential_version": 1,
"status": "pending",
"last_verified_at": null
}| Érték | Jelentés |
|---|---|
pending | A hitelesítő adatok be vannak állítva, de még nem lettek ellenőrizve a NAV felé. |
verified | A hitelesítő adatok érvényesnek bizonyultak egy sikeres NAV-kapcsolat során. |
invalid | A NAV elutasította a hitelesítő adatokat — nyugta beküldés előtt javítsd ki azokat. |
curl -X PUT https://api.fiscon.hu/v1/taxpayers/txp_01hz3k9c8v0000000000000000/credentials \
-H "Authorization: Bearer fis_live_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"login": "...",
"password": "...",
"signing_key": "...",
"exchange_key": "..."
}'$curl = curl_init('https://api.fiscon.hu/v1/taxpayers/txp_01hz3k9c8v0000000000000000/credentials');
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_POSTFIELDS => json_encode([
'login' => '...',
'password' => '...',
'signing_key' => '...',
'exchange_key' => '...',
]),
CURLOPT_HTTPHEADER => [
'Authorization: Bearer fis_live_xxxxxxxxxxxxxxxx',
'Content-Type: application/json',
],
]);
$response = curl_exec($curl);
curl_close($curl);use Illuminate\Support\Facades\Http;
Http::withToken(config('services.fiscon.key'))
->put('https://api.fiscon.hu/v1/taxpayers/txp_01hz3k9c8v0000000000000000/credentials', [
'login' => '...',
'password' => '...',
'signing_key' => '...',
'exchange_key' => '...',
]);await fetch('https://api.fiscon.hu/v1/taxpayers/txp_01hz3k9c8v0000000000000000/credentials', {
method: 'PUT',
headers: {
Authorization: 'Bearer fis_live_xxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
},
body: JSON.stringify({
login: '...',
password: '...',
signing_key: '...',
exchange_key: '...',
}),
});Kapcsolat tesztelése
A beállított hitelesítő adatok érvényességét egy próbakapcsolattal ellenőrizheted, mielőtt éles nyugtát küldenél be:
curl -X POST https://api.fiscon.hu/v1/taxpayers/txp_01hz3k9c8v0000000000000000/connection-test \
-H "Authorization: Bearer fis_live_xxxxxxxxxxxxxxxx"$curl = curl_init('https://api.fiscon.hu/v1/taxpayers/txp_01hz3k9c8v0000000000000000/connection-test');
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer fis_live_xxxxxxxxxxxxxxxx',
],
]);
$response = curl_exec($curl);
curl_close($curl);use Illuminate\Support\Facades\Http;
$result = Http::withToken(config('services.fiscon.key'))
->post('https://api.fiscon.hu/v1/taxpayers/txp_01hz3k9c8v0000000000000000/connection-test')
->json();const response = await fetch('https://api.fiscon.hu/v1/taxpayers/txp_01hz3k9c8v0000000000000000/connection-test', {
method: 'POST',
headers: {
Authorization: 'Bearer fis_live_xxxxxxxxxxxxxxxx',
},
});
const result = await response.json();ÁFA-kategóriák
A NAV-hoz beküldött nyugták ÁFA-összesítőiben csak az adóalanyhoz a NAV-nál regisztrált ÁFA-kategóriák (pl. 27%, AAM, TAM) használhatók. Ezt a listát az admin felület ÁFA kategóriák oldalán szinkronizálhatod és tekintheted meg a beállított hitelesítő adatok alapján.