home

Indirect Tax

Sovos Docs

Show Page Sections

Saudi Arabia

Enabling support for Saudi Arabia involves confirming prerequisites and product IDs, registering with the Zakat, Tax and Customs Authority (ZATCA) tax authority, and setting up credentials.

Overview

Saudi Arabia is currently a Post-Audit country and is on the roadmap to becoming a Clearance country. While the tax authority has not enforced a specific document format, there are requirements that must be met for XML invoices. Sovos recommends that you follow Saudi Arabia's XML specifications, as these are used when mapping to the SCI. Otherwise, you'll need to provide detailed specifications of your format.

The Indirect Tax API can be used to map the Sovos Canonical Invoice format to the Saudi Arabia XML format, or later to a PDF if required, in compliance with Saudi Arabia's guidelines. And, now that it is becoming a clearance country, our API also supports the clearance part through the transmission functionality.

For integrity and authenticity reasons, we recommend applying a digital signature to Saudi Arabian invoices. Sovos eInvoicing Compliance for Post-Audit countries can be used to apply and validate digital signatures. To apply signatures on an invoice, either in the form of XML, PDF, or any legal format, the standards outlined on this Post-Audit page apply.

With the rollout of phase two by ZATCA, you can now use Sovos' Indirect Tax API to map, sign and transmit invoices to ZATCA for clearance and reporting purposes, as well as archiving.

Prerequisites

E-invoicing (phase one)
Sandbox (UAT)
A valid TLS certificate from Sovos. To apply for a certificate, you must fill out the following documents and share them with the Professional Services team:
Production
You must have a valid production TLS certificate from Sovos. We provide this certificate during the official integration project, after the testing phase.
Note:

There is no need to perform any configuration to start with e-invoicing for Saudi Arabia (phase one). You only need configuration if you want to use Sovos eArchiving.

Invoice clearance and reporting (phase two)
Any environment
To access our Sandbox (UAT) or Production environments, you must fill out the following documents and share them with the Professional Services team:
Sandbox (UAT)
Because ZATCA's Sandbox (UAT) environment is not fully dynamic, no ZATCA credentials are issued. No prerequisite steps against ZATCA are required for UAT to perform Sovos configurations and then begin sending documents. To use Sandbox, you need to:
  • Create a Sandbox account on the Developer Hub to use the Indirect Tax API
    Note:

    You must contact the Professional Services team to obtain your organization ID.

    Organization IDs differ between Sandbox and Production.

  • Create a company with a product using the "399999999900003" TaxId

  • Create a branch for branch configuration using the companyId returned from the previous step

  • Create transmission / signing / number management settings (with ZATCA-hardcoded transmission credentials, signing credentials, and trigger NRM, as shown in this sample request)

Note:

After following these steps, you can test the issuance of documents and provisioning branch API calls. However, unless you recreate the settings first, provisioning branch API calls overwrites previously created settings and blocks the ability to issue documents.

Certain values are predefined by ZATCA when using the Sandbox environment, while the same values are customer-specific for the Production environment.

Production
An OTP from ZATCA and CSR data
You must onboard the E-invoicing Generation Solution (EGS) unit using the Branch endpoints from Configuration v2 for creating and provisioning a branch. This means you must obtain an OTP from the Fatoora Portal (ZATCA) and compose the CSR input data in the "Branch Provision" Indirect Tax API request.
Other requirements
  • Create a Production account on the Developer Hub to to use the Indirect Tax API
    Note:

    You must contact the Professional Services team to obtain special authorization to use this account and to obtain your organization ID.

    Organization IDs differ between Sandbox and Production.

  • Create a company with a product using a 15-character TaxId that starts and ends with "3"

  • Create a branch using the companyId returned from the previous step and provision the branch to the tax authority, as explained on this topic

Market-specific considerations

The following rules, definitions, caveats and limitations apply:

Limited dynamic UAT environment of ZATCA
  • Onboarding cannot be tested end-to-end

  • Authentication is common, so hard-coded credentials must be shared with customers

  • Only syntax is checked

  • QR code, signature, and document hash are dynamic

Identifiers and configurable attachments returned to customers
  • Invoice hash

  • Signed document (B2C)​

  • Cleared document (B2B)​

  • PDF/A-3​

Transmission outcomes
Transmission can result in Error, Accepted or Warning. Errors are considered as rejections by ZATCA, whereas a warning means acceptance. However, warning messages need to be addressed.
Clearance contingency
If ZATCA's clearance API (B2B) is unavailable, the invoice is submitted using the reporting API (B2C).
Note:

This contingency method is enforced by ZATCA.

Indirect Tax API considerations
New Standard Business Document Header (SBDH) scope for "Branch" that indicates the branch name. You should use it to distinguish between branches (units in KSA), as one taxpayer can have several. It is the same as "Branch name", which needs to be configured beforehand.

Available products

  • sa_UBLInvoice__1.0

  • SA_DOCUMENT_1_2.0

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.

This government web page contains documentation and guidelines that include error codes and messages that the tax authority can return.

Create settings for Saudi Arabia (Sandbox only)

You must have already obtained your organization ID and created a company and a branch before you can to create settings for transmission, signing, and number management.

Creating settings for transmission, signing, and number management is only required for the Sandbox environment, so you shouldn't do this in Production.
  1. Send a POST request to the endpoint URL:
    POST https://api-test.sovos.com/v2/configurations/organizations/{orgId}/settings
  2. Include the following headers in your request:
    • Authorization: Bearer {accessToken}

    • Content-Type: application/json

    • x-correlationId: {uniqueValue}

  3. Include the following parameters inside the JSON payload in the request body:
    curl --location -g --request POST 'https://api-test.sovos.com/v2/configurations/organizations/YOUR-ORG-ID/settings' \
    --header 'x-correlationId: developer-guide' \
    --data-raw '[
        {
            "context": "transmission",
            "configurations": [
                {
                    "name": "partner_credentials_zatca",
                    "value": {
                        "binarySecurityToken": "TUlJRDNqQ0NBNFNnQXdJQkFnSVRFUUFBT0FQRjkwQWpzL3hjWHdBQkFBQTRBekFLQmdncWhrak9QUVFEQWpCaU1SVXdFd1lLQ1pJbWlaUHlMR1FCR1JZRmJHOWpZV3d4RXpBUkJnb0praWFKay9Jc1pBRVpGZ05uYjNZeEZ6QVZCZ29Ka2lhSmsvSXNaQUVaRmdkbGVIUm5ZWHAwTVJzd0dRWURWUVFERXhKUVVscEZTVTVXVDBsRFJWTkRRVFF0UTBFd0hoY05NalF3TVRFeE1Ea3hPVE13V2hjTk1qa3dNVEE1TURreE9UTXdXakIxTVFzd0NRWURWUVFHRXdKVFFURW1NQ1FHQTFVRUNoTWRUV0Y0YVcxMWJTQlRjR1ZsWkNCVVpXTm9JRk4xY0hCc2VTQk1WRVF4RmpBVUJnTlZCQXNURFZKcGVXRmthQ0JDY21GdVkyZ3hKakFrQmdOVkJBTVRIVlJUVkMwNE9EWTBNekV4TkRVdE16azVPVGs1T1RrNU9UQXdNREF6TUZZd0VBWUhLb1pJemowQ0FRWUZLNEVFQUFvRFFnQUVvV0NLYTBTYTlGSUVyVE92MHVBa0MxVklLWHhVOW5QcHgydmxmNHloTWVqeThjMDJYSmJsRHE3dFB5ZG84bXEwYWhPTW1Obzhnd25pN1h0MUtUOVVlS09DQWdjd2dnSURNSUd0QmdOVkhSRUVnYVV3Z2FLa2daOHdnWnd4T3pBNUJnTlZCQVFNTWpFdFZGTlVmREl0VkZOVWZETXRaV1F5TW1ZeFpEZ3RaVFpoTWkweE1URTRMVGxpTlRndFpEbGhPR1l4TVdVME5EVm1NUjh3SFFZS0NaSW1pWlB5TEdRQkFRd1BNems1T1RrNU9UazVPVEF3TURBek1RMHdDd1lEVlFRTURBUXhNVEF3TVJFd0R3WURWUVFhREFoU1VsSkVNamt5T1RFYU1CZ0dBMVVFRHd3UlUzVndjR3g1SUdGamRHbDJhWFJwWlhNd0hRWURWUjBPQkJZRUZFWCtZdm1tdG5Zb0RmOUJHYktvN29jVEtZSzFNQjhHQTFVZEl3UVlNQmFBRkp2S3FxTHRtcXdza0lGelZ2cFAyUHhUKzlObk1Ic0dDQ3NHQVFVRkJ3RUJCRzh3YlRCckJnZ3JCZ0VGQlFjd0FvWmZhSFIwY0RvdkwyRnBZVFF1ZW1GMFkyRXVaMjkyTG5OaEwwTmxjblJGYm5KdmJHd3ZVRkphUlVsdWRtOXBZMlZUUTBFMExtVjRkR2RoZW5RdVoyOTJMbXh2WTJGc1gxQlNXa1ZKVGxaUFNVTkZVME5CTkMxRFFTZ3hLUzVqY25Rd0RnWURWUjBQQVFIL0JBUURBZ2VBTUR3R0NTc0dBUVFCZ2pjVkJ3UXZNQzBHSlNzR0FRUUJnamNWQ0lHR3FCMkUwUHNTaHUyZEpJZk8reG5Ud0ZWbWgvcWxaWVhaaEQ0Q0FXUUNBUkl3SFFZRFZSMGxCQll3RkFZSUt3WUJCUVVIQXdNR0NDc0dBUVVGQndNQ01DY0dDU3NHQVFRQmdqY1ZDZ1FhTUJnd0NnWUlLd1lCQlFVSEF3TXdDZ1lJS3dZQkJRVUhBd0l3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUxFL2ljaG1uV1hDVUtVYmNhM3ljaThvcXdhTHZGZEhWalFydmVJOXVxQWJBaUE5aEM0TThqZ01CQURQU3ptZDJ1aVBKQTZnS1IzTEUwM1U3NWVxYkMvclhBPT0=",
                        "secret": "CkYsEXfV8c1gFHAtFWoZv73pGMvh/Qyo4LzKM2h/8Hg="
                    },
                    "scope": {
                        "category": "SA_INV",
                        "productId": "sa_UBLInvoice__1.0",
                        "orgId": "YOUR-ORG-ID",
                        "taxId": "YOUR-TAXID",
                        "branch": "YOUR-BRANCH-NAME"
                    }
                }
            ]
        },
        {
            "context": "signing",
            "configurations": [
                {
                    "name": "credentials",
                    "value": {
                        "certificateFileData": "MIIGbQIBAzCCBjcGCSqGSIb3DQEHAaCCBigEggYkMIIGIDCCBM8GCSqGSIb3DQEHBqCCBMAwggS8AgEAMIIEtQYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQMwDgQIuh22gaannAgCAggAgIIEiHW7RC4qAOmFElIoUcvZwHcYbcSaawCQW4etVgsvaxBuN6lCtXKeHuS5XQ6chcS1CeZari/yyT5MnJM1v5SeoznlgeQZsIcTs46ij+HP7VbCuohwLPdSsnkhahNwfhmp0N1oNhLyRFNSKCadxsCbGNVOtzeDhS1B364AKlyzAjRNanHNAFY6zFoXjR7V1aS5P/gKAztiBeumCUA2Fvh6wErikEdcHnHYS4L+gYoVNzbqO2Nt90yBZ4RnpybidLzLRw0/xmbRJqMzjxiAVJ6J86QL/tVlwkIlGgwvjl3anQQ4eenWLJ3hrMLtsLkWEUaN6dhYS7YhOyw6DDTyVy3LOj4OtwMUtk0bEckp8CNQGhvs4mjGxEZvw+yEO3WubnQrxESveknRr2s67ULIK7tjOqbu1kbsbomvsR14RomH35sjO4KMCcHUzqetp409xNNz6AnuG8fRiSLHSoOU/4EMcYBS25JgEP2DB1o4sB4rXOIDZ7gnFJ8MqNyy629TRtLG9qr+K3+MUONcrC0VNwAtJKcuByqCHMRgVbQHbk3wxh2NAzTiz1uFgR97HJFfuuLL6hx0SOhTq+jyYjKbFbmP9qhxOmeObUSah1XYEz7eCfqXngq5fZXgrgejcPfB12MnuhJKCJHErCaKkc8HjnuV3SpVC/RYBt6YQsLYbHVLehtGIvnJ8vYBX47GwG7wKIaU/qIbhB7qofRoWipLgFBnxjydA6jpY2DMwDyy6bAtfMpOCgrQji4/lihcF1zwWcu/8m+LIlh5VYCrreNgdfyLb9eQWxo/9g+XiWqlIXqH6HH6lWXyMZm/R+kPwO4OPjKQ+UuerDPjU/moHhE1UiAs7c9HhGPevwQnt/XsYhmj+tb84wzaRDgAIFFATTcr3sXeRHzbOAg1Dg3c7itFsGLFhNkBnjE5d4kxKl4Dt/deQobOQzdjs4gZFGnrO4enGoPq8Bv4WTrnoVpgP6HjPOM+Bs8o0sSfQhiJF7ldZrVs1i+qgLVGYlwOosgz+C0yxJvkRD9Rc7Z3O5MNzTZouVOO5v2wJtcnY70Tl4KKmhZNIx9079cpKag5DmphCQSQebdglphBYI5shqQXzPxzF9kcRhaQhxV+B/P/9QA0SO0EpGxF1p/4l9RQ+qxWnpDZoX0X3UyFV9Fn4wCB98MX6qLCh8MYHVR2akPCW1i3RZM2xicdyhg/LwB32fnB+qlnTtNn5XycClajD5H+yivM/5pTTKk4KBmmXiox1oReAS8Ku0+XjNTgJDF36EJ237uWmbNpAutnsNV0D2Cw3Nqe5kE9T/hk7hCmblygA3ruJiVx2I1kalsu+7+P9Jlv/3/rUHmRVVsRPOtzmiApiCqcaT2IdarxUr4VWEOLL44ADJQReOdHN4D0+d4eggBnPmcuFF+hb/aecKnQ8kiqEJkqmUw3IwF2o3NQgW67g2IpHl704BxK8b+2yqre3IQDRtq/sWEFZOrjw7TfM4cBBH79MGoXpbjqgEoqqTCbQ3E/sq+EQpp69bRVqYJQXaHLrKrfZkWXvx93x+PIPYq4MIIBSQYJKoZIhvcNAQcBoIIBOgSCATYwggEyMIIBLgYLKoZIhvcNAQwKAQKggawwgakwHAYKKoZIhvcNAQwBAzAOBAhTyB6WWWGZtwICCAAEgYgeBTtr8C8/AQJksVXJWIX0Qxk8vTlqVp6MD80rHOfPDnggTSiGHR6yHIvLn2qoydKvZdc5rvHNwNeDPK18n5QS4A4/gNoUzn2S502aCHm4++Vc3L6uWAx+J5FKCEy44DgqqIIhnwe7gN0kDgiRR+kF8BdoYHx7/QaKzfBxzqUbJ5HCSIVSFjlwMXAwIwYJKoZIhvcNAQkVMRYEFARRpeJ5GgokFNh0aJAuxUMTyOfnMEkGCSqGSIb3DQEJFDE8HjoAVABTAFQALQA4ADgANgA0ADMAMQAxADQANQAtADMAOQA5ADkAOQA5ADkAOQA5ADkAMAAwADAAMAAzMC0wITAJBgUrDgMCGgUABBQai1bJRkp/NJOoerr97QXfDECAngQIYl/ZZrwYFFw=",
                        "password": "abcd1234"
                    },
                    "scope": {
                        "category": "SA_INV",
                        "productId": "sa_UBLInvoice__1.0",
                        "orgId": "YOUR-ORG-ID",
                        "taxId": "YOUR-TAXID",
                        "branch": "YOUR-BRANCH-NAME"
                    }
                }
            ]
        },
        {
            "context": "numberrangemanagement",
            "configurations": [
                {
                    "name": "initial_number",
                    "value": {
                        "items": [
                            {
                                "fieldName": "icv",
                                "value": "1"
                            },
                            {
                                "fieldName": "pih",
                                "value": "NWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzljMmRiYzIzOWRkNGU5MWI0NjcyOWQ3M2EyN2ZiNTdlOQ=="
                            }
                        ]
                    },
                    "scope": {
                        "category": "SA_INV",
                        "productId": "sa_UBLInvoice__1.0",
                        "orgId": "YOUR-ORG-ID",
                        "taxId": "YOUR-TAXID",
                        "branch": "YOUR-BRANCH-NAME"
                    }
                }
            ]
        }
    ]'

