Fejlesztőknek
aiszamla API
Webshop, CRM vagy saját rendszer bekötése: számla és díjbekérő kiállítása, NAV-beküldés, e-mail, fizetés követése, emlékeztető, sztornó, bejövő számlák és törzsadatok – egyszerű REST/JSON API-val.
✓ Minden végpont élesben tesztelve API-kulccsal (2026-10-29, 82/82 sikeres)
Fejlesztéshez: hozz létre ingyenes teszt fiókot – minden végpont működik benne, de semmi nem megy ki: a számlák „TESZT” sorozatban készülnek, a NAV-beküldés szimulált, az e-mailek nem mennek ki (a fiókban megnézheted őket), és nincs API-díj.
Hitelesítés
- Belépés → Beállítások → API → „Új API-kulcs” (a cég tulajdonosa hozhatja létre).
- A kulcsot (aisz_…) csak egyszer mutatjuk – tárold biztonságosan, a szerveren.
- Minden kérésben:
Authorization: Bearer aisz_…
Az API külön díjas kiegészítő. A kulcs bármikor visszavonható; a visszavont kulcsra 401 jön.
Alapok
- Alap URL:
https://www.aiszamla.hu/api/v1 - Formátum: JSON (UTF-8); dátum: ÉÉÉÉ-HH-NN; összeg: szám (nettó egységár).
- Teszt: éles NAV-kapcsolat nélkül a számlák TESZT-sorozatban készülnek – élesítés előtt bátran tesztelj.
- Dupla kiállítás ellen:
externalId(409 ugyanarra). - Hiba esetén:
{ "error": { "code", "message" } }
Fiók
/api/v1/meCég, csomag, felhasználás
A kulcshoz tartozó cég adatai, a NAV-kapcsolat állapota, a csomag kerete és a havi felhasználás. A kulcs ellenőrzésére is ezt érdemes hívni.
Kérés
curl -X GET https://www.aiszamla.hu/api/v1/me \
-H "Authorization: Bearer aisz_…"Válasz · 200
{
"company": { "name": "Minta Kft.", "taxNumber": "12345678-2-41", "email": "minta@aiszamla.hu" },
"nav": { "environment": "production", "verified": true },
"plan": { "name": "Üzleti", "invoicesPerMonth": null, "aiPerMonth": 200 },
"usage": { "invoicesThisMonth": 17, "aiThisMonth": 3 }
}Kimenő számlák, díjbekérők, szállítólevelek
Éles NAV-kapcsolat nélkül a számlák TESZT-sorozatban készülnek (isTest: true) – így élesítés előtt bátran lehet tesztelni.
/api/v1/invoicesSzámla vagy díjbekérő létrehozása
Alapból azonnal kiállítja (sorszám + NAV-beküldés), és ha a vevőnek van e-mail-címe, elküldi neki (a levél gombja a számlára visz; megnyitás ingyenes fiókkal). Piszkozathoz: "issue": false. Az externalId véd a dupla számla ellen (ugyanarra az azonosítóra 409-et ad).
| Mező | Hol | Típus | Leírás |
|---|---|---|---|
| type | body | string | "invoice" (alapértelmezett), "advance" (előlegszámla – a NAV-ba előleg jelöléssel megy; a deliveryDate az előleg megfizetésének napja), "proforma" (díjbekérő, „-DB” sorszám) vagy "delivery" (szállítólevél, „-SZL” sorszám). A díjbekérő és a szállítólevél nem számla, nem megy a NAV-ba. |
| prefix | body | string | Számlaelőtag (sorszámtartomány), pl. "WEB" – a fiókban felvett, bekapcsolt előtagok egyike; üresen az alapértelmezett. Ismeretlen vagy kikapcsolt előtagnál 422 invalid_prefix. |
| electronic | body | boolean | E-számla: true esetén a sorszám „E-” előtagot kap (pl. E-SZLA-2026-00001), és a PDF elektronikus aláírással hitelesített. Alapból (false) papír alapú számla. |
| advanceInvoiceIds | body | string[] | Végszámla: a levonandó előlegszámlák azonosítói (azonos vevő és pénznem). A tételekhez a teljes árat add meg; a rendszer előlegszámlánként és ÁFA-kulcsonként negatív „Előleg (sorszám)” tételt tesz a számlára (NAV: advancePaymentData). Negatív végösszeg nem lehet – ilyenkor 409 advance_failed. |
| showPrices | body | boolean | Szállítólevélen az árak feltüntetése (alapból true; false esetén csak megnevezés és mennyiség). |
| customer.type | body | string | DOMESTIC (adószámos belföldi, alapértelmezett ha van taxNumber), PRIVATE_PERSON (magánszemély), OTHER (külföldi / adószám nélküli szervezet). |
| customer.name * | body | string | A vevő neve. |
| customer.taxNumber | body | string | Belföldi adószám (12345678-1-12) – DOMESTIC vevőnél kötelező. |
| customer.communityVatNumber | body | string | Uniós közösségi adószám (OTHER vevőnél). |
| customer.country | body | string | Kétbetűs országkód (alapból HU). |
| customer.postalCode, city, address * | body | string | A vevő címe. |
| customer.email | body | string | Ide küldjük a számlát. |
| lines[].description * | body | string | Tétel megnevezése. |
| lines[].quantity | body | number | Mennyiség (alapból 1). |
| lines[].unit | body | string | Egység (db, óra, hó, nap, …; alapból db). |
| lines[].unitPrice * | body | number | NETTÓ egységár a számla pénznemében (bruttós tételnél elhagyható). |
| lines[].gross | body | number | A tétel kötött BRUTTÓ összege egész forintban (csak HUF). Bruttó áras rendszereknek (pl. kassza): a nettó és az ÁFA ebből számolódik, a számla végösszege fillérre egyezik a kifizetettel. |
| lines[].vat | body | string | ÁFA: 27, 18, 5, AAM, TAM, KBAET, EAM, … (alapból 27). |
| currency | body | string | HUF (alapértelmezett) vagy bármely háromjegyű ISO 4217 kód (EUR, USD, GBP, CHF, PLN, CZK, RON…). Az MNB által jegyzett devizánál az árfolyam alapból az MNB-é, a többinél az exchangeRate kötelező. |
| exchangeRate | body | number | Saját árfolyam (devizás számlánál). |
| paymentMethod | body | string | TRANSFER (alapértelmezett), CARD, CASH, VOUCHER, OTHER. |
| deliveryDate | body | date | Teljesítés dátuma (alapból ma). |
| paymentDate / dueDays | body | date / number | Fizetési határidő, vagy napok száma a teljesítéstől (alapból 8). |
| note | body | string | Megjegyzés a számlára. |
| issue | body | boolean | false = csak piszkozat (alapból true). |
| sendEmail | body | boolean | false = ne küldje el e-mailben (alapból true). |
| externalId | body | string | Saját azonosító (pl. rendelésszám) – dupla kiállítás ellen. |
Kérés
curl -X POST https://www.aiszamla.hu/api/v1/invoices \
-H "Authorization: Bearer aisz_…" \
-H "Content-Type: application/json" \
-d '{
"customer": {
"taxNumber": "13421739-2-41",
"name": "Napfény Pékség Bt.",
"postalCode": "6720",
"city": "Szeged",
"address": "Példa tér 5.",
"email": "szamla@example.com"
},
"lines": [
{
"description": "Webshop rendelés #1042",
"quantity": 2,
"unit": "db",
"unitPrice": 9990,
"vat": "27"
}
],
"paymentMethod": "CARD",
"externalId": "rendeles-1042"
}'Válasz · 201
{ "id": "6f1c…", "number": "SZLA-2026-00042", "status": "issued", "navStatus": "SAVED", "grossTotal": 25375, "currency": "HUF",
"message": "Beküldve a NAV-nak (éles), tranzakció: 5KD…", "email": "Elküldve: szamla@example.com", "pdf": "/api/v1/invoices/6f1c…/pdf" }Hibák: 400 invalid_json · 409 duplicate (externalId) · 422 validation_failed · 422 invalid_currency
/api/v1/invoicesSzámlák listája
Legújabb elöl. Szűrhető és lapozható.
| Mező | Hol | Típus | Leírás |
|---|---|---|---|
| from, to | query | date | Kelte szerint (ÉÉÉÉ-HH-NN). |
| type | query | string | invoice | advance | proforma | delivery |
| status | query | string | draft | issued | cancelled |
| paid | query | boolean | true = kifizetett, false = nyitott. |
| overdue | query | boolean | true = lejárt, kifizetetlen. |
| q | query | string | Keresés sorszámra, vevőnévre, adószámra. |
| limit, offset | query | number | Lapozás (limit max. 500, alapból 100). |
Kérés
curl -X GET https://www.aiszamla.hu/api/v1/invoices?overdue=true&limit=50 \
-H "Authorization: Bearer aisz_…"Válasz · 200
{ "data": [ {
"id": "6f1c…",
"number": "SZLA-2026-00042",
"type": "invoice", // invoice | advance | proforma | delivery
"prefix": "SZLA", // számlaelőtag (sorszámtartomány)
"kind": "normal", // normal | storno | modify | proforma
"status": "issued", // draft | issued | cancelled
"issueDate": "2026-10-28",
"deliveryDate": "2026-10-28",
"paymentDate": "2026-11-05",
"paidAt": null,
"customer": { "name": "Napfény Pékség Bt.", … },
"grossTotal": 63500,
"netTotal": 50000,
"currency": "HUF",
"navStatus": "DONE", // NAV-feldolgozás állapota
"isTest": false,
"reminderCount": 0,
"pdf": "/api/v1/invoices/6f1c…/pdf"
} ], "limit": 50, "offset": 0 }Hibák: 422 invalid_date
/api/v1/invoices/{id}Egy számla adatai
Tételek, fizetés, NAV-állapot és a kiküldött levelek (kinek, mikor, megnyitotta-e).
Kérés
curl -X GET https://www.aiszamla.hu/api/v1/invoices/6f1c… \
-H "Authorization: Bearer aisz_…"Válasz · 200
{ …számla…, "paymentMethod": "TRANSFER", "vatTotal": 13500, "note": null,
"lines": [ { "description": "Weboldal karbantartás", "quantity": 1, "unit": "hó", "unitPrice": 50000, "vat": "27", "net": 50000, "vatAmount": 13500, "gross": 63500 } ],
"emails": [ { "type": "invoice", "to": "szamla@example.com", "status": "opened", "sentAt": "…", "openedAt": "…", "openCount": 2 } ] }Hibák: 404 not_found
/api/v1/invoices/{id}/pdfSzámla PDF-ben
Az eredeti számlakép PDF-ben (application/pdf).
Kérés
curl -X GET https://www.aiszamla.hu/api/v1/invoices/6f1c…/pdf \
-H "Authorization: Bearer aisz_…" -o szamla.pdfVálasz · 200
(PDF fájl)Hibák: 404 not_found
/api/v1/invoices/{id}/issuePiszkozat kiállítása
Sorszámot kap, és beküldjük a NAV-nak (díjbekérőnél NAV nélkül). Ha a vevőnek van e-mail-címe, elküldjük – ezt { "sendEmail": false } kapcsolja ki.
| Mező | Hol | Típus | Leírás |
|---|---|---|---|
| sendEmail | body | boolean | Alapból true. |
Kérés
curl -X POST https://www.aiszamla.hu/api/v1/invoices/6f1c…/issue \
-H "Authorization: Bearer aisz_…" \
-H "Content-Type: application/json" \
-d '{
"sendEmail": false
}'Válasz · 200
{ "id": "6f1c…", "number": "SZLA-2026-00043", "status": "issued", "navStatus": "SAVED", "message": "…", "email": null }Hibák: 404 not_found · 409 not_draft · 422 issue_failed (pl. csomagkeret, hiányzó adat)
/api/v1/invoices/{id}/sendKüldés e-mailben
A számla (újra)küldése márkázott levélben: melléklet nincs, a gomb a számlára visz (a vevő ingyenes fiókkal nyitja meg és tölti le). Alapból a vevő e-mail-címére.
| Mező | Hol | Típus | Leírás |
|---|---|---|---|
| to | body | string | Másik címzett (nem kötelező). |
Kérés
curl -X POST https://www.aiszamla.hu/api/v1/invoices/6f1c…/send \
-H "Authorization: Bearer aisz_…" \
-H "Content-Type: application/json" \
-d '{
"to": "konyveles@example.com"
}'Válasz · 200
{ "sent": true, "message": "Elküldve: konyveles@example.com" }Hibák: 409 draft · 422 send_failed
/api/v1/invoices/{id}/reminderFizetési emlékeztető / felszólítás
Kifizetetlen számláról: az első levél barátságos emlékeztető, a másodiktól hivatalos fizetési felszólítás (a számla PDF-jével).
Kérés
curl -X POST https://www.aiszamla.hu/api/v1/invoices/6f1c…/reminder \
-H "Authorization: Bearer aisz_…"Válasz · 200
{ "sent": true, "message": "Emlékeztető elküldve: szamla@example.com" }Hibák: 422 reminder_failed (pl. már kifizetett)
/api/v1/invoices/{id}/paymentFizetettnek jelölés
Pl. a banki befizetés beérkezésekor. DELETE ugyanezen az útvonalon visszaállítja nyitottra.
| Mező | Hol | Típus | Leírás |
|---|---|---|---|
| paidAt | body | date | A fizetés napja (alapból ma). |
| note | body | string | Megjegyzés. |
Kérés
curl -X POST https://www.aiszamla.hu/api/v1/invoices/6f1c…/payment \
-H "Authorization: Bearer aisz_…" \
-H "Content-Type: application/json" \
-d '{
"paidAt": "2026-10-28"
}'Válasz · 200
{ "paid": true, "message": "SZLA-2026-00042: fizetettnek jelölve (2026.10.28.)." }Hibák: 409 not_payable · 422 invalid_date
/api/v1/invoices/{id}/paymentFizetés visszavonása
A számla újra nyitott lesz.
Kérés
curl -X DELETE https://www.aiszamla.hu/api/v1/invoices/6f1c…/payment \
-H "Authorization: Bearer aisz_…"Válasz · 200
{ "paid": false, "message": "…" }/api/v1/invoices/{id}/stornoSztornózás
Kiállított számlát nem lehet törölni: sztornó számla készül (ellentétes előjelű tételekkel), és megy a NAV-ba.
Kérés
curl -X POST https://www.aiszamla.hu/api/v1/invoices/6f1c…/storno \
-H "Authorization: Bearer aisz_…"Válasz · 201
{ "storno": true, "message": "…", "stornoId": "a91b…" }Hibák: 409 not_stornoable · 422 storno_failed
/api/v1/invoices/{id}/convertSzámla díjbekérőből vagy szállítólevélből
Számla-piszkozat egy kiállított díjbekérő (az fizetett lesz) vagy szállítólevél tételeiből. Díjbekérőből előlegszámla is készülhet: {"type": "advance"}. A piszkozatot az /issue végponttal állítod ki.
| Mező | Hol | Típus | Leírás |
|---|---|---|---|
| type | body | string | Csak díjbekérőnél: "advance" = előlegszámla (alapból normál számla). |
Kérés
curl -X POST https://www.aiszamla.hu/api/v1/invoices/9a2e…/convert \
-H "Authorization: Bearer aisz_…" \
-H "Content-Type: application/json" \
-d '{
"type": "advance"
}'Válasz · 201
{ "id": "c41d…", "status": "draft", "message": "…", "issue": "/api/v1/invoices/c41d…/issue" }Hibák: 404 not_found · 409 not_convertible · 409 convert_failed (pl. már számlázott – details.invoiceId)
/api/v1/delivery-notes/invoiceEgy számla több szállítólevélből
Azonos vevő, még nem számlázott szállítóleveleinek tételeiből egy számla-piszkozat (a tételeknél a szállítólevél sorszámával). A szállítólevelek „Számlázva” állapotba kerülnek; ha a piszkozatot törlöd vagy a számlát sztornózod, újra számlázhatók.
| Mező | Hol | Típus | Leírás |
|---|---|---|---|
| ids * | body | string[] | A szállítólevelek azonosítói (1–50). |
Kérés
curl -X POST https://www.aiszamla.hu/api/v1/delivery-notes/invoice \
-H "Authorization: Bearer aisz_…" \
-H "Content-Type: application/json" \
-d '{
"ids": [
"9a2e…",
"b77f…"
]
}'Válasz · 201
{ "id": "c41d…", "status": "draft", "message": "Számla-piszkozat elkészült 2 szállítólevélből – …", "issue": "/api/v1/invoices/c41d…/issue" }Hibák: 400 invalid_json · 422 validation_failed · 409 convert_failed (eltérő vevő / pénznem, már számlázott)
/api/v1/invoices/{id}Piszkozat törlése
Csak piszkozat törölhető.
Kérés
curl -X DELETE https://www.aiszamla.hu/api/v1/invoices/6f1c… \
-H "Authorization: Bearer aisz_…"Válasz · 200
{ "deleted": true, "id": "6f1c…" }Hibák: 409 not_draft
Ismétlődő számlák
Havonta / negyedévente / félévente / évente magától kiállított számlák mintái – ugyanaz az ellenőrzés és működés, mint a webes Ismétlődő számlák oldalon (a kiállítás napján sorszám, NAV-beküldés, és ha kérted, e-mail a vevőnek). Tétel-megjegyzés (note): a megnevezés alatti külön sor a számlaképen; a NAV-nak a megnevezéssel szóközzel összefűzve megy. A megnevezésben és a megjegyzésben a {HÓNAP} (a kiállítás hónapja, pl. „2026. december”), {ELŐZŐ_HÓNAP}, {KÖVETKEZŐ_HÓNAP} és {ÉV} a kiállításkor helyettesítődik.
/api/v1/recurring-invoicesIsmétlődő számla létrehozása
Az első számla a nextRun napján készül (ma vagy később), utána a gyakoriság szerint a hónap dayOfMonth. napján (1–28; ha hiányzik, a nextRun napja, legfeljebb 28.). Az externalId véd a dupla felvitel ellen (409). Devizás mintánál az árfolyam a kiállítás napi MNB-árfolyam.
| Mező | Hol | Típus | Leírás |
|---|---|---|---|
| customer * | body | object | Mint a számlánál: type (DOMESTIC | PRIVATE_PERSON | OTHER), name, taxNumber / communityVatNumber, country, postalCode, city, address, email – több cím vesszővel elválasztva (mind megkapja). |
| lines[] * | body | array | description, note (a megnevezés alatti megjegyzés-sor, nem kötelező), quantity, unit, unitPrice (nettó), vat (27 | 18 | 5 | 0 | AAM | EUFAD37 | …). |
| nextRun * | body | date | Az első kiállítás napja (ÉÉÉÉ-HH-NN). |
| intervalMonths | body | number | 1 | 3 | 6 | 12 (alapból 1). |
| dayOfMonth | body | number | 1–28: a további kiállítások napja. |
| currency | body | string | HUF (alapból), EUR, USD… |
| paymentMethod | body | string | TRANSFER (alapból) | CARD | CASH | VOUCHER | OTHER. |
| dueMode, dueDays, dueDay | body | string, number | A fizetési határidő: napok (alapból; dueDays = a kiállítástól számított 0–120 nap), honap / kovhonap (a kiállítás / a következő hónap dueDay. napja, 31 = a hónap utolsó napja). |
| deliveryDelayDays | body | number | A teljesítés napja = a kiállítás + ennyi nap (0–60, alapból 0 = a kiállítás napja). |
| sendEmail | body | boolean | Kiállítás után e-mail a vevőnek (ha van címe). |
| electronic | body | boolean | E-számla (hitelesített PDF, „E-” előtagú sorszám). |
| prefix | body | string | Számlaelőtag; üres = a cég alapértelmezettje. |
| period | body | object | A számla időszaka: mode (none | current | next | prev | custom), custom módnál start. |
| continuous | body | boolean | Folyamatos teljesítés (Áfa tv. 58. §; csak HUF, időszakkal). |
| draftOnly | body | boolean | true: a kiállítás napján csak piszkozat készül (értesítéssel), kézzel kell kiállítani. |
| name, endDate, bankAccount, contractNumber, contractLabel, externalId | body | Megnevezés a listában, utolsó kiállítás napja, a cég egyik bankszámlája, szerződésszám és felirata, külső azonosító. |
Kérés
curl -X POST https://www.aiszamla.hu/api/v1/recurring-invoices \
-H "Authorization: Bearer aisz_…" \
-H "Content-Type: application/json" \
-d '{
"externalId": "szlz-297686",
"name": "Varga Klaudia – weboldal",
"nextRun": "2026-12-08",
"intervalMonths": 1,
"dueDays": 8,
"deliveryDelayDays": 8,
"sendEmail": true,
"electronic": true,
"customer": {
"type": "PRIVATE_PERSON",
"name": "Varga Klaudia",
"postalCode": "1111",
"city": "Budapest",
"address": "Minta utca 1.",
"email": "a@pelda.hu, b@pelda.hu"
},
"lines": [
{
"description": "Weboldal üzemeltetés",
"note": "Számlázási időszak: {HÓNAP}",
"quantity": 1,
"unit": "db",
"unitPrice": 25000,
"vat": "27"
}
]
}'Válasz · 201
{
"id": "0c2e…", "number": "ISM-0001", "externalId": "szlz-297686", "status": "active", // active | stopped | archived
"nextRun": "2026-12-08", "dayOfMonth": 8, "intervalMonths": 1, "deliveryDelayDays": 8, "dueMode": "napok", "dueDays": 8,
"lines": [{ "description": "Weboldal üzemeltetés", "note": "Számlázási időszak: {HÓNAP}", … }],
"lastRun": null, "lastInvoiceId": null, "lastError": null, "preview": "/api/v1/recurring-invoices/0c2e…/preview", …
}Hibák: 409 duplicate (externalId) · 422 validation_failed · 422 invalid_prefix
/api/v1/recurring-invoicesIsmétlődő számlák listája
?archived=true: az archiváltak is.
Kérés
curl -X GET https://www.aiszamla.hu/api/v1/recurring-invoices \
-H "Authorization: Bearer aisz_…"Válasz · 200
{ "data": [ … ] }/api/v1/recurring-invoices/{id}Egy ismétlődő számla
Az utolsó kiállítás (lastRun, lastInvoiceId) és az esetleges hiba (lastError) is.
Kérés
curl -X GET https://www.aiszamla.hu/api/v1/recurring-invoices/0c2e… \
-H "Authorization: Bearer aisz_…"Válasz · 200
{ "id": "0c2e…", "number": "ISM-0001", … }/api/v1/recurring-invoices/{id}Módosítás
Csak a megadott mezők változnak (a lines – ha megadod – a teljes tétellistát cseréli). Módosítható a vevő, a fizetési mód, az előtag, az e-számla is; active: false leállítja, true újraindítja. A pénznem nem módosítható. Archivált minta nem módosítható.
Kérés
curl -X PATCH https://www.aiszamla.hu/api/v1/recurring-invoices/0c2e… \
-H "Authorization: Bearer aisz_…" \
-H "Content-Type: application/json" \
-d '{
"deliveryDelayDays": 0,
"active": false
}'Válasz · 200
{ "id": "0c2e…", … }Hibák: 404 not_found · 409 archived · 422 validation_failed
/api/v1/recurring-invoices/{id}/archiveArchiválás / visszaállítás
Archiválva egyben le is áll (nem állít ki több számlát). Törzs {"archived": false}: visszaállítás (leállítva marad – PATCH active: true indítja újra).
Kérés
curl -X POST https://www.aiszamla.hu/api/v1/recurring-invoices/0c2e…/archive \
-H "Authorization: Bearer aisz_…"Válasz · 200
{ "id": "0c2e…", "status": "archived", … }/api/v1/recurring-invoices/{id}/previewA következő számla előnézete
Mentés és sorszám nélkül – ugyanazok az adatok és ugyanaz a számlakép, mint a kiállításkor (árfolyam, teljesítés, határidő, időszak, {HÓNAP}). ?date=ÉÉÉÉ-HH-NN: egy adott kiállítási napra; ?format=pdf: a számlakép PDF-ben.
Kérés
curl -X GET https://www.aiszamla.hu/api/v1/recurring-invoices/0c2e…/preview?date=2026-12-08 \
-H "Authorization: Bearer aisz_…"Válasz · 200
{
"issueDate": "2026-12-08", "deliveryDate": "2026-12-16", "paymentDate": "2026-12-16", "currency": "HUF", "exchangeRate": 1,
"lines": [{ "description": "Weboldal üzemeltetés", "note": "Számlázási időszak: 2026. december", "net": 25000, "vatAmount": 6750, "gross": 31750, … }],
"netTotal": 25000, "vatTotal": 6750, "grossTotal": 31750, "pdf": "/api/v1/recurring-invoices/0c2e…/preview?format=pdf&date=2026-12-08"
}Nyugták
Számítógéppel kiállított nyugta (Áfa tv. 173. §). Azonnal sorszámot kap (<előtag>-NY-<év>-<sorszám>); az adatait a rendszer naponta, ÁFA-kategóriánként összesítve jelenti a NAV-nak (nyugtaadat-szolgáltatás). Az egységár bruttó, ÁFÁ-t tartalmazó ár.
/api/v1/receiptsNyugta kiállítása
Ha a vevőnek van e-mail-címe, a nyugtát PDF-ben el is küldjük ("sendEmail": false esetén nem). Az externalId véd a dupla nyugta ellen (409).
| Mező | Hol | Típus | Leírás |
|---|---|---|---|
| lines[].description * | body | string | Megnevezés. |
| lines[].quantity | body | number | Mennyiség (alapból 1, pozitív). |
| lines[].unit | body | string | Mértékegység (alapból db). |
| lines[].unitPrice * | body | number | Bruttó (ÁFÁ-t tartalmazó) egységár. |
| lines[].vat | body | string | 27 | 18 | 5 | TAM | ATK; alanyi adómentes kiállítónál AAM. |
| paymentMethod | body | string | CASH (alapértelmezett) | CARD | TRANSFER | VOUCHER | OTHER. |
| currency, exchangeRate | body | string, number | Pénznem (alapból HUF); devizánál az árfolyam kötelező. |
| prefix | body | string | Számlaelőtag (sorozat); üresen az alapértelmezett. |
| customer.name, customer.email | body | string | Nem kötelező; e-mail-címre a nyugta PDF-je megy. |
| externalId | body | string | Saját azonosító (pl. webshop-rendelésszám) – kétszeri beküldés ellen. |
Kérés
curl -X POST https://www.aiszamla.hu/api/v1/receipts \
-H "Authorization: Bearer aisz_…" \
-H "Content-Type: application/json" \
-d '{
"paymentMethod": "CARD",
"lines": [
{
"description": "Kávé",
"quantity": 2,
"unitPrice": 690,
"vat": "27"
}
],
"customer": {
"email": "vevo@example.com"
}
}'Válasz · 201
{ "id": "b3f1…", "number": "SZLA-NY-2026-00042", "type": "receipt", "status": "issued", "grossTotal": 1380, "reported": false, "pdf": "/api/v1/receipts/b3f1…/pdf" }Hibák: 400 invalid_json · 422 validation_failed · 409 duplicate
/api/v1/receiptsNyugták listája
Szűrők: from, to (ÉÉÉÉ-HH-NN), limit (max. 500), offset.
Kérés
curl -X GET https://www.aiszamla.hu/api/v1/receipts?from=2026-10-01&limit=50 \
-H "Authorization: Bearer aisz_…"Válasz · 200
{ "data": [ … ], "limit": 50, "offset": 0 }/api/v1/receipts/{id}Egy nyugta adatai
Tételekkel, a NAV-jelentés állapotával (reported).
Kérés
curl -X GET https://www.aiszamla.hu/api/v1/receipts/b3f1… \
-H "Authorization: Bearer aisz_…"Válasz · 200
{ "id": "b3f1…", "number": "SZLA-NY-2026-00042", "lines": [ … ], "reported": true, … }/api/v1/receipts/{id}/pdfNyugta PDF-ben
80 mm széles nyugtakép.
Kérés
curl -X GET https://www.aiszamla.hu/api/v1/receipts/b3f1…/pdf \
-H "Authorization: Bearer aisz_…"Válasz · 200
application/pdf/api/v1/receipts/{id}/voidNyugta érvénytelenítése
Érvénytelenítő bizonylat (Áfa tv. 173/B. §) az eredeti nyugtára hivatkozva, ugyanabban a sorozatban; a NAV-jelentésben módosító bizonylatként szerepel.
| Mező | Hol | Típus | Leírás |
|---|---|---|---|
| reason | body | string | Az érvénytelenítés oka (nem kötelező, a bizonylaton szerepel). |
Kérés
curl -X POST https://www.aiszamla.hu/api/v1/receipts/b3f1…/void \
-H "Authorization: Bearer aisz_…" \
-H "Content-Type: application/json" \
-d '{
"reason": "téves ütés"
}'Válasz · 201
{ "voidId": "c9a2…", "number": "SZLA-NY-2026-00043", "message": "…" }Hibák: 404 not_found · 409 already_voided
Más programmal kiállított kimenő számlák (NAV-ból)
A cég más számlázóban (pl. Számlázz.hu) kiállított számlái, amelyeket az aiszamla a NAV-ból húz be (a Kimenő számlák lista „NAV-ból” sorai). Ezek nem módosíthatók, de a kiegyenlítésük rögzíthető – ugyanúgy, mint a számla oldalán a „Kiegyenlítési módok” sorai: a sorok összege adja a fizetettséget, és ettől frissül a kimenő lista állapota és összesítője. Csak nyilvántartás: pénzmozgást nem indít.
/api/v1/outbound-invoicesLista
Szűrők: from, to (kelte, ÉÉÉÉ-HH-NN), paid (true | false), overdue (true = lejárt és nyitott), q (sorszám, vevő neve vagy adószáma). Lapozás: limit (max. 500), offset; a total a szűrés szerinti összes darab.
Kérés
curl -X GET https://www.aiszamla.hu/api/v1/outbound-invoices?overdue=true&limit=200 \
-H "Authorization: Bearer aisz_…"Válasz · 200
{
"data": [{
"id": "9a1e…", "number": "DYNEX-2026-58", "operation": "CREATE", "customer": { "name": "Minta Kft.", "taxNumber": "12345678" },
"issueDate": "2026-09-08", "paymentDate": "2026-09-16", "gross": 107937, "currency": "HUF", "paymentMethod": "CARD",
"paidAt": null, "paidAmount": 0, "paidMethod": null, "overdue": true, "hasImage": false, …
}],
"total": 581, "limit": 200, "offset": 0
}/api/v1/outbound-invoices/{id}Egy számla
A rögzített fizetési sorokkal (payments).
Kérés
curl -X GET https://www.aiszamla.hu/api/v1/outbound-invoices/9a1e… \
-H "Authorization: Bearer aisz_…"Válasz · 200
{ "id": "9a1e…", "number": "DYNEX-2026-58", …, "payments": [{ "id": 12, "paidOn": "2026-09-10", "method": "CARD", "amount": 107937 }] }/api/v1/outbound-invoices/{id}/paymentKiegyenlítés rögzítése
Új fizetési sor. Ha a sorok összege eléri a végösszeget, a számla kiegyenlített. Sztornó / módosító számlára és a nyitott összegnél nagyobb összegre nem rögzít.
| Mező | Hol | Típus | Leírás |
|---|---|---|---|
| paidAt | body | date | A fizetés napja (alapból ma; jövőbeli nem lehet). |
| amount | body | number | Az összeg a számla pénznemében (alapból a teljes nyitott összeg). |
| method | body | string | TRANSFER (alapból) | CARD | CASH | OTHER. |
| account | body | string | Átutalásnál a bankszámlaszám (elhagyható). |
| note | body | string | Megjegyzés; OTHER módnál kötelező (pl. PayPal). |
| clientRef | body | string | Egyedi azonosító (pl. a Stripe-fizetés vagy a banki tétel azonosítója) – ugyanazzal újra küldve 409 duplicate, nem rögzít kétszer. |
Kérés
curl -X POST https://www.aiszamla.hu/api/v1/outbound-invoices/9a1e…/payment \
-H "Authorization: Bearer aisz_…" \
-H "Content-Type: application/json" \
-d '{
"paidAt": "2026-09-10",
"method": "CARD",
"clientRef": "stripe:pi_3Q…"
}'Válasz · 201
{ "message": "107 937 Ft rögzítve (Bankkártya, 2026. 09. 10.). A számla kiegyenlítve.", "paidAt": "2026-09-10", "paidAmount": 107937, "payments": [ … ], … }Hibák: 409 already_paid · 409 duplicate · 409 not_payable · 422 overpayment
/api/v1/outbound-invoices/{id}/documentSzámlakép csatolása
PDF vagy kép (JPG, PNG, WEBP, HEIC; legfeljebb 10 MB) csatolása – ugyanoda, ahová a számla oldalán a feltöltés megy. Törzs: multipart (file mező) vagy JSON (filename, contentBase64, mediaType). A típust a fájl tartalma dönti el. Ugyanaz a fájl ugyanahhoz a számlához nem kerül fel kétszer (alreadyUploaded: true).
Kérés
curl -X POST https://www.aiszamla.hu/api/v1/outbound-invoices/9a1e…/document \
-H "Authorization: Bearer aisz_…" \
-H "Content-Type: application/json" \
-d '{
"filename": "DYNEX-2026-58.pdf",
"contentBase64": "JVBERi0xLjQK…"
}'Válasz · 201
{ "id": 812, "invoiceId": "9a1e…", "number": "DYNEX-2026-58", "filename": "DYNEX-2026-58.pdf", "mediaType": "application/pdf", "size": 48211, "sha256": "…", "alreadyUploaded": false }Hibák: 404 not_found · 413 too_large · 422 invalid_type
/api/v1/outbound-invoices/{id}/paymentKiegyenlítés visszavonása
A számla összes fizetési sora törlődik, a számla újra nyitott.
Kérés
curl -X DELETE https://www.aiszamla.hu/api/v1/outbound-invoices/9a1e…/payment \
-H "Authorization: Bearer aisz_…"Válasz · 200
{ "id": "9a1e…", "paidAt": null, "paidAmount": 0, "payments": [], … }Bejövő számlák
A cégnek kiállított számlák: a NAV-ból, a cég saját címére küldött levelekből és a lefotózott (AI-val rögzített) számlákból.
/api/v1/incoming-invoicesBejövő számlák listája
Forintosított összegekkel; a source mutatja, honnan jött (nav | ai).
| Mező | Hol | Típus | Leírás |
|---|---|---|---|
| from, to | query | date | Kelte szerint. |
| paid | query | boolean | true | false |
| limit, offset | query | number | Lapozás. |
Kérés
curl -X GET https://www.aiszamla.hu/api/v1/incoming-invoices?paid=false \
-H "Authorization: Bearer aisz_…"Válasz · 200
{ "data": [ { "id": "…", "number": "E-2026-1042", "supplier": { "name": "Szállító Kft.", "taxNumber": "12345678" }, "issueDate": "2026-10-20",
"paymentDate": "2026-11-03", "currency": "HUF", "net": 10000, "vat": 2700, "gross": 12700, "netHuf": 10000, "vatHuf": 2700, "source": "nav", "paidAt": null, "hasImage": true } ],
"limit": 100, "offset": 0 }/api/v1/incoming-invoices/{id}/paymentBejövő számla kifizetése
DELETE ugyanezen az útvonalon visszaállítja nyitottra.
| Mező | Hol | Típus | Leírás |
|---|---|---|---|
| paidAt | body | date | Alapból ma. |
Kérés
curl -X POST https://www.aiszamla.hu/api/v1/incoming-invoices/…/payment \
-H "Authorization: Bearer aisz_…" \
-H "Content-Type: application/json" \
-d '{
"paidAt": "2026-10-28"
}'Válasz · 200
{ "id": "…", "number": "E-2026-1042", "paidAt": "2026-10-28" }Hibák: 404 not_found · 422 invalid_date
Törzsadatok
/api/v1/partnersVevők
A kiállított számlák vevői (utolsó ismert adatokkal), forgalommal és lejárt tartozással.
| Mező | Hol | Típus | Leírás |
|---|---|---|---|
| q | query | string | Név vagy adószám. |
Kérés
curl -X GET https://www.aiszamla.hu/api/v1/partners?q=Napf \
-H "Authorization: Bearer aisz_…"Válasz · 200
{ "data": [ { "name": "Napfény Pékség Bt.", "taxNumber": "13421739-2-41", "email": "…", "invoices": 6, "totalHuf": 381000, "overdueHuf": 228600 } ] }/api/v1/productsTermékek
A terméktörzs.
Kérés
curl -X GET https://www.aiszamla.hu/api/v1/products \
-H "Authorization: Bearer aisz_…"Válasz · 200
{ "data": [ { "id": "…", "name": "Weboldal karbantartás", "sku": null, "unit": "hó", "unitPrice": 89000, "vat": "27", "currency": "HUF" } ] }/api/v1/productsTermék létrehozása / frissítése
Név alapján: ha már van ilyen nevű termék, frissíti (200), különben létrehozza (201).
| Mező | Hol | Típus | Leírás |
|---|---|---|---|
| name * | body | string | Megnevezés. |
| unitPrice * | body | number | Nettó egységár. |
| unit | body | string | Egység (alapból db). |
| vat | body | string | ÁFA-kód (alapból 27). |
| currency | body | string | Alapból HUF. |
| sku | body | string | Cikkszám. |
Kérés
curl -X POST https://www.aiszamla.hu/api/v1/products \
-H "Authorization: Bearer aisz_…" \
-H "Content-Type: application/json" \
-d '{
"name": "Weboldal karbantartás",
"unitPrice": 89000,
"unit": "hó",
"vat": "27"
}'Válasz · 201 / 200
{ "id": "…", "name": "Weboldal karbantartás", "unit": "hó", "unitPrice": 89000, "vat": "27", "currency": "HUF", "sku": null }Hibák: 400 invalid_json · 422 validation_failed
/api/v1/products/{id}Termék törlése
Kérés
curl -X DELETE https://www.aiszamla.hu/api/v1/products/… \
-H "Authorization: Bearer aisz_…"Válasz · 200
{ "deleted": true, "id": "…" }Hibák: 404 not_found
/api/v1/taxpayers/{adószám}Adószám lekérdezése a NAV-ból
Hivatalos név, cím, és hogy élő adózó-e – vevő felvételéhez.
Kérés
curl -X GET https://www.aiszamla.hu/api/v1/taxpayers/13421739 \
-H "Authorization: Bearer aisz_…"Válasz · 200
{ "valid": true, "name": "KBOSS.HU KFT.", "taxNumber": "13421739-2-41", "address": { "postalCode": "1031", "city": "BUDAPEST", "addressLine": "ZÁHONY UTCA 7." } }Hibák: 404 not_found (nincs ilyen / nem élő adózó) · 422 invalid_tax_number · 503 nav_unavailable
Hibakódok
- 400 invalid_jsonA kérés törzse nem érvényes JSON.
- 401 unauthorizedHiányzó, hibás vagy visszavont API-kulcs.
- 403 api_not_enabledA cég csomagjában nincs API-hozzáférés (külön kiegészítő).
- 404 not_foundNincs ilyen erőforrás a cégnél.
- 409 duplicate / not_draft / …Ütközés: már létezik, már kiállított, már sztornózott.
- 422 validation_failed / …Hibás adat – a message pontosan megmondja, mi a gond (pl. hiányzó cím, rossz adószám).
- 503 nav_unavailableA NAV most nem érhető el – próbáld újra később.
Kérdésed van? Írj a fiókodban a Segítség chatbe, vagy nézd meg a Tudástárat.
