** 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  123 4>
Autor
Mensaje
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 Tema: Veri*Factu Capítulo 2...
    Enviado: 22/Mayo/2024 a las 13:18
Buenos días a todos, ya tenemos el borrador de como va a ser este servicio OBLIGATORIO para cualquiera de los que emitimos facturas, es decir, cualquier negocio.

Por si os vale de algo os adjunto el enlace de la descarga del PDF en el que muestran el borrador.

Yo sigo sin saber como se usa un servicio web con certificado digital desde VBA. si alguien sabe como se usa, se agradece la ayuda.

https://www.agenciatributaria.es/static_files/AEAT_Desarrolladores/EEDD/IVA/VERI-FACTU/Factu_Descripcion_ServicioWeb_v0.3.0.pdf

Gracias a todos.
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 (1) Gracias(1)   Cita Guiri Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 06/Noviembre/2024 a las 18:58
No he visto que estuviese cerrado y no me gusta revivir conversaciones antiguas, pero como no tenia contestación y estoy buscado esa misma información, os voy a incluir unas funciones para este tema y firmar con autofirma que debe estar instalado.

Hay que tener en cuenta, (TipoFactura) lo siguiente:

Tipos de Factura Comunes

  1. F1 - Factura ordinaria

    • Factura estándar para operaciones habituales.
  2. F2 - Factura simplificada

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

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

    • Agrupa varias operaciones en un solo documento.

Tipos de Factura Especiales

  1. R1 - Factura rectificativa ordinaria

    • Corrige errores de facturas ordinarias.
  2. R2 - Factura rectificativa simplificada

    • Corrige facturas simplificadas.
  3. 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

Function CalcularHuella(Registro As RegistroAlta, TipoRegistro As String) As String
    Dim DataToHash As String
    Dim oSHA256 As Object
    Dim HashBytes() 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

    ' 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 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




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 (0) Gracias(0)   Cita Guiri Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 06/Noviembre/2024 a las 19:03
Se me ha olvidado, FechaHoraHusoGenRegistro es en formato ISO aaaa-mm-dd y FechaExpedicionFactura es en formato dd-mm-aaaa

Un Saludo
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: 06/Noviembre/2024 a las 19:11
Pues que menos que darte las gracias.
Yo sigo trabajando en ello
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 (0) Gracias(0)   Cita Guiri Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 06/Noviembre/2024 a las 19:21
Estoy buscando todos los campos de los registros para poder acabar de crear el xml, si alguien los tiene me los puede pasar. siento escribir tantos mensajes sin respuestas, pero segun ordeno las ideas escribo.
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: 06/Noviembre/2024 a las 19:25
Los tengo todos.
Te los paso mañana. Te paso el XLSX con todos los datos solicitados . Si usas Soapui y le pones la dirección del servicio te dará todos los campos necesarios pare el envío y en la Excel ves los datos solicitados
Gracias a todos los usuarios de este foro
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: 07/Noviembre/2024 a las 09:41
Buenos días, lo prometido es deuda.

Todos los campos necesarios y toda la información para crear la factura con VERI*FACTU, los tienes disponibles en la web
 
https://www.agenciatributaria.es/AEAT.desarrolladores/Desarrolladores/_menu_/Documentacion/Sistemas_Informaticos_de_Facturacion_y_Sistemas_VERI_FACTU/Sistemas_Informaticos_de_Facturacion_y_Sistemas_VERI_FACTU.html

Mira el formato exacto de este:

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 (0) Gracias(0)   Cita Guiri Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 07/Noviembre/2024 a las 11:08
Gracias por la información. Ahora queda lo del tema de comunicación, que estoy un poco pez. Me instalalare lo del soapui.

Un saludo

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: 07/Noviembre/2024 a las 11:42
Esa es la parte compleja.

En la comunicación te devuelve, primer el qr que tienes que poner en la factura y el csv y la validación de la misma.
Todo está informado en esa plataforma. Mira bien lo de la huella, tendrás que pasar la huella de la anterior  factura en caso de no ser la primera.

