REST API – Nyugta API + Számla API + Díjbekérő API

A rendszered szól.
A nyugta, a számla és a díjbekérő elkészül.

Weboldalból, időpontfoglalóból vagy saját programból állíts ki nyugtát, számlát vagy díjbekérőt. Egy API-kulcs, néhány adat, és a Nyugtázom intézi a többit. Az oldalon minden végponthoz teljes kódpéldát és teljes mintaválaszt találsz.

✓ HTTPS ✓ JSON · UTF-8 ✓ Bearer API-kulcs ✓ Test és live mód
nyugtazom.hu/api
POST/api/invoice/v1/invoices
{
  "buyer_type": "private",
  "buyer_name": "Nagy Dóra",
  "buyer_email": "dora@example.com",
  "buyer_address": "1024 Budapest, Fő utca 10.",
  "payment_method": "card",
  "print_size": "A4",
  "items": [
    {
      "name": "Kerékpár szerviz",
      "quantity": 1,
      "unit_name": "db",
      "unit_price_gross": 12900,
      "vat_code": "27"
    }
  ]
}
201 Created SZML-2026-000123
✓ számla elkészült
Nyugta API alap URLhttps://nyugtazom.hu/api/v1
Számla API alap URLhttps://nyugtazom.hu/api/invoice/v1
Díjbekérő API alap URLhttps://nyugtazom.hu/api/proforma/v1
HitelesítésAuthorization: Bearer API-kulcs
Környezetusers.api_mode → test vagy live
Nyugta API

Nyugták kiállítása részletes példákkal.

Minden végponthoz cURL, JavaScript és PHP példa, valamint mintaválasz tartozik.

POST/api/v1/receipts

Nyugta kiállítása

Létrehozza a nyugtát, archiválja a PDF-et, és ha e-mail-címet is megadsz, éles módban automatikusan el is küldi a vevőnek.

Gyakran használt mezők

  • service – a szolgáltatás neve
  • price – bruttó végösszeg
  • payment_methodcash, card, transfer
  • print_sizeA4, 58mm, 80mm
  • customer_name, customer_email – opcionális vevőadatok

Fontos tudnivaló

  • Minden létrehozó kéréshez adj egyedi Idempotency-Key fejlécet.
  • Ha ugyanazzal a kulccsal ugyanazt a kérést újraküldöd, nem készül duplikált nyugta.
  • A válaszban kapott pdf_url időkorlátos.
curl --request POST 'https://nyugtazom.hu/api/v1/receipts' \
  --header 'Authorization: Bearer SAJAT_API_KULCS' \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: receipt-create-20260911-0001' \
  --data-raw '{
    "service": "Kerékpár szerviz",
    "price": 12900,
    "payment_method": "card",
    "customer_name": "Nagy Dóra",
    "customer_email": "dora@example.com",
    "print_size": "A4"
  }'
const payload = {
  service: 'Kerékpár szerviz',
  price: 12900,
  payment_method: 'card',
  customer_name: 'Nagy Dóra',
  customer_email: 'dora@example.com',
  print_size: 'A4'
};

