Cita:
Empezado por rci
Nosotros todavía tenemos pendiente implementar que el usuario pueda escoger la causa de exención 
De momento usamos E5 para intracomunitarias y E2 para exportaciones y el resto E6 
Es un punto pendiente de mejorar en nuestro SIF...
|
Hola rci. Leo que el tema de intracomunitarias lo tenéis resuelto y a mi me está dando la lata el XML. Yo envío esto:
Código:
<IDFactura>
<IDEmisorFactura>22334455R</IDEmisorFactura>
<NumSerieFactura>399-G01</NumSerieFactura>
<FechaExpedicionFactura>07-08-2025</FechaExpedicionFactura>
</IDFactura>
<NombreRazonEmisor>AAAAAAAAAAA</NombreRazonEmisor>
<Subsanacion>N</Subsanacion>
<RechazoPrevio>N</RechazoPrevio>
<TipoFactura>E5</TipoFactura>
<DescripcionOperacion>VENTAS</DescripcionOperacion>
<FacturaSimplificadaArt7273>N</FacturaSimplificadaArt7273>
<FacturaSinIdentifDestinatarioArt61d>N</FacturaSinIdentifDestinatarioArt61d>
<Macrodato>N</Macrodato>
<Destinatarios>
<IDDestinatario>
<NombreRazon>BBBBBBBBBBBBBBBBBBBBBBBB</NombreRazon>
<NIF>123456789</NIF>
<IDOtro>
<CodigoPais>PT</CodigoPais>
<IDType>02</IDType>
</IDOtro>
</IDDestinatario>
</Destinatarios>
<Cupon>N</Cupon>
<Desglose>
<DetalleDesglose>
<ClaveRegimen>01</ClaveRegimen>
<CalificacionOperacion>N2</CalificacionOperacion>
<BaseImponibleOimporteNoSujeto>50.00</BaseImponibleOimporteNoSujeto>
</DetalleDesglose>
</Desglose>
<CuotaTotal>0.00</CuotaTotal>
<ImporteTotal>50.00</ImporteTotal>
<Encadenamiento>
<RegistroAnterior>
<IDEmisorFactura>29781758R</IDEmisorFactura>
<NumSerieFactura>398-G01</NumSerieFactura>
<FechaExpedicionFactura>29-07-2025</FechaExpedicionFactura>
<Huella>A0865A4CF1DC7FA3AF234E8A2B87862C827E467D58361019FD85657CE52D14DB</Huella>
</RegistroAnterior>
</Encadenamiento>
<SistemaInformatico>
<NombreRazon>AAAAAAAAAAAAAAAAAAA</NombreRazon>
<NIF>22334455R</NIF>
<NombreSistemaInformatico>GestionVF</NombreSistemaInformatico>
<IdSistemaInformatico>88</IdSistemaInformatico>
<Version>25.03.15</Version>
<NumeroInstalacion>15</NumeroInstalacion>
<TipoUsoPosibleSoloVerifactu>S</TipoUsoPosibleSoloVerifactu>
<TipoUsoPosibleMultiOT>S</TipoUsoPosibleMultiOT>
<IndicadorMultiplesOT>S</IndicadorMultiplesOT>
</SistemaInformatico>
<FechaHoraHusoGenRegistro>2025-08-07T10:45:32+02:00</FechaHoraHusoGenRegistro>
<TipoHuella>01</TipoHuella>
<Huella>33CCAF1B0E8AA71013542DDFF0DF5FBDD15B8C6DD23024892F5502BDB96EF589</Huella>
</RegistroAlta>
</RegistroFactura>
Y no me entra, respondiendo esto:
Código:
<?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Body><env:Fault>
<faultcode>env:Client</faultcode><faultstring>Codigo[4102].El XML no cumple el esquema. Falta informar campo obligatorio.: IDDestinatario</faultstring>
<detail><callstack>El XML no cumple el esquema. Falta informar campo obligatorio.: IDDestinatario
WSExcepcion [faultcode=null, detailMap=null, version=0, faultstring=null, faultactor=null, faultSubCode=null, reasonText=null, detail=null, nameSpaceUriDetail=null]
at es.aeat.tike.cont.xml.util.UtilesXMLTIKE.existeEtiquetaFin(UtilesXMLTIKE.java:483)
at es.aeat.tike.cont.ws.xml.comun.ParserXmlDestinatarios.parsearListaDestinatarios(ParserXmlDestinatarios.java:103)
at es.aeat.tike.cont.ws.xml.fe.estructura.ParserXmlRegistroFacturacion.parsearRegistro(ParserXmlRegistroFacturacion.java:444)
at es.aeat.tike.cont.ws.xml.fe.estructura.ParserXmlRegFactuAltaBaja.parseaAlta(ParserXmlRegFactuAltaBaja.java:188)
at es.aeat.tike.cont.ws.xml.fe.estructura.ParserXmlRegFactuAltaBaja.tratarRegistroAlta(ParserXmlRegFactuAltaBaja.java:875)
at es.aeat.tike.cont.ws.xml.fe.estructura.ParserXmlRegFactuAltaBaja.parserComunRegFactu(ParserXmlRegFactuAltaBaja.java:94)
at es.aeat.tike.cont.ws.fe.ProcesasfAltaBajaWS.altaBajaFacturaSistemaFacturacion(ProcesasfAltaBajaWS.java:58)
at es.aeat.tike.cont.ws.fe.VistaSF.procesaOperacion(VistaSF.java:56)
at es.aeat.tike.cont.ws.VistaMaestro.procesaCabecera(VistaMaestro.java:241)
at es.aeat.tike.cont.ws.VistaMaestro.inicializaParseaValidaProcesaCabecera(VistaMaestro.java:86)
at es.aeat.tike.cont.ws.fe.VerifactuSOAP.doPost(VerifactuSOAP.java:49)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:520)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1266)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:754)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:451)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:197)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:100)
at io.openliberty.http.monitor.ServletFilter.doFilter(ServletFilter.java:76)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:203)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:93)
at es.aeat.tike.cont.ws.filter.VFFilter.doFilter(VFFilter.java:53)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:203)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:93)
at es.aeat.adws.jdit.imp.ws.WSFilterSrvImpl.doFilter(WSFilterSrvImpl.java:253)
at es.aeat.adws.jdit.api.ws.WSFilter.doFilter(WSFilter.java:24)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:203)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:93)
at es.aeat.adht.jdit.imp.infra.JDitFilterSrvImpl._runUnified(JDitFilterSrvImpl.java:300)
at es.aeat.adht.jdit.imp.infra.JDitFilterSrvImpl.filtroIni(JDitFilterSrvImpl.java:151)
at es.aeat.adht.jdit.imp.infra.JDitFilterSrvImpl.doFilter(JDitFilterSrvImpl.java:103)
at es.aeat.adht.jdit.imp.infra.JDitFilterSrvImpl.doFilter(JDitFilterSrvImpl.java:78)
at es.aeat.adht.jdit.api.filter.JDitFilter.doFilter(JDitFilter.java:21)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:203)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:93)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:1069)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1260)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1078)
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:77)
at com.ibm.ws.webcontainer40.servlet.CacheServletWrapper40.handleRequest(CacheServletWrapper40.java:87)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:978)
at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost$2.run(DynamicVirtualHost.java:293)
at com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink$TaskWrapper.run(HttpDispatcherLink.java:1284)
at com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink.wrapHandlerAndExecute(HttpDispatcherLink.java:500)
at com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink.ready(HttpDispatcherLink.java:459)
at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:569)
at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.handleNewRequest(HttpInboundLink.java:503)
at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.processRequest(HttpInboundLink.java:363)
at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.ready(HttpInboundLink.java:330)
at com.ibm.ws.tcpchannel.internal.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:169)
at com.ibm.ws.tcpchannel.internal.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:77)
at com.ibm.ws.tcpchannel.internal.WorkQueueManager.requestComplete(WorkQueueManager.java:516)
at com.ibm.ws.tcpchannel.internal.WorkQueueManager.attemptIO(WorkQueueManager.java:586)
at com.ibm.ws.tcpchannel.internal.WorkQueueManager.workerRun(WorkQueueManager.java:970)
at com.ibm.ws.tcpchannel.internal.WorkQueueManager$Worker.run(WorkQueueManager.java:1059)
at com.ibm.ws.threading.internal.ExecutorServiceImpl$RunnableWrapper.run(ExecutorServiceImpl.java:298)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
</callstack></detail></env:Fault></env:Body></env:Envelope>
Decir que la entidad receptora de la factura existe y su NIF también, es una empresa portuguesa.
El caso es que no tengo narices de ver por qué no me entra.
Si fueses tan amable de ponerme un ejemplo te lo agradecería mil.
