Page 10 of 23

Re: España: Normativa sancionadora sistemas informáticos

Posted: Wed Oct 02, 2024 3:38 pm
by Garbi
Vamos por partes.
1.- Crear fichero xml
Tenemos nuestros datos en .dbf

Con el ejemplo que hay de un ejemplo de xml podría usar las funciones
fcreate() para crear el xml
ir añadiendo lineas con outfile()
y una vez terminado todo con fclose() cerrar el fichero.

¿Con eso obtendría un fichero valido xml?

Es por empezar por algo, y saber si estoy perdiendo el tiempo o voy por buen camino.

¿Qué pensáis?

Re: España: Normativa sancionadora sistemas informáticos

Posted: Wed Oct 02, 2024 4:55 pm
by VictorCasajuana
paquitohm wrote: Un monton de horas le he echado yo al xmlspy sin poder sacar un xml completo de ejemplo. Le he hecho de todo. Quizas mis cortos conocimientos sobre el lenguaje de modelado xml me han pasado factura. He decidido que cuando empiece con eso lo haré con un ejemplo que haya por ahi como hice en su dia con el sii y con el ticketbai.
despues de estar trasteando con el SistemaFacturacion.wsdl me he dado cuenta que el propio fichero no es correcto, ahí estaba una de mis confusiones. El wsdl es el esquema del WebService, todos sus endpoints y esquemas de ficheros de envío y recepción, "pero" el que nos suministra hacienda está en https://prewww2.aeat.es y en él se incluyen las referencias a los esquemas a utilizar para la creación de los xml, con la peculiaridad que los esquemas apuntan a la url https://www2.agenciatributaria.gob.es/, por lo tanto si intentas procesar el wsdl pues te va a dar un 404 not found como una casa. Hay que cambiar las url por https://prewww2.aeat.es/ para que te funcione, hasta la utilidad SoapUI da error. Conclusión, está a medio cocinar.
No obstante continuo indagando en wsdl con sus xsd adjuntos ya que ahí está todo lo necesario, tanto los esquemas de envío de facturas como los esquemas xml de respuesta.
paquitohm wrote: A mi lo que me preocupa es cual va a ser el sistema que tenemos que usar. VF introduce una variable t desconocida hasta ahora: Flujo de datos. Eso obliga a acumular xmls en un mismo envio y por supuesto obliga tambien a esperar una respuesta multiple.
El tratamiento de las anulaciones tambien da para alguna charla
Yo creo que ahí simplemente hay que procesar el dato t que devuelve la petición, si te pone 10 minutos (por ejemplo) pues hasta 10 minutos no puedes enviar la siguiente factura. Que puede pasar? que tengas más de una factura por enviar. Solución? pues preparar el proceso de generación de xml para poder incluir n facturas, y cada vez que se genera un envío, mirar en el dbf de facturas las que no se han enviado y meterlas todas. Habrá que guardar el dato t que se recibe en algun fichero por si se sale y entra del programa tener constancia del último envío y del tiempo a esperar para el próximo.
Otra opción sería meter un timer que se ejecute cada minuto y haga la comprobación o incluso tener un thread exclusivo para eso, pero ahí ya entra la arquitectura que tenga montada cada uno en su aplicación
Garbi wrote:Vamos por partes.
1.- Crear fichero xml
Tenemos nuestros datos en .dbf

Con el ejemplo que hay de un ejemplo de xml podría usar las funciones
fcreate() para crear el xml
ir añadiendo lineas con outfile()
y una vez terminado todo con fclose() cerrar el fichero.

¿Con eso obtendría un fichero valido xml?

Es por empezar por algo, y saber si estoy perdiendo el tiempo o voy por buen camino.

¿Qué pensáis?
Ahí no te puedo ayudar mucho, yo los xml los trabajo mediante la librería chilkat https://www.chilkatsoft.com/refdoc/xChilkatXmlRef.html tanto los que creo yo como los que recibo. Antes lo hacía a pelo como dices pero es más complejo y a la que te dejas un > o < ya la has liado. Otra opción es utilizar la TXml que también la gasté hace tiempo.
Realmente lo que menos me preocupa es la creación en sí del xml, se puede hacer de varias formas, lo importante es saber exactamente el contenido ( que ya se puede saber por la documentación de hacienda ) y hacer una estructura de clases ( una por dato ) como comenta paquito más arriba que ya te lo haga todo, incluso verificar si los datos son correctos.

Bueno, vamos a vanzando, poco pero hacia adelante.

Salud!

Re: España: Normativa sancionadora sistemas informáticos

Posted: Thu Oct 03, 2024 9:59 am
by Garbi
Estoy haciendo todo lo posible pero creo que mi nivel no da para realizar esta actualización sin mucha ayuda.

Víctor y Paquito están muy por encima de mi nivel.
Además no comprendo porque no hay más compañeros que no les afecte esta actualización y no tengan dudas.

He echado un vistazo a chilkat, o xmlspy pero no tengo los conocimientos para poder realizar el xml que se debería enviar a Veri*Factu.

Y lo peor es que esto va a entrar en marcha si o si y la gente esta tan tranquila con softwares antiguos y no le dan ninguna publicidad en los medios para que se vayan preparando.

Yo voy a seguir intentándolo pero lo veo muy complicado para mi nivel.

Un saludo a todos.

Re: España: Normativa sancionadora sistemas informáticos

Posted: Thu Oct 03, 2024 10:40 am
by paquitohm
Garbi,

Esto no tiene nada pero sólo hay que trabajarlo. Peor lo tienen los del no VF :D Grosso modo esto sería el tema:

0 - Darse de alta como desarrollador y ponerle un nombre y version al programa
1 - Tener un certificado digital para poder enviar
  • 2 - Generar el .xml con las ultimas facturas generadas. En SII y en TicketBAI genero el xml tomando como base un .xml y haciendo sustituciones de string. Si el nodo es complejo, entonces lo trato "aparte". Por ejemplo %NODO_DESGLOSE_IVA%. No digo que sea lo ideal, pero me funciona. Tampoco tiene mucha menos complejidad la estructura por clases que es la forma mas sofisticada.
    3 - Hacer llamada curl (yo uso curl.exe desde los tiempos del sii) de envio y recoger respuesta y evaluar lo respondido por la agencia
    4 - Esperar el tiempo t para volver a hacer otro envio.
Este (o parecido) es el esquema básico. Podemos ir completando cada punto.
Esas son las Altas de facturas. Las anulaciones, si las hay, se podrian tratar en un bloque todas juntas.

Salu2

Re: España: Normativa sancionadora sistemas informáticos

Posted: Thu Oct 03, 2024 11:06 am
by VictorCasajuana
paquitohm wrote:Garbi,

Esto no tiene nada pero sólo hay que trabajarlo. Peor lo tienen los del no VF :D Grosso modo esto sería el tema:

0 - Darse de alta como desarrollador y ponerle un nombre y version al programa
1 - Tener un certificado digital para poder enviar
  • 2 - Generar el .xml con las ultimas facturas generadas. En SII y en TicketBAI genero el xml tomando como base un .xml y haciendo sustituciones de string. Si el nodo es complejo, entonces lo trato "aparte". Por ejemplo %NODO_DESGLOSE_IVA%. No digo que sea lo ideal, pero me funciona. Tampoco tiene mucha menos complejidad la estructura por clases que es la forma mas sofisticada.
    3 - Hacer llamada curl (yo uso curl.exe desde los tiempos del sii) de envio y recoger respuesta y evaluar lo respondido por la agencia
    4 - Esperar el tiempo t para volver a hacer otro envio.
Este (o parecido) es el esquema básico. Podemos ir completando cada punto.
Esas son las Altas de facturas. Las anulaciones, si las hay, se podrian tratar en un bloque todas juntas.

Salu2
En el punto 2, para el ticketbai hay etiquetas que aparecen o no según el tipo de factura, creo que en verifactu será igual, ahí utilizas un .xml base para cada tipo de factura?

Re: España: Normativa sancionadora sistemas informáticos

Posted: Thu Oct 03, 2024 11:18 am
by VictorCasajuana
Garbi wrote:Estoy haciendo todo lo posible pero creo que mi nivel no da para realizar esta actualización sin mucha ayuda.

Víctor y Paquito están muy por encima de mi nivel.
Además no comprendo porque no hay más compañeros que no les afecte esta actualización y no tengan dudas.

He echado un vistazo a chilkat, o xmlspy pero no tengo los conocimientos para poder realizar el xml que se debería enviar a Veri*Factu.

Y lo peor es que esto va a entrar en marcha si o si y la gente esta tan tranquila con softwares antiguos y no le dan ninguna publicidad en los medios para que se vayan preparando.

Yo voy a seguir intentándolo pero lo veo muy complicado para mi nivel.

Un saludo a todos.
Lo más complicado es crear el xml, luego las comunicaciones las puedes hacer con el curl.exe como hace paquito o utilizando las funciones curl que te suministra harbour. En _ tienes mucha información. Para las funciones curl en este foro y para curl.exe en internet o la propia IA te lo va a montar todo

Pero no intentes atacar todo de golpe, un consejo, pilla un xml de ejemplo que te suministra hacienda, y monta un mini programilla que lo envíe, esto son 4 líneas, y cuando verás que funciona te vas a tranquilizar, luego ya vas desarrollando y sobre todo, preguntando.

Salud!

Re: España: Normativa sancionadora sistemas informáticos

Posted: Thu Oct 03, 2024 11:23 am
by paquitohm
VictorCasajuana wrote: En el punto 2, para el ticketbai hay etiquetas que aparecen o no según el tipo de factura, creo que en verifactu será igual, ahí utilizas un .xml base para cada tipo de factura?
Víctor,

Utilizo el mismo .xml para todo. Pongo abajo un ejemplo.
La idea es que hay tres tipos de sustituciones: Etiquetas, valores simples y valores complejos (bloques). Las etiquetas apenas las utilizo, al menos en TBAI. No sé si en SII. Los valores complejos o bloques son nodos que se generan en otro punto porque suelen llevar repeticiones, por ejemplo el desglose de iva. Cuando un nodo, no se sustituye por nada, es decir, no tiene valor, o un bloque tampoco ha sido "expandido" entonces se quita el tag de inicio y final con una rutina de limpieza final.
El //** es mi forma comoda de poner comentarios en el .xml "prototipo", al final tambien son suprimidos.

Code: Select all | Expand

//-------------------------------------------------------------------------//
// Esquema base inicial es IDVersion TBAI 1.2
METHOD EsquemaXmlAlta()
Local c

/*
Tres tipos de sustituciones:
  %ETI_XXXXX%
  %VALOR_XXX%
  %BLOQUE_XX%

*/
TEXT INTO c
<?xml version="1.0" encoding="UTF-8"?>
//**<T:TicketBai xmlns:T="urn:ticketbai:emision" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ticketbai:emision ticketBaiV1-2.xsd ">
<T:TicketBai xmlns:T="urn:ticketbai:emision" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ticketbai:emision ticketBaiV12.xsd ">
//**<T:TicketBai xmlns:T="urn:ticketbai:emision" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd">
//**<T:TicketBai xmlns:T="urn:ticketbai:emision">
<Cabecera>
   <IDVersionTBAI>%VALOR_IDVERSIONTBAI%</IDVersionTBAI>
</Cabecera>
<Sujetos>
   <Emisor>
      <NIF>%VALOR_EMISOR_NIF%</NIF>
      <ApellidosNombreRazonSocial>%VALOR_EMISOR_APELLIDOSNOMBRERAZONSOCIAL%</ApellidosNombreRazonSocial>
   </Emisor>
   <Destinatarios>
      <IDDestinatario>
         <NIF>%VALOR_DESTINATARIO_NIF%</NIF>
         //** Al menos para Intracomunitarias
         <IDOtro>
            <CodigoPais>%VALOR_DESTINATARIO_CODIGOPAIS%</CodigoPais>
            <IDType>%VALOR_DESTINATARIO_IDTYPE%</IDType>
            <ID>%VALOR_DESTINATARIO_ID%</ID>
         </IDOtro>
         <ApellidosNombreRazonSocial>%VALOR_DESTINATARIO_APELLIDOSNOMBRERAZONSOCIAL%</ApellidosNombreRazonSocial>
         <CodigoPostal>%VALOR_DESTINATARIO_CODIGOPOSTAL%</CodigoPostal>
         <Direccion>%VALOR_DESTINATARIO_DIRECCION%</Direccion>
      </IDDestinatario>
   </Destinatarios>
   <VariosDestinatarios>N</VariosDestinatarios>
   <EmitidaPorTercerosODestinatario>%VALOR_EMITIDA_POR_TERCEROS_O_DESTINATARIO%</EmitidaPorTercerosODestinatario>
</Sujetos>
<Factura>
   <CabeceraFactura>
      <SerieFactura>%VALOR_SERIEFACTURA%</SerieFactura>
      <NumFactura>%VALOR_NUMFACTURA%</NumFactura>
      <FechaExpedicionFactura>%VALOR_FECHAEXPEDICIONFACTURA%</FechaExpedicionFactura>
      <HoraExpedicionFactura>%VALOR_HORAEXPEDICIONFACTURA%</HoraExpedicionFactura>
      <FacturaSimplificada>%VALOR_FACTURASIMPLIFICADA%</FacturaSimplificada>
      <FacturaEmitidaSustitucionSimplificada>%VALOR_FACTURAEMITIDASUSTITUCIONSIMPLIFICADA%</FacturaEmitidaSustitucionSimplificada>

//** RECTIFICATIVAS
      <FacturaRectificativa>
         <Codigo>%VALOR_FR1_CODIGO%</Codigo>
         <Tipo>%VALOR_FR1_TIPO%</Tipo>
//**     //-INICIO---  -  -  -  -  -  -  -  -  -  -  -  -  -  -//
//**     // _ solo se utilizaran cuando es una Factura Rectificativa por Sustitucion
         <ImporteRectificacionSustitutiva>
            <BaseRectificada>%VALOR_FR1_BASERECTIFICADA%</BaseRectificada>
            <CuotaRectificada>%VALOR_FR1_CUOTARECTIFICADA%</CuotaRectificada>
         </ImporteRectificacionSustitutiva>
//**     //-FIN------  -  -  -  -  -  -  -  -  -  -  -  -  -  -//
      </FacturaRectificativa>

      <FacturasRectificadasSustituidas>
         <IDFacturaRectificadaSustituida>
            <NumFactura>%VALOR_FR2_NUMFACTURA%</NumFactura>
            <FechaExpedicionFactura>%VALOR_FR2_FECHAEXPEDICIONFACTURA%</FechaExpedicionFactura>
          </IDFacturaRectificadaSustituida>
      </FacturasRectificadasSustituidas>

   </CabeceraFactura>
   <DatosFactura>
      <FechaOperacion>%VALOR_FECHAOPERACION%</FechaOperacion>
      <DescripcionFactura>%VALOR_DESCRIPCIONFACTURA%</DescripcionFactura>
      <DetallesFactura>
%BLOQUE_DETALLESFACTURA%
      </DetallesFactura>
      <ImporteTotalFactura>%VALOR_IMPORTETOTALFACTURA%</ImporteTotalFactura>
      <Claves>
         <IDClave>
            <ClaveRegimenIvaOpTrascendencia>%VALOR_CLAVEREGIMENIVAOPTRASCENDENCIA%</ClaveRegimenIvaOpTrascendencia>
         </IDClave>
      </Claves>
   </DatosFactura>
   <TipoDesglose>

      //** Espa ol
      <DesgloseFactura>
%BLOQUE_DESGLOSE_GENERAL_1%
      </DesgloseFactura>

      //** Extranjero
      <DesgloseTipoOperacion>

         //** Entrega de Bienes
         <Entrega>
%BLOQUE_DESGLOSE_GENERAL_2%
         </Entrega>

         //** Prestacion de Servicios
         //** Este no esta implementado. Habria que montar un poco de revolucion separando
         //** lineas de Entrega de Bienes de lineas de Prestacion de Servicios. Ademas al
         //** tener las mismas etiquetas valor los 3 BLOQUE_DESGLOSE_GENERAL, habria que
         //** hacer algo para que se distiguieran quien es quien
         <PrestacionServicios>
%BLOQUE_DESGLOSE_GENERAL_3%
         </PrestacionServicios>

      </DesgloseTipoOperacion>

   </TipoDesglose>
</Factura>
<HuellaTBAI>
   <EncadenamientoFacturaAnterior>
      <SerieFacturaAnterior>%VALOR_SERIEFACTURAANTERIOR%</SerieFacturaAnterior>
      <NumFacturaAnterior>%VALOR_NUMFACTURAANTERIOR%</NumFacturaAnterior>
      <FechaExpedicionFacturaAnterior>%VALOR_FECHAEXPEDICIONFACTURAANTERIOR%</FechaExpedicionFacturaAnterior>
      <SignatureValueFirmaFacturaAnterior>%VALOR_SIGNATUREVALUEFIRMAFACTURAANTERIOR%</SignatureValueFirmaFacturaAnterior>
   </EncadenamientoFacturaAnterior>
   <Software>
      <LicenciaTBAI>%VALOR_SOFTWARE_LICENCIATBAI%</LicenciaTBAI>
      <EntidadDesarrolladora>
         <NIF>%VALOR_SOFTWARE_NIF%</NIF>
      </EntidadDesarrolladora>
      <Nombre>%VALOR_SOFTWARE_NOMBRE%</Nombre>
      <Version>%VALOR_SOFTWARE_VERSION%</Version>
   </Software>
//** OPCIONAL   <NumSerieDispositivo>%VALOR_NUMSERIEDISPOSITIVO%</NumSerieDispositivo>
</HuellaTBAI>
</T:TicketBai>
ENDTEXT

RETURN c
*

Re: España: Normativa sancionadora sistemas informáticos

Posted: Fri Oct 04, 2024 11:33 am
by Garbi
Por donde voy :
Generación de la huella conseguido.
Fichero xml he cogido un ejemplo de los pdf's y he creado el fichero.

He estado revisando curl.exe que viene en windows para hacer el envio del fichero xml, pero no se como hacerlo.
Por favor,
¿podríais indicarme como enviar este ejemplo y como saber el resultado del envio?

Supongo que para las pruebas de envio no hace falta incluir la huella o si hace falta

Muchas gracias.

Re: España: Normativa sancionadora sistemas informáticos

Posted: Fri Oct 04, 2024 3:55 pm
by paquitohm
Aquí puse un ejemplo de uso de curl.exe https://forums.fivetechsupport.com/view ... 73#p220423, pero el siguiente a este es un ejemplo que parece más completo

Re: España: Normativa sancionadora sistemas informáticos

Posted: Mon Oct 07, 2024 11:01 am
by Garbi
Hola, he estado probando con curl.exe con esta sentencia :

Code: Select all | Expand

curl -d 1.xml https://prewww2.aeat.es/ -o respuesta.html
La respuesta es 404, no se si seria correcto hacerlo así o me indicáis alguna mejora.
No se si https://prewww2.aeat.es/ es correcto o tengo que cambiarlo por otra dirección, porque al darme error 404 es como que no existe la pagina y me pareció entender en un mensaje de Víctor que se debía enviar a esa dirección.

Voy caminando lento pero avanzado un paso detrás de otro.

Gracias de antemano.

Re: España: Normativa sancionadora sistemas informáticos

Posted: Mon Oct 07, 2024 11:40 am
by VictorCasajuana
Garbi wrote:Hola, he estado probando con curl.exe con esta sentencia :

Code: Select all | Expand

curl -d 1.xml https://prewww2.aeat.es/ -o respuesta.html
La respuesta es 404, no se si seria correcto hacerlo así o me indicáis alguna mejora.
No se si https://prewww2.aeat.es/ es correcto o tengo que cambiarlo por otra dirección, porque al darme error 404 es como que no existe la pagina y me pareció entender en un mensaje de Víctor que se debía enviar a esa dirección.

Voy caminando lento pero avanzado un paso detrás de otro.

Gracias de antemano.
Hola.

A mi me ha funcionado esta url: https://prewww1.aeat.es/wlpl/TIKE-CONT/ ... ifactuSOAP

Re: España: Normativa sancionadora sistemas informáticos

Posted: Tue Oct 08, 2024 7:56 am
by Garbi
Hola buenos días,

He probado con

Code: Select all | Expand

curl -d 1.xml  https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP -o respuesta.html
Y la respuesta que obtengo respuesta.html esta en blanco.

Si pulso directamente sobre el enlace me pide un certificado.

pongo el fichero 1.xml por si me estoy equivocando en algo :

1.xml

