e-invoicing

Compliance Network Implementation Guide

Hungary

Enabling support for Hungary involves confirming prerequisites and product IDs, registering with the Nemzeti Ado es Vamhivatal (NAV) tax authority, and setting up credentials.

Prerequisites

Requirements for Continuous Transaction Controls (CTC) integration (technical users):

  • A username and password obtained from the NAV tax authority

  • A SHA-512 hash of the technical user's password in capital letters

  • Signature (signature encryption) and replacement (token decryption) keys obtained from the NAV tax authority

Note: To obtain these requirements, follow the instructions from the NAV Online Invoice System page.

Requirements for Elektronikus Közúti Áruforgalom Ellenőrző Rendszer (EKAER) integration (technical users):

  • A username and password obtained from the EKAER system

  • A SHA-512 hash of the technical user's password in capital letters

Note: To obtain these requirements, follow the instructions from the EKAER FAQ.

For both Production and Sandbox environments, you must complete the Appointment letter and the Support and change management document and share them with the Sovos Professional Services team or your reseller.

Note:

Make sure you have your VAT number registered in the EKAER system.

The sandbox and production credentials are separate and can only be used on their respective environment.

About the completeness indicator

When the supplier sets the value of the completeness indicator to "true", this means the submitted data report is the actual electronic invoice, and thus the legal invoice, as opposed to a mere report. In this case, it's crucial to ensure that the buyer's tax number is entered correctly. If the buyer's tax number is incorrect, they won't be able to download the electronic invoice from the KOBAK online invoice system.

Also, when the supplier sets the completeness indicator to "true", Sovos generates an electronic invoice hash, which is sent along with the application response.

For more information on the completeness indicator, read the NAV Online Invoice System document.

Types of transactions

If there are data errors in an invoice, suppliers may need to fix them. Depending on the nature of the error, they need to issue a separate modification ("MODIFY") or cancellation ("CANCEL") document with the fixed error. Any document that amends and refers to an original invoice is also a valid invoice.

Sovos lets you include the optional Standard Business Document Header named Transmission.OperationType for both MODIFY and CANCEL documents. This lets you use modifications or cancellations instead of credit notes and modifications or new invoices with reference to a cancellation instead of debit notes.

Government resources

The following links are the official government resources that include detailed and valuable information on various topics:

Available products

  • hu_invoiceData_Polling_3.0

  • hu_InvoiceData__3.0

  • hu_TradeCard__2.1

Error handling

When handling errors, the client application must follow the Indirect Tax API's error handling principles, as specified in the error handling documentation.

In general, all error codes in the 400 range are client errors, which you need to analyze. After fixing the error, you can resend the request. Error codes 408 and 429 are exceptions: In these cases, you should wait at least 60 seconds before retrying. Error codes in the 500 range are server errors. In that case, resend the request according to the instructions given on the error handling documentation, which also includes a full list of error codes Indirect Tax API can return.

Errors coming from the tax authority are shown in the application response. This means that if the tax authority rejects the request, SCIResponseCode is set to "RE" and any error codes will be located in the SCIGovtStatusCode element.

Note:

You need to take action after receiving an error code and a message from the tax authority.

For additional help on error handling, see this government API documentation, which includes all the error codes and messages that can be returned.

For additional help on error handling in the EKAER system, see the EKAER web page and the EKAER Management Service documentation, which includes all the error codes and messages the EKAER system can return.

Configure transmission credentials for Hungary

You must set up transmission credentials to connect your Sovos account to a valid business that is registered with the NAV tax authority.
  1. Send a POST request to the endpoint URL:
    JSON
    POST https://api-test.sovos.com/v2/configurations/organizations/{orgId}/settings
  2. Include the following headers in your request:
    • Content-Type: application/json

    • Authorization: Bearer {accessToken}

    • x-correlationId: {uniqueValue}

  3. Optional: For CTC, include the following parameters in the JSON payload of the request body:
    Name Type Required Description
    context string Yes Use "transmission"
    configurations array of objects Yes
    name string Yes Use "partner_credentials_nav"
    value object Yes
    username string Yes The username from the Hungarian Online Invoice System
    password string Yes The hash (SHA-512, uppercase letters) of the password from the Hungarian Online Invoice System
    tokenDecryptionKey string Yes The replacement key from the Hungarian Online Invoice System
    signatureEncryptionKey string Yes The signature key from the Hungarian Online Invoice System
    scope object Yes
    category string Yes Use "HU_INV"
    productId string Yes Use "hu_InvoiceData__3.0"
    orgId string Yes The organization ID from the Sovos Professional Services team
    taxId string Yes The tax ID of the company
  4. Optional: For EKAER, include the following parameters in the JSON payload of the request body:
    Name Type Required Description
    context string Yes Use "transmission"
    configurations array of objects Yes
    name string Yes Use "partner_credentials_ekaer"
    value object Yes
    username string Yes The EKAER username
    password string Yes The hash (SHA-512, uppercase letters) of the EKAER password
    userSecretKey string Yes The XML signature key from the EKAER portal, required for machine-to-machine XML/API access
    scope object Yes
    category string Yes Use "HU_DLV"
    productId string Yes Use "hu_TradeCard__2.1"
    orgId string Yes The organization ID obtained from the Sovos Professional Servicesteam
    taxId string Yes The tax ID of the company

Upon successful creation, the API will return a JSON object containing the uploaded credentials and their assigned SETTING-ID.

Samples for uploading transmission credentials for Hungary

CTC

Request sample
JSON
curl --location --request POST 'https://api-test.sovos.com/v2/configurations/organizations/{orgId}/settings' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {accessToken}' \
--header 'x-correlationId: {uniqueValue}' \
--data-raw '[
    {
        "context": "transmission",
        "configurations": [
            {
                "name": "partner_credentials_nav",
                "value": {
		    		   "username": "INSERT-USERNAME-HERE",
                    "password": "INSERT-PASSWORD-HASH-HERE",
                    "tokenDecryptionKey": "INSERT-TOKEN-DECR-KEY-HERE",
                    "signatureEncryptionKey": "INSERT-SIGNATURE-ENC-KEY-HERE"
                },
		"scope": {
                    "category": "HU_INV",
                    "productId": "hu_InvoiceData__3.0",
                    "orgId": "YOUR-ORG-ID",
                    "taxId": "YOUR-COMPANY-TAXID"
                }
            }
        ]
    }
]'
Response sample
JSON
{
    "status": 201,
    "message": "Created",
    "success": true,
    "timestamp": 1666259266257,
    "data": [
        {
            "message": "Configurations are created",
            "statusCode": 201,
            "configurationContextResponse": {
                "context": "Transmission",
                "configurations": [
                    {
                        "id": "SETTING-ID",
                        "name": "partner_credentials_nav",
                        "value": {
                            "username": "INSERT-USERNAME-HERE",
                            "password": "INSERT-PASSWORD-HASH-HERE",
                            "tokenDecryptionKey": "INSERT-TOKEN-DECRKEY-HERE",
                            "signatureEncryptionKey": "INSERT-SIGNATURE-ENCKEY-HERE"
                        },
                        "scope": {
                            "category": "HU_INV",
                            "productId": "hu_InvoiceData__3.0",
                            "orgId": "YOUR-ORG-ID",
            		  		  "taxId": "YOUR-COMPANY-TAXID"
                        },
                        "auditData": {
                            "createdAt": 1666259265,
                            "createdBy": "user@company.com",
                            "isDeleted": false,
                            "version": 1
                        }
                    }
                ]
            }
        }
    ]
}

EKAER

Request sample
JSON
curl --location --request POST 'https://api-test.sovos.com/v2/configurations/organizations/{orgId}/settings' \
--header 'Authorization: Bearer {accessToken}' \
--header 'x-correlationId: {uniqueValue}' \
--header 'Content-Type: application/json' \
--data-raw '[
    {
        "context": "transmission",
        "configurations": [
            {
                "name": "partner_credentials_ekaer",
                "value": {
                    "username": "INSERT-USERNAME-HERE",
                    "password": "INSERT-PASSWORD-HASH-HERE",
				   "userSecretKey": "INSERT-USERSECRETKEY-HERE"		  
		},
		"scope": {
                    "category": "HU_DLV",
                    "productId": "hu_TradeCard__2.1",
                    "orgId": "YOUR-ORG-ID",
                    "taxId": "YOUR-COMPANY-TAXID"
                }
            }
        ]
    }
]'
Response sample
JSON
{
    "status": 201,
    "message": "Created",
    "success": true,
    "timestamp": 1666259266257,
    "data": [
        {
            "message": "Configurations are created",
            "statusCode": 201,
            "configurationContextResponse": {
                "context": "Transmission",
                "configurations": [
                    {
                        "id": "SETTING-ID",
                        "name": "partner_credentials_ekaer",
                        "value": {
                            "username": "INSERT-USERNAME-HERE",
                            "password": "INSERT-PASSWORD-HASH-HERE",
                            "userSecretKey": "INSERT-USERSECRETKEY-HERE"     
                       },
                        "scope": {
                            "category": "HU_DLV",
                            "productId": "hu_TradeCard__2.1",
                            "orgId": "YOUR-ORG-ID",
            		  		  "taxId": "YOUR-COMPANY-TAXID"
                        },
                        "auditData": {
                            "createdAt": 1666259265,
                            "createdBy": "user@company.com",
                            "isDeleted": false,
                            "version": 1
                        }
                    }
                ]
            }
        }
    ]
}

Update transmission credentials for Hungary

  1. Send a PUT request to the endpoint URL:
    JSON
    PUT https://api-test.sovos.com/v2/configurations/organizations/{orgId}/settings/{settingId}
  2. Include the following headers in your request:
    • Content-Type: application/json

    • Authorization: Bearer {accessToken}

    • x-correlationId: {uniqueValue}

  3. Optional: For CTC, include the following parameters in the JSON payload of the request body:
    Name Type Required Description
    value object Yes
    username string Yes The username from the Hungarian Online Invoice System
    password string Yes The hash (SHA-512, upper case letters) of the password from the Hungarian Online Invoice System
    tokenDecryptionKey string Yes The replacement key from the Hungarian Online Invoice System
    signatureEncryptionKey string Yes The signature key from the Hungarian Online Invoice System
  4. Optional: For EKAER, include the following parameters inside the JSON payload in the request body:
    Name Type Required Description
    value object Yes
    username string Yes The EKAER username
    password string Yes The hash (SHA-512, upper case letters) of the EKAER password
    userSecretKey string Yes The XML signature key from the EKAER portal, required for machine-to-machine XML/API access

Upon successful creation, the API will return a JSON object containing the uploaded credentials and their assigned SETTING-ID.

Samples for updating transmission credentials for Hungary

CTC

Request sample
JSON
curl --location --request PUT 'https://api-test.sovos.com/v2/configurations/organizations/{orgId}/settings/{settingId}' \
--header Content-Type: application/json \
--header Authorization: Bearer {accessToken} \
--header x-correlationId: {uniqueValue} \
--data-raw '{
    "value": {
        "username": "NEW-USERNAME-HERE",
        "password": "NEW-PASSWORD-HASH-HERE",
        "tokenDecryptionKey": "NEW-TOKEN-DECR-KEY-HERE",
        "signatureEncryptionKey": "NEW-SIGNATURE-ENC-KEY-HERE"
    }
}'
Response sample
JSON
{
    "status": 200,
    "message": "OK",
    "success": true,
    "timestamp": 1666259448643,
    "data": {
        "id": "SETTING-ID",
        "name": "partner_credentials_nav",
        "value": {
            "username": "NEW-USERNAME-HERE",
            "password": "NEW-PASSWORD-HASH-HERE",
            "tokenDecryptionKey": "NEW-TOKEN-DECR-KEY-HERE",
            "signatureEncryptionKey": "NEW-SIGNATURE-ENC-KEY-HERE"
        },
        "scope": {
            "category": "HU_INV",
            "productId": "hu_InvoiceData__3.0",
            "orgId": "YOUR-ORG-ID",
            "taxId": "YOUR-COMPANY-TAXID"
        },
        "auditData": {
            "createdAt": 1666259266,
            "createdBy": "user@company.com",
            "updatedAt": 1666259448,
            "updatedBy": "user@company.com",
            "isDeleted": false,
            "version": 1
        }
    }
}

EKAER

Request sample
JSON
curl --location --request PUT 'https://api-test.sovos.com/v2/configurations/organizations/{orgId}/settings/{setting-id}' \
--header Content-Type: application/json \
--header Authorization: Bearer {accessToken} \
--header x-correlationId: {uniqueValue} \
--data-raw '{
    "value": {
        "username": "NEW-USERNAME-HERE",
        "password": "NEW-PASSWORD-HASH-HERE",
        "userSecretKey": "INSERT-USERSECRETKEY-HERE"
    }
}'
Response sample
JSON
{
    "status": 200,
    "message": "OK",
    "success": true,
    "timestamp": 1666259448643,
    "data": {
        "id": "SETTING-ID",
        "name": "partner_credentials_ekaer",
        "value": {
            "username": "NEW-USERNAME-HERE",
            "password": "NEW-PASSWORD-HASH-HERE"
        },
        "scope": {
            "category": "HU_DLV",
            "productId": "hu_TradeCard__2.1",
            "orgId": "YOUR-ORG-ID",
            "taxId": "YOUR-COMPANY-TAXID"
        },
        "auditData": {
            "createdAt": 1666259266,
            "createdBy": "user@company.com",
            "updatedAt": 1666259448,
            "updatedBy": "user@company.com",
            "isDeleted": false,
            "version": 1
        }
    }
}

Issue invoice

Issuing an invoice in Hungary is based on the Default business process, which follows this order: Mapping and Transmission. The following diagram provides a detailed overview:

Hungary outbound flow

Step 1: Supplier creates the Standard Business Document

Every invoice sent to Sovos must be part of a Standard Business Document (SBD). This document includes a Standard Business Document Header (SBDH) and a Sovos Document node, which in turn includes a Sovos Canonical Invoice (SCI). To create the SBD, follow the detailed instructions in the SBDH, Sovos Document, and SCI pages.

Here are some key elements that should be included in the SBD:

Use the following values in the SBDH for documents that use the SCI format:

Node Required Attributes Value
StandardBusinessDocumentHeader.Sender.Identifier Yes Authority="HU" Supplier's TIN
StandardBusinessDocumentHeader.Receiver.Identifier Yes Authority="HU"
StandardBusinessDocumentHeader.DocumentIdentification.Standard Yes urn:oasis:names:specification:ubl:schema:xsd:Invoice-2
StandardBusinessDocumentHeader.DocumentIdentification.TypeVersion Yes 2.1
StandardBusinessDocumentHeader.DocumentIdentification.Type Yes Invoice
StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: Country

Child node Identifier: HU

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: ProcessType

Child node Identifier: Outbound

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: CompanyCode

Child node Identifier : Supplier's TIN

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: SenderDocumentId

Child node Identifier: A unique document ID. We recommend the ERP document ID.

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: SenderSystemId

Child node Identifier: The system ID configured in the backend. This parameter is used to determine which notifications are returned to the client and what attachments they include. If SenderSystemId is not configured on the client side, it will use the default value of "DefaultSystemERP". For more information, see this topic.

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: Mapping.OutputSchema

Child node Identifier : InvoiceData

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: Mapping.TransformDocument

Child node Identifier: SCI-TO-LEGAL_INVOICE

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes Child node Type: SubSchema
StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) No

Child node Type: BusinessCategory

Child node Identifier: B2B

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) No

Child node Type : Version

Child node Identifier: 3.0

StandardBusinessDocumentHeader.BusinessScope.Scope.BusinessService.BusinessServiceName Yes Default
SovosDocument.SovosCanonicalInvoice.Invoice Yes SCI

Alternatively, the supplier can use the local format (XML) instead of SCI. Use the following values in the SBDH for documents that use the local format:

Node Required Value
StandardBusinessDocumentHeader.DocumentIdentification.Standard Yes http://schemas.nav.gov.hu/OSA/3.0/data
StandardBusinessDocumentHeader.DocumentIdentification.TypeVersion Yes 3.0
StandardBusinessDocumentHeader.DocumentIdentification.Type Yes InvoiceData
StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: Mapping.TransformDocument

Child node Identifier: LEGAL-TO-SCI_INVOICE

SovosDocument.SovosLegalDocument.Base64Document Yes A local format

You need to encode the local format document (XML) in Base64 before you can add it as part of the SBD. Here is a sample:

CODE
</sbd:StandardBusinessDocumentHeader>
    <svs:SovosDocument>
        <svs:SovosLegalDocument>
            <enc:Base64Document>
                <enc:EmbeddedDocument id="1" fileName="invoice.xml" mimeCode="application/xml">PD94bWwgdmVyc...FrdHVyYT4NCg==</enc:EmbeddedDocument>
            </enc:Base64Document>
        </svs:SovosLegalDocument>
    </svs:SovosDocument>
</svs:StandardBusinessDocument>
Note:

Include all the mandatory nodes, as specified in the SBDH schema. If the information cannot be provided and the respective mandatory node has not been mentioned on the current page, for example the receiver.identifier, the node can be left empty but must still be included in the SBDH.

Important:

Whether you use the SCI or the local format, to issue an invoice you must set the value of the Invoice/CopyIndicator field (completeness indicator) from the SCI section to "true". Otherwise, you'll use the reporting flow.

SBD sample
Below is a sample of the SBD. In addition, there's a full sample of the SBD in the Postman Samples page.
CODE
<sbd:StandardBusinessDocument xmlns="http://uri.etsi.org/01903/v1.4.1#" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:sbd="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader" xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" xmlns:ad="http://www.sovos.com/namespaces/additionalData" xmlns:sci="http://www.sovos.com/namespaces/sovosCanonicalInvoice" xmlns:svs="http://www.sovos.com/namespaces/sovosDocument" xmlns:sov="http://www.sovos.com/namespaces/sovosExtensions" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:inv="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
	<sbd:StandardBusinessDocumentHeader>
		<sbd:HeaderVersion>1.0</sbd:HeaderVersion>
		<sbd:Sender>
			<sbd:Identifier Authority="HU">08AAACI9260R002</sbd:Identifier>
			<sbd:ContactInformation>
				<sbd:Contact>08AAACI9260R002</sbd:Contact>
				<sbd:EmailAddress/>
				<sbd:FaxNumber/>
				<sbd:TelephoneNumber/>
				<sbd:ContactTypeIdentifier/>
			</sbd:ContactInformation>
		</sbd:Sender>
		<sbd:Receiver>
			<sbd:Identifier Authority="HU"/>
			<sbd:ContactInformation>
				<sbd:Contact/>
				<sbd:EmailAddress/>
				<sbd:FaxNumber/>
				<sbd:TelephoneNumber/>
				<sbd:ContactTypeIdentifier/>
			</sbd:ContactInformation>
		</sbd:Receiver>
		<sbd:DocumentIdentification>
			<sbd:Standard>urn:oasis:names:specification:ubl:schema:xsd:Invoice-2</sbd:Standard>
			<sbd:TypeVersion>2.1</sbd:TypeVersion>
			<sbd:InstanceIdentifier/>
			<sbd:Type>Invoice</sbd:Type>
			<sbd:MultipleType>false</sbd:MultipleType>
			<sbd:CreationDateAndTime>2020-06-16T00:31:52Z</sbd:CreationDateAndTime>
		</sbd:DocumentIdentification>
		<sbd:BusinessScope>
			<sbd:Scope>
				<sbd:Type>Version</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>3.0</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>SenderDocumentId</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>321412</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>SenderSystemId</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>UAT101</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
                <sbd:Type>CompanyCode</sbd:Type>
                <sbd:InstanceIdentifier/>
                <sbd:Identifier>08AAACI9260R002</sbd:Identifier>
            </sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Country</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>HU</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>ProcessType</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>Outbound</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Mapping.TransformDocument</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>SCI-TO-LEGAL_INVOICE</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Mapping.OutputSchema</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>InvoiceData</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>SubSchema</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier/>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>BusinessCategory</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>B2B</sbd:Identifier>
			</sbd:Scope>
		 	<sbd:Scope>
                <sbd:Type>BusinessProcess</sbd:Type>
                <sbd:InstanceIdentifier/>
                <sbd:BusinessService>
                    <sbd:BusinessServiceName>Default</sbd:BusinessServiceName>
                </sbd:BusinessService>
            </sbd:Scope>
		</sbd:BusinessScope>
	</sbd:StandardBusinessDocumentHeader>
	<svs:SovosDocument>
		<sci:SovosCanonicalInvoice>
			<inv:Invoice>
			    *UBL Elements*
			</inv:Invoice>
		</sci:SovosCanonicalInvoice>
	</svs:SovosDocument>
</sbd:StandardBusinessDocument>

Step 2: Supplier sends the SBD to Sovos

The supplier sends a POST request to the /documents endpoint.

The request must include the following request body parameters:

Name Type Required Description
data string Yes The Base64-encoded SBD from step 1
dataEncoding string Yes Use "base64"
Note:

There are full samples of the SCI and Legal XML files in the SCI Samples topic.

Request sample
JSON
curl --location --request POST 'https://api-test-tls.sovos.com/v1/documents' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
--data-raw '{
	"data": "PD9...d4=",
	"dataEncoding" : "base64"
}'
Response sample
JSON
{
    "timestamp": 1605282724079,
    "status": 202,
    "success": true,
    "message": "Document Received",
    "data": {
        "documentId": "3add2b7104dc0049ff0bf410f57e0a19afaf"
    }
}

Step 3: Sovos maps the SCI into XML

Upon receiving the SCI, Sovos maps the file into the required XML format.

Note:

This step will be skipped if the SBD contains the invoice in the local format (XML).

Step 4: Sovos performs the schema validation

Sovos performs a schema validation based on the information provided by the tax authority. If there are errors in the document, Sovos detects them instead of waiting for the tax authority's response.

Step 5: Sovos transmits the XML

Sovos transmits the XML file to the tax authority KOBAK system.

Step 6: KOBAK processes the XML

KOBAK performs a schema validation and several business validations. Then it generates an approval or rejection response message along with an error message, where applicable.

Step 7: KOBAK sends the response to Sovos

After performing its services, KOBAK sends the response to Sovos.

Step 8: Sovos generates the PDF

After the document is approved, Sovos generates a PDF that presents the content of the invoice XML in a human-readable format.

Step 9: Archiving

You can compliantly archive the XML, the application response, and any graphical representation, such as a PDF, using Sovos' Compliant Archive.

For suppliers integrating with the solution for this country for the first time, we recommend the bundled approach, in which archiving is part of the invoice clearance flow. Archiving can also be done separately through an explicit API call that uses another archive. For more information on standalone archiving, see the e-Archiving documentation page.

Note: Bundled e-invoice archiving is optional but enabled by default. This means you can use your current solution and include Sovos e-Archiving.
Important:

In the bundled approach, the document is stored with its electronicInvoiceHash as metadata to comply with the Hungarian archiving requirements.

Step 10: Supplier retrieves the application responses

Attachments configuration

You can access your attachments:

  • As binary data, so the file is embedded in the Base64-encoded application response.

  • As open download links, in which the response contains a public URL to download the file.

  • As secure download links, in which you need to use the Indirect Tax API's bearer token to download the attachment.

By default, Sovos configures your attachments as open download links to avoid potential size limitations when retrieving responses. To improve security, you should configure them as secure links. Then, make a GET call to the secure link returned by the Indirect Tax API, and include the API token. Sample request:

CODE
curl --location 'https://einvoicing-api.sovos.com/download/api/v1/download/JqYyqliXiJFKhXshnBQZfW3qpfwATVGE5Q73T41JUynNLJD8zHy5VH__9qzL9No-Kia9olSw3_lNX3KmaA9Je89Xx--vk5pQjyKx0iT_4CwPSABD0Yg7uxXZ8SNiliEhFY-4TOX7m1TV5FwwfqntehbGaiGMI2JVYu18VBDiC_0/plain%27 \
--header 'Authorization: Bearer TOKEN'

As a response to the initial sending of the document, the client receives a JSON response message with an HTTP status code of 202 (asynchronous transaction). This means that the supplier must retrieve the application responses that become available during the transaction, which provide status information and the cleared XML encoded in Base64 after it's available during the process.

Additionally, you must consider the following details included in the response:

Transmission message
It maps to the SCIGovtStatusCode and StatusReason elements in the response message, as described in the application responses documentation, which details any warnings or additional notes to consider. The Hungarian tax authority doesn't define any specific set of rules about what action to take on each warning. Depending on the type of message, the user may have to modify the invoice, take some additional action, or simply make a note for the future. For details on the warnings, see the NAV API documentation.
ElectronicInvoiceHash
This is part of the UBLExtensions, and it is included in the response if the Invoice/CopyIndicator was set to "true" in step 1. The supplier must archive this hash for compliance and security purposes.

Options for retrieving application responses (notifications):

Fetch everything in one single response (notification)
When polling for responses, Sovos only returns one final notification with SCICloudStatusCode of 209 that contains all the relevant attachments and data. Detailed description follows.
Fetch multiple responses (notifications) containing different information
When polling for responses, Sovos returns multiple notifications with different SCICloudStatusCode values containing different attachments and data until the final one (with status 209) is returned. Detailed description follows.

