Publicación de alianza

Como ya es conocimiento de todos, ya hace tiempo firmamos una alianza con un PAC en donde podemos ofrecer el servicio de timbrado con una serie de beneficios a todos  nuestros usuarios, si quieren leer mas del tema pueden dar click aquí.

Para nuestra sorpresa esta alianza ha sido muy bien recibida por todos nuestros usuarios, ya son varios los que han hecho uso de la misma y han empezado a  disfrutar de los beneficios.

Antes de despedirme quiero comentar que si tiene alguna duda respecto al tema pueden escribir a la cuenta de soporte que con mucho gusto los estaremos atendiendo.

Hasta la próxima

Otra mirada de la factura electrónica

Queremos invitar a todas las personas a seguir el otro blog en donde solemos escribir, en él nos dedicamos a hablar de la factura electrónica desde un punto de vista más general y sin relacionarlo directamente con el mundo de la programación, en este constantemente publicamos artículos que les puede ser de interés y donde se explica mas a detalle cada uno de los temas.

http://facturadigital.wordpress.com/

Estamos preparando un post en donde escribiremos a cerca de la cancelación de una factura electrónica y que puede ser de gran ayuda para las personas que no conocen dicho proceso.

Espero pronto verlos por allá.

Manejo de decimales

Un usuario nos comentaba que necesitaba generar un comprobante con 4 decimales y su duda era si la biblioteca lo soportaba y como se podía hacer esto.

Como todos saben, por default, todos los comprobantes generados con EDL siempre salen con 2 decimales, pero esto es algo totalmente opcional y se puede configurar para que cada campo de tipo real pueda tener los decimales deseados, claro siguiendo los lineamientos que da el SAT:

 

  • SubTotal: Puede tener hasta 6 decimales
  • Descuento: Puede tener hasta 6 decimales
  • Total: Puede tener hasta 6 decimales
  • Cantidad: No tiene restricción en el número de decimales.
  • Valor unitario: Puede tener hasta 6 decimales
  • Importe: Puede tener hasta 6 decimales
  • Total de impuestos retenidos: Puede tener hasta 6 decimales
  • Total de impuestos trasladados: Puede tener hasta 6 decimales

 

En la librería todos los campos anteriormente mencionados permiten entre 0 y 6 decimales, esto incluye a la cantidad que como podemos es permitido que contenga más de 6 decimales.

Para indicar cuantos decimales se desea manejar es muy sencillo, solo deben asignar a la propiedad Decimales la cantidad requerida

 

electronicDocument.Data.Total.Decimales   =  5;

 

Si asignas un valor mayor a seis o menor a cero, no será tomado en cuenta y se asignara un dos.

La pregunta más común en este caso, es ¿Que sucede si el valor del atributo contiene más o menos decimales? y para esto podemos ver un ejemplo:

 

electronicDocument.Data.Total.Decimales   =  5;

electronicDocument.Data.Total.Value  =  5.251;  (5.25100)

 

electronicDocument.Data.Total.Decimales   =  2;

electronicDocument.Data.Total.Value  =  5.251;  (5.25)

 

Creemos que con esto queda resuelta la duda, espero les sea de utilidad.

 

Hasta la próxima

Alianza

En Facturando tenemos un alto grado de compromiso con nuestros usuarios y esto lo demostramos a través de los productos que hemos creando en donde la calidad y facilidad de uso son nuestros estandarte; como parte de dicho compromiso y queriendo apoyar a toda la comunidad, hemos creado una alianza con un PAC; este hecho es de gran importancia para todos, ya que nos permite integrar empresas como la tuya al proceso timbrado de forma rápida y sencilla, además de que trae consigo beneficios adicionales:

  1. Tienes soporte vía correo electrónico para la resolución de dudas con respecto al uso de la biblioteca y la integración con el PAC.
  2. No tienes que pagar ningún costo de integración ni costo de anualidad.
  3. El proceso de validación que llevas a cabo es mucho más sencillo requiriendo menos pasos y menos tiempo.
  4. Tienes acceso, antes que nadie, a las nuevas versiones de la biblioteca, siendo esto primordial cuando el PAC realiza cambios o implementa nuevas funcionalidades.

Estamos convencidos que esta alianza trae consigo beneficios muy importantes a todas las empresas que hacen uso de la biblioteca y tienen la necesidad de generar el CFDI, ya que les permitirá romper todas esas barreras y trabas que tienen cuando se inicia el trato con un PAC y pueden integrar rápidamente el proceso de generar el CFDI en sus soluciones.