Code: Select all | Expand

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:sum="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd"
    xmlns:sum1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd"
    xmlns:xd="http://www.w3.org/2000/09/xmldsig#">
    <soapenv:Header />
    <soapenv:Body>
        <sum:RegFactuSistemaFacturacion>
            <sum1:Cabecera>
                <sum1:ObligadoEmision>
                    <sum1:NombreRazon>XXXXX</sum1:NombreRazon>
                    <sum1:NIF>AAAA</sum1:NIF>
                </sum1:ObligadoEmision>
            </sum1:Cabecera>
            <sum:RegistroFactura>
                <sum:RegistroAlta>
                    <sum1:IDVersion>1.0</sum1:IDVersion>
                    <sum1:IDFactura>
                        <sum1:IDEmisorFactura>AAAA</sum1:IDEmisorFactura>
                        <sum1:NumSerieFactura>12345</sum1:NumSerieFactura>
                        <sum1:FechaExpedicionFactura>13-09-2024</sum1:FechaExpedicionFactura>
                    </sum1:IDFactura>
                    <sum1:NombreRazonEmisor>XXXXX</sum1:NombreRazonEmisor>
                    <sum1:TipoFactura>F1</sum1:TipoFactura>
                    <sum1:DescripcionOperacion>Descripc</sum1:DescripcionOperacion>
                    <sum1:Destinatarios>
                        <sum1:IDDestinatario>
                            <sum1:NombreRazon>YYYY</sum1:NombreRazon>
                            <sum1:NIF>BBBB</sum1:NIF>
                        </sum1:IDDestinatario>
                    </sum1:Destinatarios>
                    <sum1:Desglose>
                        <sum1:DetalleDesglose>
                            <sum1:ClaveRegimen>01</sum1:ClaveRegimen>
                            <sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
                            <sum1:TipoImpositivo>4</sum1:TipoImpositivo>
                            <sum1:BaseImponibleOimporteNoSujeto>10</sum1:BaseImponibleOimporteNoSujeto>
                            <sum1:CuotaRepercutida>0.4</sum1:CuotaRepercutida>
                        </sum1:DetalleDesglose>
                        <sum1:DetalleDesglose>
                            <sum1:ClaveRegimen>01</sum1:ClaveRegimen>
                            <sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
                            <sum1:TipoImpositivo>21</sum1:TipoImpositivo>
                            <sum1:BaseImponibleOimporteNoSujeto>100</sum1:BaseImponibleOimporteNoSujeto>
                            <sum1:CuotaRepercutida>21</sum1:CuotaRepercutida>
                        </sum1:DetalleDesglose>
                    </sum1:Desglose>
                    <sum1:CuotaTotal>21.4</sum1:CuotaTotal>
                    <sum1:ImporteTotal>131.4</sum1:ImporteTotal>
                    <sum1:Encadenamiento>
                        <sum1:RegistroAnterior>
                            <sum1:IDEmisorFactura>AAAA</sum1:IDEmisorFactura>
                            <sum1:NumSerieFactura>44</sum1:NumSerieFactura>
                            <sum1:FechaExpedicionFactura>13-09-2024</sum1:FechaExpedicionFactura>
                            <sum1:Huella>HuellaRegistroAnterior</sum1:Huella>
                        </sum1:RegistroAnterior>
                    </sum1:Encadenamiento>
                    <sum1:SistemaInformatico>
                        <sum1:NombreRazon>SSSS</sum1:NombreRazon>
                        <sum1:NIF>NNNN</sum1:NIF>
                        <sum1:NombreSistemaInformatico>NombreSistemaInformatico</sum1:NombreSistemaInformatico>
                        <sum1:IdSistemaInformatico>77</sum1:IdSistemaInformatico>
                        <sum1:Version>1.0.03</sum1:Version>
                        <sum1:NumeroInstalacion>383</sum1:NumeroInstalacion>
                        <sum1:TipoUsoPosibleSoloVerifactu>N</sum1:TipoUsoPosibleSoloVerifactu>
                        <sum1:TipoUsoPosibleMultiOT>S</sum1:TipoUsoPosibleMultiOT>
                        <sum1:IndicadorMultiplesOT>S</sum1:IndicadorMultiplesOT>
                    </sum1:SistemaInformatico>
                    <sum1:FechaHoraHusoGenRegistro>2024-09-13T19:20:30+01:00</sum1:FechaHoraHusoGenRegistro>
                    <sum1:TipoHuella>01</sum1:TipoHuella>
                    <sum1:Huella>Huella</sum1:Huella>
                </sum:RegistroAlta>
            </sum:RegistroFactura>
        </sum:RegFactuSistemaFacturacion>
    </soapenv:Body>
</soapenv:Envelope>
¿Alguna sugerencia?
Se supone que ese enlace es para hacer pruebas,¿Verdad?

Re: España: Normativa sancionadora sistemas informáticos

Posted: Tue Oct 08, 2024 8:30 am
by Victor Casajuana Mas
Garbi wrote:Hola buenos días,

He probado con

Code: Select all | Expand

