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)

keys 13-06-2024 10:53:26

Cita:

Empezado por thinkows (Mensaje 556071)
Buenos días, yo hice la observación ayer :

"Buenos días, rogaríamos reconsideren la ubicación del QR que se deberá imprimir en las facturas/tickets y podamos situarlo al final de los documentos (como por ejemplo se realiza en la operativa TicketBAI) ya que supone que muchos de nuestros clientes, tengan que rediseñar los formatos pre-impresos, de los mencionados documentos, con los costes que ello implica."

y me contestaron :

Buenos días:

Remitimos sus comentarios a los responsables para que se tenga en cuenta y se valoren otras posibilidades.

Muchas gracias por contactar con la AEAT.

Atentamente,
Atención al Usuario
Departamento de Informática Tributaria
Email: [email protected]

Habría que ver cuantos de los que les han enviado esa sugerencia somos de este foro. :eek:

newtron 13-06-2024 11:16:01

Cita:

Empezado por keys (Mensaje 556072)
Habría que ver cuantos de los que les han enviado esa sugerencia somos de este foro. :eek:


Yo lo que creo es que tristemente la gente que tiene que definir estos asuntos parece que no están en este mundo y que no han visto una factura en su puñetera vida.



Saludos.

ermendalenda 13-06-2024 13:59:11

Fijo que después de esto van a permitir ambas posibilidades.
Y sinceramente, me extrañaría que no fueran conscientes de lo que se va comentando en los foros sobre el tema, y como este foro tampoco hay muchos.
Como comentaban hace unos post, esperamos una paralela los quejicas.:D

newtron 13-06-2024 14:01:50

Cita:

Empezado por ermendalenda (Mensaje 556077)
Fijo que después de esto van a permitir ambas posibilidades.
Y sinceramente, me extrañaría que no fueran conscientes de lo que se va comentando en los foros sobre el tema, y como este foro tampoco hay muchos.
Como comentaban hace unos post, esperamos una paralela los quejicas.:D


No no zeñó ispestor.... yo zoy gueno y no hablo malamente de nuestros dioses. Ezo habrá zido otro :D:D

bmfranky 13-06-2024 17:49:36

Crear Hash
 
Hola, buenas , aprovechando que han actualizado la documentacion de como crear la huella, aprovecho para postear la clase que uso en c# para generarla, la he prbado con los ejemplos del documento y me funciona ok, las salidas a consola, las podeis eliminar sin problema.


