Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Ley antifraude 2021 (VERIFACTU) - Programas informáticos (https://www.clubdelphi.com/foros/showthread.php?t=95235)

bmfranky 22-10-2024 20:38:51

Funcion generar QR C#
 
Una vez puesto, ahunque nadie me la ha pedido , adjunto mi funcion para generar el QR
Primero que nada instalar el paquete nuget
Cita:

QRCoder
Aqui os dejo la funcion, debuelve el QR en bytes[], para que lo asignemos directamente a la plantilla de impresion.
Código:

/// <summary>
 /// Funcion para generar el QR segun la especificacion Veri*Factu
 /// </summary>
 /// <param name="nif">Nif obligado..</param>
 /// <param name="nfac">Numero de factura incluyendo serie.</param>
 /// <param name="fecha">Fecha factura. Se sutituye por si acaso "/" por "-" </param>
 /// <param name="importe">Ssustituye  coma por el punto decimal, solo acepta 2 decimales tener en cuenta al parsear.</param>
 /// <returns></returns>
        public static byte[] generaQR(string nif, string nfac, string fecha, string importe)
        {
            string cadenaQr = Program.webVerificacion + "nif=" + nif + "&numserie=" + nfac + "&fecha=" + fecha.Replace("/", "-") + "&importe=" + importe.Replace(",",".");
            QRCodeGenerator qrGen = new QRCodeGenerator();
            QRCodeData qrDatos = qrGen.CreateQrCode(cadenaQr, QRCodeGenerator.ECCLevel.M);
            QRCode qrCodigo = new QRCode(qrDatos);

            Bitmap qrImagen = qrCodigo.GetGraphic(10, Color.Black, Color.White, false);
         
            //Image imageIn2 = generaQRI(cadenaQr);
            while (null == qrImagen)//espera hasta que este generada la imagen antes de convertir.
            {

            }
            using (var ms = new MemoryStream())
            {
                qrImagen.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                return ms.ToArray();
            }


ermendalenda 22-10-2024 20:44:21

Siguen sin comprobar encadenamiento
 
He leido un post de que estaban comprobando el encadenamiento.
Yo he hecho 2 pruebas, he enviado encadenando mal y volviendo a enviar como primer registro y me lo ha aceptado todo como correcto

Por cierto Ya me funciona QR de sustitutivas y de rectificativas.
A los QR en pdf les he añadido que si se pulsan vaya al mismo enlace que leyendolo. No sé si eso al final era un requisito, pero no cuesta nada ponerlo.

Tambien he verificado que si envio una factura y despues envio anulacion ya dice que no existe al leer el QR de nuevo, tal y como han puesto en la ultima modificación de respuestas.

[email protected] 22-10-2024 21:47:56

Con SII yo podia acceder a la AEAT y comprobar los registros enviados con sus datos.

En VERI*FACTU hay alguna forma de ver en la AEAT las facturas enviadas ???

Estoy teniendo problemas con la HUELLA cuando ya lo tenia funcionando OK

Necesito ver que HUELLA tiene AEAT de los registros ya enviados para ver el ultimo con su huella y poder calcular la HUELLA del nuevo registro

bmfranky 22-10-2024 22:49:06

Reparar encadenamiento.
 
Cita:

Empezado por [email protected] (Mensaje 558606)
Con SII yo podia acceder a la AEAT y comprobar los registros enviados con sus datos.

En VERI*FACTU hay alguna forma de ver en la AEAT las facturas enviadas ???

Estoy teniendo problemas con la HUELLA cuando ya lo tenia funcionando OK

Necesito ver que HUELLA tiene AEAT de los registros ya enviados para ver el ultimo con su huella y poder calcular la HUELLA del nuevo registro

Hola, simplemente, cuando te responde el error, te da la HUELLA que ellos calculan correcta, asignala para la siguiente factura y veras como a partir de ahi no te falla.

bmfranky 22-10-2024 22:56:50

Cita:

Empezado por ermendalenda (Mensaje 558605)
He leido un post de que estaban comprobando el encadenamiento.
Yo he hecho 2 pruebas, he enviado encadenando mal y volviendo a enviar como primer registro y me lo ha aceptado todo como correcto

Por cierto Ya me funciona QR de sustitutivas y de rectificativas.
A los QR en pdf les he añadido que si se pulsan vaya al mismo enlace que leyendolo. No sé si eso al final era un requisito, pero no cuesta nada ponerlo.

Tambien he verificado que si envio una factura y despues envio anulacion ya dice que no existe al leer el QR de nuevo, tal y como han puesto en la ultima modificación de respuestas.

Hola, ahi esta , que has vuelto a enviar como primer registro, eso es trampa:D:D, si encadenas mal, hasta que encadenes bien *falla. Mejor dicho da aceptado con errores, si das como primer registro, te pone a cero el encadenamiento, por lo menos de momento.

ermendalenda 22-10-2024 23:07:13

Cita:

Empezado por bmfranky (Mensaje 558608)
Hola, ahi esta , que has vuelto a enviar como primer registro, eso es trampa:D:D, si encadenas mal, hasta que encadenes bien *falla. Mejor dicho da aceptado con errores, si das como primer registro, te pone a cero el encadenamiento, por lo menos de momento.

Que va.
Lo he hecho 2 o 3 veces rompiendo encadenamiento y sd lo come todo. Que raro que a unos sí y a otros no.

ermendalenda 22-10-2024 23:12:24

Ahora toca a analizar todas ests movidas y las posibles combinaciones:
Incidencia, subsanacion, rechazo previo, tiempo de espera próximo envío.

Hay que sentarse con la librería y ver qué se puede automatizar, que puede decidir un usuario y "que cosa"
tienen que llamar a un informático.
De momento veo un gran enredo de tres pares de narices y 2 paquetes de ibuprofeno de 600.
No por saber que hay que enviar en cada situación, si no en evitar confusiones y que además no se quede en el olvido.

ermendalenda 22-10-2024 23:32:32

No creo que esto llegue a buen puerto, van a tener que simplificar más. La mayoría de los que estamos aquí le estamos dedicando decenas de horas, pero cuando esto les toque a los miles de desarrolladores de programas hechos con mucho esfuerzo para empresas con programas muy específicos y que ha costado muchísimo tiempo y el desarrollador diga que en esto no se mete, va a haber un gran problema, se van a cargar el particular ecosistema de desarrollos y obligarán a las empresas a comprar softwares a multinacionales que no atenderán las demandas de estas empresas como estaban acostumbrados, en cuando a rapidez y de tú a tú y ya sabemos como trabajan los desarrollos de programas distribuidos a media y gran escala.
Me temo que va a haber repercusiones políticas. Al final no sé si merece la pena adelantarse tanto. Peor claro el miedo a que nos pille el toro nos puede a todos.
Es que no es normal de que nos caiga la mochila de todo:
Que si los servidores están cargados tengamos el programa preparado para la ralentizar los envíos al ritmo que vayan imponiendo.
Que la forma de actuar ante una incidencia este tan complicada para los desarrolladores y suaurios para que ellos tengan los datos súper limpitos para analizar lo mínimo posible.
Que sea todo un riesgo, hasta que te quedes sin Internet y la pila del PC re juegue una mala pasada con la fecha/hora del sistema.
Que haya que estar conectado a las comprobaciones de hacienda de correspondencia de nifs/nombres.

Y otros problema lógicos que se me ocurren que puede pasar y te quedas en bragas ante la aeat por que ellos dicen que tú tienes que tenerlo todo atado, hasta lo imposible.
Por ejemplo, les hice una consulta de que existe un margen de tiempo de caché de grabación al disco en el que se puede perder el dato impreso, y que incluso ante una avería se pierda y no he haya dado tiempo a enviarlo ni hacer copia. Y si el cliente se ha llevado su qr nos podemos meter en un lío y contestan que la ley antifraude obliga a blablabla.

bmfranky 22-10-2024 23:41:31

Cita:

Empezado por ermendalenda (Mensaje 558609)
Que va.
Lo he hecho 2 o 3 veces rompiendo encadenamiento y sd lo come todo. Que raro que a unos sí y a otros no.

Ya, pasan cosas muy raras ya os comentaba que es como si hubieran servidores con varias versiones del programa que usen para atender a las peticiones, porque contetan de formas demasiodo diferentes.

ermendalenda 23-10-2024 06:09:25

Cita:

Empezado por bmfranky (Mensaje 558612)
Ya, pasan cosas muy raras ya os comentaba que es como si hubieran servidores con varias versiones del programa que usen para atender a las peticiones, porque contetan de formas demasiodo diferentes.

Puedes poner como haces el enlace de donde de como haces sl la peticion del soap. A ver si es qu3 estoy poniendo algo diferente.

ermendalenda 23-10-2024 07:29:41

Duda rechazo previo
 
A ver si me explico,
Si enviamos un registro y después una subsanacion sin rechazo previo y esta última nos la rechaza, se supone que su queremos volver a mandar la subsanacion es sin rechazo previo, no?
O sea, los rechazos de las subsanaciones no hay que tenerlos en cuenta al intentar reenviarlo correctamente pero nosotros si tenemos que tener en cuenta que nos lo ha rechazado

ermendalenda 23-10-2024 07:40:20

Como se corrige anulación?
 
Enviamos una factura, anulamos por error otra y la enviamos, y además pertenece a otro periodo impositivo la que hemos anulado por error.
Supongo que hay que volver a emitir una nueva de la que hemos anulado ¿con la fecha de la anterior?, aparte del lío de hablar con el cliente que lo mismo está en SII y ya se la ha declarado.
Ahora el cliente tiene que anular esa factura del SII (y que lo haga)
Vaya lio no?
PROHIBIDO EQUIVOCARSE.

bmfranky 23-10-2024 08:09:42

Alta por Rechazo de subsanacion
 
Cita:

Empezado por ermendalenda (Mensaje 558616)
A ver si me explico,
Si enviamos un registro y después una subsanacion sin rechazo previo y esta última nos la rechaza, se supone que su queremos volver a mandar la subsanacion es sin rechazo previo, no?
O sea, los rechazos de las subsanaciones no hay que tenerlos en cuenta al intentar reenviarlo correctamente pero nosotros si tenemos que tener en cuenta que nos lo ha rechazado

Hola, en el documento de validaciones pone esto:
Cita:

ALTA POR RECHAZO DE
SUBSANACIÓN
· Al ta pa ra la s ubs a na ci ón de un regi s tro de
fa ctura ci ón que ya es tá regis tra do en l a AEAT y cuya
s ubs a na ci ón pos teri or fue recha za da .
· Es l a s ubs a na ción de da tos cua ndo no s e exi ge l a
emis i ón de una fa ctura rectifica tiva (u otro
meca ni s mo contempl a do en el Regl a mento de
Fa ctura ci ón).



· <Subs a na ci on>=S
· <Recha zoPrevi o>=S


VERI*FACTU
· La cla ve úni ca del regis tro de fa ctura ci ón
debe exi s tir previa mente en la AEAT.
· El a lta con s ubs a na ci ón del regi s tro de
fa ctura ción fue recha za da .
Con él s e deja cons tancia de los
nuevos da tos que deben s er tenidos
en cuen

ermendalenda 23-10-2024 08:43:28

Cita:

Empezado por bmfranky (Mensaje 558618)
Hola, en el documento de validaciones pone esto:

Ok gracias
Anotado

antoine0 23-10-2024 08:51:04

Cita:

Empezado por [email protected] (Mensaje 558606)
Con SII yo podia acceder a la AEAT y comprobar los registros enviados con sus datos.

En VERI*FACTU hay alguna forma de ver en la AEAT las facturas enviadas ???

De momento no. Pero en una respuesta hace unos días, dijeron que están estudiando poner en marcha para Veri*factu un portal similar a lo que hay para el SII, con servicio de consultas.

pablog2k 23-10-2024 09:02:06

Cita:

Empezado por ermendalenda (Mensaje 558609)
Que va.
Lo he hecho 2 o 3 veces rompiendo encadenamiento y sd lo come todo. Que raro que a unos sí y a otros no.

buenas, yo acabo de hacer unas pruebas y si que me comprueba el encadenamiento:

-subo la factura A12 (encadena con la A11), respuesta OK.
-subo la factura A13 (me invento el encadenamiento, pongo que encadena con la B1234 que ni siquiera existe, me invento los valores del nodo Encadenamiento.RegistroAnterior), respuesta Aceptada con errores, error en la huella.
-subo la factura A13 como subsanación, poniendo bien los valores de Encadenamiento (Encadena con A12, relleno bien IdEmisorFactura,NumSerieFactura,FechaExpedicionFactura y Huella) , respuesta OK.
-subo la factura A14 (encadena con la A13, con la huella de la subsanación de la A13), respuesta OK.

Logan05 23-10-2024 09:05:48

Cita:

Empezado por ermendalenda (Mensaje 558611)
... cuando esto les toque a los miles de desarrolladores de programas hechos con mucho esfuerzo para empresas con programas muy específicos y que ha costado muchísimo tiempo y el desarrollador diga que en esto no se mete, va a haber un gran problema, se van a cargar el particular ecosistema de desarrollos y obligarán a las empresas a comprar softwares a multinacionales que no atenderán las demandas de estas empresas como estaban acostumbrados, en cuando a rapidez y de tú a tú y ya sabemos como trabajan los desarrollos de programas distribuidos a media y gran escala.
Me temo que va a haber repercusiones políticas. Al final no sé si merece la pena adelantarse tanto. Peor claro el miedo a que nos pille el toro nos puede a todos.

En esa situación me encuentro yo, tengo ocho programas de facturación super SUPER a medida, cada uno para un solo cliente, estoy entre que me pille el toro y dejar el negocio, porque esto de negocio ya tenía poco antes, pero ahora me parece que será una ruina total. Lastima que ya tampoco me dejan prejubilarme.....

marccabra 23-10-2024 09:14:34

Buenos días a todos,

Estoy usuando el programa de ejemplo para probar de hacer envíos y, al recibir la respuesta, no soy capaz de convertirla correctamente a un objeto del tipo RespuestaBaseType. EL problema lo tengo al acceder a las líneas de respuesta. Con Length(RespuestaBaseType.RespuestaLinea) me devuelve 0, como si fuese un array vacío pero el xml recibido si que tiene líneas.

Para ver la respuesta que recibo uso el código de pablog2k:

Código Delphi [-]
  ss:=TFileStream.Create(ruta+'\respuesta.xml', fmCreate);
  SOAPResponse.Position := 0;
  ss.CopyFrom(SOAPResponse,SOAPResponse.Size);
  ss.Free;
  SOAPResponse.Position := 0;

Estoy recibiendo el siguiente xml:

Código:

<env:Envelope>
<env:Header/>
<env:Body Id="Body">
<tikR:RespuestaRegFactuSistemaFacturacion>
<tikR:Cabecera>
<tik:ObligadoEmision>
<tik:NombreRazon>EMPRSA SL</tik:NombreRazon>
<tik:NIF>NIFF</tik:NIF>
</tik:ObligadoEmision>
</tikR:Cabecera>
<tikR:TiempoEsperaEnvio>60</tikR:TiempoEsperaEnvio>
<tikR:EstadoEnvio>Incorrecto</tikR:EstadoEnvio>
<tikR:RespuestaLinea>
<tikR:IDFactura>
<tik:IDEmisorFactura>NIFF</tik:IDEmisorFactura>
<tik:NumSerieFactura>F240001</tik:NumSerieFactura>
<tik:FechaExpedicionFactura>21-01-2024</tik:FechaExpedicionFactura>
</tikR:IDFactura>
<tikR:Operacion>
<tik:TipoOperacion>Alta</tik:TipoOperacion>
</tikR:Operacion>
<tikR:EstadoRegistro>Incorrecto</tikR:EstadoRegistro>
<tikR:CodigoErrorRegistro>1123</tikR:CodigoErrorRegistro>
<tikR:DescripcionErrorRegistro>El formato del NIF es incorrecto.. NIF:NIFCLI1.</tikR:DescripcionErrorRegistro>
</tikR:RespuestaLinea>
<tikR:RespuestaLinea>
<tikR:IDFactura>
<tik:IDEmisorFactura>NIFF</tik:IDEmisorFactura>
<tik:NumSerieFactura>F240002</tik:NumSerieFactura>
<tik:FechaExpedicionFactura>22-01-2024</tik:FechaExpedicionFactura>
</tikR:IDFactura>
<tikR:Operacion>
<tik:TipoOperacion>Alta</tik:TipoOperacion>
</tikR:Operacion>
<tikR:EstadoRegistro>Incorrecto</tikR:EstadoRegistro>
<tikR:CodigoErrorRegistro>1123</tikR:CodigoErrorRegistro>
<tikR:DescripcionErrorRegistro>El formato del NIF es incorrecto.. NIF:NIFCLI2.</tikR:DescripcionErrorRegistro>
</tikR:RespuestaLinea>
<tikR:RespuestaLinea>
<tikR:IDFactura>
<tik:IDEmisorFactura>NIFF</tik:IDEmisorFactura>
<tik:NumSerieFactura>F240001</tik:NumSerieFactura>
<tik:FechaExpedicionFactura>21-01-2024</tik:FechaExpedicionFactura>
</tikR:IDFactura>
<tikR:Operacion>
<tik:TipoOperacion>Anulacion</tik:TipoOperacion>
</tikR:Operacion>
<tikR:EstadoRegistro>Incorrecto</tikR:EstadoRegistro>
<tikR:CodigoErrorRegistro>1177</tikR:CodigoErrorRegistro>
<tikR:DescripcionErrorRegistro>
El valor de campo IdSistemaInformatico del bloque SistemaInformatico es incorrecto.
</tikR:DescripcionErrorRegistro>
</tikR:RespuestaLinea>
<tikR:RespuestaLinea>
<tikR:IDFactura>
<tik:IDEmisorFactura>NIFF</tik:IDEmisorFactura>
<tik:NumSerieFactura>F240003</tik:NumSerieFactura>
<tik:FechaExpedicionFactura>22-01-2024</tik:FechaExpedicionFactura>
</tikR:IDFactura>
<tikR:Operacion>
<tik:TipoOperacion>Alta</tik:TipoOperacion>
</tikR:Operacion>
<tikR:EstadoRegistro>Incorrecto</tikR:EstadoRegistro>
<tikR:CodigoErrorRegistro>1123</tikR:CodigoErrorRegistro>
<tikR:DescripcionErrorRegistro>El formato del NIF es incorrecto.. NIF:NIFCLI2.</tikR:DescripcionErrorRegistro>
</tikR:RespuestaLinea>
<tikR:RespuestaLinea>
<tikR:IDFactura>
<tik:IDEmisorFactura>NIFF</tik:IDEmisorFactura>
<tik:NumSerieFactura>F240004</tik:NumSerieFactura>
<tik:FechaExpedicionFactura>22-01-2024</tik:FechaExpedicionFactura>
</tikR:IDFactura>
<tikR:Operacion>
<tik:TipoOperacion>Alta</tik:TipoOperacion>
</tikR:Operacion>
<tikR:EstadoRegistro>Incorrecto</tikR:EstadoRegistro>
<tikR:CodigoErrorRegistro>1123</tikR:CodigoErrorRegistro>
<tikR:DescripcionErrorRegistro>El formato del NIF es incorrecto.. NIF:NIFCLI2.</tikR:DescripcionErrorRegistro>
</tikR:RespuestaLinea>
<tikR:RespuestaLinea>
<tikR:IDFactura>
<tik:IDEmisorFactura>NIFF</tik:IDEmisorFactura>
<tik:NumSerieFactura>F240005</tik:NumSerieFactura>
<tik:FechaExpedicionFactura>22-01-2024</tik:FechaExpedicionFactura>
</tikR:IDFactura>
<tikR:Operacion>
<tik:TipoOperacion>Alta</tik:TipoOperacion>
</tikR:Operacion>
<tikR:EstadoRegistro>Incorrecto</tikR:EstadoRegistro>
<tikR:CodigoErrorRegistro>1123</tikR:CodigoErrorRegistro>
<tikR:DescripcionErrorRegistro>El formato del NIF es incorrecto.. NIF:NIFCLI2.</tikR:DescripcionErrorRegistro>
</tikR:RespuestaLinea>
<tikR:RespuestaLinea>
<tikR:IDFactura>
<tik:IDEmisorFactura>NIFF</tik:IDEmisorFactura>
<tik:NumSerieFactura>F240006</tik:NumSerieFactura>
<tik:FechaExpedicionFactura>22-01-2024</tik:FechaExpedicionFactura>
</tikR:IDFactura>
<tikR:Operacion>
<tik:TipoOperacion>Alta</tik:TipoOperacion>
</tikR:Operacion>
<tikR:EstadoRegistro>Incorrecto</tikR:EstadoRegistro>
<tikR:CodigoErrorRegistro>1123</tikR:CodigoErrorRegistro>
<tikR:DescripcionErrorRegistro>El formato del NIF es incorrecto.. NIF:NIFCLI2.</tikR:DescripcionErrorRegistro>
</tikR:RespuestaLinea>
</tikR:RespuestaRegFactuSistemaFacturacion>
</env:Body>
</env:Envelope>

Hay alguien mas que se haya encontrado con esto o que sepa como solucionarlo?

Muchas gracias!

Becario127 23-10-2024 09:58:49

duda
 
Hola buenas

Estoy recreando la aplicacion de verifactu que esta colgada en este foro pero en python y ahora estoy con la parte de enviar el certificado y un xml de prueba que genero a partir de un excel. El problema que tengo es que a la hora de enviar la facturas me sale este error

HTTPSConnectionPool(host='prewww1.aeat.es', port=443): Max retries exceeded with url: /wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP (Caused by SSLError(SSLError(524297, '[SSL] PEM lib (_ssl.c:3895)')))

La cosa es que no se si puede ser porque al estar usando un certificado que genere yo con openssl y un xml pero sin las caracteristicas de verifactu me esta dando el error porque el server no acepta eso o es porque tengo que usar una URL diferente para pruebas.

Muchas gracias

[email protected] 23-10-2024 10:31:49

Estoy teniendo problemas con el calculo de la huella. He chequeado los datos que vienen en las instrucciones, con ejemplo y resultrado de datos incluido y todo correcto, pero no consigo coincidir con hacienda en el momento de calcular, me da :

El cálculo de la huella suministrada es incorrecta.

Datos de entrada cálculo huella:

IDEmisorFactura=33461360V&amp;NumSerieFactura=107-2024-13783&amp;FechaExpedicionFactura=21-10-2024&amp;TipoFactura=F1&amp;CuotaTotal=10.07&amp;ImporteTotal=58.15&amp;Huella=7F89287D674954888681E C947D1019EDD8C8D81248CD510AD768E668B526171C&amp;FechaHoraHusoGenRegistro=2024-10-23T10:24:27+02:00

Huella calculada: 9800FA2F5E2B24ED9F0EE98C8174C78B8E97B1294D5F58E90E506E27B31133B4


Alguien podria calcularla con los datos entrada calculo huella que muestro mas arriba.

Gracias


La franja horaria es GMT +2. Ahora son las 19:21:15.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi