Fiscalapi 4.0.95
See the version list below for details.
dotnet add package Fiscalapi --version 4.0.95
NuGet\Install-Package Fiscalapi -Version 4.0.95
<PackageReference Include="Fiscalapi" Version="4.0.95" />
paket add Fiscalapi --version 4.0.95
#r "nuget: Fiscalapi, 4.0.95"
// Install Fiscalapi as a Cake Addin #addin nuget:?package=Fiscalapi&version=4.0.95 // Install Fiscalapi as a Cake Tool #tool nuget:?package=Fiscalapi&version=4.0.95
FiscalAPI SDK para .NET
SDK oficial de FiscalAPI para .NET, la API de facturación CFDI y otros servicios fiscales en México. Simplifica la integración con los servicios de facturación electrónica, eliminando las complejidades del de la autoridad tributaria (SAT) y facilitando la generación de facturas, notas de crédito y complementos de pago, etc.
🚀 Características
- Soporte completo para CFDI 4.0
- Compatible con múltiples versiones de .NET (desde .NET Framework 4.6.1 hasta .NET 8)
- Operaciones asíncronas y sincrónicas
- Flexibilidad en modos de operación: por valores o referencias
- Manejo simplificado de errores
- Busqueda en todos los catálogo del SAT.
- Documentación completa y ejemplos prácticos
📦 Instalación
Instala el paquete FiscalAPI vía NuGet Package Manager:
NuGet\Install-Package Fiscalapi
O vía .NET CLI:
dotnet add package Fiscalapi
⚙️ Configuración
Configura el cliente con tus credenciales:
var settings = new FiscalApiOptions
{
ApiUrl = "https://test.fiscalapi.com", // Usa https://fiscalapi.com para producción
ApiKey = "<tu_api_key>",
Tenant = "<tenant>",
};
var fiscalApi = FiscalApiClient.Create(settings);
🔄 Modos de Operación
FiscalAPI soporta dos modos de operación:
Por Referencias
- Envía solo los IDs de objetos previamente creados en el dashboard.
- Ideal para integraciones rápidas y ligeras.
Por Valores
- Envía todos los campos requeridos en cada petición.
- Proporciona mayor control sobre los datos.
- No requiere configuración previa en el dashboard.
📝 Ejemplos de Uso
Crear una Factura de Ingreso (Por Referencias)
var invoice = new Invoice
{
VersionCode = "4.0",
Series = "A",
Date = DateTime.Now,
PaymentFormCode = "01",
CurrencyCode = "MXN",
TypeCode = "I",
ExpeditionZipCode = "42501",
Issuer = new InvoiceIssuer { Id = "id-del-emisor" },
Recipient = new InvoiceRecipient { Id = "id-del-receptor" },
Items = new List<InvoiceItem>
{
new InvoiceItem { Id = "id-del-producto", Quantity = 1 }
},
PaymentMethodCode = "PUE",
};
var response = await fiscalApi.Invoices.CreateAsync(invoice);
Crear una Nota de Crédito (Por Valores)
var creditNote = new Invoice
{
VersionCode = "4.0",
Series = "NC",
TypeCode = "E", // E para egreso (nota de crédito)
ExpeditionZipCode = "42501",
RelatedInvoices = new List<RelatedInvoice>
{
new RelatedInvoice
{
Uuid = "UUID-de-factura-relacionada",
RelationshipTypeCode = "01"
}
}
};
var response = await fiscalApi.Invoices.CreateAsync(creditNote);
Buscar en Catálogos SAT
var apiResponse = await fiscalApi.Catalogs.SearchCatalogAsync("SatUnitMeasurements", "inter", 1, 10);
if (apiResponse.Succeeded)
{
foreach (var item in apiResponse.Data.Items)
{
Console.WriteLine($"Unidad: {item.Description}");
}
}
else
{
Console.WriteLine(apiResponse.Message);
}
⏳ Operaciones Asíncronas y Sincrónicas
Asíncrono
var apiResponse = await fiscalApi.Catalogs.SearchCatalogAsync("SatUnitMeasurements", "inter", 1, 10);
Sincrónico
var apiResponse = Task.Run(async () => await fiscalApi.Catalogs.SearchCatalogAsync("SatUnitMeasurements", "inter", 1, 10)).Result;
📋 Operaciones Principales
Facturas (CFDI)
- Crear facturas de ingreso, notas de crédito y complementos de pago.
- Cancelación de facturas.
- Generación de PDF/XML.
Personas (Clientes/Emisores)
- Alta y administración de personas.
- Gestión de certificados (CSD).
Productos y Servicios
- Administración de catálogos de productos.
- Búsqueda en catálogos SAT.
🤝 Contribuir
- 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'
). - Haz push a la rama (
git push origin feature/AmazingFeature
). - Abre un Pull Request.
🐛 Reportar Problemas
- Usa la última versión del SDK.
- Verifica si el problema ya ha sido reportado.
- Proporciona un ejemplo mínimo reproducible.
- Incluye los mensajes de error completos.
📄 Licencia
Este proyecto está licenciado bajo la Licencia MPL. Consulta el archivo LICENSE para más detalles.
🔗 Enlaces Útiles
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 is compatible. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 is compatible. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 is compatible. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETCoreApp 3.1
- Microsoft.Extensions.Configuration (>= 8.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 8.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Http (>= 8.0.0)
- Microsoft.Extensions.Options (>= 8.0.0)
- Newtonsoft.Json (>= 13.0.3)
-
.NETFramework 4.6.1
- Microsoft.Extensions.Configuration (>= 8.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 8.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Http (>= 8.0.0)
- Microsoft.Extensions.Options (>= 8.0.0)
- Newtonsoft.Json (>= 13.0.3)
-
.NETFramework 4.8
- Microsoft.Extensions.Configuration (>= 8.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 8.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Http (>= 8.0.0)
- Microsoft.Extensions.Options (>= 8.0.0)
- Newtonsoft.Json (>= 13.0.3)
-
.NETStandard 2.0
- Microsoft.Extensions.Configuration (>= 8.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 8.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Http (>= 8.0.0)
- Microsoft.Extensions.Options (>= 8.0.0)
- Newtonsoft.Json (>= 13.0.3)
-
net5.0
- Microsoft.Extensions.Configuration (>= 8.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 8.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Http (>= 8.0.0)
- Microsoft.Extensions.Options (>= 8.0.0)
- Newtonsoft.Json (>= 13.0.3)
-
net6.0
- Microsoft.Extensions.Configuration (>= 8.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 8.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Http (>= 8.0.0)
- Microsoft.Extensions.Options (>= 8.0.0)
- Newtonsoft.Json (>= 13.0.3)
-
net8.0
- Microsoft.Extensions.Configuration (>= 8.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 8.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Http (>= 8.0.0)
- Microsoft.Extensions.Options (>= 8.0.0)
- Newtonsoft.Json (>= 13.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.