** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Veri*Factu Capítulo 2...
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Veri*Factu Capítulo 2...

 Responder Responder Página  <1234>
Autor
Mensaje
ninja Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 13/Abril/2012
Localización: España
Estado: Sin conexión
Puntos: 45
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita ninja Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 11/Diciembre/2024 a las 10:23
Muchas gracias por el código. Estoy probandolo y me da error de automatización en :
Set oSHA256 = CreateObject("System.Security.Cryptography.SHA256Managed")
Arriba
pascual14 Ver desplegable
Colaborador
Colaborador


Unido: 30/Junio/2014
Localización: Soria
Estado: Sin conexión
Puntos: 570
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita pascual14 Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 16/Diciembre/2024 a las 19:05
Gracias Mihura por la info. Es decir que el 1 de enero de 2026 para sociedades y el 1 de julio de 2026 para el resto? ya me imaginaba que en el 2025 no pueden poner esto en marcha. Y cómo lo tenemos en access para conectarnos con el servicio, recibir el código de verificación e imprimirlo en un qr?
Tengo un cliente que me está machacando con que tengo que certificar el software con hacienda y he leido que va a ser obligatorio para los desarrolladores ¿qué hay que hacer aqui? Gracias 
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14428
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 16/Diciembre/2024 a las 19:22
Ni se te ocurra certificarlo, hacienda te va a brear a inspecciones y multas (dicho por un técnico de la misma AEAT).

Cuando esté desarrollado le pones poder subir datos a Verifactu y que sea él el responsable.

Yo estoy a ver si desarrollo una aplicación (un complemento para Access / Excel ...) para poder subir facturas y obtener los QR, pero todavía no me he puesto, será cuando alguien me contrate :-P.

Un saludo.


Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
MBIN1965 Ver desplegable
Nuevo
Nuevo


Unido: 04/Enero/2025
Localización: Salamanca
Estado: Sin conexión
Puntos: 7
Opciones de entrada Opciones de entrada   Gracias (1) Gracias(1)   Cita MBIN1965 Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 04/Enero/2025 a las 13:44
Pongo aquí mis pequeñas aportaciones al tema.
En primer lugar, para la generación de los códigos QR utilizo un programa gratuito que se llama SimpleCodeGenerator que funciona perfectamente y se le puede llamar desde línea de comandos. El código QR lo puede dejar en el portapapeles, así luego lo podemos pegar en el campo gráfico de nuestra tabla de facturas o en otra tabla que los guarde con la asociación de la factura a la que corresponde.

Así que desde mi programa hecho en Omnis, genero un archivo .bat, al que luego llamo para que me genere el QR.

El archivo bat contiene una única línea:

con('SimpleCodeGenerator.exe /Clipboard "',EMP_VF_URLCOTEJO,'nif=',EMP_CIF,'&','numserie=',CAF_NUMERO,'&','fecha=',jst(dtd(CAF_FECHA),'-2NP0'),'-',jst(dtm(CAF_FECHA),'-2NP0'),'-',jst(dtcy(CAF_FECHA),'-4NP0'),'&','importe=',jst(CAF_TOTALFAC,'N2'),'"','  3')

Con esa instrucción, se genera el QR para una factura con los siguientes datos:
EMP_VF_URLCOTEJO: que es un campo que almacena la url donde se podrá comprobar el QR
EMP_CIF: CIF de la empresa que emite la factura
CAF_NUMERO: número de la factura
CAF_FECHA: fecha la factura
CAF_TOTALFAC: total de la factura.

Para el cálculo de la huella lo hago con otro archivo bat:

set archivo=%~dp0texto_huella.txt
echo El archivo a procesar es: %archivo%
powershell -Command "$hash = (Get-FileHash '%archivo%' -Algorithm SHA256).Hash; $hash | Set-Clipboard"