const response = await fetch('https://nyugtazom.hu/api/v1/receipts', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.NYUGTAZOM_API_KEY}`,
    'Content-Type': 'application/json',
    'Idempotency-Key': 'receipt-create-20260911-0001'
  },
  body: JSON.stringify(payload)
});

const data = await response.json();
console.log(response.status, data);
<?php
$payload = json_encode([
    'service' => 'Kerékpár szerviz',
    'price' => 12900,
    'payment_method' => 'card',
    'customer_name' => 'Nagy Dóra',
    'customer_email' => 'dora@example.com',
    'print_size' => 'A4',
], JSON_UNESCAPED_UNICODE);

$curl = curl_init('https://nyugtazom.hu/api/v1/receipts');

curl_setopt_array($curl, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . getenv('NYUGTAZOM_API_KEY'),
        'Content-Type: application/json',
        'Idempotency-Key: receipt-create-20260911-0001',
    ],
    CURLOPT_POSTFIELDS => $payload,
]);

$result = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $httpCode . PHP_EOL;
echo $result . PHP_EOL;
201 CreatedTeljes mintaválasz
{
  "success": true,
  "environment": "live",
  "receipt": {
    "id": "123",
    "number": "NYGTA-2026-000123",
    "status": "active",
    "service": "Kerékpár szerviz",
    "price": 12900,
    "payment_method": "card",
    "print_size": "A4",
    "pdf_url": "https://nyugtazom.hu/api/v1/receipts/123/pdf?user=2&environment=live&expires=...&signature=...",
    "pdf_url_expires_in": 900,
    "email": {
      "requested": true,
      "status": "sent"
    }
  },
  "warning": null
}
GET/api/v1/receipts/{id}

Nyugta lekérdezése

Visszaadja a nyugta állapotát, adatait és egy új PDF-letöltési linket. Akkor hasznos, ha később szeretnéd visszakérni a bizonylat teljes adatait.

Útvonalparaméter

  • id – a nyugta belső azonosítója, amit a létrehozáskor kapsz vissza

Válasz

  • Mindig JSON
  • Új pdf_url is jár hozzá
  • Érvénytelen azonosító esetén 404 NOT_FOUND
curl --request GET 'https://nyugtazom.hu/api/v1/receipts/123' \
  --header 'Authorization: Bearer SAJAT_API_KULCS'
const response = await fetch('https://nyugtazom.hu/api/v1/receipts/123', {
  method: 'GET',
  headers: {
    'Authorization': `Bearer ${process.env.NYUGTAZOM_API_KEY}`
  }
});

const data = await response.json();
console.log(response.status, data);
<?php
$curl = curl_init('https://nyugtazom.hu/api/v1/receipts/123');

curl_setopt_array($curl, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . getenv('NYUGTAZOM_API_KEY'),
    ],
]);

$result = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $httpCode . PHP_EOL;
echo $result . PHP_EOL;
200 OKTeljes mintaválasz
{
  "success": true,
  "environment": "live",
  "receipt": {
    "id": "123",
    "number": "NYGTA-2026-000123",
    "status": "active",
    "service": "Kerékpár szerviz",
    "price": 12900,
    "payment_method": "card",
    "print_size": "A4",
    "pdf_url": "https://nyugtazom.hu/api/v1/receipts/123/pdf?user=2&environment=live&expires=...&signature=...",
    "pdf_url_expires_in": 900,
    "email": {
      "requested": true,
      "status": "not_requested"
    }
  },
  "warning": null
}
GET/api/v1/receipts/{id}/pdf

Nyugta PDF letöltése

Közvetlen PDF-választ ad vissza. A végpontot hívhatod Bearer API-kulccsal, vagy használhatod a korábban kapott aláírt pdf_url linket is.

Mit kapsz vissza?

  • Content-Type: application/pdf
  • Content-Disposition fejléc
  • PDF bináris tartalom

Tipp

  • Böngészőben inline megjeleníthető
  • Szerveren fájlba is menthető
  • Az aláírt link időkorlátos
curl --request GET 'https://nyugtazom.hu/api/v1/receipts/123/pdf' \
  --header 'Authorization: Bearer SAJAT_API_KULCS' \
  --output nyugta-123.pdf
const response = await fetch('https://nyugtazom.hu/api/v1/receipts/123/pdf', {
  method: 'GET',
  headers: {
    'Authorization': `Bearer ${process.env.NYUGTAZOM_API_KEY}`
  }
});

const arrayBuffer = await response.arrayBuffer();
await require('fs/promises').writeFile('nyugta-123.pdf', Buffer.from(arrayBuffer));
console.log(response.status, 'PDF elmentve');
<?php
$curl = curl_init('https://nyugtazom.hu/api/v1/receipts/123/pdf');

curl_setopt_array($curl, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . getenv('NYUGTAZOM_API_KEY'),
    ],
]);

$pdfBinary = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

file_put_contents(__DIR__ . '/nyugta-123.pdf', $pdfBinary);
echo $httpCode . PHP_EOL;
echo 'PDF elmentve.' . PHP_EOL;
200 OKTeljes mintaválasz
HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Disposition: inline; filename="NYGTA-2026-000123.pdf"
Content-Length: 58214

%PDF-1.7
1 0 obj
<< /Type /Catalog /Pages 2 0 R >>
endobj
...
%%EOF
POST/api/v1/receipts/{id}/resend-email

E-mail-cím javítása és újraküldés

Frissíti a nyugtához tartozó e-mail-címet, majd ugyanazt az archivált PDF-et újraküldi. Tesztmódban az e-mail küldése nem történik meg, de a válasz ezt vissza is jelzi.

Kérés törzse

  • customer_email – az új e-mail-cím
  • Idempotency-Key fejléc – kötelező, 16–128 karakter

Mire figyelj?

  • Érvényes e-mail formátum kell
  • A nyugtának léteznie kell
  • Éles és teszt válasz különbözhet
curl --request POST 'https://nyugtazom.hu/api/v1/receipts/123/resend-email' \
  --header 'Authorization: Bearer SAJAT_API_KULCS' \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: receipt-resend-20260911-0001' \
  --data-raw '{
    "customer_email": "ujcim@example.com"
  }'
const response = await fetch('https://nyugtazom.hu/api/v1/receipts/123/resend-email', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.NYUGTAZOM_API_KEY}`,
    'Content-Type': 'application/json',
    'Idempotency-Key': 'receipt-resend-20260911-0001'
  },
  body: JSON.stringify({
    customer_email: 'ujcim@example.com'
  })
});

const data = await response.json();
console.log(response.status, data);
<?php
$payload = json_encode([
    'customer_email' => 'ujcim@example.com',
], JSON_UNESCAPED_UNICODE);

$curl = curl_init('https://nyugtazom.hu/api/v1/receipts/123/resend-email');

curl_setopt_array($curl, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . getenv('NYUGTAZOM_API_KEY'),
        'Content-Type: application/json',
        'Idempotency-Key: receipt-resend-20260911-0001',
    ],
    CURLOPT_POSTFIELDS => $payload,
]);

$result = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $httpCode . PHP_EOL;
echo $result . PHP_EOL;
200 OKTeljes mintaválasz
{
  "success": true,
  "environment": "live",
  "receipt": {
    "id": "123",
    "number": "NYGTA-2026-000123"
  },
  "email": {
    "address": "ujcim@example.com",
    "status": "sent",
    "database_updated": true,
    "message_id": "POSTMARK-MESSAGE-ID"
  },
  "warning": null
}
POST/api/v1/receipts/{id}/void

Nyugta sztornózása

Új sztornó bizonylatot állít ki. A művelethez itt is javasolt külön Idempotency-Key fejlécet küldeni, hogy hálózati hiba esetén se készülhessen duplikált sztornó.

Kérés törzse

  • reason – rövid indoklás, például Vevő kérésére sztornózva

Eredmény

  • Új sztornó nyugta készül
  • Külön sorszáma lesz
  • A válasz a sztornó bizonylat adatait adja vissza
curl --request POST 'https://nyugtazom.hu/api/v1/receipts/123/void' \
  --header 'Authorization: Bearer SAJAT_API_KULCS' \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: receipt-void-20260911-0001' \
  --data-raw '{
    "reason": "Vevő kérésére sztornózva"
  }'