To complete a transaction, the supplier retrieves only one notification, the complete workflow one, with SCICloudStatusCode of 209 and all the necessary attachments and data. Afterward, the notification needs to be parsed for the SCIResponseCode value. Possible values for SCIResponseCode:

AP
The document's compliance status has been accepted with all the necessary attachments and data included.
CA
The document's compliance status has been accepted, but under certain conditions.
RE
The document's compliance status has been rejected and more parsing is needed:
  • If SCIGovtStatusCode is present, the error can be found by reading StatusReason.

  • if SCIInternalValidationCode is present, the error can be found by reading StatusReason.

Note: Receiving a notification containing SCICloudStatusCode with a value in the 5xx range still remains an option, as it indicates a server error. In this case, the workflow doesn't finish because it doesn't return a notification with SCICloudStatusCode of 209.
# SCICloudStatusCode SCIResponseCode Sample
1 209 AP
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">AP</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">209</cbc:StatusReasonCode>
        <cbc:StatusReason>Workflow Successfully Completed</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
        <cbc:StatusReason>No action required</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">209-Completed successfully</cbc:StatusReasonCode>
        <cbc:StatusReason>Workflow Successfully Completed</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Workflow Successfully Completed
2 209 CA
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">CA</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">209</cbc:StatusReasonCode>
        <cbc:StatusReason>Workflow Successfully Completed</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
        <cbc:StatusReason>No action required</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode"></cbc:StatusReasonCode>
        <cbc:StatusReason>Workflow Successfully Completed</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">INCORRECT_DATE_INVOICE_ISSUE_DATE_EARLY</cbc:StatusReasonCode>
        <cbc:StatusReason>Számla kelte több, mint 10 nappal korábbi, mint az adatszolgáltatás dátuma.</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Workflow Successfully Completed
3 209 RE
CODE
<cac:DocumentResponse>
		<cac:Response>
			<cbc:ReferenceID/>
			<cbc:ResponseCode listID="SCIResponseCode">RE</cbc:ResponseCode>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCICloudStatusCode">209</cbc:StatusReasonCode>
				<cbc:StatusReason>Workflow Successfully Completed</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
				<cbc:StatusReason>No action required</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIERPStatusCode"/>
				<cbc:StatusReason>Workflow Successfully Completed</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIInternalValidationStatusCode">401</cbc:StatusReasonCode>
				<cbc:StatusReason>The element 'summaryByVatRate' in namespace 'http://schemas.nav.gov.hu/OSA/3.0/data' has incomplete content. List of possible elements expected: 'vatRate' in namespace 'http://schemas.nav.gov.hu/OSA/3.0/data'.</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIInternalValidationStatusCode">401</cbc:StatusReasonCode>
				<cbc:StatusReason>The element 'summaryNormal' in namespace 'http://schemas.nav.gov.hu/OSA/3.0/data' has incomplete content. List of possible elements expected: 'summaryByVatRate, invoiceNetAmount' in namespace 'http://schemas.nav.gov.hu/OSA/3.0/data'.</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIInternalValidationStatusCode">401</cbc:StatusReasonCode>
				<cbc:StatusReason>The element 'summaryGrossData' in namespace 'http://schemas.nav.gov.hu/OSA/3.0/data' has incomplete content. List of possible elements expected: 'invoiceGrossAmount' in namespace 'http://schemas.nav.gov.hu/OSA/3.0/data'.</cbc:StatusReason>
			</cac:Status>
		</cac:Response>
Workflow Successfully Completed

To complete a transaction, the supplier must retrieve the application responses until the transaction has finished. If the supplier has subscribed to multiple notifications, the transaction can generate different application responses, as shown in the table below. The transaction finishes when a notification containing SCICloudStatusCode with the value of 209 has been received.

# SCICloudStatusCode SCIResponseCode Sample
1 100 IP
CODE
<cac:DocumentResponse>
		<cac:Response>
			<cbc:ReferenceID/>
			<cbc:ResponseCode listID="SCIResponseCode">IP</cbc:ResponseCode>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCICloudStatusCode">100</cbc:StatusReasonCode>
				<cbc:StatusReason>Document received successfully</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
				<cbc:StatusReason>No action required</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIERPStatusCode">100-Received successfully</cbc:StatusReasonCode>
				<cbc:StatusReason>Document received successfully</cbc:StatusReason>
			</cac:Status>
		</cac:Response>
Document received successfully
2 101 IP
CODE
<cac:DocumentResponse>
		<cac:Response>
			<cbc:ReferenceID/>
			<cbc:ResponseCode listID="SCIResponseCode">IP</cbc:ResponseCode>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCICloudStatusCode">101</cbc:StatusReasonCode>
				<cbc:StatusReason>Document mapped successfully</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
				<cbc:StatusReason>No action required</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIERPStatusCode"/>
				<cbc:StatusReason>Document mapped successfully</cbc:StatusReason>
			</cac:Status>
		</cac:Response>
Document mapped successfully
3 200 AP
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">AP</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">200</cbc:StatusReasonCode>
        <cbc:StatusReason>Authorized by the tax authority</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
        <cbc:StatusReason>No action required</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">200-Authorized</cbc:StatusReasonCode>
        <cbc:StatusReason>Authorized by the tax authority</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Authorized by the tax authority
4 207 AB
CODE
<cac:DocumentResponse>
		<cac:Response>
			<cbc:ReferenceID/>
			<cbc:ResponseCode listID="SCIResponseCode">AB</cbc:ResponseCode>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCICloudStatusCode">207</cbc:StatusReasonCode>
				<cbc:StatusReason>Pdf created successfully</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
				<cbc:StatusReason>No action required</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIERPStatusCode">207-PDF Created successfully</cbc:StatusReasonCode>
				<cbc:StatusReason>Pdf created successfully</cbc:StatusReason>
			</cac:Status>
		</cac:Response>
PDF created successfully. The PDF is part of the attachments in the notification (see the attached document).
5 209 AP
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">AP</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">209</cbc:StatusReasonCode>
        <cbc:StatusReason>Workflow Successfully Completed</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
        <cbc:StatusReason>No action required</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">209-Completed successfully</cbc:StatusReasonCode>
        <cbc:StatusReason>Workflow Successfully Completed</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Workflow Successfully Completed
6 400 RE
CODE
<cac:DocumentResponse>
		<cac:Response>
			<cbc:ReferenceID/>
			<cbc:ResponseCode listID="SCIResponseCode">RE</cbc:ResponseCode>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCICloudStatusCode">400</cbc:StatusReasonCode>
				<cbc:StatusReason>Rejected by the tax authority or the counter party</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIStatusAction">NIN</cbc:StatusReasonCode>
				<cbc:StatusReason>Request to re-issue a corrected new invoice (or other document) or fix the error and resend the document</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIERPStatusCode">400-Rejected</cbc:StatusReasonCode>
				<cbc:StatusReason>Rejected by the tax authority or the counter party</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIGovtStatusCode">SUPPLIER_TAX_NUMBER_MISMATCH</cbc:StatusReasonCode>
				<cbc:StatusReason>Az eladó adószáma nem azonos az API XML-ben megadott, authentikált adószámmal.</cbc:StatusReason>
			</cac:Status>
		</cac:Response>
Rejected by the tax authority or the counterparty
7 401 RE
CODE
<cac:DocumentResponse>
		<cac:Response>
			<cbc:ReferenceID/>
			<cbc:ResponseCode listID="SCIResponseCode">RE</cbc:ResponseCode>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCICloudStatusCode">401</cbc:StatusReasonCode>
				<cbc:StatusReason>Error processing document</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIStatusAction">NIN</cbc:StatusReasonCode>
				<cbc:StatusReason>Request to re-issue a corrected new invoice (or other document) or fix the error and resend the document</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIERPStatusCode">401-Document error</cbc:StatusReasonCode>
				<cbc:StatusReason>Error processing document</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIInternalValidationStatusCode">401</cbc:StatusReasonCode>
				<cbc:StatusReason>The 'http://schemas.nav.gov.hu/OSA/3.0/data:invoiceAppearance' element is invalid - The value 'ROCK' is invalid according to its datatype 'http://schemas.nav.gov.hu/OSA/3.0/base:InvoiceAppearanceType' - The Enumeration constraint failed.</cbc:StatusReason>
			</cac:Status>
		</cac:Response>
Error processing document

The supplier can use the following Indirect Tax API endpoints to retrieve application responses:

  • GET /notifications/HU

  • GET /documents/HU/{documentId}/notifications

GET /notifications/HU
The supplier can send a GET request to the /notifications/HU endpoint to retrieve application responses that match the configured search criteria. To make this request, set the following query parameters:
Name Type Required Default Description
taxId string No

Include only notifications related to the specified taxId. This value is related to the CompanyCode in the SBDH.

Note: If a request doesn't include this parameter, it will return all the notifications related to the country and the sourceSystemId parameter.

page integer No 1 To specify the page to be returned, enter a value between 1 and 10.
perPage integer No 10

To specify the number of results for the returned page, enter a value between 1 and 100.

Important:

If the attachment file is configured to return the binary content instead of a link, use only values between 1 and 10.

sourceSystemId string Yes Include only notifications related to documents that originate from the given source system. This value is related to the SenderSystemId in the SBDH.
includeAcknowledged boolean No false Use "true" to include previously acknowledged notifications in the result.
processType string No Use "0" to only include notifications related to outbound documents.
Request sample
JSON
curl --location --request GET 'https://api-test.sovos.com/v1/notifications/HU?page=1&perPage=2&includeAcknowledged=true&taxId={taxId}&sourceSystemId={sourceSystemId}&processType=0' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE'
Response sample
JSON
{
    "timestamp": 1633685509314,
    "status": 200,
    "success": true,
    "message": "Notifications Listed",
    "data": {
        "pageState": {
            "page": 1,
            "perPage": 10,
            "totalEntries": 1
        },
        "notifications": [
            {
                "createdDate": 1633681296,
                "metadata": {
                    "productId": "hu_InvoiceData__3.0",
                    "documentId": "3add2b7104dc0049ff0bf410f57e0a19afaf",
                    "erpDocumentId": "321412",
                    "erpSystemId": "UAT101",
                    "processType": "0",
                    "taxId": "08AAACI9260R002",
                    "sciCloudStatusCode": "200",
                    "sciResponseCode": "AP",
                    "sciStatusAction": "NOA",
                    "sciGovtStatusCode": "100"
                },
                "appPrefix": "DLT",
                "notificationId": "a8dc1aa2-fbe6-45ce-9e4c-97a3d5fdb91c",
                "content": "PEF...NlPg=="
            }
        ]
    }
}
GET /documents/HU/{documentId}/notifications
The supplier can send a GET request to the /documents/HU/{documentId}/notifications endpoint to retrieve application responses related to a single document. To make this request, set the following parameter:
Name Type Required Parameter type Default Description
documentId string Yes Path The document ID returned in step 2
Request sample
JSON
curl --location --request GET 'https://api-test.sovos.com/v1/documents/HU/{documentId}/notifications?' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE'
Response sample
JSON
{
    "timestamp": 1633685509314,
    "status": 200,
    "success": true,
    "message": "Notifications Listed",
    "data": {
        "pageState": {
            "page": 1,
            "perPage": 10,
            "totalEntries": 1
        },
        "notifications": [
            {
                "createdDate": 1633681296,
                "metadata": {
                    "productId": "hu_InvoiceData__3.0",
                    "documentId": "3add2b7104dc0049ff0bf410f57e0a19afaf",
                    "erpDocumentId": "321412",
                    "erpSystemId": "UAT101",
                    "processType": "0",
                    "taxId": "08AAACI9260R002",
                    "sciCloudStatusCode": "200",
                    "sciResponseCode": "AP",
                    "sciStatusAction": "NOA",
                    "sciGovtStatusCode": "100"
                },
                "appPrefix": "DLT",
                "notificationId": "a8dc1aa2-fbe6-45ce-9e4c-97a3d5fdb91c",
                "content": "PEF...NlPg=="
            }
        ]
    }
}

Step 11: Supplier marks the application responses as acknowledged

The supplier must process the retrieved application responses and mark them as acknowledged. This can be done by sending a PUT request to the /notifications/HU endpoint.

To make this request, set the following request body parameters:

Name Type Required Description
status string Yes Use "read"
notificationId string Yes The notification ID
Note: Multiple notificationId values can be acknowledged in one Indirect Tax API call by including them in a single request.
Request sample
JSON
curl --location --request PUT 'https://api-test.sovos.com/v1/notifications/HU' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
--data-raw '[
    {
        "status": "read",
        "notificationId": "51341d39-fd3e-4dcf-aea3-a73d73e0de76"
    }
]'
Response sample
JSON
{
    "timestamp": 1601673284,
    "status": 200,
    "success": true,
    "message": "Notifications acknowledged successfully."
}

Step 12: Buyer retrieves the invoice

The buyer can retrieve the invoice in the KOBAK system.

Report invoice

Reporting an invoice in Hungary is based on the Default business process, which follows this order: Mapping and Transmission. The following diagram provides a detailed overview:

Hungary outbound reporting flow

Step 1: Supplier creates the Standard Business Document

Every invoice sent to Sovos must be part of a Standard Business Document (SBD). This document includes a Standard Business Document Header (SBDH) and a Sovos Document node, which in turn includes a Sovos Canonical Invoice (SCI). To create the SBD, follow the detailed instructions in the SBDH, Sovos Document, and SCI pages.

Here are some key elements that should be included in the SBD and in the invoice:

Use the following values in the SBDH for documents that use the SCI format:

Node Required Attributes Value
StandardBusinessDocumentHeader.Sender.Identifier Yes Authority="HU" Supplier's TIN
StandardBusinessDocumentHeader.Receiver.Identifier Yes Authority="HU"
StandardBusinessDocumentHeader.DocumentIdentification.Standard Yes urn:oasis:names:specification:ubl:schema:xsd:Invoice-2
StandardBusinessDocumentHeader.DocumentIdentification.TypeVersion Yes 2.1
StandardBusinessDocumentHeader.DocumentIdentification.Type Yes Invoice
StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: Country

Child node Identifier: HU

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: ProcessType

Child node Identifier: Outbound

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: CompanyCode

Child node Identifier : Supplier's TIN

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: SenderDocumentId

Child node Identifier: A unique document ID. We recommend the ERP document ID.

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: SenderSystemId

Child node Identifier: The system ID configured in the backend. This parameter is used to determine which notifications are returned to the client and what attachments they include. If SenderSystemId is not configured on the client side, it will use the default value of "DefaultSystemERP". For more information, see this topic.

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: Mapping.OutputSchema

Child node Identifier : InvoiceData

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: Mapping.TransformDocument

Child node Identifier: SCI-TO-LEGAL_INVOICE

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes Child node Type: SubSchema
StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) No

Child node Type : Version

Child node Identifier: 3.0

StandardBusinessDocumentHeader.BusinessScope.Scope.BusinessService.BusinessServiceName Yes Default
SovosDocument.SovosCanonicalInvoice.Invoice Yes SCI

Alternatively, the supplier can use the local format (XML) instead of SCI. Use the following values in the SBDH for documents that use the local format:

Node Required Value
StandardBusinessDocumentHeader.DocumentIdentification.Standard Yes http://schemas.nav.gov.hu/OSA/3.0/data
StandardBusinessDocumentHeader.DocumentIdentification.TypeVersion Yes 3.0
StandardBusinessDocumentHeader.DocumentIdentification.Type Yes InvoiceData
StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: Mapping.TransformDocument

Child node Identifier: LEGAL-TO-SCI_INVOICE

SovosDocument.SovosLegalDocument.Base64Document Yes A local format

You need to encode the local format (XML) document in Base64 before you can add it as part of the SBD. Here is a sample:

CODE
</sbd:StandardBusinessDocumentHeader>
    <svs:SovosDocument>
        <svs:SovosLegalDocument>
            <enc:Base64Document>
                <enc:EmbeddedDocument id="1" fileName="invoice.xml" mimeCode="application/xml">PD94bWwgdmVyc...FrdHVyYT4NCg==</enc:EmbeddedDocument>
            </enc:Base64Document>
        </svs:SovosLegalDocument>
    </svs:SovosDocument>
</svs:StandardBusinessDocument>
Note:

Include all the mandatory nodes, as specified in the SBDH schema. If the information cannot be provided and the respective mandatory node has not been mentioned on the current page, for example the receiver.identifier, the node can be left empty but must still be included in the SBDH.

Important:

Whether you use the SCI or the local format, you must set the value of the Invoice/CopyIndicator field (completeness indicator) from the SCI section to "false" to use the Reporting flow. Otherwise, you'll use the Clearance flow.

SBD sample
Below is a sample of the SBD. In addition, there's a full sample of the SBD on the Postman Samples page.
CODE
<sbd:StandardBusinessDocument xmlns="http://uri.etsi.org/01903/v1.4.1#" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:sbd="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader" xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" xmlns:ad="http://www.sovos.com/namespaces/additionalData" xmlns:sci="http://www.sovos.com/namespaces/sovosCanonicalInvoice" xmlns:svs="http://www.sovos.com/namespaces/sovosDocument" xmlns:sov="http://www.sovos.com/namespaces/sovosExtensions" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:inv="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
	<sbd:StandardBusinessDocumentHeader>
		<sbd:HeaderVersion>1.0</sbd:HeaderVersion>
		<sbd:Sender>
			<sbd:Identifier Authority="HU">08AAACI9260R002</sbd:Identifier>
			<sbd:ContactInformation>
				<sbd:Contact>08AAACI9260R002</sbd:Contact>
				<sbd:EmailAddress/>
				<sbd:FaxNumber/>
				<sbd:TelephoneNumber/>
				<sbd:ContactTypeIdentifier/>
			</sbd:ContactInformation>
		</sbd:Sender>
		<sbd:Receiver>
			<sbd:Identifier Authority="HU"/>
			<sbd:ContactInformation>
				<sbd:Contact/>
				<sbd:EmailAddress/>
				<sbd:FaxNumber/>
				<sbd:TelephoneNumber/>
				<sbd:ContactTypeIdentifier/>
			</sbd:ContactInformation>
		</sbd:Receiver>
		<sbd:DocumentIdentification>
			<sbd:Standard>urn:oasis:names:specification:ubl:schema:xsd:Invoice-2</sbd:Standard>
			<sbd:TypeVersion>2.1</sbd:TypeVersion>
			<sbd:InstanceIdentifier/>
			<sbd:Type>Invoice</sbd:Type>
			<sbd:MultipleType>false</sbd:MultipleType>
			<sbd:CreationDateAndTime>2020-06-16T00:31:52Z</sbd:CreationDateAndTime>
		</sbd:DocumentIdentification>
		<sbd:BusinessScope>
			<sbd:Scope>
				<sbd:Type>Version</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>3.0</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>SenderDocumentId</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>321412</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>SenderSystemId</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>UAT101</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
                <sbd:Type>CompanyCode</sbd:Type>
                <sbd:InstanceIdentifier/>
                <sbd:Identifier>08AAACI9260R002</sbd:Identifier>
            </sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Country</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>HU</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>ProcessType</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>Outbound</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Mapping.TransformDocument</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>SCI-TO-LEGAL_INVOICE</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Mapping.OutputSchema</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>InvoiceData</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>SubSchema</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier/>
			</sbd:Scope>
		 	<sbd:Scope>
                <sbd:Type>BusinessProcess</sbd:Type>
                <sbd:InstanceIdentifier/>
                <sbd:BusinessService>
                    <sbd:BusinessServiceName>Default</sbd:BusinessServiceName>
                </sbd:BusinessService>
            </sbd:Scope>
		</sbd:BusinessScope>
	</sbd:StandardBusinessDocumentHeader>
	<svs:SovosDocument>
		<sci:SovosCanonicalInvoice>
			<inv:Invoice>
			    *UBL Elements*
			</inv:Invoice>
		</sci:SovosCanonicalInvoice>
	</svs:SovosDocument>
</sbd:StandardBusinessDocument>

Step 2: Supplier sends the SBD to Sovos

The supplier sends a POST request to the /documents endpoint.

The request must include the following request body parameters:

Name Type Required Description
data string Yes The Base64-encoded SBD from step 1
dataEncoding string Yes Use "base64"
Note:

After receiving the document, Sovos performs a structure/schema validation of both the SCI and the SBD parts.

There are full samples of the SCI and Legal XMLs in the SCI Samples topic.

Request sample
JSON
curl --location --request POST 'https://api-test-tls.sovos.com/v1/documents' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
--data-raw '{
	"data": "PD9...d4=",
	"dataEncoding" : "base64"
}'
Response sample
JSON
{
    "timestamp": 1605282724079,
    "status": 202,
    "success": true,
    "message": "Document Received",
    "data": {
        "documentId": "3add2b7104dc0049ff0bf410f57e0a19afaf"
    }
}

Step 3: Sovos maps the SCI into XML

Upon receiving the SCI, Sovos maps the file into the required XML format.

Note:

This step will be skipped if the SBD contains the invoice in the local format (XML).

Step 4: Sovos performs the schema validation

Sovos performs a schema validation based on the information provided by the tax authority. If there are errors in the document, Sovos detects them instead of waiting for the tax authority's response.

Step 5: Sovos transmits the XML

Sovos transmits the XML file to the tax authority KOBAK system.

Step 6: KOBAK processes the XML

KOBAK performs a schema validation and several business validations. Then it generates an approval or rejection response message along with an error message, where applicable.

Step 7: KOBAK sends the response to Sovos

After performing its services, KOBAK sends the response to Sovos.

Step 8: Supplier retrieves the application responses

Attachments configuration

You can access your attachments:

  • As binary data, so the file is embedded in the Base64-encoded application response.

  • As open download links, in which the response contains a public URL to download the file.

  • As secure download links, in which you need to use the Indirect Tax API's bearer token to download the attachment.

By default, Sovos configures your attachments as open download links to avoid potential size limitations when retrieving responses. To improve security, you should configure them as secure links. Then, make a GET call to the secure link returned by the Indirect Tax API, and include the API token. Sample request:

CODE
curl --location 'https://einvoicing-api.sovos.com/download/api/v1/download/JqYyqliXiJFKhXshnBQZfW3qpfwATVGE5Q73T41JUynNLJD8zHy5VH__9qzL9No-Kia9olSw3_lNX3KmaA9Je89Xx--vk5pQjyKx0iT_4CwPSABD0Yg7uxXZ8SNiliEhFY-4TOX7m1TV5FwwfqntehbGaiGMI2JVYu18VBDiC_0/plain%27 \
--header 'Authorization: Bearer TOKEN'

As a response to the initial sending of the document, the client receives a JSON response message with an HTTP status code of 202 (asynchronous transaction). This means that the supplier must retrieve the application responses that become available during the transaction, which provide status information and the cleared XML encoded in Base64 after it's available during the process.

Additionally, you must consider the following details included in the response:

Transmission message
It maps to the SCIGovtStatusCode and StatusReason elements in the response message, as described in the application responses documentation, which details any warnings or additional notes to consider. The Hungarian tax authority doesn't define any specific set of rules about what action to take on each warning. Depending on the type of message, the user may have to modify the invoice, take some additional action, or simply make a note for the future. For details on the warnings, see the NAV API documentation.
ElectronicInvoiceHash
This is part of the UBLExtensions, and it is included in the response if the Invoice/CopyIndicator was set to "true" in step 1. The supplier must archive this hash for compliance and security purposes.

To complete a transaction, the supplier must retrieve the application responses until the transaction has finished. If the supplier has subscribed to multiple notifications, the transaction can generate different application responses, as shown in the table below:

# SCICloudStatusCode SCIResponseCode Sample
1 100 IP
CODE
<cac:DocumentResponse>
		<cac:Response>
			<cbc:ReferenceID/>
			<cbc:ResponseCode listID="SCIResponseCode">IP</cbc:ResponseCode>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCICloudStatusCode">100</cbc:StatusReasonCode>
				<cbc:StatusReason>Document received successfully</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
				<cbc:StatusReason>No action required</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIERPStatusCode">100-Received successfully</cbc:StatusReasonCode>
				<cbc:StatusReason>Document received successfully</cbc:StatusReason>
			</cac:Status>
		</cac:Response>
Document received successfully
2 101 IP
CODE
<cac:DocumentResponse>
		<cac:Response>
			<cbc:ReferenceID/>
			<cbc:ResponseCode listID="SCIResponseCode">IP</cbc:ResponseCode>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCICloudStatusCode">101</cbc:StatusReasonCode>
				<cbc:StatusReason>Document mapped successfully</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
				<cbc:StatusReason>No action required</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIERPStatusCode"/>
				<cbc:StatusReason>Document mapped successfully</cbc:StatusReason>
			</cac:Status>
		</cac:Response>
Document mapped successfully
3 200 AP
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">AP</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">200</cbc:StatusReasonCode>
        <cbc:StatusReason>Authorized by the tax authority</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
        <cbc:StatusReason>No action required</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">200-Authorized</cbc:StatusReasonCode>
        <cbc:StatusReason>Authorized by the tax authority</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Authorized by the tax authority
