Librería de clases que proporciona herramientas y utilidades aplicables para la facturación electrónica.
Esta biblioteca es compatible con .NET 6.0 y .NET 7.0.
- Sellar CFDI: Función para sellar Comprobantes CFDI 4.0 y sus complementos.
- Sellar Retención: Función para sellar Comprobantes de Retenciones 2.0 y sus complementos.
- Firmar XML: Función para generar y agregar el signature a documentos XML.
- Crear PFX: Función para crear un certificado PFX.
Para utilizar esta librería en tu proyecto, puedes instalarla a través de NuGet Package Manager. Ejecuta el siguiente comando en la consola de NuGet:
Por el momento no se encuentra disponible esta opción.
También puedes agregar la librería manualmente como referencia en tu proyecto. Sigue las siguientes instrucciones:
1. Descargar compilado DLL:
- Ve a la sección Releases de este repositorio.
- Selecciona la versión que deseas agregar, haz clic en la sección "Assets" y selecciona el .zip con el nombre sw-tools-net para descargar el compilado.
2. Descomprimir el archivo ZIP:
- Descomprime el archivo ZIP descargado en una ubicación de tu elección en tu sistema.
3. Añadir Referencias a tu Proyecto:
-
Abre tu proyecto.
-
Haz clic con el botón derecho en tu proyecto en el Explorador de Soluciones y selecciona "Agregar", se desplegará un menú y deberás seleccionar "Referencia De Proyecto".
-
En la ventana que se abrió, haz clic en "Examinar" y navega a la ubicación donde descomprimiste la biblioteca. Dentro de la carpeta, busca el archivo DLL correspondiente y selecciona "Aceptar".
-
Asegúrate de que la referencia se agregue correctamente a tu proyecto.
El response de cada una de las funciones es un objeto de una clase heredada que siempre contendrá los siguientes miembros:
- Status: Valor success o error, dependiendo del resultado de la operación.
- Message: Si Status igual a error, Message contendrá un valor con información del error.
- Data: Si Status igual a success, el valor será un objeto que contendrá miembros dependiendo de la función que se esté consumiendo.
public class BaseResponse<T>
{
public string Status { get; private set; }
public string Message { get; private set; }
public T Data { get; private set; }
}
using SW.Tools.Services.Sign;
string cfdi = Resource.GetInvoice("cfdi40.xml");
byte[] pfx = Resource.GetPfx("h&e951128469.pfx");
string password = "12345678a";
Sign sign = new();
var result = sign.SignCfdi(cfdi, pfx, password);
var signedCfdi = result.Data.Xml;
using SW.Tools.Services.Sign;
string retention = Resource.GetInvoice("retention20.xml");
byte[] pfx = Resource.GetPfx("h&e951128469.pfx");
string password = "12345678a";
Sign sign = new();
var result = sign.SignRetention(retention, pfx, password);
var signedRetencion = result.Data.Xml;
using SW.Tools.Services.Certificate;
byte[] bytesCer = File.ReadAllBytes("h&e951128469.cer");
byte[] bytesKey = File.ReadAllBytes("h&e951128469.key");
string passwordCer = "12345678a";
Certificate certificate = new();
var result = certificate.CreatePfx(bytesCer, bytesKey, passwordCer);
var pfx = result.Data.Pfx;
Si deseas contribuir, puedes hacerlo a través de pull requests y reportando el issue aqui.
Si requieres soporte, envíanos un correo a [email protected].
Aeyrton Villalobos
Este proyecto se distribuye bajo los términos de la Licencia Pública General de GNU, versión 3.
Para obtener una copia completa del texto de la licencia, consulte el archivo LICENSE incluido en este repositorio.