const response = await fetch('https://nyugtazom.hu/api/v1/receipts/123/void', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.NYUGTAZOM_API_KEY}`,
    'Content-Type': 'application/json',
    'Idempotency-Key': 'receipt-void-20260911-0001'
  },
  body: JSON.stringify({
    reason: 'Vevő kérésére sztornózva'
  })
});

const data = await response.json();
console.log(response.status, data);
<?php
$payload = json_encode([
    'reason' => 'Vevő kérésére sztornózva',
], JSON_UNESCAPED_UNICODE);

$curl = curl_init('https://nyugtazom.hu/api/v1/receipts/123/void');

curl_setopt_array($curl, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . getenv('NYUGTAZOM_API_KEY'),
        'Content-Type: application/json',
        'Idempotency-Key: receipt-void-20260911-0001',
    ],
    CURLOPT_POSTFIELDS => $payload,
]);

$result = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $httpCode . PHP_EOL;
echo $result . PHP_EOL;
201 CreatedTeljes mintaválasz
{
  "success": true,
  "environment": "live",
  "receipt": {
    "id": "124",
    "number": "NYGTA-2026-000124",
    "status": "storno",
    "service": "Kerékpár szerviz",
    "price": -12900,
    "payment_method": "card",
    "print_size": "A4",
    "pdf_url": "https://nyugtazom.hu/api/v1/receipts/124/pdf?user=2&environment=live&expires=...&signature=...",
    "pdf_url_expires_in": 900,
    "email": {
      "requested": true,
      "status": "not_requested"
    }
  },
  "warning": null
}
Számla API

Számla API.

A Számla API külön ágon érhető el: https://nyugtazom.hu/api/invoice/v1. Ugyanazt az API-kulcsot használja, mint a Nyugta API, és ugyanúgy támogatja a test/live működést.

POST/api/invoice/v1/invoices

Számla kiállítása

Létrehozza a számlát, elmenti a PDF-et, és ha küldesz e-mail-címet, éles módban automatikusan továbbítja a PDF-et a vevőnek. Tesztmódban külön tesztbizonylat készül.

Alap mezők

  • buyer_typeprivate vagy company
  • buyer_name, buyer_email, buyer_address
  • payment_methodcash, card, transfer
  • performance_date, due_date, print_size
  • currency – pénznem, alapértelmezetten HUF; például EUR, USD, CHF, GBP vagy más engedélyezett MNB-deviza
  • exchange_rate – opcionális kézi árfolyam Ft-ban; devizánál ha kimarad, a teljesítés dátuma alapján a helyi MNB-adatbázisból töltjük
  • language – PDF nyelve: hu (alapértelmezett), en vagy de
  • items – egy vagy több számlatétel

Tételszintű mezők

  • name – tétel megnevezése
  • quantity – mennyiség
  • unit_name – például db, óra
  • price_modegross (alapértelmezett, visszafelé kompatibilis) vagy net
  • unit_price_gross – bruttó egységár; gross módban kötelező
  • unit_price_net – nettó egységár; net módban kötelező
  • vat_code – például 27, AAM vagy TAM

Használható ÁFA-kódok a vat_code mezőben

  • 27 – 27% ÁFA
  • 18 – 18% ÁFA
  • 5 – 5% ÁFA
  • 0 – 0% ÁFA
  • AAM – Alanyi adómentes
  • TAM – Tárgyi adómentes
  • F.AFA – Fordított adózás
  • K.AFA – Különbözeti áfa
  • ATK – ÁFA területi hatályán kívüli ügylet
  • KBAET – Közösségi adómentes termékértékesítés. EU-tagállami céges vevő és közösségi adószám szükséges.
  • EUFAD37 – EU-s adóalanynak nyújtott szolgáltatás. EU-tagállami céges vevő és közösségi adószám szükséges.
  • EAM – Export / EU-n kívüli adómentes termékértékesítés. EU-n kívüli vevő szükséges.
  • HO – EU-n kívüli cégnek nyújtott szolgáltatás, magyar ÁFA nélkül. EU-n kívüli vevő szükséges.

Fontos: a százalékos kulcsokat százalékjel nélkül kell küldeni, például "27", nem "27%".

Nettó egységár: ha price_mode: "net" értéket küldesz, add meg a unit_price_net mezőt. HUF esetén a rendszer először a teljes nettó tételértéket kerekíti egész forintra, majd abból számolja az ÁFÁ-t és a bruttót. Példa: 0,52 × 52,68 Ft = 27 Ft nettó; 27% ÁFÁ-val 34 Ft bruttó. Ha a price_mode hiányzik, a korábbi működés miatt gross az alapértelmezés.

PDF nyelve: a language mező lehet hu, en vagy de. Ha nem küldöd, az alapértelmezés hu. A választás a számla PDF feliratait és jogi zárómondatát fordítja; az API mezőnevek és a JSON válasz nyelve nem változik.

Devizás számla: a currency mező hiányában a működés változatlanul HUF. Nem HUF pénznemnél az exchange_rate kézzel megadható; ha kimarad, a rendszer a performance_date dátumhoz tartozó helyi MNB-adatot használja, hétvégén/ünnepnapon pedig a legutóbbi korábbi jegyzést. Az alkalmazott árfolyam a számlával együtt rögzül, és a NAV-adatszolgáltatás is ezt használja.

curl --request POST 'https://nyugtazom.hu/api/invoice/v1/invoices' \
  --header 'Authorization: Bearer SAJAT_API_KULCS' \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: invoice-create-20260911-0001' \
  --data-raw '{
    "buyer_type": "private",
    "buyer_name": "Nagy Dóra",
    "buyer_email": "dora@example.com",
    "buyer_phone": "+36301234567",
    "buyer_country_code": "HU",
    "buyer_address": "1024 Budapest, Fő utca 10.",
    "payment_method": "card",
    "performance_date": "2026-09-11",
    "due_date": "2026-09-11",
    "print_size": "A4",
    "language": "hu",
    "note": "Köszönjük a vásárlást!",
    "items": [
      {
        "name": "Kerékpár szerviz",
        "quantity": 1,
        "unit_name": "db",
        "unit_price_gross": 12900,
        "vat_code": "27"
      }
    ]
  }'
const payload = {
  buyer_type: 'private',
  buyer_name: 'Nagy Dóra',
  buyer_email: 'dora@example.com',
  buyer_phone: '+36301234567',
  buyer_country_code: 'HU',
  buyer_address: '1024 Budapest, Fő utca 10.',
  payment_method: 'card',
  performance_date: '2026-09-11',
  due_date: '2026-09-11',
  print_size: 'A4',
  language: 'hu',
  note: 'Köszönjük a vásárlást!',
  items: [
    {
      name: 'Kerékpár szerviz',
      quantity: 1,
      unit_name: 'db',
      unit_price_gross: 12900,
      vat_code: '27'
    }
  ]
};

const response = await fetch('https://nyugtazom.hu/api/invoice/v1/invoices', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.NYUGTAZOM_API_KEY}`,
    'Content-Type': 'application/json',
    'Idempotency-Key': 'invoice-create-20260911-0001'
  },
  body: JSON.stringify(payload)
});

