dazza-dev/dian-feco

Paquete para enviar documentos electrónicos (Facturas, Notas Crédito y Notas Débito) a la DIAN.

v1.0.0 2025-03-13 04:04 UTC

This package is auto-updated.

Last update: 2025-03-13 04:06:04 UTC


README

Paquete para enviar documentos electrónicos (Facturas, Notas Crédito y Notas Débito) a la DIAN.

Instalación

composer require dazza-dev/dian-feco

Configuración

use DazzaDev\DianFeco\Client;

$client = new Client(test: true); // true or false

$client->setSoftware([
    'identifier' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
    'test_set_id' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
    'pin' => 'pin_software',
]);

$client->setCertificate([
    'path' => _DIR_ . '/certificado.p12',
    'password' => 'clave_certificado',
]);

// Ruta donde se guardarán los archivos xml y zip
$client->setFilePath(_DIR_ . '/feco');

Uso

Enviar un documento electrónico (factura, nota de débito o nota de crédito)

La estructura de los datos de la factura la puedes encontrar en: dazza-dev/dian-xml-generator.

$client->setDocumentType('invoice'); // Tipo de documento ('invoice', 'debit-note', 'credit-note')
$client->setDocumentData($documentData); // Datos del documento

$client->setTechnicalKey('clave_tecnica'); // Clave técnica (Solo para facturas)

$document = $client->sendDocument();

Obtener las numeraciones

Después de asignar los prefijos dentro del modulo Facturando electrónicamente de la DIAN, puedes obtener las numeraciones asi:

$numberingRange = $client->getNumberingRange('nit_emisor');

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:

$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->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:

$events = $client->getStatusEvent('cufe/cude_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

DIAN FECO fue creado por DAZZA.

Licencia

Este proyecto está licenciado bajo la Licencia MIT.