Skip to content

fabianrm/gaspersoft.sunat

 
 

Repository files navigation

GasperSoft.SUNAT

NuGet Version GitHub License

Librerías .NET que permite generar los XML de la Facturación Electrónica en Perú, estas librerías están actualmente en producción y en constante actualización.

Características

  • Generación de XML de los siguientes documentos electrónicos:
    • Facturas
    • Boletas
    • Notas de Crédito
    • Notas de Débito
    • Resumen Diario de Boletas
    • Comunicaciones de Baja
    • Retenciones
    • Guías de Remisión Remitente
    • Guías de Remisión Transportista

Como Funciona

Utiliza código generado desde los XSD oficiales del estándar UBL/SUNAT gracias a UblXsdToCS, estas clases contienen la estructura completa del estándar UBL/SUNAT, entonces implementar cualquier atributo adicional requerido parte de SUNAT es relativamente sencillo. Sin embargo dado la gran cantidad de propiedades que existen en el estándar UBL, en este proyecto se emplean objetos intermedios más sencillos que cumplen con todos los requerimientos de SUNAT, estas clases están definidas en GasperSoft.SUNAT.DTO.dll (CPEType, CREType, GREType, ResumenDiarioV2Type, ComunicacionBajaType), posteriormente después de asignar las propiedades correspondientes son convertidos usando la librería GasperSoft.SUNAT.UBL.dll a clases generadas desde los XSD (InvoiceType, DespatchAdviceType, SummaryDocumentsType, VoidedDocumentsType, RetentionType), finalmente son serializados a XML y firmado utilizando métodos definidos en GasperSoft.SUNAT.dll.

Note

Estas librería son compatible para net35, net40, net452, net462, net472, net481, netstandard2.0, net6.0, net7.0, net8.0 y net9.0, los métodos de envió a SUNAT no serán implementados para net35, net40 ni net452. La generación del zip en net35 y net40 es mediante la librería DotNetZip la cual contiene una vulnerabilidad relacionada con la descompresión no hay nada de qué preocuparse porque aún no implemento la lectura del CDR

Como se usa

Note

El ejemplo "FACTURA CON 4 ÍTEMS Y UNA BONIFICACIÓN - Pagina 77 Manual SUNAT" es el ejemplo mas completo de todos porque combina el uso de productos grabados, exonerados, bonificaciones y descuentos por ítem y global, por lo que recomiendo darle una observación detalla. La clase ValidadorCPE.cs del proyecto GasperSoft.SUNAT debería poder ayudarte a corregir errores de cálculo, si no es el caso y pudiste generar el XML pero no paso las validaciones de SUNAT te agradecería que me mandes un ejemplo (como los que se implementan en el proyecto Pruebas) con los datos que llenas y el XML generado a it@gaspersoft.com, me ayudarías a colocar mas validaciones que no permitan generar XMLs con errores de calculo.

Validar XML generado

  • Se puede validar el XML generado en NUBEFACT, Sin embargo debe considerar que el solo hecho de copiar y pegar en esta página podría adulterar el contenido del XML y tener un mensaje de error 2335(Como en el ejemplo de "FACTURA CONTADO CON DETRACCION"), de ser ese el caso puede marcar la opcion Firmar.

ValidarXml

Note

A la fecha 24-11-2024 la pagina de nubefact no valida los XML de Guia Transportista

Envio a SUNAT

  • De momento este proyecto se enfoca exclusivamente en la generación de los XML, puede encontrar código de envió a SUNAT en OpenInvoice

Note

Actualmente existe una Clase para el envió de Guías Electrónicas usando GasperSoft.SUNAT.dll ClientGRE.cs. Un ejemplo de uso en EnvioGRE1.cs

Asesoría y Soporte

Si consideras que hay algún error en la validación o generación de un XML y no puede solucionarlo usando las fuentes, puedes serializar a JSON el objeto intermedio "CPEType", "CREType", "GREType", "ResumenDiarioV2Type" o "ComunicacionBajaType" y informarlo a it@gaspersoft.com detallando el problema.

El siguiente código genera un archivo "CPE.json" que ayudaría a replicar el XML que estas generando.

var _cpe = new CPEType();
//Codigo para asignar las propiedades

var _json = System.Text.Json.JsonSerializer.Serialize(_cpe);
File.WriteAllText("CPE.json", _json);

Note

Recomiendo hacer un Fork del proyecto e intentar darle solución por tus propios medios si dominas algo de C# es muy sencillo.

About

Facturación Electrónica - SUNAT - PE

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C# 100.0%