dazza-dev / laravel-feco
Paquete Laravel para facturación electrónica DIAN (Colombia).
Requires
- php: >=8.0
- dazza-dev/dian-feco: ^1.0
- laravel/framework: ^8.0|^9.0|^10.0|^11.0|^12.0
Requires (Dev)
- larastan/larastan: ^2.0
- laravel/pint: ^1.18
- orchestra/testbench: ^8.27
README
Laravel Feco es un paquete que te permite generar facturas electrónicas en Colombia (DIAN).
Instalar
composer require dazza-dev/laravel-feco
Configurar
Publica el archivo de configuración:
php artisan vendor:publish --tag="laravel-feco-config"
Migraciones
Publica y ejecuta las migraciones:
php artisan vendor:publish --tag="laravel-feco-migrations"
php artisan migrate
Insertar los datos
php artisan feco:install
Variables de entorno
FECO_TEST=true # true o false
FECO_SOFTWARE_IDENTIFIER=identificador_del_software
FECO_SOFTWARE_TEST_SET_ID=id_del_conjunto_de_pruebas
FECO_SOFTWARE_PIN=pin_del_software
FECO_CERTIFICATE_PATH=ruta_del_certificado
FECO_CERTIFICATE_PASSWORD=clave_del_certificado
FECO_PATH=ruta_donde_se_guardaran_los_archivos
FECO_TECHNICAL_KEY=clave_tecnica
Ejemplos
Obtener el rango de numeración
use DazzaDev\LaravelFeco\Facades\LaravelFeco; $numberingRange = LaravelFeco::getNumberingRange('nit_emisor');
Generar un documento electrónico (factura, nota de crédito o nota de débito)
Para conocer la estructura de los datos de, puedes consultar la dazza-dev/dian-xml-generator.
use DazzaDev\LaravelFeco\Facades\LaravelFeco; $client = LaravelFeco::getClient(); $client->setDocumentType('invoice'); // invoice, credit-note o debit-note $client->setDocumentData($documentData); $invoice = $client->sendDocument();
Obtener los listados
La DIAN 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 de la DIAN:
$client = LaravelFeco::getClient(); $listings = $client->getListings(); $listingByType = $client->getListing('identification-types');
Emitir Eventos
La estructura de los datos del evento la puedes encontrar en: dazza-dev/dian-xml-generator.
$client = LaravelFeco::getClient(); $client->setEventCode('030'); // Consultar listado de eventos $client->setEventData($eventData); // Datos del evento $document = $client->sendEvent();
Obtener los eventos de un documento
Después de enviar un documento electrónico, puedes obtener los eventos de ese documento asi:
$client = LaravelFeco::getClient(); $events = $client->getStatusEvent('cufe/cude_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 Feco fue creado por DAZZA.
Licencia
Este proyecto está licenciado bajo la MIT License.