const data = await response.json();
console.log(response.status, data);
<?php
$payload = json_encode([
    'buyer_type' => 'private',
    'buyer_name' => 'Nagy Dóra',
    'buyer_email' => 'dora@example.com',
    'buyer_phone' => '+36301234567',
    'buyer_country_code' => 'HU',
    'buyer_address' => '1024 Budapest, Fő utca 10.',
    'payment_method' => 'card',
    'performance_date' => '2026-09-11',
    'due_date' => '2026-09-11',
    'print_size' => 'A4',
    'language' => 'hu',
    'note' => 'Köszönjük a vásárlást!',
    'items' => [
        [
            'name' => 'Kerékpár szerviz',
            'quantity' => 1,
            'unit_name' => 'db',
            'unit_price_gross' => 12900,
            'vat_code' => '27',
        ],
    ],
], JSON_UNESCAPED_UNICODE);

$curl = curl_init('https://nyugtazom.hu/api/invoice/v1/invoices');

curl_setopt_array($curl, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . getenv('NYUGTAZOM_API_KEY'),
        'Content-Type: application/json',
        'Idempotency-Key: invoice-create-20260911-0001',
    ],
    CURLOPT_POSTFIELDS => $payload,
]);

$result = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $httpCode . PHP_EOL;
echo $result . PHP_EOL;
201 CreatedTeljes mintaválasz
{
  "success": true,
  "environment": "live",
  "invoice": {
    "id": "401",
    "number": "SZML-2026-000123",
    "kind": "invoice",
    "status": "active",
    "buyer": {
      "type": "private",
      "name": "Nagy Dóra",
      "tax_number": "",
      "country_code": "HU",
      "postal_code": "1024",
      "city": "Budapest",
      "address_detail": "Fő utca 10.",
      "address": "1024 Budapest, Fő utca 10.",
      "community_vat_number": "",
      "third_state_tax_id": "",
      "email": "dora@example.com",
      "phone": "+36301234567"
    },
    "issue_date": "2026-09-11",
    "performance_date": "2026-09-11",
    "due_date": "2026-09-11",
    "payment_method": "card",
    "payment_status": "paid",
    "print_size": "A4",
    "language": "hu",
    "currency": "HUF",
    "note": "Köszönjük a vásárlást!",
    "totals": {
      "net": 10157.48,
      "vat": 2742.52,
      "gross": 12900
    },
    "nav": {
      "status": "pending",
      "operation": "CREATE",
      "transaction_id": null,
      "request_id": null,
      "error_code": "",
      "message": ""
    },
    "items": [
      {
        "position": 1,
        "name": "Kerékpár szerviz",
        "note": "",
        "quantity": 1,
        "unit_name": "db",
        "unit_price_gross": 12900,
        "vat_code": "27",
        "vat_rate": 27,
        "net_amount": 10157.48,
        "vat_amount": 2742.52,
        "gross_amount": 12900
      }
    ],
    "pdf_url": "https://nyugtazom.hu/api/invoice/v1/invoices/401/pdf?signature=...",
    "pdf_url_expires_in": 900,
    "email": {
      "requested": true,
      "address": "dora@example.com",
      "status": "sent"
    }
  },
  "warning": null
}
GET/api/invoice/v1/invoices

Számlák listázása

Visszaadja a felhasználó számláit listában. Szűrhetsz dátumtartományra, és korlátozhatod a darabszámot.

Query paraméterek

  • limit – 1 és 100 között
  • from – kezdő dátum, YYYY-MM-DD
  • to – záró dátum, YYYY-MM-DD

Válasz

  • count – visszaadott számlák száma
  • invoices – számlaobjektumok tömbje
  • Minden számlához tartozik pdf_url is
curl --request GET 'https://nyugtazom.hu/api/invoice/v1/invoices?from=2026-09-01&to=2026-09-30&limit=10' \
  --header 'Authorization: Bearer SAJAT_API_KULCS'
const response = await fetch(
  'https://nyugtazom.hu/api/invoice/v1/invoices?from=2026-09-01&to=2026-09-30&limit=10',
  {
    method: 'GET',
    headers: {
      'Authorization': `Bearer ${process.env.NYUGTAZOM_API_KEY}`
    }
  }
);

const data = await response.json();
console.log(response.status, data);
<?php
$url = 'https://nyugtazom.hu/api/invoice/v1/invoices?from=2026-09-01&to=2026-09-30&limit=10';
$curl = curl_init($url);

curl_setopt_array($curl, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . getenv('NYUGTAZOM_API_KEY'),
    ],
]);