Los datos que se han de tener en cuenta para generar la huella se guardan previamente en el archivo texto_huella.txt.
El resultado de la huella queda también en el portapapeles, con lo cual se pega después en el campo que habilitemos para ello.
Arriba
Al_loro Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 16/Mayo/2024
Localización: La Roda
Estado: Sin conexión
Puntos: 44
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Al_loro Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 04/Febrero/2025 a las 12:42
Muchas gracias MBIN1965. supongo que el SimpleCodeGenerator.exe es el de nirsoft.net.
He usado algunas utilidades de ellos y funcionan bastante bien en general.

Gracias por la aportación y perdona la tardanza en contestar, pero es que no me da la vida para más.
Gracias a todos los usuarios de este foro
Arriba
Guiri Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 06/Noviembre/2024
Localización: Mallorca
Estado: Sin conexión
Puntos: 42
Opciones de entrada Opciones de entrada   Gracias (2) Gracias(2)   Cita Guiri Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 20/Febrero/2025 a las 22:48
Te lo estoy diciendo sin mirar mucho pero se necesita tener alguna de estas referencias activas:
Visual Basic for Applications
Microsoft Access 16.0 Object library
ole Automation
Microsoft Office 16.0 Access database engine Object Library
Microsoft Office 16.0 Object Library
Microsoft XML, V6.0
Microsoft Scripting Runtime

me parece que xml v6. pero también tengo declarados en el modulo donde tengo las funciones esto
llevo unos meses con muy poco tiempo para dedicar.
espero te sirva.

' -----------------------------------------------------------------------------------------------------------
'  OJO la Funcion CalcularHuella utilizará la biblioteca Microsoft XML (MSXML2) para el algoritmo SHA-256.
' -----------------------------------------------------------------------------------------------------------
Private Declare Function CryptAcquireContext Lib "advapi32.dll" Alias "CryptAcquireContextA" _
    (phProv As Long, ByVal pszContainer As String, ByVal pszProvider As String, _
     ByVal dwProvType As Long, ByVal dwFlags As Long) As Long

Private Declare Function CryptCreateHash Lib "advapi32.dll" _
    (ByVal hProv As Long, ByVal Algid As Long, ByVal hKey As Long, _
     ByVal dwFlags As Long, phHash As Long) As Long

Private Declare Function CryptHashData Lib "advapi32.dll" _
    (ByVal hHash As Long, pbData As Any, ByVal dwDataLen As Long, ByVal dwFlags As Long) As Long

Private Declare Function CryptGetHashParam Lib "advapi32.dll" _
    (ByVal hHash As Long, ByVal dwParam As Long, pbData As Any, pdwDataLen As Long, _
     ByVal dwFlags As Long) As Long

Private Declare Function CryptDestroyHash Lib "advapi32.dll" (ByVal hHash As Long) As Long
Private Declare Function CryptReleaseContext Lib "advapi32.dll" (ByVal hProv As Long, ByVal dwFlags As Long) As Long

Const PROV_RSA_FULL = 1
Const CRYPT_VERIFYCONTEXT = &HF0000000
Const CALG_SHA_256 = &H800C
Const HP_HASHVAL = &H2

No he podido contestar antes
Arriba
Guiri Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 06/Noviembre/2024
Localización: Mallorca
Estado: Sin conexión
Puntos: 42
Opciones de entrada Opciones de entrada   Gracias (1) Gracias(1)   Cita Guiri Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 20/Febrero/2025 a las 22:52
La contestación era para Ninja
Arriba
PGyO Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 22/Febrero/2025
Localización: Bizkaia
Estado: Sin conexión
Puntos: 18
Opciones de entrada Opciones de entrada   Gracias (1) Gracias(1)   Cita PGyO Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 22/Febrero/2025 a las 11:08
Por si ayuda, despues de googlear mucho a mi me funciona lo siguiente (a modo de ejemplo):

1) he instalado .net 3,5 para que no falle
Set oSHA256 = CreateObject("System.Security.Cryptography.SHA256Managed")
y he reiniciado el PC.
2)No he añadido ninguna referencia al proyecto, mas alla de las estandar.
3) he modificado el modulo verifactu de la forma que pongo a continuación, mezclando dos proyectos que funcionaban, y que a mi me fallaban.

