// Check if invoice was submitted
if ($order->isSubmittedToZatca()) {
// Get the current status
$status = $order->getZatcaStatus();
// Check for any errors
if ($order->hasZatcaErrors()) {
$errors = $order->getZatcaErrors();
}
}
// Zatca Facade Methods
Zatca::prepare();
Zatca::submitInvoice(string|int $businessId, array $invoiceData);
Zatca::submitSimplifiedInvoice(string|int $businessId, array $invoiceData);
Zatca::submitStandardInvoice(string|int $businessId, array $invoiceData);
Zatca::getInvoiceStatus(string|int $businessId, string $invoiceNumber);
Zatca::validateInvoice(array $invoiceData);
Zatca::generateQRCode(array $invoiceData);
// HasZatcaInvoice Trait Methods
$model->order(); // Get order relationship
$model->submitToZatca(); // Submit invoice
$model->isSubmittedToZatca(); // Check submission status
$model->getZatcaStatus(); // Get invoice status
$model->hasZatcaErrors(); // Check for errors
$model->getZatcaErrors(); // Get error details
Database Structure
The package creates three main tables:
1.devices_zatca : Stores device registration information
2.orders_zatca : Stores invoice submission details
View full schema details in our [API Reference](/api-reference).
Security
The package implements comprehensive security measures:
Row Level Security (RLS) enabled for all tables
Hash chaining for invoice integrity
Secure storage of private keys and secrets
Authentication required for all operations
Data access controlled through policies
Contributing & License
This package is open-source software licensed under the MIT license. Contributions are welcome - please feel free to submit Pull Requests on our GitHub repository.