Buscar en este blog

martes, 9 de abril de 2019

(VirtualPAC) Nuevas reglas de validación para XMLs

A partir del 3 Abril, han entrado en vigencia las nuevas reglas de validación solicitadas por el SAT para los CFDIs.

Estas nuevas validaciones comenzarán a tener efecto el día 9 de ABRIL 2019 y afectan distintos tipos de CFDI y a distintos complementos, a continuación enumeramos cuales son las nuevas validaciones de acuerdo a los comprobantes que mas emiten nuestros emisores.

Complemento de RECEPCIÓN DE PAGOS

 Se validará que el complemento contenga el Nodo Pago y el Nodo DoctoRelacionado con al menos un folio fiscal relacionado. 


Complemento Concepto POR CUENTA DE TERCEROS:


1.-   Validar que la clave de rfc del “Complemento Concepto PorCuentadeTerceros”, esté contenida en las listas LCO y tenga en el dato “validez de obligaciones”, una marca “2” para IVA al 8% o “1” para el resto de las operaciones. Ya no se podrá utilizar el RFC genérico XAXX010101000 para usar en el complemento.

2.-  Validar que el atributo “codigoPostal” del elemento t_UbicacionFiscal, esté contenida en el catálogo c_CodigoPostal, y contenga la marca que lo identifica como un código de franja fronteriza (cuando aplique IVA 8%).

3.- Validar a nivel de comprobante que la clave de productos y servicios del catálogo del Anexo 20, que ampara el concepto, contenga la marca que identifica que puede aplicar una tasa de IVA del 0.080000 (cuando aplique IVA 8%).

4.- Si se cumplen las validaciones antes listadas, en el “Complemento Concepto PorCuentadeTerceros”, en el nodo traslado, en el atributo tasa se debe registrar el valor 8.000000.(cuando aplique IVA 8%)

5.-  A nivel de comprobante, en el atributo TasaOCuota, del nodo Traslado la tasa de catálogo c_TasaOCuota del CFDI versión 3.3, deberá contener el valor fijo de 0.080000 para el tipo de impuesto IVA.(cuando aplique IVA 8%) 


Complemento de COMERCIO EXTERIOR 1.1


Se actualiza el mensaje de error cuando se intenta timbrar un CFDI con múltiples nodos de CCE11: Mercancía, para que haga referencia específicamente al nodo en el cual se detecte el error, anteriormente el mensaje hacía referencia siempre al primer Nodo <Identificacion>. 


Complemento ESTADO DE CUENTA DE COMBUSTIBLES:


 1.- Validar que la clave del atributo “Rfc” del Nodo: <Conceptos:ConceptoEstadoDeCuentaCombustible> (Rfc del enajenante) del complemento, esté contenida en las listas LCO y tenga en el dato “validez de obligaciones”, una marca “2”.

2.- Validar que en el atributo “TasaOCuota” del nodo <Traslados:Traslado> del complemento, contenga el valor fijo de 0.080000 para el tipo de impuesto IVA.(cuando aplique IVA 8%)

3.- En caso de que el IVA trasladado sea de una tasa diferente al 8%, deberá verificarse que el contribuyente cuente con obligaciones válidas para facturar (“validez de obligaciones” = “1”). 


Cfdi de RETENCIONES E INFORMACION DE PAGOS:


Se agrega validación para no certificar CFDI que contengan números en negativo en algún campo.

Si bien el XSD y estándar técnico no limita el uso de números negativos, fiscalmente no hay pagos o retenciones de impuestos en valores negativos.

Debido a que pudieran existir dudas en los siguientes escenarios, como una orientación se sugiere, además de revisarlo con el área contable de la empresa, lo siguiente:
  • Tratándose de pago indebido de impuestos‌, se deberá presentar la declaración complementaria y realizar el trámite de devolución del pago indebido de conformidad con el artículo 22 del Código Fiscal de la Federación.
  • Para operaciones en donde, derivado del cálculo establecido en las disposiciones fiscales exista una pérdida, hay campos en los complementos para reportar este dato. Tal es el caso del pago de intereses que se reportan en el CFDI de retenciones e información de pagos con el complemento de Intereses.
  • En caso de error en las facturas electrónicas de retenciones, éstas se deberán cancelar y reexpedirse con los datos correctos, en caso de que la operación se haya llevado a cabo.

lunes, 8 de abril de 2019

(VirtualPAC) Se elimina la facilidad de emisión de factura global para GASOLINERIAS y GASERAS

El día de hoy Lunes 8 de Abril de 2019, el SAT da a conocer que las gasolineras, gaseras, estaciones de servicio y en general a quienes fabriquen, produzcan, procesen, transporten, almacenen, distribuyan o enajenen: petróleo, gas natural, gasolina, diesel, turbosina, gas licuado de petroleo (LP) y gas propano, se les elimina la facilidad de la emisión de FACTURAS GLOBALES o mejor conocidas como FACTURAS POR LAS VENTAS DEL DIA.

A partir del día 1 de Mayo del año 2019, CADA TICKET de compra de gasolina, gas, petroleo, etc DEBERÁ SER FACTURADO INDIVIDUALMENTE, el contribuyente de este giro deberá emitir un CFDI, firmado, sellado y timbrado, con su CBB por cada venta que se realice al publico en general ya que la facilidad para la emisión de facturas globales también conocida como factura por las ventas del día se elimina para las gasolinerias y gaseras.

Esto quiere decir que la facilidad de emisión de la factura global ( establecida en la regla RMF 2.7.1.24) ya no será aplicable para los contribuyentes obligados a llevar controles volumétricos de hidrocarburos y petrolíferos.

Este cambio entra en vigor a partir del 1 de Mayo de 2019, tal como lo establece el cambio publicado en la Tercera Modificación a la Resolución Miscelánea Fiscal 2018 del 19/Oct/2018, Artículo Transitorio Décimo Primero

Que dice textualmente:

La reforma al Capítulo 2.6. denominado "De los controles volumétricos, de los certificados y de los dictámenes de laboratorio aplicables a hidrocarburos y petrolíferos" y a las reglas 2.7.1.24., último párrafo y 2.8.1.7., primer párrafo, fracción III; la adición de la regla 2.7.1.46., de las fichas de trámite 277/CFF a 285/CFF, contenidas en el Anexo 1-A, así como de los Anexos 30, 31 y 32, entrarán en vigor a partir del 1 de mayo de 2019.

Te recomendamos que si tu, o alguno de tus emisores se encuentran en este caso, realicen las modificaciones a sus programas para soportar esta nueva disposición oficial.

La sanción por no emitir un ticket por cada venta, puede ser de hasta $78,000.00 pesos POR TICKET NO FACTURADO.

Evita multas y sanciones a tus emisores cumpliendo con esta nueva disposición.

martes, 27 de noviembre de 2018

(VirtualPAC) Error reportado por diversos validadores al subir facturas.

Estos días hemos estado recibiendo numerosos mensajes con respecto a que distintos validadores no reconocen los certificados con los que fue sellado un documento emitido por VirtualPAC desde el día 15 de Noviembre del 2018.

Este error se debe a que el PAC DFacturE renovó sus certificados el día 15 de Noviembre de  2018, y el SAT le otorgó un nuevo CSD, por este motivo muchos validadores no tiene registrado este nuevo certificado y están rechazando las facturas con el mensaje de "no se encuentra el certificado con el que fue sellado el CFDI" o algún mensaje similar.

Para solucionar este problema será necesario actualizar el certificado del PAC en el validador, para esto será necesario que entres en la pagina:


En esa plataforma del SAT deberás proporcionar los Captcha correspondientes y solicitar descarga POR NUMERO DE CERTIFICADO.

El nuevo número de certificado de DFacturE es: 00001000000412706402.CER

La parte de seguridad:

¿ Como sé que este número es el número de certificado correcto ?

Este numero aparece en el timbre fiscal digital de tu CFDI, en la propiedad:

NoCertificadoSAT="00001000000412706402"

Abre el XML del CFDI con cualquier editor de textos y busca la sección <tfd:TimbreFiscalDigital> y ahi localiza la propiedad NoCertificadoSAT, verás el número mencionado anteriormente.

A ese número agrégale la extensión .CER y tendrás el nombre del archivo de certificado de sello digital, mismo que deberás descargar de la página del SAT.

¿ Porqué descargarlo de la página del SAT ?
¿ No lo puedes poner en el sitio de VirtualPAC para decargarlo directamente ?.

Sí, si podríamos, pero hemos tenido quejas de que los archivos podrían haber sido "manipulados", con lo cual preferimos que hagas directamente la descarga desde la página del SAT para que tengas la certeza de que el certificado es obtenido directamente del SAT sin manipulación de ninguna índole.

Proporciona el nuevo certificado a tu validador y podrás validar correctamente tus CFDIs generados por VirtualPAC a partir del 15 de Noviembre.

miércoles, 14 de noviembre de 2018

(VirtualPAC) Aviso IMPORTANTE sobre CFDIs no existentes en el SAT


El pasado día Jueves 8 de Noviembre 2018, nuestro PAC primario “DFacturE” (Facturación Electrónica, S.A.) emitió erróneamente CFDI’s con UUID que no fueron registrados en el SAT, notando esta falla el día Viernes 9 de Noviembre.

Para corregir este error, DFacturE re-emitió los CFDI erróneos el día 10 de Noviembre, lo que generó distinto UUID al que originalmente fue emitido. 

El contenido del CFDI se mantuvo exactamente igual y el CFDI se encuentra debidamente registrado en el SAT cambiando únicamente el timbre fiscal digital y su correspondiente UUID. En algunos casos, la re-emisión del CFDI no fue posible.

Para ayudar a nuestros usuarios a identificar los documentos afectados por esta falla, DFActurE nos ha proporcionado un listado con los UUID erróneos, los UUID correctos y los UUID que no pudieron re-emitirse, ordenados por RFC emisor.

