book Problemas Comunes.

Conoce las diferentes problemáticas que podrías presentar durante el proceso del timbrado de tus comprobantes y las soluciones a los casos mas recurrentes.

  • SoapFaultCode:4 El sello del emisor es inválido

    Una de las razones por las que podrás obtener éste error es que dentro del cuerpo o concepto de la factura se hayan asignado símbolos o caracteres especiales. Verifica que no contenga caracteres de tipo / * \ ? ¿ ° # $ ! ^ ° | ” %.

    Relacionado con los conceptos deberás verificar que se respete la  misma cantidad de decimales utilizados en el comprobante (2-6 decimales) al generar la cadena original y asegurarte de que cada atributo sea especificado conforme a los catálogos oficiales, evitando por ejemplo especificar NA o NaN, agregar espacios vacíos no requeridos, etc. Ya que ésto al ser parte de la información que genera la cadena original, representa un error como tal.

    Por ejemplo:

    Ejemplo1

    De igual manera, es importante verificar el órden de los datos que componen la cadena original. Este órden se rige por el .xslt que el SAT tiene publicado (y que te compartimos en el botón de guía), ésta guía incluye los parámetros de la estructura de la cadena original y el órden de los atributos a agregar.

    Considera que existen atributos requeridos y opcionales, sin embargo los atributos opcionales, en caso de ser agregados deberán seguir el orden indicado por el .xslt.

    Existen diversos complementos que podrías requerir agregar en tu comprobante, es necesario que verifiques el .xslt que corresponda al complemento que agregarás para conocer el órden de los atributos.

    Fragmento de .xslt:

     

    Fragmento xslt-Secuencia de atributos de cadena original

    Ejemplo básico de Cadena Original y secuencia de atributos:

    Ejemplo-Secuencia de Cadena Original

    Una vez que hayas verificado la información incluida en el XML será necesario generar nuevamente la cadena original y procesar una vez mas la petición de timbrado del comprobante.

    Puedes consultar el documento guía con el que deberás basar la generación de la cadena original. Guía para Cadena Original >

  • CFDI33149 El valor del campo Importe no se encuentra entre el límite inferior y superior permitido

    Este tipo de error puede presentarse al momento de enviar la petición de certificación del CFDI, y su origen radica en que el cálculo del importe del concepto (cantidad*precio unitario) del CFDI es incorrecto o se ha encontrado una diferencia significativa por redondeo de decimales entre los importes y el total.

    Como solución a ésta situación, el SAT  ha implementado un rango que permite que las cantidades y el total puedan diferir en centavos siempre y cuando no sobrepase los límites establecidos para ése rango ya que al excederse se generará el mensaje de error que estamos evaluando.

    Para establecer éste rango será necesario aplicar la regla tal como lo indica el Anexo 20 de la Resolución Miscelánea Fiscal para 2017:

    • Confirmar la cantidad de decimales permitidos según el tipo de moneda especificado en el CFDI.
    • Calcular los límites superior e inferior del rango aceptado. Para ésto se deberán seguir las fórmulas siguientes:

    Límite inferior:

    (Cantidad – 10^-NumDecimalesCantidad/2)*(ValorUnitario – 10^- NumDecimalesValorUnitario/2) y este resultado truncado con la cantidad de decimales que tenga registrado este campo.

    Límite Superior:

    (Cantidad + 10^-NumDecimalesCantidad/2 -10-12)*(ValorUnitario + 10^-NumDecimalesValorUnitario/2 -10-12) y este resultado redondearlo hacia arriba con la cantidad de decimales que tenga registrado este campo.

    Como resultado, el valor de este atributo “importe” debe ser mayor o igual que el límite inferior y menor o igual que el límite superior.

    Ejemplo Práctico en CFDI

    <cfdi:Conceptos>
    <cfdi:Concepto Importe=”__?__” ValorUnitario=”8.19″ Descripcion=”PL Papper 59X57MM” Unidad=”PZA” ClaveUnidad=”H87″ Cantidad=”50″ NoIdentificacion=”20033262″ ClaveProdServ=”01010101″>

    Información a recabar:

    ValorUnitario=”8.19″ 

    Cantidad=”50″

    Tipo de Moneda del CFDI: MXN

    Cantidad de decimales aceptados para MXN: 2

    Límite Inferior:

    1. Sustituimos los valores de la fórmula con los que correspondan al concepto:

    (“Cantidad”5010^-“NumDecimalesCantidad” 0/2)*(“ValorUnitario”8.19 10^- “NumDecimalesValorUnitario” 2/2)

    Quedando de la siguiente manera:

    (50-10-0 /2)*(8.19-10-2/2)

    2. Solucionando las ecuaciones de adentro hacia afuera, realiza el cálculo de 10 elevado a las potencias -0 y -2, el resultado es:

    (50-1/2)*(8.19-0.01/2)

    3. Ahora la siguiente ecuación interna en la que se divide 0.01 entre 2:

    (50-0.5)*(8.19-0.005)

    4. A continuación la última ecuación interna en la que se resta a la cantidad y el valor unitario las cifras resultantes de la ecuación anterior. Posteriormente se podrá realizar la operación simple entre los dos resultados:

    (49.5)*(8.185)=405.1575

     Éste es el límite inferior del rango que está buscando. Restará ahora aplicar el Truncado a ésta cifra que ha obtenido, es decir, cortar los decimales a la cantidad de decimales del Tipo de Moneda del CFDI, que en éste caso son dos. La cantidad límite inferior quedaría de la siguiente manera:

    405.15

    Límite Superior:

    1.Siguiendo la misma base del procedimiento anterior sustituiremos los valores de la fórmula con los correspondientes al concepto:

    (“Cantidad” 50+ 10^-“NumDecimalesCantidad” 0/2 -10^-12)*(“ValorUnitario” 8.19+ 10^-“NumDecimalesValorUnitario” 2/2 -10^-12)

    2. Quedando de la siguiente manera:

    (50+10-0 /2-10-12)*(8.19+10-2/2-10-12)

    3. Iniciando las operaciones internas, se calcula la potencia de 10 elevado a -12:

    (50+10-0 /2-1e-12)*(8.19+10-2/2-1e-12)

    4. Enseguida calcule la operación de 10 elevado a la potencia negativa de los decimales:

    (50+1/2-1e-12)*(8.19+0.01/2-1e-12)

    5. Realice la operación siguiente con el resultado de la operación anterior entre 2:

    (50+1/2-1e-12)*(8.19+0.01/2-1e-12)

    El resultado sería:

    (50+0.5-1e-12)*(8.19+0.005-1e-12)

    6. Ahora es posible realizar la operación dentro de cada corchete y calcular ambas cifras para obtener el límite:

    (50.5)*(8.195)=413.8475

    A ésta cifra resultante se le aplicará un Redondeo hacia arriba, respetando la cantidad de decimales del Tipo de Moneda. El límite inferior queda de la siguiente manera:

    413.85

    Valor del Importe

    El valor del atributo Importe deberá encontrarse dentro del rango de los límites superior e inferior que se han establecido.

  • Error CCE216 (Comercio Exterior)

    El atributo cce11:ComercioExterior:Mercancias:ValorDolares de cada mercancía registrada debe ser mayor o igual que el límite inferior y menor o igual que el límite superior o uno, cuando la normatividad lo permita y exista el atributo cce11:ComercioExterior:Mercancias:Mercancia:CantidadAduana.

    Las causas mas comunes por las que puede presentarse éste error durante el proceso de timbrado son:

     

    • Existe una variación entre la cantidad de decimales implementados en el complemento Comercio Exterior y los importes del concepto del comprobante. Por  favor considere que el tipo de moneda a declarar dentro del complemento Comercio es el dólar de los Estados Unidos de América, mismo que se incluye en el catálogo c_Moneda como USD. Este tipo de moneda permite 2 decimales, por lo que es importante que ésta cantidad de decimales se aplique en el resto del comprobante. De manera que, la relación de los importes del concepto con la mercancía cuadre correctamente al momento de solicitar el timbrado.

     

    • El valor del campo ValorDolares de las mercancías está fuera del rango permitido. Para que el valor de éste campo se valide de forma apropiada deberá contar con los datos debidamente registrados en los campos “TipoCambio”, “TipoCambioUSD”, “Cantidad” y “Valor unitario” en el comprobante. Posteriormente se deberá considerar que el valor de ValorDólares se encuentre dentro del rango tal como se indica en la regla de uso de éste campo.

    Regla de uso ValorDolares

    ● Se debe obtener la suma de los campos cfdi:Comprobante:Conceptos:Concepto:importe donde los conceptos tengan el mismo  cfdi:Comprobante:Conceptos:Concepto:NoIdentificacion sea igual al de la mercancía, esta suma se debe convertir a la moneda en la que se expresa el comprobante y obtener valores mínimo y máximo, mismos que se calculan de la siguiente manera:

    Valor mínimo

    (importe – (10^-NumDecimalesImporte)/2) * (TipoCambio – (10^-NumDecimalesTipoCambio)/2) / (TipoCambioUSD + (10^-NumDecimalesTipoCambio)/2 – 10^-12) y este resultado truncado a centésimas.

    Valor máximo

    (importe + (10^-NumDecimalesImporte)/2 – 10^-12) * (TipoCambio + (10^-NumDecimalesTipoCambio)/2 – 10^-12) / (TipoCambioUSD – (10^-NumDecimalesTipoCambio)/2) y este resultado redondeado hacia arriba a centésimas.

    Ejemplo práctico de cálculo de límites

     

    Fracción de xml, cfdi:Comprobante y  cfdi:Comprobante:Conceptos:Concepto:

    <cfdi:Comprobante LugarExpedicion=”11510″ TipoCambio=”18.12700″ CondicionesDePago=”Neto 30 días”
    MetodoPago=”PPD” FormaPago=”99″ TipoDeComprobante=”I” Total=”20525.50″ Moneda=”USD”
    SubTotal=”20525.50″ Fecha=”2017-12-11T13:25:31″ Folio=”0034958542″ Version=”3.3″

    tres puntos abajo

    <cfdi:Conceptos>
    <cfdi:Concepto ClaveProdServ=”50221002″ NoIdentificacion=”000000000000061951″
    Cantidad=”490.00″ ClaveUnidad=”H87″ Unidad=”PZA”
    Descripcion=”Alimento procesado” ValorUnitario=”9.67″
    Importe=”4738.30″>

    Fracción de xml, cfdi:Complemento:cce11:ComercioExterior:

    <cce11:ComercioExterior Version=”1.1″ TotalUSD=”20525.50″ TipoCambioUSD=”18.12700″
    Subdivision=”0″ Incoterm=”DAP” CertificadoOrigen=”0″ ClaveDePedimento=”A1″
    TipoOperacion=”2″>

    Información a recabar:

    Importe: 4738.30

    TipoCambio: 18.12700

    Decimales para TipoCambio: 4

    TipoCambioUSD: 18.12700

    Aplicación de la Regla

    Valor mínimo:

    1. Sustituimos los valores de la fórmula con los que correspondientes en el xml:

    (importe “4738.30“- (10^-NumDecimalesImporte”2“)/2) * (TipoCambio “18.12700“- (10^-NumDecimalesTipoCambio”4“)/2) / (TipoCambioUSD “18.12700” + (10^-NumDecimalesTipoCambio”4“)/2 – 10^-12) y este resultado truncado a centésimas.

    Quedando de la siguiente manera:

    (4738.30-(10-2)/2)*(18.12700-(10-4)/2)/(18.12700+(10-4)/2-10-12)

    2. Solucionando las ecuaciones de adentro hacia afuera, se calcula la potencia de 10 elevado a -12:

    (4738.30-(10-2)/2)*(18.12700-(10-2)/2)/(18.12700+(10-2)/2-1e-12)

    3. Enseguida, realiza el cálculo de 10 elevado a la potencia -2, el resultado es:

    (4738.30-(0.01)/2)*(18.12700-(0.0001)/2)/(18.12700+(0.0001)/2-1e-12)

    4. Ahora la siguiente ecuación interna en la que se divide 0.01 y 0.0001 entre 2:

    (4738.30-0.005)*(18.12700-0.00005)/(18.12700+0.0001/2-1e-12)

    5. Resolvemos la ecuación siguiente restando 2- 1e-12:

    (4738.30-0.005)*(18.12700-0.00005)/(18.12700+0.0001/2)

    6. Enseguida calcula cada operación interna:

    (4738.295)*(18.12695)/(18.12705)

    7. Ahora puedes realizar la operación simple lineal:

    (4738.295)*(18.122)/(18.1295)4738.268860639210461713295875501

    Restará ahora aplicar el Truncado a ésta cifra que se ha obtenido. El truncado a centésimas indica la cantidad de decimales en las que se trunca (corta) la cifra en cuestión, por ejemplo  nuestro resultado:

    4738.268860639210461713295875501

    A la décima:  4738.2

    A la centésima: 4738.26

    A la milésima: 4738.268

    En éste caso, la cifra que nos corresponde para el Valor mínimo es:

    4738.26

     

    Valor máximo:

    1. Sustituimos los valores de la fórmula con los que correspondientes en el xml:

    (importe “4738.30”+ (10^-NumDecimalesImporte”2″)/2 – 10^-12) * (TipoCambio “18.12700” + (10^-NumDecimalesTipoCambio “4”)/2 – 10^-12) / (TipoCambioUSD “18.12700” – (10^-NumDecimalesTipoCambio “4”)/2) y este resultado redondeado hacia arriba a centésimas.

    Quedando de la siguiente manera:

    (4738.30+(10-2)/2-10-12)*(18.12700+(10-4)/2-10-12)/(18.12700-(10-4)/2)

    2. Solucionando las ecuaciones de adentro hacia afuera, se calcula la potencia de 10 elevado a -12 en cada ocasión :

    (4738.30+(10-2)/2-1e-12)*(18.12700+(10-4)/2-1e-12)/(18.12700-(10-4)/2)

    3. Enseguida, realiza el cálculo de 10 elevado a la potencia -2 y -4, el resultado es:

    (4738.30+(0.01)/2-1e-12)*(18.12700+(0.0001)/2-1e-12)/(18.12700-(0.0001)/2)

    4. Ahora la siguiente ecuación interna en la que se resta 2-1e-12:

    (4738.30+(0.01)/2)*(18.12700+(0.0001)/2)/(18.12700-(0.0001)/2)

    5. Continúa calculando las divisiones:

    (4738.30+0.005)*(18.12700+0.00005)/(18.12700-0.00005)

    6. Enseguida calcula cada operación interna:

    (4738.305)*(18.12705)/(18.12695)

    7. Ahora puedes realizar la operación simple lineal:

    (4738.305)*(18.12705)/(18.12695)= 4738.3311395601576657959557454508

    Restará ahora aplicar el Redondeo a ésta cifra que se ha obtenido. El redondeo hacia arriba (en caso de que la cifra sea arriba de 5) a centésimas indica la cantidad próxima a completar y la cantidad de decimales que se aplicará a la cifra en cuestión, por ejemplo  nuestro resultado:

    4738.3311395601576657959557454508

    A la décima:  4738.3

    A la centésima: 4738.33

    A la milésima: 4738.330

    En éste caso, la cifra que nos corresponde para el Valor mínimo es:

    4738.33

     

    Validación del campo

    El valor del atributo ValorDolares deberá encontrarse dentro del rango de los límites máximo y mínimo que se han establecido.

  • Error por Número de Pedimento Aduanal

    Es probable que puedan presentarse errores al certificar un CFDI que contenga éste tipo de complemento.

    Un Pedimento Aduanal es la declaración fiscal que realiza un particular a través de un Agente Aduanal para realizar la importación o exportación de mercancías.

    Este número se compone en total de 15 dígitos separados de la siguiente manera:

    • Los primeros 2 son la terminación del año en curso.
    • Enseguida 2 espacios.
    • Los siguientes 2 indican en clave la aduana a la que corresponde dicho pedimento (conforme al Apéndice 1 de las Reglas de Carácter General vigentes).
    • Enseguida 2 espacios.
    • Los siguientes 4 son la patente (autorización) que le corresponde al Agente Aduanal que realiza el despacho.
    • Enseguida 2 espacios.
    • Los últimos 7 números se desglosan de la siguiente manera:
      • el primer dígito es el último número del año en curso.
      • Los siguientes 6 son el número que le corresponde a esa operación de un consecutivo que lleva el Agente Aduanal por cada Aduana en la que puede realizar despachos.

    Ejemplo de numero de pedimento

    Los números de pedimento operados podrán ser consultados en el Catálogo c_NúmeroPediementoAduana  del SAT para Factura de Comercio Exterior.                     Ver Catálogo > 

