Cita:
Copia y pega uno de los ejemplos del fichero SII_Descripcion_ServicioWeb_v0.5_es_es.pdf, tal cual, le pones datos de verdad, y lo envías. Recibirás la respuesta de inmediato (a menos que estén de obras, como el miércoles y jueves pasados :D ). Saludos, |
Hola a tod@s.
He tenido esto unos días aparcado y ahora estoy tratando de ultimar (por lo menos) el tema de las facturas emitidas. Cuando hay que indicar el código de pais en el caso de un cliente extranjero ¿hay que poner forzosamente el número?, que por cierto no sé de dónde se saca, ¿no hay forma de poner las letras del país? o en su defecto, ¿hay alguna tabla que los relacione? Saludos |
Según la página 63 del documento 'SII_Descripcion_ServicioWeb_v0.5_es_es.pdf':
'CodigoPais -> Código del país asociado contraparte de la operación (cliente) de facturas expedidas -> Alfanumérico(2) (ISO 3166-1 alpha-2 codes) L17' Y dentro del contenido 'L17 -> Código de País' (página 117) te aparecen las letra y la columna con el nombre país. Al menos para las intracomunitarias, el código de país en .NET aparece con el código de letra de la página 117 (por ejemplo 'CountryMiembroType.DE' para Alemania). |
Cita:
Para los que lo hacemos en VB.NET, esta claro que el .xml a enviar empieza o comprende el nodo <siiLR:SuministroLRFacturasEmtidas>, y que tiene que tener la siguiente estructura para poder ser enviado a AEAT: Código:
<siiLR:SuministroLRFacturasEmitidas> Despues hemos de Deserializar dicho xml para asociarlo/cargarlo en un objeto tipo SuministroLRFacturasEmitidas que es el que enviaremos a AEAT (en mi caso Dim testF As New SuministroLRFacturasEmitidas) Pero, y aquí viene el problema, en el xml hay 2 espacios de nombres: siiLR y sii que de alguna manera hay que indicar que se tengan en cuenta. yo he intentado tu solucion bartag, es decir: Código:
Dim x As New XmlSerializer(testF.GetType, "https://w**2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd") ', "https://w**2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd") Que puede estar mal?. Si a ti te funciona, ¿puedes poner el codigo mas amplio? Observo que en Dim x As New XmlSerializer(testF.GetType, "https://w**.agenciatributaria..., repites la misma cadena, aunque supongo que lo correcto como segunda cadena seria poner: https://**2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd, lo he probado tambien asi, pero sigue sin funcionar. Muchas gracias por tu ayuda P.D. donde pongo ** me refiero a una enlace (No tengo permiso para poner enlaces de forma normal) |
1 Archivos Adjunto(s)
Te pongo el código que utilizo. Básicamente lo que hace es tomar un archivo xml y lo envía. Debes por favor cumplimentar previamente los campos de dicho archivo pues en caso contrario te dará errores de validación.
Código:
' ---------------------------------------------------------------------------------------- Con esto, se toma la factura del archivo (fíjate que solamente tiene el nodo '<SuministroLRFacturasEmitidas>' y nada del encabezado SOAP para que no dé error al aplicar el Deserialize) y nos la convierte en un objeto serializado donde podemos acceder a los campos de la clase antes de enviar si lo deseamos; en caso contrario se envía y la propia llamada se encarga de insertar las cabeceras, los namespaces, etc. |
Cita:
Hola bartag. Muchas gracias por tu rapida respuesta y tu aparte de codigo. Me habia encallado en ese tema y se supone que mañana debo hacer pruebas reales. Me ha clarificado bastante tu codigo despues de analizarlo con detenimiento, y sobre todo tu frase “y la propia llamada se encarga de insertar las cabeceras, los namespaces, etc.”. Finalmente he conseguido enviar y recibir respuesta de AEAT, aunque en la respuesta no recibo el esperado XML sino el siguiente texto:-pongo solo la parte inicial- Código:
El tipo de contenido text/html del mensaje de respuesta no coincide con el tipo de contenido del enlace (text/xml; charset=utf-8). Si usa un codificador personalizado, asegúrese de que el método IsContentTypeSupported se implemente correctamente. Los primeros 1024 bytes de la respuesta fueron: '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" No se si tu tambien has pasado por ese punto. Salu2 |
Cita:
CountryMiembroType:='DE' o algo parecido |
Error al enviar
Hola a tod@s, en primer lugar muchas gracias por la ayuda que estais suministrando a la comunidad de afectados por el señor Montoro.
Esta maña me disponia a hacer el envio de una factura de prueba y me salta el siguiente error: Código:
Codigo[-913].UNSUCCESSFUL EXECUTION CAUSED BY DEADLOCK OR TIMEOUT. REASON CODE 00C900BA, TYPE OF RESOURCE 00002006, AND RESOURCE NAME DBBUIDEN.TSBUIDEN.00000000. SQLCODE=-913, SQLSTATE=57033, DRIVER=4.19.57 Gracias. |
Cita:
Un SAludo. |
Cita:
Un saludo. |
Cita:
Por otro lado el servidor de la aeat no está muy fino, este sábado he estado haciendo pruebas y me daba errores en una de cada 2 ó 3 veces, no exactamente ese pero claramente era un problema del servidor. Saludos |
Cita:
Ahora no estoy en casa. Esta noche te paso el archivo por si pudiera venir de ahí el error. |
1 Archivos Adjunto(s)
Subo el archivo App.config.
Saludos |
Como siempre “Muchas gracias” bartag por tu aporte y rápida respuesta.
Voy a mirarela en detalle y entenderla, pues veo que tut tienes tres <binding> diferentes. Ya veo que uno de ellos, el siiBinding2, en realidad es un elemento sin contenido, que se ha quedado ahí, y probablemente tambien el siiBinding que es el que se crea inicialmente. Ya habia buscado posibles soluciones y lo que tu pones coincide con alguna de las soluciones que halle, , que es crear el <customBinding> <binding name="siiBinding"> <textMessageEncoding messageVersion="Soap11" /> <httpsTransport /> </binding> </customBinding> Para definirle el protocolo Soap11. Hos se supone que ya iba a tener el certificado y hacer pruebas reales, pero no lo tendre hasta el miercoles. Ya te diré como va Salu2 |
SII Pruebas
Me presento soy Carlos y soy contable, siguiendo las 13 paginas de este foro he incluido los ejemplos y no tengo una respuesta válida por parte de AEAT. por último he copiado intergramente el ejemplo abajo indicado y recibo la Respuesta del servidor tambien fallida, ver abajo incluida.
¿podéis ayudarme a facilitarme un ejemplo que os haya funcionado, para ver posteriormente las consultas a los libros. 8.1.1.1.Ejemplo mensaje XML de alta, en la pagina 132 de 180 del SII – Suministro Inmediato de Información Autor : AEAT Fecha: 27/01/2017 Versión: 0.5 Gracias anticipadas por vuestra comprensión y colaboración. |
Cita:
Pruébalo y publica la respuesta que recibes. Saludos, |
Cita:
|
SII Pruebas
1º- Muchas gracias por vuestros comentarios
2º- Vuelvo a tomar el 8.1.1.1, y me incluyo los datos reales. 3º- Aseguro el Certificado 4º- La Respuesta del Servidor es exactamente la misma; de nuevo la adjunto: No se que puede fallarme.. De nuevo gracias anticipadas por vuestra colaboración. |
Cita:
Sino tendrás que tener un certificado distinto para cada empresa a presentar. Un Saludo. |
Gracias Keys.
Alguno que lo este haciendo en C#, lo tengo hecho en VB y me funciona, lo quiero pasar a C# y tengo un problema al redimensionar los arrays, en VB con Redim no tenia problemas pero en C# no me es posible redimensionar. Cita:
Saludos |
Error JAVAX.SERVLET.SERVLETEXCEPTION
Gracias anticipadas por vuestra colaboración.
Estoy empezando a trabajar con el proyecto SII . Estoy probando las demos que habéis realizado. Y cuando intento enviar los datos Me sale este error. JAVAX.SERVLET.SERVLETEXCEPTION Alguien sabe el motivo. Gracias |
Cita:
Si a alguien le pase que pregunte que un poco largo. Gracias |
Suministro de cobros
Hola a todos, ¿ alguien ha conseguido enviar cobros ?. Yo lo hago a través del WSDL importer construyendo el objeto, en el XML que se genera obtengo:
-<Cobros xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd"> -<Cobro xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd"> <Fecha xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">01-01-2017</Fecha> <Importe xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">20</Importe> <Medio xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">01</Medio> <Cuenta_O_Medio xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">ES00000000????</Cuenta_O_Medio> </Cobro> </Cobros> En hacienda me dicen que los xsd que he marcado en rojo están intercambiados, o sea, en Cobros ha de ser SuministroLR.xsd y en Cobro SuministroInformacion.xsd. ¿ A alguien le ha pasado esto ? Por otro lado, ¿ Sabeis como quitar las etiquetas xmlns de cada nodo e incluirlas solo en la etiqueta Envelope ? Saludos, |
En los libros de cobros como los de pagos. El delphi no genera bien el fichero, falta un xmlns en uno de los nodos y la aeat genera un error. Para solucionarlo he tenido que cambiar el fichero XML por codigo para incluirlo. En concreto son el nodo <Cobro> y <Pago>.
en Cobro hay que poner esto. <Cobro xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd"> en pago hay que poner esto. <Pago xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd"> Los xmlns no se pueden ni se deben quitar ya que como no esten hacienda da error. En concreto en los cobros y pagos el error es que faltaba uno. Se me olvidada. El nodo <cobros> y <pagos> no lleva xmlns Igual es esto l oque te esta pasando. |
Gracias por tu respuesta, es exactamente lo que me está pasando. ¿Y como lo cambias ? Tienes algún ejemplo?
Saludos |
Lo que hago es en el objeto THTTPTRIO en el evento OnbeforeExecute capturar el xml y cambiarlo a mano.
Perdona el texto no sale bien en el codigo. es así Fichero.Strings[i] := StringReplace(Fichero.Strings[i],'<Cobro>','<Cobro xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">', [rfReplaceAll]); Por cierto esto tambien te sirve para guardar el xml en una carpeta y poder ver lo que estás enviando. |
Yo sigo pensando, y haciendo, que es mejor olvidarse de los objetos y montar los xml a mano.
No es prácticamente código y terminas obviando todos esos detalles tontos. El control sobre el resultado es completo. Idem con las respuestas. Y de carambola no generas dependencias de librerías externas al programa. |
Construir un XML y olvidarse de las clases
Cita:
No soy un gran experto en Delphi aunque me defiendo bastante bien, pero no comprendo el interés que hay con tantos líos de clases y dependencias. Llevas toda la razón, El control sobre el resultado es completo. Y el envío a la AEAT me funciona a la perfección tanto con facturas emitidas como recibidas. Por lo menos de momento :) |
Gracias Keys, funciona perfectamente !!
|
Hola de nuevo.
¿Alguien ha resuelto las facturas de venta por alquileres de locales comerciales? No soy capaz de crear los objetos. Me da error en esta línea:
Gracias y un saludo |
Te pongo un ejemplo:
SetLength(ADatosInmueble, Inmuebles.RowsFetched); Inmuebles.First; for L := 0 to Inmuebles.RowsFetched - 1 do Begin ADatosInmueble[L]:=DetalleInmueble.Create; ADatosInmueble[L].SituacionInmueble:=SituacionInmuebleType(InmueblesSITUACION.Value - 1); ADatosInmueble[L].ReferenciaCatastral:=InmueblesREFCATASTRAL.Value; Inmuebles.Next; End; ARegLRFacturasEmitidas[i].FacturaExpedida.DatosInmueble:=ADatosInmueble; |
Gracias por tu pronta respuesta.
Me da errores al intentar implantar tu ejemplo. ¿Cómo has declarado el array ADatosInmueble? Gracias y un saludo Edito: Ya lo he resuelto. Pero yo pregunto... ¿cómo averiguas que hay que crear un array con los valores para asignarlos? |
Y vuelvo con el tema....
¿Habéis probado a pasar una factura de alquiler de local de negocio sin referencia catastral? a mi me da error porque dice que no está informado la referencia catastral. :confused::confused: Saludos |
Cita:
|
En las claves regimen especialOtrascendencia 13, 14, 15. Es obligatorio la referencia catastral a no ser que en situación del inmueble tengas la clave 3 situaciones anteriores pero sin referencia catastral
Un Saludo. |
Cita:
¿Podría alguien hacer una prueba a ver si estoy equivocado o algo falla? Gracias y un saludo |
Hola. Tienes razón. Si pones las claves 13, 14, y 15. Obliga a poner la referencia aunque la situación sea 3. Si te fijas en la descripcion pone que si es 13,14,15 son obligatorios los dos campos.
Creo que es una consulta para enviar a Hacienda. |
Según sus FAQ:
http://www.agenciatributaria.es/AEAT...negocio_.shtml Cita:
Pero igualmente estoy haciendo pruebas usando 4 combinaciones: 13-con ref, 13-sin ref, 14-con ref y 14-sin ref Y me devuelve un error de validación general, no llega a pasar el filtro general de validación contra el xsd. |
Respuesta de hacienda sobre las referencias catastrales.
este tema se soluciona en la próxima versión publicada (0.6) que entra en vigor el 15 de marzo. |
La verdad es que tenía toda la pinta de ser algo así.
|
La franja horaria es GMT +2. Ahora son las 12:16:01. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi