dazza-dev / dgii-sv
Paquete para generar, firmar y enviar documentos electrónicos (Factura, Guía de remisión, Nota crédito, Nota débito y Comprobante de retención) al DTE (El Salvador).
Installs: 4
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/dazza-dev/dgii-sv
Requires
- php: >=8.0
- dazza-dev/dgii-json-generator: ^1.0
- dazza-dev/dgii-sv-sender: ^1.0
- dazza-dev/dgii-sv-signer: ^1.0
README
Paquete para generar, firmar y enviar documentos tributarios electrónicos (DTE) (Factura, Nota de remisión, Nota crédito, Nota débito y Comprobante de retención) al DGII (El Salvador).
Instalación
composer require dazza-dev/dgii-sv
Uso
use DazzaDev\DgiiSv\Client; $client = new Client(true); // true (pruebas), false (producción) // Configurar las credenciales del emisor $client->setCredentials([ 'nit' => '06231103251021', 'password' => 'Auranet.2025*', ]); // Configurar el certificado y la clave privada del emisor $client->setCertificate([ 'path' => '/ruta_del_certificado.crt', 'password' => 'clave_privada', ]); // Configurar la ruta donde se guardarán los documentos firmados $client->setFilePath(__DIR__ . '/documentos');
Enviar un documento tributario electrónico (DTE)
Para enviar un documento tributario electrónico (DTE) como Factura, Nota de remisión, Nota crédito, Nota débito o Comprobante de retención.
// Configurar el tipo de documento tributario electrónico (DTE) $client->setDocumentType('invoice'); // Configurar los datos del documento tributario electrónico (DTE) $client->setDocumentData($documentData); // Enviar el documento tributario electrónico (DTE) $document = $client->sendDocument();
Enviar documentos por lotes
Para enviar documentos tributarios electrónicos (DTE) en lotes.
$document = $client->sendBatch( documentType: 'invoice', documents: $documents );
Buscar un documento tributario electrónico (DTE)
Para buscar un documento tributario electrónico (DTE) por tipo y código de generación.
$search = $client->search( documentType: 'invoice', generationCode: '73BF2BF3-6C7B-4530-B1F6-6586906D5604' );
Buscar por lotes
$search = $client->searchBatch( batchCode: 'batch_code' );
Invalidar un documento tributario electrónico (DTE)
Para invalidar un documento tributario electrónico (DTE) por tipo y código de generación.
$client->setDocumentType('invalidation'); $client->setDocumentData($documentData); $invalidate = $client->invalidateDocument();
Evento de contingencia
Para enviar un evento de contingencia.
$client->setDocumentType('contingency'); $client->setDocumentData($documentData); $contingency = $client->contingencyEvent();
Obtener los listados
DGII tiene una lista de códigos que este paquete te pone a disposición para facilitar el trabajo de consultar esto en el anexo técnico:
use DazzaDev\DgiiSv\Listing; // Obtener los listados disponibles $listings = Listing::getListings(); // Consultar los datos de un listado por tipo $listingByType = Listing::getListing('tipos-documento');
Contribuciones
Contribuciones son bienvenidas. Si encuentras algún error o tienes ideas para mejoras, por favor abre un issue o envía un pull request. Asegúrate de seguir las guías de contribución.
Autor
DGII El Salvador fue creado por DAZZA.
Licencia
Este proyecto está licenciado bajo la Licencia MIT.