Si quieres saber cómo puedes disfrutar de todos estos grandes beneficios, te invitamos a que nos escribas al siguiente correo electrónico para poderte ayudar.

Saludos

Validaciones, benditas validaciones

Hace poco un usuario nos contacto para un problema que tenia con la biblioteca, su CFDI se había generado  con un error y este error se lo atribuía a la biblioteca, tomamos el caso muy enserio porque nos preocupa el funcionamiento de la misma, siempre hemos tratado de ofrecer un producto con la mayor calidad posible y libre de errores; el resultado final fue que el problema se había presentado porque él había desactivado las validaciones que realiza la biblioteca, a continuación transcribo parte del correo que le envié:

En varias oportunidades hemos recomendado que se dejen activas las validaciones de la generación, es mas todos los ejemplos las tienen activas y en caso de que alguna tenga que ser desactivada se agrega un comentario porque se desactivo y se dan recomendaciones.

Algunos de los usuarios argumentan que no las activan por:

  1. Consumen tiempo de procesador y es cierto, pero si las eliminas son solo algunas milésimas de segundo las que te ahorras
  2. Se debe distribuir más archivos, es cierto, pero personalmente prefiero esto y tener la seguridad de que todo está bien.
  3. Están seguros de que su proceso lo tienen muy controlado; bueno ya saben que en estos del desarrollo de software nadie es infalible.
  4. Implica estar descargando un archivo del sitio del SAT, es cierto, pero nuevamente, prefiero la seguridad.

Estamos seguros de que si todas las validaciones están activas, este tipo de situaciones no se presentan, ya que, al menos en este caso, la validación contra el schema hubiera arrojado el  problema.

Quisimos mostrar este caso como un justificante del porque nuestra insistencia de que se activen las validaciones de la biblioteca.

Hasta la próxima.

Código de barras bidimensional (CBB)

Como ya todos sabemos dicho código fue definido por la autoridad (SAT) como un requerimiento en la representación impresa del CFDI, el cual debe contener los siguientes datos:

  1. RFC del emisor
  2. RFC del receptor
  3. Total (a 6 decimales fijos)
  4. Identificador único del timbre (UUID) asignado

Dicho código es generado debe ser generado bajo el estándar QR Code, para mayor información pueden dar clic aquí.

BarCodeLibrary.dll es una DLL de Win32 que he desarrollado para poder generar el código de barras bidimensional (CBB) desde cualquier lenguaje de programación (Visual Basic, Visual FoxPro, Clarion, PowerBuilder, etc) y la cual expone 3 métodos para tal fin:

LibraryVersion

  • En realidad es una función que regresa una cadena de texto
  • No recibe ningún parámetro
  • Es usada para obtener la versión de la biblioteca

SetConfiguration

  • Es un método que permite configurar el tamaño y el tipo de archivo a generar.
  • Recibe dos parámetros, el primero se llama size y el según imageformat, los dos son de tipo entero.
  • Size es usado para determinar el tamaño del QR Code a generar, su valor recomendado es 4 y sus posibles valores son entre 4 y 6
  • Imageformat indica el tipo de imagen (archivo) a generar y sus posibles valores son: 0 para  BMP, 1 para JPG y 2 para PNG.
  • Por default estos valores son 4 para size y 0 para  Imageformat,

GenerateFile

  • Es el método más importante de la biblioteca, ya que es el encargado de genera el código de barras bidimensional o CBB como le decimos algunos.
  • Recibe dos parámetros: text que es el texto que va a contener el código y fileName que es el nombre y ruta del archivo que se va a generar, este nombre debe contener la extensión de acuerdo a lo definido en el método SetConfiguration.
  • Para su uso NO es necesario llamar previamente al método SetConfiguration

Como podemos ver es muy fácil usar dicha biblioteca, solo debemos importarla a nuestro lenguaje de programación favorito e invocar el método GenerateFile.

Para  finalizar pueden descarga el anexo 20 dando clic aquí y revisar la página 110 que es donde se da toda la especificación para el manejo de código de barras bidimenacional.

Hasta la próxima.

 

Electronic Document Library versión DLL Win32

Como todos ustedes ya sabrán estamos liberando una serie de herramientas que relacionadas con la factura electrónica, ya en días pasados comentamos la primera de ellas: Validador de certificados; hoy les traemos la segunda.

Electronic Document Library versión DLL Win32; ésta ha sido una de las cosas que más nos han requerido los desarrolladores en todo el tiempo de vida de la biblioteca; y ese precisamente es el origen de este proyecto, dar respuesta a todas esas solicitudes y permitir que mas desarrolladores disfruten de los beneficios que ofrece la biblioteca.