4) he probado con el ejemplo que da la AEAT .... y funciona


mi  modulo verifactu:

'Hay que tener en cuenta, (TipoFactura) lo siguiente:
'Tipos de Factura Comunes
'F1 - Factura ordinaria

'Factura estándar para operaciones habituales.
'F2 - Factura simplificada

'Utilizada en operaciones donde no es obligatorio detallar toda la información del cliente.
'F3 - Factura rectificativa

'Emitida para corregir errores o modificaciones en una factura anterior.
'F4 - Factura recapitulativa

'Agrupa varias operaciones en un solo documento.
'Tipos de Factura Especiales
'R1 - Factura rectificativa ordinaria

'Corrige errores de facturas ordinarias.
'R2 - Factura rectificativa simplificada

'Corrige facturas simplificadas.
'R3 - Factura rectificativa recapitulativa

'Corrige facturas recapitulativas.
'Cómo elegir el tipo de factura:
'Factura ordinaria (F1): La más común, utilizada para ventas regulares.
'Factura rectificativa (F3): Cuando necesitas corregir un error o ajustar un importe.
'Factura simplificada (F2): Para operaciones menores o cuando la normativa lo permite.
'CuotaTotal  es el importe total de IVA separador decimal el punto.
'ImporteTotal es el importe total de la factura IVA incluido.

'La funcion que genera el xml contempla si va a ser Alta, Modificación o Evento (TipoRegistro)


Option Compare Database
Option Explicit

' Tipo de datos personalizado para almacenar la información del registro
Type RegistroAlta
    IDEmisorFactura As String
    NumSerieFactura As String
    FechaExpedicionFactura As String
    TipoFactura As String
    CuotaTotal As String
    ImporteTotal As String
    Huella As String
    FechaHoraHusoGenRegistro As String
End Type

Sub Test()
    Dim sIn As String, sOut As String
    Dim sH As String, sSecret As String
    Dim aIn As RegistroAlta
    
    'insert the text to hash within the sIn quotes
    'and for selected procedures a string for the secret key
    sIn = ""
    sIn = "IDEmisorFactura=89890001K&NumSerieFactura=12345678/G33&FechaExpedicionFactura=01-01-2024&TipoFactura=F1&CuotaTotal=12.35&ImporteTotal=123.45&Huella=&FechaHoraHusoGenRegistro=2024-01-01T19:20:30+01:00”"
    aIn.IDEmisorFactura = "89890001K"
    aIn.NumSerieFactura = "12345678/G33"
    aIn.FechaExpedicionFactura = "01-01-2024"
    aIn.TipoFactura = "F1"
    aIn.CuotaTotal = "12.35"
    aIn.ImporteTotal = "123.45"
    aIn.Huella = ""
    aIn.FechaHoraHusoGenRegistro = "2024-01-01T19:20:30+01:00"

    
    sH = CalcularHuella(aIn, "alta")
    Debug.Print sH & vbNewLine & Len(sH) & " characters in length"
    MsgBox sH & vbNewLine & Len(sH) & " characters in length"
End Sub

