Download the PHP package schoolaid/fel without Composer

On this page you can find all versions of the php package schoolaid/fel. 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 fel

Laravel FEL Guatemala

Latest Version on Packagist Total Downloads

Este paquete proporciona una implementación completa para la Factura Electrónica en Línea (FEL) de Guatemala, conforme a los requerimientos de la SAT. Permite generar, certificar y gestionar facturas electrónicas de manera sencilla en aplicaciones Laravel.

Documentación

La documentación completa (en inglés) vive en docs/: guías de uso (instalación, credenciales INFILE, operaciones, impuestos), arquitectura, pruebas y los documentos de seguimiento del paquete.

Características

Requisitos

Instalación

Puedes instalar el paquete vía composer:

Publica el archivo de configuración:

Configuración de Credenciales INFILE

Obtención de Credenciales

Para utilizar este paquete necesitas credenciales del proveedor certificador INFILE (FEEL). Sigue estos pasos:

  1. Contactar a INFILE/FEEL

    • Sitio web: https://feel.com.gt
    • Solicita información sobre el servicio de certificación FEL
    • Completa el proceso de registro como empresa
  2. Documentación Requerida

    • RTU (Registro Tributario Unificado) de la empresa
    • Patente de comercio
    • Representante legal con DPI
    • Autorización de la SAT para emitir facturas electrónicas
  3. Credenciales que Recibirás
    • Usuario (username): Usuario/prefijo para autenticación (se envía como UsuarioFirma y UsuarioApi)
    • Llave de Firma: llave del firmador, usada para firmar documentos (INFILE la recibe como llaveFirma)
    • Llave API: llave del API REST (INFILE la recibe como llaveApi y llave)
    • NIT Emisor: Número de Identificación Tributaria de tu empresa

⚠️ Nombres invertidos: por compatibilidad histórica, en este paquete el parámetro apiKey/api_key es el que viaja como llaveFirma, y signatureKey/signature_key es el que viaja como llaveApi/llave. Es decir: pon la Llave de Firma en api_key y la Llave API en signature_key. No se "corrige" el cruce porque los consumidores existentes del paquete ya compensan; el mapeo está fijado por InfileHeadersTest.

Para no depender de los nombres invertidos, usa los nombres veraces: el constructor FelConfig::forInfile($username, $llaveFirma, $llaveApi), las variables de entorno FEL_LLAVE_FIRMA / FEL_LLAVE_API, y los accesores getLlaveFirma() / setLlaveFirma() y getLlaveApi() / setLlaveApi(). Solo el constructor histórico (apiKey: / signatureKey:) conserva los nombres invertidos, por compatibilidad con las apps existentes.

Configuración en Laravel

Resumen de Opciones:

Opción Método Caso de Uso Ideal
1 Variables de Entorno (.env) Una sola empresa, configuración estática
2 Archivo de configuración Configuración centralizada, deployment
3 Configuración Programática Credenciales dinámicas, sin archivos
4 Desde Base de Datos Múltiples empresas, SaaS
5 Sistema Multi-tenant Aplicaciones empresariales complejas

Opción 1: Variables de Entorno (.env)

Agrega las siguientes variables a tu archivo .env:

Opción 2: Archivo de Configuración (config/fel.php)

Opción 3: Configuración Programática (Directa)

Puedes pasar las credenciales directamente sin usar .env ni archivos de configuración:

Opción 4: Credenciales desde Base de Datos

Si guardas las credenciales de tus clientes en la base de datos:

Opción 5: Sistema Multi-tenant

Para aplicaciones con múltiples empresas:

Ambiente de Pruebas

INFILE también ofrece un ambiente de pruebas (sandbox). Para utilizarlo:

Verificación de Configuración

Prueba tu configuración con este código:

Ejemplo Completo sin usar .env

Aquí un ejemplo completo de certificación pasando credenciales directamente:

Casos de Uso Comunes

Factura LOCAL_INVOICE (FACT)

La factura local (FACT) es el tipo de documento más común utilizado para transacciones dentro de Guatemala.

Factura a Consumidor Final (CF)

Para ventas a consumidores finales sin NIT:

Factura de Exportación (FEXP)

