A kassza minden kérést HTTPS-en küld a https://www.szamlazz.hu/szamla/ címre. Ezen az oldalon azt találod, amire egy szigorúbban védett szerveren szükséged lehet: IP-címek a tűzfalhoz, időkorlát, újrapróbálás és naplózás.
A Számlázz.hu a Cloudflare hálózatán keresztül érhető el. Ha a szervered csak engedélyezett címekre indíthat kapcsolatot, a 443-as porton engedd a Cloudflare alábbi IPv4 tartományait. A lista 2025. augusztus 1-je óta érvényes.
A Számlázz.hu a fizetési értesítéseket (IPN) és a többi, általa indított hívást az alábbi címekről küldi. Ha a webhook végpontodat IP alapján korlátozod, ezeket engedélyezd:
Kimenő IP-cím
Mire használd
3.73.214.98
IPN értesítés és egyéb, a Számlázz.hu felől érkező hívás engedélyezése
3.76.149.232
IPN értesítés és egyéb, a Számlázz.hu felől érkező hívás engedélyezése
18.153.156.51
IPN értesítés és egyéb, a Számlázz.hu felől érkező hívás engedélyezése
A lista a kódban is elérhető, és az isSzamlazzIp() ellenőrzi, hogy egy cím a Számlázz.hu-é-e:
app/api/szamlazz/ipn/route.ts
import { ipnOkResponse, isSzamlazzIp, readIpnNotification } from 'kassza/ipn'export async function POST(request: Request) { const ip = request.headers.get('x-forwarded-for') if (!isSzamlazzIp(ip)) return new Response('Tiltott', { status: 403 }) const ertesites = await readIpnNotification(request) await rendelesFizetve(ertesites) return ipnOkResponse()}
Egy kérés alapból 60 másodpercig várhat válaszra, ezt a timeoutMs opcióval módosíthatod. Egy hívásra saját AbortSignal-t is adhatsz, például ha a webhook szolgáltatód 10 másodpercen belül választ vár:
A biztonságosan ismételhető műveleteket a kassza hálózati hiba, 5xx válasz, időtúllépés és karbantartás esetén magától újrapróbálja, 1, majd 2 másodperc várakozással. A hookokkal minden próbálkozást naplózhatsz:
Hookok és újrapróbálás
Naplózás hookokkal, miközben a kassza egy hálózati hiba után újrapróbál.
→ createInvoice, 1. próbálkozás← createInvoice: HTTP 200, 1 ms→ getInvoicePdf, 1. próbálkozás✕ getInvoicePdf: network, újrapróbálás→ getInvoicePdf, 2. próbálkozás← getInvoicePdf: HTTP 200, 1 msA PDF a második próbálkozásra megérkezett: Uint8Array(2657) [PDF]
A hookok a műveletet, a próbálkozás sorszámát, a HTTP státuszt, az időtartamot és a hibát kapják meg. Az Agent kulcsot és a kérés XML-jét soha, így a naplóba nem kerülhet titok vagy vevőadat.