Download the PHP package elpandape/quipu-laravel without Composer

On this page you can find all versions of the php package elpandape/quipu-laravel. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package quipu-laravel

quipu-laravel

Integración de quipu con Laravel: la maquinaria de facturación electrónica de SUNAT (CPE Perú) —construir el XML UBL 2.1, firmarlo, enviarlo a los webservices SOAP de SUNAT y parsear el CDR— cableada en el contenedor, la configuración y las facades de Laravel. Detecta automáticamente la edición Pro (elpandape/quipu-pro) y activa sus capacidades cuando está instalada.

Requisitos

Instalación

El ServiceProvider se registra por auto-discovery. Publica la configuración (opcional) con:

Las migraciones (comprobantes, tickets, series, idempotencia) se cargan solas; para adueñarte del esquema:

Instalar la edición Pro

elpandape/quipu-pro es comercial y no está en Packagist: se sirve desde el registro privado https://packages.elpanda.pe, con las credenciales de tu licencia (usuario = el correo de la licencia, contraseña = el token). Regístralo en tu proyecto:

Una vez instalado, quipu-laravel lo detecta solo (config('quipu.pro') = auto) y activa sus capacidades. Las credenciales quedan en auth.json: no lo subas al repositorio.

Configuración mínima

Todo se lee de config/quipu.php, respaldado por variables de entorno. Lo mínimo en tu .env:

Fuente del certificado (QUIPU_CERT_SOURCE) — pensada para entornos cloud, donde una ruta local no persiste:

Fuente Variable Uso
path QUIPU_CERTIFICATE_PATH Archivo PEM local (solo desarrollo).
inline QUIPU_CERT_PEM El PEM completo, codificado en base64 (mono-tenant cloud).
disk QUIPU_CERT_DISK Un disco de config/filesystems.php (p. ej. S3).

El almacenamiento de XML firmado y CDR usa un disco de Laravel (QUIPU_STORAGE_DISK, por defecto local); cualquier disco —incluido s3— funciona sin código especial.

La tasa de IGV que los builders fluidos de Pro aplican a cada línea gravada se toma de QUIPU_IGV_RATE (config igv_rate, por defecto 18.0). Cámbiala ante una variación nacional o para el 8 % del régimen MYPE (restaurantes/hoteles, Ley 31556); puede sobrescribirse por documento, por línea y por tenant.

Uso

Emitir un comprobante

Con persistencia y máquina de estados (fila Document, XML y CDR almacenados, eventos disparados), usa el DocumentDispatcher:

Builders fluidos (Pro)

Con la edición Pro instalada, el facade expone builders con el motor tributario ya sembrado con tu emisor (calcula IGV/ISC/etc.):

También Quipu::creditNote($client, $reason) y Quipu::debitNote($client, $reason). Sin Pro, estos métodos lanzan una excepción clara.

Comandos Artisan

🟢 Lite (siempre disponibles):

Comando Qué hace
quipu:install Publica la configuración y las migraciones.
quipu:send Firma y envía un comprobante.
quipu:status Consulta un ticket (o sondea los pendientes).
quipu:summary Envía un resumen diario.
quipu:read Lee un XML de vuelta a su modelo tipado.
quipu:cdr:fetch Re-descarga el CDR de un comprobante ya declarado.
quipu:doctor Diagnóstico de la configuración.
quipu:prune Poda el almacenamiento (inbox).

🔵 Pro (se registran solo con la edición Pro): quipu:cert:inspect, quipu:cert:convert (.pfx→PEM), quipu:cert:alert, quipu:diagnose, quipu:xml:inspect, quipu:xml:diff, quipu:pro:retry. Además, quipu:doctor se enriquece con el pre-flight del certificado.

Los comandos que tocan archivos aceptan --disk= y --path= para apuntar a otro disco (incl. S3). El archivo se indica como argumento posicional en quipu:read <archivo>, quipu:cert:inspect [<archivo>], quipu:cert:convert <pfx>, quipu:xml:inspect <archivo> <xpath> y quipu:xml:diff <a> <b>; y como --file= en quipu:summary (el XML a enviar) y quipu:cdr:fetch (el nombre con que se guarda el CDR, cuyo argumento posicional es el id del comprobante).

Colas, eventos y scheduling

Auto-detección de la edición Pro

