Bienvenido a Facturas y Respuestas.

Esperamos que encuentre la respuesta a su pregunta. Y si no, puede formularla para que los expertos de la comunidad la respondan.

Preguntar

Este blog es creado y administrado por:

Copyright - 2020

0 votos
por en Preguntas Tecnicas
Buen Día, estoy consumiendo el servicio de la DIAN en habilitación como software propio y la factura paso correctamente, pero las notas están generando el error "Regla: CAD06, Rechazo: Valor del CUDE no está calculado correctamente.", estoy validando con respecto a la documentación técnica del documento "Anexo Técnico de Factura Electrónica de Venta – Versión 1.8"

Al verificar cada uno de los parámetros tienen correspondencia con el archivo XML generado, además, probé el algoritmo con los datos de prueba entregados en la documentación y genera la misma cadena hash, seria de gran ayuda saber si debo tener en cuenta mas parámetros.
por
hola buenos dias estoy presentando el error  para realizar un documento soporte El XML esta presentando errores: Regla: DSAD06, Rechazo: Valor del CUDS no está calculado correctamente.Regla: DSAB27b, Rechazo: Huella no corresponde a un software autorizado para este ABS. que debo hacer

1 Respuesta

0 votos
por
 
Mejor respuesta
El problema era que al serializar el objeto Invoice en C# la hora de la factura tenia milisegundos y aunque en la factura para el CUFE esto no afecta en las notas si, así que solo elimine los milisegundos para la generación del CUDE y en el nodo /CreditNote/cbc:IssueTime/>
por
Buen día, depronto tienes un ejemplo de como estructuraste el CUDE, porque estoy siguiente los del anexo técnico y tengo el mismo el error del compañero, las serializaciones las hago en SAP ABAP.

Muchas gracias por la respuesta
por
editado por
Buenos Días,

Este es un ejemplo de código en c# que use para verificar si la generación del CUDE es correcto https://dotnetfiddle.net/fvYAqR, la documentación de la DIAN es correcta, lo que debe validar es que al realizar la serialización del objeto a XML los valores contenidos en el XML sean idénticos a los usados en el CUDE, en mi caso el problema es que la hora del CUDE era por ejemplo 08:53:36-05:00 pero al serializar el objeto la hora generaba 08:53:36.00000-05:00, también debe asegurar que los redondeos de los valores numéricos también sea a 2 cifras en el XML dado que 1.00 es diferente a 1.000 para los documentos electrónicos de las notas.
por
Muchas gracias por tu respuesta, pero este CUDE es para factura de venta cierto? para el application response no cambia la forma de armar el CUDE? porque mirando el documento técnico me lo muestra de esta forma

Num_DE -> Número del Documento Electrónico ApplicationResponse
Fec_Emi -> Fecha de emisión del DE ApplicationResponse
Hor_Emi -> Hora de emisión incluyendo GMT.
NitFE -> Documento de la Persona o institución que genera el evento
DocAdq -> Documento de la Persona que recibe este ApplicationResponse
ResponseCode-> Código del evento registrado en este ApplicationResponse
ID -> Prefijo y Número del documento referenciado
DocumentTypeCode-> Identificador del tipo de documento referenciado
Software‐PIN -> No está incluido dentro del documento XML.

Igual voy a probar el que me enviaste muchas gracias
por
El CUFE es para la factura de electrónica y el parámetro que cambia es que no tiene el PIN pero si tiene la clave técnica, el CUDE aplica para los otros documentos electrónicos, entonces el código de ejemplo https://dotnetfiddle.net/fvYAqR es para una NC nota crédito, aunque aun no he iniciado a implementar el CUDE para la nomina entonces podría tener variaciones con respecto a las facturas y notas.
por
Hola  Andresr tengo el mismo problema de los milisegundos  08:53:36.00000-05:00 podrías ayudarme como hacer para eliminar esos milisegundo ya que una vez que serializo mi objeto en el XML me los agrega. Gracias.
por
Buenos para todos lo que tiene este error ya logre solucionarlo, les dejo la solución por este medio, si se les presenta el error Regla: DSAD06, Rechazo: Valor del CUDS no está calculado correctamente. y estén ustedes seguros que el CUDS lo calculan correctamente, pero al momento de crear el XML el nodo cbc:IssueTime presenta la hora con los milisegundos, pueden hacer lo siguiente:

CampofechaConLaQueCalculanELCUDSCompleta = 12-08-2022 08:36:36.25369836

DateTime dateTime = CampofechaConLaQueCalculanELCUDSCompleta
dateTime = dateTime.AddTicks(-(dateTime.Ticks % TimeSpan.TicksPerSecond));


Con esto logramos quitar los milisegundos pero no quedaría ahora de esta forma la  
12-08-2022 08:36:36.000000
 
Entonces si crean el XML así nos arroja el error de regla DSAD06, entonces lo que deben de hacer es que antes de guardar su XML deberán recorrerlo e ir a ese nodo y modificar el InnerText de dicho nodo para este caso el cbc:IssueTime

foreach (XmlNode node in xml.DocumentElement.ChildNodes)
{
    String name = node.Name;
       if(name == "cbc:IssueTime")
    {
        node.InnerText = dateTime.ToString("HH:mm:ss-05:00");
        break;
    }
}

Donde xml es la variable que me almacena todo el XML creado, luego en cada iteración comparo el nombre del nodo hasta que sea igual al que necesito modificar en este caso
cbc:IssueTime y por ultimo en innerText le coloco el formato que lo acepta la DIAN.

Espero les sirva de ayuda y si alguno logra mejorarlo o saber como en un DataTime quitar los milisegundo esperamos su ayuda ya que el campo en el XSD es DataTime y String como en Nomina

Cualquier asesoría con software propio en Facturación electronica, Nomina o Documento de soporte y Dcumento de soporte para no obligados a facturar estamos dispuestos a ayudar.

#SystemsServices, Santa Marta, Colombia
...