Librería EDL CSharp: CFDI 3.3

Como sabrás, el SAT liberó la especificación técnica para la nueva versión del CFDI; además liberó nuevas especificaciones para el resto de estándares relacionados al mismo como son: el código de barras bidimensional, el complemento timbre, etc.; si deseas conocer a detalle todos los cambios realizados te invitamos leer los siguientes artículos:

Debido a lo anterior, nos dimos a la tarea de actualizar nuestra librería para generar facturas electrónicas, dando soporte a todos los cambios anteriormente comentados y también agregando características que nos ha solicitado algunos usuarios.

Esta ha sido la liberación más compleja que hemos realizado desde que se desarrolló la primera versión y esto debido a los cambios realizados por el SAT y porque hemos logrado que la librería pueda trabajar en desarrollos multi-thread, hablaremos de este tema más adelante, por el momento vamos a describir los cambios más importantes de esta nueva versión:

CFDI 3.3
Con esta nueva versión, podrás generar tus comprobantes 3.3 cumpliendo con todos los requisitos exigidos por el SAT, internamente hemos modificados todos los procesos relacionados con esta versión:

  • Nuevos campos: Se han agregado los nuevos atributos y nodos requeridos.
  • Cadena original: Se ha modificado el cálculo de la cadena original, dando cumplimiento a la especificación dada por el SAT.
  • Validación contra schema: Se agregó el schema del CFDI 3.3, para cuando se genere el mismo, se valide si cumple con la estructura, catálogos y reglas dadas por el SAT.
  • Sellado: Hemos actualizado nuestro proceso de sellado dando soporte al nuevo algoritmo de digestión (SHA2) exigido por la autoridad.
  • Validación: El proceso de leer y validar un CFDI ha sido modificado para dar soporte a esta nueva versión.

Hemos agregado un ejemplo (C# y VB.Net) donde se muestra como generar un XML con esta nueva versión y también hemos actualizado el ejemplo de validación donde se muestra como leer un CFDI 3.3

Complemento Recibo de pago
Este es otro de los cambios realizados por el SAT y es el manejo de los pagos a un CFDI, en este caso hemos agregado soporte a dicho complemento, si deseas como hacer uso del mismo te invitamos a revisar el ejemplo “COMPLEMENTOS”.

Código de barras bidimensional
En este caso hemos realizado dos cambios importantes, el primero de ellos es dar soporte al CBB 1.1 cumpliendo con los lineamientos solicitados por la autoridad.; el segundo es la forma en que se genera el mismo, anteriormente se usaba una clase estática para esta tarea, a partir de esta versión es necesario instanciar una clase.
En el ejemplo que trae la librería podrás ver reflejados estos dos cambios.

Timbre 1.1
El complemento timbre ya existe desde hace tiempo en el CFDI, lo que hizo la autoridad fue hacerle una mejora agregando más atributos, y eso, es lo que hemos realizado en esta liberación, dar soporte a estos nuevos campos.

Es importante mencionar que nuestros PACs asociados, aún no pueden timbrar usando dicho complemento, pero esperamos que en el transcurso de mayo ya pueda ser usado dicho completo.

Multi Thread
Debido a la complejidad de este tema hemos decidido crear un artículo independiente donde explicaremos todo lo relacionado a esta característica, te recomendamos leerlo.

DLL de recursos
Aunque este cambio es menor, quisimos resaltarlo ya que no tenerlo en cuanta podrías hacer que no funcione tú código actual.

Debido a que el SAT está cambiando constantemente sus schema y que los mismo están teniendo un crecimiento, en tamaño, muy fuerte, hemos decidido dividir la librería en dos partes:

  • HyperSoft.ElectronicDocumentLibrary.dll, este Assembly (DLL) con tiene toda la lógica de la librería (generación, validación, etc.).
  • HyperSoft.Resource.dll, como su nombre lo indica es DLL que contiene solamente los recursos (schemas) requeridos para el funcionamiento de la librería.

A partir de esta versión es necesario que agregues este segundo archivo (HyperSoft.Resource.dll) a tu proyecto para que tu solución pueda trabajar y si vas a reemplazar la librería en un proyecto que ya tienes compilado, entonces copia este a la carpeta donde está la librería.

Algo importante a comentar es que este cambio ha hecho que disminuya el tiempo de inicialización de la librería, así como el consumo de memoria de la misma.

Esto son solo algunos de los cambios realizados, la realidad es que hemos hecho mejoras en otros procesos (adendas, complementos) y te invitamos a leer de los mismos en el historial de cambios.

Recomendación
Como podrás observar han sido muchos los cambios realizados en esta liberación y aunque, como empresa, hemos trabajado arduamente para que el producto no presente ningún problema, si queremos resaltar algunos puntos:

  • La librería es compatible con versiones anteriores, por lo tanto, deberá funcionar con tu código actual sin problemas.
  • Deberías realizar pruebas con tu código actual antes de implementarla en producción.
  • Sería bueno que empezaras a hacer uso de la nueva forma de instancias e inicializar los objetos, para mayor información, por favor, revisa el articulo Multi-Thread.

Como punto final, queremos recomendarte iniciar a la brevedad con el proceso de cambio a la 3.3 (análisis, implicaciones, etc.), ya que este conlleva un alto grado de dificultad, como sucedió con Nómina 1.2 y puede hacer que no tengas tu solución lista para el 1 de julio.

DESCARGAR

Si tienes alguna duda con respecto a esta liberación, te invitamos a que nos contactes por medio del foro que aparece en nuestra página www.facturando.mx donde con gusto un asesor te atenderá.

Hasta la próxima.