FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Prueba
Esto es una prueba, aun no hay concreción de los campos/Nodos del XML.
Es importante destacar que la huella(Hash) se calcula en Base al SHA256 del Nodo: Código:
<RegistroFacturacion> ... </RegistroFacturacion> Ejemplo Factura Simplificada 1.20Euros pan al 4%IVA Código:
<?xml version="1.0" encoding="UTF-8"?> <SistemaFacturacionAltaFact xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"> <Cabecera> <IDVersion>0.1</IDVersion> <ObligadoEmision> <NombreRazon>EMPRESA DE PRUEBA, S.A.</NombreRazon> <NIF>00000006Y</NIF> </ObligadoEmision> </Cabecera> <RegistroAltaFacturas> <RegistroFacturacion> <PeriodoLiquidacion> <Ejercicio>2022</Ejercicio> <Periodo>3T</Periodo> </PeriodoLiquidacion> <IdFactura> <IdEmisorFactura> <NIF>00000006Y</NIF> </IdEmisorFactura> <NumSerieFacturaEmisor>84.2.1.2566</NumSerieFacturaEmisor> <FechaExpedicionFacturaEmisor>31/07/2022</FechaExpedicionFacturaEmisor> </IdFactura> <TipoFactura>F2</TipoFactura> <FechaOperacion>31/07/2022</FechaOperacion> <DescripcionOperacion>VENTA MINORISTA</DescripcionOperacion> <Desglose> <DetalleDesglose> <ClaveRegimen>01</ClaveRegimen> <TipoImpositivo>4.00</TipoImpositivo> <BaseImponibleOimporteNoSujeto>1.00</BaseImponibleOimporteNoSujeto> </DetalleDesglose> </Desglose> <ImporteTotal>1.04</ImporteTotal> <EncadenamientoFacturaAnterior> <IDEmisorFacturaAnterior>00000006Y</IDEmisorFacturaAnterior> <NumSerieFacturaAnterior>84.2.1.2565</NumSerieFacturaAnterior> <FechaExpedicionFacturaAnterior>31/07/2022</FechaExpedicionFacturaAnterior> <HuellaFacturaAnterior>C1E5F4DFA142198FC6D2A0CE1D87B409F867F0CE2964DD89C6FC046089ABAD76</HuellaFacturaAnterior> </EncadenamientoFacturaAnterior> <SistemaInformatico> <NombreRazon>SISTEMAS INFORMATICOS TPV</NombreRazon> <NIF>00000006Y</NIF> <IdSistemaInformatico>IDENTIFICADOR AEAT XXXX</IdSistemaInformatico> <Version>46.243.1</Version> <NumeroInstalacion>45</NumeroInstalacion> <TipoUsoSistema>01</TipoUsoSistema> </SistemaInformatico> </RegistroFacturacion> <DatosControl> <Huella>C1E5F4DFA142198FC6D2A0CE1D87B409F867F0CE2964DD89C6FC046089ABAD76</Huella> <TipoHash>01</TipoHash> <FechaGenRegistro>31/07/2022</FechaGenRegistro> <HoraGenRegistro>09:00:07</HoraGenRegistro> <HusoHorarioGenRegistro>02</HusoHorarioGenRegistro> </DatosControl> </RegistroAltaFacturas> </SistemaFacturacionAltaFact> Última edición por ermendalenda fecha: 31-07-2022 a las 10:08:46. |
#2
|
|||
|
|||
Cita:
|
#3
|
|||
|
|||
Código:
<?xml version="1.0" encoding="UTF-8"?> <SistemaFacturacionAltaFact xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"> <Cabecera> <IDVersion>0.1</IDVersion> <ObligadoEmision> <NombreRazon>EMPRESA DE PRUEBA, S.A.</NombreRazon> <NIF>00000006Y</NIF> </ObligadoEmision> </Cabecera> <RegistroAltaFacturas> <RegistroFacturacion> <PeriodoLiquidacion> <Ejercicio>2022</Ejercicio> <Periodo>3T</Periodo> </PeriodoLiquidacion> <IdFactura> <IdEmisorFactura> <NIF>00000006Y</NIF> </IdEmisorFactura> <NumSerieFacturaEmisor>84.2.1.2566</NumSerieFacturaEmisor> <FechaExpedicionFacturaEmisor>31/07/2022</FechaExpedicionFacturaEmisor> </IdFactura> <TipoFactura>F2</TipoFactura> <FechaOperacion>31/07/2022</FechaOperacion> <DescripcionOperacion>VENTA MINORISTA</DescripcionOperacion> <Desglose> <DetalleDesglose> <ClaveRegimen>01</ClaveRegimen> <CalificacionOperacion>S1</CalificacionOperacion> <TipoImpositivo>4.00</TipoImpositivo> <BaseImponibleOimporteNoSujeto>1.00</BaseImponibleOimporteNoSujeto> <CuotaRepercutida>0.04</CuotaRepercutida> </DetalleDesglose> </Desglose> <ImporteTotal>1.04</ImporteTotal> <EncadenamientoFacturaAnterior> <IDEmisorFacturaAnterior>00000006Y</IDEmisorFacturaAnterior> <NumSerieFacturaAnterior>84.2.1.2565</NumSerieFacturaAnterior> <FechaExpedicionFacturaAnterior>31/07/2022</FechaExpedicionFacturaAnterior> <HuellaFacturaAnterior>9yYI6U89U3IUIQE345EUGWEBsd7EKFCBP9trtYUJSD0JFFKJKrtthAuysfadfWPE</HuellaFacturaAnterior> </EncadenamientoFacturaAnterior> <SistemaInformatico> <NombreRazon>SISTEMAS INFORMATICOS TPV</NombreRazon> <NIF>00000006Y</NIF> <IdSistemaInformatico>IDENTIFICADOR AEAT XXXX</IdSistemaInformatico> <Version>46.243.1</Version> <NumeroInstalacion>45</NumeroInstalacion> <TipoUsoSistema>01</TipoUsoSistema> </SistemaInformatico> </RegistroFacturacion> <DatosControl> <Huella>005948F5A441A56ABF584804036409719AB89892608FD708BAB8AE5088C896AD</Huella> <TipoHash>01</TipoHash> <FechaGenRegistro>31/07/2022</FechaGenRegistro> <HoraGenRegistro>09:00:07</HoraGenRegistro> <HusoHorarioGenRegistro>02</HusoHorarioGenRegistro> </DatosControl> </RegistroAltaFacturas> </SistemaFacturacionAltaFact> Me faltaban un par de campos Código:
<CalificacionOperacion>S1</CalificacionOperacion> <CuotaRepercutida>0.04</CuotaRepercutida> Última edición por ermendalenda fecha: 31-07-2022 a las 19:50:48. |
#4
|
|||
|
|||
Mínimo registros o mínimo minutos
En los sistemas en los que corran muchos usuarios a la vez, puede crearte un problema de saturación de la cola de envío, eso hay que tenerlo en cuenta y ahora no se como resolverlo, por que si el envio maximo son 1000registros y la AEAT no gestiona bien eso y me pone que el envío lo haga cada hora ya la hemos liado, confiemos en que tengan buenos algoritmos.
En lss aplicaciones de escritorio de 1 usuario, da igual el metodo que elijas pero hay que tener en cuenta que si tienes una avería estaría bien tener un sistema preparado para enviar lo que tengas después de los minutos que te dicen, sobre todo para que no te pille un cambio de periodo impositivo en la que tengas que tener el envío hecho antes del día X. Esto "va a trae cola" Última edición por ermendalenda fecha: 01-08-2022 a las 08:14:54. |
#5
|
|||
|
|||
Cita:
|
#6
|
|||
|
|||
Cita:
Por tanto la definición del SHA-256 ya indican que son 64 digitos en hexadecimal. Entiendo que no hay duda |
#7
|
|||
|
|||
Cita:
Por supuesto el hash es solo en un sentido y es indescifrable(teoricamente ya qur tenemos los futuros quantum que los 256 se los van a comer con patatas y te generarán en un futuro multiples posibles textos descifrados que serviran de referencia para romper el cifrado y dar posibles resultados con tecnología inversa. ya estan trabajando en nuevos protocolos de cifrado) El sha256=256bits 256bits=64caracteres hexadecimales=32caracteres ascii Última edición por ermendalenda fecha: 02-08-2022 a las 19:45:08. |
#8
|
|||
|
|||
Cita:
|
#9
|
|||
|
|||
Soap
Código:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ds="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd" xmlns:sf="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd"> <soapenv:Header/> <soapenv:Body> <ds:AltaFactuSistemaFacturacion> <sf:Cabecera> <sf:IDVersion>?</sf:IDVersion> <sf:ObligadoEmision> <sf:NombreRazon>?</sf:NombreRazon> <sf:NIF>?</sf:NIF> <!--Optional:--> <sf:NombreRazonRepresentante>?</sf:NombreRazonRepresentante> <!--Optional:--> <sf:NIFRepresentante>?</sf:NIFRepresentante> </sf:ObligadoEmision> </sf:Cabecera> <!--1 to 1000 repetitions:--> <ds:RegistroAltaFacturas> <ds:RegistroFacturacion> <sf:PeriodoLiquidacion> <sf:Ejercicio>?</sf:Ejercicio> <sf:Periodo>?</sf:Periodo> </sf:PeriodoLiquidacion> <sf:IDFactura> <sf:IDEmisorFactura> <sf:NIF>?</sf:NIF> </sf:IDEmisorFactura> <sf:NumSerieFacturaEmisor>?</sf:NumSerieFacturaEmisor> <sf:FechaExpedicionFacturaEmisor>?</sf:FechaExpedicionFacturaEmisor> </sf:IDFactura> <sf:TipoFactura>?</sf:TipoFactura> <!--Optional:--> <sf:TipoRectificativa>?</sf:TipoRectificativa> <!--Optional:--> <sf:FacturasRectificadas> <!--1 to 1000 repetitions:--> <sf:IDFacturaRectificada> <sf:NumSerieFacturaEmisor>?</sf:NumSerieFacturaEmisor> <sf:FechaExpedicionFacturaEmisor>?</sf:FechaExpedicionFacturaEmisor> </sf:IDFacturaRectificada> </sf:FacturasRectificadas> <!--Optional:--> <sf:FacturasSustituidas> <!--1 to 1000 repetitions:--> <sf:IDFacturasSustituida> <sf:NumSerieFacturaEmisor>?</sf:NumSerieFacturaEmisor> <sf:FechaExpedicionFacturaEmisor>?</sf:FechaExpedicionFacturaEmisor> </sf:IDFacturasSustituida> </sf:FacturasSustituidas> <!--Optional:--> <sf:ImporteRectificacion> <sf:BaseRectificada>?</sf:BaseRectificada> <sf:CuotaRectificada>?</sf:CuotaRectificada> <!--Optional:--> <sf:CuotaRecargoRectificado>?</sf:CuotaRecargoRectificado> </sf:ImporteRectificacion> <!--Optional:--> <sf:FechaOperacion>?</sf:FechaOperacion> <!--Optional:--> <sf:NumRegistroAcuerdoFacturacion>?</sf:NumRegistroAcuerdoFacturacion> <!--Optional:--> <sf:NumRegistroAcuerdoSistemaInformatico>?</sf:NumRegistroAcuerdoSistemaInformatico> <sf:DescripcionOperacion>?</sf:DescripcionOperacion> <!--Optional:--> <sf:RefExterna>?</sf:RefExterna> <!--Optional:--> <sf:FacturaSimplificadaArticulos7.2_7.3>?</sf:FacturaSimplificadaArticulos7.2_7.3> <!--Optional:--> <sf:FacturaSinIdentifDestinatarioArticulo6.1.d>?</sf:FacturaSinIdentifDestinatarioArticulo6.1.d> <!--Optional:--> <sf:Macrodato>?</sf:Macrodato> <!--Optional:--> <sf:EmitidaPorTercerosODestinatario>?</sf:EmitidaPorTercerosODestinatario> <!--Optional:--> <sf:Tercero> <sf:NombreRazon>?</sf:NombreRazon> <!--You have a CHOICE of the next 2 items at this level--> <sf:NIF>?</sf:NIF> <sf:IDOtro> <!--Optional:--> <sf:CodigoPais>?</sf:CodigoPais> <sf:IDType>?</sf:IDType> <sf:ID>?</sf:ID> </sf:IDOtro> <!--Optional:--> <sf:NIFRepresentante>?</sf:NIFRepresentante> </sf:Tercero> <!--Optional:--> <sf:Contraparte> <sf:NombreRazon>?</sf:NombreRazon> <!--You have a CHOICE of the next 2 items at this level--> <sf:NIF>?</sf:NIF> <sf:IDOtro> <!--Optional:--> <sf:CodigoPais>?</sf:CodigoPais> <sf:IDType>?</sf:IDType> <sf:ID>?</sf:ID> </sf:IDOtro> <!--Optional:--> <sf:NIFRepresentante>?</sf:NIFRepresentante> </sf:Contraparte> <sf:Desglose> <!--1 to 10 repetitions:--> <sf:DetalleDesglose> <sf:ClaveRegimen>?</sf:ClaveRegimen> <!--Optional:--> <sf:CalificacionOperacion>?</sf:CalificacionOperacion> <!--Optional:--> <sf:OperacionExenta>?</sf:OperacionExenta> <!--Optional:--> <sf:TipoImpositivo>?</sf:TipoImpositivo> <sf:BaseImponibleOimporteNoSujeto>?</sf:BaseImponibleOimporteNoSujeto> <!--Optional:--> <sf:BaseImponibleACoste>?</sf:BaseImponibleACoste> <!--Optional:--> <sf:CuotaRepercutida>?</sf:CuotaRepercutida> <!--Optional:--> <sf:TipoRecargoEquivalencia>?</sf:TipoRecargoEquivalencia> <!--Optional:--> <sf:CuotaRecargoEquivalencia>?</sf:CuotaRecargoEquivalencia> </sf:DetalleDesglose> </sf:Desglose> <sf:ImporteTotal>?</sf:ImporteTotal> <!--Optional:--> <sf:EntidadSucedida> <sf:NombreRazon>?</sf:NombreRazon> <sf:NIF>?</sf:NIF> </sf:EntidadSucedida> <sf:EncadenamientoFacturaAnterior> <sf:IDEmisorFacturaAnterior> <sf:NIF>?</sf:NIF> </sf:IDEmisorFacturaAnterior> <sf:NumSerieFacturaAnterior>?</sf:NumSerieFacturaAnterior> <sf:FechaExpedicionFacturaAnterior>?</sf:FechaExpedicionFacturaAnterior> <sf:HuellaFacturaAnterior>?</sf:HuellaFacturaAnterior> </sf:EncadenamientoFacturaAnterior> <sf:SistemaInformatico> <sf:NombreRazon>?</sf:NombreRazon> <!--You have a CHOICE of the next 2 items at this level--> <sf:NIF>?</sf:NIF> <sf:IDOtro> <!--Optional:--> <sf:CodigoPais>?</sf:CodigoPais> <sf:IDType>?</sf:IDType> <sf:ID>?</sf:ID> </sf:IDOtro> <sf:IdSistemaInformatico>?</sf:IdSistemaInformatico> <sf:Version>?</sf:Version> <sf:NumeroInstalacion>?</sf:NumeroInstalacion> <sf:TipoUsoSistema>?</sf:TipoUsoSistema> </sf:SistemaInformatico> </ds:RegistroFacturacion> <ds:DatosControl> <sf:Huella>?</sf:Huella> <sf:TipoHash>?</sf:TipoHash> <sf:FechaGenRegistro>?</sf:FechaGenRegistro> <sf:HoraGenRegistro>?</sf:HoraGenRegistro> <sf:HusoHorarioGenRegistro>?</sf:HusoHorarioGenRegistro> <!--Optional:--> <sf:Incidencia>?</sf:Incidencia> </ds:DatosControl> </ds:RegistroAltaFacturas> </ds:AltaFactuSistemaFacturacion> </soapenv:Body> </soapenv:Envelope> |
#10
|
|||
|
|||
Cálculo del HASH para el segmento <DatosControl>
Cita:
Aunque no desarrollo en Delphi, estuve por estos lares en su día para el tema del SII, y para actualizar mis ERP's con la nueva normativa para Veri*Factu os estoy siguiendo. He visto el ejemplo, y para probar el hash, he copiado y pegado el Segmento <RegistroFacturacion>/</RegistroFacturacion>: <RegistroFacturacion> <PeriodoLiquidacion> <Ejercicio>2022</Ejercicio> <Periodo>3T</Periodo> </PeriodoLiquidacion> <IdFactura> <IdEmisorFactura> <NIF>00000006Y</NIF> </IdEmisorFactura> <NumSerieFacturaEmisor>84.2.1.2566</NumSerieFacturaEmisor> <FechaExpedicionFacturaEmisor>31/07/2022</FechaExpedicionFacturaEmisor> </IdFactura> <TipoFactura>F2</TipoFactura> <FechaOperacion>31/07/2022</FechaOperacion> <DescripcionOperacion>VENTA MINORISTA</DescripcionOperacion> <Desglose> <DetalleDesglose> <ClaveRegimen>01</ClaveRegimen> <CalificacionOperacion>S1</CalificacionOperacion> <TipoImpositivo>4.00</TipoImpositivo> <BaseImponibleOimporteNoSujeto>1.00</BaseImponibleOimporteNoSujeto> <CuotaRepercutida>0.04</CuotaRepercutida> </DetalleDesglose> </Desglose> <ImporteTotal>1.04</ImporteTotal> <EncadenamientoFacturaAnterior> <IDEmisorFacturaAnterior>00000006Y</IDEmisorFacturaAnterior> <NumSerieFacturaAnterior>84.2.1.2565</NumSerieFacturaAnterior> <FechaExpedicionFacturaAnterior>31/07/2022</FechaExpedicionFacturaAnterior> <HuellaFacturaAnterior>9yYI6U89U3IUIQE345EUGWEBsd7EKFCBP9trtYUJSD0JFFKJKrtthAuysfadfWPE</HuellaFacturaAnterior> </EncadenamientoFacturaAnterior> <SistemaInformatico> <NombreRazon>SISTEMAS INFORMATICOS TPV</NombreRazon> <NIF>00000006Y</NIF> <IdSistemaInformatico>IDENTIFICADOR AEAT XXXX</IdSistemaInformatico> <Version>46.243.1</Version> <NumeroInstalacion>45</NumeroInstalacion> <TipoUsoSistema>01</TipoUsoSistema> </SistemaInformatico> </RegistroFacturacion> con espacios de identación y sin el \r\n de la etiqueta de cierre final en un archivo y he guardado, y usando sha256 (tengo cygwin64 instalado) he calculado el hash256 del archivo, y a mi me da el digest: c35917cbb3e483ed07e36db77c5f8c28790623751ced3cc6e67ba6e6c443fa0c y no: 005948F5A441A56ABF584804036409719AB89892608FD708BAB8AE5088C896AD como en el ejemplo mostrado en el foro. He probado también quitando las 2 líneas vacias antes y depués de la etiqueta: </EncadenamientoFacturaAnterior> y tampoco me sale el mismo HASH. Se ha de computar sin RC's ni LF's o sin los espacios de identación ? Muchas gracias por vuestra labor de documentación ... No hay nada en internet mejor que este foro ... Un Saludo. Última edición por usr3010 fecha: 27-02-2023 a las 18:47:17. |
#11
|
|||
|
|||
Cita:
Con lo cual se me ocurre que estas copiando y pegando desde un explorador de Internet, el cual formatea esos datos y les introduce otros caracteres. Saludos |
#12
|
|||
|
|||
Gracias por tu respuesta.
Lo revisaré. De todos modos, leyendo el foro he encontrado gente que parece tener problemas con la generación de los XML's. Yo estaba igual cuando al SII, y descubrí el SOAP-UI. Es una app gratuita que puedes bajar e instalar, y a partir de un WSDL te genera los XMLS's para cada método contenido en el WSDL. Así pude ver la estructura de cada XML para cada tipo de solicitud y ya decides si quieres usar la clase implementada en tu lenguaje o bien lo generas "a mano" mapeando los valores pedidos en cada tag con valores de los registros de la BBDD. Es la herramienta que usé para conocer las estructuras de los archivos XML para el SII en 2017. Os adjunto una imagen de la interfaz del Soap-UI. Lo mejor que tiene es que puedes firmar las peticiones (archivos XML) antes de enviarlos al Servidor del Web Service de mil formas y con mil configuraciones (Certificado Digital a usar, Tipo de Cifrado, Tipo de Canonicalización, Tipo de Seguridad (Oasis, etc)) y ejecutar, una vez has puesto datos válidos en el XML de la petición, la llamada al WebService y ver la respuesta recibida del WebService para esa petición . Para aquellos que teneis problemas con los XML os recomiendo que os instaleís esta herramienta y la trasteeis. Os ayudará mucho a conocer y comprender el funcionamiento de los WEB Services, firmado de XML's, etc ... Un Saludo. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Hijo de Informáticos | gluglu | Humor | 3 | 13-03-2007 11:05:35 |
Adictos informaticos ... | Trigger | Humor | 2 | 11-10-2004 12:18:32 |
Nosotros los Informáticos | Trigger | Humor | 1 | 10-10-2004 14:58:09 |
Patrón de los Informáticos. | obiwuan | Varios | 20 | 10-09-2003 14:44:54 |
Chistes Informaticos | jhonny | Humor | 2 | 11-08-2003 21:59:09 |
|