Download the PHP package sahlowle/laravel-zatca without Composer
On this page you can find all versions of the php package sahlowle/laravel-zatca. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download sahlowle/laravel-zatca
More information about sahlowle/laravel-zatca
Files in sahlowle/laravel-zatca
Package laravel-zatca
Short Description Laravel package for ZATCA (Saudi Arabia) e-invoicing integration
License MIT
Informations about the package laravel-zatca
Laravel ZATCA E-Invoicing
A production-grade, open-source Laravel package for complete compliance with Saudi Arabia's ZATCA E-Invoicing requirements (Phase 1 & Phase 2).
Features
- E-Invoicing: Full support for B2B (Standard) and B2C (Simplified) invoices.
- XML Generation: Robust UBL 2.1 XML building, correctly typed and schema-compliant.
- QR Generation: Mandatory TLV (Tag-Length-Value) Base64 encoding for QR codes (all 9 tags supported).
- Phase 1 Compliance: Generate XML and QR codes locally.
- Phase 2 Compliance: Full API integration for Clearance (Standard) and Reporting (Simplified) workflows.
- Sandbox Support: Switch seamlessly between ZATCA Developer Portal (Sandbox) and Core API (Production).
- Cryptography Engine: Built-in support for ECDSA secp256k1 private keys, C14N XML canonicalization, and SHA-256 hashing.
- CSID Lifecycle: Artisan commands for CSR generation, compliance checks, and CSID onboarding.
- Eloquent Integration: A simple
HasZatcatrait to drop into your existingInvoicemodels.
Requirements
- PHP 8.1+
- Laravel 10.x / 11.x
ext-opensslext-simplexml
Installation
You can install the package via composer:
Publish the configuration file and migrations:
Run the migrations to create the zatca_certificates and zatca_submissions tables:
Configuration
Set your organization and seller details in config/zatca.php or your .env file:
Usage
1. Generate CSR & Private Key
Run the interactive command to generate a ZATCA-compliant CSR and secp256k1 private key.
Submit this CSR to the ZATCA portal to retrieve an OTP.
(Note: Currently activate-csid command will be implemented to automatically store the CSID and secret from the OTP. For now, you can manually issue the API call via Zatca::client()->issueComplianceCsid() and store it in your DB).
2. Eloquent Trait Integration
Add the HasZatca trait to your existing Invoice model:
3. Generate XML and Submit
Once your model is configured, submission is one method call away:
Fluent API (Without Models)
You can also use the Facade to build and submit invoices manually:
Credits
Support
Please open an issue in GitHub if you encounter any problems or have feature requests.
Security Vulnerabilities
If you discover a security vulnerability within this package, please send an e-mail to the maintainer. All security vulnerabilities will be promptly addressed.
License
The MIT License (MIT).
All versions of laravel-zatca with dependencies
illuminate/support Version ^9.0|^10.0|^11.0|^12.0|^13.0
guzzlehttp/guzzle Version ^7.0
bacon/bacon-qr-code Version ^2.0
ext-openssl Version *
ext-simplexml Version *