![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
generacion del verifactur y validarlo
Hola, lo primero de todo: perdón si este tema ya se ha tratado en el foro o si no estoy usando correctamente el foro.
Estoy intentando trabajar con VERI*FACTU y tengo un par de dudas: ¿Existe algún ejemplo completo de la estructura XML que debe tener el envío? He visto que debe enviarse un archivo .xml, pero la mayoría de "ejemplos" que encuentro son de gente diciendo que no les funciona. ¿Hay algún ejemplo oficial o funcional que pueda usar como referencia para asegurarme de que la estructura es correcta? ¿Cómo se valida un envío VERI*FACTU? Por lo que he leído en el foro, ya hay disponible una zona de pruebas, pero parece que hace falta un certificado digital para identificarse, entre otros requisitos. ¿Me podéis decir qué necesito para validar un envío y si hay algún ejemplo del proceso? Trabajo con Delphi 2005, que sé que ya tiene sus años, y no estoy seguro de si con esta versión voy a poder realizar el envío correctamente al sistema de la AEAT, lo comento por si alguien ha podido probar con esta versión y me puede dar algún consejo. |
#2
|
|||
|
|||
Yo uso C++ Builder pero para el caso es lo mismo, tengo también una versión muy antigua, anterior a Delphi 5, imagínate :-) lo que hago es generar el XML a pelo en un string, lo guardo en disco y luego lo envío con una llamada a system del curl.
Te adjunto varios XML, de una factura ordinaria, simplificada y rectificativa, así como del comando curl. Hay mas variaciones, distintos tipos de IVA/IGIC, exentas, rectificativa de una simplificada, envíos masivos, etc. Pero jugando con estos ejemplos los puedes ir viendo, de todas formas, en esta web hay infinidad de ejemplos. Un saludo. Factura ordinaria: Código:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <RegFactuSistemaFacturacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd"> <Cabecera> <ObligadoEmision xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd"> <NombreRazon>XXXXXXX</NombreRazon> <NIF>XXXXXXX</NIF> </ObligadoEmision> <RemisionVoluntaria xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd"> <Incidencia>N</Incidencia> </RemisionVoluntaria> </Cabecera> <RegistroFactura> <RegistroAlta xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd"> <IDVersion>1.0</IDVersion> <IDFactura> <IDEmisorFactura>XXXXXXX</IDEmisorFactura> <NumSerieFactura>A00000045</NumSerieFactura> <FechaExpedicionFactura>28-10-2024</FechaExpedicionFactura> </IDFactura> <NombreRazonEmisor>INFOCERDA SL</NombreRazonEmisor> <Subsanacion>N</Subsanacion> <RechazoPrevio>N</RechazoPrevio> <TipoFactura>F1</TipoFactura> <DescripcionOperacion>VENTA DE MERCADERIAS</DescripcionOperacion> <FacturaSimplificadaArt7273>N</FacturaSimplificadaArt7273> <FacturaSinIdentifDestinatarioArt61d>N</FacturaSinIdentifDestinatarioArt61d> <Macrodato>N</Macrodato> <Destinatarios> <IDDestinatario> <NombreRazon>XXXXXXXXXXXXXXXXXX</NombreRazon> <NIF>XXXXXXXX</NIF> </IDDestinatario> </Destinatarios> <Cupon>N</Cupon> <Desglose> <DetalleDesglose> <Impuesto>01</Impuesto> <ClaveRegimen>01</ClaveRegimen> <CalificacionOperacion>S1</CalificacionOperacion> <TipoImpositivo>21.00</TipoImpositivo> <BaseImponibleOimporteNoSujeto>8.26</BaseImponibleOimporteNoSujeto> <CuotaRepercutida>1.74</CuotaRepercutida> </DetalleDesglose> </Desglose> <CuotaTotal>1.74</CuotaTotal> <ImporteTotal>10.00</ImporteTotal> <Encadenamiento> <RegistroAnterior> <IDEmisorFactura>XXXXXXXX</IDEmisorFactura> <NumSerieFactura>B00000028</NumSerieFactura> <FechaExpedicionFactura>28-10-2024</FechaExpedicionFactura> <Huella>CBC7B59D1EA619EA5C1E16AA69243AF4402FC2ECE6E8A7208D7DEFDB76C5878B</Huella> </RegistroAnterior> </Encadenamiento> <SistemaInformatico> <NombreRazon>Infocerda SL</NombreRazon> <NIF>B04430534</NIF> <NombreSistemaInformatico>TPVComercio</NombreSistemaInformatico> <IdSistemaInformatico>01</IdSistemaInformatico> <Version>3.18</Version> <NumeroInstalacion>B04430534-011</NumeroInstalacion> <TipoUsoPosibleSoloVerifactu>S</TipoUsoPosibleSoloVerifactu> <TipoUsoPosibleMultiOT>S</TipoUsoPosibleMultiOT> <IndicadorMultiplesOT>N</IndicadorMultiplesOT> </SistemaInformatico> <FechaHoraHusoGenRegistro>2024-10-28T20:46:14+01:00</FechaHoraHusoGenRegistro> <TipoHuella>01</TipoHuella> <Huella>86D7BC03C87C951B926E0C9914EA970F2DC0449DE03EDFD11531FFDF84EE9347</Huella> </RegistroAlta> </RegistroFactura> </RegFactuSistemaFacturacion> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Código:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <RegFactuSistemaFacturacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd"> <Cabecera> <ObligadoEmision xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd"> <NombreRazon>xxxxxxxx</NombreRazon> <NIF>xxxxxxxxx</NIF> </ObligadoEmision> <RemisionVoluntaria xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd"> <Incidencia>N</Incidencia> </RemisionVoluntaria> </Cabecera> <RegistroFactura> <RegistroAlta xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd"> <IDVersion>1.0</IDVersion> <IDFactura> <IDEmisorFactura>xxxxxxxx</IDEmisorFactura> <NumSerieFactura>B00000028</NumSerieFactura> <FechaExpedicionFactura>28-10-2024</FechaExpedicionFactura> </IDFactura> <NombreRazonEmisor>xxxxxxx</NombreRazonEmisor> <Subsanacion>N</Subsanacion> <RechazoPrevio>N</RechazoPrevio> <TipoFactura>F2</TipoFactura> <DescripcionOperacion>VENTA DE MERCADERIAS</DescripcionOperacion> <FacturaSimplificadaArt7273>N</FacturaSimplificadaArt7273> <FacturaSinIdentifDestinatarioArt61d>N</FacturaSinIdentifDestinatarioArt61d> <Macrodato>N</Macrodato> <Cupon>N</Cupon> <Desglose> <DetalleDesglose> <Impuesto>01</Impuesto> <ClaveRegimen>01</ClaveRegimen> <CalificacionOperacion>S1</CalificacionOperacion> <TipoImpositivo>21.00</TipoImpositivo> <BaseImponibleOimporteNoSujeto>8.26</BaseImponibleOimporteNoSujeto> <CuotaRepercutida>1.74</CuotaRepercutida> </DetalleDesglose> </Desglose> <CuotaTotal>1.74</CuotaTotal> <ImporteTotal>10.00</ImporteTotal> <Encadenamiento> <RegistroAnterior> <IDEmisorFactura>xxxxxxx</IDEmisorFactura> <NumSerieFactura>B00000027</NumSerieFactura> <FechaExpedicionFactura>28-10-2024</FechaExpedicionFactura> <Huella>EC962FAE28B4D8473909CE7FADC04C487FD57B678EDE0CCBD0D320C5A97A55B7</Huella> </RegistroAnterior> </Encadenamiento> <SistemaInformatico> <NombreRazon>Infocerda SL</NombreRazon> <NIF>B04430534</NIF> <NombreSistemaInformatico>TPVComercio</NombreSistemaInformatico> <IdSistemaInformatico>01</IdSistemaInformatico> <Version>3.18</Version> <NumeroInstalacion>B04430534-011</NumeroInstalacion> <TipoUsoPosibleSoloVerifactu>S</TipoUsoPosibleSoloVerifactu> <TipoUsoPosibleMultiOT>S</TipoUsoPosibleMultiOT> <IndicadorMultiplesOT>N</IndicadorMultiplesOT> </SistemaInformatico> <FechaHoraHusoGenRegistro>2024-10-28T18:56:13+01:00</FechaHoraHusoGenRegistro> <TipoHuella>01</TipoHuella> <Huella>CBC7B59D1EA619EA5C1E16AA69243AF4402FC2ECE6E8A7208D7DEFDB76C5878B</Huella> </RegistroAlta> </RegistroFactura> </RegFactuSistemaFacturacion> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Código:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <RegFactuSistemaFacturacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd"> <Cabecera> <ObligadoEmision xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd"> <NombreRazon>EMPRESA</NombreRazon> <NIF>XXXXXXXXX</NIF> </ObligadoEmision> <RemisionVoluntaria xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd"> <Incidencia>N</Incidencia> </RemisionVoluntaria> </Cabecera> <RegistroFactura> <RegistroAlta xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd"> <IDVersion>1.0</IDVersion> <IDFactura> <IDEmisorFactura>XXXXXXXXX</IDEmisorFactura> <NumSerieFactura>2-1520</NumSerieFactura> <FechaExpedicionFactura>17-05-2024</FechaExpedicionFactura> </IDFactura> <NombreRazonEmisor>EMPRESA</NombreRazonEmisor> <TipoFactura>R4</TipoFactura> <TipoRectificativa>I</TipoRectificativa> <FacturasRectificadas> <IDFacturaRectificada> <IDEmisorFactura>XXXXXXXXX</IDEmisorFactura> <NumSerieFactura>4-182</NumSerieFactura> <FechaExpedicionFactura>10-05-2024</FechaExpedicionFactura> </IDFacturaRectificada> </FacturasRectificadas> <DescripcionOperacion>Prueba</DescripcionOperacion> <Destinatarios> <IDDestinatario> <NombreRazon>EMPRESA SOFTWARE</NombreRazon> <NIF>XXXXXXXX</NIF> </IDDestinatario> </Destinatarios> <Desglose> <DetalleDesglose> <Impuesto>03</Impuesto> <ClaveRegimen>01</ClaveRegimen> <CalificacionOperacion>S1</CalificacionOperacion> <TipoImpositivo>7</TipoImpositivo> <BaseImponibleOimporteNoSujeto>-100</BaseImponibleOimporteNoSujeto> <CuotaRepercutida>-7</CuotaRepercutida> </DetalleDesglose> </Desglose> <CuotaTotal>-7</CuotaTotal> <ImporteTotal>-107</ImporteTotal> <Encadenamiento> <RegistroAnterior> <IDEmisorFactura>XXXXXXXX</IDEmisorFactura> <NumSerieFactura>2-1520</NumSerieFactura> <FechaExpedicionFactura>17-05-2024</FechaExpedicionFactura> <Huella>00BA687E2E0056A3F931B830F2C8776D6BDBBF905A494D9B0EE87F61A9A1A420</Huella> </RegistroAnterior> </Encadenamiento> <SistemaInformatico> <NombreRazon>DESARROLLADOR</NombreRazon> <NIF>XXXXXXXX</NIF> <NombreSistemaInformatico>HFocused.es</NombreSistemaInformatico> <IdSistemaInformatico>01</IdSistemaInformatico> <Version>0.1.2</Version> <NumeroInstalacion>12</NumeroInstalacion> <TipoUsoPosibleSoloVerifactu>S</TipoUsoPosibleSoloVerifactu> <TipoUsoPosibleMultiOT>N</TipoUsoPosibleMultiOT> <IndicadorMultiplesOT>N</IndicadorMultiplesOT> </SistemaInformatico> <FechaHoraHusoGenRegistro>2024-10-30T17:48:40Z</FechaHoraHusoGenRegistro> <TipoHuella>01</TipoHuella> <Huella>EDDA0CEA231B287982B059ACE4BC2C7C5B0BDD1C09F7DF8D2D9F4924253392E0</Huella> </RegistroAlta> </RegistroFactura> </RegFactuSistemaFacturacion> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Código:
curl.exe --connect-timeout 30 -m 30 -k -L -d "@d:\tmp\E1-2-1621.xml" -o d:\tmp\E1-2-1621R.xml --cert-type P12 --cert d:\tmp\Certificado.pfx:passcert https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP Última edición por chenech fecha: 26-03-2025 a las 15:06:37. |
#3
|
||||
|
||||
El compañero seccion_31 ha hecho un espléndido ejemplo de envío/recepción a Verifactu:
https://terawiki.clubdelphi.com/Otro...go-proyectos_/ Funciona en Delphi 7 por lo que no deberías de tener problemas para que te funcione en Delphi 2005. Saludos.
__________________
Be water my friend. |
#4
|
|||
|
|||
Muchas gracias a los dos sobre el tema de la estructura he encontrado este documento sede.agenciatributaria.gob.es/static_files/AEAT_Desarrolladores/EEDD/IVA/VERI-FACTU/Veri-Factu_Descripcion_SWeb.pdf algunos campos me coinciden otros no tanto, ¿es aquí donde has sacado la estructura o de otro documento?
unos campos que me parecen raro como se llaman son: ->FacturaSimplificadaArt7273 ->FacturaSinIdentifDestinatarioArt61d supongo que tendrán alguna razón |
#6
|
|||
|
|||
Una pregunta que a lo mejor es un poco tonta estaba con la huella del sha256 y me he fijado que en el campo 'numSerieFactura' lo separas así: 'Nºserie-Nºfactura' pero en el ejemplo de la documentación pone: NumSerieFactura=12345678/G3,
mi pregunta que debo de usar como separador: ¿'-' o '/'? |
#7
|
|||
|
|||
Puedes poner el que quieras, como si no quieres poner ninguno.
__________________
La religión es personal e intransferible. |
#8
|
|||
|
|||
Pues lo que quieras, incluso no usar separador, por ejemplo 0100001 para la serie 1 y 0200001 para la serie 2, pero siempre usar el mismo formato.
|
#9
|
|||
|
|||
me ha entrado una duda con el encadenamiento, yo estaba usando la misma serie para mis pruebas y todo parecía funcionar, el problema es cuando he cambiado de serie, yo como lo tengo montado el encadenamiento separo las series en los encadenamientos tal que así:
1/25->1/26->1/27... 2/10->2/11... si intento juntar las series 1/25->2/10 (orden de generación de factura) me da error 'El cálculo de la huella suministrada es incorrecta. Datos de entrada cálculo huella:..' así que entiendo que la opción correcta es la primera. pero cuando creo una serie nueva sin estrenar 3/1 me obliga a poner que no es primer resgitro por que si no me da este error: 'No debe informarse como primer registro, existen facturas emitidas con el obligado emisión y el sistema informático actual.' en resumen que tendría que poner <PrimerRegistro> N </PrimerRegistro> ¿pero que debo poner en registro anterior para que no me salte ? |
#10
|
||||
|
||||
Cita:
Creo que es un error de planteamiento. El encadenamiento no debe de ir por serie sino por SIF, es decir, todas las facturas que se emitan desde un mismo sistema informático, ya sea monopuesto, red, con distintas series, etc. debe de ir encadenado de forma conjunta.
__________________
Be water my friend. |
#11
|
|||
|
|||
Cita:
entonces el orden de encadenamiento debe de ser por emisión de factura entiendo 1/25->2/10->2/11->1/56 |
#12
|
|||
|
|||
Cita:
Correcto, el encandenamiento es con el último registro creado, sea de la misma serie o de otra Saludos |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Generacion del PDF | Becario127 | Registros de Facturacion y Eventos (XML) | 1 | 05-11-2024 16:32:47 |
Copiado y generacion de PDF | gdlrinfo | Varios | 6 | 13-03-2015 22:27:37 |
Generacion de scripts | AMO | Oracle | 2 | 10-10-2005 17:55:15 |
Generación de archivos dcu | jplj | Varios | 2 | 26-04-2005 21:44:29 |
![]() |
|