Function CalcularHuella(Registro As RegistroAlta, TipoRegistro As String) As String
    Dim DataToHash As String
    Dim oT As Object, oSHA256 As Object
    Dim HashBytes(), TextToHash() As Byte
    Dim HashString As String
    Dim i As Integer

    Select Case LCase(TipoRegistro)
        Case "alta"
            DataToHash = "IDEmisorFactura=" & Registro.IDEmisorFactura & _
                         "&NumSerieFactura=" & Registro.NumSerieFactura & _
                         "&FechaExpedicionFactura=" & Registro.FechaExpedicionFactura & _
                         "&TipoFactura=" & Registro.TipoFactura & _
                         "&CuotaTotal=" & Registro.CuotaTotal & _
                         "&ImporteTotal=" & Registro.ImporteTotal & _
                         "&Huella=" & Registro.Huella & _
                         "&FechaHoraHusoGenRegistro=" & Registro.FechaHoraHusoGenRegistro

        Case "modificacion"
            DataToHash = "IDEmisorFactura=" & Registro.IDEmisorFactura & _
                         "&NumSerieFactura=" & Registro.NumSerieFactura & _
                         "&FechaExpedicionFactura=" & Registro.FechaExpedicionFactura & _
                         "&Huella=" & Registro.Huella & _
                         "&FechaHoraHusoGenRegistro=" & Registro.FechaHoraHusoGenRegistro

        Case "evento"
            DataToHash = "NIF=" & Registro.IDEmisorFactura & _
                         "&IdSistemaInformatico=SYS001&TipoEvento=" & Registro.TipoFactura & _
                         "&HuellaEvento=" & Registro.Huella & _
                         "&FechaHoraHusoGenEvento=" & Registro.FechaHoraHusoGenRegistro

        Case Else
            MsgBox "Tipo de registro no reconocido para cálculo de huella."
            Exit Function
    End Select
    HashString = SHA_256(DataToHash)
    ' Calcular hash SHA-256
    'Set oSHA256 = CreateObject("System.Security.Cryptography.SHA256Managed")
    'HashBytes = oSHA256.ComputeHash_2(StrConv(DataToHash, vbFromUnicode))
    
    ' Convertir a hexadecimal
    'For i = LBound(HashBytes) To UBound(HashBytes)
    '    HashString = HashString & LCase(Right("00" & Hex(HashBytes(i)), 2))
    'Next i

    CalcularHuella = UCase(HashString)
End Function

Function SHA_256(sIn As String, Optional bB64 As Boolean = 0) As String
    'Set a reference to mscorlib 4.0 64-bit ¿? ->NO
    'Check that Net Framework 3.5 (includes .Net 2 and .Net 3 is installed in windows
    'and not just Net Advanced Services
    
    'Test with empty string input:
    '64 Hex:   e3b0c44298f...etc
    '44 Base-64:   47DEQpj8HBSa+/...etc
    
    Dim oT As Object, oSHA256 As Object
    Dim TextToHash() As Byte, bytes() As Byte
    
    Set oT = CreateObject("System.Text.UTF8Encoding")
    Set oSHA256 = CreateObject("System.Security.Cryptography.SHA256Managed")
    
    TextToHash = oT.GetBytes_4(sIn)
    bytes = oSHA256.ComputeHash_2((TextToHash))
    
    If bB64 = True Then
       SHA_256 = ConvToBase64String(bytes)
    Else
       SHA_256 = ConvToHexString(bytes)
    End If
    
    Set oT = Nothing
    Set oSHA256 = Nothing
    
End Function

Private Function ConvToBase64String(vIn As Variant) As Variant
    'Check that Net Framework 3.5 (includes .Net 2 and .Net 3 is installed in windows
    'and not just Net Advanced Services
   
   Dim oD As Object
      
    Set oD = CreateObject("MSXML2.DOMDocument")
      With oD
        .LoadXML "<root />"
        .DocumentElement.DataType = "bin.base64"
        .DocumentElement.nodeTypedValue = vIn
      End With
    ConvToBase64String = Replace(oD.DocumentElement.Text, vbLf, "")
    
    Set oD = Nothing

End Function

Private Function ConvToHexString(vIn As Variant) As Variant
    'Check that Net Framework 3.5 (includes .Net 2 and .Net 3 is installed in windows
    'and not just Net Advanced Services
    
    Dim oD As Object
      
    Set oD = CreateObject("MSXML2.DOMDocument")
      
      With oD
        .LoadXML "<root />"
        .DocumentElement.DataType = "bin.Hex"
        .DocumentElement.nodeTypedValue = vIn
      End With
    ConvToHexString = Replace(oD.DocumentElement.Text, vbLf, "")
    
    Set oD = Nothing