curl -d 1.xml  https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP -o respuesta.html
Y la respuesta que obtengo respuesta.html esta en blanco.

Si pulso directamente sobre el enlace me pide un certificado.

pongo el fichero 1.xml por si me estoy equivocando en algo :

1.xml

Code: Select all | Expand

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:sum="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd"
    xmlns:sum1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd"
    xmlns:xd="http://www.w3.org/2000/09/xmldsig#">
    <soapenv:Header />
    <soapenv:Body>
        <sum:RegFactuSistemaFacturacion>
            <sum1:Cabecera>
                <sum1:ObligadoEmision>
                    <sum1:NombreRazon>XXXXX</sum1:NombreRazon>
                    <sum1:NIF>AAAA</sum1:NIF>
                </sum1:ObligadoEmision>
            </sum1:Cabecera>
            <sum:RegistroFactura>
                <sum:RegistroAlta>
                    <sum1:IDVersion>1.0</sum1:IDVersion>
                    <sum1:IDFactura>
                        <sum1:IDEmisorFactura>AAAA</sum1:IDEmisorFactura>
                        <sum1:NumSerieFactura>12345</sum1:NumSerieFactura>
                        <sum1:FechaExpedicionFactura>13-09-2024</sum1:FechaExpedicionFactura>
                    </sum1:IDFactura>
                    <sum1:NombreRazonEmisor>XXXXX</sum1:NombreRazonEmisor>
                    <sum1:TipoFactura>F1</sum1:TipoFactura>
                    <sum1:DescripcionOperacion>Descripc</sum1:DescripcionOperacion>
                    <sum1:Destinatarios>
                        <sum1:IDDestinatario>
                            <sum1:NombreRazon>YYYY</sum1:NombreRazon>
                            <sum1:NIF>BBBB</sum1:NIF>
                        </sum1:IDDestinatario>
                    </sum1:Destinatarios>
                    <sum1:Desglose>
                        <sum1:DetalleDesglose>
                            <sum1:ClaveRegimen>01</sum1:ClaveRegimen>
                            <sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
                            <sum1:TipoImpositivo>4</sum1:TipoImpositivo>
                            <sum1:BaseImponibleOimporteNoSujeto>10</sum1:BaseImponibleOimporteNoSujeto>
                            <sum1:CuotaRepercutida>0.4</sum1:CuotaRepercutida>
                        </sum1:DetalleDesglose>
                        <sum1:DetalleDesglose>
                            <sum1:ClaveRegimen>01</sum1:ClaveRegimen>
                            <sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
                            <sum1:TipoImpositivo>21</sum1:TipoImpositivo>
                            <sum1:BaseImponibleOimporteNoSujeto>100</sum1:BaseImponibleOimporteNoSujeto>
                            <sum1:CuotaRepercutida>21</sum1:CuotaRepercutida>
                        </sum1:DetalleDesglose>
                    </sum1:Desglose>
                    <sum1:CuotaTotal>21.4</sum1:CuotaTotal>
                    <sum1:ImporteTotal>131.4</sum1:ImporteTotal>
                    <sum1:Encadenamiento>
                        <sum1:RegistroAnterior>
                            <sum1:IDEmisorFactura>AAAA</sum1:IDEmisorFactura>
                            <sum1:NumSerieFactura>44</sum1:NumSerieFactura>
                            <sum1:FechaExpedicionFactura>13-09-2024</sum1:FechaExpedicionFactura>
                            <sum1:Huella>HuellaRegistroAnterior</sum1:Huella>
                        </sum1:RegistroAnterior>
                    </sum1:Encadenamiento>
                    <sum1:SistemaInformatico>
                        <sum1:NombreRazon>SSSS</sum1:NombreRazon>
                        <sum1:NIF>NNNN</sum1:NIF>
                        <sum1:NombreSistemaInformatico>NombreSistemaInformatico</sum1:NombreSistemaInformatico>
                        <sum1:IdSistemaInformatico>77</sum1:IdSistemaInformatico>
                        <sum1:Version>1.0.03</sum1:Version>
                        <sum1:NumeroInstalacion>383</sum1:NumeroInstalacion>
                        <sum1:TipoUsoPosibleSoloVerifactu>N</sum1:TipoUsoPosibleSoloVerifactu>
                        <sum1:TipoUsoPosibleMultiOT>S</sum1:TipoUsoPosibleMultiOT>
                        <sum1:IndicadorMultiplesOT>S</sum1:IndicadorMultiplesOT>
                    </sum1:SistemaInformatico>
                    <sum1:FechaHoraHusoGenRegistro>2024-09-13T19:20:30+01:00</sum1:FechaHoraHusoGenRegistro>
                    <sum1:TipoHuella>01</sum1:TipoHuella>
                    <sum1:Huella>Huella</sum1:Huella>
                </sum:RegistroAlta>
            </sum:RegistroFactura>
        </sum:RegFactuSistemaFacturacion>
    </soapenv:Body>