$result = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $httpCode . PHP_EOL;
echo $result . PHP_EOL;
200 OKTeljes mintaválasz
{
  "success": true,
  "environment": "live",
  "count": 2,
  "invoices": [
    {
      "id": "401",
      "number": "SZML-2026-000123",
      "kind": "invoice",
      "status": "active",
      "buyer": {
        "type": "private",
        "name": "Nagy Dóra",
        "tax_number": "",
        "country_code": "HU",
        "postal_code": "1024",
        "city": "Budapest",
        "address_detail": "Fő utca 10.",
        "address": "1024 Budapest, Fő utca 10.",
        "community_vat_number": "",
        "third_state_tax_id": "",
        "email": "dora@example.com",
        "phone": "+36301234567"
      },
      "issue_date": "2026-09-11",
      "performance_date": "2026-09-11",
      "due_date": "2026-09-11",
      "payment_method": "card",
      "payment_status": "paid",
      "print_size": "A4",
      "currency": "HUF",
      "note": "Köszönjük a vásárlást!",
      "totals": {
        "net": 10157.48,
        "vat": 2742.52,
        "gross": 12900
      },
      "nav": {
        "status": "done",
        "operation": "CREATE",
        "transaction_id": "NAVTX123",
        "request_id": "REQ123",
        "error_code": "",
        "message": ""
      },
      "items": [
        {
          "position": 1,
          "name": "Kerékpár szerviz",
          "note": "",
          "quantity": 1,
          "unit_name": "db",
          "unit_price_gross": 12900,
          "vat_code": "27",
          "vat_rate": 27,
          "net_amount": 10157.48,
          "vat_amount": 2742.52,
          "gross_amount": 12900
        }
      ],
      "pdf_url": "https://nyugtazom.hu/api/invoice/v1/invoices/401/pdf?signature=...",
      "pdf_url_expires_in": 900,
      "email": {
        "requested": true,
        "address": "dora@example.com",
        "status": "not_requested"
      }
    },
    {
      "id": "399",
      "number": "SZML-2026-000122",
      "kind": "invoice",
      "status": "active",
      "buyer": {
        "type": "company",
        "name": "Minta Kft.",
        "tax_number": "12345678-2-42",
        "country_code": "HU",
        "postal_code": "1117",
        "city": "Budapest",
        "address_detail": "Ipar utca 5.",
        "address": "1117 Budapest, Ipar utca 5.",
        "community_vat_number": "",
        "third_state_tax_id": "",
        "email": "iroda@mintakft.hu",
        "phone": "+3619990000"
      },
      "issue_date": "2026-09-08",
      "performance_date": "2026-09-08",
      "due_date": "2026-09-16",
      "payment_method": "transfer",
      "payment_status": "pending",
      "print_size": "A4",
      "currency": "HUF",
      "note": "",
      "totals": {
        "net": 25000,
        "vat": 6750,
        "gross": 31750
      },
      "nav": {
        "status": "pending",
        "operation": "CREATE",
        "transaction_id": null,
        "request_id": null,
        "error_code": "",
        "message": ""
      },
      "items": [
        {
          "position": 1,
          "name": "Szerviz csomag",
          "note": "",
          "quantity": 1,
          "unit_name": "db",
          "unit_price_gross": 31750,
          "vat_code": "27",
          "vat_rate": 27,
          "net_amount": 25000,
          "vat_amount": 6750,
          "gross_amount": 31750
        }
      ],
      "pdf_url": "https://nyugtazom.hu/api/invoice/v1/invoices/399/pdf?signature=...",
      "pdf_url_expires_in": 900,
      "email": {
        "requested": true,
        "address": "iroda@mintakft.hu",
        "status": "not_requested"
      }
    }
  ]
}
GET/api/invoice/v1/invoices/{id}

Egy számla teljes lekérdezése

Visszaadja a számla teljes tartalmát: vevőadatok, tételsorok, nettó/ÁFA/bruttó összegek, NAV-állapot, PDF-link és e-mail állapot.

Útvonalparaméter

  • id – a számla belső azonosítója

Miért hasznos?

  • Állapotfrissítéshez
  • NAV-eredmény ellenőrzéséhez
  • PDF-link frissítéséhez
curl --request GET 'https://nyugtazom.hu/api/invoice/v1/invoices/401' \
  --header 'Authorization: Bearer SAJAT_API_KULCS'
const response = await fetch('https://nyugtazom.hu/api/invoice/v1/invoices/401', {
  method: 'GET',
  headers: {
    'Authorization': `Bearer ${process.env.NYUGTAZOM_API_KEY}`
  }
});

const data = await response.json();
console.log(response.status, data);
<?php
$curl = curl_init('https://nyugtazom.hu/api/invoice/v1/invoices/401');

curl_setopt_array($curl, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . getenv('NYUGTAZOM_API_KEY'),
    ],
]);

$result = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $httpCode . PHP_EOL;
echo $result . PHP_EOL;
200 OKTeljes mintaválasz
{
  "success": true,
  "environment": "live",
  "invoice": {
    "id": "401",
    "number": "SZML-2026-000123",
    "kind": "invoice",
    "status": "active",
    "buyer": {
      "type": "private",
      "name": "Nagy Dóra",
      "tax_number": "",
      "country_code": "HU",
      "postal_code": "1024",
      "city": "Budapest",
      "address_detail": "Fő utca 10.",
      "address": "1024 Budapest, Fő utca 10.",
      "community_vat_number": "",
      "third_state_tax_id": "",
      "email": "dora@example.com",
      "phone": "+36301234567"
    },
    "issue_date": "2026-09-11",
    "performance_date": "2026-09-11",
    "due_date": "2026-09-11",
    "payment_method": "card",
    "payment_status": "paid",
    "print_size": "A4",
    "currency": "HUF",
    "note": "Köszönjük a vásárlást!",
    "totals": {
      "net": 10157.48,
      "vat": 2742.52,
      "gross": 12900
    },
    "nav": {
      "status": "done",
      "operation": "CREATE",
      "transaction_id": "NAVTX123",
      "request_id": "REQ123",
      "error_code": "",
      "message": ""
    },
    "items": [
      {
        "position": 1,
        "name": "Kerékpár szerviz",
        "note": "",
        "quantity": 1,
        "unit_name": "db",
        "unit_price_gross": 12900,
        "vat_code": "27",
        "vat_rate": 27,
        "net_amount": 10157.48,
        "vat_amount": 2742.52,
        "gross_amount": 12900
      }
    ],
    "pdf_url": "https://nyugtazom.hu/api/invoice/v1/invoices/401/pdf?signature=...",
    "pdf_url_expires_in": 900,
    "email": {
      "requested": true,
      "address": "dora@example.com",
      "status": "not_requested"
    }
  },
  "warning": null
}
GET/api/invoice/v1/invoices/{id}/pdf