End Function


Function GenerarXML(Registro As RegistroAlta, TipoRegistro As String) As String
    Dim XMLString As String
    
    Select Case LCase(TipoRegistro)
        Case "alta"
            ' XML para Registro de Alta
            XMLString = "<RegistroAlta>" & vbCrLf & _
                        "    <IDFactura>" & vbCrLf & _
                        "        <IDEmisorFactura>" & Registro.IDEmisorFactura & "</IDEmisorFactura>" & vbCrLf & _
                        "        <NumSerieFactura>" & Registro.NumSerieFactura & "</NumSerieFactura>" & vbCrLf & _
                        "        <FechaExpedicionFactura>" & Registro.FechaExpedicionFactura & "</FechaExpedicionFactura>" & vbCrLf & _
                        "    </IDFactura>" & vbCrLf & _
                        "    <TipoFactura>" & Registro.TipoFactura & "</TipoFactura>" & vbCrLf & _
                        "    <CuotaTotal>" & Registro.CuotaTotal & "</CuotaTotal>" & vbCrLf & _
                        "    <ImporteTotal>" & Registro.ImporteTotal & "</ImporteTotal>" & vbCrLf & _
                        "    <Encadenamiento>" & vbCrLf & _
                        "        <RegistroAnterior>" & vbCrLf & _
                        "            <Huella>" & Registro.Huella & "</Huella>" & vbCrLf & _
                        "        </RegistroAnterior>" & vbCrLf & _
                        "    </Encadenamiento>" & vbCrLf & _
                        "    <FechaHoraHusoGenRegistro>" & Registro.FechaHoraHusoGenRegistro & "</FechaHoraHusoGenRegistro>" & vbCrLf & _
                        "</RegistroAlta>"
        
        Case "modificacion"
            ' XML para Registro de Modificación
            XMLString = "<RegistroModificacion>" & vbCrLf & _
                        "    <IDFactura>" & vbCrLf & _
                        "        <IDEmisorFactura>" & Registro.IDEmisorFactura & "</IDEmisorFactura>" & vbCrLf & _
                        "        <NumSerieFactura>" & Registro.NumSerieFactura & "</NumSerieFactura>" & vbCrLf & _
                        "        <FechaExpedicionFactura>" & Registro.FechaExpedicionFactura & "</FechaExpedicionFactura>" & vbCrLf & _
                        "    </IDFactura>" & vbCrLf & _
                        "    <Encadenamiento>" & vbCrLf & _
                        "        <RegistroAnterior>" & vbCrLf & _
                        "            <Huella>" & Registro.Huella & "</Huella>" & vbCrLf & _
                        "        </RegistroAnterior>" & vbCrLf & _
                        "    </Encadenamiento>" & vbCrLf & _
                        "    <FechaHoraHusoGenRegistro>" & Registro.FechaHoraHusoGenRegistro & "</FechaHoraHusoGenRegistro>" & vbCrLf & _
                        "</RegistroModificacion>"
        
        Case "evento"
            ' XML para Registro de Evento
            XMLString = "<RegistroEvento>" & vbCrLf & _
                        "    <SistemaInformatico>" & vbCrLf & _
                        "        <NIF>" & Registro.IDEmisorFactura & "</NIF>" & vbCrLf & _
                        "        <NumSerie>" & Registro.NumSerieFactura & "</NumSerie>" & vbCrLf & _
                        "        <Version>1.0</Version>" & vbCrLf & _
                        "    </SistemaInformatico>" & vbCrLf & _
                        "    <TipoEvento>" & Registro.TipoFactura & "</TipoEvento>" & vbCrLf & _
                        "    <Encadenamiento>" & vbCrLf & _
                        "        <HuellaEvento>" & Registro.Huella & "</HuellaEvento>" & vbCrLf & _
                        "    </Encadenamiento>" & vbCrLf & _
                        "    <FechaHoraHusoGenEvento>" & Registro.FechaHoraHusoGenRegistro & "</FechaHoraHusoGenEvento>" & vbCrLf & _
                        "</RegistroEvento>"
        
        Case Else
            XMLString = "Error: Tipo de Registro no reconocido."
    End Select
    
    GenerarXML = XMLString
