Válasz
Számla készítésre kapott válaszok
A response header mindig név=érték párokból áll. A Számla Agent a következő neveken tud adatot tenni a header-be, ezek mindig szlahu_
prefixszel kezdődnek:
szlahu_szamlaszam
: a számla száma melyre a jóváírást rögzítettük, url encodedszlahu_nettovegosszeg
: szám típusú adat, nincs url encode-olvaszlahu_bruttovegosszeg
: szám típusú adat, nincs url encode-olvaszlahu_error
: ha volt hiba, akkor a hibaüzenet szövege, 1 mondat, url encodedszlahu_error_code
: szám típusú adat, nincs url encode-olva (ld. bőbebben itt)szlahu_fizetesmod
: fizetési mód, szöveges adatszlahu_vevoifiokurl
: bekapcsolt vevői fiók esetén a partner egyedi URL-je, ahol a számára kiállított számlákat megtekintheti
Ha a fejlécben hibakódok szerepelnek, a többi adat (számlaszám, bruttó és nettó érték) nem lesz jelen a fejlécben. XML-válasz esetén az XML a fejléc mellett ezeket az adatokat is tartalmazza.
Szöveges válasz esetén (valaszVerzio=1)
Az XML-ben megadható, hogy a válaszba bekerüljön-e az elkészült számla PDF fájl vagy sem:
- ha ez true (tehát szükség van az elkészült számla letöltésére) és minden rendben volt, akkor a válasz az egy PDF fájl, amely maga a számla
- ha ez false (tehát nem kívánják letölteni a frissen elkészített számlát PDF formátumban) és minden rendben volt, akkor a válasz a következő felépítésű szöveg:
xmlagentresponse=DONE
;a létrejött számla száma. Tehát sikeres számlalezárás után a visszakapott válasz értéke a következő lehet pl.:xmlagentresponse=DONE;ABC-2024-123
- ha hiba történt a számla készítés közben, akkor egy vagy több hibaüzenetet fogunk kapni.
A hibaüzenet formája ilyen lesz, ebből az [ERR]
és a ------------
közötti rész fontos.
[ERR] Számla mentés sikertelen. Már létező rendelésszám: XX. ---------- t.getMessage(): Már létező rendelésszám:XX. ---------- [CEG:978]
[MODUL:SZAMLAZZGUI] [INSTANCE:hu.kboss.szamlazz.gui.action.AcXmlSzamla] Már
létező rendelésszám: XX.[LOCATION:hu.kboss.szamlazz.api.bean.SzFej.insert (SzFej.java) #1700]
hu.kboss.szamlazz.api.bean.SzFej.insert(SzFej.java:1700)
hu.kboss.szamlazz.gui.action.AcXmlSzamla.performAction(AcXmlSzamla.java:242)
hu.kboss.szamlazz.controller.Controller.executeAction(Controller.java:715)
hu.kboss.szamlazz.controller.Controller.doGet(Controller.java:468)
hu.kboss.szamlazz.controller.Controller.doPost(Controller.java:639)
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:200)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.java:662)
XML válasz esetén (valaszVerzio=2)
A válasz szerkezete lényegesen eltér hiszen ez XML, de az előállítás logikája nagyon hasonló.
Az XML válasz mellett a response headerben a fentebb leírt paraméterek továbbra is érkeznek.
A számla PDF a válasz XML-ben a <pdf></pdf>
tag-ek között base64 kódolással jelenik meg.
Minta XML válasz siker esetén
<?xml version="1.0" encoding="UTF-8"?>
<xmlszamlavalasz xmlns="http://www.szamlazz.hu/xmlszamlavalasz" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<sikeres>true</sikeres>
<szamlaszam>ABC-2024-3</szamlaszam>
<szamlanetto>30000</szamlanetto>
<szamlabrutto>38100</szamlabrutto>
<kintlevoseg>0</kintlevoseg>
<vevoifiokurl>https://www.szamlazz.hu/szamla/?page=vevoifiokpay&partguid=ddddddddddddddd&szfejguid=bbbbbbbbbbbbbbbbbbbbb</vevoifiokurl>
<pdf>JVBERi0xLjQKJdDUxdgKMSAwIG9iago8PCAvUyAvR29UbyAvRCBbMiAwIFIgIC9GaXQgXSA+Pgpl
bmRvYmoKNCAwIG9iaiA8PAovTGVuZ3RoIDE4MDggICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUK
Pj4Kc3RyZWFtCnjaxVjLbttGFN37K7gpQAHlZN4P72zUTpvATVu72aRZqBLtKHqlEm0jAor8es88
RJESLduRgXoRTTjDO+fee+6LNLvJaPb66PTq6NU5c5kjTnOdXV1nmhJnMqMEMUJkV8PsQ85I7+PV
m1fntnGMCSKEg4xw4kuP2/wvykVPGp6Xk2FYK0rz/sxvfe0VQgicULRclMOyGmHJegVXxtH8crU5
Pp30l83/HvcKxrH66fXrglPGC+GxHNGEf/sXyuiMS2KsYQGmsUQLmxVcE6VtRHu56iW0SqlwZafM
....
MDAwMDg2NTIxIDAwMDAwIG4gCjAwMDAwODY2NTcgMDAwMDAgbiAKMDAwMDA4NjY5MyAwMDAwMCBu
IAowMDAwMDg2Nzk4IDAwMDAwIG4gCnRyYWlsZXIKPDwgL1NpemUgNDIKL1Jvb3QgNDAgMCBSCi9J
bmZvIDQxIDAgUgovSUQgWzxENDhERjNFQTdFM0MwQ0QyNDY0RUIzNzYwRTJBQzdBRj4gPEQ0OERG
M0VBN0UzQzBDRDI0NjRFQjM3NjBFMkFDN0FGPl0gPj4Kc3RhcnR4cmVmCjg3MTIzCiUlRU9G</pdf>
</xmlszamlavalasz>
Minta XML válasz hiba esertén
<?xml version="1.0" encoding="UTF-8"?>
<xmlszamlavalasz xmlns="http://www.szamlazz.hu/xmlszamlavalasz" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<sikeres>false</sikeres>
<hibakod>3</hibakod>
<hibauzenet><![CDATA[Bejelentkezési hiba - a megadott login név és jelszó pároshoz nem létezik felhasználó]]></hibauzenet>
</xmlszamlavalasz>
Válasz XSD séma
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.szamlazz.hu/xmlszamlavalasz" xmlns:tns="http://www.szamlazz.hu/xmlszamlavalasz" elementFormDefault="qualified">
<complexType name="szamlavalasz">
<sequence>
<element name="sikeres" type="int" maxOccurs="1" minOccurs="1"></element>
<element name="hibakod" type="string" maxOccurs="1" minOccurs="0"></element>
<element name="hibauzenet" type="string" maxOccurs="1" minOccurs="0"></element>
<element name="szamlaszam" type="string" maxOccurs="1" minOccurs="0"></element>
<element name="szamlanetto" type="double" maxOccurs="1" minOccurs="0"></element>
<element name="szamlabrutto" type="double" maxOccurs="1" minOccurs="0"></element>
<element name="kintlevoseg" type="double" maxOccurs="1" minOccurs="0"></element>
<element name="vevoifiokurl" type="string" maxOccurs="1" minOccurs="0"></element>
<element name="pdf" type="base64Binary" maxOccurs="1" minOccurs="0"></element>
</sequence>
</complexType>
<element name="xmlszamlavalasz" type="tns:szamlavalasz"></element>
</schema>
In case you request the creation of a paper-based (non-electronic) invoice and you need the download option <szamlaletoltes>true</szamlaletoltes>
you can indicate that you not only need the original version of the invoice but the copy in a single PDF as well. You can indicate this in the <szamlaletoltesPld>2</szamlaletoltesPld>
variable.