Código:

  public class Huella
    {
       
        /// <summary>
        /// Clase que devuelve el hash en mayusculas como nos indica la web
        /// </summary>
        /// <param name="source">Cadena a encriptar.</param>
        /// <returns>Hash de la cadena.</returns>public string creaHuella(string source)
        {
            string hash = "";
            using (SHA256 sha256Hash = SHA256.Create())
            {
                hash = GetHash(sha256Hash, source);
                return hash.ToUpper();
            }
        private static string GetHash(HashAlgorithm hashAlgorithm, string input)
        {

            // Convert the input string to a byte array and compute the hash.
            byte[] data = hashAlgorithm.ComputeHash(Encoding.UTF8.GetBytes(input));

            // Create a new Stringbuilder to collect the bytes
            // and create a string.
            var sBuilder = new StringBuilder();

            // Loop through each byte of the hashed data
            // and format each one as a hexadecimal string.
            for (int i = 0; i < data.Length; i++)
            {
                sBuilder.Append(data[i].ToString("x2"));
            }

            // Return the hexadecimal string.
            return sBuilder.ToString();
        }

        // Verify a hash against a string.
        private static bool VerifyHash(HashAlgorithm hashAlgorithm, string input, string hash)
        {
            // Hash the input.
            var hashOfInput = GetHash(hashAlgorithm, input);

            // Create a StringComparer an compare the hashes.
            StringComparer comparer = StringComparer.OrdinalIgnoreCase;

            return comparer.Compare(hashOfInput, hash) == 0;
        }
    }

Por si a alguien le sirve.

bmfranky 13-06-2024 19:29:43

Código:

  public class Huella
    {
       
        /// <summary>
        /// Clase que devuelve el hash en mayusculas como nos indica la web
        /// </summary>
        /// <param name="source">Cadena a encriptar.</param>
        /// <returns>Hash de la cadena.</returns>public string creaHuella(string source)
        {
            string hash = "";
            using (SHA256 sha256Hash = SHA256.Create())
            {
                hash = GetHash(sha256Hash, source);
                return hash.ToUpper();
              }
        }

        private static string GetHash(HashAlgorithm hashAlgorithm, string input)
        {

            // Convert the input string to a byte array and compute the hash.
            byte[] data = hashAlgorithm.ComputeHash(Encoding.UTF8.GetBytes(input));

            // Create a new Stringbuilder to collect the bytes
            // and create a string.
            var sBuilder = new StringBuilder();

            // Loop through each byte of the hashed data
            // and format each one as a hexadecimal string.
            for (int i = 0; i < data.Length; i++)
            {
                sBuilder.Append(data[i].ToString("x2"));
            }

            // Return the hexadecimal string.
            return sBuilder.ToString();
        }

        // Verify a hash against a string.
        private static bool VerifyHash(HashAlgorithm hashAlgorithm, string input, string hash)
        {
            // Hash the input.
            var hashOfInput = GetHash(hashAlgorithm, input);

            // Create a StringComparer an compare the hashes.
            StringComparer comparer = StringComparer.OrdinalIgnoreCase;

            return comparer.Compare(hashOfInput, hash) == 0;
        }
    }

Me he comido un corchete al eliminar las salidas a consola, reparado.

ermendalenda 14-06-2024 07:20:11

Otra pregunta para verifactu. Estaría bien que la lanzaremos desde distintos puntos de vista según necesidades:
¿Habrá un sitio web en el que podamos realizar ciertas operaciones con las facturas emitidas al igual que con el SII? Por ejemplo una anulación o una rectificación de cliente.
Ya aue el dejar en mano del usuario del TPV puede ser arriesgado y en ciertos casos es necesario centralizar operaciones que necesitan ciertas comprobaciones.

Jesusggc 14-06-2024 10:04:20

Firma de RegistroFacturacionAlta con Autofirma
 
Buenas

Para el que le venga bien mi aportación.

1. Creacion de RegistroFacturacionAltaType
2. Escribir Clase RegistroFacturacionAltaType en disco XML
3. Firmar con autofirma(XADES Enveloped y Namespace=la del excel.
4. He pasado (Parse) el fichero firmado xsig de fichero fisico en disco a clase RegistroFacturacionAltaType y todo correcto. Por lo que la firma es correcta.

Codigo de Firma : (vb.net)

Código:

Public Shared Sub FirmarXmlXades(ByVal pFicheroXml As String, ByVal pAliasCertificado As String)

        Dim strFicheroXmlFirmado As String = pFicheroXml.Substring(0, pFicheroXml.Length - 4) & "_signed.xsig"

        Try

         
            Using p As New Process

                With p
                    .StartInfo.UseShellExecute = False
                    .StartInfo.FileName = "cmd.exe"
                    .StartInfo.CreateNoWindow = True
                    .StartInfo.Arguments = $"/c autofirmacommandline sign -i {pFicheroXml} -o " &
                    strFicheroXmlFirmado & " -store windows -alias """ & pAliasCertificado &
                    $""" -config " & """format=XAdES Enveloped\nxadesNamespace=:namespacedefinido en excel"""
                End With

                p.Start()
                p.WaitForExit()

            End Using


        Catch ex As Exception

            Throw

        End Try

    End Sub

PD. la Url de xadesNamespace la que aparece en el excel. Que aun el foro no me deja insertar imagenes o urls

Un saludo

Jesusggc 14-06-2024 10:18:05

Registro de Anulacion
 
Buenos días

Mi cuestión es (lo mismo es una tontería). Si las facturas son inalterables, es decir, no se pueden ni eliminar ni modificar. Que sentido tiene la existencia de un Registro de Anulacion.

Os agradecería me aclaraseis la duda.

Gracias.

Un saludo. :-)

Casimiro Noteví 14-06-2024 10:25:29

Cita:

Empezado por Jesusggc (Mensaje 556104)
Buenas

No olvides poner el código entre las etiquetas correspondientes, para que se muestre bien.

sglorka 14-06-2024 11:27:53

Cita:

Empezado por Jesusggc (Mensaje 556106)
Buenos días

Mi cuestión es (lo mismo es una tontería). Si las facturas son inalterables, es decir, no se pueden ni eliminar ni modificar. Que sentido tiene la existencia de un Registro de Anulacion.

Os agradecería me aclaraseis la duda.

Gracias.

Un saludo. :-)

Pues creo que te estás respondiendo a tí mismo. Si las facturas no se pueden modificar ni eliminar, necesitarías una herramienta que te permita ANULAR una factura, por ejemplo, para una operación que nunca llegó a realizarse de la que emitiste factura y el cliente se arrepintió antes de seguir con la operación. También te pudiste haber equivocado en la numeración de la factura o en el año de expedición y estos son campos clave para Verifactu, debes ANULAR y volver a EMITIR.

CarlosR 14-06-2024 11:39:27

Reemitir ?
 
Cita:

Empezado por sglorka (Mensaje 556110)
Pues creo que te estás respondiendo a tí mismo. Si las facturas no se pueden modificar ni eliminar, necesitarías una herramienta que te permita ANULAR una factura, por ejemplo, para una operación que nunca llegó a realizarse de la que emitiste factura y el cliente se arrepintió antes de seguir con la operación. También te pudiste haber equivocado en la numeración de la factura o en el año de expedición y estos son campos clave para Verifactu, debes ANULAR y volver a EMITIR.


Me estoy perdiendo. ¿ Donde dice la Ley que hay que emitir una nueva factura a partir de la factura anulada ?
Es mas, esto forma parte de una consulta a la AEAT que he hecho hace ya 3 semanas y no tenían una respuesta de momento. Sus indicaciones eran que permanezca atento.
Como ya he mencionado hace al menos un par de meses ( + o - ) una factura anulada tiene consecuencias.
Sin ir mas lejos las que derivan de un registro de facturación al que le faltan números de factura. Es probable que la factura ya esté registrada en los procesos contables y de registros de iva.

También tiene problemas con los stocks. La factura lleva inherentes albaranes y los albaranes son salida de stocks del almacén. Entre otras consideraciones.
Así que cuando me responda la AEAT si es que lo hace algún día, pasaré aquí su respuesta.
Por cierto, que yo sepa emitir una factura sustitutiva tal y como se puede hacer de una factura a partir de una simplificada anterior (ticket) no va al registro de iva, pero si al modelo 300.
Con todo este galimatías, espero fervientemente la respuesta de la AEAT.
Un saludo a tod@s.

Delphier 14-06-2024 11:42:17

Cita:

Empezado por sglorka (Mensaje 556110)
Pues creo que te estás respondiendo a tí mismo. Si las facturas no se pueden modificar ni eliminar, necesitarías una herramienta que te permita ANULAR una factura, por ejemplo, para una operación que nunca llegó a realizarse de la que emitiste factura y el cliente se arrepintió antes de seguir con la operación. También te pudiste haber equivocado en la numeración de la factura o en el año de expedición y estos son campos clave para Verifactu, debes ANULAR y volver a EMITIR.

Según yo lo entiendo , no se pueden eliminar ni modificar , eso no implica que tengamos un fichero de facturas anuladas , donde se guarden las facturas que se han anulado , separadas de la "realidad" de facturación y con su registro verifactu de anulación correspondiente, se pierde el número y se guarda como anulada.

Si al final no se dice lo contrario por parte de la AEAT , tengo pensado hacerlo así , la discusión de porque hay facturas anuladas y los motivos , ya sería una discusión entre el usuario y Hacienda , el software cumple la norma.

De hecho , en los casos donde NO se aplica la norma de hacer una rectificativa , se deben poder "anular" , aunque sea con todo registrado en el software.

Saludos

Delphier 14-06-2024 11:44:39

Cita:

Empezado por newtron (Mensaje 556075)
Yo lo que creo es que tristemente la gente que tiene que definir estos asuntos parece que no están en este mundo y que no han visto una factura en su puñetera vida.



Saludos.


Yo no leo ninguna obligatoriedad de donde colocar el QR , leo que simplemente hablan de ejemplos , igual me he perdido algo?

"
12. Anexo (ejemplos de «QR»).
A continuación, se ofrecen algunos ejemplos posibles de códigos «QR» en los distintos escenarios que se pueden dar en función de varios aspectos:"

Saludos

keys 14-06-2024 11:50:33

Cita:

El código «QR» se situará al principio de la factura, antes de que empiece el contenido
de esta. Por lo tanto, será siempre el primer código «QR» que aparecerá en la factura
(en el caso de que la factura contuviera otros códigos «QR» para otros cometidos). Si se
utiliza un formato de orientación vertical para organizar y disponer el contenido de la
factura, el código «QR» se situará arriba de esta, próximo al margen superior,
preferiblemente centrado respecto a los márgenes izquierdo y derecho de la factura (o,
si no, hacia el margen izquierdo-superior). En el caso de utilizar un formato de orientación
horizontal (apaisado) para la factura, el código «QR» se situará a la izquierda de esta,
preferiblemente cercana al margen superior-izquierdo (o, si no, centrada respecto a los
márgenes superior e inferior de la factura).
Esto es lo que pone.

Delphier 14-06-2024 11:55:19

Cita:

Empezado por keys (Mensaje 556115)
Esto es lo que pone.

Gracias , me había saltado esa parte , no me imaginaba que nadie con plenas facultades pudiera escribir eso en un documento, jajaja.

Saludos

sglorka 14-06-2024 12:13:51

Cita:

Empezado por CarlosR (Mensaje 556112)
Me estoy perdiendo. ¿ Donde dice la Ley que hay que emitir una nueva factura a partir de la factura anulada ?
Es mas, esto forma parte de una consulta a la AEAT que he hecho hace ya 3 semanas y no tenían una respuesta de momento. Sus indicaciones eran que permanezca atento.
Como ya he mencionado hace al menos un par de meses ( + o - ) una factura anulada tiene consecuencias.
Sin ir mas lejos las que derivan de un registro de facturación al que le faltan números de factura. Es probable que la factura ya esté registrada en los procesos contables y de registros de iva.

También tiene problemas con los stocks. La factura lleva inherentes albaranes y los albaranes son salida de stocks del almacén. Entre otras consideraciones.
Así que cuando me responda la AEAT si es que lo hace algún día, pasaré aquí su respuesta.
Por cierto, que yo sepa emitir una factura sustitutiva tal y como se puede hacer de una factura a partir de una simplificada anterior (ticket) no va al registro de iva, pero si al modelo 300.
Con todo este galimatías, espero fervientemente la respuesta de la AEAT.
Un saludo a tod@s.

La ley NO dice que haya que emitir una nueva factura a partir de otra anulada, de hecho lo impide. Para ese menester existen las rectificativas. Si has emitido una factura por una operación que nunca llegó a realizarse, tampoco puedes emitir una rectificativa, ya que, no entra dentro de los supuestos de emisión de este tipo de facturas. Sólo te queda la opción de anulación. Hacienda sí permite la anulación de facturas, aquí te dejo un enlace a su página donde lo certifica, https://sede.agenciatributaria.gob.e...00dc381e0aRCRD. EL registro de facturación de esa factura debe quedar inalterable y será anulada con un registro de anulación posterior.
Otra cosa es la gestión que debes hacer en tu software para contemplar una anulación. Si la factura ya fue devengada, optaría por emitir una Factura de Abono (no factura rectificativa) para devolver la cifra de negocio y los impuestos a su estado real. Si la factura no ha sido devengada, yo la Anularía y en mi software, quitaría sus líneas o albaranes que contenga dejándola a cero.F2

Te recomiendo que ves también la consulta vinculante V0611-11 dentro de las consultas tributarias https://petete.tributos.hacienda.gob.es/consultas

La emisión de una factura sustitutiva se puede hacer emitiendo previamente una factura simplificada de abono (F2) y luego un factura completa (F1, no F3). Con este método, los 3 documentos emitidos irían al registro de iva y al modelo 300.

Jesusggc 14-06-2024 12:16:27

ESTO HAN CONTESTADO LOS DE HACIENDA.

Buenos días:

En el Real Decreto 1007/2023, de 5 de diciembre, en concreto en su artículo 8, se habla de los requisitos que deben reunir los sistemas informáticos de facturación. En el punto 2 indica lo siguiente:

2. El sistema informático deberá garantizar: a) La integridad e inalterabilidad de los registros de facturación de forma que, una vez generados y registrados, no puedan ser alterados sin que el sistema informático lo detecte y avise de ello. Se entenderá por alteración de los registros de facturación la ocultación o eliminación de cualquier registro de facturación originalmente generado y registrado por el sistema informático, o la ocultación o modificación, total o parcial, de los datos de cualquier registro de facturación originalmente generado y registrado por el sistema informático, o la adición de registros de facturación, simulados o falsos, distintos a los originalmente generados y registrados por el sistema informático.

Cualquier necesidad de corrección o anulación de los datos registrados deberá ser realizada mediante al menos un registro de facturación adicional posterior, de forma que se conserven inalterables los datos originalmente registrados.

Por lo tanto, aunque el registro con datos erróneos no se pueda eliminar del SIF, cuando se trate de una operación incorrecta (casos excluidos de poder emitir una factura rectificativa u otro mecanismo contemplado en el Reglamento de Facturación), como por ejemplo que se haya expedido una factura por error cuando no ha habido una auténtica venta, deberá realizarse además una ANULACIÓN de la operación original procediendo a generar un registro de facturación de anulación.


Atentamente,
Atención al Usuario
Departamento de Informática Tributaria
Email: [email protected]

YO RESPONDO CON ESTO:

Y por lo tanto ese número de factura queda inutilizable. Habría saltos en la numeración(de facturas válidas). Lo que pasa que controlados por AEAT. No?

Un saludo. :-)


POSTEARË RESPUESTA

josejm 14-06-2024 12:25:49

Anulación de Facturas
 
En el documento de Preguntas y respuestas:
Pregunta:
El registro de facturación de anulación anula el correspondiente registro de facturación de alta,
pero desde el punto de vista del Reglamento de Facturación cómo quedan éstas facturas, se puede
volver a enviar con ese número o se queda sin usar, con salto de número de factura.

Respuesta:
Aunque en principio no se cierra ninguna posibilidad, dado que ha quedado constancia de la factura "errónea", aunque
luego haya sido anulada (se recuerda que deberían ser casos excepcionales y que esta posibilidad se ha tenido en cuenta
para facilitar la gestión de estos casos), lo recomendable sería optar por continuar con la numeración siguiente, es decir,
no reutilizar -o "saltarse"- el nº de la factura anulada, ya que la nueva factura a expedir en principio puede no tener nada
que ver con la anulada (en este caso, se generaría un registro de facturación de alta inicial). No obstante, no se podría
impedir la reutilización del nº de la factura anulada para asignárselo a la nueva factura (teniendo en cuenta que podría
entenderse como que la "sustituye"), aunque para ello debería generarse un registro de facturación de alta sustitutiva.


Vamos que puede que si, pero también puede que no se pueda reutilizar el mismo número de factura... No se aclaran ni ellos mismos.

sglorka 14-06-2024 12:30:55

Cita:

Empezado por Jesusggc (Mensaje 556118)
ESTO HAN CONTESTADO LOS DE HACIENDA.

Buenos días:

En el Real Decreto 1007/2023, de 5 de diciembre, en concreto en su artículo 8, se habla de los requisitos que deben reunir los sistemas informáticos de facturación. En el punto 2 indica lo siguiente:

2. El sistema informático deberá garantizar: a) La integridad e inalterabilidad de los registros de facturación de forma que, una vez generados y registrados, no puedan ser alterados sin que el sistema informático lo detecte y avise de ello. Se entenderá por alteración de los registros de facturación la ocultación o eliminación de cualquier registro de facturación originalmente generado y registrado por el sistema informático, o la ocultación o modificación, total o parcial, de los datos de cualquier registro de facturación originalmente generado y registrado por el sistema informático, o la adición de registros de facturación, simulados o falsos, distintos a los originalmente generados y registrados por el sistema informático.

Cualquier necesidad de corrección o anulación de los datos registrados deberá ser realizada mediante al menos un registro de facturación adicional posterior, de forma que se conserven inalterables los datos originalmente registrados.

Por lo tanto, aunque el registro con datos erróneos no se pueda eliminar del SIF, cuando se trate de una operación incorrecta (casos excluidos de poder emitir una factura rectificativa u otro mecanismo contemplado en el Reglamento de Facturación), como por ejemplo que se haya expedido una factura por error cuando no ha habido una auténtica venta, deberá realizarse además una ANULACIÓN de la operación original procediendo a generar un registro de facturación de anulación.


Atentamente,
Atención al Usuario
Departamento de Informática Tributaria
Email: [email protected]

YO RESPONDO CON ESTO:

Y por lo tanto ese número de factura queda inutilizable. Habría saltos en la numeración(de facturas válidas). Lo que pasa que controlados por AEAT. No?

Un saludo. :-)


POSTEARË RESPUESTA

No veo dónde queda el hueco en la facturación. La factura anulada seguirá estando el SIF y en la AEAT. Esa factura en tu SIF debes ponerla a cero y tiene que estar registrada en los libros contables


La franja horaria es GMT +2. Ahora son las 21:40:06.

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