Por cierto, ese código que has escrito, ¿en qué versión de VBA lo has hecho?
Saludos.
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 (0) Gracias(0)   Cita Guiri Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 07/Noviembre/2024 a las 15:11
No programo en mi día a día. Pero me gusta estar al día y como hace tiempo me hice un pequeño programa para gestión de servicios enlazandondo con Factusol para el tema de la facturación, tenia curiosidad de como se haría lo del tema de veri*factu y me puse a mirar y probar.

   Pues uso access 2016 32 bits en un ordenador en otro access 2019 64 bits y los dos con MZTOOLS 8.0.3.3934.
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: 10/Noviembre/2024 a las 19:06
uff menudo lio ahora...y al final hay que tener todo para el día 1 de julio de 2025? 
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: en línea
Puntos: 14428
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 10/Noviembre/2024 a las 19:44
Cualquiera sabe ... han vuelto a retrasarlo, hablan del 26, incluso he leído 1-ene-27

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

Access Aplicaciones
Tecsys.es
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: 12/Noviembre/2024 a las 18:21
Madre mía!! nos vuelven locos. Gracias Mihura!
Arriba
Chavalote Ver desplegable
Nuevo
Nuevo


Unido: 19/Noviembre/2024
Localización: Málaga
Estado: Sin conexión
Puntos: 2
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Chavalote Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 19/Noviembre/2024 a las 00:38
Hola que tal, soy nuevo en el foro, aunque llevo ya tiempo diseñando Veri*Factu (con envío inmediato). Desde que sacaron la ley antifraude sospeché que iba a ser casi igual que ticketbai, así que me empape de ticketbai y aproveche las webs de pruebas y para pillar conocimientos sobre esto de formar los xmls, enviarlos, generar el qr, el pdf, los tipos de facturas, etc..
Pero tengo un par de dudas.
Aunque, según la orden Ministerial los que envían no tendrán que firmas los xmls, he visto un punto en la OM que no está claro sobre ese tema, ya que las incidencias en los envios hay que guardarlas de alguna forma que aún no han dejado claro, así que no me fio y quiero meterme en las firmas.
Quería saber si has calculado cuanto tiempo tarda en ejecutar el jar de autofirma y si lo has probafo en un SO eindows XP, ya que tengo varios clientes aun con ese SO:
Comando para firmar el XML
    ShellCommand = "java -jar """ & AutoFirmaPath & """ sign -i """ & InputXML & """ -o """ & OutputXML & """ -format XAdES"
Por cierto las firmas no.llevan también unos parámetros que han dado ellos?, lo miraré.
Ya os iré diciendo también como he hecho el resto si tenéis alguna duda y puedo echar una mano, no solo en la parte de programación, ya me he empapado también la parte fiscal, pero claro, solo de la parte que me interesa: facturas simplificadas, sustitutivas, facturas ordinarias, rectificativas y las subsanacioneaz que es otro cantar. Como estaréis viendo el tema es un poco lioso, no solo es hacer el xml y enviarlo, hay que tener en cuenta mil historias. Enfin, no me enorrlo más que os lo voy a contar todo en un solo post.
Saludos y adelante que se puede, aunque no dejéis pasar un minuto que esto no se hace en 2 meses, esto tiene muuuucha faena y os la jugáis, aquí equivocarse en el desarrollo te puede traer problemas gordos.

Editado por Chavalote - 19/Noviembre/2024 a las 00:41
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: 10/Diciembre/2024 a las 16:54
Buenas tardes a todos.

Las fechas oficiales PUBLICADAS son:

01/01/2026 sujetos pasivos contribuyentes del Impuesto sobre Sociedades),
01/07/2026 para el resto.

La publicación se puede ver en el Colegio de Economistas, en esta URL tan larga tenéis el pdf.

https://reaf.economistas-desarrollo.es/?mailpoet_router&endpoint=track&action=click&data=WyIxNjQyMCIsIjRjNzAxZDJjZjZjYjQ2YTYzYjdhNjc5ZTJkY2JhMjFiIiwiNDAwIiwiNmUyOTdhZDU5ZGJlIixmYWxzZV0

Saludos.
Gracias a todos los usuarios de este foro
Arriba
 Responder Responder Página  123 4>
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable