Download SDK
The Compliance and Enablement Toolbox Software Development Kit (SDK): An offline downloadable tool which can be used to validate an XML based e-invoice, credit or debit note files in accordance with the ZATCA published requirements, standards and guidelines. It also allows validation of the QR codes as per the prescribed structure. Developers can integrate their EGS units with the SDK locally (offline) or also test using a Command Line Interface (CLI). The SDK is a Java based JAR file that can run on all leading platforms including Windows, Linux and Mac. The Java SDK (JAR) will run on JDK versions >=11 and <15, to comply with secp256k1 as per ZATCA security regulations.
The Compliance and Enablement Toolbox SDK User Manual provides guidance with regards to the functional and technical aspects of the Compliance and Enablement Toolbox SDK such as what is the SDK, how to use the SDK and how to install it.
E-invoice Specifications
- The E-Invoicing Specifications and Standards along with the E-Invoicing By-Law and the Controls, Requirements and Procedural Rules for Implementing the Provisions of the E-invoicing Regulation (Resolution) details the requirements and standards needed to ensure full compliance with the Dec 4th 2021 (Generation Phase) and the January 1st 2023 (Integration Phase) requirements.
-
Compliance with the technical specification is being enabled with the Compliance and Enablement Toolbox SDK as well as the API Integration Sandbox which can be used to check whether a given E-Invoice Generation Solution (EGS) implements elements of the specification correctly.
- Note that compliance with Compliance and Enablement Toolbox SDK and API Integration Sandbox does not indicate 100% compliance with the Resolution and its annexes and that the legal documents and specifications are the basis for determining compliance.
Download XML Implementation Standards
Version History
- Introduced a new rule (BR-KSA-97) to ensure that if the Document Currency Code (BT-5) is present and different from “SAR,” the value in “Invoice Total VAT Amount” (BT-110) must not be equal to the value in “Invoice Total VAT Amount in Accounting Currency” (BT-111)
- The SDK is separated into two packages: Java SDK and .NET SDK.
- Introduced a new rule (BR-KSA-97) to ensure that if the Document Currency Code (BT-5) is present and different from “SAR,” the value in “Invoice Total VAT Amount” (BT-110) must not be equal to the value in “Invoice Total VAT Amount in Accounting Currency” (BT-111)
- The SDK is separated into two packages: Java SDK and .NET SDK.
Bug fixes the validation rules BR-CO-17 and BR-S-09 regarding the rounding issue in VAT Category Tax Amount (BT-117)
Bug fixes the validation rules BR-CO-17 and BR-S-09 regarding the rounding issue in VAT Category Tax Amount (BT-117)
Updating the DLL files for .NET Framework 4.8 to match the latest version.
feedback. After two additional releases, we will exclusively use this version.
- Amend the wordings of the validation rule(s) (BR-KSA-26), (BR-KSA-27), (BR-KSA-31), (BR-KSA-49), (BR-KSA-60), (BR-KSA-71), (BR-KSA-72), (BR-KSA-EN16931-07), (BR-KSA-EN16931-02), (BR-KSA-EN16931-08), (BR-KSA-F-04), and (BR-KSA-F-05) to provide more clarity.
- A bug fix on validation rule(s) (BR-S-08), (BR-Z-08), (BR-O-08) and (BR-E-08) to calculate VAT category taxable amount (BT-116) for different VAT Category codes.
- A bug fix on validation rule(s) (BR-S-01), (BR-Z-01), (BR-O-01), and (BR-E-01) to ensure that No warnings is provided in case a VAT breakdown (BG-23) is provided with at least one VAT category code (BT-118) equals to that of provided in VAT category code (BT-151 or BT-95 or BT-102).
- Amend the wordings of the validation rule(s) (BR-KSA-26), (BR-KSA-27), (BR-KSA-31), (BR-KSA-49), (BR-KSA-60), (BR-KSA-71), (BR-KSA-72), (BR-KSA-EN16931-07), (BR-KSA-EN16931-02), (BR-KSA-EN16931-08), (BR-KSA-F-04), and (BR-KSA-F-05) to provide more clarity.
- A bug fix on validation rule(s) (BR-S-08), (BR-Z-08), (BR-O-08) and (BR-E-08) to calculate VAT category taxable amount (BT-116) for different VAT Category codes.
- A bug fix on validation rule(s) (BR-S-01), (BR-Z-01), (BR-O-01), and (BR-E-01) to ensure that No warnings is provided in case a VAT breakdown (BG-23) is provided with at least one VAT category code (BT-118) equals to that of provided in VAT category code (BT-151 or BT-95 or BT-102).
- Fix the validation rule (BR-53) to not display as Warning when the Tax Currency Code (BT-6) equals to ‘USD’
- Fix the validation rule(s) (BR-CO-17) and (BR-S-09) regarding to the rounding issue in VAT Category Tax Amount (BT-117)
- Added new validation rules (BR-KSA-93), (BR-KSA-94), (BR-KSA-95), and (BR-KSA-96) to introduce Tax Exemption / Exception Reason Code (KSA-41) and Tax Exemption / Exception Reason Text (KSA-42) for document references of the prepayment invoice(s)
- Added new validation rules (BR-KSA-91), and (BR-KSA-92) to introduce Company Legal Form (KSA-40) and Tax Point Date (BT-7) as the indicator for the B2G supplies and payment Order Date for Supply.
- Update the validation message regarding the QR code generation in case of an invalid / absent Invoice Issue Time (KSA-25)
- Update the SDK to support .Net Core 3.1 and .Net Core 8.0 to align with the latest version.
- Upgrading .Net Framework from 4 to 4.8 to align with the latest version.
- Add -version command to get the .NET SDK version.
- Amend the validation for generating a (CSR) in a .NET application to accept both Arabic and English data, and to provide an error for any incorrect field.
- Fix the validation rule (BR-53) to not display as Warning when the Tax Currency Code (BT-6) equals to ‘USD’
- Fix the validation rule(s) (BR-CO-17) and (BR-S-09) regarding to the rounding issue in VAT Category Tax Amount (BT-117)
- Added new validation rules (BR-KSA-93), (BR-KSA-94), (BR-KSA-95), and (BR-KSA-96) to introduce Tax Exemption / Exception Reason Code (KSA-41) and Tax Exemption / Exception Reason Text (KSA-42) for document references of the prepayment invoice(s)
- Added new validation rules (BR-KSA-91), and (BR-KSA-92) to introduce Company Legal Form (KSA-40) and Tax Point Date (BT-7) as the indicator for the B2G supplies and payment Order Date for Supply.
- Update the validation message regarding the QR code generation in case of an invalid / absent Invoice Issue Time (KSA-25)
- Update the SDK to support .Net Core 3.1 and .Net Core 8.0 to align with the latest version.
- Upgrading .Net Framework from 4 to 4.8 to align with the latest version.
- Add -version command to get the .NET SDK version.
- Amend the validation for generating a (CSR) in a .NET application to accept both Arabic and English data, and to provide an error for any incorrect field.
- Amend the validation rule (BR-KSA-80) to sum up Prepayment VAT Category Taxable Amount (KSA-31) and Prepayment VAT Category Tax Amount (KSA-32) for prepayment invoice lines regardless of whether the Pre-Paid amount (BT-113) is provided or not.
- Amend the validation rule (BR-KSA-79) on Prepayment VAT Category Tax Amount (KSA-32) to ensure that the rule applies even if the Pre-Paid amount (BT-113) is not provided.
- Amend the validation rule (BR-KSA-CL-14) to increase length of the invoice QR Code (KSA-14) to be up to 1,000 characters instead of 700 characters.
- Fix bug for the validation rule (BR-KSA-EN16931-09), (BR-KSA-EN16931-08) and (BR-53).
- Fix bug for validation rule (BR-S-01) to be added to the set of validations applied to VAT category code of items (BT-151, BT-95 or BT-102)
- Amend the validation rule (BR-KSA-CL-04) to add a new code, “VATEX-SA-DUTYFREE”, for VAT Exception reason code (BT-121) and add a corresponding VAT exception reason text, “Qualified Supply of Goods in Duty Free area”, for VAT exception reason text (BT-120).
- Update the SDK to support .Net Core 3.1 and .Net Core 8.0 to align with the latest version.
- Upgrading .Net Framework from 4 to 4.8 to align with the latest version.
- Add -version command to get the .NET SDK version.
- Amend the validation for generating a (CSR) in a .NET application to accept both Arabic and English data, and to provide an error for any incorrect field.
- Amend the validation rule (BR-KSA-80) to sum up Prepayment VAT Category Taxable Amount (KSA-31) and Prepayment VAT Category Tax Amount (KSA-32) for prepayment invoice lines regardless of whether the Pre-Paid amount (BT-113) is provided or not.
- Amend the validation rule (BR-KSA-79) on Prepayment VAT Category Tax Amount (KSA-32) to ensure that the rule applies even if the Pre-Paid amount (BT-113) is not provided.
- Amend the validation rule (BR-KSA-CL-14) to increase length of the invoice QR Code (KSA-14) to be up to 1,000 characters instead of 700 characters.
- Fix bug for the validation rule (BR-KSA-EN16931-09), (BR-KSA-EN16931-08) and (BR-53).
- Fix bug for validation rule (BR-S-01) to be added to the set of validations applied to VAT category code of items (BT-151, BT-95 or BT-102)
- Amend the validation rule (BR-KSA-CL-04) to add a new code, “VATEX-SA-DUTYFREE”, for VAT Exception reason code (BT-121) and add a corresponding VAT exception reason text, “Qualified Supply of Goods in Duty Free area”, for VAT exception reason text (BT-120).
- Update the SDK to support .Net Core 3.1 and .Net Core 8.0 to align with the latest version.
- Upgrading .Net Framework from 4 to 4.8 to align with the latest version.
- Add -version command to get the .NET SDK version.
- Amend the validation for generating a (CSR) in a .NET application to accept both Arabic and English data, and to provide an error for any incorrect field.
- Amending Validation Rule BR-KSA-86 to accept multiple email IDs for the Buyer using semicolon ‘;’ as a separator and to allow hyphen ‘-‘ in the email format.
- Enhancements to the output of the XSD validation error to display the missing or incorrect path/tag resulting in the error.
- Adding new fields to populate the exchange rate (source currency, target currency and exchange rate) in case the invoice is issued with foreign currency.
Note: The position for the exchange rate UBL tags should come immediately after the UBL tag cac:AllowanceCharge at the document level.
- Amending Validation Rule BR-KSA-86 to accept multiple email IDs for the Buyer using semicolon ‘;’ as a separator and to allow hyphen ‘-‘ in the email format.
- Enhancements to the output of the XSD validation error to display the missing or incorrect path/tag resulting in the error.
- Adding new fields to populate the exchange rate (source currency, target currency and exchange rate) in case the invoice is issued with foreign currency.
Note: The position for the exchange rate UBL tags should come immediately after the UBL tag cac:AllowanceCharge at the document level.
Security enhancements.
Security enhancements.
- PCSID is unified as a default certificate across compliance and testing components for standardization.
Note: If you’re relying on the SDK’s default certificate for invoice signing and validation in line with compliance and testing activities, make sure to resign the previously signed invoices to avoid getting signature errors when using the latest SDK version. - Bug fix on the validation rule BR-S-08 to not show a warning for valid cases.
- Enhancements on the validation rule BR-S-08 to allow providing multiple VAT rates in invoices under the “Standard Rated” VAT category without any warning.
- Enhancements to the validation rule BR-KS-F-01 to ensure all invoice dates are in Gregorian format.
- Addition of 14 new XML and PDF/A3 invoice samples in SDK for reference.
- Bug fix to allow signing the invoice document with a PCSID and sharing with another PCSID as long as both PCSIDs have the same VAT registration number.
- Updating error message related to Certificate Signing Request (CSR) for Serial number field with regard to special characters.
- Bug fix on the QR Code generation step in SDK to generate the timestamp in QR Code in KSA time when the Invoice Issue time (KSA-25) in XML is provided in Zulu time format.
- PCSID is unified as a default certificate across compliance and testing components for standardization.
Note: If you’re relying on the SDK’s default certificate for invoice signing and validation in line with compliance and testing activities, make sure to resign the previously signed invoices to avoid getting signature errors when using the latest SDK version. - Bug fix on the validation rule BR-S-08 to not show a warning for valid cases.
- Enhancements on the validation rule BR-S-08 to allow providing multiple VAT rates in invoices under the “Standard Rated” VAT category without any warning.
- Enhancements to the validation rule BR-KS-F-01 to ensure all invoice dates are in Gregorian format.
- Addition of 14 new XML and PDF/A3 invoice samples in SDK for reference.
- Bug fix to allow signing the invoice document with a PCSID and sharing with another PCSID as long as both PCSIDs have the same VAT registration number.
- Updating error message related to Certificate Signing Request (CSR) for Serial number field with regard to special characters.
- Bug fix on the QR Code generation step in SDK to generate the timestamp in QR Code in KSA time when the Invoice Issue time (KSA-25) in XML is provided in Zulu time format.
- Bug fix on validation rule BR-KSA-29 related to cryptographic stamp (KSA-15) to ensure it contains the value “urn:oasis:names:specification:ubl:signature:Invoice” for “referenced signature ID” tag.
- Bug fix on validation rule BR-KSA-27 related to “QR code (KSA-14)” to ensure compliance with requirement to be in base64Binary format
- Enhancements on the QR Code to read the Invoice Amount value (Tag 4) from “Amount due payment” (BT-115). This is to ensure QR Code displays Invoice Amount duly considering any adjustments towards “Advance Payment Amount (BT-113)” or “Rounding Amount (BT-114)”.
Note: Going forward, ZATCA’s Mobile App will display only the “Invoice Amount” (Tag 4) and will not display “VAT Amount” (Tag 5) to avoid confusion. - Bug fix on validation rule BR-KSA-F-01 to allow date only in Gregorian calendar (Hijri dates are not allowed as per specification). Another bug fix on this rule is to include “Supply End Date (KSA-24)” in the set of validations for date format.
- Bug fix on the validation rule BR-KSA-63 related to Buyer Address fields to require “Building Number (KSA-18) if the “Buyer Country Code (BT-55) is “SA”.
- Bug fix to not display any warnings on character limits related to “Buyer Name (BT-44)” and ”Buyer Street (BT-50)” for Simplified Invoices (B2C).
- Bug fix on the validation rule BR-KSA-71 to require “Buyer Name (BT-44)” on Summary Simplified Invoices.
- Bug fix on validation rule BR-KSA-29 related to cryptographic stamp (KSA-15) to ensure it contains the value “urn:oasis:names:specification:ubl:signature:Invoice” for “referenced signature ID” tag.
- Bug fix on validation rule BR-KSA-27 related to “QR code (KSA-14)” to ensure compliance with requirement to be in base64Binary format
- Enhancements on the QR Code to read the Invoice Amount value (Tag 4) from “Amount due payment” (BT-115). This is to ensure QR Code displays Invoice Amount duly considering any adjustments towards “Advance Payment Amount (BT-113)” or “Rounding Amount (BT-114)”.
Note: Going forward, ZATCA’s Mobile App will display only the “Invoice Amount” (Tag 4) and will not display “VAT Amount” (Tag 5) to avoid confusion. - Bug fix on validation rule BR-KSA-F-01 to allow date only in Gregorian calendar (Hijri dates are not allowed as per specification). Another bug fix on this rule is to include “Supply End Date (KSA-24)” in the set of validations for date format.
- Bug fix on the validation rule BR-KSA-63 related to Buyer Address fields to require “Building Number (KSA-18) if the “Buyer Country Code (BT-55) is “SA”.
- Bug fix to not display any warnings on character limits related to “Buyer Name (BT-44)” and ”Buyer Street (BT-50)” for Simplified Invoices (B2C).
- Bug fix on the validation rule BR-KSA-71 to require “Buyer Name (BT-44)” on Summary Simplified Invoices.
- Adding new optional fields for Buyer Contact information (contact name, phone number, email and notes).
- Aligning validation rules on Certificate Signing Request (CSR) Fields for the Compliance CSID to behave same as Production CSID requests with regard to special characters.
- Remove the unused validation rule BR-KSA-54 from schematrons.
- Bug fix on validation rule “BR-S-05” related to “Invoiced item VAT rate (BT-152)”.
- Introduce a new validation rule “BR-KSA-84” to limit the VAT rates to 5% and 15% for Standard Rated VAT Category Code.
- Amend validation rules “BR-KSA-44” and “BR-KSA-46” to allow VAT Registration Number to be provided even if buyer address is outside KSA.
- Adding new optional fields for Buyer Contact information (contact name, phone number, email and notes).
- Aligning validation rules on Certificate Signing Request (CSR) Fields for the Compliance CSID to behave same as Production CSID requests with regard to special characters.
- Remove the unused validation rule BR-KSA-54 from schematrons.
- Bug fix on validation rule “BR-S-05” related to “Invoiced item VAT rate (BT-152)”.
- Introduce a new validation rule “BR-KSA-84” to limit the VAT rates to 5% and 15% for Standard Rated VAT Category Code.
- Amend validation rules “BR-KSA-44” and “BR-KSA-46” to allow VAT Registration Number to be provided even if buyer address is outside KSA.
- Enhancements to align .NET SDK with JAVA SDK.
- Adding a new command on .NET SDK to generate JSON API Request.
- Adding a new command on .NET SDK to generate Certificate Signing Request (CSR).
- Time format in QR Code in .NET SDK.
- Validation issues on .NET SDK.
- Correcting a typo in the message content for rule BR-KSA-42 on .NET SDK.
- XSD Validation issues when signing the invoice using the .NET SDK .
- Correcting the Compliance Response for CSRs generated by .NET SDK.
- Generating the CSR on the correct file path ( destination folder) using .NET SD.
- Validation issues with the PIH on .NET SDK.
- Enhancements to align .NET SDK with JAVA SDK.
- Adding a new command on .NET SDK to generate JSON API Request.
- Adding a new command on .NET SDK to generate Certificate Signing Request (CSR).
- Time format in QR Code in .NET SDK.
- Validation issues on .NET SDK.
- Correcting a typo in the message content for rule BR-KSA-42 on .NET SDK.
- XSD Validation issues when signing the invoice using the .NET SDK .
- Correcting the Compliance Response for CSRs generated by .NET SDK.
- Generating the CSR on the correct file path ( destination folder) using .NET SD.
- Validation issues with the PIH on .NET SDK.
- Reactivate the BR-KSA-15 business rule.
- Reactivate the BR-KSA-35 business rule.
- Reactivate the BR-KSA-36 business rule.
- Reactivate the BR-KSA-15 business rule.
- Reactivate the BR-KSA-35 business rule.
- Reactivate the BR-KSA-36 business rule.
- Bug fix on the validation rule BR-KSA-F-04 to allow negative values in VAT Category Taxable Amount (BT-116) for ‘Not subject to VAT’ or ‘Out of Scope’ transactions.
- Bug fix on the validation rule BR-KSA-70 to mandate Invoice Issue Time (KSA-25).
- Bug fix on the QR Code generation step to match the timestamp in QR Code with the Invoice Issue time (KSA-25) in XML allowing local time and Zulu time formats.
- Bug fix on the validation rule BR-KSA-F-04 to allow negative values in VAT Category Taxable Amount (BT-116) for ‘Not subject to VAT’ or ‘Out of Scope’ transactions.
- Bug fix on the validation rule BR-KSA-70 to mandate Invoice Issue Time (KSA-25).
- Bug fix on the QR Code generation step to match the timestamp in QR Code with the Invoice Issue time (KSA-25) in XML allowing local time and Zulu time formats.
- Minor Bug Fix in validation rule BR-KSA-56 to enforce providing the billing reference ID (BT-25) along with its parent tag(cac:BillingReference) for Credit/Debit Notes ( Invoice types 381,383).
- Minor Bug Fix in validation rule BR-KSA-56 to enforce providing the billing reference ID (BT-25) along with its parent tag(cac:BillingReference) for Credit/Debit Notes ( Invoice types 381,383).
- Minor bug fix in validation rule BR-KSA-75 requiring VAT breakdown for Invoice lines with Pre-paid amounts.”
- Minor bug fix in validation rule BR-KSA-06 to restrict the length of the invoice transaction code (KSA-2) to be exactly 7 digits.
- Minor bug fix in validation rule BR-KSA-75 requiring VAT breakdown for Invoice lines with Pre-paid amounts.”
- Minor bug fix in validation rule BR-KSA-06 to restrict the length of the invoice transaction code (KSA-2) to be exactly 7 digits.
- Changes related to scenarios such as “Taxable Discounts where tax has to be calculated on discount on fair market value principles”
- Correcting the content of warning message for Buyer Name and Buyer Street Name to state 1000 characters instead of 127 characters
- Detection of an empty file and a partially completed readme file in the JAVA SDK.
- Changes allowing multiple discounts at document level and line item level.
- Relaxing the validation rule BR-CO-16 to be “accepted with warnings” instead of a “rejecting with error”.
- Relaxing the requirement to provide “Buyer District (KSA-4)” field for foreign customers.
- VAT category rate (BT-119) <cac:TaxCategory / cbc:Percent> tag is made optional for “Out of Scope” transactions. Which means, for “Out of Scope” transactions BT-119 will work with or without <cac:TaxCategory / cbc:Percent> tag.
- Relax the rules BR-KSA-EN16931-11, BR-CO-10, BR-CO-13 and BR-CO-17 to be “Accepted with Warnings” instead of “Rejected with Error”.
- Solving an issue in BR-KSA-EN16931-11 to accept the value in Item Net Price (BT-146) <cac:InvoiceLine / cac:Price / cbc:PriceAmount> without any rounding.
- Solving an issue in UNTDID 7161 code list for the “Code for the reason for document level charge (BT-105)” and “Code for the reason for invoice line charge (BT-145)” to limit the values to be from the code list exclusively as per para 11.2.8 of XML Implementation Standard.
- VAT category rate (BT-119) <cac:TaxCategory / cbc:Percent> tag is made optional for “Out of Scope” transactions. Which means, for “Out of Scope” transactions BT-119 will work with or without <cac:TaxCategory / cbc:Percent> tag.
- Relax the rules BR-KSA-EN16931-11, BR-CO-10, BR-CO-13 and BR-CO-17 to be “Accepted with Warnings” instead of “Rejected with Error”.
- Solving an issue in BR-KSA-EN16931-11 to accept the value in Item Net Price (BT-146) <cac:InvoiceLine / cac:Price / cbc:PriceAmount> without any rounding.
- Solving an issue in UNTDID 7161 code list for the “Code for the reason for document level charge (BT-105)” and “Code for the reason for invoice line charge (BT-145)” to limit the values to be from the code list exclusively as per para 11.2.8 of XML Implementation Standard.
- Functionality to issue same warnings as Core Solution while validating the E-invoice.
- Functionality (while generating the CSR) to Validate it against known errors.
- Updating the ReadMe files to include Java Jar File Manual.
- Adding “fatoora -help” command with the welcome message while installing the SDK.
- Updating the ReadMe files to include the pre-requisites for ‘Validating an invoice’ and ‘Generating QR Code’.
- Allowing taxpayers to provide multiple Payment Means (optional).
- Introducing a new UBL Tag (cac:LegalMonetaryTotal/cbc:PayableRoundingAmount) to round off the payable amount.
- Removing the Business Rule BR-KSA-50 from the set of validations to avoid any rounding errors when calculating the VAT amount at a line-item level of the invoices
- Amending the content of the validations messages.
- Amending the Maximum characters’ limits for some data fields (BT-35, BT-27, BT-50, BT-44, KSA-10, KSA-22, BT-120) to be 1000 characters
- Amending the implementation of Allowance / Charge reason code and reason text for Document level and Invoice line level to change some rules from being mandatory to optional.
- Amending the implementation of VAT exemption reason text (BT-120) for VAT Category Codes “Z”, “E” and “O” in the set of Validations to accept the invoice with warnings instead of rejecting it.
- BR-O-05, BR-O-06, BR-O-07 rules are changed to KSA specific rules to allow taxpayers to pass the validations even if the tag for percent is not provided.
- Functionality to issue same warnings as Core Solution while validating the E-invoice.
- Functionality (while generating the CSR) to Validate it against known errors.
- Updating the ReadMe files to include Java Jar File Manual.
- Adding “fatoora -help” command with the welcome message while installing the SDK.
- Updating the ReadMe files to include the pre-requisites for ‘Validating an invoice’ and ‘Generating QR Code’.
- Allowing taxpayers to provide multiple Payment Means (optional).
- Introducing a new UBL Tag (cac:LegalMonetaryTotal/cbc:PayableRoundingAmount) to round off the payable amount.
- Removing the Business Rule BR-KSA-50 from the set of validations to avoid any rounding errors when calculating the VAT amount at a line-item level of the invoices
- Amending the content of the validations messages.
- Amending the Maximum characters’ limits for some data fields (BT-35, BT-27, BT-50, BT-44, KSA-10, KSA-22, BT-120) to be 1000 characters
- Amending the implementation of Allowance / Charge reason code and reason text for Document level and Invoice line level to change some rules from being mandatory to optional.
- Amending the implementation of VAT exemption reason text (BT-120) for VAT Category Codes “Z”, “E” and “O” in the set of Validations to accept the invoice with warnings instead of rejecting it.
- BR-O-05, BR-O-06, BR-O-07 rules are changed to KSA specific rules to allow taxpayers to pass the validations even if the tag for percent is not provided.
- Functionality for the Advance Payment and Charges are introduced (Optional)
- Billing reference id character limit increased to 5,000 characters
- Allowing taxpayers to provide address additional number with more than 4 digits
- Allowing taxpayers to provide ‘0’ (Zero) value in the percent UBL tag for VAT category “Not subject to VAT”
- Implementation for the VAT Exemption reason code and reason text amended for VAT categories “Z”, “E”, and “O”
- Introduction of business rules for ensuring the correct calculation of VAT category taxable amount
- Introduce a Business rule for providing “Other Buyer Id” if “Buyer VAT Registration” is not provided
- “Buyer Postal Code” and “Building Number” changed from mandatory to conditional.
Updated the following business rules:
- BR-KSA-71 & BR-KSA-72: Mandating supply date, supply end date, and customer name for summary simplified invoices.
- BR-KSA-EN16931-03, 04, and 05: updated for BT-93, BT-94, BT-137, and BT-138.
Updated the following files:
- Updated to list the JAVA prerequisites on the readme files.
- Updated the csr-config-example.properties to include relevant examples.
- Updated the PDF/A3 sample
Added the following files:
-
- Added USD XML samples for both simplified and standard invoices.
Updated the following business rules:
- BR-KSA-50: Fixed the rounding to be half rounding up
- BR-KSA-EN16931-03: Fixed by including rounding and specifying 2 decimal places
Remove the following business rules:
- BR-O-05: Removed to accept out-of-scope invoices, with or without percent tag(<cbc:Percent></cbc:Percent>)
Updated the following business rules:
- BR-KSA-65: Error message updated to show “Buyer Address Additional number (KSA-19) must be 4 digits if it exists”
Enhancements to:
- Added Tax invoice sample in the format of PDF/A3
Updated the following business rules:
- BR-KSA-64: Plot identification was made optional for both seller and buyer
- BR-KSA-65: Plot identification was made optional for both seller and buyer
Fixes to:
- SDK for Linux version was updated
- Readme file was updated for Linux commands
Enhancements to:
- VAT number and company name was updated into dummy values in the SDK data folder
- .NET project sample was added as a reference with the DLL
Removed the following business rules:
- BR-O-01
- BR-O-12
Updated the following business rules:
- BR-KSA-16: Now it includes all the UNTDID 4461 code list with the zzz value
- BR-KSA-67: Buyer postal code made optional for simplified invoices
- BR-KSA-09: Plot-Identification made optional for the seller on both standard and simplified invoices
- BR-KSA-63: Plot-Identification made optional for the buyer on simplified invoices
Enhancements:
- Additional XML invoices are added to the samples
- standard_invoice_exempt.xml
- standard_invoice_zero_rated.xml
- simplified_invoice_out_of_scope.xml
Updated:
- BR-KSA-10 updated to be optional for simplified invoices
- BR-KSA-16 updated to be optional for simplified invoices
- BR-KSA-50 updated to be optional for simplified invoices
Fixes to:
- QR Code generation, validation and clearance
- CSR Validation
- Rounding of Decimal Numbers on invoices
- QR character limit changed from 500 to 700
In addition to:
- Enhances to error messages making them more specific
As part of our continuous improvement efforts to the Pilot E-Invoicing Solution (Fatoora), SDK was enhanced to make it more user friendly and straightforward to use. Moreover, we developed a set of complimentary documents to aid you.
Note: please refer to the “Readme” folder in the SDK for a description about this latest release.
This version fixes a security issue that was identified in the java component log4j that allowed unauthenticated remote code execution and access to servers.
This is the first version of the SDK.