Hola.
Aunque se que este club es de Delphi, estoy intentando crear una solución en Java para el problema. Tengo alguna experiencia con Java y ninguna con webservices. He visto tu código .NET, que es quizá lo más parecido a Java que he encontrado por ahí, pero me surgen dudas. Lamento no haber encontrado ningún foro de Java y por eso me veo obligado a preguntar aquí. Os comento mi situación. Tengo ya creado una objeto SuministroLRFacturasEmitidas (supongo que correctamente) que contiene una factura de ejemplo, y también tengo un objeto X509Certificate con un certificado obtenido a partir de un fichero .PFX. Entiendo que sólo me quedaría invocar a los métodos necesarios para enviar el objeto y recibir la respuesta, pero no se como. Si alguien pudiera ayudarme, estaría muy agradecido. levo muchas horas con esto y no avanzo. Gracias |
Cita:
Pero lo importante es que todos hemos aprendido bastante. Muchas gracias a los que habeis aportado ideas y código. Saludos, |
1 Archivos Adjunto(s)
Cita:
Vuelvo a subir mi caso de error, a ver si alguien me puede ayudar. Tanto si uso mi XML y lo cargo con Deserialize, como si voy directamente por servicio WSDL, al enviar con SuministroLRFacturasEmitidas() me da el error: "The content type text/html of the response message does not match the content type of the binding (text/xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 1024 bytes of the response were:..." No es problema del certificado, pero no se exactamente que puede dar el error. Si subo el XML original que crea mi app al portal de pruebas de Hacienda, este lo lee sin problemas. Para el Deserialize tuve que hacer una modificaciones al XML para que se cargara bien (quitar los tags de SOAP y añadir los namespaces). Adjunto el código usado para el Serialize y el usado para el Deserialize. También adjunto los XML: el que crea mi app (pensando q se podría mandar tal cual), el que uso para el Serialize y el que he generado con Deserialize a partir de la llamada directa al WSDL. Lo vuelvo a adjuntar pq vi que no envié correctamente uno de los ficheros... A ver si me pueden ayudar. Seguramente es una chorrada, pero no veo donde estoy fallando... Mil gracias. |
Para Feliz Ruiz
Cita:
<system.serviceModel> <bindings> <basicHttpBinding> <binding name="siiBinding1"> <security mode="Transport"> <transport clientCredentialType="Certificate" /> </security> </binding> Espero que te funcione. Un saludo a todos |
Consultas al SII
Hola todas, dar la enhorabuena a este foro.
Estoy implementando el SII creando el fichero directamente en XML. Hasta ahora veo que será la mejor opción. Por ahora no estoy teniendo problemas. Mi pregunta va sobre las consultas de los envios realizados. Alguién se está peleando con este apartado?? He enviado a la AEAT si van a proporcionar una parte para la consulta desde web. Me han respondido que si pero sin ninguna aclaración. Alguién sabe si los tiros van por lo que existe actualmente: "Cotejo de documentos" >> https://www2.agenciatributaria.gob.e...is.VisualizaSc Por tanto se introduce el CSV en el formulario y se obtiene el resultado del envío o por otro lado existirá un portal de acceso para ver listado de todos los envios realizados( tipo Maestro - Detalle). Lo necesito por saber como de cara a los clientes tengo que indicar el procedimiento de consulta. Ya que quiero ver la posibilidad de mostrar la página web de la AEAT para mayor seguridad en el envío. |
Cita:
Después elige la opción "Cliente de web service para el entorno de pruebas" Saludos, |
Buenos días. Por lo que se la hacienda va a poner una pagina de consulta donde poder comprobar todo lo presentado y su estado. Como dice el CMB ya lo tienes en el entorno de pruebas. Otra opción es desarrollarlo cada uno ya que la hacienda proporciona un webservice con el que se pueden hacer consultas y retorna la información presentada.
Un Saludo. |
Hola a Todos. Ahora voy yo con una duda o problema por si le ha pasado a alguien.
Estomos desarrollando en delphi y a al hora de presentar mostramos todos los certificados disponibles en el equipo. En el equipo teníamos tres certificados, los cuales nos salian a la hora de obtenerlos. Uno de ellos estaba caducado y lo eliminamos del sistema, es decir ahora solo hay dos. Pero a la hora de obtener en delphi cuantos certificados hay me siguen saliendo tres, los dos que me quedan y uno en blanco. A alguien le ha pasado esto o sabe por que es. La lista de certificados la estamos obteniendo de la siguiente forma.
Un Saludo. |
Buenas a tod@s, lo primero felicitaros y agradeceros la creación de este tema, después de leerme todo y practicar algunos ejemplos
el resultado es que puedo enviar los ficheros que genero y los graba en la web pero al hacer la llamada: result := GetsiiSOAP.SuministroLRFacturasEmitidas(ASuministroLRFacturasEmitidas); me devuelve este error: El sistema no puede encontrar el archivo especificado. - URL: https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP Lo curioso es que en facturas recibidas también me da error, pero si que las graba en la web Estoy desarrollando en Delphi este sistema y necesito un poco de ayuda, gracias Un Saludo. |
Fin prematuro del archivo
Buenos días,
En el caso de la construcción del XML he optado por su creación manual. En este sentido no tengo ningún problema, puedo subir manualmente el fichero desde el portal de AEAT con su certificado y pasa correctamente, puediendo ver la factura subida desde la consulta de facturas. El problema viene cuando intento subir dicho archivo mediante C# o VB. He utilizado diferentes mecanismos, y en ambos me encuentro varios problemas:
Gracias |
Cita:
defWSDL = 'https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroFactEmitidas.wsdl'; defURL = 'https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP'; defSvc = 'siiService'; defPrt = 'SuministroFactEmitidasPruebas'; |
Cita:
Después de ver todos los problemas que se han comentado en este foro con el envió de más de 13 facturas con la librería de certificados que incluye Delphi he optado por utilizar la librería CAPICOM y abrir directamente el fichero con el certificado.
|
Lo primero gracias. El problema de las 13 facturas ya esta solucionado hace tiempo, se solucionó con el uso correcto de las CAPICOM, el problema no lo tengo con los envios, los hago correctamente. El problema es que si en el ordenador hay varios certificados hay que indicar con cual de ellos hacer el envío y como ya he dicho la función que los devuelve por lo visto tambien incluye los eliminados.
|
Cita:
Con lo cual la eliminación de, por ejemplo, Firefox no elimina el certificado. Mira que no sea algo así. |
Estoy accediendo a los certificados del sistema operativo. Si voy al panel de control ese certificado no sale. Pero si en la funcion de delphi que accede a ellos.
|
Sii vs modulo 340
Hola:
Soy nuevo en el foro. Tenemos que empezar con sii y todavia no sabemos en que lo vamos a hacer. no se si llegamos tarde. La pregunta es. - ¿La información para el SII la estais encontrando en la que ya teneis para el modulo 340?. - Habeis pensado en implementar alguna validación contra SII. ejemplo. cuento cuanta facutaras tengo en mi sistema el dia 1/03/2017 (y me dice 3454 por 1.345 Euros) lanzar consultar al SII para ver si realmente tengo 345 facturas por un total de 1.345 euros) O simplemente os vais a fiar de que el SII os ha dicho que la factura esta correctamente enviada. |
Cita:
Gracias por contestar, pero tengo definido todo esto asi como lo pones tu, te tengo que decir que si lo hago con Delphi 10.2 el error es distinto, me dice que no esperaba una cabecera txt/HTML y el código es el mismo en un sistema que en otro. Lo mas curioso es que se quedan grabadas las facturas en la web del aeat y si subo el fichero XML manualmente desde la web que genera el HTTprio me lo acepta. Creo que al final lo conseguiremos. |
yo las facturas las envio así.
GetsiiSOAP(true, '', FSIIImprimir.soapeador).SuministroLRFacturasEmitidas(ASuministroLRFacturasEmitidas); FSIIImprimir.soapeador es un objeto THTTPRIO que tengo en un formulario y donde tengo los eventos correspondientes |
siiSOAPCliente
Cita:
Cita:
Código:
Private Sub send() No se encontró el elemento de extremo predeterminado que hace referencia al contrato 'SuministroFactEmitidas.siiSOAP' en la sección de configuración de cliente de ServiceModel. La razón puede ser que no se encontró ningún archivo de configuración para la aplicación o que no se encontró ningún elemento de extremo correspondiente a este contrato en el elemento de cliente. ¿podeis ayudarme? Gracias |
Cita:
Saludos |
Cita:
De todas maneras para ver que certificados del “store” están vigentes, con CAPICOM puedes filtrarlos:
|
Cobros en metálico recibido end_point
Hola:
Estoy validando todos los ejemplos de xml de SII usando directamente la web de aeat. Me funcionan todos excepto los de cobros : (8.1.5. Alta de Cobros en metálico) uso el end_point : /wlpl/SSII-FACT/ws/fr/SiiFactPAGV1SOAP y recibo el error. <faultstring>Codigo[4124].Error La direccion no se corresponde con el fichero de entrada.</faultstring> aunque en otras ocasiones el error devuelto era: <faultstring>403.No autorizado</faultstring> ¿alquien tiene un xml correcto con su correspondiente end_point? gracias Código:
<soapenv:Envelope> |
Cita:
|
Cita:
y para <siiLR:SuministroLRCobrosEmitidas> 8.1.11. alta cobros de fact dada de alta en Libro de Facturas Expedidas.xml ¿que endpoint se usa.? En que documento se recogen los endpoint, para cada tipo de petición no lo veo en la web. |
Por si hay alguien utilizando los componentes de SecureBlackBox para gestionar certificados, aquí va mi granito de arena...
Para asignar el certificado al HTTPRIO, necesitamos el SerialNumber del mismo. Partiendo de que tenemos todos los certificados del sistema en un ComboBox (más abajo pongo cómo rellenarlo):
Y aquí cómo rellenar el ComboBox (comboCertificate) con los certificados:
|
Mira si por este sistema de deja pasar mas de 13 facturas de un tipo.
|
Buenas...
Por lo pronto me devuelve el siguiente error al intentar enviar una factura de pruebas: Error no.: 1100 Valor o tipo incorrecto del campo: NombreRazon No sé si se refiere al nombre del Presentador o del Destinatario, pero bueno. Estoy usando el entorno de pruebas: defWSDL = 'https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroFactEmitidas.wsdl'; defURL = 'https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP'; defSvc = 'siiService'; defPrt = 'SuministroFactEmitidasPruebas'; Tengo certificado digital de persona física (lo utilizo en la AEAT sin problemas). En los datos del Titular pongo mi NIF y mi NOMBRE (APPELIDOS Y NOMBRE), pero siempre me devuelve ese error. ¿Alguna sugerencia? |
Intenta a enviar el fichero directamente por la pagina de hacienda de pruebas.
http://www.agenciatributaria.es/AEAT.internet/SII.html |
Viendo el contenido del XML, me he dado cuenta de que se trata de la Razón Social de la Contraparte. Voy a pulir un poco esto y cuando haga algún avance comento si puedo enviar más de 13 facturas.
Gracias! |
Selecccionar un Valor de la lista SuministroFactEmitidas.CountryType2
Tengo la siguiente duda, a ver si alguien me puede echar un cable.
En mi BD dispongo del código ISO de todos los paises, es decir, de todos los pases cuyo código corresponde con la lista SuministroFactEmitidas.CountryType2. El problema es que no soy capaz de indicar en el registro FacturaExpedida.Contraparte.IDOtro.CodigoPais el código de pais, me explico. No puedo indicar lo siguiente V_FACEMI_SII[i].FacturaExpedida.Contraparte.IDOtro.CodigoPais := 'DE' Para hacerlo correctamente debo indicarlo así V_FACEMI_SII[i].FacturaExpedida.Contraparte.IDOtro.CodigoPais := SuministroFactEmitidas.CountryType2(2). Pero para esto necesito saber que posición ocupa el pais del cliente en la lista de constantes SuministroFactEmitidas.CountryType2. Como habéis resuelto este tema? Existe alguna forma de indicarle SuministroFactEmitidas.CountryType2("La posición que ocupe el pais DE")? Quedo a la espera de vuestras noticias. Muchisimas Gracias por adelantado. |
Cita:
Se requiere un certificado para completar la autenticación de cliente Qué raro. Cuando selecciono 13 o más facturas, me devuelve ese error. No entiendo qué tendrá que ver una cosa con la otra, pero bueno. ¿Se sabe por qué ocurre esto? Por cierto... ¿El cliente destinatario de la factura también tiene que estar identificado en la AEAT? ¿Incluso en Entorno de pruebas? He probado a crear datos de facturas falsos, con destinatarios inventados y me dice que no están identificados (obviamente). ¿Cómo hago las pruebas entonces? ¿Pongo como destinatario mi propio NIF y Razón Social? |
Si pruebas con un NIF de una empresa, entonces acepta cualquier nombre en la Razón Social, al menos hasta hoy!
|
Cita:
Imagínate que en una simple comprobación de datos la AEAT te pide copias de todas tus facturas emitidas y/o recibidas. ¿Les vas a decir que la ley no te lo permite? |
Cita:
|
Bueno, esto parece que marcha bien. He conseguido enviar varias facturas y luego consultar las enviadas, pero tengo algunas dudas...
1) El problema del envío de más de 13 facturas. ¿cual es exactamente la causa del problema? He leído que con CAPICOM no ocurre, pero ¿por qué? Se pueden enviar varias facturas una a una (varias peticiones) en lugar de con una sola petición o hay algún límite/recomendación? He leído que enviándolas una a una obtenemos incluso un CSV, así que mejor, no? 2) ¿Cual sería el funcionamiento en una aplicación real? Es decir: enviaría las facturas y ya está? Es suficiente para sustituir el 347? Algún tipo de comprobante que se deba imprimir? Ya me imagino a los clientes haciéndome esas preguntas... Aún no me he metido con las rectificativas, y a probar a enviar facturas exentas de IVA, acogidas a RE, facturas recibidas, etc. pero por lo que veo y leo, no parece haber problema. Estaría bien que una vez tengamos todo preparado, hacer un post-resumen, similar al que hice hace tiempo con el webservice del envío de facturas electrónicas al face. En fin, siento haber llegado tarde para colaborar. Si descubro el motivo de las 13 facturas os aviso, ya que me gustaría aprovechar los componentes de SecureBlackBox. No tiene mucho sentido que devuelva ese error. ¿alguien ha comparado el XML del mismo envío usando CAPICOM y el otro método? |
Error al enviar intracomunitarias
Qué raro! En el envío de intracomunitarias me muestra el siguiente error: "Codigo[4124].Error La direccion no se corresponde con el fichero de entrada."
Para intracomunitarias uso la siguiente dirección: https://www7.aeat.es/wlpl/SSII-FACT/...iiFactOIV1SOAP y siempre me ha ido bien. Alguien más tiene problemas para el envío de intracomunitarias? El resto de tipos me lo hace correctamente. Edito: Para cobros en metálico me dice lo mismo. En cobros metálico uso la dirección: https://www7.aeat.es/wlpl/SSII-FACT/...iiFactCMV1SOAP Será que los envíos de tipo anual van a cambiar de dirección de envío? |
Cita:
2) Respecto a esto cada uno sabrá como hacerlo dependiendo de sus necesidades, nosotros estamos guardando el CSV y el estado del envío de cada factura además del fichero de respuesta, aunque esto último no hace falta. De todas formas el usuario pordra consultar en cualquier momento en la pagina de la AEAT el estado de cada factura o también se puede acceder a ello a través del webservice. Por otro lado si estas en el SII ya no tienes que hacer el 347. entre otros impuestos. Cita:
Luego diran que el delphi esta muerto y no creo que exista otro foro sobre este tema más completo. :rolleyes::rolleyes::rolleyes::rolleyes: |
Cita:
Cita:
Cita:
Cita:
Cita:
En el caso de las facturas emitidas es: http://www.agenciatributaria.es/stat...tEmitidas.wsdl y en el de las facturas recibidas: http://www.agenciatributaria.es/stat...Recibidas.wsdl También puede ser por el "port" que en el periodo de pruebas es: SuministroFactRecibidasPruebas para las facturas recibidas y SuministroFactEmitidasPruebas para las emitidas. Saludos |
Cita:
Totalmente de acuerdo, esto ya se hace un poco lioso de revisar. |
WebService
Cita:
No sé si te han respondido. Yo trabajo con .NET, pero supongo que en Java sería igual o parecido, aunque aquí dependerá del IDE que utilices. Tendrás que crearte una referencia Web al WSDL correspondiente (en este caso al de facturas emitidas) de la AEAT. Por ejemplo en Eclipse: Adding a Web Reference in Eclipse To develop Java programs that consume Location Intelligence Module web services in Eclipse, you first create a reference to the web service in your Java project. When the reference is created, the client-side stub code required to use the web service is generated. Start Eclipse. On the File menu, select New > Project. The New Project wizard opens. In the New Project wizard, select Java > Java Project. Click Next. In the Project Name field, enter the name you want to give your project. Click Finish to close the wizard. The new project folder appears in the Package Explorer. In the Package Explorer, right-click on the project folder you created in the previous step. On the pop-up menu, select New > Other. The New wizard opens. In the New wizard, select Web Services > Web Service Client. Click Next. In the Service Definition field, enter the URL to the web service's WSDL document. Select Develop Client on the slider bar. Click Finish to close the wizard. The stub code for the web service is generated in the project folder. Esto te generará una clase proxy con los métodos disponibles del servicio Web. En el método de altas de facturas emitidas, le pones tu objeto SuministroLRFacturasEmitidas y recibes la respuesta. |
La franja horaria es GMT +2. Ahora son las 04:39:47. |
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