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

v1.0.0 2025-11-11 03:10 UTC

This package is auto-updated.

Last update: 2025-11-11 03:11:23 UTC


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.