Electronic invoicing system in Egypt

It would be great to add withholding tax types with the ability to add different rates and choose from like the ones in tax codes with the ability to calculate on the pre-tax value.

I mean Transform from Manager Invoice Json into Egyptian eInvoicing json.

They have different formats and require different data resources as well.

Hi @accesslam_hagag,

I would like to ask for your assistance once again.
I have successfully tested submitting an invoice version 0.9 through EgyptEGS.
But for version 1.0, I am facing an issue related to eInvoice Signature because I do not have a USB Token for testing.

Access to the USB Token can only be done locally on the computer where the device is connected. So I try to developed SignService app (a portable application for signing invoices that can be run directly without installation).

Currently, I am using a Virtual Device for testing, but I need your help to test it using the physical device you have.

Here are the steps:

  1. Download and extract the application from this link SignService.rar.

  2. Run SignServices.exe. No installation is required.

  3. If the application runs successfully, open your browser and access: http://localhost:5211.

  4. Specify the location of the PKCS#11 driver according to your USB Token device.

  5. Enter your PIN and click Test Driver Connection.

  6. If the connection is successful, the page will display token information and certificates from your USB.

  7. Next, you can try the Sign Document feature — if successful, a CADES-BES formatted digital signature will be displayed.

Here are the default file locations for PKCS#11 drivers for several types of USB Tokens:

ePass2003
C:\Windows\System32\eps2003csp11.dll

WD PROXKey
C:\Windows\System32\wdpkcs.dll

Egypt Trust (Oberthur or TrustSec)
C:\Windows\System32\Oberthur_Pkcs11.dll
or
C:\Windows\System32\TrustSec_Pkcs11.dll

Token DS (if used)
C:\Windows\System32\tokends.dll

If all processes run smoothly, I am ready to integrate this solution into the EgyptEGS Project.

Thank you very much for your time and support.
Please let me know if you have any issue during testing.

1 Like

EgyptEGS Project: Now Available for Testing!

I’m happy to share that the Egypt EGS project has been released and is ready for testing. Right now, it only supports Invoice v0.9 as we’re still working on solving some challenges with digital signatures.

Here’s how to get started:

1. Register with ETA Invoicing Portal

  1. Go to https://preprod.invoicing.eta.gov.eg/
  2. Log in with your email and password
  3. Click on your account name and select TaxPayer Profile
  4. Choose “New ERP Registration” to get your ClientID and ClientSecret
  5. Save these for later use

2. Set Up Manager Integration

  1. Create a new business in Manager
  2. Turn on the Customer, Invoice, Credit Note, and Inventory Item tabs
  3. Create a new invoice, add https://egyptegs.azurewebsites.net/relay to the Relay field, and save
  4. Open this invoice and click the Relay button to access the setup page
  5. Click “Update Business Data” to create all the necessary fields and settings
  6. Fill in your company information matching what’s in the Egypt Invoice Portal
  7. On the next tab, choose “PreProduction” on Integration Type for testing
  8. Enter your ClientID and ClientSecret, then click Verify Credential
  9. If successful, click “Save Integration Config

3. Configure Your Settings

  1. Create the Manager TaxCodes you need (Name format: TaxType-TaxSubtype)
  2. Set up your product/service codes on Invoicing Portal (make sure they’re approved by ETA)
  3. Create your Inventory items with proper codes and unit types
  4. Add your Customers with all required information
  5. Create default forms for invoices and credit notes
  6. Choose which columns to display in your invoice tabs

4. Creating and Submitting Invoices

  1. Create a new invoice with all required information
  • For WHT, use Amount (calculate it from the Subtotal)
  • Discounts can be percent or amount
  • Add a footer if you want a QR code
  • Note: Tax Inclusive isn’t supported yet
  1. Open the invoice and click Relay
  • Double-check everything before submitting
  • Click “Submit Document” and check the status
  • If you get “Invalid,” check the server response for detail errors, correct it and resubmit Invoice.
  • Wait a bit, then click “Update Status” to see the latest status
  1. For credit notes:
  • Start from an invoice with “Valid” status
  • Choose “Copy To New Credit Note
  • Make sure all details match the original invoice
  1. After submitting, wait for the status to change to “Valid,” “Canceled,” or “Rejected
  2. When successful, you’ll see a QR code and link to print your Tax Invoice

Remember: You’ll still need to use the Invoice Portal for things like registering codes, canceling invoices, etc.


Help Needed!

If you’re a Manager user in the ETA region, I’d really appreciate your help testing this out. Your feedback would be super valuable - please let me know what works, what doesn’t, and any ideas for making it better.

Thanks for your support! :blush:

Update :
2025-03-08 : Added Codes and UnitType validation, to reduce the possibility of sending Invalid Invoices.

4 Likes

@Mabaega really appreciated, great work, even i don’t belong to the country, but your effort :clap:

1 Like

This is great work I have tested this on demo environment and invoice is issued correctly. I will test it on live environment with e-signature and let you know the details.

I will try it but I am out of Egypt now. Once I get back to Egypt I will try to do this work and tell you the details.

1 Like