Para exportaciones, no se aplica IVA:

Nota de Crédito (NCRE) y Nota de Débito (NDEB)

Para ajustar (devolución, descuento, corrección) una factura ya certificada. La SAT exige que toda NCRE/NDEB incluya el complemento ReferenciasNota con los datos del documento origen; el paquete lo genera a partir de un FelReferenceNote (sin él, generateXml() lanza XmlGenerationException):

Esto emite dentro de dte:DatosEmision, después de dte:Totales:

Reglas SAT a tener en cuenta (las valida el certificador, rechazo si no se cumplen): el DTE origen debe existir, estar vigente y ser FACT o FCAM; NIT emisor, receptor, fecha y moneda deben coincidir con el origen; cada nota referencia un solo DTE; y un DTE con nota vigente asociada ya no puede anularse. La Ley del IVA da 2 meses desde la factura para que el ajuste conserve el derecho a crédito fiscal (pasado el plazo la SAT certifica igual).

Para referenciar una factura en papel del régimen antiguo (pre-FEL):

Factura de Pequeño Contribuyente (FPEQ)

Para contribuyentes en el régimen de pequeño contribuyente:

Recibo de Donación (RDON)

Para organizaciones sin fines de lucro:

Operaciones Avanzadas

Cancelar una Factura

Generar XML sin Certificar

Si solo necesitas generar el XML sin enviarlo a INFILE:

Manejo de Errores

Tipos de Documentos Soportados

Tipo de Documento Enum Código SAT Descripción
Factura Local DocumentTypeEnum::LOCAL_INVOICE FACT Factura estándar con IVA
Factura de Cambio DocumentTypeEnum::EXCHANGE_INVOICE FCAM Factura de cambio
Factura de Exportación DocumentTypeEnum::EXPORT_INVOICE FEXP Factura sin IVA para exportaciones
Factura Especial DocumentTypeEnum::SPECIAL_INVOICE FESP Factura especial
Nota de Crédito DocumentTypeEnum::CREDIT_NOTE NCRE Anulación o reducción de factura
Nota de Débito DocumentTypeEnum::DEBIT_NOTE NDEB Aumento de factura
Nota de Abono DocumentTypeEnum::CREDIT_MEMO NABN Nota de abono
Recibo DocumentTypeEnum::RECEIPT RECI Recibo genérico
Recibo de Donación DocumentTypeEnum::DONATION_RECEIPT RDON Recibo para donaciones
Factura Pequeño Contribuyente DocumentTypeEnum::SMALL_TAXPAYER_INVOICE FPEQ Factura régimen pequeño contribuyente

Impuestos Soportados

Impuesto Enum Tasa Descripción
IVA TaxEnum::IVA 12% Impuesto al Valor Agregado
ISO TaxEnum::ISO 1% Impuesto de Solidaridad
RETIVA TaxEnum::RETIVA 1% Retención de IVA
ISR TaxEnum::ISR 1% Impuesto Sobre la Renta

Frases y Escenarios SAT

Las frases indican el régimen fiscal aplicable:

Solución de Problemas

Error de Autenticación

Solución: Verifica que tus credenciales en .env sean correctas:

Si usas los nombres legados, recuerda que están invertidos: la llave de firma va en FEL_KEY y la llave del API en FEL_PASSWORD (ver la nota en "Configuración de Credenciales INFILE").

Error de Validación SAT

Solución: Verifica que el NIT tenga el formato correcto (sin guiones) o usa "CF" para consumidor final.

Timeout de Conexión

Solución: Aumenta el timeout en tu configuración:

Error de SSL

Solución: Si estás en desarrollo, puedes deshabilitar la verificación SSL (NO recomendado para producción):

Licencia

MIT License

Soporte

Para reportar bugs o solicitar nuevas funcionalidades, por favor abre un issue en el repositorio del proyecto```


All versions of fel with dependencies

PHP Build Version
Package Version
Requires guzzlehttp/guzzle Version ^7.8|^7.9
laravel/framework Version *
illuminate/support Version *
vlucas/phpdotenv Version ^5.6
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 schoolaid/fel contains the following files

Loading the files please wait ...