sabemos que un anuncio como este trae una avalancha de dudas que esperamos poder solucionar a continuación:

¿Desde que lenguajes podrá ser usada dicha versión?

Al ser una DLL podrá ser invocada desde cualquier lenguaje de programación, incluyendo los ya soportados C# y Delphi.

¿Dejaran de existir las versión de Dot Net (C#, VB .Net, etc) y Delphi?

No, la idea es continuar manteniendo las 3 versiones; este nuevo proyecto nace como una respuesta a las solicitudes de muchos programadores por usar la biblioteca en su lenguaje favorito; las otras dos versiones se seguirán manteniendo porque la idea es mantener el soporte nativo de la biblioteca en dicho lenguajes.

¿Viene preparada para ser usada en algún lenguaje en específico?

Si, se tiene contemplado implementar todos los ejemplos que ya existen en los siguientes lenguajes de programación, quedando la DLL lista para ser usada en dichos lenguajes:

  • Visual Basic
  • Visual Fox Pro
  • PowerBuilder

¿Y puedo usarla en otros lenguajes de programación?

Si lo puedes hacer, solamente que la incorporación al mismo la debes de hacer tu; pero no te preocupes con gusto te estaré apoyando.

¿Y qué tan fácil es de usar?

Desde nuestro punto de vista, creemos que es muy sencilla de usar, ya que son muy pocos los métodos que expone dicha DLL, esto debido a la arquitectura que proponemos para su uso; cuando estábamos gestando el proyecto fue uno de los puntos que más se analizo: la facilidad de uso; como podrán constatar en los otros proyecto que hemos publicado, siempre nos preocupamos por facilitarle mucho las cosas al desarrollador.

¿Y va a contener la misma funcionalidad que las otras versiones?

La respuesta es no y si; no porque en este momento va ser liberada con casi toda la funcionalidad y si porque en futuras versiones se incorporaría la funcionalidad necesaria para igualar los otros proyectos.

¿Y cuándo será liberada?

Esperamos en 2 o 3 semanas estar liberando una versión BETA de la misma.

¿Y cuánto va a costar?

Ponte en contacto con nosotros para darte mas información.

Nos gustaría comentar algunos aspectos técnicos de proyecto:

  1. Es una DLL de 32 Bits
  2. Contiene las de 10,000 lco escritas en ensamblador
  3. Son aproximadamente 8  los métodos que se exponen.

De nuestra parte es todo, esperamos pronto traerles nuevas noticias.

Electronic Document Library. ¿Librería o biblioteca?

Hace algunos días hablando con AL González, un excelente desarrollador y muy buen colega, nos hizo ver el error que comúnmente cometemos al hacer la traducción de un vocablo inglés, en este caso la plática se centro en la incorrecta traducción de la palabra Library, la cual  tradujimos como librería.

Este caso es lo que se conoce como falso amigo: “Un falso amigo es una palabra de otros idiomas que se parece, en la escritura o en la pronunciación, a una palabra en la lengua materna del hablante, pero que tiene un significado diferente.”

Para mayor referencia pueden leer esto.

Ahora bien, la pregunta del millón es: ¿Cuál es la traducción correcta en este caso? y la respuesta es: Biblioteca.

Para nosotros fue una gran sorpresa cuando descubrimos  nuestro gran error y aunque sé que muchos de ustedes ya lo sabían, quisimos publicar este post por si alguien más estaba en el mismo error.

Ahora que ya lo sabemos, esperamos en un futuro no muy lejano estar haciendo las correcciones respectivas en el sitio, foro, blog y todo lo relacionado con el proyecto para que use la palabra correcta.

Hasta la próxima.

Web service del SAT

Si lo que estas buscando es referente al Webservice para la descarga del archivo XML de tus facturas del servidor del SAT, te invitamos a que conozcas acerca de este tema, dando clic en la siguiente liga:

Webservice para descargar XML del SAT

Uno de nuestros visitantes al blog nos  escribió esto:

“…referente al web service público que el SAT tiene, según mis investigaciones en los foros si lo tiene pero no hay mucha información al respecto, al parecer solos los PAC tiene esta información que el SAT les pasa como un Development Kit o algo así, si esto es cierto tienes planeado sacar un DLL para conectarse directo a los WS del SAT?”

Inicialmente queríamos responderle directamente, pero creo que es una mejor idea si lo creamos con un post, asi todos podrán ver la repsuesta.

Actualmente el SAT tiene 2 web service publicados para el tema del CFDI:

Recepción del CFDI.

  • Fue creado para que el PAC le envíe el CFDI una vez generado
  • Este envío debe realizarlo en un tiempo menos a 1 hora una vez ha sido generado el CFDI, si pasa dicho tiempo si es recibido, pero es recibido como extemporáneo.
  • Para consumir dicho web service es necesario contar un certificado expedido por el SAT y que le es entregado a cada PAC una vez que ha superado el proceso de certificación.
  • El envío de dichos archivo al SAT es una obligación del PAC al SAT; no es una ventaja que te ofrezcan, ni un beneficio, como muchos nos lo quieren vender, ya que ellos adquirieron esa obligación en el momento que se certificaron.

Recepción de la cancelación

  • Este web service fue creado por el SAT para la recepción de la notificación de cancelación de un CFDI.
  • En este caso no es una obligación por parte del PAC ofrecer dicho servicio, ya que existen diferentes mecanismos para llevarlo a cabo, uno de ellos es ingresar a la página del SAT y realizar la cancelación de forma manual.
  • Si un PAC nos ofrece este servicio a través de algún medio, entonces si nos está dando un valor agregado.
  • Para consumir dicho web service es necesario contar un certificado expedido por el SAT y que le es entregado a cada PAC una vez que ha superado el proceso de certificación.

Viendo todo lo anterior podríamos concluir:

  1. La existencia de dichos web service no es un mito ni una especulación, existen y están funcionando.
  2. Las únicas personas que tienen permitido consumirlo son los Proveedores Autorizados de Certificación o PAC, ya que los certificados para esto son creados exclusivamente para los ellos.
  3. El primero web service no tiene sentido para nosotros como desarrolladores, ya que es para que los PAC cumplan con sus obligaciones.
  4. El único web service que tiene sentido consumir desde es el de cancelación.

Como bien saben hemos integrado la librería con PAC, el cual tiene previsto en un futuro cercano ofrecer en su web service la posibilidad de cancelar los CFDI, en el momento que esté disponible integrare la cancelación para que de forma transparente y automática puedan realizado.

Como habrán podido notar, siempre hemos tratado de integrar en la librería todo lo que está disponible para el CFD y CFDI, y este caso no va a ser la excepción; así que si la autoridad llegase a liberar el web service de cancelación para que podamos consumirlo, tenlo por seguro que lo estaremos integrando en las 3 versiones de la librería : Dot Net (C#, VB.Net, etc), Delphi y la DLL.

Hasta la próxima.

Archivo de folios

Como muy bien sabrán el SAT pública en su sitio FTP un archivo en donde está contenida la información de los folios autorizados; en dicho archivo podremos encontrar:

  • El RFC a quien se le autorizo
  • El numero de aprobación
  • E año de aprobación
  • La serie en caso de que hubiera solicitado folios para una serie en particular.
  • El rango de folios asignados.

Dicho archivo es utilizado por la librería para validar que el folio del CFD (versión 1.0 o 2.0) hubiera sido autorizado por el SAT.

Este archivo puede ser utilizado de 2 formas:

  • Directamente, esto es, se asigna el archivo a la librería y una vez que la validación es requerida se carga el archivo a memoria y se realiza el proceso de validación.
  • En una base de datos, para esto la librería ofrece clases que permiten leer el archivo y cargarlo a una base de datos; cuando la validación es requerid se dispara un evento al cual se pueden suscribir y realizar una búsqueda en la base de datos. Para este caso se incluye un ejemplo dentro del conjunto de ejemplos con lo que se libera la librería.

El día ayer tratamos de descargar la última versión del archivo y que sorpresa nos llevamos al ver que dicho archivo pesaba 2.06 GB, así es mis queridos lectores, inicialmente creíamos que era un error, así que decidimos descargarlo y que sorpresa nos llevamos al ver que el archivo era correcto.

Al pregunta del millón es ¿Por qué creció tanto dicho archivo?, realmente desconocemos el motivo, es algo extremadamente extraño, ya que la última vez que lo vimos, hace como 1 semana, estaba en 24 megas si no estamos mal.

El día de hoy hemos vuelto a revisar el archivo y su tamaño ya cambio, ahora esta de 1.1 GB.

Ahora tratamos de descargarlo usando el famosísimo FileZilla y resulta que la descarga siempre se corta a las 67 MB.

Vamos a tratar de verificar con la gente del SAT a ver qué está pasando, mientras, nuestra teoría de todo esto, es el SAT está haciendo algo mal al momento de generarlo, ya que no es lógico un crecimiento de esa magnitud de una semana a otra.