book Catálogo de Errores.

  • Fracción de xml, área mercancías de complemento Comercio Exterior:

    <cce11:Mercancias> <cce11:Mercancia NoIdentificacion=”000000000000061951″ FraccionArancelaria=”19012001″ CantidadAduana=”4445.28″ UnidadAduana=”01″ ValorUnitarioAduana=”1.06″ ValorDolares=”__?__”/>

    Información a recabar:

    CantidadAduana: 4445.28

    ValorUnitarioAduana: 1.06

    TipoMoneda: USD

    Decimales para USD: 2

    Límite Inferior:

    1. Sustituimos los valores de la fórmula con los que correspondan al concepto:

    (CantidadAduana “4445.28 – (10^-NumDecimalesCantidad “2“)/2) * (ValorUnitarioAduana “1.06 – (10^-NumDecimalesValorUnitario “2“)/2)

    Quedando de la siguiente manera:

    (4445.28-(10-2)/2)*(1.06-(10-2)/2)

    2. Solucionando las ecuaciones de adentro hacia afuera, realiza el cálculo de 10 elevado a la potencia -2, el resultado es:

    (4445.28-(0.01)/2)*(1.06-(0.01)/2)

    3. Ahora la siguiente ecuación interna en la que se divide 0.01 entre 2:

    (4445.28-0.005)*(1.06-0.005)

    4. A continuación la última ecuación interna en la que se resta a la CantidadAduana y el ValorUnitarioAduana las cifras resultantes de la ecuación anterior. Posteriormente se podrá realizar la operación simple entre los dos resultados:

    (4445.275)*(1.055)= 4689.765125

    Restará ahora aplicar el Truncado a ésta cifra que se ha obtenido. El truncado a centésimas indica la cantidad de decimales en las que se trunca la cifra en cuestión, por ejemplo  nuestro resultado:

    4689.765125

    A la décima:  4689.7

    A la centésima4689.76

    A la milésima: 4689.765

    En éste caso, la cifra que nos corresponde para el límite inferior  es:

    4689.76

    Límite Superior

    1.Siguiendo la misma base del procedimiento anterior, sustituiremos los valores de la fórmula con los correspondientes al concepto:

    (CantidadAduana “4445.28 + (10^-NumDecimalesCantidad “2“)/2  – 10^-12) * (valorUnitarioAduana “1.06 + (10^-NumDecimalesValorUnitario “2” )/2  – 10^-12)

    Quedando de la siguiente manera:

    (4445.28+(10-2)/2-10-12)*(1.06+(10-2)/2-10-12)