config('quipu.pro') controla las capacidades Pro:

Con Pro activo, el emisor se compone vía QuipuPro::for(...): sender resiliente (logging → retry → idempotencia), validadores extra, idempotencia persistente (Eloquent) y diagnóstico de rechazos.

Multi-tenant

El paquete resuelve el emisor activo por tenant: cada tenant emite con su propio RUC, credenciales SOL y certificado. El comportamiento se elige con config('quipu.tenancy.driver'):

Driver Resuelve el emisor desde…
none (default) Mono-tenant: el emisor de config/quipu.php.
stancl El tenant actual de stancl/tenancy.
spatie El tenant actual de spatie/laravel-multitenancy.
auto El de esos dos paquetes que esté instalado.
<FQCN> Una clase EmitterConfigResolver propia, resuelta del contenedor.

Con stancl/spatie/auto, tu modelo Tenant expone su emisor implementando la interfaz Tenancy\ProvidesQuipuEmitter. Lo más simple es usar el trait Tenancy\HasQuipuEmitter, que la deriva de columnas convencionales del modelo:

Columnas por defecto (cada una sobrescribible redeclarando su método *Column()): quipu_ruc, quipu_legal_name, quipu_trade_name, quipu_sol_user, quipu_sol_pass, quipu_certificate (el PEM del tenant), quipu_certificate_passphrase, quipu_igv_rate, quipu_series_prefix y quipu_disk. Las tres credenciales (quipu_sol_pass, quipu_certificate, quipu_certificate_passphrase) reciben el cast encrypted de Laravel automáticamente: se cifran en la base con tu APP_KEY y se descifran al leerlas —el paquete nunca ve el .pfx—.

Normalmente el tenant ya está activo (lo puso el middleware de tu paquete de tenancy) y Quipu::emit() firma con su certificado sin más. Para emitir dentro del contexto de un tenant concreto fuera de ese flujo, envuélvelo con Quipu::forTenant:

forTenant activa el tenant vía el driver configurado, refresca el emisor (para que firme con el certificado de ese tenant) y restaura el tenant previo al terminar. Con driver none lanza una TenancyNotImplementedException clara —igual que un driver desconocido, o auto sin ninguno de los dos paquetes de tenancy instalados—.

La tasa de IGV por tenant sale de quipu_igv_rate (o ProvidesQuipuEmitter::quipuIgvRate()); si es null se usa el config('quipu.igv_rate') global. La fuente de certificado global source => 'database' (un almacén central) sigue pendiente y es otra cosa: los certificados por tenant ya funcionan vía el modelo Tenant.

Testing

Para que tu app pruebe su integración con SUNAT sin red ni certificado, Quipu::fake() cambia el emisor por dobles en memoria —al estilo de Mail::fake()— y expone aserciones:

Controla la respuesta simulada de SUNAT desde el handle que devuelve fake():

Con la edición Pro instalada, Quipu::fake() reutiliza el testing toolkit de Pro (FakeSender, PayloadRecorder, …). Para afirmar sobre el CDR devuelto puedes usar el CdrAsserter de Pro:

📚 Documentación

Documentación

Contribuir

Las contribuciones son bienvenidas —reportes de bugs, rechazos de SUNAT con evidencia, tests y documentación—. Lee la guía de contribución.

Seguridad

Si descubres una vulnerabilidad de seguridad, no abras un issue público: escribe a [email protected].

Licencia

Distribuido bajo licencia MIT — ver LICENSE.md.

Paquete no oficial: no está afiliado, avalado ni patrocinado por SUNAT.


All versions of quipu-laravel with dependencies

PHP Build Version
Package Version
Requires php Version ^8.4
elpandape/quipu-lite Version ^1.0
illuminate/bus Version ^12.0 || ^13.0
illuminate/console Version ^12.0 || ^13.0
illuminate/container Version ^12.0 || ^13.0
illuminate/contracts Version ^12.0 || ^13.0
illuminate/database Version ^12.0 || ^13.0
illuminate/http Version ^12.0 || ^13.0
illuminate/log Version ^12.0 || ^13.0
illuminate/queue Version ^12.0 || ^13.0
illuminate/support Version ^12.0 || ^13.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package elpandape/quipu-laravel contains the following files

Loading the files please wait ...