Számla PDF letöltése

Közvetlen PDF-választ ad vissza. Ugyanúgy használható API-kulccsal vagy a számla lekérdezésénél kapott aláírt pdf_url segítségével.

Mit kapsz vissza?

  • application/pdf válasz
  • Számlaszám szerinti fájlnév
  • Bináris PDF-tartalom

Tipikus használat

  • Letöltés adminfelületre
  • Csatolás saját e-mailhez
  • Tárolás saját fájlrendszerben
curl --request GET 'https://nyugtazom.hu/api/invoice/v1/invoices/401/pdf' \
  --header 'Authorization: Bearer SAJAT_API_KULCS' \
  --output szamla-401.pdf
const response = await fetch('https://nyugtazom.hu/api/invoice/v1/invoices/401/pdf', {
  method: 'GET',
  headers: {
    'Authorization': `Bearer ${process.env.NYUGTAZOM_API_KEY}`
  }
});

const arrayBuffer = await response.arrayBuffer();
await require('fs/promises').writeFile('szamla-401.pdf', Buffer.from(arrayBuffer));
console.log(response.status, 'PDF elmentve');
<?php
$curl = curl_init('https://nyugtazom.hu/api/invoice/v1/invoices/401/pdf');

curl_setopt_array($curl, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . getenv('NYUGTAZOM_API_KEY'),
    ],
]);

$pdfBinary = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

file_put_contents(__DIR__ . '/szamla-401.pdf', $pdfBinary);
echo $httpCode . PHP_EOL;
echo 'PDF elmentve.' . PHP_EOL;
200 OKTeljes mintaválasz
HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Disposition: inline; filename="SZML-2026-000123.pdf"
Content-Length: 82496

%PDF-1.7
1 0 obj
<< /Type /Catalog /Pages 2 0 R >>
endobj
...
%%EOF
POST/api/invoice/v1/invoices/{id}/resend-email

E-mail-cím javítása és számla újraküldése

Frissíti a számlán tárolt e-mail-címet, majd ugyanazt az archivált PDF-számlát újraküldi. Így nem kell új számlát készítened csak azért, mert elgépelés történt az e-mail-címben.

Kérés törzse

  • buyer_email – az új e-mail-cím
  • Idempotency-Key fejléc – kötelező, 16–128 karakter

Válasz

  • A teljes frissített számlaobjektumot kapod vissza
  • Az email.status megmutatja, hogy elküldtük-e
curl --request POST 'https://nyugtazom.hu/api/invoice/v1/invoices/401/resend-email' \
  --header 'Authorization: Bearer SAJAT_API_KULCS' \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: invoice-resend-20260911-0001' \
  --data-raw '{
    "buyer_email": "ujcim@example.com"
  }'
const response = await fetch('https://nyugtazom.hu/api/invoice/v1/invoices/401/resend-email', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.NYUGTAZOM_API_KEY}`,
    'Content-Type': 'application/json',
    'Idempotency-Key': 'invoice-resend-20260911-0001'
  },
  body: JSON.stringify({
    buyer_email: 'ujcim@example.com'
  })
});

const data = await response.json();
console.log(response.status, data);
<?php
$payload = json_encode([
    'buyer_email' => 'ujcim@example.com',
], JSON_UNESCAPED_UNICODE);

$curl = curl_init('https://nyugtazom.hu/api/invoice/v1/invoices/401/resend-email');

curl_setopt_array($curl, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . getenv('NYUGTAZOM_API_KEY'),
        'Content-Type: application/json',
        'Idempotency-Key: invoice-resend-20260911-0001',
    ],
    CURLOPT_POSTFIELDS => $payload,
]);

$result = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $httpCode . PHP_EOL;
echo $result . PHP_EOL;
200 OKTeljes mintaválasz
{
  "success": true,
  "environment": "live",
  "invoice": {
    "id": "401",
    "number": "SZML-2026-000123"
  },
  "email": {
    "address": "ujcim@example.com",
    "status": "sent",
    "database_updated": true,
    "message_id": "POSTMARK-MESSAGE-ID"
  },
  "warning": null
}
POST/api/invoice/v1/invoices/{id}/void

Számla sztornózása

Új sztornó számlát állít ki az eredeti számla alapján. A válasz mindig az új sztornó számla adatait adja vissza.

Kérés törzse

  • reason – rövid sztornó indoklás
  • Ehhez a művelethez is adj Idempotency-Key-t

Tudnivaló

  • Éles módban csak megfelelő NAV-állapot mellett lehet sztornózni
  • Új sztornó sorszám készül
curl --request POST 'https://nyugtazom.hu/api/invoice/v1/invoices/401/void' \
  --header 'Authorization: Bearer SAJAT_API_KULCS' \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: invoice-void-20260911-0001' \
  --data-raw '{
    "reason": "Vevő kérésére sztornózva"
  }'
const response = await fetch('https://nyugtazom.hu/api/invoice/v1/invoices/401/void', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.NYUGTAZOM_API_KEY}`,
    'Content-Type': 'application/json',
    'Idempotency-Key': 'invoice-void-20260911-0001'
  },
  body: JSON.stringify({
    reason: 'Vevő kérésére sztornózva'
  })
});