</soapenv:Envelope>
¿Alguna sugerencia?
Se supone que ese enlace es para hacer pruebas,¿Verdad?
Has de hacer la petición con un certificado. Lo tendrás que poner como parámetro en el. Curl.exe
Pero no sé cómo se hace, no utilizo el curl.exe

Enviado desde mi motorola edge 20 mediante Tapatalk

Re: España: Normativa sancionadora sistemas informáticos

Posted: Tue Oct 08, 2024 8:54 am
by Garbi
¿El certificado es el de la empresa. Tengo que pedirle a administración que me pasen el certificado de la empresa para poder hacer los envíos o es otro tipo de certificado?
En el foro he visto algún hilo de como sacar el certificado para usarlo.

¿El certificado hay que pasarlo como parámetro o para prefirmar el fichero xml?

Gracias por vuestra ayuda

Re: España: Normativa sancionadora sistemas informáticos

Posted: Tue Oct 08, 2024 9:15 am
by paquitohm
Garbi wrote:¿El certificado es el de la empresa. Tengo que pedirle a administración que me pasen el certificado de la empresa para poder hacer los envíos o es otro tipo de certificado?
En el foro he visto algún hilo de como sacar el certificado para usarlo.

¿El certificado hay que pasarlo como parámetro o para prefirmar el fichero xml?

Gracias por vuestra ayuda
El certificado... Vale cualquiera. Para hacer las pruebas se puede utilizar uno de carácter personal
Los xml de VF no hay que firmarlos.
Pero para el envio con curl.exe si se ha de pasar un certificado. En mi caso, tal como yo lo utilizo, hay que transformarlo a formato .pem desde el formato .pfx o .p12. Quiza haya otra forma de usarlo sin transformarlo a .pem: Lo desconozco.

Te copio aqui debajo el convert.bat que utilizo yo para convertir de .pfx a .pem: Requiere openssl.exe

Code: Select all | Expand

cls
@IF _%1_ == __ GOTO SINTAXIS
@IF _%2_ == __ GOTO SINTAXIS
@IF NOT EXIST %1.pfx GOTO NOEXISTE

@set file1_pem= %1.pem
@set file2_pem= %1_key.pem

openssl pkcs12 -in %1.pfx -out %file1_pem% -clcerts -nokeys -passin pass:%2
@IF %ERRORLEVEL% EQU 0 GOTO :SIGUE1
@GOTO FALLOENCONVERSION

:SIGUE1
openssl pkcs12 -in %1.pfx -out %file2_pem% -nocerts -nodes -passin pass:%2
@IF %ERRORLEVEL% EQU 0 GOTO :OK
@GOTO FALLOENCONVERSION


:SINTAXIS

@Echo 
@Echo Conversion de certificados .pfx a formato .pem
@Echo 
@Echo Sintaxis: Convert NOMBRE_FICHERO_PFX_SIN_EXTENSION CONTRASE¥A_CERTIFICADO
@Echo 
@Echo Ejemplo:  Convert "certificado formato pfx de la empresa tal"
@Echo 
@Echo La conversión genera dos archivos .pem. Ambos son necesarios.
@Echo 
@Echo No olvide encerrar el nombre del fichero pfx entre comillas dobles
@Echo sobre todo si el nombre contiene espacios

@GOTO FIN

:NOEXISTE
@Echo 
@Echo No existe el archivo %1 o paselo sin extension
@GOTO FIN

:FALLOENCONVERSION
@rem Borrar posibles archivos con tamaño cero
@if exist %file1_pem% del %file1_pem%
@if exist %file2_pem% del %file2_pem%

@Echo 
@Echo ** ERROR **  
@Echo Hubo algun fallo y no se pudo generar los archivos .pem
@Echo Revise la contraseña introducida %2
@GOTO FIN

:OK
@Echo 
@Echo Conversion realizada con éxito !!

:FIN