Ejemplos de integración con FiscalAPI para la generación de CFDI (Comprobantes Fiscales Digitales por Internet) utilizando Express.js y TypeScript.
Este proyecto proporciona ejemplos prácticos de cómo integrar FiscalAPI en una aplicación Express.js para generar facturas electrónicas (CFDI) cumpliendo con los requisitos del SAT (Servicio de Administración Tributaria) en México.
- Gestión completa de facturas CFDI 4.0
- Ejemplos de diferentes tipos de facturación (IVA 16%, IVA exento, tasa cero)
- Creación de complementos de pago
- Notas de crédito
- Manejo de diferentes monedas (MXN, USD, EUR)
- Cancelación de facturas
- Generación de PDF y XML
- Envío por correo electrónico
- Documentación completa con Swagger
# Clonar el repositorio
git clone https://github.com/FiscalAPI/fiscalapi-samples-express
# Entrar al directorio
cd fiscalapi-samples-express
# Instalar dependencias
npm install
# Copiar y configurar variables de entorno
cp .env.example .env
# (Editar .env con tus credenciales de FiscalAPI) https://docs.fiscalapi.com/credentials-info
# Iniciar la aplicación en modo desarrollo
npm run dev
La documentación swagger de la ejemplo está disponible en:
http://localhost:3000/api-docs
Crea un archivo .env
en la raíz del proyecto con las siguientes variables:
PORT=3000
FISCALAPI_API_KEY=tu_api_key
FISCALAPI_TENANT=tu_tenant
FISCALAPI_API_URL=https://api.fiscalapi.com
├── src
│ ├── app.ts # Punto de entrada de la aplicación
│ ├── config # Configuraciones
│ │ ├── config.ts # Configuración principal
│ │ └── swagger.ts # Configuración de Swagger
│ ├── controllers # Controladores
│ │ ├── invoiceController.ts # Controlador de facturas
│ │ ├── productController.ts # Controlador de productos
│ │ └── todoController.ts # Controlador de tareas
│ ├── models # Modelos
│ ├── routes # Rutas
│ │ ├── invoiceRoutes.ts # Rutas de facturas
│ │ ├── productRoutes.ts # Rutas de productos
│ │ └── todoRoutes.ts # Rutas de tareas
│ └── services # Servicios
│ └── fiscalapi.service.ts # Servicio de FiscalAPI
curl -X POST http://localhost:3000/api/invoices/create/iva-16
curl -X POST http://localhost:3000/api/invoices/create/credit-note/by-values
curl -X GET http://localhost:3000/api/invoices/pdf/123456
La documentación swagger de la ejemplo está disponible en:
http://localhost:3000/api-docs
Utiliza Swagger UI para probar todos los endpoints disponibles.
- Express.js: Framework web para Node.js
- TypeScript: Superset tipado de JavaScript
- FiscalAPI SDK: SDK para interactuar con FiscalAPI
- Swagger: Documentación de API
- Luxon: Manejo de fechas y horas
- UUID: Generación de identificadores únicos
- dotenv: Gestión de variables de entorno
- Haz un fork del repositorio.
- Crea una rama para tu feature:
git checkout -b feature/AmazingFeature
. - Realiza commits de tus cambios:
git commit -m 'Add some AmazingFeature'
. - Sube tu rama:
git push origin feature/AmazingFeature
. - Abre un Pull Request en GitHub.
- Asegúrate de usar la última versión del SDK.
- Verifica si el problema ya fue reportado.
- Proporciona un ejemplo mínimo reproducible.
- Incluye los mensajes de error completos.
Este proyecto está licenciado bajo la Licencia MPL-2.0. Consulta el archivo LICENSE para más detalles.
Desarrollado con ❤️ por Fiscalapi