const data = await response.json();
console.log(response.status, data);
<?php
$payload = json_encode([
    'reason' => 'Vevő kérésére sztornózva',
], JSON_UNESCAPED_UNICODE);

$curl = curl_init('https://nyugtazom.hu/api/invoice/v1/invoices/401/void');

curl_setopt_array($curl, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . getenv('NYUGTAZOM_API_KEY'),
        'Content-Type: application/json',
        'Idempotency-Key: invoice-void-20260911-0001',
    ],
    CURLOPT_POSTFIELDS => $payload,
]);

$result = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $httpCode . PHP_EOL;
echo $result . PHP_EOL;
201 CreatedTeljes mintaválasz
{
  "success": true,
  "environment": "live",
  "invoice": {
    "id": "402",
    "number": "SZML-2026-000124",
    "kind": "storno",
    "status": "storno",
    "original_invoice_id": "401",
    "buyer": {
      "type": "private",
      "name": "Nagy Dóra",
      "tax_number": "",
      "country_code": "HU",
      "postal_code": "1024",
      "city": "Budapest",
      "address_detail": "Fő utca 10.",
      "address": "1024 Budapest, Fő utca 10.",
      "community_vat_number": "",
      "third_state_tax_id": "",
      "email": "dora@example.com",
      "phone": "+36301234567"
    },
    "issue_date": "2026-09-11",
    "performance_date": "2026-09-11",
    "due_date": "2026-09-11",
    "payment_method": "card",
    "payment_status": "paid",
    "print_size": "A4",
    "currency": "HUF",
    "note": "Vevő kérésére sztornózva",
    "totals": {
      "net": -10157.48,
      "vat": -2742.52,
      "gross": -12900
    },
    "nav": {
      "status": "pending",
      "operation": "STORNO",
      "transaction_id": null,
      "request_id": null,
      "error_code": "",
      "message": ""
    },
    "items": [
      {
        "position": 1,
        "name": "Kerékpár szerviz",
        "note": "",
        "quantity": -1,
        "unit_name": "db",
        "unit_price_gross": 12900,
        "vat_code": "27",
        "vat_rate": 27,
        "net_amount": -10157.48,
        "vat_amount": -2742.52,
        "gross_amount": -12900
      }
    ],
    "pdf_url": "https://nyugtazom.hu/api/invoice/v1/invoices/402/pdf?signature=...",
    "pdf_url_expires_in": 900,
    "email": {
      "requested": true,
      "address": "dora@example.com",
      "status": "not_requested"
    }
  },
  "warning": null
}
Díjbekérő API

Díjbekérő készítése számlához hasonlóan.

A Díjbekérő API ugyanazt a Bearer API-kulcsot és ugyanazt a test/live környezetet használja, mint a Nyugta és Számla API. A díjbekérők külön táblákban és külön sorszámtartományban készülnek, ezért se teszt, se éles díjbekérőt nem küldünk a NAV felé.

POST/api/proforma/v1/proformas

Díjbekérő kiállítása

A kérés mezői megegyeznek a számlakiállítás mezőivel. Éles módban a sorszám D-SZML-ÉV-######, teszt módban TEST-D-SZML-ÉV-######. A díjbekérő soha nem indít NAV-adatszolgáltatást.

Fontos

  • Idempotency-Key kötelező, 16–128 karakter
  • send_email alapértéke true
  • teszt módban tényleges e-mail nem megy ki

Sorszám

  • éles: D-SZML-2026-000001
  • teszt: TEST-D-SZML-2026-000001
  • a díjbekérő külön számlálót használ

Nettó vagy bruttó egységár

A tétel mezői megegyeznek a Számla API-val. price_mode: "net" esetén unit_price_net kötelező; price_mode: "gross" esetén unit_price_gross kötelező. Ha a price_mode hiányzik, az alapértelmezés gross. Nettó módban HUF esetén a teljes nettó tételérték kerekítése történik először, és ebből készül az ÁFA és a bruttó.

PDF nyelve

A language mező lehet hu (alapértelmezett), en vagy de. A kiválasztott nyelv a díjbekérő PDF felirataira és zárómondatára vonatkozik.

Deviza és árfolyam

A currency és az opcionális exchange_rate ugyanúgy működik, mint a Számla API-ban. Ha a devizás díjbekérőnél nem küldesz kézi árfolyamot, a performance_date alapján a helyi MNB-adatbázisból választunk árfolyamot; hétvégén vagy ünnepnapon a legutóbbi korábbi jegyzést. A díjbekérő továbbra sem kerül NAV-adatszolgáltatásba.

curl --request POST 'https://nyugtazom.hu/api/proforma/v1/proformas' \
  --header 'Authorization: Bearer SAJAT_API_KULCS' \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: proforma-create-20260911-0001' \
  --data-raw '{
    "buyer_type": "private",
    "buyer_name": "Nagy Dóra",
    "buyer_email": "dora@example.com",
    "buyer_address": "1024 Budapest, Fő utca 10.",
    "payment_method": "transfer",
    "performance_date": "2026-09-11",
    "due_date": "2026-09-19",
    "print_size": "A4",
    "language": "hu",
    "send_email": true,
    "items": [{
      "name": "Kerékpár szerviz",
      "quantity": 1,
      "unit_name": "db",
      "unit_price_gross": 12900,
      "vat_code": "27"
    }]
  }'