End Function

Sub FirmarXMLConAutoFirma()
    Dim ShellCommand As String
    Dim AutoFirmaPath As String
    Dim InputXML As String
    Dim OutputXML As String
    
    ' Ruta al ejecutable de AutoFirma
    AutoFirmaPath = "C:\Program Files\AutoFirma\AutoFirma.jar"
    
    ' Archivos de entrada y salida
    InputXML = "C:\Ruta\RegistroAlta.xml"
    OutputXML = "C:\Ruta\RegistroAltaFirmado.xml"
    
    ' Comando para firmar el XML
    ShellCommand = "java -jar """ & AutoFirmaPath & """ sign -i """ & InputXML & """ -o """ & OutputXML & """ -format XAdES"
    
    ' Ejecutar el comando
    Shell ShellCommand, vbNormalFocus
    
    MsgBox "Firma completada. Archivo firmado en: " & OutputXML
End Sub

Compartir conocimiento nos hace crecer a todos
Arriba
PGyO Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 22/Febrero/2025
Localización: Bizkaia
Estado: Sin conexión
Puntos: 18
Opciones de entrada Opciones de entrada   Gracias (1) Gracias(1)   Cita PGyO Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 22/Febrero/2025 a las 11:25
Respecto al código QR he seguido el proyecto de Github:
VbQRCodegen-master
con cuidado porque hay una modificación del modulo .bas que hace que funcione (tiene una funcion de conversion adicional QRCodegenConvertToData) y es facil descargar la desactualizada sin querer.

simplemente con poner en el informe un objeto picture y cambiar su propiedad PictureData tenemos el código QR en la factura:
    ImgQR.PictureData = QRCodegenConvertToData(QRCodegenBarcode(TextoQR, , , , QRCodegenEcc_MEDIUM))


Compartir conocimiento nos hace crecer a todos
Arriba
Al_loro Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 16/Mayo/2024
Localización: La Roda
Estado: Sin conexión
Puntos: 44
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Al_loro Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 17/Marzo/2025 a las 11:12
Buenos días a todos, en especia a Miura al que va este comentario.

Si no me equivoco, en cada factura que emitas y pases por verifactu, hay que identificar a la empresa programadora, programa, versión del programa, etc. Se indica en las claves que van en el xml que subes a hacienda, así que no nos libramos de las inspecciones y posibles sanciones.

Estas son las claves obligatorias en CADA factura emitida y subida con nuestros sistemas informáticos, con lo que estamos pillados. No puedes poner los datos del cliente porque no es una empresa de programación, a no ser que ellos accedan a ello y decir que son ellos los únicos responsables de esa instalación. Otro marrón....


<SistemaInformatico>
    <NombreRazon> </NombreRazon>
    <NIF></NIF>
    <NombreSistemaInformatico></NombreSistemaInformatico>
    <IdSistemaInformatico></IdSistemaInformatico>
    <Version></Version>"
    <NumeroInstalacion></NumeroInstalacion>
     <TipoUsoPosibleSoloVerifactu></TipoUsoPosibleSoloVerifactu>    
    <TipoUsoPosibleMultiOT>N</TipoUsoPosibleMultiOT>
    <IndicadorMultiplesOT>N</IndicadorMultiplesOT>
</SistemaInformatico>


Gracias a todos por las colaboraciones. Ya veremos quien queda vivo tras esta "criba".

Gracias a todos los usuarios de este foro
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14428
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 17/Marzo/2025 a las 11:19
Una cosa es que emitas las facturas y otra que las 'subas' (puede que ni siquiera tenga un programa de facturación).

Pero como dijo un ciego, ya veremos.


Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
Al_loro Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 16/Mayo/2024
Localización: La Roda
Estado: Sin conexión
Puntos: 44
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Al_loro Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 17/Marzo/2025 a las 12:23
Bueno, a estas alturas he asistido a tantos seminarios como para escribir la biblia del veri*factu.

Si haces facturas, estás obligado a verifactu. Incluso si las haces en Word o en Excel. Hay una respuesta vinculante al respecto de la inspección de AEAT. Sólo estarán exentos los que están en el SII, que ya lo hacen cada 3 días (realmente lo hacen a diario, porque hoy haces lo de hace 3 días, mañana lo de hace 2... ) y los de módulos, así como algunas actividades como alquileres y poco más. Es decir, el 90 % de la gente lo tenemos que hacer. Hacer facturas obliga a verifactu. Te puedes librar si haces la facturas "a mano", vamos a boli como se hacían antiguamente, con un taco de facturas de imprenta, pero tampoco tengo claro como se declará eso en hacienda.

Vamos que si emites facturas, aunque no tengas programa de facturación, a no ser que las hagas a boli, estás obligado a verifactu. Y nosotros, como desarrolladores, obligados a decir que somos los desarrolladores.... Jodidos estamos....
Gracias a todos los usuarios de este foro
Arriba
pascual14 Ver desplegable
Colaborador
Colaborador


Unido: 30/Junio/2014
Localización: Soria
Estado: Sin conexión
Puntos: 570
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita pascual14 Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 18/Marzo/2025 a las 09:27
Acabo de leer esta noticia, aunque ya lo comentó Mihura y Al_loro. Nos están complicando la vida. esa certificación propia ¿es complicada? es mejor no hacerla por lo que me dicen, pero si no la haces...Esto va a hacer que muchos dejemos de hacer programas de facturación a medida.


https://www.autonomosyemprendedor.es/articulo/hacienda/hacienda-tiene-listos-certificados-nuevos-programas-facturacion-autonomos-sanciones-tenerlos/20250313160028041492.html



Ed. Cambio el link al artículo enlazado


Editado por Mihura - 18/Marzo/2025 a las 09:44
Arriba
Al_loro Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 16/Mayo/2024
Localización: La Roda
Estado: Sin conexión
Puntos: 44
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Al_loro Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 18/Marzo/2025 a las 14:32
La certificación es obligatoria y es muy sencilla. Simplemente haces una declaración responsable en la que firmas de tu programa hace lo que hace y lo hace bien.
El formato estará en la web de hacienda, supuestamente antes de Julio de 2025, pero tendremos tiempo hasta 2026 para firmarla.

Viene una nueva "criba" para las empresas que hacen pequeños programa de facturación a medida. O tienes volumen, o te sales. Wolters Kluwer ha sacado ya una aplicación por 9.99 al mes y en la nube para hacer el verifactu y "BARRER" el mercado. La está lanzando a través de sus partners y de las asesorías que tienen su aplicación, o sea, más de media España.

Tal vez se acabe un negocio y empiece otro, pero desde luego esto marca un antes y un después.

En fin.....
Gracias a todos los usuarios de este foro
Arriba
pascual14 Ver desplegable
Colaborador
Colaborador


Unido: 30/Junio/2014
Localización: Soria
Estado: Sin conexión
Puntos: 570
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita pascual14 Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 18/Marzo/2025 a las 17:10
Pero, si yo certifico mi software con lo que pide hacienda (no dejar modificar facturas y todo eso que nos piden) y un día mi cliente modifica una factura de alguna manera, por ejemplo accediendo a la base de datos ¿la multa me viene a mi? mi software no tiene nada para defraudar pero los clientes a veces hacen cosas que ni sabemos. El problema que seguro tenemos muchos es que nuestro software a medida está adaptado al cliente para su uso y necesidades y es complicado decirles que te tienes que ir a aplicación vertical tipo A3, factusol o similar porque seguro que no le dan las cosas que él necesita. Gracias.
Arriba
 Responder Responder Página  <1234>
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable