You are welcome Groza first ZATCA uses x509 certificates, and the procedures has to be done in two stages. A. The boarding stage 1. the reporting software ( ofbiz for example ) will generate a CSR ( Certificate signing request ) 2. The reporting software will send this CSR to ZATCA via rest api. 3. ZATCA will respond with (CSID) X509 temporary certificate along with a secret -basic auth for further requests - ( for pre-production or for proving that the software reports the invoices correctly). 4. the reporting software will use this certificate to simulate the reporting of different invoice types ( Simplified invoice, Standard invoice, Credit Note, Debit note ...etc). 5. After successful reporting, the software will send a request to ZATCA API to get the production CSID ( X509).
B. Reporting stage. 1. After getting the production (CSID) X509 from the boarding stage , The software now is ready for reporting real financial transactions. 2. The reported invoices has to be signed by the reporting software and it have to be in compliance with UBL 2.1 C. Ofbiz and ZATCA 1. Of course the transactions and tables of ofbiz has to be changed to fit for additional fields. 2. Ofbiz transactions ( Sales Invoices, Purchase invoices ..etc) will be converted to UBL Xml Invoices. 3. The XML Invoices after signing it and generating QR code for it, it is saved in a local disk file / database table or whatever is applicable. 4. Then the software will make a json request for the XML invoice and send it to the ZATCA api. 5. ZATCA will responed with the status of reporting ( Reported, not reported ). For further information here is the useful link https://zatca.gov.sa/en/E-Invoicing/SystemsDevelopers/Pages/default.aspx Regards On Fri, Aug 30, 2024 at 10:14 PM Groza Danut <grozadanu...@gmail.com> wrote: > Thank you Omar! > > Could you share the implementation you did for Saudi Arabia? Not the code, > just the general structure, the workflow and the steps you do to report the > invoices? > Groza Danut > > On Fri, 30 Aug 2024, 17:51 Omar Abdullwahhab, <omar.abdullwah...@gmail.com > > > wrote: > > > Ok that is good, > > And after finishing it would be good if you create a new ofbiz plugin and > > make the repo available at github, > > So that everyone and I can also share. > > So it can be a useful plugin even if its not part of the official > > ofbiz-plugin repository. > > And I am ready also to contribute > > > > > > > > On Fri, Aug 30, 2024 at 3:29 PM Groza Danut <grozadanu...@gmail.com> > > wrote: > > > > > Hi Omar, > > > > > > Yea I also agree that an eInvoicing plugin would be the best choice to > > > implement. This plugin should be configurable separately for each > > country, > > > since each country will have specific requirements. > > > > > > Going further: > > > 1. For the mapping, the library you mention is also the one I used in > my > > > implementation, so I agree we should use it. > > > 2. OAUTH client library > > > > > > Currently the Romanian registry uses OAUTH2 with a JWT token for > > > authentication with the api. Probably other countries as well. So is > > there > > > an OAUTH2 client in Ofbiz that we can use? I will investigate the > > passport > > > plugin to see if we can use the code in there. > > > > > > On Fri, Aug 30, 2024 at 2:54 PM Omar Abdullwahhab < > > > omar.abdullwah...@gmail.com> wrote: > > > > > > > Hello Groza > > > > Sorry this is another detailed Email, > > > > Regarding e-invoicing or e-factura. > > > > Yes this will be very helpful, because it is already adapted by many > > > > countries, > > > > And soon will be widely used. > > > > The main good thing that can be of help is > > > > 1. Mapping the ofbiz Invoices to XML Invoice. > > > > 2. Making the connector as configurable as possible, because it will > be > > > > different for each Authority of Country. > > > > 3. It will be nice if the information about e-invoicing collected > from > > > > different countries. > > > > 4. also many new IT companies have little knowledge about the > > e-invoicing > > > > and it will consume time to understand it, > > > > So if ofbiz will offer that for them it will be nicer. > > > > > > > > Regards. > > > > > > > > > > > > On Wed, Aug 28, 2024 at 4:47 PM Groza Danut <grozadanu...@gmail.com> > > > > wrote: > > > > > > > > > Hello devs, > > > > > > > > > > I need to consult with the community in regard to a new plugin > > > > > contribution. > > > > > > > > > > Currently the Romanian law states that all B2B and B2G invoices > > > operated > > > > > inside Romania must be reported to a national registry, called > > > > > eFactura(eInvoice) operated by the romanian fiscal authority(called > > > > ANAF). > > > > > > > > > > *The workflow is:* > > > > > 1. Supplier sends the Invoice to the national registry. > > > > > 2. Invoice Recipient downloads the Invoice from the national > registry > > > and > > > > > registers it. > > > > > > > > > > *Notes:* > > > > > - printed or emailed Invoices are NOT considered valid, only those > > sent > > > > > through this registry > > > > > - the Invoices are uploaded and downloaded from the registry in xml > > > > format > > > > > (UBL) > > > > > - the registry has a REST api with OAUTH2 authentication > > > > > > > > > > I have the following ideas for this plugin contribution: > > > > > > > > > > *1. New plugin called eFactura* > > > > > > > > > > This will focus on specific reporting of Invoices for businesses > that > > > > > operate within Romanian boundaries. This will be very specific, but > > > > > probably not used outside of Romania. Are there any known Romanian > > > > > developers or businesses here? > > > > > > > > > > *2. New plugin called eInvoice* > > > > > > > > > > More generic plugin that allows for generic reporting of Invoices > > based > > > > on > > > > > configurations. This would allow using the plugin for other > countries > > > > where > > > > > Invoice reporting is mandatory. For example Bulgaria has a similar > > > > registry > > > > > called eFaktura, as far as I know. > > > > > > > > > > *3. New plugin called InvoiceConnector(or some other name)* > > > > > > > > > > This would be the most generic plugin that has extended > configuration > > > > > capabilities. Basically, this would allow you to specify in what > > format > > > > you > > > > > want to export or import invoices(for example UBL2.1), and the > method > > > of > > > > > exporting/importing(example: from/to file, REST api, etc...). This > > > would > > > > > basically be similar to a data mapping tool plus a REST > integration. > > I > > > > > haven't yet seen any possibility in Ofbiz to export or import > > Invoices > > > > in a > > > > > format other than the standard entity xml format, is there some?? > > > > > > > > > > *Do you think any of these contributions would be of any help to > the > > > > > community?* > > > > > > > > > > Of course I will be maintaining the code for the eFactura connector > > > part, > > > > > since we will be actively using this in our companies. > > > > > > > > > > -- > > > > > Groza Dănuț > > > > > > > > > > > > > > > > > -- > > > > Omar Abu-Arab > > > > Java Engineer > > > > > > > > > > > > > -- > > > Groza Dănuț > > > > > > > > > -- > > Omar Abu-Arab > > Java Engineer > > > -- Omar Abu-Arab Java Engineer