A free and open-source Frappe application for KSA Compliance (ZATCA Integration), offering support for both Phase 1 and Phase 2.
- ZATCA Phase 1 - compliance
- ZATCA Phase 2 - compliance
- Simplified invoice
- Standard Invoice
- Wizard onboarding
- Automatic ZATCA CLI setup
- Tax exemption reasons
- ZATCA dashboard
- Embedded Invoice QR without impacting storage
- Embedded Invoice XML without impacting storage
- ZATCA phase 1 print format
- ZATCA phase 2 print format
- Resend process
- Rejection process
- ZATCA Integration Live and Batch modes
- Multi-company support
- Multi-device setup
- Embedded compliance checks log
- System XML validation
- Support ZATCA Sandbox
- Frappe Cloud:
One-click installing available if you are hosting on Frappe Cloud - Self Hosting:
bench get-app --branch master https://github.com/lavaloon-eg/ksa_compliance.git
bench setup requirements
bench --site [your.site.name] install-app ksa_compliance
bench --site [your.site.name] migrate
bench restart
- If you are hosting on FC premium support is available
- If you need premium support please email: [email protected]
- Available in GitHub discussions https://github.com/lavaloon-eg/ksa_compliance/discussions
- Please Create Github Issue https://github.com/lavaloon-eg/ksa_compliance/issues after checking the existing issues
- Please include bench information (i.e. output of
bench version
) - For invoice rejections, please attach or paste the generated invoice XML (from
Sales Invoice Additional Fields
), any validation warnings/errors, and screenshots of theSales Invoice
document
- Please include bench information (i.e. output of
- For paid features, you can email us: [email protected]
This project is configured to run ruff lint
and run format
before commits, but you have to set it up locally as
follows. Setup development dependencies:
bench setup requirements --dev
Activate the bench environment:
source env/bin/activate
Install the pre-commit hook:
pre-commit install
This will generate a git hook at .git/hooks/pre-commit
. This hook will run before committing and will fail if:
- There are errors that can't be automatically fixed. In this case, fix them manually and commit
- If formatting changes were applied. In this case, simply try to commit again and it should go through
You can run either manually from bench after activating the environment using:
ruff lint
ruff format
You can also add them as "External Tools" in PyCharm to be able to run them from the Tools -> External Tools
menu
(or assign them shortcuts from the action search menu)
Copyright (c) 2024 LavaLoon, The KSA Compliance App code is licensed as AGPL