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_type –
private vagy company
- buyer_name, buyer_email, buyer_address
- payment_method –
cash, 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_mode –
gross (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
}