Upon successful creation, the API will return a JSON object containing the uploaded transmission, signing, and number management credentials. Here is a response sample:

{
    "status": 201,
    "message": "Created",
    "success": true,
    "timestamp": 1673268163037,
    "data": [
        {
            "message": "Configurations are created",
            "statusCode": 201,
            "configurationContextResponse": {
                "context": "Transmission",
                "configurations": [
                    {
                        "id": "f9ed9d2e-...-ed8f5220277a",
                        "name": "partner_credentials_zatca",
                        "value": {
                            "binarySecurityToken": "TUlJRDNqQ0NBNFNnQXdJQkFnSVRFUUFBT0FQRjkwQWpzL3hjWHdBQkFBQTRBekFLQmdncWhrak9QUVFEQWpCaU1SVXdFd1lLQ1pJbWlaUHlMR1FCR1JZRmJHOWpZV3d4RXpBUkJnb0praWFKay9Jc1pBRVpGZ05uYjNZeEZ6QVZCZ29Ka2lhSmsvSXNaQUVaRmdkbGVIUm5ZWHAwTVJzd0dRWURWUVFERXhKUVVscEZTVTVXVDBsRFJWTkRRVFF0UTBFd0hoY05NalF3TVRFeE1Ea3hPVE13V2hjTk1qa3dNVEE1TURreE9UTXdXakIxTVFzd0NRWURWUVFHRXdKVFFURW1NQ1FHQTFVRUNoTWRUV0Y0YVcxMWJTQlRjR1ZsWkNCVVpXTm9JRk4xY0hCc2VTQk1WRVF4RmpBVUJnTlZCQXNURFZKcGVXRmthQ0JDY21GdVkyZ3hKakFrQmdOVkJBTVRIVlJUVkMwNE9EWTBNekV4TkRVdE16azVPVGs1T1RrNU9UQXdNREF6TUZZd0VBWUhLb1pJemowQ0FRWUZLNEVFQUFvRFFnQUVvV0NLYTBTYTlGSUVyVE92MHVBa0MxVklLWHhVOW5QcHgydmxmNHloTWVqeThjMDJYSmJsRHE3dFB5ZG84bXEwYWhPTW1Obzhnd25pN1h0MUtUOVVlS09DQWdjd2dnSURNSUd0QmdOVkhSRUVnYVV3Z2FLa2daOHdnWnd4T3pBNUJnTlZCQVFNTWpFdFZGTlVmREl0VkZOVWZETXRaV1F5TW1ZeFpEZ3RaVFpoTWkweE1URTRMVGxpTlRndFpEbGhPR1l4TVdVME5EVm1NUjh3SFFZS0NaSW1pWlB5TEdRQkFRd1BNems1T1RrNU9UazVPVEF3TURBek1RMHdDd1lEVlFRTURBUXhNVEF3TVJFd0R3WURWUVFhREFoU1VsSkVNamt5T1RFYU1CZ0dBMVVFRHd3UlUzVndjR3g1SUdGamRHbDJhWFJwWlhNd0hRWURWUjBPQkJZRUZFWCtZdm1tdG5Zb0RmOUJHYktvN29jVEtZSzFNQjhHQTFVZEl3UVlNQmFBRkp2S3FxTHRtcXdza0lGelZ2cFAyUHhUKzlObk1Ic0dDQ3NHQVFVRkJ3RUJCRzh3YlRCckJnZ3JCZ0VGQlFjd0FvWmZhSFIwY0RvdkwyRnBZVFF1ZW1GMFkyRXVaMjkyTG5OaEwwTmxjblJGYm5KdmJHd3ZVRkphUlVsdWRtOXBZMlZUUTBFMExtVjRkR2RoZW5RdVoyOTJMbXh2WTJGc1gxQlNXa1ZKVGxaUFNVTkZVME5CTkMxRFFTZ3hLUzVqY25Rd0RnWURWUjBQQVFIL0JBUURBZ2VBTUR3R0NTc0dBUVFCZ2pjVkJ3UXZNQzBHSlNzR0FRUUJnamNWQ0lHR3FCMkUwUHNTaHUyZEpJZk8reG5Ud0ZWbWgvcWxaWVhaaEQ0Q0FXUUNBUkl3SFFZRFZSMGxCQll3RkFZSUt3WUJCUVVIQXdNR0NDc0dBUVVGQndNQ01DY0dDU3NHQVFRQmdqY1ZDZ1FhTUJnd0NnWUlLd1lCQlFVSEF3TXdDZ1lJS3dZQkJRVUhBd0l3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUxFL2ljaG1uV1hDVUtVYmNhM3ljaThvcXdhTHZGZEhWalFydmVJOXVxQWJBaUE5aEM0TThqZ01CQURQU3ptZDJ1aVBKQTZnS1IzTEUwM1U3NWVxYkMvclhBPT0=",
                            "secret": "CkYsEXfV8c1gFHAtFWoZv73pGMvh/Qyo4LzKM2h/8Hg="
                        },
                        "scope": {
                            "category": "SA_INV",
                            "productId": "sa_UBLInvoice__1.0",
                            "orgId": "YOUR-ORG-ID",
                            "taxId": "YOUR-TAXID",
                            "branch": "YOUR-BRANCH-NAME"
                        },
                        "auditData": {
                            "createdAt": 1673268162,
                            "createdBy": "user@company.com",
                            "isDeleted": false,
                            "version": 1
                        }
                    }
                ]
            }
        },
        {
            "message": "Configurations are created",
            "statusCode": 201,
            "configurationContextResponse": {
                "context": "Signing",
                "configurations": [
                    {
                        "id": "e571b96d-...-0a7c76d4b3e3",
                        "name": "credentials",
                        "value": {
                            "certificateFileData": "MIIGbQIBAzCCBjcGCSqGSIb3DQEHAaCCBigEggYkMIIGIDCCBM8GCSqGSIb3DQEHBqCCBMAwggS8AgEAMIIEtQYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQMwDgQIuh22gaannAgCAggAgIIEiHW7RC4qAOmFElIoUcvZwHcYbcSaawCQW4etVgsvaxBuN6lCtXKeHuS5XQ6chcS1CeZari/yyT5MnJM1v5SeoznlgeQZsIcTs46ij+HP7VbCuohwLPdSsnkhahNwfhmp0N1oNhLyRFNSKCadxsCbGNVOtzeDhS1B364AKlyzAjRNanHNAFY6zFoXjR7V1aS5P/gKAztiBeumCUA2Fvh6wErikEdcHnHYS4L+gYoVNzbqO2Nt90yBZ4RnpybidLzLRw0/xmbRJqMzjxiAVJ6J86QL/tVlwkIlGgwvjl3anQQ4eenWLJ3hrMLtsLkWEUaN6dhYS7YhOyw6DDTyVy3LOj4OtwMUtk0bEckp8CNQGhvs4mjGxEZvw+yEO3WubnQrxESveknRr2s67ULIK7tjOqbu1kbsbomvsR14RomH35sjO4KMCcHUzqetp409xNNz6AnuG8fRiSLHSoOU/4EMcYBS25JgEP2DB1o4sB4rXOIDZ7gnFJ8MqNyy629TRtLG9qr+K3+MUONcrC0VNwAtJKcuByqCHMRgVbQHbk3wxh2NAzTiz1uFgR97HJFfuuLL6hx0SOhTq+jyYjKbFbmP9qhxOmeObUSah1XYEz7eCfqXngq5fZXgrgejcPfB12MnuhJKCJHErCaKkc8HjnuV3SpVC/RYBt6YQsLYbHVLehtGIvnJ8vYBX47GwG7wKIaU/qIbhB7qofRoWipLgFBnxjydA6jpY2DMwDyy6bAtfMpOCgrQji4/lihcF1zwWcu/8m+LIlh5VYCrreNgdfyLb9eQWxo/9g+XiWqlIXqH6HH6lWXyMZm/R+kPwO4OPjKQ+UuerDPjU/moHhE1UiAs7c9HhGPevwQnt/XsYhmj+tb84wzaRDgAIFFATTcr3sXeRHzbOAg1Dg3c7itFsGLFhNkBnjE5d4kxKl4Dt/deQobOQzdjs4gZFGnrO4enGoPq8Bv4WTrnoVpgP6HjPOM+Bs8o0sSfQhiJF7ldZrVs1i+qgLVGYlwOosgz+C0yxJvkRD9Rc7Z3O5MNzTZouVOO5v2wJtcnY70Tl4KKmhZNIx9079cpKag5DmphCQSQebdglphBYI5shqQXzPxzF9kcRhaQhxV+B/P/9QA0SO0EpGxF1p/4l9RQ+qxWnpDZoX0X3UyFV9Fn4wCB98MX6qLCh8MYHVR2akPCW1i3RZM2xicdyhg/LwB32fnB+qlnTtNn5XycClajD5H+yivM/5pTTKk4KBmmXiox1oReAS8Ku0+XjNTgJDF36EJ237uWmbNpAutnsNV0D2Cw3Nqe5kE9T/hk7hCmblygA3ruJiVx2I1kalsu+7+P9Jlv/3/rUHmRVVsRPOtzmiApiCqcaT2IdarxUr4VWEOLL44ADJQReOdHN4D0+d4eggBnPmcuFF+hb/aecKnQ8kiqEJkqmUw3IwF2o3NQgW67g2IpHl704BxK8b+2yqre3IQDRtq/sWEFZOrjw7TfM4cBBH79MGoXpbjqgEoqqTCbQ3E/sq+EQpp69bRVqYJQXaHLrKrfZkWXvx93x+PIPYq4MIIBSQYJKoZIhvcNAQcBoIIBOgSCATYwggEyMIIBLgYLKoZIhvcNAQwKAQKggawwgakwHAYKKoZIhvcNAQwBAzAOBAhTyB6WWWGZtwICCAAEgYgeBTtr8C8/AQJksVXJWIX0Qxk8vTlqVp6MD80rHOfPDnggTSiGHR6yHIvLn2qoydKvZdc5rvHNwNeDPK18n5QS4A4/gNoUzn2S502aCHm4++Vc3L6uWAx+J5FKCEy44DgqqIIhnwe7gN0kDgiRR+kF8BdoYHx7/QaKzfBxzqUbJ5HCSIVSFjlwMXAwIwYJKoZIhvcNAQkVMRYEFARRpeJ5GgokFNh0aJAuxUMTyOfnMEkGCSqGSIb3DQEJFDE8HjoAVABTAFQALQA4ADgANgA0ADMAMQAxADQANQAtADMAOQA5ADkAOQA5ADkAOQA5ADkAMAAwADAAMAAzMC0wITAJBgUrDgMCGgUABBQai1bJRkp/NJOoerr97QXfDECAngQIYl/ZZrwYFFw=",
                            "password": "abcd1234"
                        },
                        "scope": {
                            "category": "SA_INV",
                            "productId": "sa_UBLInvoice__1.0",
                            "orgId": "YOUR-ORG-ID",
                            "taxId": "YOUR-TAXID",
                            "branch": "YOUR-BRANCH-NAME"
                        },
                        "auditData": {
                            "createdAt": 1673268162,
                            "createdBy": "user@company.com",
                            "isDeleted": false,
                            "version": 1
                        }
                    }
                ]
            }
        },
        {
            "message": "Configurations are created",
            "statusCode": 201,
            "configurationContextResponse": {
                "context": "NumberRangeManagement",
                "configurations": [
                    {
                        "id": "8523f520-...-0a1f19bdb88f",
                        "name": "initial_number",
                        "value": {
                            "items": [
                                {
                                    "fieldName": "icv",
                                    "value": "1"
                                },
                                {
                                    "fieldName": "pih",
                                    "value": "NWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzljMmRiYzIzOWRkNGU5MWI0NjcyOWQ3M2EyN2ZiNTdlOQ=="
                                }
                            ]
                        },
                        "scope": {
                            "category": "SA_INV",
                            "productId": "sa_UBLInvoice__1.0",
                            "orgId": "YOUR-ORG-ID",
                            "taxId": "YOUR-TAXID",
                            "branch": "YOUR-BRANCH-NAME"
                        },
                        "auditData": {
                            "createdAt": 1673268162,
                            "createdBy": "user@company.com",
                            "isDeleted": false,
                            "version": 1
                        }
                    }
                ]
            }
        }
    ]
}

E-invoicing (phase one)

E-invoicing in Saudi Arabia is based on the Default business process. The following diagram provides a detailed overview:

Saudi Arabia outbound flow (phase one)
Note:

This topic only describes the e-invoicing process in Saudi Arabia. If the process of signing invoices for integrity and authenticity purposes is part of the business process, you should also read the guidelines from the Post Audit page. In that case, the signing of invoices happens after step 3 (mapping).

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:

NodeRequiredAttributesValue
StandardBusinessDocumentHeader.Sender.IdentifierYesAuthority="SA"
StandardBusinessDocumentHeader.Receiver.IdentifierYesAuthority="SA"
StandardBusinessDocumentHeader.DocumentIdentification.StandardYesurn:oasis:names:specification:ubl:schema:xsd:Invoice-2
StandardBusinessDocumentHeader.DocumentIdentification.TypeVersionYes2.1
StandardBusinessDocumentHeader.DocumentIdentification.TypeYesInvoice
StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes)Yes

Child node Type: Country

Child node Identifier: SA

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: SenderDocumentId

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

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes)Yes

Child node Type: Mapping.OutputSchema

Child node Identifier : UBLInvoice for XML or SaudiArabia_PDF for PDF

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes)Yes

Child node Type: Mapping.TransformDocument

Child node Identifier: SCI-TO-LEGAL_INVOICE for XML or SCI-TO-PDF for PDF

StandardBusinessDocumentHeader.BusinessScope.Scope.BusinessService.BusinessServiceNameYesMapping
SovosDocument.SovosCanonicalInvoice.InvoiceYesSCI
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.

SBD sample
Below is a sample of the SBD. In addition, there's a full sample of the SBD on the Postman Samples page.
<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="SA"/>
			<sbd:ContactInformation>
				<sbd:Contact/>
				<sbd:EmailAddress/>
				<sbd:FaxNumber/>
				<sbd:TelephoneNumber/>
				<sbd:ContactTypeIdentifier/>
			</sbd:ContactInformation>
		</sbd:Sender>
		<sbd:Receiver>
			<sbd:Identifier Authority="SA"/>
			<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>SenderDocumentId</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>321412</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Country</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>SA</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>UBLInvoice</sbd:Identifier>
			</sbd:Scope>
		 	<sbd:Scope>
                <sbd:Type>BusinessProcess</sbd:Type>
                <sbd:InstanceIdentifier/>
                <sbd:BusinessService>
                    <sbd:BusinessServiceName>Mapping</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:

NameTypeRequiredDescription
datastringYesThe SBD encoded in Base64, as created in step 1.
dataEncodingstringYesEnter "base64".
Request sample
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
{
    "timestamp": 1610532937756,
    "status": 200,
    "success": true,
    "message": "Process Completed",
    "data": {
        "notification": {
            "createdDate": "2020-06-16T00:31:52Z",
            "metadata": {},
            "appPrefix": "TW",
            "notificationId": "MW242873231610532937726",
            "content": "PEF...ZT4="
        }
    }
}

Step 3: Sovos maps the SCI into XML or PDF

Upon receiving the SCI, Sovos maps the file into the structured XML format for Saudi Arabia or PDF and returns it to the supplier. The format depends on your settings in step 1

Step 4: Archiving

Both the supplier and the buyer should compliantly archive Saudi Arabian invoices using Sovos' Compliant Archive. For more information, see the eArchiving documentation page.

Step 5: Supplier sends the PDF or the XML invoice to the buyer

As the final step, the supplier should send the invoice to the buyer through an agreed-upon channel. So, it is up to the supplier to design a solution to accommodate the preferred business processes.
Note:

This process is outside the scope of Sovos.

Issue or report invoice (phase two)

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

Saudi Arabia outbound flow (phase two)
Note:

You can find some important caveats under Market specific considerations.

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:

NodeRequiredAttributesValue
StandardBusinessDocumentHeader.Sender.IdentifierYesAuthority="SA"Supplier's TIN
StandardBusinessDocumentHeader.Receiver.IdentifierYesAuthority="SA"
StandardBusinessDocumentHeader.DocumentIdentification.StandardYesurn:oasis:names:specification:ubl:schema:xsd:Invoice-2
StandardBusinessDocumentHeader.DocumentIdentification.TypeVersionYes2.1
StandardBusinessDocumentHeader.DocumentIdentification.TypeYesInvoice
StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes)Yes

Child node Type: Country

Child node Identifier: SA

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 : UBLInvoice

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)YesChild node Type: SubSchema
StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes)Yes

Child node Type: Branch

Child node Identifier: The supplier's branch name defined during onboarding. It is used for identifying a unit in Saudi Arabia.

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes)No

Child node Type: BusinessCategory

Child node Identifier: B2B or B2C

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes)No

Child node Type : Version

Child node Identifier: 1.0

StandardBusinessDocumentHeader.BusinessScope.Scope.BusinessService.BusinessServiceNameYesDefault
SovosDocument.SovosCanonicalInvoice.InvoiceYesSCI

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:

NodeRequiredValue
StandardBusinessDocumentHeader.DocumentIdentification.TypeVersionYes1.2
StandardBusinessDocumentHeader.DocumentIdentification.TypeYesUBLInvoice
StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes)Yes

Child node Type: Mapping.TransformDocument

Child node Identifier: LEGAL-TO-SCI_INVOICE

SovosDocument.SovosLegalDocument.Base64DocumentYesA 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:

    </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>

Supported document types for the Local Format (XML) document:

  • 388 - Tax invoice

  • 386 - Prepayment invoice

  • 383 - Debit note

  • 381 - Credit note

You can add additional information for each document type. Inform the "name" attribute in the "NNPNESB" format, where:

NN
  • "01" for a tax invoice

  • "02" for a simplified tax invoice

P
Third-party invoice transaction - "0" for false, "1" for true
N
Nominal invoice transaction - "0" for false, "1" for true
E
Exports invoice transaction - "0" for false, "1" for true
S
Summary invoice transaction - "0" for false, "1" for true
B
Self-billed invoice transaction - "0" for false, "1" for true

Example: <cbc:InvoiceTypeCode name="0100000">388</cbc:InvoiceTypeCode>

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.

SBD sample
Below is a sample of the SBD. In addition, there's a full sample of the SBD on the Postman Samples page.
<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="SA">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="SA"/>
			<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>1.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>SA</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>UBLInvoice</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:Scope>
				<sbd:Type>BusinessCategory</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>B2B</sbd:Identifier>
			</sbd:Scope>
            <sbd:Scope>
				<sbd:Type>Branch</sbd:Type>
				<sbd:InstanceIdentifier/>
				<sbd:Identifier>Supplier's Branch Name</sbd:Identifier>
			</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:

NameTypeRequiredDescription
datastringYesThe SBD encoded in Base64, as created in step 1.
dataEncodingstringYesEnter "base64".
Note:

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

Request sample
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
{
    "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, we detect them instead of waiting for the tax authority's response.

Step 5: Sovos signs the XML

Sovos signs the XML.

Step 6: Sovos manages the number range

Sovos ensures that the invoices are processed in order for each respective branch/unit, so each invoice gets assigned a number that is next in line, and additionally the hash of the previous invoice (creating a hash chain). Therefore, each invoice gets assigned an ICV (Invoice Counter Value), a PIH (Previous Invoice Hash) and a hash of the current invoice.

Step 7: Sovos transmits the XML

Sovos transmits the signed and numbered XML file to the tax authority.

Step 8: Tax authority processes the XML

The tax authority performs a schema validation and several business validations. An approval or rejection response message is then generated along with an error message, where applicable. The tax authority can also approve documents with warnings, which are included in the approval message.

If the document is a B2B or a B2G document, the tax authority signs it, overwriting the supplier's signature in B2B invoices. B2C invoices retain the supplier's signature.

Step 9: Tax authority sends the response to Sovos

The tax authority sends a response to Sovos for the transmitted document.

Step 10: Supplier retrieves the application responses

Attachments configuration
Sovos highly recommends configuring your application response attachments as download links instead of base64-encoded data to avoid potential size limitations when retrieving responses. The default option is "download links".
Note:

When you use "download links", the response contains a URL to download the file. When you use "binary data", the file is embedded in the base64-encoded response. This configuration is available through the Professional Services team.

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 they're available during the process.

Note:

See this topic for examples of application responses in Saudi Arabia.

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. In addition to acceptance and rejections, the tax authority sometimes accepts invoices with warnings. In that case, the SCIResponseCode has the value "CA" and the warning messages are shown in SCIGovtStatus.

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.
Note:

To configure notifications for your company or update your current configuration, contact the Professional Services team.

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.

#SCICloudStatusCode SCIResponseCode Sample
1 209AP
  <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:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">XSD_ZATCA_VALID</cbc:StatusReasonCode>
        <cbc:StatusReason>Complied with UBL 2.1 standards in line with ZATCA specifications</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Workflow Successfully Completed
2209CA
  <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">209-Completed successfully</cbc:StatusReasonCode>
        <cbc:StatusReason>Workflow Successfully Completed</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">XSD_ZATCA_VALID</cbc:StatusReasonCode>
        <cbc:StatusReason>Complied with UBL 2.1 standards in line with ZATCA specifications</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">invoiceTimeStamp_QRCODE_INVALID</cbc:StatusReasonCode>
        <cbc:StatusReason>Time on QR Code does not match with Invoice Issue Time (KSA-25). If ZATCA's SDK was used to generate QR Code, kindly use the latest version of SDK</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">invalid-signing-certificate</cbc:StatusReasonCode>
        <cbc:StatusReason>X509Certificate (CCSID / PCSID) used for signing is not valid certificate (CCSID / PCSID) for this VAT Registration Number.</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Workflow Successfully Completed
3209RE
  <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="SCIInternalValidationStatusCode">401</cbc:StatusReasonCode>
        <cbc:StatusReason>The 'urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2:PayableAmount' element is invalid - The value '' is invalid according to its datatype 'urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2:PayableAmountType' - The string '' is not a valid Decimal value.</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.

#SCICloudStatusCodeSCIResponseCode Sample
1100IP
	<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
2101IP
	<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">101-Mapped successfully</cbc:StatusReasonCode>
				<cbc:StatusReason>Document mapped successfully</cbc:StatusReason>
			</cac:Status>
		</cac:Response>
Document mapped successfully
3200AP
	<cac:DocumentResponse>
		<cac:Response>
			<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:Status>
				<cbc:StatusReasonCode listID="SCIGovtStatusCode">XSD_ZATCA_VALID</cbc:StatusReasonCode>
				<cbc:StatusReason>Complied with UBL 2.1 standards in line with ZATCA specifications</cbc:StatusReason>
			</cac:Status>
		</cac:Response>
Authorized by the tax authority
4207AB
	<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
5209AP
	<cac:DocumentResponse>
		<cac:Response>
			<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:Status>
				<cbc:StatusReasonCode listID="SCIGovtStatusCode">XSD_ZATCA_VALID</cbc:StatusReasonCode>
				<cbc:StatusReason>Complied with UBL 2.1 standards in line with ZATCA specifications</cbc:StatusReason>
			</cac:Status>
		</cac:Response>
Workflow Successfully Completed
6400RE
  <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"></cbc:StatusReasonCode>
        <cbc:StatusReason>Rejected by the tax authority or the counter party</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-CO-15</cbc:StatusReasonCode>
        <cbc:StatusReason>Invoice total amount with VAT (BT-112) </cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">GENERAL</cbc:StatusReasonCode>
        <cbc:StatusReason>Unable to execute Business Rules validation</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-CUSTOM-VALIDATION-01</cbc:StatusReasonCode>
        <cbc:StatusReason>[BR-CUSTOM-VALIDATION-01]- The Seller VAT registration number or seller group VAT registration number (BT-31) of The invoice must not match the buyer VAT registration number (BT-48).</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-KSA-06</cbc:StatusReasonCode>
        <cbc:StatusReason>The invoice transaction code (KSA-2) must exist and respect the following structure: NNPNESB where NN (positions 1 and 2) </cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-KSA-08</cbc:StatusReasonCode>
        <cbc:StatusReason>The seller identification (BT-29) must exist only once with one of the scheme ID (BT-29-1) (CRN, MOM, MLS, SAG, OTH) and must contain only alphanumeric characters.\- Commercial Registration number with "CRN" as schemeID- Momra license with "MOM" as schemeID- MLSD license with "MLS" as schemeID - Sagia license with "SAG" as schemeID - Other OD with "OTH" as schemeID.</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-KSA-40</cbc:StatusReasonCode>
        <cbc:StatusReason>If it exists in the invoice, the seller VAT registration number (BT-31) must contain 15 digits. The first and the last digits are "3"..</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-KSA-44</cbc:StatusReasonCode>
        <cbc:StatusReason>If it exists in the invoice, and If it is not an export invoice (KSA-2, position 5 is false), the buyer VAT registration number (BT-48) must contain 15 digits. The first digit and the last digit is "3".</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-KSA-DEC-01</cbc:StatusReasonCode>
        <cbc:StatusReason>The allowance percentage values (BT-94, BT-138) must be from 0.00 to 100.00, with maximum six decimals. Only numerals are accepted, the percentage symbol (%) is not allowed.</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-KSA-EN16931-11</cbc:StatusReasonCode>
        <cbc:StatusReason>Invoice line net amount (BT-131) must equal (Invoiced quantity (BT-129) * (Item net price (BT-146) / item price base quantity (BT-149))-))- Sum of invoice line allowance amount (BT-136)</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-KSA-EN16931-06</cbc:StatusReasonCode>
        <cbc:StatusReason>Charge on price level (BG-29) is NOT allowed. Only value 'false' allowed.</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-KSA-EN16931-05</cbc:StatusReasonCode>
        <cbc:StatusReason>Allowance percentage (BT-94, BT-138) must be provided when the allowance base amount (BT-93, BT-137) is provided.</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-KSA-EN16931-07</cbc:StatusReasonCode>
        <cbc:StatusReason>Item net price (BT-146) must equal (Gross price (BT-148) - Allowance amount (BT-147)) when gross price is provided.</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">certificate-permissions</cbc:StatusReasonCode>
        <cbc:StatusReason>User only allowed to use the vat number that exists in the authentication certificate</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
Rejected by the tax authority or the counterparty
7401RE
	<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 element 'Invoice' in namespace 'urn:oasis:names:specification:ubl:schema:xsd:Invoice-2' has incomplete content. List of possible elements expected: 'InvoiceLine' in namespace 'urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2'.</cbc:StatusReason>
			</cac:Status>
		</cac:Response>
Error processing document
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.

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

  • GET /notifications/SA

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

GET /notifications/SA
The supplier can send a GET request to the /notifications/SA endpoint to retrieve application responses that match the configured search criteria. To make this request, set the following query parameters:
NameTypeRequiredDefaultDescription
taxIdstringNo

Include only notifications related to the specified taxId. This value relates to the CompanyCode set 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.

pageintegerNo1To specify the page to be returned, enter a value between 1 and 10.
perPageintegerNo10

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

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

sourceSystemIdstringYesInclude only notifications related to documents that originate from the given source system. This value is related to the SenderSystemId in the SBDH.
includeAcknowledgedbooleanNofalseEnter "true" to specify whether previously acknowledged notifications, within 24 hours of their acknowledgment, must be included in the result.
processTypestringNoEnter "0" to only include notifications related to outbound documents.
Request sample
curl --location --request GET 'https://api-test.sovos.com/v1/notifications/SA?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
{
    "timestamp": 1633685509314,
    "status": 200,
    "success": true,
    "message": "Notifications Listed",
    "data": {
        "pageState": {
            "page": 1,
            "perPage": 50,
            "totalEntries": 1
        },
        "notifications": [
            {
                "createdDate": 1633681296,
                "metadata": {
                    "productId": "sa_UBLInvoice__1.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/SA/{documentId}/notifications
The supplier can send a GET request to the /documents/SA/{documentId}/notifications endpoint to retrieve application responses related to a single document. To make this request, set the following path parameter:
NameTypeRequiredDescription
documentIdstringYesThe ID of the document returned in step 2
Request sample
curl --location --request GET 'https://api-test.sovos.com/v1/documents/SA/{documentId}/notifications \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE'
Response sample
{
    "timestamp": 1633685509314,
    "status": 200,
    "success": true,
    "message": "Notifications Listed",
    "data": {
        "pageState": {
            "page": 1,
            "perPage": 50,
            "totalEntries": 1
        },
        "notifications": [
            {
                "createdDate": 1633681296,
                "metadata": {
                    "productId": "sa_UBLInvoice__1.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/SA endpoint.

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

NameTypeRequiredDescription
statusstringYesEnter "read".
notificationIdstringYesThe ID of the notification that must be marked as acknowledged.
Note: Multiple notificationId values can be acknowledged in one Indirect Tax API call by including them in a single request.
Request sample
curl --location --request PUT 'https://api-test.sovos.com/v1/notifications/SA' \
--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
{
    "timestamp": 1601673284,
    "status": 200,
    "success": true,
    "message": "Notifications acknowledged successfully."
}

Step 12: Sovos generates the PDF

Sovos generates a PDF that contains the content of the invoice XML in a human-readable format along with the QR code.

Note:

You can also map an invoice to PDF independently using the API by creating another document with PDF-specific values, as explained in the step one ofE-invoicing (phase one).

Step 13: Archiving

For suppliers integrating with the Sovos solution for Saudi Arabia for the first time, we recommend the bundled approach, in which archiving is part of the invoice clearance flow.

Note:

Sovos archives both rejected and accepted invoices to preserve the hash chain.

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 14: Supplier sends the invoice to the buyer

The supplier must design a solution that accommodates the preferred business processes for delivering the invoice to the buyer because this process is outside the scope of Sovos.

Application responses in Saudi Arabia

When polling for notifications, part of the overall response is the application response. Application responses are returned as Base64-encoded strings in the content field of the response:

{
    "status": 200,
    "message": "Notifications Listed",
    "success": true,
    "timestamp": 0,
    "data": {
        "pageState": {
            "page": 1,
            "perPage": 20,
            "totalEntries": 1,
            "totalPages": 1
        },
        "notifications": [
            {
                "notificationId": "...",
                "correlationId": "...",
                "appPrefix": "...",
                "metadata": {
                    "productId": "...",
                    "transactionId": "...",
                    "documentId": "...",
                    "erpDocumentId": "...",
                    "erpSystemId": "...",
                    "processType": "...",
                    "taxId": "...",
                    "sciCloudStatusCode": "...",
                    "sciResponseCode": "...",
                    "sciStatusAction": "..."
                },
                "content": "PD...2U+",
                "createdDate": ...
            }
        ]
    }
}
Note:

For more details about the application response structure, see the About application responses topic.

Once these responses are decoded, you can examine the actual contents.

Depending on the processing status of the document, the application responses hold information about one of the following states: processing, accepted, or rejected. This is all part of the document (invoice) "workflow". When sending a document for processing, a "workflow" is being started. When finished, no matter if it's successful or not, it ends with a "done" notification.

This process can be seen on the following diagram:

Document submission process

Each stage is characterized with certain response parameters and their values:

  • Initial processing has sciResponseCode with a value of IP, and sciCloudStatusCode with values in the 1xx range such as 100, 101, and 105.

  • If accepted, the sciResponseCode value will be "AP", sciCloudStatusCode will have a value of 200, and sciGovtStatusCode will be present with a value of "XSD_ZATCA_VALID".

  • If rejected, the sciResponseCode value will be "RE", sciCloudStatusCode will have an error value (usually 400), and sciGovtStatusCode will be present with the value of the rule ID not being satisfied (ex: BR-06).
    Note:

    For a reference to the error explanations that relate to the business rules, see ZATCA's documentation under the electronic invoice XML implementation standard.

  • When the workflow is done, no matter if successful or not, there will be a notification with the sciCloudStatusCode value of 209.

These statuses are all configurable, as well as the associated attachments, as different integrators have different needs.

Processing example

<?xml version="1.0" encoding="utf-8"?>
<ApplicationResponse xmlns="urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:ad="http://www.sovos.com/namespaces/additionalData">
  <cbc:UBLVersionID>2.1</cbc:UBLVersionID>
  <cbc:CustomizationID>urn:sovos:names:specification:sci:schema:xsd:Transaction-3</cbc:CustomizationID>
  <cbc:ProfileID>urn:sovos:names:specification:sci:schema:xsd:Transaction-3</cbc:ProfileID>
  <cbc:ID>6385272d-xxx</cbc:ID>
  <cbc:IssueDate>2022-12-13</cbc:IssueDate>
  <cbc:IssueTime>12:51:00</cbc:IssueTime>
  <cac:SenderParty>
    <cac:PartyIdentification>
      <cbc:ID>bbfebff7-xxxx</cbc:ID>
    </cac:PartyIdentification>
    <cac:PartyName>
      <cbc:Name>Name</cbc:Name>
    </cac:PartyName>
    <cac:Contact>
      <cbc:Name>Contact Name</cbc:Name>
      <cbc:Telephone>+55...</cbc:Telephone>
      <cbc:ElectronicMail>user@company.com</cbc:ElectronicMail>
    </cac:Contact>
  </cac:SenderParty>
  <cac:ReceiverParty>
    <cac:PartyIdentification>
      <cbc:ID></cbc:ID>
    </cac:PartyIdentification>
    <cac:PartyName>
      <cbc:Name></cbc:Name>
    </cac:PartyName>
    <cac:Contact>
      <cbc:Name></cbc:Name>
      <cbc:Telephone></cbc:Telephone>
      <cbc:ElectronicMail></cbc:ElectronicMail>
    </cac:Contact>
  </cac:ReceiverParty>
  <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"></cbc:StatusReasonCode>
        <cbc:StatusReason>Document received successfully</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
    <cac:IssuerParty>
      <cac:PartyIdentification>
        <cbc:ID>Tax-Id</cbc:ID>
      </cac:PartyIdentification>
      <cac:PartyName>
        <cbc:Name>Name</cbc:Name>
      </cac:PartyName>
      <cac:Contact>
        <cbc:Name></cbc:Name>
        <cbc:Telephone></cbc:Telephone>
        <cbc:ElectronicMail></cbc:ElectronicMail>
      </cac:Contact>
    </cac:IssuerParty>
    <cac:RecipientParty>
      <cac:PartyIdentification>
        <cbc:ID></cbc:ID>
      </cac:PartyIdentification>
      <cac:PartyName>
        <cbc:Name></cbc:Name>
      </cac:PartyName>
      <cac:Contact>
        <cbc:Name></cbc:Name>
        <cbc:Telephone></cbc:Telephone>
        <cbc:ElectronicMail></cbc:ElectronicMail>
      </cac:Contact>
    </cac:RecipientParty>
  </cac:DocumentResponse>
</ApplicationResponse>

Accepted example

<?xml version="1.0" encoding="utf-8"?>
<ApplicationResponse xmlns="urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:ad="http://www.sovos.com/namespaces/additionalData">
  <ext:UBLExtensions>
    <ext:UBLExtension>
      <ext:ExtensionContent>
        <ad:AdditionalData>
          <ad:HeaderFields>
            <ad:Field name="UUID">3cf5ee18-xxxxx</ad:Field>
            <ad:Field name="InvoiceHash">rMPE...8=</ad:Field>
            <ad:Field name="Branch">branch_1</ad:Field>
            <ad:Field name="Pih">PIH</ad:Field>
            <ad:Field name="Icv">ICV</ad:Field>
          </ad:HeaderFields>
        </ad:AdditionalData>
      </ext:ExtensionContent>
    </ext:UBLExtension>
  </ext:UBLExtensions>
  <cbc:UBLVersionID>2.1</cbc:UBLVersionID>
  <cbc:CustomizationID>urn:sovos:names:specification:sci:schema:xsd:Transaction-3</cbc:CustomizationID>
  <cbc:ProfileID>urn:sovos:names:specification:sci:schema:xsd:Transaction-3</cbc:ProfileID>
  <cbc:ID>f15c184b-xxxxx</cbc:ID>
  <cbc:IssueDate>2022-12-27</cbc:IssueDate>
  <cbc:IssueTime>15:57:06</cbc:IssueTime>
  <cac:SenderParty>
    <cac:PartyIdentification>
      <cbc:ID>bbfebff7-xxxxx</cbc:ID>
    </cac:PartyIdentification>
    <cac:PartyName>
      <cbc:Name>Name</cbc:Name>
    </cac:PartyName>
    <cac:Contact>
      <cbc:Name>Contact Name</cbc:Name>
      <cbc:Telephone>+55...</cbc:Telephone>
      <cbc:ElectronicMail>user@company.com</cbc:ElectronicMail>
    </cac:Contact>
  </cac:SenderParty>
  <cac:ReceiverParty />
  <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"></cbc:StatusReasonCode>
        <cbc:StatusReason>Authorized by the tax authority</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">XSD_ZATCA_VALID</cbc:StatusReasonCode>
        <cbc:StatusReason>Complied with UBL 2.1 standards in line with ZATCA specifications</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
    <cac:DocumentReference>
      <cbc:ID>I8hEQP-qMrveCQ</cbc:ID>
      <cbc:DocumentTypeCode>LegalCleared</cbc:DocumentTypeCode>
      <cac:Attachment>
        <cbc:EmbeddedDocumentBinaryObject mimeCode="application/xml">PD9...Pg==</cbc:EmbeddedDocumentBinaryObject>
      </cac:Attachment>
    </cac:DocumentReference>
    <cac:DocumentReference>
      <cbc:ID>I8hEQP...ten9OQKb</cbc:ID>
      <cbc:DocumentTypeCode>LegalSigned</cbc:DocumentTypeCode>
      <cac:Attachment>
        <cbc:EmbeddedDocumentBinaryObject mimeCode="application/xml">PEl...Y2U+</cbc:EmbeddedDocumentBinaryObject>
      </cac:Attachment>
    </cac:DocumentReference>
    <cac:IssuerParty />
    <cac:RecipientParty />
  </cac:DocumentResponse>
</ApplicationResponse>

Rejected example

<?xml version="1.0" encoding="utf-8"?>
<ApplicationResponse xmlns="urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:ad="http://www.sovos.com/namespaces/additionalData">
  <cbc:UBLVersionID>2.1</cbc:UBLVersionID>
  <cbc:CustomizationID>urn:sovos:names:specification:sci:schema:xsd:Transaction-3</cbc:CustomizationID>
  <cbc:ProfileID>urn:sovos:names:specification:sci:schema:xsd:Transaction-3</cbc:ProfileID>
  <cbc:ID>20b5b401-xxxxx</cbc:ID>
  <cbc:IssueDate>2022-12-26</cbc:IssueDate>
  <cbc:IssueTime>23:21:10</cbc:IssueTime>
  <cac:SenderParty>
    <cac:PartyIdentification>
      <cbc:ID>bbfebff7-xxxxx</cbc:ID>
    </cac:PartyIdentification>
    <cac:PartyName>
      <cbc:Name>Name</cbc:Name>
    </cac:PartyName>
    <cac:Contact>
      <cbc:Name>Contact Name</cbc:Name>
      <cbc:Telephone>+55...</cbc:Telephone>
      <cbc:ElectronicMail>user@company.com</cbc:ElectronicMail>
    </cac:Contact>
  </cac:SenderParty>
  <cac:ReceiverParty>
    <cac:PartyIdentification>
      <cbc:ID></cbc:ID>
    </cac:PartyIdentification>
    <cac:PartyName>
      <cbc:Name></cbc:Name>
    </cac:PartyName>
    <cac:Contact>
      <cbc:Name></cbc:Name>
      <cbc:Telephone></cbc:Telephone>
      <cbc:ElectronicMail></cbc:ElectronicMail>
    </cac:Contact>
  </cac:ReceiverParty>
  <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"></cbc:StatusReasonCode>
        <cbc:StatusReason>Rejected by the tax authority or the counter party</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-CO-15</cbc:StatusReasonCode>
        <cbc:StatusReason>Invoice total amount with VAT (BT-112) </cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-CO-14</cbc:StatusReasonCode>
        <cbc:StatusReason>Invoice total VAT amount (BT-110) </cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-CO-10</cbc:StatusReasonCode>
        <cbc:StatusReason>Sum of Invoice line net amount (BT-106) </cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-CO-11</cbc:StatusReasonCode>
        <cbc:StatusReason>Sum of allowances on document level (BT-107) = S Document level allowance amount (BT-92)</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-CO-13</cbc:StatusReasonCode>
        <cbc:StatusReason>[BR-CO-13]-Invoice total amount without VAT (BT-109) = S Invoice line net amount (BT-131) - Sum of allowances on document level (BT-107) + Sum of charges on document level (BT-108).</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-CO-16</cbc:StatusReasonCode>
        <cbc:StatusReason>Amount due for payment (BT-115) </cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-CUSTOM-VALIDATION-01</cbc:StatusReasonCode>
        <cbc:StatusReason>[BR-CUSTOM-VALIDATION-01]- The Seller VAT registration number or seller group VAT registration number (BT-31) of The invoice must not match the buyer VAT registration number (BT-48).</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-KSA-06</cbc:StatusReasonCode>
        <cbc:StatusReason>The invoice transaction code (KSA-2) must exist and respect the following structure: NNPNESB where NN (positions 1 and 2) </cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-KSA-37</cbc:StatusReasonCode>
        <cbc:StatusReason>The seller address building number must contain 4 digits.</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-KSA-08</cbc:StatusReasonCode>
        <cbc:StatusReason>The seller identification (BT-29) must exist only once with one of the scheme ID (BT-29-1) (CRN, MOM, MLS, SAG, OTH) and must contain only alphanumeric characters.\- Commercial Registration number with "CRN" as schemeID- Momra license with "MOM" as schemeID- MLSD license with "MLS" as schemeID - Sagia license with "SAG" as schemeID - Other OD with "OTH" as schemeID.</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-KSA-64</cbc:StatusReasonCode>
        <cbc:StatusReason>Seller Address Additional number (KSA-23) must be 4 digits.</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-KSA-40</cbc:StatusReasonCode>
        <cbc:StatusReason>If it exists in the invoice, the seller VAT registration number (BT-31) must contain 15 digits. The first and the last digits are "3"..</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-KSA-65</cbc:StatusReasonCode>
        <cbc:StatusReason>Buyer Address Additional number (KSA-19) must be 4 digits if it exists.</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-KSA-44</cbc:StatusReasonCode>
        <cbc:StatusReason>If it exists in the invoice, and If it is not an export invoice (KSA-2, position 5 is false), the buyer VAT registration number (BT-48) must contain 15 digits. The first digit and the last digit is "3".</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-KSA-DEC-01</cbc:StatusReasonCode>
        <cbc:StatusReason>The allowance percentage values (BT-94, BT-138) must be from 0.00 to 100.00, with maximum six decimals. Only numerals are accepted, the percentage symbol (%) is not allowed.</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-KSA-EN16931-09</cbc:StatusReasonCode>
        <cbc:StatusReason>Only one tax total (BG-22) without tax subtotals must be provided when tax currency code is provided.</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-KSA-EN16931-03</cbc:StatusReasonCode>
        <cbc:StatusReason>Allowance amount (BT-92, BT-136) must equal base amount (BT-93, BT-137) * percentage (BT-94, BT-138) / 100 if base amount and percentage exists.And rounded to 2 decimal places.</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-KSA-EN16931-05</cbc:StatusReasonCode>
        <cbc:StatusReason>Allowance percentage (BT-94, BT-138) must be provided when the allowance base amount (BT-93, BT-137) is provided.</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">BR-KSA-EN16931-07</cbc:StatusReasonCode>
        <cbc:StatusReason>Item net price (BT-146) must equal (Gross price (BT-148) - Allowance amount (BT-147)) when gross price is provided.</cbc:StatusReason>
      </cac:Status>
      <cac:Status>
        <cbc:StatusReasonCode listID="SCIGovtStatusCode">certificate-permissions</cbc:StatusReasonCode>
        <cbc:StatusReason>User only allowed to use the vat number that exists in the authentication certificate</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
    <cac:IssuerParty>
      <cac:PartyIdentification>
        <cbc:ID></cbc:ID>
      </cac:PartyIdentification>
      <cac:PartyName>
        <cbc:Name></cbc:Name>
      </cac:PartyName>
      <cac:Contact>
        <cbc:Name></cbc:Name>
        <cbc:Telephone></cbc:Telephone>
        <cbc:ElectronicMail></cbc:ElectronicMail>
      </cac:Contact>
    </cac:IssuerParty>
    <cac:RecipientParty>
      <cac:PartyIdentification>
        <cbc:ID></cbc:ID>
      </cac:PartyIdentification>
      <cac:PartyName>
        <cbc:Name></cbc:Name>
      </cac:PartyName>
      <cac:Contact>
        <cbc:Name></cbc:Name>
        <cbc:Telephone></cbc:Telephone>
        <cbc:ElectronicMail></cbc:ElectronicMail>
      </cac:Contact>
    </cac:RecipientParty>
  </cac:DocumentResponse>
</ApplicationResponse>

SCI Samples

The samples provided below are meant to be guidelines for integration with the Indirect Tax API in Saudi Arabia 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 standard invoice

Standard tax invoice containing one line item with a standard VAT rate (S).

<?xml version="1.0" encoding="utf-8"?>
<StandardBusinessDocument xmlns="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader" xmlns:svs="http://www.sovos.com/namespaces/sovosDocument" xmlns:sci="http://www.sovos.com/namespaces/sovosCanonicalInvoice" xmlns:ad="http://www.sovos.com/namespaces/additionalData" xmlns:sov="http://www.sovos.com/namespaces/sovosExtensions" xmlns:enc="http://www.sovos.com/namespaces/base64Document" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader ../../../Schemas/Sovos%20Document_v2/Standard%20Business%20Document/SBD.xsd">
	<StandardBusinessDocumentHeader>
		<HeaderVersion>1.0</HeaderVersion>
		<Sender>
			<Identifier Authority="SA">300075588700003</Identifier>
			<ContactInformation>
				<Contact>SELLER SA</Contact>
			</ContactInformation>
		</Sender>
		<Receiver>
			<Identifier Authority="SA">311111111110013</Identifier>
			<ContactInformation>
				<Contact>BUYER SA</Contact>
			</ContactInformation>
		</Receiver>
		<DocumentIdentification>
			<Standard>urn:oasis:names:specification:ubl:schema:xsd:Invoice-2</Standard>
			<TypeVersion>2.1</TypeVersion>
			<InstanceIdentifier>SVS20230000070059</InstanceIdentifier>
			<Type>Invoice</Type>
			<MultipleType>false</MultipleType>
			<CreationDateAndTime>2023-01-27T14:55:29Z</CreationDateAndTime>
		</DocumentIdentification>
		<BusinessScope>
			<Scope>
				<Type>Country</Type>
				<InstanceIdentifier/>
				<Identifier>SA</Identifier>
			</Scope>
			<Scope>
				<Type>Mapping.TransformDocument</Type>
				<InstanceIdentifier/>
				<Identifier>SCI-TO-LEGAL_INVOICE</Identifier>
			</Scope>
			<Scope>
				<Type>Mapping.OutputSchema</Type>
				<InstanceIdentifier/>
				<Identifier>UBLInvoice</Identifier>
			</Scope>
			<Scope>
				<Type>CompanyCode</Type>
				<InstanceIdentifier/>
				<Identifier>300075588700003</Identifier>
			</Scope>
			<Scope>
				<Type>SenderDocumentId</Type>
				<InstanceIdentifier/>
				<Identifier>S_ARABIA|20230127145529|</Identifier>
			</Scope>
			<Scope>
				<Type>SenderSystemId</Type>
				<InstanceIdentifier/>
				<Identifier>ERPSystem</Identifier>
			</Scope>
			<Scope>
				<Type>ProcessType</Type>
				<InstanceIdentifier/>
				<Identifier>Outbound</Identifier>
			</Scope>
			<Scope>
				<Type>BusinessProcess</Type>
				<InstanceIdentifier/>
				<BusinessService>
					<BusinessServiceName>Default</BusinessServiceName>
				</BusinessService>
			</Scope>
			<Scope>
				<Type>BusinessCategory</Type>
				<InstanceIdentifier/>
				<Identifier>B2B</Identifier>
			</Scope>
			<Scope>
				<Type>MetaSchema</Type>
				<InstanceIdentifier/>
			</Scope>
			<Scope>
				<Type>Version</Type>
				<InstanceIdentifier/>
				<Identifier>1.0</Identifier>
			</Scope>
			<Scope>
				<Type>Branch</Type>
				<InstanceIdentifier/>
				<Identifier>branch_1</Identifier>
			</Scope>
		</BusinessScope>
	</StandardBusinessDocumentHeader>
	<svs:SovosDocument>
		<sci:SovosCanonicalInvoice>
			<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2">
				<cbc:ProfileID>reporting:1.0</cbc:ProfileID>
				<cbc:ID>SME30350360754023</cbc:ID>
				<cbc:UUID>8d487816-70b8-4ade-a618-9d620b73814a</cbc:UUID>
				<cbc:IssueDate>2022-09-07</cbc:IssueDate>
				<cbc:IssueTime>12:21:28</cbc:IssueTime>
				<cbc:InvoiceTypeCode name="0100000">388</cbc:InvoiceTypeCode>
				<cbc:DocumentCurrencyCode>SAR</cbc:DocumentCurrencyCode>
				<cbc:TaxCurrencyCode>SAR</cbc:TaxCurrencyCode>
				<!-- <cac:AdditionalDocumentReference> -->
					<!-- <cbc:ID>ICV</cbc:ID> -->
					<!-- <cbc:UUID>23</cbc:UUID> -->
				<!-- </cac:AdditionalDocumentReference> -->
				<!-- <cac:AdditionalDocumentReference> -->
					<!-- <cbc:ID>PIH</cbc:ID> -->
					<!-- <cac:Attachment> -->
						<!-- <cbc:EmbeddedDocumentBinaryObject mimeCode="text/plain">NWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzljMmRiYzIzOWRkNGU5MWI0NjcyOWQ3M2EyN2ZiNTdlOQ==</cbc:EmbeddedDocumentBinaryObject> -->
					<!-- </cac:Attachment> -->
				<!-- </cac:AdditionalDocumentReference> -->
				<!-- <cac:AdditionalDocumentReference> -->
					<!-- <cbc:ID>QR</cbc:ID> -->
					<!-- <cac:Attachment> -->
						<!-- <cbc:EmbeddedDocumentBinaryObject mimeCode="text/plain">ARNBY21lIFdpZGdldOKAmXMgTFREAg8zMTExMTExMTExMDExMTMDFDIwMjItMDktMDdUMTI6MjE6MjhaBAQ0LjYwBQMwLjYGLFZkNUtNYXQyWkp0WnFyRHlvZ2hibFNsdGVvdUlTL3IzL09STnc3T1ovMnM9B2BNRVFDSURHQlJIaVBvNnloWElROWRmNnBNRWt1ZmNHbm9xWWFTK084Sm4weGFnQmlBaUJ0b3hwYnJ3ZkVKSGhVR1FIVHF6RDFPUlg1K1ovdHVtTTB3TGZaNGN1WVJnPT0IWDBWMBAGByqGSM49AgEGBSuBBAAKA0IABGGDDKDmhWAITDv7LXqLX2cmr6+qddUkpcLCvWs5rC2O29W/hS4ajAK4Qdnahym6MaijX75Cg3j4aao7ouYXJ9E=</cbc:EmbeddedDocumentBinaryObject> -->
					<!-- </cac:Attachment> -->
				<!-- </cac:AdditionalDocumentReference> -->
				<cac:Signature>
					<cbc:ID>urn:oasis:names:specification:ubl:signature:Invoice</cbc:ID>
					<cbc:SignatureMethod>urn:oasis:names:specification:ubl:dsig:enveloped:xades</cbc:SignatureMethod>
				</cac:Signature>
				<cac:AccountingSupplierParty>
					<cac:Party>
						<cac:PartyIdentification>
							<cbc:ID schemeID="CRN">300075588700003</cbc:ID>
						</cac:PartyIdentification>
						<cac:PostalAddress>
							<cbc:StreetName>الامير سلطان</cbc:StreetName>
							<cbc:BuildingNumber>2322</cbc:BuildingNumber>
							<cbc:PlotIdentification>2223</cbc:PlotIdentification>
							<cbc:CitySubdivisionName>الرياض</cbc:CitySubdivisionName>
							<cbc:CityName>الرياض | Riyadh</cbc:CityName>
							<cbc:PostalZone>23333</cbc:PostalZone>
							<cac:Country>
								<cbc:IdentificationCode>SA</cbc:IdentificationCode>
							</cac:Country>
						</cac:PostalAddress>
						<cac:PartyTaxScheme>
							<cbc:CompanyID>300075588700003</cbc:CompanyID>
							<cac:TaxScheme>
								<cbc:ID>VAT</cbc:ID>
							</cac:TaxScheme>
						</cac:PartyTaxScheme>
						<cac:PartyLegalEntity>
							<cbc:RegistrationName>Acme Widget's LTD</cbc:RegistrationName>
						</cac:PartyLegalEntity>
					</cac:Party>
				</cac:AccountingSupplierParty>
				<cac:AccountingCustomerParty>
					<cac:Party>
						<cac:PartyIdentification>
							<cbc:ID schemeID="NAT">311111111111113</cbc:ID>
						</cac:PartyIdentification>
						<cac:PostalAddress>
							<cbc:StreetName>الرياض</cbc:StreetName>
							<cbc:BuildingNumber>1111</cbc:BuildingNumber>
							<cbc:PlotIdentification>2223</cbc:PlotIdentification>
							<cbc:CitySubdivisionName>الرياض</cbc:CitySubdivisionName>
							<cbc:CityName>الدمام | Dammam</cbc:CityName>
							<cbc:PostalZone>12222</cbc:PostalZone>
							<cac:Country>
								<cbc:IdentificationCode>SA</cbc:IdentificationCode>
							</cac:Country>
						</cac:PostalAddress>
						<cac:PartyTaxScheme>
							<cac:TaxScheme>
								<cbc:ID>VAT</cbc:ID>
							</cac:TaxScheme>
						</cac:PartyTaxScheme>
						<cac:PartyLegalEntity>
							<cbc:RegistrationName>Acme Widget's LTD 2</cbc:RegistrationName>
						</cac:PartyLegalEntity>
					</cac:Party>
				</cac:AccountingCustomerParty>
				<cac:Delivery>
					<cbc:ActualDeliveryDate>2022-09-07</cbc:ActualDeliveryDate>
				</cac:Delivery>
				<cac:PaymentMeans>
					<cbc:PaymentMeansCode>10</cbc:PaymentMeansCode>
				</cac:PaymentMeans>
				<cac:PaymentTerms>
					<cbc:Note>05</cbc:Note>
					<cbc:Amount currencyID="SAR">4.60</cbc:Amount>
				</cac:PaymentTerms>
				<cac:AllowanceCharge>
					<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
					<cbc:AllowanceChargeReason>discount</cbc:AllowanceChargeReason>
					<cbc:Amount currencyID="SAR">0.00</cbc:Amount>
					<cac:TaxCategory>
						<cbc:ID>S</cbc:ID>
						<cbc:Percent>15.00</cbc:Percent>
						<cac:TaxScheme>
							<cbc:ID>VAT</cbc:ID>
						</cac:TaxScheme>
					</cac:TaxCategory>
				</cac:AllowanceCharge>
				<cac:TaxTotal>
					<cbc:TaxAmount currencyID="SAR">0.60</cbc:TaxAmount>
				</cac:TaxTotal>
				<cac:TaxTotal>
					<cbc:TaxAmount currencyID="SAR">0.60</cbc:TaxAmount>
					<cac:TaxSubtotal>
						<cbc:TaxableAmount currencyID="SAR">4.00</cbc:TaxableAmount>
						<cbc:TaxAmount currencyID="SAR">0.60</cbc:TaxAmount>
						<cac:TaxCategory>
							<cbc:ID>S</cbc:ID>
							<cbc:Percent>15.00</cbc:Percent>
							<cac:TaxScheme>
								<cbc:ID>VAT</cbc:ID>
							</cac:TaxScheme>
						</cac:TaxCategory>
					</cac:TaxSubtotal>
				</cac:TaxTotal>
				<cac:LegalMonetaryTotal>
					<cbc:LineExtensionAmount currencyID="SAR">4.00</cbc:LineExtensionAmount>
					<cbc:TaxExclusiveAmount currencyID="SAR">4.00</cbc:TaxExclusiveAmount>
					<cbc:AllowanceTotalAmount currencyID="SAR">0.00</cbc:AllowanceTotalAmount>
					<cbc:PrepaidAmount currencyID="SAR">0.00</cbc:PrepaidAmount>
					<cbc:PayableAmount currencyID="SAR">4.60</cbc:PayableAmount>
				</cac:LegalMonetaryTotal>
				<cac:InvoiceLine>
					<cbc:ID>1</cbc:ID>
					<cbc:InvoicedQuantity unitCode="PCE">2</cbc:InvoicedQuantity>
					<cbc:LineExtensionAmount currencyID="SAR">4.00</cbc:LineExtensionAmount>
					<cac:PricingReference>
						<cac:AlternativeConditionPrice>
							<cbc:PriceAmount currencyID="SAR">2.00</cbc:PriceAmount>
							<cbc:PriceTypeCode>02</cbc:PriceTypeCode>
						</cac:AlternativeConditionPrice>
					</cac:PricingReference>
					<cac:TaxTotal>
						<cbc:TaxAmount currencyID="SAR">0.60</cbc:TaxAmount>
						<cbc:RoundingAmount currencyID="SAR">4.60</cbc:RoundingAmount>
					</cac:TaxTotal>
					<cac:Item>
						<cbc:Name>قلم رصاص</cbc:Name>
						<cac:ClassifiedTaxCategory>
							<cbc:ID>S</cbc:ID>
							<cbc:Percent>15.00</cbc:Percent>
							<cac:TaxScheme>
								<cbc:ID>VAT</cbc:ID>
							</cac:TaxScheme>
						</cac:ClassifiedTaxCategory>
					</cac:Item>
					<cac:Price>
						<cbc:PriceAmount currencyID="SAR">0</cbc:PriceAmount>
						<!-- <cac:AllowanceCharge> -->
							<!-- <cbc:ChargeIndicator>false</cbc:ChargeIndicator> -->
							<!-- <cbc:AllowanceChargeReason>discount</cbc:AllowanceChargeReason> -->
							<!-- <cbc:MultiplierFactorNumeric>0</cbc:MultiplierFactorNumeric> -->
							<!-- <cbc:Amount currencyID="SAR">0</cbc:Amount> -->
						<!-- </cac:AllowanceCharge> -->
					</cac:Price>
				</cac:InvoiceLine>
			</Invoice>
		</sci:SovosCanonicalInvoice>
	</svs:SovosDocument>
</StandardBusinessDocument>

SCI Standard Invoice - foreign currency

Standard tax invoice with foreign currency code - USD:

<?xml version="1.0" encoding="utf-8"?>
<sbd:StandardBusinessDocument xmlns="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader" xmlns:svs="http://www.sovos.com/namespaces/sovosDocument" xmlns:sci="http://www.sovos.com/namespaces/sovosCanonicalInvoice" xmlns:ad="http://www.sovos.com/namespaces/additionalData" xmlns:sov="http://www.sovos.com/namespaces/sovosExtensions" xmlns:enc="http://www.sovos.com/namespaces/base64Document" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader ../../../Git/transformation/SCI/Saudi%20Arabia/Tax%20Invoice/Schemas/Sovos%20Document_v2/Standard%20Business%20Document/SBD.xsd" xmlns:sbd="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader">
	<StandardBusinessDocumentHeader>
		<HeaderVersion>1.0</HeaderVersion>
		<Sender>
			<Identifier Authority="SA">300075588700003</Identifier>
			<ContactInformation>
				<Contact>SELLER SA</Contact>
			</ContactInformation>
		</Sender>
		<Receiver>
			<Identifier Authority="SA">311111111110013</Identifier>
			<ContactInformation>
				<Contact>BUYER SA</Contact>
			</ContactInformation>
		</Receiver>
		<DocumentIdentification>
			<Standard>urn:oasis:names:specification:ubl:schema:xsd:Invoice-2</Standard>
			<TypeVersion>2.1</TypeVersion>
			<InstanceIdentifier>SVS2023000000059</InstanceIdentifier>
			<Type>Invoice</Type>
			<MultipleType>false</MultipleType>
			<CreationDateAndTime>2023-01-27T14:55:29Z</CreationDateAndTime>
		</DocumentIdentification>
		<BusinessScope>
			<Scope>
				<Type>Country</Type>
				<InstanceIdentifier/>
				<Identifier>SA</Identifier>
			</Scope>
			<Scope>
				<Type>Mapping.TransformDocument</Type>
				<InstanceIdentifier/>
				<Identifier>SCI-TO-LEGAL_INVOICE</Identifier>
			</Scope>
			<Scope>
				<Type>Mapping.OutputSchema</Type>
				<InstanceIdentifier/>
				<Identifier>UBLInvoice</Identifier>
			</Scope>
			<Scope>
				<Type>CompanyCode</Type>
				<InstanceIdentifier/>
				<Identifier>300075588700003</Identifier>
			</Scope>
			<Scope>
				<Type>SenderDocumentId</Type>
				<InstanceIdentifier/>
				<Identifier>S_ARABIA|20230127145529|</Identifier>
			</Scope>
			<Scope>
				<Type>SenderSystemId</Type>
				<InstanceIdentifier/>
				<Identifier>ERPSystem</Identifier>
			</Scope>
			<Scope>
				<Type>ProcessType</Type>
				<InstanceIdentifier/>
				<Identifier>Outbound</Identifier>
			</Scope>
			<Scope>
				<Type>BusinessProcess</Type>
				<InstanceIdentifier/>
				<BusinessService>
					<BusinessServiceName>Default</BusinessServiceName>
				</BusinessService>
			</Scope>
			<Scope>
				<Type>BusinessCategory</Type>
				<InstanceIdentifier/>
				<Identifier>B2B</Identifier>
			</Scope>
			<Scope>
				<Type>MetaSchema</Type>
				<InstanceIdentifier/>
			</Scope>
			<Scope>
				<Type>Version</Type>
				<InstanceIdentifier/>
				<Identifier>1.0</Identifier>
			</Scope>
			<Scope>
				<Type>Branch</Type>
				<InstanceIdentifier/>
				<Identifier>branch_1</Identifier>
			</Scope>
		</BusinessScope>
	</StandardBusinessDocumentHeader>
	<svs:SovosDocument>
		<sci:SovosCanonicalInvoice>
			<n1:Invoice xmlns="" xmlns:inv="http://www.example.com/" xmlns:n1="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
				<cbc:ProfileID>reporting:1.0</cbc:ProfileID>
				<cbc:ID>SME0263201035334062</cbc:ID>
				<cbc:UUID>6f4d20e0-6bfe-4a80-9389-7dabe6620f12</cbc:UUID>
				<cbc:IssueDate>2022-03-13</cbc:IssueDate>
				<cbc:IssueTime>14:40:40</cbc:IssueTime>
				<cbc:InvoiceTypeCode name="0111010">388</cbc:InvoiceTypeCode>
				<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
				<cbc:TaxCurrencyCode>SAR</cbc:TaxCurrencyCode>
				<cac:AccountingSupplierParty>
					<cac:Party>
						<cac:PartyIdentification>
							<cbc:ID schemeID="CRN">45464</cbc:ID>
						</cac:PartyIdentification>
						<cac:PostalAddress>
							<cbc:StreetName>test</cbc:StreetName>
							<cbc:BuildingNumber>3454</cbc:BuildingNumber>
							<cbc:PlotIdentification>1234</cbc:PlotIdentification>
							<cbc:CitySubdivisionName>test</cbc:CitySubdivisionName>
							<cbc:CityName>Riyadh</cbc:CityName>
							<cbc:PostalZone>12345</cbc:PostalZone>
							<cbc:CountrySubentity>test</cbc:CountrySubentity>
							<cac:Country>
								<cbc:IdentificationCode>SA</cbc:IdentificationCode>
							</cac:Country>
						</cac:PostalAddress>
						<cac:PartyTaxScheme>
							<cbc:CompanyID>300075588700003</cbc:CompanyID>
							<cac:TaxScheme>
								<cbc:ID>VAT</cbc:ID>
							</cac:TaxScheme>
						</cac:PartyTaxScheme>
						<cac:PartyLegalEntity>
							<cbc:RegistrationName>Ahmed Mohamed AL Ahmady</cbc:RegistrationName>
						</cac:PartyLegalEntity>
					</cac:Party>
				</cac:AccountingSupplierParty>
				<cac:AccountingCustomerParty>
					<cac:Party>
						<cac:PartyIdentification>
							<cbc:ID schemeID="NAT">2345</cbc:ID>
						</cac:PartyIdentification>
						<cac:PostalAddress>
							<cbc:StreetName>baaoun</cbc:StreetName>
							<cbc:AdditionalStreetName>sdsd</cbc:AdditionalStreetName>
							<cbc:BuildingNumber>3353</cbc:BuildingNumber>
							<cbc:PlotIdentification>3434</cbc:PlotIdentification>
							<cbc:CitySubdivisionName>fgff</cbc:CitySubdivisionName>
							<cbc:CityName>Dhurma</cbc:CityName>
							<cbc:PostalZone>34534</cbc:PostalZone>
							<cbc:CountrySubentity>ulhk</cbc:CountrySubentity>
							<cac:Country>
								<cbc:IdentificationCode>SA</cbc:IdentificationCode>
							</cac:Country>
						</cac:PostalAddress>
						<cac:PartyTaxScheme>
							<cac:TaxScheme>
								<cbc:ID>VAT</cbc:ID>
							</cac:TaxScheme>
						</cac:PartyTaxScheme>
						<cac:PartyLegalEntity>
							<cbc:RegistrationName>sdsa</cbc:RegistrationName>
						</cac:PartyLegalEntity>
					</cac:Party>
				</cac:AccountingCustomerParty>
				<cac:Delivery>
					<cbc:ActualDeliveryDate>2022-03-13</cbc:ActualDeliveryDate>
					<cbc:LatestDeliveryDate>2022-03-15</cbc:LatestDeliveryDate>
				</cac:Delivery>
				<cac:PaymentMeans>
					<cbc:PaymentMeansCode>10</cbc:PaymentMeansCode>
				</cac:PaymentMeans>
				<cac:PaymentTerms>
					<cbc:Note>05</cbc:Note>
					<cbc:Amount currencyID="USD">1108.90</cbc:Amount> <!-- total amount of the invoice with VAT -->
				</cac:PaymentTerms>
				<cac:AllowanceCharge>
					<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
					<cbc:Amount currencyID="USD">2.00</cbc:Amount>
					<cac:TaxCategory>
						<cbc:ID>S</cbc:ID>
						<cbc:Percent>15.00</cbc:Percent>
						<cac:TaxScheme>
							<cbc:ID>VAT</cbc:ID>
						</cac:TaxScheme>
					</cac:TaxCategory>
				</cac:AllowanceCharge>
				<cac:TaxTotal>
					<cbc:TaxAmount currencyID="USD">144.90</cbc:TaxAmount>
					<cac:TaxSubtotal>
						<cbc:TaxableAmount currencyID="USD">966.00</cbc:TaxableAmount>
						<cbc:TaxAmount currencyID="USD">144.90</cbc:TaxAmount>
						<cac:TaxCategory>
							<cbc:ID>S</cbc:ID>
							<cbc:Percent>15.00</cbc:Percent>
							<cac:TaxScheme>
								<cbc:ID>VAT</cbc:ID>
							</cac:TaxScheme>
						</cac:TaxCategory>
					</cac:TaxSubtotal>
				</cac:TaxTotal>
				<cac:TaxTotal>
					<cbc:TaxAmount currencyID="SAR">543.38</cbc:TaxAmount>
				</cac:TaxTotal>
				<cac:LegalMonetaryTotal>
					<cbc:LineExtensionAmount currencyID="USD">966.00</cbc:LineExtensionAmount>
					<cbc:TaxExclusiveAmount currencyID="USD">964.00</cbc:TaxExclusiveAmount>
					<cbc:AllowanceTotalAmount currencyID="USD">2.00</cbc:AllowanceTotalAmount>
					<cbc:PrepaidAmount currencyID="USD">0.00</cbc:PrepaidAmount>
					<cbc:PayableAmount currencyID="USD">1108.90</cbc:PayableAmount>
				</cac:LegalMonetaryTotal>
				<cac:InvoiceLine>
					<cbc:ID>1</cbc:ID>
					<cbc:InvoicedQuantity unitCode="PCE">44</cbc:InvoicedQuantity>
					<cbc:LineExtensionAmount currencyID="USD">966.00</cbc:LineExtensionAmount>
					<cac:PricingReference>
						<cac:AlternativeConditionPrice>
							<cbc:PriceAmount currencyID="USD">22.001</cbc:PriceAmount> <!-- item net price -->
							<cbc:PriceTypeCode>02</cbc:PriceTypeCode>
						</cac:AlternativeConditionPrice>
					</cac:PricingReference>
					<cac:TaxTotal>
						<cbc:TaxAmount currencyID="USD">144.90</cbc:TaxAmount>
						<cbc:RoundingAmount currencyID="USD">1110.90</cbc:RoundingAmount>
					</cac:TaxTotal>
					<cac:Item>
						<cbc:Name>dsd</cbc:Name>
						<cac:ClassifiedTaxCategory>
							<cbc:ID>S</cbc:ID>
							<cbc:Percent>15.00</cbc:Percent>
							<cac:TaxScheme>
								<cbc:ID>VAT</cbc:ID>
							</cac:TaxScheme>
						</cac:ClassifiedTaxCategory>
					</cac:Item>
					<cac:Price>
						<cbc:PriceAmount currencyID="USD">24.001</cbc:PriceAmount>
					</cac:Price>
				</cac:InvoiceLine>
			</n1:Invoice>
		</sci:SovosCanonicalInvoice>
	</svs:SovosDocument>
</sbd:StandardBusinessDocument>

SCI simplified invoice with an out-of-scope VAT rate

Simplified invoice type, containing one item line with an out-of-scope VAT rate (O):

<?xml version="1.0" encoding="utf-8"?>
<StandardBusinessDocument xmlns="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader" xmlns:svs="http://www.sovos.com/namespaces/sovosDocument" xmlns:sci="http://www.sovos.com/namespaces/sovosCanonicalInvoice" xmlns:ad="http://www.sovos.com/namespaces/additionalData" xmlns:sov="http://www.sovos.com/namespaces/sovosExtensions" xmlns:enc="http://www.sovos.com/namespaces/base64Document" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader ../../../Schemas/Sovos%20Document_v2/Standard%20Business%20Document/SBD.xsd">
	<StandardBusinessDocumentHeader>
		<HeaderVersion>1.0</HeaderVersion>
		<Sender>
			<Identifier Authority="SA">300075588700003</Identifier>
			<ContactInformation>
				<Contact>SELLER SA</Contact>
			</ContactInformation>
		</Sender>
		<Receiver>
			<Identifier Authority="SA">311111111110013</Identifier>
			<ContactInformation>
				<Contact>BUYER SA</Contact>
			</ContactInformation>
		</Receiver>
		<DocumentIdentification>
			<Standard>urn:oasis:names:specification:ubl:schema:xsd:Invoice-2</Standard>
			<TypeVersion>2.1</TypeVersion>
			<InstanceIdentifier>SVS20230000070059</InstanceIdentifier>
			<Type>Invoice</Type>
			<MultipleType>false</MultipleType>
			<CreationDateAndTime>2023-01-27T14:55:29Z</CreationDateAndTime>
		</DocumentIdentification>
		<BusinessScope>
			<Scope>
				<Type>Country</Type>
				<InstanceIdentifier/>
				<Identifier>SA</Identifier>
			</Scope>
			<Scope>
				<Type>Mapping.TransformDocument</Type>
				<InstanceIdentifier/>
				<Identifier>SCI-TO-LEGAL_INVOICE</Identifier>
			</Scope>
			<Scope>
				<Type>Mapping.OutputSchema</Type>
				<InstanceIdentifier/>
				<Identifier>UBLInvoice</Identifier>
			</Scope>
			<Scope>
				<Type>CompanyCode</Type>
				<InstanceIdentifier/>
				<Identifier>300075588700003</Identifier>
			</Scope>
			<Scope>
				<Type>SenderDocumentId</Type>
				<InstanceIdentifier/>
				<Identifier>S_ARABIA|20230127145529|</Identifier>
			</Scope>
			<Scope>
				<Type>SenderSystemId</Type>
				<InstanceIdentifier/>
				<Identifier>ERPSystem</Identifier>
			</Scope>
			<Scope>
				<Type>ProcessType</Type>
				<InstanceIdentifier/>
				<Identifier>Outbound</Identifier>
			</Scope>
			<Scope>
				<Type>BusinessProcess</Type>
				<InstanceIdentifier/>
				<BusinessService>
					<BusinessServiceName>Default</BusinessServiceName>
				</BusinessService>
			</Scope>
			<Scope>
				<Type>BusinessCategory</Type>
				<InstanceIdentifier/>
				<Identifier>B2B</Identifier>
			</Scope>
			<Scope>
				<Type>MetaSchema</Type>
				<InstanceIdentifier/>
			</Scope>
			<Scope>
				<Type>Version</Type>
				<InstanceIdentifier/>
				<Identifier>1.0</Identifier>
			</Scope>
			<Scope>
				<Type>Branch</Type>
				<InstanceIdentifier/>
				<Identifier>branch_1</Identifier>
			</Scope>
		</BusinessScope>
	</StandardBusinessDocumentHeader>
	<svs:SovosDocument>
		<sci:SovosCanonicalInvoice>
			<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2">
				<cbc:ProfileID>reporting:1.0</cbc:ProfileID>
				<cbc:ID>350222814207-6</cbc:ID>
				<cbc:UUID>36813cac-fb89-11ec-b939-0242ac120002</cbc:UUID>
				<cbc:IssueDate>2022-06-02</cbc:IssueDate>
				<cbc:IssueTime>00:00:00</cbc:IssueTime>
				<cbc:InvoiceTypeCode name="0200000">388</cbc:InvoiceTypeCode>
				<cbc:DocumentCurrencyCode>SAR</cbc:DocumentCurrencyCode>
				<cbc:TaxCurrencyCode>SAR</cbc:TaxCurrencyCode>
				<cac:AdditionalDocumentReference>
					<cbc:ID>PIH</cbc:ID>
					<cac:Attachment>
						<cbc:EmbeddedDocumentBinaryObject mimeCode="text/plain">NWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzljMmRiYzIzOWRkNGU5MWI0NjcyOWQ3M2EyN2ZiNTdlOQ==</cbc:EmbeddedDocumentBinaryObject>
					</cac:Attachment>
				</cac:AdditionalDocumentReference>
				<cac:AdditionalDocumentReference>
					<cbc:ID>ICV</cbc:ID>
					<cbc:UUID>2</cbc:UUID>
				</cac:AdditionalDocumentReference>
				<cac:AdditionalDocumentReference>
					<cbc:ID>QR</cbc:ID>
					<cac:Attachment>
						<cbc:EmbeddedDocumentBinaryObject mimeCode="text/plain">ARNBY21lIFdpZGdldOKAmXMgTFREAg8zMTExMTExMTExMDExMTMDFDIwMjItMDYtMDJUMDA6MDA6MDBaBAUxMjAwMAUBMAYsdFJpSmdITEFzdHY2czVmYTRrTHVxbkhSTWw4M3NzOXVlM0d2WTdBS3NORT0HYE1FVUNJUUNIRjBuSjZkQWpwUWJ1bWtwcXNpS2F3MTVzUnVYaVloM2lWd3hJVSt0dFh3SWdLaER0ZTB3QS9PMEVvbndJQllOQlEwczFzY25mSzZvRmR6cElVeVlZdkVFPQhYMFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEYYMMoOaFYAhMO/steotfZyavr6p11SSlwsK9azmsLY7b1b+FLhqMArhB2dqHKboxqKNfvkKDePhpqjui5hcn0QlGMEQCIDoIzTyVtNe5bCIo5lUFZD+xsxTtikCnfRh2rpC4CFhbAiBSRfbsCoUzMQ41mzftWsLJxSO0SwUcQP+oWfhdcLWqlA==</cbc:EmbeddedDocumentBinaryObject>
					</cac:Attachment>
				</cac:AdditionalDocumentReference>
				<cac:Signature>
					<cbc:ID>urn:oasis:names:specification:ubl:signature:Invoice</cbc:ID>
					<cbc:SignatureMethod>urn:oasis:names:specification:ubl:dsig:enveloped:xades</cbc:SignatureMethod>
				</cac:Signature>
				<cac:AccountingSupplierParty>
					<cac:Party>
						<cac:PartyIdentification>
							<cbc:ID schemeID="CRN">300000157210003</cbc:ID>
						</cac:PartyIdentification>
						<cac:PostalAddress>
							<cbc:StreetName>Al Mursalat</cbc:StreetName>
							<cbc:BuildingNumber>7607</cbc:BuildingNumber>
							<cbc:PlotIdentification>3393</cbc:PlotIdentification>
							<cbc:CitySubdivisionName>Riyadh</cbc:CitySubdivisionName>
							<cbc:CityName>Riyadh</cbc:CityName>
							<cbc:PostalZone>12464</cbc:PostalZone>
							<cbc:CountrySubentity>Riyadh Region</cbc:CountrySubentity>
							<cac:Country>
								<cbc:IdentificationCode>SA</cbc:IdentificationCode>
							</cac:Country>
						</cac:PostalAddress>
						<cac:PartyTaxScheme>
							<cbc:CompanyID>300075588700003</cbc:CompanyID>
							<cac:TaxScheme>
								<cbc:ID>VAT</cbc:ID>
							</cac:TaxScheme>
						</cac:PartyTaxScheme>
						<cac:PartyLegalEntity>
							<cbc:RegistrationName>Acme Widget's LTD</cbc:RegistrationName>
						</cac:PartyLegalEntity>
					</cac:Party>
				</cac:AccountingSupplierParty>
				<cac:AccountingCustomerParty>
					<cac:Party>
						<cac:PartyIdentification>
							<cbc:ID schemeID="CRN">2051018674</cbc:ID>
						</cac:PartyIdentification>
						<cac:PostalAddress>
							<cbc:StreetName>O.E.3446</cbc:StreetName>
							<cbc:AdditionalStreetName>CaIEN -  CaOaNaec</cbc:AdditionalStreetName>
							<cbc:BuildingNumber>aIeaE CaNeCO</cbc:BuildingNumber>
							<cbc:PlotIdentification>.</cbc:PlotIdentification>
							<cbc:CitySubdivisionName>.</cbc:CitySubdivisionName>
							<cbc:CityName>.</cbc:CityName>
							<cbc:PostalZone>31952</cbc:PostalZone>
							<cbc:CountrySubentity>.</cbc:CountrySubentity>
							<cac:Country>
								<cbc:IdentificationCode>SA</cbc:IdentificationCode>
							</cac:Country>
						</cac:PostalAddress>
						<cac:PartyTaxScheme>
							<cac:TaxScheme>
								<cbc:ID>VAT</cbc:ID>
							</cac:TaxScheme>
						</cac:PartyTaxScheme>
						<cac:PartyLegalEntity>
							<cbc:RegistrationName>Acme Widget's LTD 2</cbc:RegistrationName>
						</cac:PartyLegalEntity>
					</cac:Party>
				</cac:AccountingCustomerParty>
				<cac:Delivery>
					<cbc:ActualDeliveryDate>2022-06-02</cbc:ActualDeliveryDate>
				</cac:Delivery>
				<cac:PaymentMeans>
					<cbc:PaymentMeansCode>42</cbc:PaymentMeansCode>
				</cac:PaymentMeans>
				<cac:PaymentTerms>
					<cbc:Note>05</cbc:Note>
					<cbc:Amount currencyID="SAR">12000.00</cbc:Amount>
				</cac:PaymentTerms>
				<cac:TaxTotal>
					<cbc:TaxAmount currencyID="SAR">0.00</cbc:TaxAmount>
					<cac:TaxSubtotal>
						<cbc:TaxableAmount currencyID="SAR">12000.00</cbc:TaxableAmount>
						<cbc:TaxAmount currencyID="SAR">0.00</cbc:TaxAmount>
						<cac:TaxCategory>
							<cbc:ID>O</cbc:ID>
							<cbc:TaxExemptionReasonCode>VATEX-SA-OOS</cbc:TaxExemptionReasonCode>
							<cbc:TaxExemptionReason>VATEX-SA</cbc:TaxExemptionReason>
							<cac:TaxScheme>
								<cbc:ID>VAT</cbc:ID>
							</cac:TaxScheme>
						</cac:TaxCategory>
					</cac:TaxSubtotal>
				</cac:TaxTotal>
				<cac:TaxTotal>
					<cbc:TaxAmount currencyID="SAR">0.00</cbc:TaxAmount>
				</cac:TaxTotal>
				<cac:LegalMonetaryTotal>
					<cbc:LineExtensionAmount currencyID="SAR">12000.00</cbc:LineExtensionAmount>
					<cbc:TaxExclusiveAmount currencyID="SAR">12000.00</cbc:TaxExclusiveAmount>
					<cbc:AllowanceTotalAmount currencyID="SAR">0.00</cbc:AllowanceTotalAmount>
					<cbc:PayableAmount currencyID="SAR">12000.00</cbc:PayableAmount>
				</cac:LegalMonetaryTotal>
				<cac:InvoiceLine>
					<cbc:ID>1</cbc:ID>
					<cbc:InvoicedQuantity>1</cbc:InvoicedQuantity>
					<cbc:LineExtensionAmount currencyID="SAR">12000.00</cbc:LineExtensionAmount>
					<cac:PricingReference>
						<cac:AlternativeConditionPrice>
							<cbc:PriceAmount currencyID="SAR">12000.00</cbc:PriceAmount>
							<cbc:PriceTypeCode>02</cbc:PriceTypeCode>
						</cac:AlternativeConditionPrice>
					</cac:PricingReference>
					<cac:TaxTotal>
						<cbc:TaxAmount currencyID="SAR">0.00</cbc:TaxAmount>
						<cbc:RoundingAmount currencyID="SAR">12000.00</cbc:RoundingAmount>
					</cac:TaxTotal>
					<cac:Item>
						<cbc:Name>NOea CaaaEI</cbc:Name>
						<cac:ClassifiedTaxCategory>
							<cbc:ID>O</cbc:ID>
							<cbc:Percent>0.00</cbc:Percent>
							<cac:TaxScheme>
								<cbc:ID>VAT</cbc:ID>
							</cac:TaxScheme>
						</cac:ClassifiedTaxCategory>
					</cac:Item>
					<cac:Price>
						<cbc:PriceAmount currencyID="SAR">0</cbc:PriceAmount>
					</cac:Price>
				</cac:InvoiceLine>
			</Invoice>
		</sci:SovosCanonicalInvoice>
	</svs:SovosDocument>
</StandardBusinessDocument>

SCI Invoice - zero rated export

Tax invoice, reflecting an export case (VAT rate = Z) with document currency code - USD:

<?xml version="1.0" encoding="utf-8"?>
<StandardBusinessDocument xmlns="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader" xmlns:svs="http://www.sovos.com/namespaces/sovosDocument" xmlns:sci="http://www.sovos.com/namespaces/sovosCanonicalInvoice" xmlns:ad="http://www.sovos.com/namespaces/additionalData" xmlns:sov="http://www.sovos.com/namespaces/sovosExtensions" xmlns:enc="http://www.sovos.com/namespaces/base64Document" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader ../../../Git/transformation/SCI/Saudi%20Arabia/Tax%20Invoice/Schemas/Sovos%20Document_v2/Standard%20Business%20Document/SBD.xsd">
	<StandardBusinessDocumentHeader>
		<HeaderVersion>1.0</HeaderVersion>
		<Sender>
			<Identifier Authority="SA">300075588700003</Identifier>
			<ContactInformation>
				<Contact>SELLER SA</Contact>
			</ContactInformation>
		</Sender>
		<Receiver>
			<Identifier Authority="SA">311111111110013</Identifier>
			<ContactInformation>
				<Contact>BUYER SA</Contact>
			</ContactInformation>
		</Receiver>
		<DocumentIdentification>
			<Standard>urn:oasis:names:specification:ubl:schema:xsd:Invoice-2</Standard>
			<TypeVersion>2.1</TypeVersion>
			<InstanceIdentifier>SVS20230000070059</InstanceIdentifier>
			<Type>Invoice</Type>
			<MultipleType>false</MultipleType>
			<CreationDateAndTime>2023-01-27T14:55:29Z</CreationDateAndTime>
		</DocumentIdentification>
		<BusinessScope>
			<Scope>
				<Type>Country</Type>
				<InstanceIdentifier/>
				<Identifier>SA</Identifier>
			</Scope>
			<Scope>
				<Type>Mapping.TransformDocument</Type>
				<InstanceIdentifier/>
				<Identifier>SCI-TO-LEGAL_INVOICE</Identifier>
			</Scope>
			<Scope>
				<Type>Mapping.OutputSchema</Type>
				<InstanceIdentifier/>
				<Identifier>UBLInvoice</Identifier>
			</Scope>
			<Scope>
				<Type>CompanyCode</Type>
				<InstanceIdentifier/>
				<Identifier>300075588700003</Identifier>
			</Scope>
			<Scope>
				<Type>SenderDocumentId</Type>
				<InstanceIdentifier/>
				<Identifier>S_ARABIA|20230127145529|</Identifier>
			</Scope>
			<Scope>
				<Type>SenderSystemId</Type>
				<InstanceIdentifier/>
				<Identifier>ERPSystem</Identifier>
			</Scope>
			<Scope>
				<Type>ProcessType</Type>
				<InstanceIdentifier/>
				<Identifier>Outbound</Identifier>
			</Scope>
			<Scope>
				<Type>BusinessProcess</Type>
				<InstanceIdentifier/>
				<BusinessService>
					<BusinessServiceName>Default</BusinessServiceName>
				</BusinessService>
			</Scope>
			<Scope>
				<Type>BusinessCategory</Type>
				<InstanceIdentifier/>
				<Identifier>B2B</Identifier>
			</Scope>
			<Scope>
				<Type>MetaSchema</Type>
				<InstanceIdentifier/>
			</Scope>
			<Scope>
				<Type>Version</Type>
				<InstanceIdentifier/>
				<Identifier>1.0</Identifier>
			</Scope>
			<Scope>
				<Type>Branch</Type>
				<InstanceIdentifier/>
				<Identifier>branch_1</Identifier>
			</Scope>
		</BusinessScope>
	</StandardBusinessDocumentHeader>
	<svs:SovosDocument>
		<sci:SovosCanonicalInvoice>
			<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2">
				<cbc:ProfileID>reporting:1.0</cbc:ProfileID>
				<cbc:ID>SVS12223251800130</cbc:ID>
				<cbc:UUID>00505698-374F-1EDD-A7C7-2F42E9F34C9F</cbc:UUID>
				<cbc:IssueDate>2023-01-27</cbc:IssueDate>
				<cbc:IssueTime>14:55:29</cbc:IssueTime>
				<cbc:InvoiceTypeCode name="0100100">388</cbc:InvoiceTypeCode>
				<cbc:Note>Unstructured text</cbc:Note>
				<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
				<cbc:TaxCurrencyCode>SAR</cbc:TaxCurrencyCode>
				<cac:OrderReference>
					<cbc:ID>161313031</cbc:ID>
				</cac:OrderReference>
				<cac:ContractDocumentReference>
					<cbc:ID>161313031</cbc:ID>
				</cac:ContractDocumentReference>
				<cac:AccountingSupplierParty>
					<cac:Party>
						<cac:PartyIdentification>
							<cbc:ID schemeID="CRN">300075588700003</cbc:ID>
						</cac:PartyIdentification>
						<cac:PostalAddress>
							<cbc:StreetName>Main street</cbc:StreetName>
							<cbc:AdditionalStreetName>Additional street name</cbc:AdditionalStreetName>
							<cbc:BuildingNumber>2322</cbc:BuildingNumber>
							<cbc:PlotIdentification>2223</cbc:PlotIdentification>
							<cbc:CitySubdivisionName>District A</cbc:CitySubdivisionName>
							<cbc:CityName>Riyadh</cbc:CityName>
							<cbc:PostalZone>72415</cbc:PostalZone>
							<cbc:CountrySubentity>Riyadh Region</cbc:CountrySubentity>
							<cac:Country>
								<cbc:IdentificationCode>SA</cbc:IdentificationCode>
							</cac:Country>
						</cac:PostalAddress>
						<cac:PartyTaxScheme>
							<cbc:CompanyID>300075588700003</cbc:CompanyID>
							<cac:TaxScheme>
								<cbc:ID>VAT</cbc:ID>
							</cac:TaxScheme>
						</cac:PartyTaxScheme>
						<cac:PartyLegalEntity>
							<cbc:RegistrationName>SELLER SA</cbc:RegistrationName>
						</cac:PartyLegalEntity>
					</cac:Party>
				</cac:AccountingSupplierParty>
				<cac:AccountingCustomerParty>
					<cac:Party>
						<cac:PartyIdentification>
						<cbc:ID schemeID="IQA">311111111111113</cbc:ID>
						</cac:PartyIdentification>
						<cac:PostalAddress>
							<cbc:StreetName>Main street 1</cbc:StreetName>
							<cbc:AdditionalStreetName>PO Box 14</cbc:AdditionalStreetName>
							<cbc:BuildingNumber>25</cbc:BuildingNumber>
							<cbc:PlotIdentification>2223</cbc:PlotIdentification>
							<cbc:CitySubdivisionName>District B</cbc:CitySubdivisionName>
							<cbc:CityName>Riyadh</cbc:CityName>
							<cbc:PostalZone>72415</cbc:PostalZone>
							<cbc:CountrySubentity>Riyadh Region</cbc:CountrySubentity>
							<cac:Country>
								<cbc:IdentificationCode>SA</cbc:IdentificationCode>
							</cac:Country>
						</cac:PostalAddress>
						<cac:PartyTaxScheme>
							<cac:TaxScheme>
								<cbc:ID>VAT</cbc:ID>
							</cac:TaxScheme>
						</cac:PartyTaxScheme>
						<cac:PartyLegalEntity>
							<cbc:RegistrationName>BUYER SA</cbc:RegistrationName>
						</cac:PartyLegalEntity>
					</cac:Party>
				</cac:AccountingCustomerParty>
				<cac:Delivery>
					<cbc:ActualDeliveryDate>2021-02-26</cbc:ActualDeliveryDate>
					<cbc:LatestDeliveryDate>2021-02-27</cbc:LatestDeliveryDate>
				</cac:Delivery>
				<cac:PaymentMeans>
					<cbc:PaymentMeansCode>42</cbc:PaymentMeansCode>
				</cac:PaymentMeans>
				<cac:PaymentTerms>
					<!-- invoice total amount with VAT -->
					<cbc:Note>05</cbc:Note>
					<cbc:Amount currencyID="USD">102.00</cbc:Amount>
				</cac:PaymentTerms>
				<cac:TaxTotal>
					<cbc:TaxAmount currencyID="USD">0.00</cbc:TaxAmount>
					<cac:TaxSubtotal>
						<cbc:TaxableAmount currencyID="USD">0.00</cbc:TaxableAmount>
						<cbc:TaxAmount currencyID="USD">0.00</cbc:TaxAmount>
						<cac:TaxCategory>
							<cbc:ID>Z</cbc:ID>
							<cbc:Percent>0.00</cbc:Percent>
							<cbc:TaxExemptionReasonCode>VATEX-SA-32</cbc:TaxExemptionReasonCode>
							<cbc:TaxExemptionReason>Export of goods</cbc:TaxExemptionReason>
							<cac:TaxScheme>
								<cbc:ID>VAT</cbc:ID>
							</cac:TaxScheme>
						</cac:TaxCategory>
					</cac:TaxSubtotal>
				</cac:TaxTotal>
				<cac:TaxTotal>
					<cbc:TaxAmount currencyID="SAR">0.00</cbc:TaxAmount>
				</cac:TaxTotal>
				<cac:LegalMonetaryTotal>
					<cbc:LineExtensionAmount currencyID="USD">102.00</cbc:LineExtensionAmount>
					<cbc:TaxExclusiveAmount currencyID="USD">102.00</cbc:TaxExclusiveAmount>
					<cbc:AllowanceTotalAmount currencyID="USD">0.00</cbc:AllowanceTotalAmount>
					<cbc:PrepaidAmount currencyID=" USD">0.00</cbc:PrepaidAmount>
					<cbc:PayableAmount currencyID=" USD">102.00</cbc:PayableAmount>
				</cac:LegalMonetaryTotal>
				<cac:InvoiceLine>
					<cbc:ID>1</cbc:ID>
					<cbc:InvoicedQuantity unitCode="C62">1</cbc:InvoicedQuantity>
					<cbc:LineExtensionAmount currencyID=" USD">102.00</cbc:LineExtensionAmount>
					<cac:PricingReference>
						<cac:AlternativeConditionPrice>
							<cbc:PriceAmount currencyID=" USD">102.00</cbc:PriceAmount>
							<cbc:PriceTypeCode>02</cbc:PriceTypeCode>
						</cac:AlternativeConditionPrice>
					</cac:PricingReference>
					<cac:TaxTotal>
						<cbc:TaxAmount currencyID="USD">0.00</cbc:TaxAmount>
						<cbc:RoundingAmount currencyID="USD">102.00</cbc:RoundingAmount>
						<cac:TaxSubtotal>
							<cbc:TaxableAmount currencyID="USD">0.00</cbc:TaxableAmount>
							<cbc:TaxAmount currencyID="USD">0.00</cbc:TaxAmount>
							<cac:TaxCategory>
								<cbc:ID>Z</cbc:ID>
								<cbc:Percent>0.00</cbc:Percent>
								<cbc:TaxExemptionReasonCode>VATEX-SA-32</cbc:TaxExemptionReasonCode>
								<cbc:TaxExemptionReason>Export of goods</cbc:TaxExemptionReason>
								<cac:TaxScheme>
									<cbc:ID>VAT</cbc:ID>
								</cac:TaxScheme>
							</cac:TaxCategory>
						</cac:TaxSubtotal>
					</cac:TaxTotal>
					<cac:Item>
						<cbc:Name>HADITHA-1 - MINISTRY OF FINANC</cbc:Name>
						<cac:ClassifiedTaxCategory>
							<cbc:ID>Z</cbc:ID>
							<cbc:Percent>0.00</cbc:Percent>
							<cac:TaxScheme>
								<cbc:ID>VAT</cbc:ID>
							</cac:TaxScheme>
						</cac:ClassifiedTaxCategory>
					</cac:Item>
					<cac:Price>
						<cbc:PriceAmount currencyID="USD">102.00</cbc:PriceAmount>
					</cac:Price>
				</cac:InvoiceLine>
			</Invoice>
		</sci:SovosCanonicalInvoice>
	</svs:SovosDocument>
</StandardBusinessDocument>

SCI credit note

<?xml version="1.0" encoding="utf-8"?>
<StandardBusinessDocument xmlns="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader" xmlns:svs="http://www.sovos.com/namespaces/sovosDocument" xmlns:sci="http://www.sovos.com/namespaces/sovosCanonicalInvoice" xmlns:ad="http://www.sovos.com/namespaces/additionalData" xmlns:sov="http://www.sovos.com/namespaces/sovosExtensions" xmlns:enc="http://www.sovos.com/namespaces/base64Document" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader ../../../Schemas/Sovos%20Document_v2/Standard%20Business%20Document/SBD.xsd">
	<StandardBusinessDocumentHeader>
		<HeaderVersion>1.0</HeaderVersion>
		<Sender>
			<Identifier Authority="SA">300075588700003</Identifier>
			<ContactInformation>
				<Contact>SELLER SA</Contact>
			</ContactInformation>
		</Sender>
		<Receiver>
			<Identifier Authority="SA">311111111110013</Identifier>
			<ContactInformation>
				<Contact>BUYER SA</Contact>
			</ContactInformation>
		</Receiver>
		<DocumentIdentification>
			<Standard>urn:oasis:names:specification:ubl:schema:xsd:Invoice-2</Standard>
			<TypeVersion>2.1</TypeVersion>
			<InstanceIdentifier>SVS20230000070059</InstanceIdentifier>
			<Type>Invoice</Type>
			<MultipleType>false</MultipleType>
			<CreationDateAndTime>2023-01-27T14:55:29Z</CreationDateAndTime>
		</DocumentIdentification>
		<BusinessScope>
			<Scope>
				<Type>Country</Type>
				<InstanceIdentifier/>
				<Identifier>SA</Identifier>
			</Scope>
			<Scope>
				<Type>Mapping.TransformDocument</Type>
				<InstanceIdentifier/>
				<Identifier>SCI-TO-LEGAL_INVOICE</Identifier>
			</Scope>
			<Scope>
				<Type>Mapping.OutputSchema</Type>
				<InstanceIdentifier/>
				<Identifier>UBLInvoice</Identifier>
			</Scope>
			<Scope>
				<Type>CompanyCode</Type>
				<InstanceIdentifier/>
				<Identifier>300075588700003</Identifier>
			</Scope>
			<Scope>
				<Type>SenderDocumentId</Type>
				<InstanceIdentifier/>
				<Identifier>S_ARABIA|20230127145529|</Identifier>
			</Scope>
			<Scope>
				<Type>SenderSystemId</Type>
				<InstanceIdentifier/>
				<Identifier>ERPSystem</Identifier>
			</Scope>
			<Scope>
				<Type>ProcessType</Type>
				<InstanceIdentifier/>
				<Identifier>Outbound</Identifier>
			</Scope>
			<Scope>
				<Type>BusinessProcess</Type>
				<InstanceIdentifier/>
				<BusinessService>
					<BusinessServiceName>Default</BusinessServiceName>
				</BusinessService>
			</Scope>
			<Scope>
				<Type>BusinessCategory</Type>
				<InstanceIdentifier/>
				<Identifier>B2B</Identifier>
			</Scope>
			<Scope>
				<Type>MetaSchema</Type>
				<InstanceIdentifier/>
			</Scope>
			<Scope>
				<Type>Version</Type>
				<InstanceIdentifier/>
				<Identifier>1.0</Identifier>
			</Scope>
			<Scope>
				<Type>Branch</Type>
				<InstanceIdentifier/>
				<Identifier>b-irina</Identifier>
			</Scope>
		</BusinessScope>
	</StandardBusinessDocumentHeader>
	<svs:SovosDocument>
		<sci:SovosCanonicalInvoice>
			<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2">
				<cbc:ID>SME00015995623354</cbc:ID>
				<cbc:UUID>322efd74-5b1b-41e0-843c-1d13bec4475e</cbc:UUID>
				<cbc:IssueDate>2022-09-05</cbc:IssueDate>
				<cbc:IssueTime>16:50:40</cbc:IssueTime>
				<cbc:InvoiceTypeCode name="0100000">381</cbc:InvoiceTypeCode>
				<cbc:DocumentCurrencyCode>SAR</cbc:DocumentCurrencyCode>
				<cbc:TaxCurrencyCode>SAR</cbc:TaxCurrencyCode>
				<cac:BillingReference>
					<cac:InvoiceDocumentReference>
						<cbc:ID>SME00002</cbc:ID>
					</cac:InvoiceDocumentReference>
				</cac:BillingReference>
				<cac:AdditionalDocumentReference>
					<cbc:ID>ICV</cbc:ID>
					<cbc:UUID>15</cbc:UUID>
				</cac:AdditionalDocumentReference>
				<cac:AdditionalDocumentReference>
					<cbc:ID>PIH</cbc:ID>
					<cac:Attachment>
						<cbc:EmbeddedDocumentBinaryObject mimeCode="text/plain">NWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzljMmRiYzIzOWRkNGU5MWI0NjcyOWQ3M2EyN2ZiNTdlOQ==</cbc:EmbeddedDocumentBinaryObject>
					</cac:Attachment>
				</cac:AdditionalDocumentReference>
				<cac:AdditionalDocumentReference>
					<cbc:ID>QR</cbc:ID>
					<cac:Attachment>
						<cbc:EmbeddedDocumentBinaryObject mimeCode="text/plain">ARNBY21lIFdpZGdldOKAmXMgTFREAg8zMTExMTExMTExMDExMTMDFDIwMjItMDktMDVUMTY6NTA6NDBaBAQ0LjYwBQMwLjYGLDgyWXNBMWIyQWhUOFVUL2xhbllpc2g1SjhjeS83OTQreXhST2tFN2tEbWs9B2BNRVFDSUVCam91amcrbWpzczk5WVVCSEQzQjlmb2xIVHhSMmtQYlB4UlhWN1lQQ1BBaUJCRW5rRlJEcW1kVjhwdTZYT3F2cE9nNVRxMEJHV0ZzS0svY2NUcVpzU0tBPT0IWDBWMBAGByqGSM49AgEGBSuBBAAKA0IABGGDDKDmhWAITDv7LXqLX2cmr6+qddUkpcLCvWs5rC2O29W/hS4ajAK4Qdnahym6MaijX75Cg3j4aao7ouYXJ9E=</cbc:EmbeddedDocumentBinaryObject>
					</cac:Attachment>
				</cac:AdditionalDocumentReference>
				<cac:Signature>
					<cbc:ID>urn:oasis:names:specification:ubl:signature:Invoice</cbc:ID>
					<cbc:SignatureMethod>urn:oasis:names:specification:ubl:dsig:enveloped:xades</cbc:SignatureMethod>
				</cac:Signature>
				<cac:AccountingSupplierParty>
					<cac:Party>
						<cac:PartyIdentification>
							<cbc:ID schemeID="CRN">300075588700003</cbc:ID>
						</cac:PartyIdentification>
						<cac:PostalAddress>
							<cbc:StreetName>الامير سلطان</cbc:StreetName>
							<cbc:BuildingNumber>2111</cbc:BuildingNumber>
							<cbc:PlotIdentification>2222</cbc:PlotIdentification>
							<cbc:CitySubdivisionName>Riyad</cbc:CitySubdivisionName>
							<cbc:CityName>الرياض | Riyadh</cbc:CityName>
							<cbc:PostalZone>11111</cbc:PostalZone>
							<cac:Country>
								<cbc:IdentificationCode>SA</cbc:IdentificationCode>
							</cac:Country>
						</cac:PostalAddress>
						<cac:PartyTaxScheme>
							<cbc:CompanyID>300075588700003</cbc:CompanyID>
							<cac:TaxScheme>
								<cbc:ID>VAT</cbc:ID>
							</cac:TaxScheme>
						</cac:PartyTaxScheme>
						<cac:PartyLegalEntity>
							<cbc:RegistrationName>Acme Widget's LTD</cbc:RegistrationName>
						</cac:PartyLegalEntity>
					</cac:Party>
				</cac:AccountingSupplierParty>
				<cac:AccountingCustomerParty>
					<cac:Party>
						<cac:PartyIdentification>
							<cbc:ID schemeID="CRN">311111111111113</cbc:ID>
						</cac:PartyIdentification>
						<cac:PostalAddress>
							<cbc:StreetName>الامير سلطان</cbc:StreetName>
							<cbc:BuildingNumber>2111</cbc:BuildingNumber>
							<cbc:PlotIdentification>1234</cbc:PlotIdentification>
							<cbc:CitySubdivisionName>Riyad</cbc:CitySubdivisionName>
							<cbc:CityName>الرياض | Riyadh</cbc:CityName>
							<cbc:PostalZone>11111</cbc:PostalZone>
							<cac:Country>
								<cbc:IdentificationCode>SA</cbc:IdentificationCode>
							</cac:Country>
						</cac:PostalAddress>
						<cac:PartyTaxScheme>
							<cac:TaxScheme>
								<cbc:ID>VAT</cbc:ID>
							</cac:TaxScheme>
						</cac:PartyTaxScheme>
						<cac:PartyLegalEntity>
							<cbc:RegistrationName>Acme Widget's LTD 2</cbc:RegistrationName>
						</cac:PartyLegalEntity>
					</cac:Party>
				</cac:AccountingCustomerParty>
				<cac:Delivery>
					<cbc:ActualDeliveryDate>2022-09-05</cbc:ActualDeliveryDate>
				</cac:Delivery>
				<cac:PaymentMeans>
					<cbc:PaymentMeansCode>10</cbc:PaymentMeansCode>
					<cbc:InstructionNote>CANCELLATION_OR_TERMINATION</cbc:InstructionNote>
				</cac:PaymentMeans>
				<cac:PaymentTerms>
					<cbc:Note>05</cbc:Note>
					<cbc:Amount currencyID="SAR">4.60</cbc:Amount>
				</cac:PaymentTerms>
				<cac:AllowanceCharge>
					<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
					<cbc:AllowanceChargeReason>discount</cbc:AllowanceChargeReason>
					<cbc:Amount currencyID="SAR">0.00</cbc:Amount>
					<cac:TaxCategory>
						<cbc:ID>S</cbc:ID>
						<cbc:Percent>15.00</cbc:Percent>
						<cac:TaxScheme>
							<cbc:ID>VAT</cbc:ID>
						</cac:TaxScheme>
					</cac:TaxCategory>
				</cac:AllowanceCharge>
				<cac:TaxTotal>
					<cbc:TaxAmount currencyID="SAR">0.60</cbc:TaxAmount>
				</cac:TaxTotal>
				<cac:TaxTotal>
					<cbc:TaxAmount currencyID="SAR">0.60</cbc:TaxAmount>
					<cac:TaxSubtotal>
						<cbc:TaxableAmount currencyID="SAR">4.00</cbc:TaxableAmount>
						<cbc:TaxAmount currencyID="SAR">0.60</cbc:TaxAmount>
						<cac:TaxCategory>
							<cbc:ID>S</cbc:ID>
							<cbc:Percent>15.00</cbc:Percent>
							<cac:TaxScheme>
								<cbc:ID>VAT</cbc:ID>
							</cac:TaxScheme>
						</cac:TaxCategory>
					</cac:TaxSubtotal>
				</cac:TaxTotal>
				<cac:LegalMonetaryTotal>
					<cbc:LineExtensionAmount currencyID="SAR">4.00</cbc:LineExtensionAmount>
					<cbc:TaxExclusiveAmount currencyID="SAR">4.00</cbc:TaxExclusiveAmount>
					<cbc:AllowanceTotalAmount currencyID="SAR">0.00</cbc:AllowanceTotalAmount>
					<cbc:PrepaidAmount currencyID="SAR">0.00</cbc:PrepaidAmount>
					<cbc:PayableAmount currencyID="SAR">4.60</cbc:PayableAmount>
				</cac:LegalMonetaryTotal>
				<cac:InvoiceLine>
					<cbc:ID>1</cbc:ID>
					<cbc:InvoicedQuantity unitCode="PCE">2</cbc:InvoicedQuantity>
					<cbc:LineExtensionAmount currencyID="SAR">4.00</cbc:LineExtensionAmount>
					<cac:PricingReference>
						<cac:AlternativeConditionPrice>
							<cbc:PriceAmount currencyID="SAR">2.00</cbc:PriceAmount>
							<cbc:PriceTypeCode>02</cbc:PriceTypeCode>
						</cac:AlternativeConditionPrice>
					</cac:PricingReference>
					<cac:TaxTotal>
						<cbc:TaxAmount currencyID="SAR">0.60</cbc:TaxAmount>
						<cbc:RoundingAmount currencyID="SAR">4.60</cbc:RoundingAmount>
					</cac:TaxTotal>
					<cac:Item>
						<cbc:Name>قلم</cbc:Name>
						<cac:ClassifiedTaxCategory>
							<cbc:ID>S</cbc:ID>
							<cbc:Percent>15.00</cbc:Percent>
							<cac:TaxScheme>
								<cbc:ID>VAT</cbc:ID>
							</cac:TaxScheme>
						</cac:ClassifiedTaxCategory>
					</cac:Item>
					<cac:Price>
						<cac:AllowanceCharge>
							<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
							<cbc:AllowanceChargeReason>discount</cbc:AllowanceChargeReason>
							<cbc:Amount currencyID="SAR">0</cbc:Amount>
						</cac:AllowanceCharge>
					</cac:Price>
				</cac:InvoiceLine>
			</Invoice>
		</sci:SovosCanonicalInvoice>
	</svs:SovosDocument>
</StandardBusinessDocument>