4 207 AB
CODE
<cac:DocumentResponse>
		<cac:Response>
			<cbc:ReferenceID/>
			<cbc:ResponseCode listID="SCIResponseCode">AB</cbc:ResponseCode>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCICloudStatusCode">207</cbc:StatusReasonCode>
				<cbc:StatusReason>Pdf created successfully</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
				<cbc:StatusReason>No action required</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIERPStatusCode">207-PDF Created successfully</cbc:StatusReasonCode>
				<cbc:StatusReason>Pdf created successfully</cbc:StatusReason>
			</cac:Status>
		</cac:Response>
PDF created successfully. The PDF is part of the attachments in the notification (see the attached document).
5 209 AP
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">AP</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">209</cbc:StatusReasonCode>
        <cbc:StatusReason>Workflow Successfully Completed</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
        <cbc:StatusReason>No action required</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">209-Completed successfully</cbc:StatusReasonCode>
        <cbc:StatusReason>Workflow Successfully Completed</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Workflow Successfully Completed
6 400 RE
CODE
<cac:DocumentResponse>
		<cac:Response>
			<cbc:ReferenceID/>
			<cbc:ResponseCode listID="SCIResponseCode">RE</cbc:ResponseCode>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCICloudStatusCode">400</cbc:StatusReasonCode>
				<cbc:StatusReason>Rejected by the tax authority or the counter party</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIStatusAction">NIN</cbc:StatusReasonCode>
				<cbc:StatusReason>Request to re-issue a corrected new invoice (or other document) or fix the error and resend the document</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIERPStatusCode">400-Rejected</cbc:StatusReasonCode>
				<cbc:StatusReason>Rejected by the tax authority or the counter party</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIGovtStatusCode">SUPPLIER_TAX_NUMBER_MISMATCH</cbc:StatusReasonCode>
				<cbc:StatusReason>Az eladó adószáma nem azonos az API XML-ben megadott, authentikált adószámmal.</cbc:StatusReason>
			</cac:Status>
		</cac:Response>
Rejected by the tax authority or the counterparty
7 401 RE
CODE
<cac:DocumentResponse>
		<cac:Response>
			<cbc:ReferenceID/>
			<cbc:ResponseCode listID="SCIResponseCode">RE</cbc:ResponseCode>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCICloudStatusCode">401</cbc:StatusReasonCode>
				<cbc:StatusReason>Error processing document</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIStatusAction">NIN</cbc:StatusReasonCode>
				<cbc:StatusReason>Request to re-issue a corrected new invoice (or other document) or fix the error and resend the document</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIERPStatusCode">401-Document error</cbc:StatusReasonCode>
				<cbc:StatusReason>Error processing document</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIInternalValidationStatusCode">401</cbc:StatusReasonCode>
				<cbc:StatusReason>The 'http://schemas.nav.gov.hu/OSA/3.0/data:invoiceAppearance' element is invalid - The value 'ROCK' is invalid according to its datatype 'http://schemas.nav.gov.hu/OSA/3.0/base:InvoiceAppearanceType' - The Enumeration constraint failed.</cbc:StatusReason>
			</cac:Status>
		</cac:Response>
Error processing document

The supplier can use the following Indirect Tax API endpoints to retrieve application responses:

  • GET /notifications/HU

  • GET /documents/HU/{documentId}/notifications

GET /notifications/HU
The supplier can send a GET request to the /notifications/HU endpoint to retrieve application responses that match the configured search criteria. To make this request, set the following query parameters:
Name Type Required Default Description
taxId string No Include only notifications related to the specified taxId. This value is related to the CompanyCode in the SBDH.
page integer No 1 To specify the page to be returned, use a value between 1 and 10.
perPage integer No 10

To specify the number of results for the returned page, use a value between 1 and 100.

Important:

If the attachment file is configured to return the binary content instead of a link, use only values between 1 and 10.

sourceSystemId string Yes Include only notifications related to documents that originate from the given source system. This value is related to the SenderSystemId in the SBDH.
includeAcknowledged boolean No false Use "true" to include previously acknowledged notifications, within 24 hours of their acknowledgment, in the result.
processType string No Use "0" to only include notifications related to outbound documents.
Request sample
JSON
curl --location --request GET 'https://api-test.sovos.com/v1/notifications/HU?page=1&perPage=2&includeAcknowledged=true&taxId={taxId}&sourceSystemId={sourceSystemId}&processType=0' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE'
Response sample
JSON
{
    "timestamp": 1633685509314,
    "status": 200,
    "success": true,
    "message": "Notifications Listed",
    "data": {
        "pageState": {
            "page": 1,
            "perPage": 50,
            "totalEntries": 1
        },
        "notifications": [
            {
                "createdDate": 1633681296,
                "metadata": {
                    "productId": "hu_InvoiceData__3.0",
                    "documentId": "3add2b7104dc0049ff0bf410f57e0a19afaf",
                    "erpDocumentId": "321412",
                    "erpSystemId": "UAT101",
                    "processType": "0",
                    "taxId": "08AAACI9260R002",
                    "sciCloudStatusCode": "200",
                    "sciResponseCode": "AP",
                    "sciStatusAction": "NOA",
                    "sciGovtStatusCode": "100"
                },
                "appPrefix": "DLT",
                "notificationId": "a8dc1aa2-fbe6-45ce-9e4c-97a3d5fdb91c",
                "content": "PEF...NlPg=="
            }
        ]
    }
}
GET /documents/HU/{documentId}/notifications
The supplier can send a GET request to the /documents/HU/{documentId}/notifications endpoint to retrieve application responses related to a single document. To make this request, set the following parameter:
Name Type Required Parameter type Default Description
documentId string Yes Path The document ID returned in step 2
Request sample
JSON
curl --location --request GET 'https://api-test.sovos.com/v1/documents/HU/{documentId}/notifications?' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE'
Response sample
JSON
{
    "timestamp": 1633685509314,
    "status": 200,
    "success": true,
    "message": "Notifications Listed",
    "data": {
        "pageState": {
            "page": 1,
            "perPage": 50,
            "totalEntries": 1
        },
        "notifications": [
            {
                "createdDate": 1633681296,
                "metadata": {
                    "productId": "hu_InvoiceData__3.0",
                    "documentId": "3add2b7104dc0049ff0bf410f57e0a19afaf",
                    "erpDocumentId": "321412",
                    "erpSystemId": "UAT101",
                    "processType": "0",
                    "taxId": "08AAACI9260R002",
                    "sciCloudStatusCode": "200",
                    "sciResponseCode": "AP",
                    "sciStatusAction": "NOA",
                    "sciGovtStatusCode": "100"
                },
                "appPrefix": "DLT",
                "notificationId": "a8dc1aa2-fbe6-45ce-9e4c-97a3d5fdb91c",
                "content": "PEF...NlPg=="
            }
        ]
    }
}

Step 9: Supplier marks the application responses as acknowledged

The supplier must process the retrieved application responses and mark them as acknowledged. This can be done by sending a PUT request to the /notifications/HU endpoint.

To make this request, set the following request body parameters:

Name Type Required Description
status string Yes Use "read"
notificationId string Yes The notification ID
Note: Multiple notificationId values can be acknowledged in one Indirect Tax API call by including them in a single request.
Request sample
JSON
curl --location --request PUT 'https://api-test.sovos.com/v1/notifications/HU' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
--data-raw '[
    {
        "status": "read",
        "notificationId": "51341d39-fd3e-4dcf-aea3-a73d73e0de76"
    }
]'
Response sample
JSON
{
    "timestamp": 1601673284,
    "status": 200,
    "success": true,
    "message": "Notifications acknowledged successfully."
}

Step 10: Sovos generates the PDF

After the document is approved, Sovos generates a PDF that presents the content of the invoice XML in a human-readable format.

Step 11: Archiving

You can compliantly archive the XML, the application response, and any graphical representation such as a PDF using Sovos' Compliant Archive.

Archiving is not bundled with the Reporting flow, but it can be done separately, through an explicit API call that uses another archive. For more information on standalone archiving, see the eArchiving documentation page.

Step 12: Supplier sends the invoice to the buyer

After the supplier has reported the invoice data to KOBAK (CopyIndicator was set to "false" in the SCI), the delivery of the invoice to the buyer is outside Sovos' scope. So, it is up to the supplier to design a solution to accommodate the preferred business processes.

Modify invoice

Modifying an Invoice in Hungary is based on the Default business process, which follows this order: Mapping and Transmission. The following diagram provides a detailed overview:

Hungary outbound modification flow

Step 1: Supplier creates the Standard Business Document

When the supplier wants to modify an invoice in Hungary, they send a new invoice to Sovos, and this invoice must be part of a Standard Business Document (SBD). This document includes a Standard Business Document Header (SBDH) and a Sovos Document node, which in turn includes a Sovos Canonical Invoice (SCI). To create the SBD, follow the detailed instructions in the SBDH, Sovos Document, and SCI pages.

Here are some key elements that should be included in the SBD and in the invoice:

Node Required Attributes Value
StandardBusinessDocumentHeader.Sender.Identifier Yes Authority="HU" Supplier's TIN
StandardBusinessDocumentHeader.Receiver.Identifier Yes Authority="HU"
StandardBusinessDocumentHeader.DocumentIdentification.Standard Yes urn:oasis:names:specification:ubl:schema:xsd:Invoice-2
StandardBusinessDocumentHeader.DocumentIdentification.TypeVersion Yes 2.1
StandardBusinessDocumentHeader.DocumentIdentification.Type Yes Invoice
StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: Country

Child node Identifier: HU

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: ProcessType

Child node Identifier: Outbound

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: CompanyCode

Child node Identifier : Supplier's TIN

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: SenderDocumentId

Child node Identifier: A unique document ID. We recommend the ERP document ID.

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: SenderSystemId

Child node Identifier: The system ID configured in the backend. This parameter is used to determine which notifications are returned to the client and what attachments they include. If SenderSystemId is not configured on the client side, it will use the default value of "DefaultSystemERP". For more information, see this topic.

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: Mapping.OutputSchema

Child node Identifier : InvoiceData

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: Mapping.TransformDocument

Child node Identifier: SCI-TO-LEGAL_INVOICE

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: Transmission.OperationType

Child node Identifier: MODIFY for modification, CANCEL for cancellation

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes Child node Type: SubSchema
StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type : Version

Child node Identifier: 3.0

StandardBusinessDocumentHeader.BusinessScope.Scope.BusinessService.BusinessServiceName Yes Default
SovosDocument.SovosCanonicalInvoice.Invoice Yes SCI
Note:

Include all the mandatory nodes, as specified in the SBDH schema. If the information cannot be provided, and the respective mandatory node has not been mentioned on the current page, for example the receiver.identifier, the node can be left empty but must still be included in the SBDH.

Important:

Whether you use the SCI or the local format, you must set the value of the Invoice/CopyIndicator field (completeness indicator) from the SCI section to either "true" or "false" — a "true" value indicates that the submitted document is the legal electronic invoice.

SBD sample
Below is a sample of the SBD. In addition, there's a full sample of the SBD on the Postman Samples page.
CODE
<sbd:StandardBusinessDocument xmlns="http://uri.etsi.org/01903/v1.4.1#" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:sbd="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader" xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" xmlns:ad="http://www.sovos.com/namespaces/additionalData" xmlns:sci="http://www.sovos.com/namespaces/sovosCanonicalInvoice" xmlns:svs="http://www.sovos.com/namespaces/sovosDocument" xmlns:sov="http://www.sovos.com/namespaces/sovosExtensions" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:inv="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
	<sbd:StandardBusinessDocumentHeader>
		<sbd:HeaderVersion>1.0</sbd:HeaderVersion>
		<sbd:Sender>
			<sbd:Identifier Authority="HU">YOUR-TAXID</sbd:Identifier>
			<sbd:ContactInformation>
				<sbd:Contact>YOUR-TAXID</sbd:Contact>
				<sbd:EmailAddress/>
				<sbd:FaxNumber/>
				<sbd:TelephoneNumber/>
				<sbd:ContactTypeIdentifier/>
			</sbd:ContactInformation>
		</sbd:Sender>
		<sbd:Receiver>
			<sbd:Identifier Authority="HU"/>
			<sbd:ContactInformation>
				<sbd:Contact/>
				<sbd:EmailAddress/>
				<sbd:FaxNumber/>
				<sbd:TelephoneNumber/>
				<sbd:ContactTypeIdentifier/>
			</sbd:ContactInformation>
		</sbd:Receiver>
		<sbd:DocumentIdentification>
			<sbd:Standard>urn:oasis:names:specification:ubl:schema:xsd:Invoice-2</sbd:Standard>
			<sbd:TypeVersion>2.1</sbd:TypeVersion>
			<sbd:InstanceIdentifier/>
			<sbd:Type>Invoice</sbd:Type>
			<sbd:MultipleType>false</sbd:MultipleType>
			<sbd:CreationDateAndTime>2020-06-16T00:31:52Z</sbd:CreationDateAndTime>
		</sbd:DocumentIdentification>
		<sbd:BusinessScope>
			<sbd:Scope>
				<sbd:Type>Version</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>3.0</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>SenderDocumentId</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>DOCUMENT-ID</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>SenderSystemId</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>UAT101</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
                <sbd:Type>CompanyCode</sbd:Type>
                <sbd:InstanceIdentifier/>
                <sbd:Identifier>YOUR-TAXID</sbd:Identifier>
            </sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Country</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>HU</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>ProcessType</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>Outbound</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Mapping.TransformDocument</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>SCI-TO-LEGAL_INVOICE</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Mapping.OutputSchema</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>InvoiceData</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>SubSchema</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier/>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Transmission.OperationType</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>MODIFY</sbd:Identifier>
			</sbd:Scope>
		 	<sbd:Scope>
                <sbd:Type>BusinessProcess</sbd:Type>
                <sbd:InstanceIdentifier/>
                <sbd:BusinessService>
                    <sbd:BusinessServiceName>Default</sbd:BusinessServiceName>
                </sbd:BusinessService>
            </sbd:Scope>
		</sbd:BusinessScope>
	</sbd:StandardBusinessDocumentHeader>
	<svs:SovosDocument>
		<sci:SovosCanonicalInvoice>
			<inv:Invoice>
			    *UBL Elements*
			</inv:Invoice>
		</sci:SovosCanonicalInvoice>
	</svs:SovosDocument>
</sbd:StandardBusinessDocument>
SCI Contents
The modified invoice should contain the original invoice content and include additional fields and modifications:
  • A reference to the original invoice:

    CODE
    <cac:OriginatorDocumentReference>
        <cbc:ID>ORIGINAL-INVOICE-ID</cbc:ID>
        <cbc:CopyIndicator>true/false</cbc:CopyIndicator>
        <cbc:LocaleCode>2</cbc:LocaleCode>
    </cac:OriginatorDocumentReference>
  • Each invoice line should contain a reference to the original invoice line marked as modification:

    CODE
    <cac:OrderLineReference>
        <cbc:LineID schemeID="LineModificationReference">ORIGINAL-LINE-ID</cbc:LineID>
        <cbc:LineStatusCode>MODIFY</cbc:LineStatusCode>
    </cac:OrderLineReference>
  • The new values for the invoice lines can be an increase (with positive values) or a decrease (with negative values).

Step 2: Supplier sends the SBD to Sovos

The supplier sends a POST request to the /documents endpoint.

The request must include the following request body parameters:

Name Type Required Description
data string Yes The Base64-encoded SBD from step 1
dataEncoding string Yes Use "base64"
Note:

After receiving the document, Sovos performs a structure/schema validation of both the SCI and the SBD parts.

There are full samples of the SCI and Legal XMLs in the SCI Samples topic.

Request sample
JSON
curl --location --request POST 'https://api-test-tls.sovos.com/v1/documents' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
--data-raw '{
	"data": "PD9...d4=",
	"dataEncoding" : "base64"
}'
Response sample
JSON
{
    "status": 202,
    "message": "Accepted",
    "success": true,
    "timestamp": 1674247842434,
    "data": {
        "transactionId": "77e0188a-...-be7ea2193d9e",
        "documentId": "5fe...6ad6"
    }
}

Step 3: Sovos maps the SCI into XML

Upon receiving the SCI, Sovos maps the file into the required XML format.

Step 4: Sovos performs the schema validation

Sovos performs a schema validation based on the information provided by the tax authority. If there are errors in the document, Sovos detects them instead of waiting for the tax authority's response.

Step 5: Sovos transmits the XML

Sovos transmits the XML file to the tax authority KOBAK system.

Step 6: KOBAK processes the XML

KOBAK performs a schema validation and several business validations. Then it generates an approval or rejection response message along with an error message, where applicable.

Step 7: KOBAK sends the response to Sovos

After performing its services, KOBAK sends the response to Sovos.

Step 8: Supplier retrieves the application responses

Attachments configuration

You can access your attachments:

  • As binary data, so the file is embedded in the Base64-encoded application response.

  • As open download links, in which the response contains a public URL to download the file.

  • As secure download links, in which you need to use the Indirect Tax API's bearer token to download the attachment.

By default, Sovos configures your attachments as open download links to avoid potential size limitations when retrieving responses. To improve security, you should configure them as secure links. Then, make a GET call to the secure link returned by the Indirect Tax API, and include the API token. Sample request:

CODE
curl --location 'https://einvoicing-api.sovos.com/download/api/v1/download/JqYyqliXiJFKhXshnBQZfW3qpfwATVGE5Q73T41JUynNLJD8zHy5VH__9qzL9No-Kia9olSw3_lNX3KmaA9Je89Xx--vk5pQjyKx0iT_4CwPSABD0Yg7uxXZ8SNiliEhFY-4TOX7m1TV5FwwfqntehbGaiGMI2JVYu18VBDiC_0/plain%27 \
--header 'Authorization: Bearer TOKEN'

As a response to the initial sending of the document, the client receives a JSON response message with an HTTP status code of 202 (asynchronous transaction). This means that the supplier must retrieve the application responses that become available during the transaction, which provide status information and the cleared XML encoded in Base64 after it's available during the process.

Additionally, you must consider the following details included in the response:

Transmission message
The transmission message maps to the SCIGovtStatusCode and StatusReason elements in the response message, as described in the application responses documentation, which details any warnings or additional notes to consider. The Hungarian tax authority doesn't define any specific set of rules about what action to take on each warning. Depending on the type of message, the user may have to modify the invoice, take some additional action, or simply make a note for the future. For details on the warnings, see the NAV API documentation.
ElectronicInvoiceHash
The ElectronicInvoiceHash is part of the UBLExtensions node, and it is included in the response if the Invoice/CopyIndicator was set to "true" in step 1. The supplier must archive this hash for compliance and security purposes.

To complete a transaction, the supplier must retrieve the application responses until the transaction has finished. If the supplier has subscribed to all notifications, the transaction can generate different application responses. See the table below:

# SCICloudStatusCode SCIResponseCode Sample
1 100 IP
CODE
<cac:DocumentResponse>
		<cac:Response>
			<cbc:ReferenceID/>
			<cbc:ResponseCode listID="SCIResponseCode">IP</cbc:ResponseCode>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCICloudStatusCode">100</cbc:StatusReasonCode>
				<cbc:StatusReason>Document received successfully</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
				<cbc:StatusReason>No action required</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIERPStatusCode">100-Received successfully</cbc:StatusReasonCode>
				<cbc:StatusReason>Document received successfully</cbc:StatusReason>
			</cac:Status>
		</cac:Response>
Document received successfully
2 101 IP
CODE
<cac:DocumentResponse>
		<cac:Response>
			<cbc:ReferenceID/>
			<cbc:ResponseCode listID="SCIResponseCode">IP</cbc:ResponseCode>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCICloudStatusCode">101</cbc:StatusReasonCode>
				<cbc:StatusReason>Document mapped successfully</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
				<cbc:StatusReason>No action required</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIERPStatusCode"/>
				<cbc:StatusReason>Document mapped successfully</cbc:StatusReason>
			</cac:Status>
		</cac:Response>
Document mapped successfully
3 200 AP
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">AP</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">200</cbc:StatusReasonCode>
        <cbc:StatusReason>Authorized by the tax authority</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
        <cbc:StatusReason>No action required</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">200-Authorized</cbc:StatusReasonCode>
        <cbc:StatusReason>Authorized by the tax authority</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Authorized by the tax authority
4 207 AB
CODE
<cac:DocumentResponse>
		<cac:Response>
			<cbc:ReferenceID/>
			<cbc:ResponseCode listID="SCIResponseCode">AB</cbc:ResponseCode>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCICloudStatusCode">207</cbc:StatusReasonCode>
				<cbc:StatusReason>Pdf created successfully</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
				<cbc:StatusReason>No action required</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIERPStatusCode">207-PDF Created successfully</cbc:StatusReasonCode>
				<cbc:StatusReason>Pdf created successfully</cbc:StatusReason>
			</cac:Status>
		</cac:Response>
PDF created successfully. The PDF is part of the attachments in the notification (see the attached document).
5 209 AP
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">AP</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">209</cbc:StatusReasonCode>
        <cbc:StatusReason>Workflow Successfully Completed</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
        <cbc:StatusReason>No action required</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">209-Completed successfully</cbc:StatusReasonCode>
        <cbc:StatusReason>Workflow Successfully Completed</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Workflow Successfully Completed
6 400 RE
CODE
<cac:DocumentResponse>
		<cac:Response>
			<cbc:ReferenceID/>
			<cbc:ResponseCode listID="SCIResponseCode">RE</cbc:ResponseCode>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCICloudStatusCode">400</cbc:StatusReasonCode>
				<cbc:StatusReason>Rejected by the tax authority or the counter party</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIStatusAction">NIN</cbc:StatusReasonCode>
				<cbc:StatusReason>Request to re-issue a corrected new invoice (or other document) or fix the error and resend the document</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIERPStatusCode">400-Rejected</cbc:StatusReasonCode>
				<cbc:StatusReason>Rejected by the tax authority or the counter party</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIGovtStatusCode">SUPPLIER_TAX_NUMBER_MISMATCH</cbc:StatusReasonCode>
				<cbc:StatusReason>Az eladó adószáma nem azonos az API XML-ben megadott, authentikált adószámmal.</cbc:StatusReason>
			</cac:Status>
		</cac:Response>
Rejected by the tax authority or the counterparty
7 401 RE
CODE
<cac:DocumentResponse>
		<cac:Response>
			<cbc:ReferenceID/>
			<cbc:ResponseCode listID="SCIResponseCode">RE</cbc:ResponseCode>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCICloudStatusCode">401</cbc:StatusReasonCode>
				<cbc:StatusReason>Error processing document</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIStatusAction">NIN</cbc:StatusReasonCode>
				<cbc:StatusReason>Request to re-issue a corrected new invoice (or other document) or fix the error and resend the document</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIERPStatusCode">401-Document error</cbc:StatusReasonCode>
				<cbc:StatusReason>Error processing document</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIInternalValidationStatusCode">401</cbc:StatusReasonCode>
				<cbc:StatusReason>The 'http://schemas.nav.gov.hu/OSA/3.0/data:invoiceAppearance' element is invalid - The value 'ROCK' is invalid according to its datatype 'http://schemas.nav.gov.hu/OSA/3.0/base:InvoiceAppearanceType' - The Enumeration constraint failed.</cbc:StatusReason>
			</cac:Status>
		</cac:Response>
Error processing document

The supplier can use the following Indirect Tax API endpoints to retrieve application responses:

  • GET /notifications/HU

  • GET /documents/HU/{documentId}/notifications

GET /notifications/HU
The supplier can send a GET request to the /notifications/HU endpoint to retrieve application responses that match the configured search criteria. To make this request, set the following query parameters:
Name Type Required Default Description
taxId string No Include only notifications related to the specified taxId. This value is related to the CompanyCode in the SBDH.
page integer No 1 To specify the page to be returned, use a value between 1 and 10.
perPage integer No 10

To specify the number of results for the returned page, use a value between 1 and 100.

Important:

If the attachment file is configured to return the binary content instead of a link, use only values between 1 and 10.

