Forwarding Outgoing Invoices
Számlázz.hu is capable of transferring invoices (and PDFs) created in the billing account to an external system. By providing two additional parameters (URL for receiving outgoing invoices) in the table defined in the registration section, an existing connection can be easily expanded. The transfer is push-based, meaning that when an invoice is issued in Számlázz.hu, Számlázz.hu sends a message about it to the receiving system. There is no option for the receiving system to "query" the invoice data.
The operating logic described in the Details of operation section applies to outgoing invoices just as it does to incoming ones.
Transferrable document types
The following types of (outgoing) documents are transferred by Számlázz.hu to the receiving system:
- invoices
- cancellation invoices
- corrective invoices
- advance invoices
- final invoices
- pro forma invoices
- delivery notes
If the receiving system does not need any of the document types, it can filter based on the
<alap>
tag within the<tipus>
tag."
Events Triggering Invoice Sending
Számlázz.hu can send an issued invoice multiple times to the receiving system. During each transmission, it sends all the (current) data of the invoice in question (in XML format). The following events trigger the invoice to be sent (initially or again) to the receiving system:
- invoice issuance
- change in the payment status of the invoice
- change in the invoice's modifiable data afterwards, specifically:
- accounting date
- customer ledger number
- customer ledger identifier
- "continuous fulfillment" status of the invoice
- revenue ledger number of any invoice item
- VAT ledger number of any invoice item
- economic event of any invoice item
- VAT economic event of any invoice item
- start of the settlement period of any invoice item
- end of the settlement period of any invoice item
The above data can be modified on the invoice's data sheet.
How to request our outgoing invoice service? Click here for details!
Outgoing Invoice Submission
The submission of outgoing invoices is done in XML format and complies with the following XSD: https://www.szamlazz.hu/szamla/docs/xsds/szamla/szamla.xsd
Outgoing invoice XML (example)
<?xml version="1.0" encoding="UTF-8"?>
<szamla xmlns="http://www.szamlazz.hu/szamla" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.szamlazz.hu/szamla https://www.szamlazz.hu/szamla/docs/xsds/szamla/szamla.xsd">
<szallito> <!-- REQ -->
<id>12345</id> <!-- REQ int -->
<nev>Példa Kft.</nev> <!-- REQ string -->
<cim> <!-- REQ -->
<orszag></orszag> <!-- string -->
<irsz>1234</irsz> <!-- REQ string -->
<telepules>Budapest</telepules> <!-- REQ string -->
<cim>Kis utca 2.</cim> <!-- REQ string --> <!-- rest of the address -->
</cim>
<postacim>
<orszag></orszag> <!-- string -->
<irsz></irsz> <!-- string -->
<telepules></telepules> <!-- string -->
<cim></cim> <!-- string --> <!-- rest of the address -->
</postacim>
<adoszam>12345678-9-99</adoszam> <!-- REQ string -->
<adoszameu></adoszameu> <!-- string -->
<bank>
<nev></nev> <!-- string -->
<bankszamla>12345678-12345678</bankszamla> <!-- string -->
</bank>
</szallito>
<alap> <!-- REQ -->
<id>123456</id> <!-- REQ int --> <!-- internal identifier of the invoice in Számlázz.hu -->
<szamlaszam>2015-123</szamlaszam> <!-- REQ string --> <!-- unique number of the invoice -->
<gazdEsemAzon>123456</gazdEsemAzon> <!-- REQ int --> <!-- internal economic event identifier of the invoice in Számlázz.hu -->
<forras>34</forras> <!-- int --> <!-- only included if the invoice was not issued with Számlázz.hu. 26:QUiCK, 28:SMARTBooks, 34:NAV Online invoice -->
<iktatoszam></iktatoszam> <!-- string --> <!-- data received from the accounting system -->
<tipus>SZ</tipus> <!-- REQ string --> <!-- "SZ" Invoice, "SS" Cancellation invoice, "JS" Credit note, "HS" Corrective invoice, "ES" Advance invoice, "VS" Final invoice, "D" Pro forma invoice, "SL" Delivery note -->
<eszamla>1</eszamla> <!-- REQ string --> <!-- 0: not an invoice, 1: paper invoice, 2: e-invoice, 3: e-invoice -->
<hivszamlaszam>2015-1</hivszamlaszam> <!-- string --> <!-- If the invoice is a cancellation or credit note or final invoice, then the parent invoice number -->
<hivdijbekszam>D-1</hivdijbekszam> <!-- string --> <!-- If the invoice was created based on a pro forma invoice, then the pro forma invoice number -->
<kelt>2015-12-01</kelt> <!-- REQ date --> <!-- Invoice date -->
<telj>2015-12-02</telj> <!-- REQ date --> <!-- Date of fulfillment -->
<fizh>2015-12-03</fizh> <!-- REQ date --> <!-- Payment deadline -->
<fizmod>bankkártya</fizmod> <!-- REQ string --> <!-- Method of payment: can be anything for an agent, otherwise fixed values on the interface -->
<fizmodunified>bankkártya</fizmodunified> <!-- REQ string --> <!-- Method of payment: if the payment method is not available on the manual invoice, then it will be "other" -->
<keszpenz>true</keszpenz> <!-- REQ boolean --> <!-- true if the invoice is cash-based -->
<rendelesszam></rendelesszam> <!-- string -->
<nyelv>hu</nyelv> <!-- REQ string --> <!-- hu/en/de/sk/it/fr/hr/ro -->
<devizanem>EUR</devizanem> <!-- string --> <!-- empty, Ft, HUF, EUR, CHF, USD, ... -->
<devizabank></devizabank> <!-- string -->
<devizaarf>210</devizaarf> <!-- double -->
<megjegyzes></megjegyzes> <!-- string -->
<penzforg>true</penzforg> <!-- REQ boolean --> <!-- true if the invoice is cash-flow-based -->
<kata>true</kata> <!-- REQ boolean --> <!-- true if the invoice is under KATA -->
<katafokonyv>false</katafokonyv> <!-- REQ boolean --> <!-- According to the invoice issuer's opinion, should this invoice be treated as under KATA for accounting -->
<email>vevo@example.com</email> <!-- string --> <!-- email address related to the invoice (the last address the invoice was sent to) -->
<teszt>false</teszt> <!-- REQ boolean --> <!-- Is the invoice in a test or live account -->
</alap>
<vevo> <!-- REQ -->
<id>1234567</id> <!-- REQ int -->
<nev></nev> <!-- REQ string -->
<azonosito></azonosito> <!-- string --> <!-- Customer identifier -->
<cim>
<orszag></orszag> <!-- REQ string -->
<irsz></irsz> <!-- REQ string -->
<telepules></telepules> <!-- REQ string -->
<cim></cim> <!-- REQ string --> <!-- rest of the address -->
</cim>
<postacim>
<nev></nev> <!-- string -->
<orszag></orszag> <!-- string -->
<irsz></irsz> <!-- string -->
<telepules></telepules> <!-- string -->
<cim></cim> <!-- string --> <!-- rest of the address -->
</postacim>
<email>vevo@example.com</email> <!-- string --> <!-- customer's email address -->
<adoszam></adoszam>
<adoszameu></adoszameu>
<lokacio>1</lokacio> <!-- REQ int --> <!-- 1: domestic (Hungarian), 2: within EU, 3: outside of EU (3rd country), -1: unknown -->
<privatePersonIndicator>false</privatePersonIndicator> <!-- boolean --> <!-- customer is a private individual -->
<fokonyv>
<vevo>12345A</vevo> <!-- string --> <!-- customer ledger number -->
<vevoazon>12345A</vevoazon> <!-- string --> <!-- customer ledger identifier -->
<datum>2015-12-05</datum> <!-- date --> <!-- accounting date -->
<folyamatostelj>false</folyamatostelj> <!-- boolean --> <!-- is the invoice continuous fulfillment -->
</fokonyv>
</vevo>
<tetelek> <!-- REQ -->
<tetel> <!-- REQ -->
<nev>Alma</nev> <!-- REQ string -->
<azonosito></azonosito> <!-- string -->
<mennyiseg>2</mennyiseg> <!-- REQ double -->
<mennyisegiegyseg>kg</mennyisegiegyseg> <!-- REQ string -->
<nettoegysegar>100.1</nettoegysegar> <!-- REQ double -->
<afatipus>ÁKK</afatipus> <!-- string --> <!-- ÁKK: outside VAT scope, K.AFA: margin scheme VAT, F.AFA: reverse charge VAT, MAA: exempt from VAT, EUKT: outside EU, EUT: within EU, EUK: outside EU, EU: within EU, AAM: exempt from taxation by person, TAM: exempt from taxation by item, TEHK: outside territorial scope of VAT, TAHK: outside subject matter scope of VAT -->
<afakulcs>0</afakulcs> <!-- REQ int -->
<netto>200</netto> <!-- REQ double -->
<arresafaalap>0</arresafaalap> <!-- REQ double -->
<afa>54</afa> <!-- REQ double -->
<brutto>254</brutto> <!-- REQ double -->
<megjegyzes>zöld</megjegyzes> <!-- string -->
<sztetordering>1</sztetordering> <!-- REQ double --> <!-- item order on the invoice -->
<fokonyv>
<arbevetel>12345A</arbevetel> <!-- string --> <!-- revenue ledger number -->
<afa>12345A</afa> <!-- string --> <!-- VAT ledger number -->
<gazdasagiesemeny>12345A</gazdasagiesemeny> <!-- string --> <!-- economic event ledger number -->
<gazdasagiesemenyafa>12345A</gazdasagiesemenyafa> <!-- string --> <!-- VAT economic event ledger number -->
<elszdattol>2018-01-01</elszdattol> <!-- date --> <!-- start of the item settlement period -->
<elszdatig>2018-01-31</elszdatig> <!-- date --> <!-- end of the item settlement period -->
</fokonyv>
</tetel>
</tetelek>
<osszegek>
<afakulcsossz> <!-- REQ int -->
<afatipus>ÁKK</afatipus> <!-- string --> <!-- ÁKK: outside VAT scope, K.AFA: margin scheme VAT, F.AFA: reverse charge VAT, MAA: exempt from VAT, EUK: outside EU, EU: within EU, AAM: exempt from taxation by person, TAM: exempt from taxation by item -->
<afakulcs>0</afakulcs> <!-- REQ double -->
<netto>200</netto> <!-- REQ double -->
<afa>54</afa> <!-- REQ double -->
<brutto>254</brutto> <!-- REQ double -->
</afakulcsossz>
<totalossz> <!-- REQ -->
<netto>200</netto> <!-- REQ double -->
<afa>54</afa> <!-- REQ double -->
<brutto>254</brutto> <!-- REQ double -->
</totalossz>
</osszegek>
<kifizetesek>
<kifizetes>
<datum>2015-02-28</datum> <!-- date -->
<jogcim>átutalás</jogcim> <!-- string -->
<osszeg>300</osszeg> <!-- double -->
<megjegyzes></megjegyzes> <!-- string -->
<bankszamlaszam></bankszamlaszam> <!-- string --> <!-- The payment was actually made from this bank account, or the bank account number on the invoice (if the sender's bank account number is unknown) -->
<banktranzid>1234</banktranzid> <!-- int -->
<devizaarf>275</devizaarf> <!-- double -->
</kifizetes>
</kifizetesek>
<pdf></pdf>
</szamla>
Expected Response
Számlázz.hu needs to detect that the HTTP request it sent has been "received," interpreted, and processed by the receiving system. The invoice response must comply with the following XSD: https://www.szamlazz.hu/szamla/docs/xsds/szamla/szamlavalasz.xsd
Three things are needed for the expected response:
- The HTTP response status code must be 200 (OK).
- The response must be a well-formed XML.
- The response should include the registration number assigned by the receiving system to the transmitted invoice.
Example XML for Expected Response
<szamlavalasz xmlns="http://www.szamlazz.hu/szamlavalasz"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.szamlazz.hu/szamlavalasz">
<alap>
<id>1001</id>
<iktatoszam>IKT-20250101</iktatoszam>
</alap>
<!--<hibakod>KEY_ERR</hibakod>
</szamlavalasz>
About "iktatószám" (registration number)
Számlázz.hu allows the receiving system to assign a unique registration number to the newly received invoice. This registration number must be sent to Számlázz.hu as a response upon the first receipt of the invoice. If a registration number is included in the response:
- Számlázz.hu stores it among the invoice details (it does not appear on the invoice PDF!).
- When the invoice is resent, this registration number is included along with the other invoice details. As detailed above, Számlázz.hu always sends the complete set of invoice data to the receiving system, and the invoice data may be sent multiple times (Events Triggering Invoice Sending). The registration number is always empty during the first transmission of invoice data. During the second (or later) transmission of invoice data, the registration number field might contain data depending on whether Számlázz.hu received a registration number from the receiving system in response to a previous transmission.
Key Error Handling
In the case of an incorrect key, the response can include two special parameters within hibakodTipus:
KEY_ERR: incorrect key. The transmitted key is not found in the receiving system; in such cases, the document will not be resent until the next change occurs.
KEY_DEL: key to delete. The online submission information must be deleted from the billing account. Following this response, the account owner will be notified via email that the online connection to the receiving system has been disabled in their account. Since transmission is asynchronous, documents already marked for submission may be handed over even after the deletion has been registered.
If you didn't find what you were looking for on this page, check out The Operational Details page.
Handling Payment Methods
In Számlázz.hu, during manual invoice creation or administration of credits, payment method can be selected from a fixed set of values. However, invoices created with Számla Agent can have an arbitrary string passed as the payment method by the sending system. Therefore, when submitting invoices online, the payment method is sent in XML in two ways:
- The
<fizmod>
tag contains the arbitrarily valued string stored as the payment method (essentially this appears as the payment method on the invoice). - The
<fizmodunified>
tag represents the normalized value of this. The value set includes: bank transfer, cash, credit card, check, cash on delivery, gift voucher, Barion, barter, group collection, OTP Simple, compensation, coupon, PayPal, PayU, SZÉP card, voucher, other. If the value of<fizmod>
cannot be clearly assigned to any of these, then the value will be "other". These values can also be found in the XSD. - The value of
<keszpenz>
is true if the payment is in cash, otherwise false.