Weave 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 Laravel que permite emitir comprobantes electrónicos con Greenter: firma digital, envío a SUNAT (SEE o API REST), gestión de CDRs, generación de XML firmados y representación impresa en HTML y PDF, con soporte para múltiples empresas emisoras.

View on GitHub
Deep Wiki
Context7

Laravel Greenter es un paquete que simplifica la emisión de comprobantes electrónicos en Laravel mediante la integración con Greenter. Permite firmar documentos digitalmente, enviarlos a SUNAT (SEE o API REST) y obtener respuestas estructuradas (CDRs) sin lidiar directamente con SOAP o XML.

  • Firma digital de comprobantes y generación de XML firmados.
  • Envío a SUNAT vía SEE o API REST, con gestión de CDRs.
  • Representación impresa en HTML y PDF (usando wkhtmltopdf).
  • Emisión dinámica para múltiples empresas desde una misma app.
  • Plantillas personalizables y facades para integración rápida.
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.
andydefer/laravel-notification
adachsoft/cli-process-tester
jhaskell13/laraflow
sebastienheyd/boilerplate-media-manager
ccast/tagixo-primix
pretendtrue/laravel-builder
sawmainek/laravel-scout-tntsearch-driver
tomshaw/laravel-calendar-table
dibakar/laravel-ownership
steadrun/laravel-monitor
labyrinthe/connect-laravel
elmogy/layan
drewdan/sentinel-client
dskripchenko/laravel-llm
fatryst/nuonuo
stevenay/myanfont
gmostafa/php-graphql-client
xeviant/paystack
snowsoft/faker
meditationsteps/blogetc