sourceSystemId string Yes Include only notifications related to documents that originate from the given source system. This value is related to the SenderSystemId in the SBDH.
includeAcknowledged boolean No false Use "true" to include previously acknowledged notifications, within 24 hours of their acknowledgment, in the result.
processType string No Use "0" to only include notifications related to outbound documents.
Request sample
JSON
curl --location --request GET 'https://api-test.sovos.com/v1/notifications/HU?page=1&perPage=2&includeAcknowledged=true&taxId={taxId}&sourceSystemId={sourceSystemId}&processType=0' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE'
Response sample
JSON
{
    "timestamp": 1633685509314,
    "status": 200,
    "success": true,
    "message": "Notifications Listed",
    "data": {
        "pageState": {
            "page": 1,
            "perPage": 50,
            "totalEntries": 1
        },
        "notifications": [
            {
                "createdDate": 1633681296,
                "metadata": {
                    "productId": "hu_InvoiceData__3.0",
                    "documentId": "DOCUMENT-ID",
                    "erpDocumentId": "ERP-DOCUMENT-ID",
                    "erpSystemId": "SystemERP",
                    "processType": "0",
                    "taxId": "YOUR-TAXID",
                    "sciCloudStatusCode": "200",
                    "sciResponseCode": "AP",
                    "sciStatusAction": "NOA",
                    "sciGovtStatusCode": "100"
                },
                "appPrefix": "DLT",
                "notificationId": "a8dc1aa2-...-97a3d5fdb91c",
                "content": "PEF...NlPg=="
            }
        ]
    }
}
GET /documents/HU/{documentId}/notifications
The supplier can send a GET request to the /documents/HU/{documentId}/notifications endpoint to retrieve application responses related to a single document. To make this request, set the following parameter:
Name Type Required Parameter type Default Description
documentId string Yes Path The document ID returned in step 2
Request sample
JSON
curl --location --request GET 'https://api-test.sovos.com/v1/documents/HU/{documentId}/notifications' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE'
Response sample
JSON
{
    "timestamp": 1633685509314,
    "status": 200,
    "success": true,
    "message": "Notifications Listed",
    "data": {
        "pageState": {
            "page": 1,
            "perPage": 50,
            "totalEntries": 1
        },
        "notifications": [
            {
                "createdDate": 1633681296,
                "metadata": {
                    "productId": "hu_InvoiceData__3.0",
                    "documentId": "DOCUMENT-ID",
                    "erpDocumentId": "ERP-DOCUMENT-ID",
                    "erpSystemId": "SystemERP",
                    "processType": "0",
                    "taxId": "YOUR-TAXID",
                    "sciCloudStatusCode": "200",
                    "sciResponseCode": "AP",
                    "sciStatusAction": "NOA",
                    "sciGovtStatusCode": "100"
                },
                "appPrefix": "DLT",
                "notificationId": "a8dc1aa2-...-97a3d5fdb91c",
                "content": "PEF...NlPg=="
            }
        ]
    }
}

Step 9: Supplier marks the application responses as acknowledged

The supplier must process the retrieved application responses and mark them as acknowledged. This can be done by sending a PUT request to the /notifications/HU endpoint.

To make this request, set the following request body parameters:

Name Type Required Description
status string Yes Use "read"
notificationId string Yes The notification ID
Note: Multiple notificationId values can be acknowledged in one Indirect Tax API call by including them in a single request.
Request sample
JSON
curl --location --request PUT 'https://api-test.sovos.com/v1/notifications/HU' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
--data-raw '[
    {
        "status": "read",
        "notificationId": "51341d39-...-a73d73e0de76"
    }
]'
Response sample
JSON
{
    "timestamp": 1601673284,
    "status": 200,
    "success": true,
    "message": "Notifications acknowledged successfully."
}

Step 10: Archiving

You can compliantly archive the XML, the application response, and any graphical representation such as a PDF using Sovos' Compliant Archive.

For suppliers integrating with the Sovos solution for Hungary for the first time, we recommend the bundled approach, in which archiving is part of the invoice clearance flow. Archiving can also be done separately through an explicit API call that uses another archive. For more information on standalone archiving, see the eArchiving documentation page.

Note: Bundled e-invoice archiving is optional. This means you can use your current solution and include Sovos e-Archiving.

Step 11: Supplier sends the invoice to the buyer

After the supplier has reported the invoice data to KOBAK (if the CopyIndicator was set to "false" in the SCI), the delivery of the invoice to the buyer is outside Sovos' scope, and it is up to the supplier to design a solution to accommodate the preferred business processes.

If the supplier wants to use the invoice data as the original e-invoice (setting CopyIndicator to "false" in the SCI), they should also make the invoice available to the buyer in the KOBAK system.

Cancel invoice

Canceling an invoice in Hungary is based on the Default business process, which follows this order: Mapping and Transmission. The following diagram provides a detailed overview:

Hungary outbound cancellation flow

Step 1: Supplier creates the Standard Business Document

When the supplier wants to cancel an invoice in Hungary, they send a new invoice to Sovos, and this invoice must be part of a Standard Business Document (SBD). This document includes a Standard Business Document Header (SBDH) and a Sovos Document node, which in turn includes a Sovos Canonical Invoice (SCI). To create the SBD, follow the detailed instructions in the SBDH, Sovos Document, and SCI pages.

Here are some key elements that should be included in the SBD and in the invoice:

Node Required Attributes Value
StandardBusinessDocumentHeader.Sender.Identifier Yes Authority="HU" Supplier's TIN
StandardBusinessDocumentHeader.Receiver.Identifier Yes Authority="HU"
StandardBusinessDocumentHeader.DocumentIdentification.Standard Yes urn:oasis:names:specification:ubl:schema:xsd:Invoice-2
StandardBusinessDocumentHeader.DocumentIdentification.TypeVersion Yes 2.1
StandardBusinessDocumentHeader.DocumentIdentification.Type Yes Invoice
StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: Country

Child node Identifier: HU

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: ProcessType

Child node Identifier: Outbound

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: CompanyCode

Child node Identifier : Supplier's TIN

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: SenderDocumentId

Child node Identifier: A unique document ID. We recommend the ERP document ID.

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: SenderSystemId

Child node Identifier: The system ID configured in the backend. This parameter is used to determine which notifications are returned to the client and what attachments they include. If SenderSystemId is not configured on the client side, it will use the default value of "DefaultSystemERP". For more information, see this topic.

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: Mapping.OutputSchema

Child node Identifier : InvoiceData

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: Mapping.TransformDocument

Child node Identifier: SCI-TO-LEGAL_INVOICE

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type: Transmission.OperationType

Child node Identifier: MODIFY for modification, CANCEL for cancellation

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes Child node Type: SubSchema
StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes) Yes

Child node Type : Version

Child node Identifier: 3.0

StandardBusinessDocumentHeader.BusinessScope.Scope.BusinessService.BusinessServiceName Yes Default
SovosDocument.SovosCanonicalInvoice.Invoice Yes SCI
Note:

Include all the mandatory nodes, as specified in the SBDH schema. If the information cannot be provided, and the respective mandatory node has not been mentioned on the current page, for example the receiver.identifier, the node can be left empty but must still be included in the SBDH.

Important:

Whether you use the SCI or the local format, you need to set the value of the Invoice/CopyIndicator field (completeness indicator) from the SCI section to either "true" or "false" — a "true" value indicates that the submitted document is the legal electronic invoice.

SBD Sample
Below is a sample of the SBD. In addition, there's a full sample of the SBD on the Postman Samples page.
CODE
<sbd:StandardBusinessDocument xmlns="http://uri.etsi.org/01903/v1.4.1#" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:sbd="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader" xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" xmlns:ad="http://www.sovos.com/namespaces/additionalData" xmlns:sci="http://www.sovos.com/namespaces/sovosCanonicalInvoice" xmlns:svs="http://www.sovos.com/namespaces/sovosDocument" xmlns:sov="http://www.sovos.com/namespaces/sovosExtensions" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:inv="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
	<sbd:StandardBusinessDocumentHeader>
		<sbd:HeaderVersion>1.0</sbd:HeaderVersion>
		<sbd:Sender>
			<sbd:Identifier Authority="HU">YOUR-TAXID</sbd:Identifier>
			<sbd:ContactInformation>
				<sbd:Contact>YOUR-TAXID</sbd:Contact>
				<sbd:EmailAddress/>
				<sbd:FaxNumber/>
				<sbd:TelephoneNumber/>
				<sbd:ContactTypeIdentifier/>
			</sbd:ContactInformation>
		</sbd:Sender>
		<sbd:Receiver>
			<sbd:Identifier Authority="HU"/>
			<sbd:ContactInformation>
				<sbd:Contact/>
				<sbd:EmailAddress/>
				<sbd:FaxNumber/>
				<sbd:TelephoneNumber/>
				<sbd:ContactTypeIdentifier/>
			</sbd:ContactInformation>
		</sbd:Receiver>
		<sbd:DocumentIdentification>
			<sbd:Standard>urn:oasis:names:specification:ubl:schema:xsd:Invoice-2</sbd:Standard>
			<sbd:TypeVersion>2.1</sbd:TypeVersion>
			<sbd:InstanceIdentifier/>
			<sbd:Type>Invoice</sbd:Type>
			<sbd:MultipleType>false</sbd:MultipleType>
			<sbd:CreationDateAndTime>2020-06-16T00:31:52Z</sbd:CreationDateAndTime>
		</sbd:DocumentIdentification>
		<sbd:BusinessScope>
			<sbd:Scope>
				<sbd:Type>Version</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>3.0</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>SenderDocumentId</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>DOCUMENT-ID</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>SenderSystemId</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>SystemERP</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
                <sbd:Type>CompanyCode</sbd:Type>
                <sbd:InstanceIdentifier/>
                <sbd:Identifier>YOUR-TAXID</sbd:Identifier>
            </sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Country</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>HU</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>ProcessType</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>Outbound</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Mapping.TransformDocument</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>SCI-TO-LEGAL_INVOICE</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Mapping.OutputSchema</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>InvoiceData</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>SubSchema</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier/>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Transmission.OperationType</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>CANCEL</sbd:Identifier>
			</sbd:Scope>
		 	<sbd:Scope>
                <sbd:Type>BusinessProcess</sbd:Type>
                <sbd:InstanceIdentifier/>
                <sbd:BusinessService>
                    <sbd:BusinessServiceName>Default</sbd:BusinessServiceName>
                </sbd:BusinessService>
            </sbd:Scope>
		</sbd:BusinessScope>
	</sbd:StandardBusinessDocumentHeader>
	<svs:SovosDocument>
		<sci:SovosCanonicalInvoice>
			<inv:Invoice>
			    *UBL Elements*
			</inv:Invoice>
		</sci:SovosCanonicalInvoice>
	</svs:SovosDocument>
</sbd:StandardBusinessDocument>
SCI contents
The cancellation invoice content should contain the original invoice content with some additional fields and modifications:
  • A reference to the original invoice:
    CODE
    <cac:OriginatorDocumentReference>
        <cbc:ID>ORIGINAL-INVOICE-ID</cbc:ID>
        <cbc:CopyIndicator>true/false</cbc:CopyIndicator>
        <cbc:LocaleCode>2</cbc:LocaleCode>
    </cac:OriginatorDocumentReference>
  • Each invoice line should contain a reference to the original invoice line marked as modification:
    CODE
    <cac:OrderLineReference>
        <cbc:LineID schemeID="LineModificationReference">ORIGINAL-LINE-ID</cbc:LineID>
        <cbc:LineStatusCode>MODIFY</cbc:LineStatusCode>
    </cac:OrderLineReference>
  • The new values for the invoice lines should be inverted, resulting in a zero sum. For example, the quantity and line totals should have the same values as the original invoice, but with a preceding "-" (minus sign).

Note:

When canceling an invoice, the new invoice from merging the original and the canceled one should give a zero value.

Step 2: Supplier sends the SBD to Sovos

The supplier sends a POST request to the /documents endpoint.

The request must include the following request body parameters:

Name Type Required Description
data string Yes The Base64-encoded SBD from step 1
dataEncoding string Yes Use "base64"
Note:

After receiving the document, Sovos performs a structure/schema validation of both the SCI and the SBD parts.

There are full samples of the SCI and Legal XMLs in the SCI Samples topic.

Request sample
JSON
curl --location --request POST 'https://api-test-tls.sovos.com/v1/documents' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
--data-raw '{
	"data": "PD9...d4=",
	"dataEncoding" : "base64"
}'
Response sample
JSON
{
    "status": 202,
    "message": "Accepted",
    "success": true,
    "timestamp": 1674247842434,
    "data": {
        "transactionId": "77e0188a-...-be7ea2193d9e",
        "documentId": "5fe...6ad6"
    }
}

Step 3: Sovos maps the SCI into XML

Upon receiving the SCI, Sovos maps the file into the required XML format.

Step 4: Sovos performs the schema validation

Sovos performs a schema validation based on the information provided by the tax authority. If there are errors in the document, Sovos detects them instead of waiting for the tax authority's response.

Step 5: Sovos transmits the XML

Sovos transmits the XML file to the tax authority KOBAK system.

Step 6: KOBAK processes the XML

KOBAK performs a schema validation and several business validations. Then it generates an approval or rejection response message along with an error message, where applicable.

Step 7: KOBAK sends the response to Sovos

After performing its services, KOBAK sends the response to Sovos.

Step 8: Supplier retrieves the application responses

Attachments configuration

You can access your attachments:

  • As binary data, so the file is embedded in the Base64-encoded application response.

  • As open download links, in which the response contains a public URL to download the file.

  • As secure download links, in which you need to use the Indirect Tax API's bearer token to download the attachment.

By default, Sovos configures your attachments as open download links to avoid potential size limitations when retrieving responses. To improve security, you should configure them as secure links. Then, make a GET call to the secure link returned by the Indirect Tax API, and include the API token. Sample request:

CODE
curl --location 'https://einvoicing-api.sovos.com/download/api/v1/download/JqYyqliXiJFKhXshnBQZfW3qpfwATVGE5Q73T41JUynNLJD8zHy5VH__9qzL9No-Kia9olSw3_lNX3KmaA9Je89Xx--vk5pQjyKx0iT_4CwPSABD0Yg7uxXZ8SNiliEhFY-4TOX7m1TV5FwwfqntehbGaiGMI2JVYu18VBDiC_0/plain%27 \
--header 'Authorization: Bearer TOKEN'

As a response to the initial sending of the document, the client receives a JSON response message with an HTTP status code of 202 (asynchronous transaction). This means that the supplier must retrieve the application responses that become available during the transaction, which provide status information and the cleared XML encoded in Base64 after it's available during the process.

Additionally, you must consider the following details included in the response:

Transmission message
The transmission message maps to the SCIGovtStatusCode and StatusReason elements in the response message, as described in the application responses documentation, which details any warnings or additional notes to consider. The Hungarian tax authority doesn't define any specific set of rules about what action to take on each warning. Depending on the type of message, the user may have to modify the invoice, take some additional action, or simply make a note for the future. For details on the warnings, see the NAV API documentation.
ElectronicInvoiceHash
The ElectronicInvoiceHash is part of the UBLExtensions, and it is included in the response if the Invoice/CopyIndicator was set to "true" in step 1. The supplier must archive this hash for compliance and security purposes.

To complete a transaction, the supplier must retrieve the application responses until the transaction has finished. If the supplier has subscribed to all notifications, the transaction can generate different application responses. See the table below:

# SCICloudStatusCode SCIResponseCode Sample
1 100 IP
CODE
<cac:DocumentResponse>
		<cac:Response>
			<cbc:ReferenceID/>
			<cbc:ResponseCode listID="SCIResponseCode">IP</cbc:ResponseCode>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCICloudStatusCode">100</cbc:StatusReasonCode>
				<cbc:StatusReason>Document received successfully</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
				<cbc:StatusReason>No action required</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIERPStatusCode">100-Received successfully</cbc:StatusReasonCode>
				<cbc:StatusReason>Document received successfully</cbc:StatusReason>
			</cac:Status>
		</cac:Response>
Document received successfully
2 101 IP
CODE
<cac:DocumentResponse>
		<cac:Response>
			<cbc:ReferenceID/>
			<cbc:ResponseCode listID="SCIResponseCode">IP</cbc:ResponseCode>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCICloudStatusCode">101</cbc:StatusReasonCode>
				<cbc:StatusReason>Document mapped successfully</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
				<cbc:StatusReason>No action required</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIERPStatusCode"/>
				<cbc:StatusReason>Document mapped successfully</cbc:StatusReason>
			</cac:Status>
		</cac:Response>
Document mapped successfully
3 200 AP
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">AP</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">200</cbc:StatusReasonCode>
        <cbc:StatusReason>Authorized by the tax authority</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
        <cbc:StatusReason>No action required</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">200-Authorized</cbc:StatusReasonCode>
        <cbc:StatusReason>Authorized by the tax authority</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Authorized by the tax authority
4 207 AB
CODE
<cac:DocumentResponse>
		<cac:Response>
			<cbc:ReferenceID/>
			<cbc:ResponseCode listID="SCIResponseCode">AB</cbc:ResponseCode>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCICloudStatusCode">207</cbc:StatusReasonCode>
				<cbc:StatusReason>Pdf created successfully</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
				<cbc:StatusReason>No action required</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIERPStatusCode">207-PDF Created successfully</cbc:StatusReasonCode>
				<cbc:StatusReason>Pdf created successfully</cbc:StatusReason>
			</cac:Status>
		</cac:Response>
PDF created successfully. The PDF is part of the attachments in the notification (see the attached document).
5 209 AP
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">AP</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">209</cbc:StatusReasonCode>
        <cbc:StatusReason>Workflow Successfully Completed</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
        <cbc:StatusReason>No action required</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">209-Completed successfully</cbc:StatusReasonCode>
        <cbc:StatusReason>Workflow Successfully Completed</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Workflow Successfully Completed
6 400 RE
CODE
<cac:DocumentResponse>
		<cac:Response>
			<cbc:ReferenceID/>
			<cbc:ResponseCode listID="SCIResponseCode">RE</cbc:ResponseCode>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCICloudStatusCode">400</cbc:StatusReasonCode>
				<cbc:StatusReason>Rejected by the tax authority or the counter party</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIStatusAction">NIN</cbc:StatusReasonCode>
				<cbc:StatusReason>Request to re-issue a corrected new invoice (or other document) or fix the error and resend the document</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIERPStatusCode">400-Rejected</cbc:StatusReasonCode>
				<cbc:StatusReason>Rejected by the tax authority or the counter party</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIGovtStatusCode">SUPPLIER_TAX_NUMBER_MISMATCH</cbc:StatusReasonCode>
				<cbc:StatusReason>Az eladó adószáma nem azonos az API XML-ben megadott, authentikált adószámmal.</cbc:StatusReason>
			</cac:Status>
		</cac:Response>
Rejected by the tax authority or the counterparty
7 401 RE
CODE
<cac:DocumentResponse>
		<cac:Response>
			<cbc:ReferenceID/>
			<cbc:ResponseCode listID="SCIResponseCode">RE</cbc:ResponseCode>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCICloudStatusCode">401</cbc:StatusReasonCode>
				<cbc:StatusReason>Error processing document</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIStatusAction">NIN</cbc:StatusReasonCode>
				<cbc:StatusReason>Request to re-issue a corrected new invoice (or other document) or fix the error and resend the document</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIERPStatusCode">401-Document error</cbc:StatusReasonCode>
				<cbc:StatusReason>Error processing document</cbc:StatusReason>
			</cac:Status>
			<cac:Status>
				<cbc:StatusReasonCode listID="SCIInternalValidationStatusCode">401</cbc:StatusReasonCode>
				<cbc:StatusReason>The 'http://schemas.nav.gov.hu/OSA/3.0/data:invoiceAppearance' element is invalid - The value 'ROCK' is invalid according to its datatype 'http://schemas.nav.gov.hu/OSA/3.0/base:InvoiceAppearanceType' - The Enumeration constraint failed.</cbc:StatusReason>
			</cac:Status>
		</cac:Response>
Error processing document

The supplier can use the following Indirect Tax API endpoints to retrieve application responses:

  • GET /notifications/HU

  • GET /documents/HU/{documentId}/notifications

GET /notifications/HU
The supplier can send a GET request to the /notifications/HU endpoint to retrieve application responses that match the configured search criteria. To make this request, set the following query parameters:
Name Type Required Default Description
taxId string No Include only notifications related to the specified taxId. This value is related to the CompanyCode in the SBDH.
page integer No 1 To specify the page to be returned, use a value between 1 and 10.
perPage integer No 10

To specify the number of results for the returned page, use a value between 1 and 100.

Important:

If the attachment file is configured to return the binary content instead of a link, use only values between 1 and 10.

sourceSystemId string Yes Include only notifications related to documents that originate from the given source system. This value is related to the SenderSystemId in the SBDH.
includeAcknowledged boolean No false Use "true" to include previously acknowledged notifications, within 24 hours of their acknowledgment, in the result.
processType string No Use "0" to only include notifications related to outbound documents.
Request sample
JSON
curl --location --request GET 'https://api-test.sovos.com/v1/notifications/HU?page=1&perPage=2&includeAcknowledged=true&taxId={taxId}&sourceSystemId={sourceSystemId}&processType=0' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE'
Response sample
JSON
{
    "timestamp": 1633685509314,
    "status": 200,
    "success": true,
    "message": "Notifications Listed",
    "data": {
        "pageState": {
            "page": 1,
            "perPage": 50,
            "totalEntries": 1
        },
        "notifications": [
            {
                "createdDate": 1633681296,
                "metadata": {
                    "productId": "hu_InvoiceData__3.0",
                    "documentId": "DOCUMENT-ID",
                    "erpDocumentId": "ERP-DOCUMENT-ID",
                    "erpSystemId": "SystemERP",
                    "processType": "0",
                    "taxId": "YOUR-TAXID",
                    "sciCloudStatusCode": "200",
                    "sciResponseCode": "AP",
                    "sciStatusAction": "NOA",
                    "sciGovtStatusCode": "100"
                },
                "appPrefix": "DLT",
                "notificationId": "a8dc1aa2-...-97a3d5fdb91c",
                "content": "PEF...NlPg=="
            }
        ]
    }
}
GET /documents/HU/{documentId}/notifications
The supplier can send a GET request to the /documents/HU/{documentId}/notifications endpoint to retrieve application responses related to a single document. To make this request, set the following parameter:
Name Type Required Parameter type Default Description
documentId string Yes Path The document ID returned in step 2
Request sample
JSON
curl --location --request GET 'https://api-test.sovos.com/v1/documents/HU/{documentId}/notifications' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE'
Response sample
JSON
{
    "timestamp": 1633685509314,
    "status": 200,
    "success": true,
    "message": "Notifications Listed",
    "data": {
        "pageState": {
            "page": 1,
            "perPage": 50,
            "totalEntries": 1
        },
        "notifications": [
            {
                "createdDate": 1633681296,
                "metadata": {
                    "productId": "hu_InvoiceData__3.0",
                    "documentId": "DOCUMENT-ID",
                    "erpDocumentId": "ERP-DOCUMENT-ID",
                    "erpSystemId": "SystemERP",
                    "processType": "0",
                    "taxId": "YOUR-TAXID",
                    "sciCloudStatusCode": "200",
                    "sciResponseCode": "AP",
                    "sciStatusAction": "NOA",
                    "sciGovtStatusCode": "100"
                },
                "appPrefix": "DLT",
                "notificationId": "a8dc1aa2-...-97a3d5fdb91c",
                "content": "PEF...NlPg=="
            }
        ]
    }
}

Step 9: Supplier marks the application responses as acknowledged

The supplier must process the retrieved application responses and mark them as acknowledged. This can be done by sending a PUT request to the /notifications/HU endpoint.

To make this request, set the following request body parameters:

Name Type Required Description
status string Yes Use "read"
notificationId string Yes The notification ID
Note: Multiple notificationId values can be acknowledged in one Indirect Tax API call by including them in a single request.
Request sample
JSON
curl --location --request PUT 'https://api-test.sovos.com/v1/notifications/HU' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
--data-raw '[
    {
        "status": "read",
        "notificationId": "51341d39-...-a73d73e0de76"
    }
]'
Response sample
JSON
{
    "timestamp": 1601673284,
    "status": 200,
    "success": true,
    "message": "Notifications acknowledged successfully."
}

Step 10: Archiving

You can compliantly archive the XML, the application response, and any graphical representation such as a PDF using Sovos' Compliant Archive.

For suppliers integrating with the Sovos solution for Hungary for the first time, we recommend the bundled approach, in which archiving is part of the invoice clearance or reporting flow. Archiving can also be done separately through an explicit API call that uses another archive. For more information on standalone archiving, see the eArchiving documentation page.

Note: Bundled e-invoice archiving is optional. This means you can use your current solution and include Sovos e-Archiving.

Step 11: Supplier sends the invoice to the buyer

After the supplier has reported the invoice data to KOBAK (CopyIndicator was set to "false" in the SCI), the delivery of the invoice to the buyer is outside Sovos' scope. So, it is up to the supplier to design a solution to accommodate the preferred business processes.

If the supplier wants to use the invoice data as the original e-invoice (setting CopyIndicator to "false" in the SCI), they should also make the invoice available to the buyer in the KOBAK system.

Retrieve invoice

The diagram below provides a detailed overview of the inbound flow process for retrieving invoices in Hungary:

Hungary inbound invoice retrieval flow

Step 1: Sovos retrieves the documents from KOBAK

Sovos uses the buyer's credentials to authenticate with KOBAK to collect the available documents.

Note:

The documents only become available if the supplier has specified that the invoice will be used as the supplier's e-invoice. This is done in the outbound process.

.

Step 2: Sovos makes the documents available

Sovos stores the retrieved documents and makes them available to buyers for retrieval.

Step 3: Buyer retrieves the application responses

Attachments configuration

You can access your attachments:

  • As binary data, so the file is embedded in the Base64-encoded application response.

  • As open download links, in which the response contains a public URL to download the file.

  • As secure download links, in which you need to use the Indirect Tax API's bearer token to download the attachment.

By default, Sovos configures your attachments as open download links to avoid potential size limitations when retrieving responses. To improve security, you should configure them as secure links. Then, make a GET call to the secure link returned by the Indirect Tax API, and include the API token. Sample request:

CODE
curl --location 'https://einvoicing-api.sovos.com/download/api/v1/download/JqYyqliXiJFKhXshnBQZfW3qpfwATVGE5Q73T41JUynNLJD8zHy5VH__9qzL9No-Kia9olSw3_lNX3KmaA9Je89Xx--vk5pQjyKx0iT_4CwPSABD0Yg7uxXZ8SNiliEhFY-4TOX7m1TV5FwwfqntehbGaiGMI2JVYu18VBDiC_0/plain%27 \
--header 'Authorization: Bearer TOKEN'

To complete a transaction, the buyer must retrieve the application responses until the transaction has finished. If the buyer has subscribed to all notifications, the transaction can generate different application responses. See the table below:

# SCICloudStatusCode SCIResponseCode Sample
1 100 IP
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">IP</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">100</cbc:StatusReasonCode>
        <cbc:StatusReason>Document received successfully</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
        <cbc:StatusReason>No action required</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">100-Received successfully</cbc:StatusReasonCode>
        <cbc:StatusReason>Document received successfully</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Document received successfully
2 101 IP
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">IP</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">101</cbc:StatusReasonCode>
        <cbc:StatusReason>Document mapped successfully</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
        <cbc:StatusReason>No action required</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">101-Mapped successfully</cbc:StatusReasonCode>
        <cbc:StatusReason>Document mapped successfully</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Document mapped successfully
3 207 AP
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">AP</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">207</cbc:StatusReasonCode>
        <cbc:StatusReason>Pdf created successfully</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
        <cbc:StatusReason>No action required</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">207-PDF Created successfully</cbc:StatusReasonCode>
        <cbc:StatusReason>Pdf created successfully</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
PDF created successfully. The PDF is part of the attachments in the notification (see the attached document).
4 209 AP
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">AP</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">209</cbc:StatusReasonCode>
        <cbc:StatusReason>Workflow Successfully Completed</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
        <cbc:StatusReason>No action required</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">209-Completed successfully</cbc:StatusReasonCode>
        <cbc:StatusReason>Workflow Successfully Completed</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Workflow Successfully Completed

The buyer can use the following endpoint to retrieve application responses:

GET /notifications/HU
The buyer can send a GET request to the /notifications/HU endpoint to retrieve application responses that match the configured search criteria. To make this request, set the following query parameters:
Name Type Required Default Description
taxId string No Include only notifications related to the specified taxId.
page integer No 1 To specify the page to be returned, use a value between 1 and 10.
perPage integer No 10

To specify the number of results for the returned page, use a value between 1 and 100.

Important:

If the attachment file is configured to return the binary content instead of a link, use only values between 1 and 10.

sourceSystemId string Yes Include only notifications related to documents that originate from the given source system.
includeAcknowledged boolean No false Use "true" to include previously acknowledged notifications in the result.
processType string No Use "1" to only include notifications related to inbound documents.
Request sample
CODE
curl --location  --request GET 'https://api-test.sovos.com/v1/notifications/HU?processType=1&sourceSystemId=SystemERP&taxId=YOUR-TAXID' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE'
Response sample
JSON
{
    "status": 200,
    "message": "Notifications Listed",
    "success": true,
    "timestamp": 1693343820329,
    "data": {
        "pageState": {
            "page": 1,
            "perPage": 10,
            "totalEntries": 4,
            "totalPages": 1
        },
        "notifications": [
            {
                "notificationId": "d1718adb-...-68e16d80ffb2",
                "correlationId": "rrt-...-1335030-1",
                "appPrefix": "DLT",
                "metadata": {
                    "productId": "hu_InvoiceData__3.0",
                    "transactionId": "6b8bc357-...-b2b7c6573ca1",
                    "documentId": "DOCUMENT-ID",
                    "erpDocumentId": "ERP-DOCUMENT-ID",
                    "erpSystemId": "SystemERP",
                    "processType": "1",
                    "taxId": "YOUR-TAXID",
                    "sciCloudStatusCode": "209",
                    "sciResponseCode": "AP",
                    "sciStatusAction": "NOA"
                },
                "content": "PD9...T4=",
                "createdDate": 1693339001904
            }
        ]
    }
}

Step 4: Buyer marks the application responses as acknowledged

The buyer must process the retrieved application responses and mark them as acknowledged. This can be done by sending a PUT request to the /notifications/HU endpoint.

To make this request, set the following request body parameters:

Name Type Required Description
status string Yes Use "read"
notificationId string Yes The notification ID
Note: Multiple notificationId values can be acknowledged in one Indirect Tax API call by including them in a single request.
Request sample
JSON
curl --location --request PUT 'https://api-test.sovos.com/v1/notifications/HU' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
--data '[
    {
        "status": "read",
        "notificationId": "55f26671-...-d42925946ebf"
    }
]'
Response sample
JSON
{
    "status": 200,
    "message": "OK",
    "success": true,
    "timestamp": 1653424820578,
    "data": {}
}

Step 5: Archiving

You can compliantly archive the XML, the application response, and any graphical representation, such as a PDF, using Sovos' Compliant Archive.

For suppliers integrating with the solution for this country for the first time, we recommend the bundled approach, in which archiving is part of the invoice clearance flow. Archiving can also be done separately through an explicit API call that uses another archive. For more information on standalone archiving, see the e-Archiving documentation page.

Note: Bundled e-invoice archiving is optional but enabled by default. This means you can use your current solution and include Sovos e-Archiving.

Issue EKAER

Issuing an EKAER in Hungary is based on the Default business process, which follows this order: Mapping and Transmission. The following diagram provides a detailed overview:

Hungary EKAER issuance flow

Step 1: Supplier sends the SBD to Sovos

The supplier sends a POST request to the /documents endpoint.

The request must include the following request body parameters:

Name Type Required Description
data string Yes The Base64-encoded SCI
dataEncoding string Yes Use "base64"
Note:

After receiving the document, Sovos performs a structure/schema validation of the SCI part.

There are full samples of the SCI on the SCI Samples topic.

Request sample
JSON
curl --location --request POST 'https://api-test.sovos.com/v1/documents' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
--data '{
	"data": "PD...nQ+",
	"dataEncoding" : "base64"
}'
Response sample
JSON
{
    "status": 202,
    "message": "Accepted",
    "success": true,
    "timestamp": 1686579755320,
    "data": {
        "transactionId": "d799d405-...-43f2d9cf4e67",
        "documentId": "3de...26c"
    }
}

Step 2: Sovos maps the SCI into XML

Sovos maps the file into the required XML format.

Step 3: Sovos transmits the XML

Sovos transmits the XML file to the tax authority EKAER system.

Step 4: EKAER processes the XML

EKAER performs a schema validation and several business validations. Then it generates an approval or rejection response message along with an error message, where applicable.

With the document approval, the EKAER system generates EKAER numbers called “tcn” and “status“. Afterward, Sovos returns the dates for the validity of the EKAER number back to the client. The status can have a value of “S” when issuing, and “F” or “D” after it is finalized.

Step 5: EKAER sends the response to Sovos

After performing its services, EKAER sends the response to Sovos.

Step 6: Supplier retrieves the application responses

Attachments configuration

You can access your attachments:

  • As binary data, so the file is embedded in the Base64-encoded application response.

  • As open download links, in which the response contains a public URL to download the file.

  • As secure download links, in which you need to use the Indirect Tax API's bearer token to download the attachment.

By default, Sovos configures your attachments as open download links to avoid potential size limitations when retrieving responses. To improve security, you should configure them as secure links. Then, make a GET call to the secure link returned by the Indirect Tax API, and include the API token. Sample request:

CODE
curl --location 'https://einvoicing-api.sovos.com/download/api/v1/download/JqYyqliXiJFKhXshnBQZfW3qpfwATVGE5Q73T41JUynNLJD8zHy5VH__9qzL9No-Kia9olSw3_lNX3KmaA9Je89Xx--vk5pQjyKx0iT_4CwPSABD0Yg7uxXZ8SNiliEhFY-4TOX7m1TV5FwwfqntehbGaiGMI2JVYu18VBDiC_0/plain%27 \
--header 'Authorization: Bearer TOKEN'

As a response to the initial sending of the document, the client receives a JSON response message with an HTTP status code of 202 (asynchronous transaction). This means that the supplier must retrieve the application responses that become available during the transaction, which provide status information and also include the acceptance or rejection message.

To complete a transaction, the supplier must retrieve the application responses until the SCIResponseCode in the response has the value of either "AP" or "RE", which indicates that the transaction is finished. If the supplier has subscribed to all notifications, the transaction can generate different application responses. See the table below:

# SCICloudStatusCode SCIResponseCode Sample
1 100 IP
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">IP</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">100</cbc:StatusReasonCode>
        <cbc:StatusReason>Document received successfully</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
        <cbc:StatusReason>No action required</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">100-Received successfully</cbc:StatusReasonCode>
        <cbc:StatusReason>Document received successfully</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Document received successfully
2 101 IP
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">IP</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">101</cbc:StatusReasonCode>
        <cbc:StatusReason>Document mapped successfully</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
        <cbc:StatusReason>No action required</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">101-Mapped successfully</cbc:StatusReasonCode>
        <cbc:StatusReason>Document mapped successfully</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Document mapped successfully
3 200 AP
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">AP</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">200</cbc:StatusReasonCode>
        <cbc:StatusReason>Authorized by the tax authority</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
        <cbc:StatusReason>No action required</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">200-Authorized</cbc:StatusReasonCode>
        <cbc:StatusReason>Authorized by the tax authority</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Authorized by the tax authority
4 209 AP
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">AP</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">209</cbc:StatusReasonCode>
        <cbc:StatusReason>Workflow Successfully Completed</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
        <cbc:StatusReason>No action required</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">209-Completed successfully</cbc:StatusReasonCode>
        <cbc:StatusReason>Workflow Successfully Completed</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Workflow Successfully Completed
5 400 RE
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">RE</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">400</cbc:StatusReasonCode>
        <cbc:StatusReason>Rejected by the tax authority or the counter party</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NIN</cbc:StatusReasonCode>
        <cbc:StatusReason>Request to re-issue a corrected new invoice (or other document) or fix the error and resend the document</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">400-Rejected</cbc:StatusReasonCode>
        <cbc:StatusReason>Rejected by the tax authority or the counter party</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">TC_DESTINATION_VAT_NUMBER_ERROR</cbc:StatusReasonCode>
        <cbc:StatusReason>destinationVatNumber: Hibás adószám!</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Rejected by the tax authority or the counter party
6 500 RE
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID>transmission-ae1111ca-bdfb-42a3-917e-14ca52d59c9f-Issue</cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">RE</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">500</cbc:StatusReasonCode>
        <cbc:StatusReason>Internal system error</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">OTH</cbc:StatusReasonCode>
        <cbc:StatusReason>Requested action is not defined by code</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">500-System error</cbc:StatusReasonCode>
        <cbc:StatusReason>Internal system error</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Internal system error

The supplier can use the following Indirect Tax API endpoints to retrieve application responses:

  • GET /notifications/HU

  • GET /documents/HU/{documentId}/notifications

GET /notifications/HU
The supplier can send a GET request to the /notifications/HU endpoint to retrieve application responses that match the configured search criteria. To make this request, set the following query parameters:
Name Type Required Default Description
taxId string No Include only notifications related to the specified taxId.
page integer No 1 To specify the page to be returned, use a value between 1 and 10.
perPage integer No 10

To specify the number of results for the returned page, use a value between 1 and 100.

Important:

If the attachment file is configured to return the binary content instead of a link, use only values between 1 and 10.

sourceSystemId string Yes Include only notifications related to documents that originate from the given source system.
includeAcknowledged boolean No false Use "true" to include previously acknowledged notifications in the result.
processType string No Use "1" to only include notifications related to inbound documents.
Request sample
JSON
curl --location --request GET 'https://api-test.sovos.com/v1/notifications/HU?page=1&perPage=2&includeAcknowledged=true&taxId={taxId}&sourceSystemId={sourceSystemId}&processType=1' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
 --header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
