dazza-dev/laravel-dgii-sv

Paquete Laravel para facturación electrónica DGII (El Salvador).

Installs: 3

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/dazza-dev/laravel-dgii-sv

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

This package is auto-updated.

Last update: 2025-11-11 03:12:20 UTC


README

Laravel DGII es un paquete que te permite 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 DGII (Ecuador).

Instalar

composer require dazza-dev/laravel-dgii-sv

Configurar

Publica el archivo de configuración:

php artisan vendor:publish --tag="laravel-dgii-sv-config"

Migraciones

Publica y ejecuta las migraciones:

php artisan vendor:publish --tag="laravel-dgii-sv-migrations"
php artisan migrate

Insertar los datos

php artisan dgii-sv:install

Variables de entorno

DGII_TEST=true # true o false
DGII_AUTH_NIT=nit_acceso
DGII_AUTH_PASSWORD=clave_acceso
DGII_CERTIFICATE_PATH=ruta_del_certificado
DGII_CERTIFICATE_PASSWORD=clave_del_certificado
DGII_PATH=ruta_donde_se_guardaran_los_archivos

Ejemplos

Generar un documento electrónico

Para enviar un documento electrónico como Factura, Guía de remisión, Nota crédito, Nota débito o Comprobante de retención. primero debes pasar la estructura de datos que puedes encontrar en: dazza-dev/dgii-json-generator.

use DazzaDev\LaravelDgiiSv\Facades\LaravelDgiiSv;

$client = LaravelDgiiSv::getClient();

// Usar el valor en inglés de la tabla
$client->setDocumentType('invoice');

// Datos del documento
$client->setDocumentData($documentData);

// Enviar el documento
$document = $client->sendDocument();

Tipos de documentos disponibles

Document type Nombre en español
invoice Factura
credit-note Nota crédito
debit-note Nota débito
delivery-note Nota de remisión
donation-receipt Comprobante de donación
export-invoice Factura de exportación
exempt-taxpayer-invoice Factura de sujeto excluido
tax-credit-invoice Comprobante de crédito fiscal
contingency Evento de contingencia
invalidation Evento de invalidación

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\LaravelDgiiSv\Facades\LaravelDgiiSv;

// Obtener los listados disponibles
$listings = LaravelDgiiSv::getListings();

// Consultar los datos de un listado por tipo
$listingByType = LaravelDgiiSv::getListing('tipos-documento');

Contribuciones

Las 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 pautas de contribución.

Autor

Laravel DGII El Salvador fue creado por DAZZA.

Licencia

Este proyecto está licenciado bajo la MIT License.