buenos días a todos !
Soy Jesús (alias Seccion31 alias seccion_31) menciono dos alias porque me ha sido imposible recuperar mi registro de 2004... En fin... agradecer a todos los que estais en el foro vuestra importante labor, y comentar que SI, que yo también soy uno de los afectados de la SII. Estoy absolutamente perdido con el SOAP... y tengo un monton de dudas. Querria compartir con vosotros alguna de ellas: ¿ Solo hay que enviar facturas emitdas / recibidas? ¿Es posible enviar los registros de facturas emitidas / recibidas en formato Excel (ó XML) desde la web de la AEAT? ¿Sabeis si es posible hacer pruebas? He preguntado a hacienda via email, pero todavía no me han dicho nada. En fin... vamos a empezar con este tema, y lo que vaya experimentando os lo comunicare. Saludos cordiales Jesús |
Hola
¿ Solo hay que enviar facturas emitdas / recibidas? En prinicipio hay que enviar cuatro libros Libro registro de Facturas Expedidas. Libro registro de Facturas Recibidas. Libro registro de Bienes de Inversión. Libro registro de Determinadas Operaciones Intracomunitarias. Es una especie de modelo 340. ¿Es posible enviar los registros de facturas emitidas / recibidas en formato Excel (ó XML) desde la web de la AEAT? No. Solo se pueden enviar mediante un fichero xml con la estructura definida por la aeat. ¿Sabeis si es posible hacer pruebas? Se supone que si se pueden hacer pruebas pero yo por lo menos no he llegado a ese punto, estoy en el paso de generar lo xml. En la página de la AEAT tienes mas información sobre el modelo y las especificaciones técnicas. Te pongo el enlace. http://www.agenciatributaria.es/AEAT...VA__SII_.shtml |
Cita:
Saludos |
hola !
si es posible hacer pruebas.... he puesto en marcha el excelente ejemplo que habéis posteado. Lo he modificado levemente para encontrar los certificados digitales instalados. y SI: hay un puerto para hacer pruebas, que es el que estoy usando... pero me devuelve este error: código 102. Server returned wrong cipher suite for sesión ... y ahí estamos. y ahora sin tocar nada, me da este error: El titular en la cabecera NO esta identificado... NIF tu NIF ... etc... lo cual es una buena señal. Pienso (pero no tengo mucha ida) que una vez establecida la conexión con el servidor (es decir, que el ejemplo funcione y responda algo lo que sea....) lo mas simple seria buscar la función (si es que existe) que envía el XML y esperar el resultado. Edito de nuevo: Visto lo visto básicamente el problema esta en saber que datos hay que enviar y donde localizarlos en el array: ARegistroLRFacturasEmitidas Con lo que no haría falta el XML y aunque parezca mentira yo creo que seria mas cómodo... (creo). |
Hola. Ya he llegado al punto de poder enviar el fichero, he seguido el ejemplo que han subido pero a la hora de hacer llamar a la función de envío me sale este error.
'Received content of invalid Content-Type setting: text/html - SOAP expects "text/xml" Me pasa tanto en mi proyecto como en el de ejemplo. No se por que puede ser, alguien me puede ayudar. He probado con los datos que vienen en el ejemplo y con estos, pero en los dos casos me devuelve el mismo error. defWSDL = 'https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInmediatoInfo.wsdl'; defURL = 'https://www1.agenciatributaria.gob.es/wlpl/SSII-FACT/ws/SiiFactV1PSOAP'; defSvc = 'siiService'; defPrt = 'SuministroFacturasPruebas'; Por otra parte el poder generar el xml directamente puede ser una buena opción ya que la AEAT sacará una opción de poder enviar el xml a través de la página web de ellos sin web services ni nada. Será para empresas que tienen poco volumen de facturas. |
¿ seguro que sacara esa opción para enviar el XML (y cuando?) ?
Modificando el ejemplo anterior, estoy a punto de poder completar el envío de una factura.... pero cuando te falta algún campo los errores que saca son imprecisos. Ahora mismo me dice que me falta la "contraparte" pero la estoy enviando, ya creo tenerlo bastante completo.... en cuanto lo complete os lo posteare, a ver si lo consigo. En mi caso si voy bien haría las dos cosas... |
Cita:
|
Cita:
Received content of invalid Content-Type setting: text/html - SOAP expects "text/xml Aunque aun no he realizado la llamado con el certificado... Aun así gracias a todos por la informacion!! |
Tienes razón. Es problema del certificado, estaba seleccionando uno que estaba caducado. Poniendo otro el error que me genera ya es otro. He detectado que si no se hace la parte del certificado, a la hora de hacer la llamada el mismo te muestra una ventana para seleccionar el certificado.
En la documentación de hacienda pone lo siguiente : Suministro Inmediato de Información: modos de envío 1. Envío inmediato, de forma continua mediante “web service”. Desde el propio sistema de facturación se envía la información (agrupada según sus ciclos de proceso), con un margen de pocos días desde la expedición de la factura. La comunicación es automática “máquina a máquina” 2. Cumplimentación de un “formulario web” para aquellos de un “formulario web” para aquellos sujetos pasivos que realizan muy pocas operaciones. Ya no se si lo cumpliran o no. En cuanto la forma de generar el fichero xml, no veo la forma de que el delphi te genere con Xml DataBinding una estructura a través de dos ficheros xsd que es como lo da hacienda. |
Bueno, este es mi código que no funciona:
da error 4102: falta contraparte. Llevo repasándolo bastantes horas y nada. Luego llamo a la AEAT: Pero... ¿podeis x favor, decirme como haceis para enviar el XML? porque viendo el tiempo que estoy perdiendo con esto, puedo intentar componer el XML. hay unas pocas constantes que hay que añadir, e iria justo debajo de: setCERTIFICADO(CERTIFICADO); CONST _PRESENTADOR='xxxxx'; _NIF_EMISOR='xxxxxxx'; _NIF_CLI='xxxxxx'; _NOMBRE_CLI='xxxxxx'; Código:
try |
Cita:
Saludos a todos. Soy un poco nuevo en este tema, pero estoy viendo que se trata de dos operaciones diferentes: 1. Crear el XML según normas de la AEAT en el documento SII_Descripcion_ServicioWeb.pdf 2. Enviarlo por Webservice El primer paso no tiene ningún problema. Hay varias maneras de hacerlo. Es muy entretenido pero no es difícil. Ahora bien, una vez tienes el XML, ¿cuáles son los pasos para enviarlo? El proceso de Delphi con el "WSDL Importer" funciona perfectamente, incluso en Delphi 7. Te crea el SuministroInmediatoInfo.pas con todas las funciones que puedes llamar. ¡Fantástico! Pero eso no lo soluciona todo. ¿Qué viene después? ¿Hay que usar un componente SOAP de Delphi para el envío o no es necesario? ¿Cómo hay que tratar lo del certificado digital? ¿Y el NIF que tiene que ser validado contra la Base de Datos Centralizada de la AEAT? ¿Habrá alguien por ahí tan generoso que pueda explicarlo paso a paso? Muchas gracias. |
Hola. En un mensaje anterior de este hilo tienes un ejemplo que te muestra como hacer todo el tema de la conexión de la aeat, asi como lo de los certificados.
Un Saludo |
Hola !
Ya he conseguido enviar el XML no es muy difícil. (pero tela, para el que no sabe) 1) desde el objeto HTTPRIO se puede obtener el código XML resultante que es al final el que se envía, se puede guardar en disco. 2) desde ese mismo objeto se puede "alterar" en el momento del envio el XML que vas a enviar, o guardar el que ya tienes calculado (1) 3) hay que alterar la llamada de esta forma: Código:
Colocar este evento: Código:
procedure TForm1.HTTPRIO1BeforeExecute(const MethodName: string; 5) eso sustituirá el XML que iba a enviar por el vuestro. Pero.... y aquí viene lo gordo: En mi caso en TODOS LOS ENVIOS ya sean mios o COPIANDO EL EJEMPLO DE LA AEAT (cambiando únicamente el NIF emisor) me sale error en la contraparte. El colmo es que guarda la factura(s) y a la segunda llamada me dice que la factura esta repetida. 6) Sigo esperando respuesta de la AEAT. A ver si conseguimos algo, porque veo cosas raras... o me equivoco mucho todo el rato. no se ya.... |
vale...
parece ser que ya voy atando cabos. Acabo de pasar una correcta... (vía XML modificado) El NIF que envias tiene que estar registrado por la AEAT si no te da error. A ver que me dicen a ese respecto. Juntando el ejemplo primero (el que va en comprimido en el .rar) y pegándole mis códigos posteriores creo que ya estaría para probar basicamente... por favor, si alguien sabe algo mas seria bueno que lo posteara. |
Cita:
Una única pregunta antes. ¿Alguien ha podido solucionar todo esto con Delphi 7? Muchas gracias! |
¿He leído mal, o es cierto que no existe una cuenta o ruta o forma de conectar en "modo prueba" para probar los programas? :confused:
|
El ejemplo que te puedes descargar está apuntando a servidor de pruebas. Además si te descargas la información técnica de la aeat tambien lo tienes.
|
Cita:
<wsdl port name="SuministroFacturasPruebas" binding="siiWdsl:siiBinding"> <soap:address location="https://www1.agenciatributaria.gob.es/wlpl/SSII-FACT/ws/SiiFactV1PSOAP"/> Saludos |
Errores "Undeclared identifier con SuministroInmediatoInfo.pas"
Cuando añado al proyecto la unit SuministroInmediatoInfo.pas, incluso estando en la cláusula Uses, Delpi me da una lista de 39 errores, como [Error] SuministroInmediatoInfo.pas(76): Undeclared identifier: 'SuministroLRFacturasEmitidas' [Error] SuministroInmediatoInfo.pas(76): Undeclared identifier: 'RespuestaLRFacturasEmitidas' [Error] SuministroInmediatoInfo.pas(77): Undeclared identifier: 'BajaLRFacturasEmitidas' [Error] SuministroInmediatoInfo.pas(77): Undeclared identifier: 'RespuestaLRBajaFacturasEmitidas' (...) (Delphi 7) ¿Cómo lo habéis resuelto? Por favor, disculpad mi ignorancia. Llevo muchos años con Delphi pero ésta no la sé solucionar. Muchas gracias por adelantado. Saludos, |
Creo que es por la versión de delphi, yo lo estoy probando en berlin.
|
Cita:
¿Alguien lo ha probado con "Delphi 7"? Saludos, |
Hola de nuevo.
¿Al final has desistido de enviarlo por código? Cita:
Saludos |
Hola !
lo tengo en el trabajo, el lunes lo miro y lo posteo. Por cierto, he descargado un nuevo interface SOAP wsd desde la AEAT algo diferente al publicado. (pero la versión es la misma, cambia el nombre de las clases) de memoria ese campo es un tipo, que es un array de DetalleIVA2 se llama desgloseIVA2 creo puedes verlo en el campo desgloseIVA. cada elemento del array es DetalleIVA2. Por código funciona muy bien, siempre que NO envíes el campo IDOtro de la contraparte (esto lo digo de memoria, no me acuerdo bien, pero funciona). A ver si responde la AEAT en ambos casos por código o XML el NIF debe existir de lo contrario la factura pasa pero da error. (o aviso), porque pasa. Lo que ocurre es que dice: NIF sin identificar y piensas que es un error de código, y no es asi. Asi que con código ahora mismo pasarían las facturas nacionales sin problemas. Ya estoy trabajando en el programa final de envio, que espero tenerlo listo a mediados de la semana que viene como muy tarde. De no tener ni idea de SOAP he pasado a enterarme ya medianamente bien, gracias al primer ejemplo. en fin... ya veremos. Hasta el lunes no vuelvo a postear. Os colocare un ejemplo completo con el interface publicado en el .rar. Saludos ! Por otro lado, me gustaría saber: 1) si la AEAT en ese formulario que va a crear, dara opción de subir el XML. 2) si habrá una web de la AEAT donde consultar las facturas subidas. ambas cosas serian fundamentales pienso yo para hacer las cosas bien. |
Cita:
Saludos |
1 Archivos Adjunto(s)
Ok.
Gracias a vuestra ayuda al final he preparado un ejemplo totalmente operativo del envío de una factura con este servicio. Ya solo quedaría ir rematando flecos y detalles. Espero que os sirva. Saludos |
Hay nueva versión 0.5 de esquemas y WebService.
La buena noticia es que los esquemas siguen siendo prácticamente lo mismos. Solo se han añadido a facturas recibidas un par de campos nuevos y en las emitidas se ha simplificado el esquema de la parte exenta. Poca cosa. La mala noticia es que el WebService inicial SuministroInmediatoInfo.wsdl, se ha dividido en varios diferentes. Tampoco será dramático, pero quizás es otra buena razón para tratar los archivos xml directamente a mano. Yo por mi parte creo que voy a tirar por esa opción, y por hacer las comunicaciones directamente con Indy. Cuantas menos dependencias externas mejor, no quiero depender de librerías de Windows para nada, que luego te encuentras problemas de compatibilidad complicados de resolver. Así de paso la aplicación puede funcionar en Mac y Linux con ayuda de Wine sin mucha complicación. |
1 Archivos Adjunto(s)
Ejemplo de newtron algo modificado, y SI, pasa la factura. Cuidado con el NIF que ponéis pues podría deciros NIF no identificado lo cual no quiere indicar error, sino que la AEAT no lo tiene registro.
* explicaciones en pantalla * selección de certificado * usando el objeto HTTIPro1 del form. (cuidado con cambiar allí el puerto de pruebas) * periodo y año de la factura Saludos ! |
Cita:
Es una pasada: Cita:
Y en junio igual lo cambian y listo. Saludos ! |
La parte buena es que van clarificando cuestiones más técnico-fiscales.
Es normal que ahora estemos pensando en la comunicación y los registros fiscales como tal estén en segundo término, pero al final hay que tener registrados los datos a transmitir por el xml de turno. Hay ciertos embrollos con las fechas y otras historias, pero en términos generales a través, van simplificando algunos registros y sus formas de comunicarse. Por ejemplo, las rectificativas, en la línea del 340, se han simplificado. |
bien, ahora usando el nuevo 0.5 da el error:
Not Found (404) - 'https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP' ah! y por lo que veo, utilizando el 0.1, puedes colar un calculo del IVA erróneo. Lo he probado a posta y la factura ha pasado. la factura ha pasado ahora mismo sin problemas. LAMENTABLE. |
por cierto nasca
¿Cómo vas a enviar el XML? ¿y recibir las respuestas de la AEAT? Saludos ! |
Indy con OpenSSL. En su momento las he probado en versiones anteriores del WebService y funcionan sin problemas.
Y los xml a mano, paso de depender de librerías del puñetero Windows en ambos casos. |
Hola a todos. Yo creo que el problema no esta tanto en como enviarlo, si por la indys o por SOAP, etc ... , ya que como hemos visto en el ejemplo la conexión no es muy dificil. El problema esta en la descripción de la información a enviar, ya sea directamente con el xml o con las clases que genera el wsdl, ya que estamos vendidos a los cambios que le apetezca hacer a hacienda como acabamos de ver con el cambio de version.
De todas formas esto esta un poco verde y con el tiempo esperemos que se valla estabilizando. Por cierto ¿Alguno ha tenido la gran suerte de ser o trabajar para alguna una de las empresas elegidas para las pruebas piloto?, ya que creo que esas empresas lo tienen mucho más fácil para acceder a la aeat. Un Saludo. |
Cita:
En fin..... es lo que hay. |
Cita:
Como siempre una chapuza. |
Buenos días !
Tres cuestiones: 1) cuidado con el mensaje de respuesta cuando hemos enviado las facturas, hay un campo que vuelve cargado con un valor que hay que guardar junto a las facturas y que es común al bloque que hemos enviado y sirve como comprobante: result.CSV 2) si envió un grupo de facturas, mas de 15 creo me da error de "necesita un certificado y bla bla..." si envio menos ó una sola funciona bien. 3) y aquí vengo a pedir ayuda: ¿Cuál seria la "ruta" para enviar facturas emitidas intracomunitarias y de exportación? En emitidas, seria esta: ARegistroLRFacturasEmitidas[ i ].FacturaExpedida.TipoDesglose.desglosefactura.sujeta.noexenta.desgloseIVA Saludos ! A ver si alguien puede darme una mano, gracias. |
Cita:
3.6. ¿Cómo se registra una Entrega Intracomunitaria de Bienes? Se anotará la factura emitida al cliente comunitario en el Libro registro de Facturas Expedidas procediendo a su identificación mediante la clave 2 en el campo de tipos de Identificación en el país de residencia “IDType” y su Número de Operador Intracomunitario en el campo "ID". El campo “CodigoPais” no será obligatorio. Por otra parte, la base imponible de la factura se incluirá en el campo de tipo de operación “Exenta” dentro del bloque “Entrega”. Como causa de exención se consignará la clave “E5: Exenta por el artículo 25”. El apartado del libro de operaciones Intracomunitarias, sólo es para determinadas operaciones, las más habituales van en el libro de expedidas o de emitidas. 3.7. ¿Cómo se registra una Exportación? La operación se anota en el Libro Registro de Facturas Expedidas. En el campo “Clave Régimen especial o Trascendencia” se consignará el valor 15. Deberá identificarse al cliente – en caso de ser extranjero- mediante el “Código país” y las claves 3 “Pasaporte”, 4 “Documento oficial de identificación expedido por el país o territorio de residencia”, 5 “Certificado de residencia” ó 6 “Otro documento probatorio” del campo “IDType”. Por otra parte, la base imponible de la factura se incluirá en el campo de tipo de operación “Exenta” dentro del bloque “Entrega”. Como causa de exención se consignará la clave E2 “Exenta por el artículo 21”. Por cierto has conseguido enviar por la versión 0.5 ? He preguntado a hacienda pero las cosas de palacio van despacio. Un Saludo |
Hola a todos!
Yo en vez de utilizar la unit Soap.SOAPHTTPTrans.pas que va en el ejemplo utilizo la unit que viene con delphi. Esta unit no tiene la opción de añadir el certificado directamente, lo que hago es asignarlo a un objeto THTTPRIO, de esta forma no dependo de esta unit que no se si funcionará en futuras versiones de delphi. No se por que en el ejemplo se utilizó una propia en vez de la de delphi. Un Saludo. |
Tengo problemas para el envío de facturas recibidas, que me dice: Valor o tipo incorrecto del campo: NIF.
Revisando los campos para el emisor de la factura (el que nos la envía a nosotros por ser factura recibida), veo que no hay campo NIF, teniendo que usar obligatoriamente el campo IdOtro. Yo lo hago así: IDFacturaRecibidaType idFact = new IDFacturaRecibidaType(); //IDFACTURA IDFacturaRecibidaTypeIDEmisorFactura emisorFactura = new IDFacturaRecibidaTypeIDEmisorFactura(); //emisorFactura IDOtroType idOtro = new IDOtroType(); idOtro.CodigoPais = ((CountryType2)(202)); //España idOtro.IDType = ((PersonaFisicaJuridicaIDTypeType)(00)); //00 -> 02(NIF - IVA) idOtro.ID = "XXXXXXXXX"; //Aqui pongo X por no poner un NIF real emisorFactura.Item = idOtro; idFact.IDEmisorFactura = emisorFactura; Será que en la versión 0.5 ya se puede poner correctamente el NIF del emisor de la factura recibida? Cómo lo hacéis vosotros para las facturas recibidas? Muchas gracias. |
Os habéis fijado que ya no tenemos un sólo wsdl? Ahora tenemos 7!
Hemos pasado del wsdl: https://www2.agenciatributaria.gob.e...diatoInfo.wsdl A los siguientes 7: https://www2.agenciatributaria.gob.e...Recibidas.wsdl https://www2.agenciatributaria.gob.e...sEmitidas.wsdl https://www2.agenciatributaria.gob.e...sMetalico.wsdl https://www2.agenciatributaria.gob.e...Inversion.wsdl https://www2.agenciatributaria.gob.e...tEmitidas.wsdl https://www2.agenciatributaria.gob.e...Recibidas.wsdl https://www2.agenciatributaria.gob.e...unitarias.wsdl |
La franja horaria es GMT +2. Ahora son las 02:01:52. |
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