Dentro de las próximas 24 hrs. pondremos a su disposición a través del portal de Administración de VirtualPAC (http://admin.virtual-pac.mx), un archivo ZIP conteniendo los archivos XML con el timbre fiscal digital correcto; así como una hoja de MS Excel con la información correspondiente al RFC Emisor, UUID Erróneo, UUID Correcto, así como UUID que no pudieron ser re-emitidos.

Lamentamos las molestias que esto pueda ocasionarles y en compensación por nuestra parte, asignaremos sin costo 10 timbres fiscales a cada emisor por cada UUID que no haya sido procesado correctamente. 

Para más información relativa a esta falla y dado que escapa a nuestra competencia directa, les pedimos atentamente se pongan en contacto directo con el PAC “DFacturE” en el teléfono: 01-222-248-5252 con la Srta. Pilar Curiel o al correo integraciones@dfacture.com
 
Reiteramos nuestro compromiso con nuestros clientes para proporcionarles el mejor servicio de timbrado.

viernes, 9 de noviembre de 2018

(VirtualXML) El valor del campo TotalImpuestosRetenidos debe ser igual a la suma de los importes registrados en el elemento hijo Retencion

El día de hoy Viernes 9 de Noviembre 2018 muchos emisores han comenzado a obtener este mensaje de error:

CFDI33181 El valor del campo TotalImpuestosRetenidos debe ser igual a la suma de los importes registrados en el elemento hijo Retencion. El nodo Impuestos:Retenciones no contiene elementos.

No es un mensaje de error, es un error de llenado del XML mismo que las nuevas guias de llenado publicadas por el SAT en Septiembre de 2018 ya habían comentado que se validaría.

¿ En que consiste el error ?

El error consiste en poner 0.00 en el nodo TotalImpuestosRetenidos, cuando el CFDI NO TIENE RETENCION DE IMPUESTOS, es decir, no hay retención de IVA o de ISR (retenciones que solo existen cuando las personas físicas emiten recibos de honorario ó arrendamiento a personas morales) o bien en algunos casos de retención por ventas a gobierno.

Por lo tanto, si un CFDI no tiene retenciones no tiene porque contener el nodo TotalImpuestosRetenidos y por ende este nodo no debe tener ningúnn valor.

Usando VirtualXML y la función:


Es la causa del problema pero al mismo tiempo la solución.

El problema se causa cuando haces:

VirtualXML_SetImpuestosInfo_cfdi33(hXml, "ImporteTraslados","0.00")

El último parámetro de la función es el que se utiliza para indicar el importe de los impuestos retenidos, si estos no existen en tu CFDI, debes usar esta función así:

VirtualXML_SetImpuestosInfo_cfdi33(hXml, "ImporteTraslados","")

Como verás el último parámetro está vacío, con lo cual no se generará el nodo "TotalImpuestosRetenidos"cuando estos no existan.

Este mismo error lo tendrás cuando pongas un valor de "0.00" en los descuentos de las partidas, pero este asunto ya lo hemos tratado en otro post del blog que puedes consultar en:

http://virtual-pac.blogspot.com/2018/02/virtualxml-el-problema-de-los.html 

Es importante recalcar que cuando un nodo relativo a importes (SubTotal, Total, Descuentos, etc) cuando no tienen valor NO DEBEN SER LLENADOS CON 0.00, simplmente o deben existir.
 
Es importante que realices este cambio ya que el SAT continuará siendo mas exigente con el llenado de los CFDI 3.3

lunes, 22 de octubre de 2018

(VirtualXML) 2 Nuevas funciones para el nuevo esquema de cancelaciones


El día de hoy Lunes 22 de Octubre de 2018, estamos liberando una nueva version de VirtualXML que incluye 2 funciones muy importantes para el nuevo esquema de cancelación:

La función:
VirtualXML_CancelaCFDI()

Que publicamos la semana pasada, sufrió algunos cambios internos para mejorar su desempeño y 2 validaciones adicionales que no estabamos realizando. Ahora funciona correctamente en todos los casos.

Les recuerdo que cuando la función devuelva un valor 1 (que indica que se ha solicitado la cancelación por medio del buzón tributario, se cobrará 1 timbre por el uso del servicio), cuando la cancelación sea directa, o no proceda ya sea porque el CFDI no es cancelable o bien porque no se encuentre en los registros del SAT, no habrá cobro por el uso de la función.


Incluimos una nueva fucnión:

VirtualXML_GetStatusCFDI()

Esta función tiene como objetivo obtener el estado de un CFDI (Cancelable, no cancelable o no existente) durante el proceso de cancelación bajo el nuevo esquema, por ejemplo:
  • Puedes consultar el estado (ver si es cancelable, no cancelable y como se puede cancelar: directamente o con autorización) de un CFDI ANTES de cancelarlo
  • Puedes consultar si un CFDI ya se encuentra en los registros del SAT y es cancelable
  • Puedes consultar si un CFDI ya se autorizó para cancelación o bien esta en PROCESO de autorización
  • Puedes consultar si un CFDI aplicó cancelación Ficta o fue rechazado por el el receptor.
Es muy importante recordarles que el uso de esta función tiene costo de 1 timbre fiscal por UUID consultado, el cual se cobrará una unica vez, la primera vez que se solicite la consulta, despues de la primer consulta, podrás realizar todas las consultas que desees sobre el mismo UUID tantas veces como quieras sin costo, solo se cobra la primer consulta.

La documentación y ejemplo de esta nueva función ya se encuentra en la documentación en línea de VirtualXML:

http://www.virtual-pac.mx/doc/html/Virtualxml_GetStatusCFDI.htm

Les recordamos que el nuevo esquema de cancelaciones entra en vigor el día 1 de Noviembre, por lo que cuentan con poco mas de 1 semana para realizar los cambios en sus sistemas.

La nueva DLL se encuentra disponible como siempre en nuestro sitio:

http://www.virtual-pac.mx/vxml_x86x64_xp2003.zip
 
Los wrappers de las nuevas funciones ya se encuentran disponbiles en los respectivos ejemplos en cada lenguaje que pueden descargar de nuestra pagina web: www.virtual-pac.mx



sábado, 13 de octubre de 2018

(VirtualXML) Nueva función de Cancelación Vigente a partir del 1 de Noviembre 2018

Tenemos el tiempo encima para la entrada del nuevo esquema de cancelaciones el cual entrará en vigor el día 1 de Noviembre de 2018.

El nuevo método de cancelación es bastante complejo y esta vez TENDRA COSTO en un caso específico, por favor, lee este artículo hasta el final para saber cuando tendrás que pagar un timbre y cuando la cancelación será sin costo.

La nueva función es:

VirtualXML_CancelaCFDI()

No confundir con  VirtualXML_CancelaUUID(), esta función es la que esta actualmente vigente pero no funcionará a partir del 1 de Noviembre.

Veamos la sintaxis de esta nueva función:

VirtualXML_CancelaCFDI( cUsuario,         
                        cRfcEmisor,
                        cRfcReceptor,
                        cTotal,
                        cUuid,
                        cCert,
                        cKey,
                        cPwd,
                        cArchResult,
                        cArchLog ) -> nResultado

 Donde :

    cUsuario: Nombre del usuario VirtualPAC
  cRfcEmisor: RFC del emisor del CFDI que deseamos cancelar.
cRefReceptor: RFC del receptor del CFDI que deseamos cancelar
      cTotal: Importe total del CFDI que queremos cancelar
       cUuid: UUID del CFDI a cancelar:
       cCert: Ruta y nombre del archivo .CER del emisor del CFDI
        cKey: Ruta y nombre del archivo .KEY del emisor del CFDI
        cPwd: Password de archivo KEY
 cArchResult: Ruta y nombre de un archivo donde se colocará el resultado de la cancelación
    cArchLog: Ruta y nombre de un archivo donde se colocará una bitacora donde se registrarán los eventos del proceso de cancelación.

Devuelve:

nResultado: Un valor numérico que nos indica el resultado del proceso de cancelación y que puede tener 5 posibles valores:

    • 1 - Significa que el CFDI no puede cancelarse directamente y que se ha solicitado al receptor, mediante el buzon tributario, la cancelación del CFDI, en este caso habrá que esperar las 72 horas que marca la ley para obtener una cancelación FICTA si el receptor no rechaza la cancelación o bien si el receptor rechaza la cancelación, el documento no se cancelará, en cualquier caso, si la función devuelve un valor de "1" (UNO) se te cobrará un timbre del saldo del emisor. El cobro de este timbre NO GARANTIZA que la cancelación proceda exitosamente, queda a criterio del SAT y del receptor aplicar la cancelación correspondiente.
    • 0 - Significa que el CFDI se puede cancelar directamente y que se ha cancelado con éxito, en este caso no se te cobrará timbre por la cancelación del documento.
    • -1 - Significa que el CFDI NO SE PUEDE CANCELAR, esto puede deberse a varios motivos, como por ejemplo, el CFDI ha sido previamente cancelado o bien, el CFDI esta en estado de "PROCESANDO", la cancelación ha sido rechazada por el receptor, el CFDI tiene documentos relacionados y otros posibles errores, mismos que podrán consultarse mas a detalle en el archivo de resultados.
    • -2 Indica que el CFDI no existe aún en los registros del SAT, si obtienes este resultado, deberás revisar que has indicado un CFDI correcto o bien tendrás que esperar algun tiempo hasta que el CFDI sea registrado en el SAT, te recordamos que el tiempo que marca la ley para que el PAC envie al SAT los CFDI es de un máximo de 72 horas.
    • -3 Indica que existe algún error en el proceso interno de cancelación como por ejemplo que el servicio de cancelaciones del SAT no está disponbile, para mas detalles deberás consultar el archivo de bitácora (ultimo parámetro de la función) donde se guardan detalles técnicos de operación de la función. 
Ejemplo:

nResultado := VirtualXML_CancelaCFDI( "Usuario",                        "AAA010101AAA",
                        "CTE940531F58",
                        "1160.00",
                        "D8E18C2F-2859-4927-A0F0-EA3E93642DDC",
                        "c:\certificados\archivo.cer",
                        "c:\certificasos\archivo.key",
                        "PasswordDelKey",
                        "d:\resultados\resultado.ini",
                        "d:\resultados\bitacora.log")

Por favor nota que esta nueva función incluye 2 archivos de resultados, el primero es un archivo donde aparecerán los resultados completos del proceso de cancelación, si el nombre lo indicas con la extensión ".INI", obtendras un archivos con los resultados expresados en formato INI, si utlizas otra extensión o no le pones extensión al archivo, lo obtendrás como un texto plano dividido en renglones. En este archivo se guardará toda la información devuelta por el SAT del proceso de cancelación


Entre otros datos podrás encontrar el error de la cancelación, el estado del comprobante, si el comprobante es cancelable y el estatus de cancelación, así como también el PAC que canceló el documento.

El segundo archivo es un archivo de bitácora similar al VirtualXML.LOG donde la función guarda todos los pasos seguidos en el proceso de cancelación, este archivo solo será necesario para fines de depuración y control de errores, pero te recomendamos tenerlo a mano para hacerlo llegar a nuestra area de soporte en caso de que tengas fallas (que las vas a tener) con el nuevo esquema de cancelaciones.

Esta nueva función ya esta disponible en la versión de VirtualXML del 08 de Octubre de 2018 y que ya está disponible en nuestra página web (www.virtual-pac.mx).

TODOS LOS EMISORES DEBERAN ACTUALIZAR SU DLL PARA TENER ACCESO A LA NUEVA FUNCION DE CANCELACIONES.

Nuestros PACs nos han informado que ya es posible realizar pruebas en un entorno "real" proporcionado por el mismo SAT ya que hasta la fecha, todas las pruebas solo se podían realizar en entornos simulados por los PACs no reales.

La batería de funciones de cancelación no está concluida aún, faltan 3 funciones muy importantes que de momento no podemos liberar hasta que empiecen a fluir las cancelaciones reales bajo el nuevo esquema y que son:

  1. Función para revisar el estado de un documento en PROCESO y saber si la cancelación ya fue autorizada o bien fue rechazada por el receptor, estamos considerando utilizar una función que ya viene incluida en VirtualXML que es VirtualXML_ConsultaEstadoCFDI() que ya existe actualmente y que debemos modificar para devolver nuevos valores, de momento no podemos hacerlo hasta ver que resultados nos va a devolver el SAT exactamente, que ya hasta el momento de escribir este artículo aún no esta disponible la plataforma de consultas.
  2. Función para descargar todas las peticiones de cancelación de nuestros proveedores, a fin de evitar tener que estar consultado el buzón fiscal todos los dias, tendremos una función que te permitirá descargar todas las peticiones de cancelacions que hayas recibido en tu buzón fiscal, el uso de esta función se cobrará a 1 timbre por consulta.
  3. Función para autorizar/rechazar las peticiones de cancelación recibidas, esta función tiene por objeto que puedas autorizar o rechazar las peticiones que hayas descargado sin necesidad de utilizar el buzón fiscal, el uso de esta función también tiene el costo de 1 timbre por uso. 
El hecho que de en esta ocasión tengamos que cobrar los timbres por algunos servicios, se debe a que los PACs que prestan el servicio de cancelación también nos van a cobrar a nosotros por las cancelaciones, y tienen razón, se está utilizando un servicio que les ha costado desarrollar, implementar y mantener, por lo mismo tienen que cobrar el servicio.

Esperamos que esta información te sea de utilidad para comenzar a trabajar con el nuevo esquema de cancelaciones, por nuestra parte seguimos trabajando para tener pronto toda la batería de funciones lista.