Response sample
JSON
{
"status": 200,
"message": "Notifications Listed",
"success": true,
"timestamp": 1708014779055,
"data": {
    "pageState": {
        "page": 1,
        "perPage": 20,
        "totalEntries": 8,
        "totalPages": 1
    },
    "notifications": [
        {
            "notificationId": "8db5bd82-200b-4af3-805d-348de16ead70",
            "correlationId": "developer-guide",
            "appPrefix": "DLT",
            "metadata": {
                "productId": "hu_TradeCard__2.1",
                "transactionId": "7c...8e6",
                "documentId": "30ff525b062e225771363bddae561ddf",
                "erpDocumentId": "172012248",
                "erpSystemId": "ERPSystem",
                "processType": "0",
                "taxId": "11161161",
                "sciCloudStatusCode": "209",
                "sciResponseCode": "AP",
                "sciStatusAction": "NOA",
                "sciGovtStatusCode": "Success"
            },
            "content": "PD...2U+",
            "createdDate": 1708014072199
GET /documents/HU/{documentId}/notifications
The supplier can send a GET request to the /documents/HU/{documentId}/notifications endpoint to retrieve application responses related to a single document. To make this request, set the following parameters:
Name Type Required Parameter type Default Description
documentId string Yes Path The document ID returned in step 1
includeAcknowledged boolean No Query false Use "true" to include previously acknowledged notifications in the result
Request sample
JSON
curl --location --request GET 'https://api-test.sovos.com/v1/documents/HU/{documentId}/notifications?includeAcknowledged=false' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE'
Response sample
JSON
{
"status": 200,
"message": "Notifications Listed",
"success": true,
"timestamp": 1708014779055,
"data": {
    "pageState": {
        "page": 1,
        "perPage": 20,
        "totalEntries": 8,
        "totalPages": 1
    },
    "notifications": [
        {
            "notificationId": "8db5bd82-200b-4af3-805d-348de16ead70",
            "correlationId": "developer-guide",
            "appPrefix": "DLT",
            "metadata": {
                "productId": "hu_TradeCard__2.1",
                "transactionId": "7c...8e6",
                "documentId": "30ff525b062e225771363bddae561ddf",
                "erpDocumentId": "172012248",
                "erpSystemId": "ERPSystem",
                "processType": "0",
                "taxId": "11161161",
                "sciCloudStatusCode": "209",
                "sciResponseCode": "AP",
                "sciStatusAction": "NOA",
                "sciGovtStatusCode": "Success"
            },
            "content": "PD...2U+",
            "createdDate": 1708014072199

Step 7: Supplier marks the application responses as acknowledged

The supplier must process the retrieved application responses and mark them as acknowledged. This can be done by sending a PUT request to the /notifications/HU endpoint.

To make this request, set the following request body parameters:

Name Type Required Description
status string Yes Use "read"
notificationId string Yes The notification ID
Note: Multiple notificationId values can be acknowledged in one Indirect Tax API call by including them in a single request.
Request sample
JSON
curl --location --request PUT 'https://api-test.sovos.com/v1/notifications/HU' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
--data '[
    {
        "status": "read",
        "notificationId": "e7b32eda-cb67-43b9-91de-f6d9c90f60d9"
    }
]'
Response sample
JSON
{
    "status": 200,
    "message": "OK",
    "success": true,
    "timestamp": 1708440016669,
    "data": {}
}

Cancel EKAER

Canceling an EKAER in Hungary is based on the Default business process, which follows this order: Mapping and Transmission. The following diagram provides a detailed overview:

Hungary EKAER cancellation flow

Step 1: Supplier sends a POST request to Sovos

The supplier sends a POST request to the /documents/HU/action endpoint.

The request must include the following request body parameters:

Name Type Required Description
actionCode string Yes Use "document.cancellation".
documents array of objects Yes
metadata object No
reason string No The reason for canceling the invoice. The max length is 100 characters.
documentId string Yes The ID of the document to be canceled. This is the ID that Sovos returns when you send the document.
Request sample
JSON
curl --location --request POST 'https://api-test.sovos.com/v1/documents/HU/action' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
--data '{
    "actionCode": "document.cancellation",
    "documents": [
      {
        "metadata": {
            "reason": "{reason}"
        },
        "documentId": "30ff525b062e225771363bddae561ddf"
      }
    ]
  }'
Response sample
JSON
{
    "status": 202,
    "message": "Accepted",
    "success": true,
    "timestamp": 1708018192828,
    "data": [
        {
            "status": 202,
            "documentId": "b4bd3746-c38f-480f-8346-3a13d98fd38b"
        }
    ]
}

Step 2: Sovos maps the file into the cancellation XML

Sovos maps the file into the required cancellation XML format.

Step 3: Sovos transmits the request

Sovos transmits the request to the tax authority EKAER system.

Step 4: Sovos triggers a call to the EKAER system

Sovos triggers an asynchronous call to the EKAER system with "DELETE" as an operation and receives a success or an error response.

Step 5: Supplier retrieves the application responses

Attachments configuration

You can access your attachments:

  • As binary data, so the file is embedded in the Base64-encoded application response.

  • As open download links, in which the response contains a public URL to download the file.

  • As secure download links, in which you need to use the Indirect Tax API's bearer token to download the attachment.

By default, Sovos configures your attachments as open download links to avoid potential size limitations when retrieving responses. To improve security, you should configure them as secure links. Then, make a GET call to the secure link returned by the Indirect Tax API, and include the API token. Sample request:

CODE
curl --location 'https://einvoicing-api.sovos.com/download/api/v1/download/JqYyqliXiJFKhXshnBQZfW3qpfwATVGE5Q73T41JUynNLJD8zHy5VH__9qzL9No-Kia9olSw3_lNX3KmaA9Je89Xx--vk5pQjyKx0iT_4CwPSABD0Yg7uxXZ8SNiliEhFY-4TOX7m1TV5FwwfqntehbGaiGMI2JVYu18VBDiC_0/plain%27 \
--header 'Authorization: Bearer TOKEN'

As a response to the initial sending of the document, the client receives a JSON response message with an HTTP status code of 202 (asynchronous transaction). This means that the supplier must retrieve the application responses that become available during the transaction, which provide status information and also include the acceptance or rejection message.

To complete a transaction, the supplier must retrieve the application responses until the SCIResponseCode in the response has the value of either "AP" or "RE", which indicates that the transaction is finished. If the supplier has subscribed to all notifications, the transaction can generate different application responses. See the table below:

# SCICloudStatusCode SCIResponseCode Sample
1 100 IP
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">IP</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">100</cbc:StatusReasonCode>
        <cbc:StatusReason>Document received successfully</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
        <cbc:StatusReason>No action required</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">100-Received successfully</cbc:StatusReasonCode>
        <cbc:StatusReason>Document received successfully</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Document received successfully
2 101 IP
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">IP</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">101</cbc:StatusReasonCode>
        <cbc:StatusReason>Document mapped successfully</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
        <cbc:StatusReason>No action required</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">101-Mapped successfully</cbc:StatusReasonCode>
        <cbc:StatusReason>Document mapped successfully</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Document mapped successfully
3 201 AP
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">AP</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">201</cbc:StatusReasonCode>
        <cbc:StatusReason>Cancelled</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
        <cbc:StatusReason>No action required</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">201-Cancelled successfully</cbc:StatusReasonCode>
        <cbc:StatusReason>Cancelled</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Canceled successfully
4 209 AP
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">AP</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">209</cbc:StatusReasonCode>
        <cbc:StatusReason>Workflow Successfully Completed</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
        <cbc:StatusReason>No action required</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">209-Completed successfully</cbc:StatusReasonCode>
        <cbc:StatusReason>Workflow Successfully Completed</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Workflow Successfully Completed
5 400 RE
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">RE</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">400</cbc:StatusReasonCode>
        <cbc:StatusReason>Rejected by the tax authority or the counter party</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NIN</cbc:StatusReasonCode>
        <cbc:StatusReason>Request to re-issue a corrected new invoice (or other document) or fix the error and resend the document</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">400-Rejected</cbc:StatusReasonCode>
        <cbc:StatusReason>Rejected by the tax authority or the counter party</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">TC_INVALID_ARRIVALDATE</cbc:StatusReasonCode>
        <cbc:StatusReason>Érvénytelen érkezési időpont!</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Rejected by the tax authority or the counter party

The supplier can use the following Indirect Tax API endpoints to retrieve application responses:

  • GET /notifications/HU

  • GET /documents/HU/{documentId}/notifications

GET /notifications/HU
The supplier can send a GET request to the /notifications/HU endpoint to retrieve application responses that match the configured search criteria. To make this request, set the following query parameters:
Name Type Required Default Description
taxId string No Include only notifications related to the specified taxId.
page integer No 1 To specify the page to be returned, use a value between 1 and 10.
perPage integer No 10

To specify the number of results for the returned page, use a value between 1 and 100.

Important:

If the attachment file is configured to return the binary content instead of a link, use only values between 1 and 10.

sourceSystemId string Yes Include only notifications related to documents that originate from the given source system.
includeAcknowledged boolean No false Use "true" to include previously acknowledged notifications in the result.
processType string No Use "1" to only include notifications related to inbound documents.
Request sample
JSON
curl --location --request GET 'https://api-test.sovos.com/v1/notifications/HU?page=1&perPage=2&includeAcknowledged=true&taxId={taxId}&sourceSystemId={sourceSystemId}&processType=1' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE'
Response sample
JSON
"status": 200,
"message": "Notifications Listed",
"success": true,
"timestamp": 1708533734893,
"data": {
    "pageState": {
        "page": 1,
        "perPage": 20,
        "totalEntries": 52,
        "totalPages": 3
    },
    "notifications": [
        {
            "notificationId": "40e2ef57-7b59-408c-8034-8e1c9e8de016",
            "correlationId": "developer-guide",
            "appPrefix": "DLT",
            "metadata": {
                "productId": "hu_TradeCard__2.1",
                "transactionId": "78...5f0",
                "documentId": "0f0b23435ff3223cd4fcad6182a61c28",
                "erpDocumentId": "172012265",
                "erpSystemId": "ERPSystem",
                "processType": "0",
                "taxId": "11161161",
                "sciCloudStatusCode": "209",
                "sciResponseCode": "AP",
                "sciStatusAction": "NOA",
                "sciGovtStatusCode": "Success"
            },
            "content": "PD...2U+",
            "createdDate": 1708533707255
GET /documents/HU/{documentId}/notifications
The supplier can send a GET request to the /documents/HU/{documentId}/notifications endpoint to retrieve application responses related to a single document. To make this request, set the following parameters:
Name Type Required Parameter type Default Description
documentId string Yes Path The document ID returned in step 1
includeAcknowledged boolean No Query false Use "true" to include previously acknowledged notifications in the result.
Request sample
JSON
curl --location --request GET 'https://api-test.sovos.com/v1/documents/HU/{documentId}/notifications?includeAcknowledged=false' \
--header 'Content-Type: application/json' \
--header 'x-correlationId: developer-guide' \
--header 'Authorization: Bearer TOKEN'
Response sample
JSON
"status": 200,
"message": "Notifications Listed",
"success": true,
"timestamp": 1708533734893,
"data": {
    "pageState": {
        "page": 1,
        "perPage": 20,
        "totalEntries": 52,
        "totalPages": 3
    },
    "notifications": [
        {
            "notificationId": "40e2ef57-7b59-408c-8034-8e1c9e8de016",
            "correlationId": "developer-guide",
            "appPrefix": "DLT",
            "metadata": {
                "productId": "hu_TradeCard__2.1",
                "transactionId": "78...5f0",
                "documentId": "0f0b23435ff3223cd4fcad6182a61c28",
                "erpDocumentId": "172012265",
                "erpSystemId": "ERPSystem",
                "processType": "0",
                "taxId": "11161161",
                "sciCloudStatusCode": "209",
                "sciResponseCode": "AP",
                "sciStatusAction": "NOA",
                "sciGovtStatusCode": "Success"
            },
            "content": "PD...2U+",
            "createdDate": 1708533707255

Step 6: Supplier marks the application responses as acknowledged

The supplier must process the retrieved application responses and mark them as acknowledged. This can be done by sending a PUT request to the /notifications/HU endpoint.

To make this request, set the following request body parameters:

Name Type Required Description
status string Yes Use "read"
notificationId string Yes The notification ID
Note: Multiple notificationId values can be acknowledged in one Indirect Tax API call by including them in a single request.
Request sample
JSON
curl --location --request PUT 'https://api-test.sovos.com/v1/notifications/HU' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
--data '[
    {
        "status": "read",
        "notificationId": "e7b32eda-cb67-43b9-91de-f6d9c90f60d9"
    }
]'
Response sample
JSON
{
    "status": 200,
    "message": "OK",
    "success": true,
    "timestamp": 1708509282198,
    "data": {}
}

Finalize EKAER

Finalizing an EKAER in Hungary is based on the Default business process, which follows this order: Mapping and Transmission. The following diagram provides a detailed overview:

Hungary EKAER finalization flow

Step 1: Supplier sends a POST request to Sovos

The supplier sends a POST request to the /documents/HU/action endpoint.

The request must include the following request body parameters:

Name Type Required Description
actionCode string Yes Use "document.finalize".
documents array of objects Yes
metadata object No
deliveryDate string No The invoice delivery date.
documentId string Yes The ID of the document to be finalized. This is the ID that Sovos returns when you send the document.
Request sample
JSON
curl --location --request POST 'https://api-test.sovos.com/v1/documents/HU/action' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
--data '{
    "actionCode": "document.finalize",
    "documents": [
      {
        "metadata": {
            "arrivalDate": "2024-02-14T22:01:26.073Z"
        },
        "documentId": "DOCUMENT-ID"
      }
    ]
  }'
Response sample
JSON
{
    "status": 202,
    "message": "Accepted",
    "success": true,
    "timestamp": 1708017506863,
    "data": [
        {
            "status": 202,
            "documentId": "b4bd3746-c38f-480f-8346-3a13d98fd38b"
        }
    ]
}

Step 2: Sovos maps the file into the finalization XML

Sovos maps the file into the required finalization XML format.

Step 3: Sovos transmits the request

Sovos transmits the request to the tax authority EKAER system.

Step 4: Sovos triggers a call to the EKAER system

Sovos triggers an asynchronous call to the EKAER system with "FINALIZE" as an operation and receives a success or an error response.

Step 5: Supplier retrieves the application responses

Attachments configuration

You can access your attachments:

  • As binary data, so the file is embedded in the Base64-encoded application response.

  • As open download links, in which the response contains a public URL to download the file.

  • As secure download links, in which you need to use the Indirect Tax API's bearer token to download the attachment.

By default, Sovos configures your attachments as open download links to avoid potential size limitations when retrieving responses. To improve security, you should configure them as secure links. Then, make a GET call to the secure link returned by the Indirect Tax API, and include the API token. Sample request:

CODE
curl --location 'https://einvoicing-api.sovos.com/download/api/v1/download/JqYyqliXiJFKhXshnBQZfW3qpfwATVGE5Q73T41JUynNLJD8zHy5VH__9qzL9No-Kia9olSw3_lNX3KmaA9Je89Xx--vk5pQjyKx0iT_4CwPSABD0Yg7uxXZ8SNiliEhFY-4TOX7m1TV5FwwfqntehbGaiGMI2JVYu18VBDiC_0/plain%27 \
--header 'Authorization: Bearer TOKEN'

As a response to the initial sending of the document, the client receives a JSON response message with an HTTP status code of 202 (asynchronous transaction). This means that the supplier must retrieve the application responses that become available during the transaction, which provide status information and also include the acceptance or rejection message.

To complete a transaction, the supplier must retrieve the application responses until the SCIResponseCode in the response has the value of either "AP" or "RE", which indicates that the transaction is finished. If the supplier has subscribed to all notifications, the transaction can generate different application responses. See the table below:

# SCICloudStatusCode SCIResponseCode Sample
1 100 IP
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">IP</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">100</cbc:StatusReasonCode>
        <cbc:StatusReason>Document received successfully</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
        <cbc:StatusReason>No action required</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">100-Received successfully</cbc:StatusReasonCode>
        <cbc:StatusReason>Document received successfully</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Document received successfully
2 101 IP
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">IP</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">101</cbc:StatusReasonCode>
        <cbc:StatusReason>Document mapped successfully</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
        <cbc:StatusReason>No action required</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">101-Mapped successfully</cbc:StatusReasonCode>
        <cbc:StatusReason>Document mapped successfully</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Document mapped successfully
3 201 AP
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">AP</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">201</cbc:StatusReasonCode>
        <cbc:StatusReason>Cancelled</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
        <cbc:StatusReason>No action required</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">201-Cancelled successfully</cbc:StatusReasonCode>
        <cbc:StatusReason>Cancelled</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Canceled successfully
4 206 AP
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">AP</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">206</cbc:StatusReasonCode>
        <cbc:StatusReason>Finalized</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
        <cbc:StatusReason>No action required</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">206-Finalized successfully</cbc:StatusReasonCode>
        <cbc:StatusReason>Finalized</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Finalized sucessfully
5 209 RE
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">RE</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">209</cbc:StatusReasonCode>
        <cbc:StatusReason>Workflow Successfully Completed</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
        <cbc:StatusReason>No action required</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">209-Completed successfully</cbc:StatusReasonCode>
        <cbc:StatusReason>Workflow Successfully Completed</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">TC_INVALID_ARRIVALDATE</cbc:StatusReasonCode>
        <cbc:StatusReason>Érvénytelen érkezési időpont!</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Workflow Successfully Completed
6 400 RE
CODE
<cac:DocumentResponse>
    <cac:Response>
      <cbc:ReferenceID></cbc:ReferenceID>
      <cbc:ResponseCode listID="SCIResponseCode">RE</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCICloudStatusCode">400</cbc:StatusReasonCode>
        <cbc:StatusReason>Rejected by the tax authority or the counter party</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIStatusAction">NIN</cbc:StatusReasonCode>
        <cbc:StatusReason>Request to re-issue a corrected new invoice (or other document) or fix the error and resend the document</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIERPStatusCode">400-Rejected</cbc:StatusReasonCode>
        <cbc:StatusReason>Rejected by the tax authority or the counter party</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">TC_INVALID_ARRIVALDATE</cbc:StatusReasonCode>
        <cbc:StatusReason>Érvénytelen érkezési időpont!</cbc:StatusReason>
      </cac:Status>
Rejected by the tax authority or the counter party

The supplier can use the following Indirect Tax API endpoints to retrieve application responses:

  • GET /notifications/HU

  • GET /documents/HU/{documentId}/notifications

GET /notifications/HU
The supplier can send a GET request to the /notifications/HU endpoint to retrieve application responses that match the configured search criteria. To make this request, set the following query parameters:
Name Type Required Default Description
taxId string No Include only notifications related to the specified taxId.
page integer No 1 To specify the page to be returned, use a value between 1 and 10.
perPage integer No 10

To specify the number of results for the returned page, enter a value between 1 and 100.

Important:

If the attachment file is configured to return the binary content instead of a link, use only values between 1 and 10.

sourceSystemId string Yes Include only notifications related to documents that originate from the given source system.
includeAcknowledged boolean No false Use "true" to include previously acknowledged notifications in the result.
processType string No Use "1" to only include notifications related to inbound documents.
Request sample
JSON
curl --location --request GET 'https://api-test.sovos.com/v1/notifications/HU?page=1&perPage=2&includeAcknowledged=true&taxId={taxId}&sourceSystemId={sourceSystemId}&processType=1' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE'
Response sample
JSON
{
"status": 200,
"message": "Notifications Listed",
"success": true,
"timestamp": 1708533798766,
"data": {
    "pageState": {
        "page": 1,
        "perPage": 20,
        "totalEntries": 59,
        "totalPages": 3
    },
    "notifications": [
        {
            "notificationId": "97a2cc72-c947-4311-bfcd-0d5032e3b270",
            "correlationId": "developer-guide",
            "appPrefix": "DLT",
            "metadata": {
                "productId": "hu_TradeCard__2.1",
                "transactionId": "be...a87",
                "documentId": "0f0b23435ff3223cd4fcad6182a61c28",
                "erpDocumentId": "172012265",
                "erpSystemId": "ERPSystem",
                "processType": "0",
                "taxId": "11161161",
                "sciCloudStatusCode": "209",
                "sciResponseCode": "RE",
                "sciStatusAction": "NOA",
                "sciGovtStatusCode": "TC_INVALID_ARRIVALDATE"
            },
            "content": "PD...2U+",
            "createdDate": 1708533782661
GET /documents/HU/{documentId}/notifications
The supplier can send a GET request to the /documents/HU/{documentId}/notifications endpoint to retrieve application responses related to a single document. To make this request, set the following parameters:
Name Type Required Parameter type Default Description
documentId string Yes Path The document ID returned in step 1
includeAcknowledged boolean No Query false Use "true" to include previously acknowledged notifications in the result
Request sample
JSON
curl --location 'https://api-test.sovos.com/v1/documents/HU/{documentId}/notifications?includeAcknowledged=false' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE'
Response sample
JSON
{
"status": 200,
"message": "Notifications Listed",
"success": true,
"timestamp": 1708533798766,
"data": {
    "pageState": {
        "page": 1,
        "perPage": 20,
        "totalEntries": 59,
        "totalPages": 3
    },
    "notifications": [
        {
            "notificationId": "97a2cc72-c947-4311-bfcd-0d5032e3b270",
            "correlationId": "developer-guide",
            "appPrefix": "DLT",
            "metadata": {
                "productId": "hu_TradeCard__2.1",
                "transactionId": "be...a87",
                "documentId": "0f0b23435ff3223cd4fcad6182a61c28",
                "erpDocumentId": "172012265",
                "erpSystemId": "ERPSystem",
                "processType": "0",
                "taxId": "11161161",
                "sciCloudStatusCode": "209",
                "sciResponseCode": "RE",
                "sciStatusAction": "NOA",
                "sciGovtStatusCode": "TC_INVALID_ARRIVALDATE"
            },
            "content": "PD...2U+",
            "createdDate": 1708533782661

Step 6: Supplier marks the application responses as acknowledged

The supplier must process the retrieved application responses and mark them as acknowledged. This can be done by sending a PUT request to the /notifications/HU endpoint.

To make this request, set the following request body parameters:

Name Type Required Description
status string Yes Use "read"
notificationId string Yes The notification ID
Note: Multiple notificationId values can be acknowledged in one Indirect Tax API call by including them in a single request.
Request sample
JSON
curl --location --request PUT 'https://api-test.sovos.com/v1/notifications/HU' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
--data '[
    {
        "status": "read",
        "notificationId": "e7b32eda-cb67-43b9-91de-f6d9c90f60d9"
    }
]'
Response sample
JSON
{
    "status": 200,
    "message": "OK",
    "success": true,
    "timestamp": 1708440016669,
    "data": {}
}

Mock tax authority integration

You can test the integration with the Sovos solution for Hungary using a mocked tax authority communication. For that, you can use Sovos' mocked services, which replace the tax authority communication in the solution and let you make limited tests of business scenarios.

You can also dynamically distinguish between mocked services and testing against the real tax authority UAT environment on a document-by-document basis.

Testing with Sovos’ mocked services is not a replacement for the UAT/Sandbox environment tests. With that in mind, you should keep making tests in the UAT/Sandbox environment before moving to the Production environment. This is because Sovos’ mocked services cannot fully simulate the tax authority behavior and validations due to the vast amount of different business scenarios that are applicable to Hungary.

Note:

The mock services don't take the CopyIndicator field (completeness indicator) into consideration, and all outbound invoices are made available for the buyer to retrieve.

Outbound Mock

The Outbound Mock simulates sending documents to the tax authority. Before issuing your documents, you must upload specific credentials using the Configurations v2 API resource.
Outbound Mock configuration
To use the mock services for Hungary Outbound, you need to configure these specific credentials (inside the value object) using the POST /v2/configurations/organizations/{organizationId}/settings endpoint from Configurations v2:
Username
6tbdedjs7eptxc0
password
6108EFF0B5D5F5D9EC04F147DC3FDA4487DEA20378EDBFD715E3D5C3733008E2355A47A3E129B33B140C99C28287806035D9685F21612B4E0531F8258F96BDD4
tokenDecryptionKey
ca502519H1EVZM67
signatureEncryptionKey
1f-a110-4f7310cb69ba2519H1EUML66

Here is a sample request using these credentials:

JSON
curl --location --request POST 'https://api-test.sovos.com/v2/configurations/organizations/YOUR-ORG-ID/settings' \
--header 'x-correlationId: developer-guide-mock' \
--header 'Content-Type: application/json' \
--data-raw '[
    {
        "context": "transmission",
        "configurations": [
            {
                "name": "partner_credentials_nav",
                "value": {
                    "username": "6tbdedjs7eptxc0",
                    "password": "6108EFF0B5D5F5D9EC04F147DC3FDA4487DEA20378EDBFD715E3D5C3733008E2355A47A3E129B33B140C99C28287806035D9685F21612B4E0531F8258F96BDD4",
                    "tokenDecryptionKey": "ca502519H1EVZM67",
                    "signatureEncryptionKey": "1f-a110-4f7310cb69ba2519H1EUML66"
                },
                "scope": {
                    "category": "HU_INV",
                    "productId": "hu_InvoiceData__3.0",
                    "orgId": "YOUR-ORG-ID",
                    "taxId": "YOUR-TAXID"
                }
            }
        ]
    }
]'
Outbound Mock usage

When sending a document with the POST /v1/documents endpoint to reach the mocked services, the x-correlationId value must end with "-mock". For example, x-correlationId = "123-mock". Sovos' solution distinguishes between the mocked Outbound services and the real tax authority UAT environment based on the presence of this value.

When using the GET method with the Notifications endpoints, the x-correlationId doesn't need to end with "-mock". This is because the Sovos solution doesn't differentiate between mocked notifications and notifications related to the real tax authority UAT environment — they are both treated as "notifications", which can be retrieved normally. The same reasoning applies to marking notifications as acknowledged with the PUT method: there's no need to add an x-correlationId ending with "-mock".

To test Outbound against the real tax authority UAT environment, it is crucial to follow the correct prerequisites and configuration steps. This involves obtaining the real tax authority credentials and configuring them in the Sovos solution. So, when issuing the document, make sure that x-correlationId doesn't end with "-mock".

Outbound Mock validation

The main purpose of the mocked services is to let you test the end-to-end flow early in the integration process, without being blocked by the need for real tax authority credentials. You can only test a limited set of scenarios based on the document's content:

  1. Tax number length should be greater than eight.

  2. The tax number should be registered.

  3. The tax number should be valid.

  4. The Request Signature should be valid.

  5. The invoice VAT Amount length should be less than 19.

  6. The Line Net Amount should be valid.

  7. The Invoice Number should be valid.

  8. The VAT code should be correct.

  9. The Invoice VAT Amount should match the amount of VAT values per tax rate.

  10. The Invoice VAT AmountHuf should match the amount of VAT values per tax rate in HUF.

  11. The customer taxpayer ID should be correct.

  12. The supplier taxpayer ID should be different from the customer taxpayer ID.

Inbound Mock

The Inbound Mock simulates the receipt of documents from the tax authority. To use it, you need to pre-upload your specific tax authority credentials using the the Configurations v2 API resource. When enabling the polling job, make sure that x-correlationId value ends with "-mock". This tells the Sovos solution to show notifications for the mock that can be consumed by the client.

Inbound Mock configuration

To use the mock services for Hungary Inbound, you must configure the following credentials using the POST /v2/configurations/organizations/{organizationId}/settings endpoint from Configurations v2:

username
6tbdedjs7eptxc0
password
6108EFF0B5D5F5D9EC04F147DC3FDA4487DEA20378EDBFD715E3D5C3733008E2355A47A3E129B33B140C99C28287806035D9685F21612B4E0531F8258F96BDD4
tokenDecryptionKey
ca502519H1EVZM67
signatureEncryptionKey
1f-a110-4f7310cb69ba2519H1EUML66

Here is a sample request using these credentials:

JSON
curl --location --request POST 'https://api-test.sovos.com/v2/configurations/organizations/YOUR-ORG-ID/settings' \
--header 'x-correlationId: developer-guide-mock' \
--header 'Content-Type: application/json' \
--data-raw '[
    {
        "context": "polling",
        "configurations": [
            {
                "name": "partner_credentials_nav",
                "value": {
                    "username": "6tbdedjs7eptxc0",
                    "password": "6108EFF0B5D5F5D9EC04F147DC3FDA4487DEA20378EDBFD715E3D5C3733008E2355A47A3E129B33B140C99C28287806035D9685F21612B4E0531F8258F96BDD4",
                    "tokenDecryptionKey": "ca502519H1EVZM67",
                    "signatureEncryptionKey": "1f-a110-4f7310cb69ba2519H1EUML66"
                },
                "scope": {
                    "category": "HU_INV",
                    "productId": "hu_InvoiceData_Polling_3.0",
                    "orgId": "YOUR-ORG-ID",
                    "taxId": "YOUR-TAXID"
                }
            }
        ]
    }
]'

When you make the API call to "Configure an Inbound Service" in Configuration v2 (polling job enablement), you must include the x-correlationId value that ends with "-mock".

Inbound Mock usage

Before you can test document retrieval using the Inbound Mock services, you must use the Outbound Mock services to generate documents.

When you use the GET method with the Notifications endpoints for the Inbound Mock services, the client app must filter the request with processType = "1" (inbound). You don't need to send an x-correlationId ending with "-mock". This is because the Sovos solution doesn't differentiate between mocked notifications and notifications related to the real tax authority UAT environment — they are both treated as "notifications", which can be retrieved normally. The same reasoning applies to marking notifications as acknowledged with the PUT method: there's no need to add an x-correlationId ending with "-mock".

You need to follow the correct prerequisites and configuration steps to test Inbound against the real tax authority UAT environment. This involves obtaining the real tax authority credentials and configuring them in the Sovos solution, disabling the existing polling job (as it is running using the mock) and re-enabling it without x-correlationId ending with "-mock".

SCI Samples

The samples provided below are meant to be guidelines for integration with the Indirect Tax API in Hungary and should be treated as such, since each integrating system is unique and has different requirements. This means that the samples cannot be copied directly, and must be adapted to the your system during the integration.

SCI normal invoice

A sample containing a normal invoice with five items.

XML
<?xml version="1.0" encoding="UTF-8"?>
<sbd:StandardBusinessDocument xmlns="http://uri.etsi.org/01903/v1.4.1#" xmlns:ad="http://www.sovos.com/namespaces/additionalData" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:n1="urn:oasis:names:specification:ubl:schema:xsd:CommonSignatureComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:crn="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2" xmlns:dbn="urn:oasis:names:specification:ubl:schema:xsd:DebitNote-2" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:fin="urn:oasis:names:specification:ubl:schema:xsd:FreightInvoice-2" xmlns:inv="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:leg="http://www.sovos.com/namespaces/sovosExtensions/LegalExtension" xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDataTypes-2" xmlns:sac="urn:oasis:names:specification:ubl:schema:xsd:SignatureAggregateComponents-2" xmlns:sbc="urn:oasis:names:specification:ubl:schema:xsd:SignatureBasicComponents-2" xmlns:sbd="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader" xmlns:sci="http://www.sovos.com/namespaces/sovosCanonicalInvoice" xmlns:sov="http://www.sovos.com/namespaces/sovosExtensions" xmlns:svs="http://www.sovos.com/namespaces/sovosDocument" xmlns:udt="urn:oasis:names:specification:ubl:schema:xsd:UnqualifiedDataTypes-2" xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" xmlns:ccts-cct="urn:un:unece:uncefact:data:specification:CoreComponentTypeSchemaModule:2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader ../../Schemas/Sovos%20Document_v2/Sovos%20Document_v2/Standard%20Business%20Document/SBD.xsd">
	<sbd:StandardBusinessDocumentHeader>
		<sbd:HeaderVersion>1.0</sbd:HeaderVersion>
		<sbd:Sender>
			<sbd:Identifier Authority="HU">30342538</sbd:Identifier>
			<sbd:ContactInformation>
				<sbd:Contact/>
				<sbd:EmailAddress/>
				<sbd:FaxNumber/>
				<sbd:TelephoneNumber/>
				<sbd:ContactTypeIdentifier/>
			</sbd:ContactInformation>
		</sbd:Sender>
		<sbd:Receiver>
			<sbd:Identifier Authority="HU">99887764</sbd:Identifier>
			<sbd:ContactInformation>
				<sbd:Contact/>
				<sbd:EmailAddress/>
				<sbd:FaxNumber/>
				<sbd:TelephoneNumber/>
				<sbd:ContactTypeIdentifier/>
			</sbd:ContactInformation>
		</sbd:Receiver>
		<sbd:DocumentIdentification>
			<sbd:Standard>urn:oasis:names:specification:ubl:schema:xsd:Invoice-2</sbd:Standard>
			<sbd:TypeVersion>2.1</sbd:TypeVersion>
			<sbd:InstanceIdentifier/>
			<sbd:Type>Invoice</sbd:Type>
			<sbd:MultipleType>false</sbd:MultipleType>
			<sbd:CreationDateAndTime>2001-12-17T09:30:47Z</sbd:CreationDateAndTime>
		</sbd:DocumentIdentification>
		<sbd:BusinessScope>
			<sbd:Scope>
				<sbd:Type>Country</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>HU</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>SenderSystemId</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>ERPSystem</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Mapping.TransformDocument</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>SCI-TO-LEGAL_INVOICE</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Mapping.OutputSchema</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>invoiceData</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>CompanyCode</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>30342538</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>SenderDocumentId</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>ZZZ000001</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>ProcessType</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>Outbound</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>BusinessProcess</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:BusinessService>
					<sbd:BusinessServiceName>Default</sbd:BusinessServiceName>
				</sbd:BusinessService>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>BusinessCategory</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>B2B</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>SubSchema</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier></sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Version</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>3.0</sbd:Identifier>
			</sbd:Scope>
		</sbd:BusinessScope>
	</sbd:StandardBusinessDocumentHeader>
	<svs:SovosDocument>
		<sci:SovosCanonicalInvoice>
			<inv:Invoice>
				<cbc:CustomizationID>NORMAL</cbc:CustomizationID>
				<cbc:ID>ZZZ0010032061123</cbc:ID>
				<cbc:CopyIndicator>false</cbc:CopyIndicator>
				<cbc:IssueDate>2021-05-15</cbc:IssueDate>
				<cbc:DocumentCurrencyCode>HUF</cbc:DocumentCurrencyCode>
				<cac:AdditionalDocumentReference>
					<cbc:ID schemeID=""/>
					<cbc:DocumentDescription>PAPER</cbc:DocumentDescription>
				</cac:AdditionalDocumentReference>
				<cac:AdditionalDocumentReference>
					<cbc:ID schemeID="mergedItemIndicator">false</cbc:ID>
				</cac:AdditionalDocumentReference>
				<cac:AccountingSupplierParty>
					<cac:Party>
						<cac:PartyIdentification>
							<cbc:ID schemeID="SupplierTaxID">30342538</cbc:ID>
						</cac:PartyIdentification>
						<cac:PartyIdentification>
							<cbc:ID schemeID="SupplierCountyCode">41</cbc:ID>
						</cac:PartyIdentification>
						<cac:PostalAddress>
							<cbc:AddressTypeCode>detailed</cbc:AddressTypeCode>
							<cbc:StreetName>Hármas</cbc:StreetName>
							<cbc:BlockName>utca</cbc:BlockName>
							<cbc:BuildingNumber>1</cbc:BuildingNumber>
							<cbc:CityName>Budapest</cbc:CityName>
							<cbc:PostalZone>1234</cbc:PostalZone>
							<cac:Country>
								<cbc:IdentificationCode>HU</cbc:IdentificationCode>
							</cac:Country>
						</cac:PostalAddress>
						<cac:PartyTaxScheme>
							<cac:TaxScheme>
								<cbc:Name>SupplierVATCode</cbc:Name>
								<cbc:TaxTypeCode>2</cbc:TaxTypeCode>
							</cac:TaxScheme>
						</cac:PartyTaxScheme>
						<cac:PartyLegalEntity>
							<cbc:RegistrationName>Értékesítő Kft</cbc:RegistrationName>
						</cac:PartyLegalEntity>
						<cac:FinancialAccount>
							<cbc:ID>12345678-12345678-12345678</cbc:ID>
						</cac:FinancialAccount>
					</cac:Party>
				</cac:AccountingSupplierParty>
				<cac:AccountingCustomerParty>
					<cac:Party>
						<cac:PartyIdentification>
							<cbc:ID schemeID="CustomerTaxID">30342538</cbc:ID>
						</cac:PartyIdentification>
						<cac:PartyIdentification>
							<cbc:ID schemeID="CustomerCountyCode">02</cbc:ID>
						</cac:PartyIdentification>
						<cac:PostalAddress>
							<cbc:AddressTypeCode>detailed</cbc:AddressTypeCode>
							<cbc:StreetName>Északi</cbc:StreetName>
							<cbc:BlockName>sugárút</cbc:BlockName>
							<cbc:BuildingNumber>123</cbc:BuildingNumber>
							<cbc:CityName>Pécs</cbc:CityName>
							<cbc:PostalZone>7600</cbc:PostalZone>
							<cac:Country>
								<cbc:IdentificationCode>HU</cbc:IdentificationCode>
							</cac:Country>
						</cac:PostalAddress>
						<cac:PartyTaxScheme>
							<cac:TaxScheme>
								<cbc:Name>CustomerVATCode</cbc:Name>
								<cbc:TaxTypeCode>2</cbc:TaxTypeCode>
							</cac:TaxScheme>
						</cac:PartyTaxScheme>
						<cac:PartyTaxScheme>
							<cac:TaxScheme>
								<cbc:Name>CustomerVATStatus</cbc:Name>
								<cbc:TaxTypeCode>DOMESTIC</cbc:TaxTypeCode>
							</cac:TaxScheme>
						</cac:PartyTaxScheme>
						<cac:PartyLegalEntity>
							<cbc:RegistrationName>Beszerző Kft</cbc:RegistrationName>
						</cac:PartyLegalEntity>
					</cac:Party>
				</cac:AccountingCustomerParty>
				<cac:Delivery>
					<cac:RequestedDeliveryPeriod>
						<cbc:StartDate>2021-05-10</cbc:StartDate>
					</cac:RequestedDeliveryPeriod>
					<cac:PromisedDeliveryPeriod/>
				</cac:Delivery>
				<cac:PaymentMeans>
					<cbc:PaymentMeansCode>TRANSFER</cbc:PaymentMeansCode>
					<cbc:PaymentDueDate>2021-05-30</cbc:PaymentDueDate>
				</cac:PaymentMeans>
				<cac:PaymentExchangeRate>
					<cbc:SourceCurrencyCode>HUF</cbc:SourceCurrencyCode>
					<cbc:TargetCurrencyCode>HUF</cbc:TargetCurrencyCode>
					<cbc:CalculationRate>1</cbc:CalculationRate>
				</cac:PaymentExchangeRate>
				<cac:TaxTotal>
					<cbc:TaxAmount currencyCodeListVersionID="1485000.00" currencyID="HUF">1485000.00</cbc:TaxAmount>
					<cac:TaxSubtotal>
						<cbc:TaxAmount currencyCodeListVersionID="1485000.00" currencyID="HUF">1485000.00</cbc:TaxAmount>
						<cbc:TransactionCurrencyTaxAmount currencyCodeListVersionID="5500000.00" currencyID="HUF">5500000.00</cbc:TransactionCurrencyTaxAmount>
						<cbc:Percent>0.27</cbc:Percent>
						<cac:TaxCategory>
							<cac:TaxScheme>
								<cbc:Name>normal</cbc:Name>
							</cac:TaxScheme>
						</cac:TaxCategory>
					</cac:TaxSubtotal>
				</cac:TaxTotal>
				<cac:LegalMonetaryTotal>
					<cbc:LineExtensionAmount currencyCodeListVersionID="5500000.00" currencyID="HUF">5500000.00</cbc:LineExtensionAmount>
					<cbc:PayableAmount currencyCodeListVersionID="6985000.00" currencyID="HUF">6985000.00</cbc:PayableAmount>
				</cac:LegalMonetaryTotal>
				<cac:InvoiceLine>
					<cbc:ID>1</cbc:ID>
					<cbc:InvoicedQuantity unitCode="PIECE">1</cbc:InvoicedQuantity>
					<cbc:LineExtensionAmount currencyCodeListVersionID="100000.00" currencyID="HUF">100000.00</cbc:LineExtensionAmount>
					<cbc:PaymentPurposeCode>PRODUCT</cbc:PaymentPurposeCode>
					<cac:PricingReference>
						<cac:AlternativeConditionPrice>
							<cbc:PriceAmount currencyCodeListVersionID="100000" currencyID="HUF">100000.00</cbc:PriceAmount>
							<cbc:PriceTypeCode>02</cbc:PriceTypeCode>
						</cac:AlternativeConditionPrice>
					</cac:PricingReference>
					<cac:PaymentTerms>
						<cbc:Note>04</cbc:Note>
						<cbc:Amount currencyCodeListVersionID="127000" currencyID="HUF">127000</cbc:Amount>
					</cac:PaymentTerms>
					<cac:TaxTotal>
						<cbc:TaxAmount currencyCodeListVersionID="27000.00" currencyID="HUF">27000.00</cbc:TaxAmount>
						<cac:TaxSubtotal>
							<cbc:TaxAmount currencyCodeListVersionID="27000.00" currencyID="HUF">27000.00</cbc:TaxAmount>
							<cbc:Percent>0.27</cbc:Percent>
							<cac:TaxCategory>
								<cac:TaxScheme>
									<cbc:Name>normal</cbc:Name>
								</cac:TaxScheme>
							</cac:TaxCategory>
						</cac:TaxSubtotal>
					</cac:TaxTotal>
					<cac:Item>
						<cbc:Description>A termék</cbc:Description>
						<cac:AdditionalItemIdentification>
							<cbc:ID schemeID="OWN" schemeName="productCodeValue">10452408</cbc:ID>
						</cac:AdditionalItemIdentification>
						<cac:AdditionalItemProperty>
							<cbc:Name>lineExpressionIndicator</cbc:Name>
							<cbc:Value>true</cbc:Value>
						</cac:AdditionalItemProperty>
					</cac:Item>
				</cac:InvoiceLine>
				<cac:InvoiceLine>
					<cbc:ID>2</cbc:ID>
					<cbc:InvoicedQuantity unitCode="PIECE">2</cbc:InvoicedQuantity>
					<cbc:LineExtensionAmount currencyCodeListVersionID="400000.00" currencyID="HUF">400000.00</cbc:LineExtensionAmount>
					<cbc:PaymentPurposeCode>PRODUCT</cbc:PaymentPurposeCode>
					<cac:PricingReference>
						<cac:AlternativeConditionPrice>
							<cbc:PriceAmount currencyCodeListVersionID="200000.00" currencyID="HUF">200000.00</cbc:PriceAmount>
							<cbc:PriceTypeCode>02</cbc:PriceTypeCode>
						</cac:AlternativeConditionPrice>
					</cac:PricingReference>
					<cac:PaymentTerms>
						<cbc:Note>04</cbc:Note>
						<cbc:Amount currencyCodeListVersionID="508000.00" currencyID="HUF">508000</cbc:Amount>
					</cac:PaymentTerms>
					<cac:TaxTotal>
						<cbc:TaxAmount currencyCodeListVersionID="108000.00" currencyID="HUF">108000.00</cbc:TaxAmount>
						<cac:TaxSubtotal>
							<cbc:TaxAmount currencyCodeListVersionID="108000.00" currencyID="HUF">108000.00</cbc:TaxAmount>
							<cbc:Percent>0.27</cbc:Percent>
							<cac:TaxCategory>
								<cac:TaxScheme>
									<cbc:Name>normal</cbc:Name>
								</cac:TaxScheme>
							</cac:TaxCategory>
						</cac:TaxSubtotal>
					</cac:TaxTotal>
					<cac:Item>
						<cbc:Description>B termék</cbc:Description>
						<cac:AdditionalItemIdentification>
							<cbc:ID schemeID="OWN" schemeName="productCodeValue">22222222</cbc:ID>
						</cac:AdditionalItemIdentification>
						<cac:AdditionalItemProperty>
							<cbc:Name>lineExpressionIndicator</cbc:Name>
							<cbc:Value>true</cbc:Value>
						</cac:AdditionalItemProperty>
					</cac:Item>
				</cac:InvoiceLine>
				<cac:InvoiceLine>
					<cbc:ID>3</cbc:ID>
					<cbc:InvoicedQuantity unitCode="PIECE">3</cbc:InvoicedQuantity>
					<cbc:LineExtensionAmount currencyCodeListVersionID="900000.00" currencyID="HUF">900000.00</cbc:LineExtensionAmount>
					<cbc:PaymentPurposeCode>PRODUCT</cbc:PaymentPurposeCode>
					<cac:PricingReference>
						<cac:AlternativeConditionPrice>
							<cbc:PriceAmount currencyCodeListVersionID="300000.00" currencyID="HUF">300000.00</cbc:PriceAmount>
							<cbc:PriceTypeCode>02</cbc:PriceTypeCode>
						</cac:AlternativeConditionPrice>
					</cac:PricingReference>
					<cac:PaymentTerms>
						<cbc:Note>04</cbc:Note>
						<cbc:Amount currencyCodeListVersionID="1143000.00" currencyID="HUF">1143000.00</cbc:Amount>
					</cac:PaymentTerms>
					<cac:TaxTotal>
						<cbc:TaxAmount currencyCodeListVersionID="243000.00" currencyID="HUF">243000.00</cbc:TaxAmount>
						<cac:TaxSubtotal>
							<cbc:TaxAmount currencyCodeListVersionID="243000.00" currencyID="HUF">243000.00</cbc:TaxAmount>
							<cbc:Percent>0.27</cbc:Percent>
							<cac:TaxCategory>
								<cac:TaxScheme>
									<cbc:Name>normal</cbc:Name>
								</cac:TaxScheme>
							</cac:TaxCategory>
						</cac:TaxSubtotal>
					</cac:TaxTotal>
					<cac:Item>
						<cbc:Description>C termék</cbc:Description>
						<cac:AdditionalItemIdentification>
							<cbc:ID schemeID="OWN" schemeName="productCodeValue">99887764</cbc:ID>
						</cac:AdditionalItemIdentification>
						<cac:AdditionalItemProperty>
							<cbc:Name>lineExpressionIndicator</cbc:Name>
							<cbc:Value>true</cbc:Value>
						</cac:AdditionalItemProperty>
					</cac:Item>
				</cac:InvoiceLine>
				<cac:InvoiceLine>
					<cbc:ID>4</cbc:ID>
					<cbc:InvoicedQuantity unitCode="PIECE">4</cbc:InvoicedQuantity>
					<cbc:LineExtensionAmount currencyCodeListVersionID="1600000.00" currencyID="HUF">1600000.00</cbc:LineExtensionAmount>
					<cbc:PaymentPurposeCode>PRODUCT</cbc:PaymentPurposeCode>
					<cac:PricingReference>
						<cac:AlternativeConditionPrice>
							<cbc:PriceAmount currencyCodeListVersionID="400000.00" currencyID="HUF">400000.00</cbc:PriceAmount>
							<cbc:PriceTypeCode>02</cbc:PriceTypeCode>
						</cac:AlternativeConditionPrice>
					</cac:PricingReference>
					<cac:PaymentTerms>
						<cbc:Note>04</cbc:Note>
						<cbc:Amount currencyCodeListVersionID="2032000.00" currencyID="HUF">2032000.00</cbc:Amount>
					</cac:PaymentTerms>
					<cac:TaxTotal>
						<cbc:TaxAmount currencyCodeListVersionID="432000.00" currencyID="HUF">432000.00</cbc:TaxAmount>
						<cac:TaxSubtotal>
							<cbc:TaxAmount currencyCodeListVersionID="432000.00" currencyID="HUF">432000.00</cbc:TaxAmount>
							<cbc:Percent>0.27</cbc:Percent>
							<cac:TaxCategory>
								<cac:TaxScheme>
									<cbc:Name>normal</cbc:Name>
								</cac:TaxScheme>
							</cac:TaxCategory>
						</cac:TaxSubtotal>
					</cac:TaxTotal>
					<cac:Item>
						<cbc:Description>D termék</cbc:Description>
						<cac:AdditionalItemIdentification>
							<cbc:ID schemeID="OWN" schemeName="productCodeValue">44444444</cbc:ID>
						</cac:AdditionalItemIdentification>
						<cac:AdditionalItemProperty>
							<cbc:Name>lineExpressionIndicator</cbc:Name>
							<cbc:Value>true</cbc:Value>
						</cac:AdditionalItemProperty>
					</cac:Item>
				</cac:InvoiceLine>
				<cac:InvoiceLine>
					<cbc:ID>5</cbc:ID>
					<cbc:InvoicedQuantity unitCode="PIECE">5</cbc:InvoicedQuantity>
					<cbc:LineExtensionAmount currencyCodeListVersionID="2500000.00" currencyID="HUF">2500000.00</cbc:LineExtensionAmount>
					<cbc:PaymentPurposeCode>PRODUCT</cbc:PaymentPurposeCode>
					<cac:PricingReference>
						<cac:AlternativeConditionPrice>
							<cbc:PriceAmount currencyCodeListVersionID="500000.00" currencyID="HUF">500000.00</cbc:PriceAmount>
							<cbc:PriceTypeCode>02</cbc:PriceTypeCode>
						</cac:AlternativeConditionPrice>
					</cac:PricingReference>
					<cac:PaymentTerms>
						<cbc:Note>04</cbc:Note>
						<cbc:Amount currencyCodeListVersionID="3175000.00" currencyID="HUF">3175000.00</cbc:Amount>
					</cac:PaymentTerms>
					<cac:TaxTotal>
						<cbc:TaxAmount currencyCodeListVersionID="675000.00" currencyID="HUF">675000.00</cbc:TaxAmount>
						<cac:TaxSubtotal>
							<cbc:TaxAmount currencyCodeListVersionID="675000.00" currencyID="HUF">675000.00</cbc:TaxAmount>
							<cbc:Percent>0.27</cbc:Percent>
							<cac:TaxCategory>
								<cac:TaxScheme>
									<cbc:Name>normal</cbc:Name>
								</cac:TaxScheme>
							</cac:TaxCategory>
						</cac:TaxSubtotal>
					</cac:TaxTotal>
					<cac:Item>
						<cbc:Description>E termék</cbc:Description>
						<cac:AdditionalItemIdentification>
							<cbc:ID schemeID="OWN" schemeName="productCodeValue">55555555</cbc:ID>
						</cac:AdditionalItemIdentification>
						<cac:AdditionalItemProperty>
							<cbc:Name>lineExpressionIndicator</cbc:Name>
							<cbc:Value>true</cbc:Value>
						</cac:AdditionalItemProperty>
					</cac:Item>
				</cac:InvoiceLine>
			</inv:Invoice>
		</sci:SovosCanonicalInvoice>
	</svs:SovosDocument>
</sbd:StandardBusinessDocument>

SCI invoice modification

This sample contains an invoice modification of the previously described normal invoice. The modification consists of adding 40% discount to all invoice items. The OriginatorDocumentReference/ID element is the reference to the original invoice.

XML
<?xml version="1.0" encoding="UTF-8"?>
<sbd:StandardBusinessDocument xmlns="http://uri.etsi.org/01903/v1.4.1#" xmlns:ad="http://www.sovos.com/namespaces/additionalData" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:n1="urn:oasis:names:specification:ubl:schema:xsd:CommonSignatureComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:crn="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2" xmlns:dbn="urn:oasis:names:specification:ubl:schema:xsd:DebitNote-2" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:fin="urn:oasis:names:specification:ubl:schema:xsd:FreightInvoice-2" xmlns:inv="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:leg="http://www.sovos.com/namespaces/sovosExtensions/LegalExtension" xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDataTypes-2" xmlns:sac="urn:oasis:names:specification:ubl:schema:xsd:SignatureAggregateComponents-2" xmlns:sbc="urn:oasis:names:specification:ubl:schema:xsd:SignatureBasicComponents-2" xmlns:sbd="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader" xmlns:sci="http://www.sovos.com/namespaces/sovosCanonicalInvoice" xmlns:sov="http://www.sovos.com/namespaces/sovosExtensions" xmlns:svs="http://www.sovos.com/namespaces/sovosDocument" xmlns:udt="urn:oasis:names:specification:ubl:schema:xsd:UnqualifiedDataTypes-2" xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" xmlns:ccts-cct="urn:un:unece:uncefact:data:specification:CoreComponentTypeSchemaModule:2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader ../../Schemas/Sovos%20Document_v2/Sovos%20Document_v2/Standard%20Business%20Document/SBD.xsd">
	<sbd:StandardBusinessDocumentHeader>
		<sbd:HeaderVersion>1.0</sbd:HeaderVersion>
		<sbd:Sender>
			<sbd:Identifier Authority="HU">30342538</sbd:Identifier>
			<sbd:ContactInformation>
				<sbd:Contact/>
				<sbd:EmailAddress/>
				<sbd:FaxNumber/>
				<sbd:TelephoneNumber/>
				<sbd:ContactTypeIdentifier/>
			</sbd:ContactInformation>
		</sbd:Sender>
		<sbd:Receiver>
			<sbd:Identifier Authority="HU">99887764</sbd:Identifier>
			<sbd:ContactInformation>
				<sbd:Contact/>
				<sbd:EmailAddress/>
				<sbd:FaxNumber/>
				<sbd:TelephoneNumber/>
				<sbd:ContactTypeIdentifier/>
			</sbd:ContactInformation>
		</sbd:Receiver>
		<sbd:DocumentIdentification>
			<sbd:Standard>urn:oasis:names:specification:ubl:schema:xsd:Invoice-2</sbd:Standard>
			<sbd:TypeVersion>2.1</sbd:TypeVersion>
			<sbd:InstanceIdentifier/>
			<sbd:Type>Invoice</sbd:Type>
			<sbd:MultipleType>false</sbd:MultipleType>
			<sbd:CreationDateAndTime>2022-03-14T12:00:00Z</sbd:CreationDateAndTime>
		</sbd:DocumentIdentification>
		<sbd:BusinessScope>
			<sbd:Scope>
				<sbd:Type>Country</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>HU</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>SenderSystemId</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>ERPSystem</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Mapping.TransformDocument</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>SCI-TO-LEGAL_INVOICE</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Mapping.OutputSchema</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>invoiceData</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>CompanyCode</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>30342538</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>SenderDocumentId</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>ZZZ000009</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>ProcessType</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>Outbound</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>BusinessProcess</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:BusinessService>
					<sbd:BusinessServiceName>Default</sbd:BusinessServiceName>
				</sbd:BusinessService>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>BusinessCategory</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>B2B</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>SubSchema</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier></sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Version</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>3.0</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Transmission.OperationType</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>MODIFY</sbd:Identifier>
			</sbd:Scope>
		</sbd:BusinessScope>
	</sbd:StandardBusinessDocumentHeader>
	<svs:SovosDocument>
		<sci:SovosCanonicalInvoice>
			<inv:Invoice>
				<cbc:CustomizationID>NORMAL</cbc:CustomizationID>
				<cbc:ID>ZZZ0010023</cbc:ID>
				<cbc:CopyIndicator>false</cbc:CopyIndicator>
				<cbc:IssueDate>2021-05-20</cbc:IssueDate>
				<cbc:DocumentCurrencyCode>HUF</cbc:DocumentCurrencyCode>
				<cac:OriginatorDocumentReference>
					<cbc:ID>ZZZ0010032061123</cbc:ID>
					<cbc:CopyIndicator>false</cbc:CopyIndicator>
					<cbc:LocaleCode>1</cbc:LocaleCode>
				</cac:OriginatorDocumentReference>
				<cac:AdditionalDocumentReference>
					<cbc:ID schemeID=""/>
					<cbc:DocumentDescription>PAPER</cbc:DocumentDescription>
				</cac:AdditionalDocumentReference>
				<cac:AdditionalDocumentReference>
					<cbc:ID schemeID="mergedItemIndicator">false</cbc:ID>
				</cac:AdditionalDocumentReference>
				<cac:AccountingSupplierParty>
					<cac:Party>
						<cac:PartyIdentification>
							<cbc:ID schemeID="SupplierTaxID">30342538</cbc:ID>
						</cac:PartyIdentification>
						<cac:PartyIdentification>
							<cbc:ID schemeID="SupplierCountyCode">41</cbc:ID>
						</cac:PartyIdentification>
						<cac:PostalAddress>
							<cbc:AddressTypeCode>detailed</cbc:AddressTypeCode>
							<cbc:StreetName>Hármas</cbc:StreetName>
							<cbc:BlockName>utca</cbc:BlockName>
							<cbc:BuildingNumber>1</cbc:BuildingNumber>
							<cbc:CityName>Budapest</cbc:CityName>
							<cbc:PostalZone>1234</cbc:PostalZone>
							<cac:Country>
								<cbc:IdentificationCode>HU</cbc:IdentificationCode>
							</cac:Country>
						</cac:PostalAddress>
						<cac:PartyTaxScheme>
							<cac:TaxScheme>
								<cbc:Name>SupplierVATCode</cbc:Name>
								<cbc:TaxTypeCode>2</cbc:TaxTypeCode>
							</cac:TaxScheme>
						</cac:PartyTaxScheme>
						<cac:PartyLegalEntity>
							<cbc:RegistrationName>Értékesítő Kft 11</cbc:RegistrationName>
						</cac:PartyLegalEntity>
						<cac:FinancialAccount>
							<cbc:ID>12345678-12345678-12345678</cbc:ID>
						</cac:FinancialAccount>
					</cac:Party>
				</cac:AccountingSupplierParty>
				<cac:AccountingCustomerParty>
					<cac:Party>
						<cac:PartyIdentification>
							<cbc:ID schemeID="CustomerTaxID">99887764</cbc:ID>
						</cac:PartyIdentification>
						<cac:PartyIdentification>
							<cbc:ID schemeID="CustomerCountyCode">02</cbc:ID>
						</cac:PartyIdentification>
						<cac:PostalAddress>
							<cbc:AddressTypeCode>detailed</cbc:AddressTypeCode>
							<cbc:StreetName>Északi</cbc:StreetName>
							<cbc:BlockName>sugárút</cbc:BlockName>
							<cbc:BuildingNumber>123</cbc:BuildingNumber>
							<cbc:CityName>Pécs</cbc:CityName>
							<cbc:PostalZone>7600</cbc:PostalZone>
							<cac:Country>
								<cbc:IdentificationCode>HU</cbc:IdentificationCode>
							</cac:Country>
						</cac:PostalAddress>
						<cac:PartyTaxScheme>
							<cac:TaxScheme>
								<cbc:Name>CustomerVATCode</cbc:Name>
								<cbc:TaxTypeCode>2</cbc:TaxTypeCode>
							</cac:TaxScheme>
						</cac:PartyTaxScheme>
						<cac:PartyTaxScheme>
							<cac:TaxScheme>
								<cbc:Name>CustomerVATStatus</cbc:Name>
								<cbc:TaxTypeCode>DOMESTIC</cbc:TaxTypeCode>
							</cac:TaxScheme>
						</cac:PartyTaxScheme>
						<cac:PartyLegalEntity>
							<cbc:RegistrationName>Beszerző Kft</cbc:RegistrationName>
						</cac:PartyLegalEntity>
					</cac:Party>
				</cac:AccountingCustomerParty>
				<cac:Delivery>
					<cac:RequestedDeliveryPeriod>
						<cbc:StartDate>2021-05-10</cbc:StartDate>
					</cac:RequestedDeliveryPeriod>
					<cac:PromisedDeliveryPeriod/>
				</cac:Delivery>
				<cac:PaymentMeans>
					<cbc:PaymentMeansCode>TRANSFER</cbc:PaymentMeansCode>
				</cac:PaymentMeans>
				<cac:PaymentExchangeRate>
					<cbc:SourceCurrencyCode>HUF</cbc:SourceCurrencyCode>
					<cbc:TargetCurrencyCode>HUF</cbc:TargetCurrencyCode>
					<cbc:CalculationRate>1</cbc:CalculationRate>
				</cac:PaymentExchangeRate>
				<cac:TaxTotal>
					<cbc:TaxAmount currencyCodeListVersionID="-594000.00" currencyID="HUF">-594000.00</cbc:TaxAmount>
					<cac:TaxSubtotal>
						<cbc:TaxAmount currencyCodeListVersionID="-594000.00" currencyID="HUF">-594000.00</cbc:TaxAmount>
						<cbc:TransactionCurrencyTaxAmount currencyCodeListVersionID="-2200000.00" currencyID="HUF">-2200000.00</cbc:TransactionCurrencyTaxAmount>
						<cbc:Percent>0.27</cbc:Percent>
						<cac:TaxCategory>
							<cac:TaxScheme>
								<cbc:Name>normal</cbc:Name>
							</cac:TaxScheme>
						</cac:TaxCategory>
					</cac:TaxSubtotal>
				</cac:TaxTotal>
				<cac:LegalMonetaryTotal>
					<cbc:LineExtensionAmount currencyCodeListVersionID="-2200000.00" currencyID="HUF">-2200000.00</cbc:LineExtensionAmount>
					<cbc:PayableAmount currencyCodeListVersionID="-2794000.00" currencyID="HUF">-2794000.00</cbc:PayableAmount>
				</cac:LegalMonetaryTotal>
				<cac:InvoiceLine>
				<!-- Example: Modifying invoice - quality error and as a result, the customer qualifies for 40% discount, applied to all products together-->
					<cbc:ID>1</cbc:ID>
					<cbc:LineExtensionAmount currencyCodeListVersionID="-2200000.00" currencyID="HUF">-2200000.00</cbc:LineExtensionAmount>
					<cbc:PaymentPurposeCode>PRODUCT</cbc:PaymentPurposeCode>
					<cac:OrderLineReference>
						<cbc:LineID schemeID="LineModificationReference">6</cbc:LineID>
						<cbc:LineStatusCode>CREATE</cbc:LineStatusCode>
					</cac:OrderLineReference>
					<cac:PaymentTerms>
						<cbc:Note>04</cbc:Note>
						<cbc:Amount currencyCodeListVersionID="-2794000" currencyID="HUF">-2794000</cbc:Amount>
					</cac:PaymentTerms>
					<cac:TaxTotal>
						<cbc:TaxAmount currencyCodeListVersionID="-594000.00" currencyID="HUF">-594000.00</cbc:TaxAmount>
						<cac:TaxSubtotal>
							<cbc:TaxAmount currencyCodeListVersionID="-594000.00" currencyID="HUF">-594000.00</cbc:TaxAmount>
							<cbc:Percent>0.27</cbc:Percent>
							<cac:TaxCategory>
								<cac:TaxScheme>
									<cbc:Name>normal</cbc:Name>
								</cac:TaxScheme>
							</cac:TaxCategory>
						</cac:TaxSubtotal>
					</cac:TaxTotal>
					<cac:Item>
						<cbc:Description>A-E termék 40% kedvezmény minőségi hiba miatt</cbc:Description>
						<cac:AdditionalItemProperty>
							<cbc:Name>lineExpressionIndicator</cbc:Name>
							<cbc:Value>false</cbc:Value>
						</cac:AdditionalItemProperty>
					</cac:Item>
					<cac:Price>
						<cac:PricingExchangeRate>
							<cbc:SourceCurrencyCode>HUF</cbc:SourceCurrencyCode>
							<cbc:TargetCurrencyCode>HUF</cbc:TargetCurrencyCode>
							<cbc:CalculationRate>1</cbc:CalculationRate>
						</cac:PricingExchangeRate>
					</cac:Price>
				</cac:InvoiceLine>
			</inv:Invoice>
		</sci:SovosCanonicalInvoice>
	</svs:SovosDocument>
</sbd:StandardBusinessDocument>

SCI invoice cancellation

This sample contains an invoice cancellation of the previously described normal invoice (contains negative amounts).

XML
<?xml version="1.0" encoding="UTF-8"?>
<sbd:StandardBusinessDocument xmlns="http://uri.etsi.org/01903/v1.4.1#" xmlns:ad="http://www.sovos.com/namespaces/additionalData" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:n1="urn:oasis:names:specification:ubl:schema:xsd:CommonSignatureComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:crn="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2" xmlns:dbn="urn:oasis:names:specification:ubl:schema:xsd:DebitNote-2" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:fin="urn:oasis:names:specification:ubl:schema:xsd:FreightInvoice-2" xmlns:inv="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:leg="http://www.sovos.com/namespaces/sovosExtensions/LegalExtension" xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDataTypes-2" xmlns:sac="urn:oasis:names:specification:ubl:schema:xsd:SignatureAggregateComponents-2" xmlns:sbc="urn:oasis:names:specification:ubl:schema:xsd:SignatureBasicComponents-2" xmlns:sbd="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader" xmlns:sci="http://www.sovos.com/namespaces/sovosCanonicalInvoice" xmlns:sov="http://www.sovos.com/namespaces/sovosExtensions" xmlns:svs="http://www.sovos.com/namespaces/sovosDocument" xmlns:udt="urn:oasis:names:specification:ubl:schema:xsd:UnqualifiedDataTypes-2" xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" xmlns:ccts-cct="urn:un:unece:uncefact:data:specification:CoreComponentTypeSchemaModule:2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader ../../Schemas/Sovos%20Document_v2/Sovos%20Document_v2/Standard%20Business%20Document/SBD.xsd">
	<sbd:StandardBusinessDocumentHeader>
		<sbd:HeaderVersion>1.0</sbd:HeaderVersion>
		<sbd:Sender>
			<sbd:Identifier Authority="HU">30342538</sbd:Identifier>
			<sbd:ContactInformation>
				<sbd:Contact/>
				<sbd:EmailAddress/>
				<sbd:FaxNumber/>
				<sbd:TelephoneNumber/>
				<sbd:ContactTypeIdentifier/>
			</sbd:ContactInformation>
		</sbd:Sender>
		<sbd:Receiver>
			<sbd:Identifier Authority="HU">99887764</sbd:Identifier>
			<sbd:ContactInformation>
				<sbd:Contact/>
				<sbd:EmailAddress/>
				<sbd:FaxNumber/>
				<sbd:TelephoneNumber/>
				<sbd:ContactTypeIdentifier/>
			</sbd:ContactInformation>
		</sbd:Receiver>
		<sbd:DocumentIdentification>
			<sbd:Standard>urn:oasis:names:specification:ubl:schema:xsd:Invoice-2</sbd:Standard>
			<sbd:TypeVersion>2.1</sbd:TypeVersion>
			<sbd:InstanceIdentifier/>
			<sbd:Type>Invoice</sbd:Type>
			<sbd:MultipleType>false</sbd:MultipleType>
			<sbd:CreationDateAndTime>2001-12-17T09:30:47Z</sbd:CreationDateAndTime>
		</sbd:DocumentIdentification>
		<sbd:BusinessScope>
			<sbd:Scope>
				<sbd:Type>Country</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>HU</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>SenderSystemId</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>ERPSystem</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Mapping.TransformDocument</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>SCI-TO-LEGAL_INVOICE</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Mapping.OutputSchema</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>invoiceData</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>CompanyCode</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>30342538</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>SenderDocumentId</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>ZZZ000047</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>ProcessType</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>Outbound</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>BusinessProcess</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:BusinessService>
					<sbd:BusinessServiceName>Default</sbd:BusinessServiceName>
				</sbd:BusinessService>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>BusinessCategory</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>B2B</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>SubSchema</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier></sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Version</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>3.0</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Transmission.OperationType</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>CANCEL</sbd:Identifier>
			</sbd:Scope>
		</sbd:BusinessScope>
	</sbd:StandardBusinessDocumentHeader>
	<svs:SovosDocument>
		<sci:SovosCanonicalInvoice>
			<inv:Invoice>
				<cbc:CustomizationID>NORMAL</cbc:CustomizationID>
				<cbc:ID>ZZZ00096443047</cbc:ID>
				<cbc:CopyIndicator>false</cbc:CopyIndicator>
				<cbc:IssueDate>2021-05-25</cbc:IssueDate>
				<cbc:DocumentCurrencyCode>HUF</cbc:DocumentCurrencyCode>
				<cac:OriginatorDocumentReference>
					<cbc:ID>ZZZ0010032061123</cbc:ID>
					<cbc:CopyIndicator>false</cbc:CopyIndicator>
					<cbc:LocaleCode>2</cbc:LocaleCode>
				</cac:OriginatorDocumentReference>
				<cac:AdditionalDocumentReference>
					<cbc:ID schemeID=""/>
					<cbc:DocumentDescription>PAPER</cbc:DocumentDescription>
				</cac:AdditionalDocumentReference>
				<cac:AdditionalDocumentReference>
					<cbc:ID schemeID="mergedItemIndicator">false</cbc:ID>
				</cac:AdditionalDocumentReference>
				<cac:AccountingSupplierParty>
					<cac:Party>
						<cac:PartyIdentification>
							<cbc:ID schemeID="SupplierTaxID">30342538</cbc:ID>
						</cac:PartyIdentification>
						<cac:PartyIdentification>
							<cbc:ID schemeID="SupplierCountyCode">41</cbc:ID>
						</cac:PartyIdentification>
						<cac:PostalAddress>
							<cbc:AddressTypeCode>detailed</cbc:AddressTypeCode>
							<cbc:StreetName>Hármas</cbc:StreetName>
							<cbc:BlockName>utca</cbc:BlockName>
							<cbc:BuildingNumber>1</cbc:BuildingNumber>
							<cbc:CityName>Budapest</cbc:CityName>
							<cbc:PostalZone>1234</cbc:PostalZone>
							<cac:Country>
								<cbc:IdentificationCode>HU</cbc:IdentificationCode>
							</cac:Country>
						</cac:PostalAddress>
						<cac:PartyTaxScheme>
							<cac:TaxScheme>
								<cbc:Name>SupplierVATCode</cbc:Name>
								<cbc:TaxTypeCode>2</cbc:TaxTypeCode>
							</cac:TaxScheme>
						</cac:PartyTaxScheme>
						<cac:PartyLegalEntity>
							<cbc:RegistrationName>Értékesítő Kft</cbc:RegistrationName>
						</cac:PartyLegalEntity>
						<cac:FinancialAccount>
							<cbc:ID>12345678-12345678-12345678</cbc:ID>
						</cac:FinancialAccount>
					</cac:Party>
				</cac:AccountingSupplierParty>
				<cac:AccountingCustomerParty>
					<cac:Party>
						<cac:PartyIdentification>
							<cbc:ID schemeID="CustomerTaxID">99887764</cbc:ID>
						</cac:PartyIdentification>
						<cac:PartyIdentification>
							<cbc:ID schemeID="CustomerCountyCode">02</cbc:ID>
						</cac:PartyIdentification>
						<cac:PostalAddress>
							<cbc:AddressTypeCode>detailed</cbc:AddressTypeCode>
							<cbc:StreetName>Északi</cbc:StreetName>
							<cbc:BlockName>sugárút</cbc:BlockName>
							<cbc:BuildingNumber>123</cbc:BuildingNumber>
							<cbc:CityName>Pécs</cbc:CityName>
							<cbc:PostalZone>7600</cbc:PostalZone>
							<cac:Country>
								<cbc:IdentificationCode>HU</cbc:IdentificationCode>
							</cac:Country>
						</cac:PostalAddress>
						<cac:PartyTaxScheme>
							<cac:TaxScheme>
								<cbc:Name>CustomerVATCode</cbc:Name>
								<cbc:TaxTypeCode>2</cbc:TaxTypeCode>
							</cac:TaxScheme>
						</cac:PartyTaxScheme>
						<cac:PartyTaxScheme>
							<cac:TaxScheme>
								<cbc:Name>CustomerVATStatus</cbc:Name>
								<cbc:TaxTypeCode>DOMESTIC</cbc:TaxTypeCode>
							</cac:TaxScheme>
						</cac:PartyTaxScheme>
						<cac:PartyLegalEntity>
							<cbc:RegistrationName>Beszerző Kft</cbc:RegistrationName>
						</cac:PartyLegalEntity>
					</cac:Party>
				</cac:AccountingCustomerParty>
				<cac:Delivery>
					<cac:RequestedDeliveryPeriod>
						<cbc:StartDate>2021-05-10</cbc:StartDate>
					</cac:RequestedDeliveryPeriod>
					<cac:PromisedDeliveryPeriod/>
				</cac:Delivery>
				<cac:PaymentMeans>
					<cbc:PaymentMeansCode>TRANSFER</cbc:PaymentMeansCode>
					<cbc:PaymentDueDate>2021-05-30</cbc:PaymentDueDate>
				</cac:PaymentMeans>
				<cac:PaymentExchangeRate>
					<cbc:SourceCurrencyCode>HUF</cbc:SourceCurrencyCode>
					<cbc:TargetCurrencyCode>HUF</cbc:TargetCurrencyCode>
					<cbc:CalculationRate>1</cbc:CalculationRate>
				</cac:PaymentExchangeRate>
				<cac:TaxTotal>
					<cbc:TaxAmount currencyCodeListVersionID="-891000.00" currencyID="HUF">-891000.00</cbc:TaxAmount>
					<cac:TaxSubtotal>
						<cbc:TaxAmount currencyCodeListVersionID="-891000.00" currencyID="HUF">-891000.00</cbc:TaxAmount>
						<cbc:TransactionCurrencyTaxAmount currencyCodeListVersionID="-3300000.00" currencyID="HUF">-3300000.00</cbc:TransactionCurrencyTaxAmount>
						<cbc:Percent>0.27</cbc:Percent>
						<cac:TaxCategory>
							<cac:TaxScheme>
								<cbc:Name>normal</cbc:Name>
							</cac:TaxScheme>
						</cac:TaxCategory>
					</cac:TaxSubtotal>
				</cac:TaxTotal>
				<cac:LegalMonetaryTotal>
					<cbc:LineExtensionAmount currencyCodeListVersionID="-3300000.00" currencyID="HUF">-3300000.00</cbc:LineExtensionAmount>
					<cbc:PayableAmount currencyCodeListVersionID="-4191000.00" currencyID="HUF">-4191000.00</cbc:PayableAmount>
				</cac:LegalMonetaryTotal>
				<cac:InvoiceLine>
					<cbc:ID>1</cbc:ID>
					<cbc:InvoicedQuantity unitCode="PIECE">-1</cbc:InvoicedQuantity>
					<cbc:LineExtensionAmount currencyCodeListVersionID="-100000.00" currencyID="HUF">-100000.00</cbc:LineExtensionAmount>
					<cbc:PaymentPurposeCode>PRODUCT</cbc:PaymentPurposeCode>
					<cac:OrderLineReference>
						<cbc:LineID schemeID="LineModificationReference">7</cbc:LineID>
						<cbc:LineStatusCode>CREATE</cbc:LineStatusCode>
					</cac:OrderLineReference>
					<cac:PricingReference>
						<cac:AlternativeConditionPrice>
							<cbc:PriceAmount currencyCodeListVersionID="100000" currencyID="HUF">100000.00</cbc:PriceAmount>
							<cbc:PriceTypeCode>02</cbc:PriceTypeCode>
						</cac:AlternativeConditionPrice>
					</cac:PricingReference>
					<cac:PaymentTerms>
						<cbc:Note>04</cbc:Note>
						<cbc:Amount currencyCodeListVersionID="-127000.00" currencyID="HUF">-127000.00</cbc:Amount>
					</cac:PaymentTerms>
					<cac:TaxTotal>
						<cbc:TaxAmount currencyCodeListVersionID="-27000.00" currencyID="HUF">-27000.00</cbc:TaxAmount>
						<cac:TaxSubtotal>
							<cbc:TaxAmount currencyCodeListVersionID="-27000.00" currencyID="HUF">-27000.00</cbc:TaxAmount>
							<cbc:Percent>0.27</cbc:Percent>
							<cac:TaxCategory>
								<cac:TaxScheme>
									<cbc:Name>normal</cbc:Name>
								</cac:TaxScheme>
							</cac:TaxCategory>
						</cac:TaxSubtotal>
					</cac:TaxTotal>
					<cac:Item>
						<cbc:Description>A termék</cbc:Description>
						<cac:AdditionalItemIdentification>
							<cbc:ID schemeID="OWN" schemeName="productCodeValue">10452408</cbc:ID>
						</cac:AdditionalItemIdentification>
						<cac:AdditionalItemProperty>
							<cbc:Name>lineExpressionIndicator</cbc:Name>
							<cbc:Value>true</cbc:Value>
						</cac:AdditionalItemProperty>
					</cac:Item>
				</cac:InvoiceLine>
				<cac:InvoiceLine>
					<cbc:ID>2</cbc:ID>
					<cbc:InvoicedQuantity unitCode="PIECE">-2</cbc:InvoicedQuantity>
					<cbc:LineExtensionAmount currencyCodeListVersionID="-400000.00" currencyID="HUF">-400000.00</cbc:LineExtensionAmount>
					<cbc:PaymentPurposeCode>PRODUCT</cbc:PaymentPurposeCode>
								<cac:OrderLineReference>
						<cbc:LineID schemeID="LineModificationReference">8</cbc:LineID>
						<cbc:LineStatusCode>CREATE</cbc:LineStatusCode>
					</cac:OrderLineReference>
					<cac:PricingReference>
						<cac:AlternativeConditionPrice>
							<cbc:PriceAmount currencyCodeListVersionID="200000.00" currencyID="HUF">200000.00</cbc:PriceAmount>
							<cbc:PriceTypeCode>02</cbc:PriceTypeCode>
						</cac:AlternativeConditionPrice>
					</cac:PricingReference>
					<cac:PaymentTerms>
						<cbc:Note>04</cbc:Note>
						<cbc:Amount currencyCodeListVersionID="-508000.00" currencyID="HUF">-508000</cbc:Amount>
					</cac:PaymentTerms>
					<cac:TaxTotal>
						<cbc:TaxAmount currencyCodeListVersionID="-108000.00" currencyID="HUF">-108000.00</cbc:TaxAmount>
						<cac:TaxSubtotal>
							<cbc:TaxAmount currencyCodeListVersionID="-108000.00" currencyID="HUF">-108000.00</cbc:TaxAmount>
							<cbc:Percent>0.27</cbc:Percent>
							<cac:TaxCategory>
								<cac:TaxScheme>
									<cbc:Name>normal</cbc:Name>
								</cac:TaxScheme>
							</cac:TaxCategory>
						</cac:TaxSubtotal>
					</cac:TaxTotal>
					<cac:Item>
						<cbc:Description>B termék</cbc:Description>
						<cac:AdditionalItemIdentification>
							<cbc:ID schemeID="OWN" schemeName="productCodeValue">22222222</cbc:ID>
						</cac:AdditionalItemIdentification>
						<cac:AdditionalItemProperty>
							<cbc:Name>lineExpressionIndicator</cbc:Name>
							<cbc:Value>true</cbc:Value>
						</cac:AdditionalItemProperty>
					</cac:Item>
				</cac:InvoiceLine>
				<cac:InvoiceLine>
					<cbc:ID>3</cbc:ID>
					<cbc:InvoicedQuantity unitCode="PIECE">-3</cbc:InvoicedQuantity>
					<cbc:LineExtensionAmount currencyCodeListVersionID="-900000.00" currencyID="HUF">-900000.00</cbc:LineExtensionAmount>
					<cbc:PaymentPurposeCode>PRODUCT</cbc:PaymentPurposeCode>
					<cac:OrderLineReference>
						<cbc:LineID schemeID="LineModificationReference">9</cbc:LineID>
						<cbc:LineStatusCode>CREATE</cbc:LineStatusCode>
					</cac:OrderLineReference>
					<cac:PricingReference>
						<cac:AlternativeConditionPrice>
							<cbc:PriceAmount currencyCodeListVersionID="300000.00" currencyID="HUF">300000.00</cbc:PriceAmount>
							<cbc:PriceTypeCode>02</cbc:PriceTypeCode>
						</cac:AlternativeConditionPrice>
					</cac:PricingReference>
					<cac:PaymentTerms>
						<cbc:Note>04</cbc:Note>
						<cbc:Amount currencyCodeListVersionID="-1143000.00" currencyID="HUF">-1143000.00</cbc:Amount>
					</cac:PaymentTerms>
					<cac:TaxTotal>
						<cbc:TaxAmount currencyCodeListVersionID="-243000.00" currencyID="HUF">-243000.00</cbc:TaxAmount>
						<cac:TaxSubtotal>
							<cbc:TaxAmount currencyCodeListVersionID="-243000.00" currencyID="HUF">-243000.00</cbc:TaxAmount>
							<cbc:Percent>0.27</cbc:Percent>
							<cac:TaxCategory>
								<cac:TaxScheme>
									<cbc:Name>normal</cbc:Name>
								</cac:TaxScheme>
							</cac:TaxCategory>
						</cac:TaxSubtotal>
					</cac:TaxTotal>
					<cac:Item>
						<cbc:Description>C termék</cbc:Description>
						<cac:AdditionalItemIdentification>
							<cbc:ID schemeID="OWN" schemeName="productCodeValue">99887764</cbc:ID>
						</cac:AdditionalItemIdentification>
						<cac:AdditionalItemProperty>
							<cbc:Name>lineExpressionIndicator</cbc:Name>
							<cbc:Value>true</cbc:Value>
						</cac:AdditionalItemProperty>
					</cac:Item>
				</cac:InvoiceLine>
				<cac:InvoiceLine>
					<cbc:ID>4</cbc:ID>
					<cbc:InvoicedQuantity unitCode="PIECE">-4</cbc:InvoicedQuantity>
					<cbc:LineExtensionAmount currencyCodeListVersionID="-1600000.00" currencyID="HUF">-1600000.00</cbc:LineExtensionAmount>
					<cbc:PaymentPurposeCode>PRODUCT</cbc:PaymentPurposeCode>
					<cac:OrderLineReference>
						<cbc:LineID schemeID="LineModificationReference">10</cbc:LineID>
						<cbc:LineStatusCode>CREATE</cbc:LineStatusCode>
					</cac:OrderLineReference>
					<cac:PricingReference>
						<cac:AlternativeConditionPrice>
							<cbc:PriceAmount currencyCodeListVersionID="400000.00" currencyID="HUF">400000.00</cbc:PriceAmount>
							<cbc:PriceTypeCode>02</cbc:PriceTypeCode>
						</cac:AlternativeConditionPrice>
					</cac:PricingReference>
					<cac:PaymentTerms>
						<cbc:Note>04</cbc:Note>
						<cbc:Amount currencyCodeListVersionID="-2032000.00" currencyID="HUF">-2032000.00</cbc:Amount>
					</cac:PaymentTerms>
					<cac:TaxTotal>
						<cbc:TaxAmount currencyCodeListVersionID="-432000.00" currencyID="HUF">-432000.00</cbc:TaxAmount>
						<cac:TaxSubtotal>
							<cbc:TaxAmount currencyCodeListVersionID="-432000.00" currencyID="HUF">-432000.00</cbc:TaxAmount>
							<cbc:Percent>0.27</cbc:Percent>
							<cac:TaxCategory>
								<cac:TaxScheme>
									<cbc:Name>normal</cbc:Name>
								</cac:TaxScheme>
							</cac:TaxCategory>
						</cac:TaxSubtotal>
					</cac:TaxTotal>
					<cac:Item>
						<cbc:Description>D termék</cbc:Description>
						<cac:AdditionalItemIdentification>
							<cbc:ID schemeID="OWN" schemeName="productCodeValue">44444444</cbc:ID>
						</cac:AdditionalItemIdentification>
						<cac:AdditionalItemProperty>
							<cbc:Name>lineExpressionIndicator</cbc:Name>
							<cbc:Value>true</cbc:Value>
						</cac:AdditionalItemProperty>
					</cac:Item>
				</cac:InvoiceLine>
				<cac:InvoiceLine>
					<cbc:ID>5</cbc:ID>
					<cbc:InvoicedQuantity unitCode="PIECE">-5</cbc:InvoicedQuantity>
					<cbc:LineExtensionAmount currencyCodeListVersionID="-2500000.00" currencyID="HUF">-2500000.00</cbc:LineExtensionAmount>
					<cbc:PaymentPurposeCode>PRODUCT</cbc:PaymentPurposeCode>
					<cac:OrderLineReference>
						<cbc:LineID schemeID="LineModificationReference">11</cbc:LineID>
						<cbc:LineStatusCode>CREATE</cbc:LineStatusCode>
					</cac:OrderLineReference>
					<cac:PricingReference>
						<cac:AlternativeConditionPrice>
							<cbc:PriceAmount currencyCodeListVersionID="500000.00" currencyID="HUF">500000.00</cbc:PriceAmount>
							<cbc:PriceTypeCode>02</cbc:PriceTypeCode>
						</cac:AlternativeConditionPrice>
					</cac:PricingReference>
					<cac:PaymentTerms>
						<cbc:Note>04</cbc:Note>
						<cbc:Amount currencyCodeListVersionID="-3175000.00" currencyID="HUF">-3175000.00</cbc:Amount>
					</cac:PaymentTerms>
					<cac:TaxTotal>
						<cbc:TaxAmount currencyCodeListVersionID="-675000.00" currencyID="HUF">-675000.00</cbc:TaxAmount>
						<cac:TaxSubtotal>
							<cbc:TaxAmount currencyCodeListVersionID="-675000.00" currencyID="HUF">-675000.00</cbc:TaxAmount>
							<cbc:Percent>0.27</cbc:Percent>
							<cac:TaxCategory>
								<cac:TaxScheme>
									<cbc:Name>normal</cbc:Name>
								</cac:TaxScheme>
							</cac:TaxCategory>
						</cac:TaxSubtotal>
					</cac:TaxTotal>
					<cac:Item>
						<cbc:Description>E termék</cbc:Description>
						<cac:AdditionalItemIdentification>
							<cbc:ID schemeID="OWN" schemeName="productCodeValue">55555555</cbc:ID>
						</cac:AdditionalItemIdentification>
						<cac:AdditionalItemProperty>
							<cbc:Name>lineExpressionIndicator</cbc:Name>
							<cbc:Value>true</cbc:Value>
						</cac:AdditionalItemProperty>
					</cac:Item>
				</cac:InvoiceLine>
				<cac:InvoiceLine>
					<cbc:ID>6</cbc:ID>
					<cbc:LineExtensionAmount currencyCodeListVersionID="2200000.00" currencyID="HUF">2200000.00</cbc:LineExtensionAmount>
					<cbc:PaymentPurposeCode>PRODUCT</cbc:PaymentPurposeCode>
					<cac:OrderLineReference>
						<cbc:LineID schemeID="LineModificationReference">12</cbc:LineID>
						<cbc:LineStatusCode>CREATE</cbc:LineStatusCode>
					</cac:OrderLineReference>
					<cac:PaymentTerms>
						<cbc:Note>04</cbc:Note>
						<cbc:Amount currencyCodeListVersionID="2794000.00" currencyID="HUF">2794000.00</cbc:Amount>
					</cac:PaymentTerms>
					<cac:TaxTotal>
						<cbc:TaxAmount currencyCodeListVersionID="594000.00" currencyID="HUF">594000.00</cbc:TaxAmount>
						<cac:TaxSubtotal>
							<cbc:TaxAmount currencyCodeListVersionID="594000.00" currencyID="HUF">594000.00</cbc:TaxAmount>
							<cbc:Percent>0.27</cbc:Percent>
							<cac:TaxCategory>
								<cac:TaxScheme>
									<cbc:Name>normal</cbc:Name>
								</cac:TaxScheme>
							</cac:TaxCategory>
						</cac:TaxSubtotal>
					</cac:TaxTotal>
					<cac:Item>
						<cbc:Description>A-E termék 40% kedvezmény minőségi hiba miatt</cbc:Description>
						<cac:AdditionalItemProperty>
							<cbc:Name>lineExpressionIndicator</cbc:Name>
							<cbc:Value>false</cbc:Value>
						</cac:AdditionalItemProperty>
					</cac:Item>
				</cac:InvoiceLine>
			</inv:Invoice>
		</sci:SovosCanonicalInvoice>
	</svs:SovosDocument>
</sbd:StandardBusinessDocument>