Ugrás a fő tartalomhoz

Válasz

Sztornó 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 encoded
  • szlahu_nettovegosszeg: szám típusú adat, nincs url encode-olva
  • szlahu_bruttovegosszeg: szám típusú adat, nincs url encode-olva
  • szlahu_error: ha volt hiba, akkor a hibaüzenet szövege, 1 mondat, url encoded
  • szlahu_error_code: szám típusú adat, nincs url encode-olva (ld. bőbebben itt)
  • szlahu_fizetesmod: fizetési mód, szöveges adat
  • szlahu_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>
információ

Amennyiben papír alapú (nem elektronikus) számla elkészítését kéred, és szükséged van PDF-re (<szamlaletoltes>true</szamlaletoltes>), akkor jelezheted, hogy nem csak a számla eredeti példányára van szükséged, hanem a másodpéldányra is. Ezt a <szamlaletoltesPld>2</szamlaletoltesPld> változóban adhatod meg.

Ez korábban kulcsfontosságú volt, régebbi számlaképek esetén még meg is különböztetjük a pédányszámokat, de az újabb számlaképek esetén ez szükségtelen. Bővebben erről itt írunk még.