Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Laravel Greenter

Laravel Greenter Laravel Package

codersfree/laravel-greenter

Paquete para emitir comprobantes electrónicos en Laravel con Greenter: firma digital, envío a SUNAT (SEE o REST), generación de XML firmados, manejo de CDR y representación impresa en HTML/PDF. Soporta emisión para múltiples empresas y envío de XML existente.

View on GitHub
Deep Wiki
Context7

Laravel package for Greenter

Frequently asked questions about Laravel Greenter
¿Cómo instalo Laravel Greenter en un proyecto Laravel 11+?
Ejecuta `composer require codersfree/laravel-greenter` y publica los archivos de configuración con `php artisan vendor:publish --tag=greenter-laravel`. Esto generará el archivo `config/greenter.php` y recursos como certificados y logos. Asegúrate de tener PHP 8.1+ y las extensiones `soap`, `openssl`, `dom` y `xml` habilitadas.
¿Qué tipos de comprobantes electrónicos soporta este paquete para SUNAT?
Laravel Greenter soporta facturas electrónicas, notas de crédito, recibos por operaciones en el exterior (ROE) y otros documentos tributarios exigidos por SUNAT. También permite personalizar plantillas para tipos de comprobantes específicos, como facturas ligeras (hasta S/ 1500). Consulta la sección de 'Otros Tipos de Comprobantes' en la documentación.
¿Cómo configuro las credenciales para firmar digitalmente los comprobantes?
Edita el archivo `config/greenter.php` y define las claves bajo la sección `credentials`. Puedes usar PKCS12 (recomendado por SUNAT) o OCSP. Para PKCS12, sube tu archivo `.p12` a `storage/app/greenter/certs/` y configura el path y contraseña. Verifica que OpenSSL esté habilitado en tu servidor (`php -m | grep openssl`).
¿Cómo envío un comprobante a SUNAT y manejo la respuesta (CDR)?
Usa el facade `Greenter` para emitir el comprobante: `Greenter::invoice()->send()`. El paquete devuelve un objeto con métodos como `getCdr()`, `getResponseCode()` y `isAccepted()` para validar la respuesta. También puedes convertir el CDR a array con `toArray()`. Para depuración, revisa los logs en `storage/logs/laravel.log`.
¿Puedo generar el XML firmado sin enviar a SUNAT para pruebas o integración con otros sistemas?
Sí, usa `Greenter::invoice()->generateSignedXml()` para crear el XML firmado localmente. También puedes enviar un XML existente a SUNAT con `Greenter::sendExistingXml($xmlPath)`. Esto es útil para validar esquemas antes de la emisión real o integrar con sistemas externos que requieran el XML como entrada.
¿Cómo genero un PDF o HTML del comprobante para imprimir o mostrar al cliente?
Usa `Greenter::invoice()->render('pdf')` o `Greenter::invoice()->render('html')`. Para PDF, necesitas `wkhtmltopdf` instalado. Personaliza las plantillas editando los archivos en `resources/views/vendor/greenter/`. Puedes generar el reporte sin enviar a SUNAT con `Greenter::invoice()->generateReportOnly()`.
¿Cómo manejo múltiples empresas con diferentes credenciales SUNAT en un solo proyecto?
Configura un array de credenciales en `config/greenter.php` bajo `credentials`. Luego, al emitir un comprobante, especifica la empresa con `Greenter::setCompany('nombre_empresa')`. El paquete soporta emisión dinámica para múltiples empresas sin duplicar código. Cada empresa debe tener su propio certificado digital y configuración.
¿Qué debo hacer si SUNAT rechaza un comprobante por error en el XML o firma?
Revisa el código de respuesta (`getResponseCode()`) y el mensaje de error (`getResponseMessage()`). Los errores comunes incluyen XML mal formado, certificados expirados o datos inválidos. Usa el entorno de prueba de SUNAT (SEE) para validar antes de producción. Implementa logs detallados y notificaciones para errores críticos.
¿Cómo pruebo la integración con SUNAT antes de ir a producción?
Configura el entorno de prueba en `config/greenter.php` con `env('SUNAT_ENVIRONMENT', 'sandbox')`. Usa el certificado de prueba proporcionado en `public/certs/certificate.pem` y prueba con datos ficticios. SUNAT ofrece un entorno de pruebas (SEE) para validar XML y respuestas sin impacto real. Automatiza pruebas con PHPUnit usando mocks para las respuestas de SUNAT.
¿Hay alternativas a Laravel Greenter para facturación electrónica en Perú?
Alternativas incluyen paquetes como `spatie/laravel-sunat` o integrar directamente la librería [Greenter](https://github.com/thegreenter/greenter) sin Laravel. Sin embargo, Laravel Greenter destaca por su integración nativa con Laravel (facades, eventos, configuración centralizada) y soporte para múltiples tipos de comprobantes. Evalúa si necesitas características específicas como generación de PDF o manejo avanzado de CDR.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
croct/coding-standard
croct/plug-php
nqxcode/phpmorphy
boundwize/pyrameter
develia/commons
dmstr/symfony-system-resources-bundle
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
renatomarinho/laravel-page-speed
develia/geo-bundle
austinheap/laravel-database-encryption
dreamzy/livewire-charts
touchestate-sdk/php-sdk
22h/doctrine-garbage-collection-bundle
imbo/imbo-coding-standard
visualbuilder/filament-lottie
servicioslineaonce/starter-kit
atomcoder/laravel-reorderable
irajul/filament-shadcn-theme
agtp/agtp-php