const response = await fetch('https://nyugtazom.hu/api/proforma/v1/proformas', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.NYUGTAZOM_API_KEY}`,
    'Content-Type': 'application/json',
    'Idempotency-Key': 'proforma-create-20260911-0001'
  },
  body: JSON.stringify({
    buyer_type: 'private',
    buyer_name: 'Nagy Dóra',
    buyer_email: 'dora@example.com',
    buyer_address: '1024 Budapest, Fő utca 10.',
    payment_method: 'transfer',
    performance_date: '2026-09-11',
    due_date: '2026-09-19',
    print_size: 'A4',
    language: 'hu',
    send_email: true,
    items: [{ name: 'Kerékpár szerviz', quantity: 1, unit_name: 'db', unit_price_gross: 12900, vat_code: '27' }]
  })
});
console.log(await response.json());
<?php
$payload = json_encode([
    'buyer_type' => 'private',
    'buyer_name' => 'Nagy Dóra',
    'buyer_email' => 'dora@example.com',
    'buyer_address' => '1024 Budapest, Fő utca 10.',
    'payment_method' => 'transfer',
    'performance_date' => '2026-09-11',
    'due_date' => '2026-09-19',
    'print_size' => 'A4',
    'language' => 'hu',
    'send_email' => true,
    'items' => [[
        'name' => 'Kerékpár szerviz',
        'quantity' => 1,
        'unit_name' => 'db',
        'unit_price_gross' => 12900,
        'vat_code' => '27',
    ]],
], JSON_UNESCAPED_UNICODE);
$curl = curl_init('https://nyugtazom.hu/api/proforma/v1/proformas');
curl_setopt_array($curl, [CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [
    'Authorization: Bearer ' . getenv('NYUGTAZOM_API_KEY'),
    'Content-Type: application/json',
    'Idempotency-Key: proforma-create-20260911-0001',
], CURLOPT_POSTFIELDS => $payload]);
echo curl_exec($curl);
201 CreatedMintaválasz
{
  "success": true,
  "environment": "live",
  "proforma": {
    "id": "51",
    "number": "D-SZML-2026-000001",
    "kind": "proforma",
    "status": "active",
    "language": "hu",
    "gross_amount": 12900,
    "pdf_url": "https://nyugtazom.hu/api/proforma/v1/proformas/51/pdf?signature=...",
    "pdf_url_expires_in": 900,
    "email": { "requested": true, "status": "sent" },
    "nav": { "reported": false, "status": "not_applicable" }
  },
  "warning": null
}
GET/api/proforma/v1/proformas

Díjbekérők listázása

A limit, from és to paraméterek ugyanúgy használhatók, mint a Számla API-ban.

curl 'https://nyugtazom.hu/api/proforma/v1/proformas?limit=20' --header 'Authorization: Bearer SAJAT_API_KULCS'
const r = await fetch('https://nyugtazom.hu/api/proforma/v1/proformas?limit=20', { headers: { Authorization: `Bearer ${process.env.NYUGTAZOM_API_KEY}` } });
console.log(await r.json());
<?php
$curl = curl_init('https://nyugtazom.hu/api/proforma/v1/proformas?limit=20');
curl_setopt_array($curl, [CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('NYUGTAZOM_API_KEY')]]);
echo curl_exec($curl);
GET/api/proforma/v1/proformas/{id}

Egy díjbekérő lekérdezése

Visszaadja a teljes díjbekérő objektumot, tételekkel és 15 percig használható aláírt PDF-linkkel.

curl 'https://nyugtazom.hu/api/proforma/v1/proformas/51' \
  --header 'Authorization: Bearer SAJAT_API_KULCS'
GET/api/proforma/v1/proformas/{id}/pdf

PDF lekérése

Bearer tokennel közvetlenül lekérhető, a válaszban kapott pdf_url pedig 15 percig token nélkül is használható.

curl 'https://nyugtazom.hu/api/proforma/v1/proformas/51/pdf' \
  --header 'Authorization: Bearer SAJAT_API_KULCS' \
  --output dijbekero.pdf
POST/api/proforma/v1/proformas/{id}/resend-email

E-mail-cím javítása és újraküldés

Az új címet eltárolja, majd éles módban újraküldi a díjbekérő PDF-et. Teszt módban a címet elmenti, de tényleges levelet nem küld.

curl --request POST 'https://nyugtazom.hu/api/proforma/v1/proformas/51/resend-email' \
  --header 'Authorization: Bearer SAJAT_API_KULCS' \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: proforma-email-20260911-0001' \
  --data-raw '{"buyer_email":"ujcim@example.com"}'
DELETE/api/proforma/v1/proformas/{id}

Díjbekérő törlése

Díjbekérőnél nincs sztornó. A törlés eltávolítja a díjbekérőt, a tételeit és az archivált PDF-et. A művelethez Idempotency-Key szükséges. Kompatibilitásként a POST /proformas/{id}/delete végpont is használható.

curl --request DELETE 'https://nyugtazom.hu/api/proforma/v1/proformas/51' \
  --header 'Authorization: Bearer SAJAT_API_KULCS' \
  --header 'Idempotency-Key: proforma-delete-20260911-0001'
200 OKMintaválasz
{
  "success": true,
  "environment": "live",
  "deleted": { "id": "51", "number": "D-SZML-2026-000001" },
  "nav": { "reported": false, "status": "not_applicable" }
}
Teszt / live

Próbáld ki kockázat nélkül.

A Nyugta API, a Számla API és a Díjbekérő API is ugyanazt a felhasználói környezetet használja. Ha a fiókod test módba van állítva, mindkét API teszt módban működik.

Teszt módban

  • az environment mező értéke test;
  • nyugtánál, számlánál és díjbekérőnél tesztbizonylat jön létre;
  • számlázásnál a válasz warning mezőben is jelzi, hogy tesztbizonylatról van szó;
  • nem történik valódi NAV-adatszolgáltatás;
  • nem küldünk tényleges e-mailt.

Hibakezelés röviden

A válaszok szabványos HTTP-kódokkal érkeznek. A hibák JSON formátumban jönnek vissza.

{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "A megadott adatok hiányosak vagy hibásak.",
    "fields": {
      "price": [
        "Kötelező mező."
      ]
    }
  }
}