Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   SII -Nuevo sistema de la Agencia Tributaria española de envío de datos vía Webservice (https://www.clubdelphi.com/foros/showthread.php?t=91252)

newtron 07-03-2025 13:38:13

Cita:

Empezado por espinete (Mensaje 562538)
A ver, que esto está empezando a volverme loco...

He creado el XML y lo he revisado con la utilidad de "invocación de webservice de la AEAT" para comprobar si es válido:
https://prewww1.aeat.es/static_files...teWSAEAT2.html

La respuesta del servidor es "Correcto".

Por lo tanto, entiendo que en el XML que genero está todo bien, pero por algún motivo el componente HTTPRIO no está leyendo la respuesta porque me devuelve el error:

Received content of invalid content-type setting: text/html - SOAP expects "text/xml"

Entiendo que en el SII no hay que firmar el XML, solo el envío. Esto lo hago en el evento OnNeedCertificate:

Código:

    for I := 0 to ACertificateList.Count - 1 do
    begin
        if i=strtointdef(comboCertificate.items.SelectedItem.Hint,0) then
        begin
            AnIndex := I;
            Exit;
        end;
    end;

El envío lo hago usando el HTTPRIO, que no es que me guste pero no sé si hay otra forma de hacerlo (En TicketBAI y VeriFactu uso NetHTTPRequest y NetHTTPClient).

Código:

    try
      // se hace la llamada a la funcion suministrada por el WS
      if ENTORNO_DE_PRUEBAS then
          begin
              HTTPRIO1.WSDLLocation := 'https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroFactEmitidas.wsdl';
              HTTPRIO1.Service := 'siiService';
              HTTPRIO1.Port := 'SuministroFactEmitidasPruebas';
              HTTPRIO1.URL := 'https://prewww1.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP';
          end
          else
          begin
              HTTPRIO1.WSDLLocation := 'https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroFactEmitidas.wsdl';
              HTTPRIO1.Service := 'siiService';
              HTTPRIO1.Port := 'SuministroFactEmitidas';
              HTTPRIO1.URL := 'https://www1.agenciatributaria.gob.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP';
          end;
          result := GetsiiSOAP(false,HTTPRIO1.URL,HTTPRIO1).SuministroLRFacturasEmitidas(ASuministroLRFacturasEmitidas);

      //mostrar los resultados devueltos por la llamada
      for i := low(result.RespuestaLinea) to High(result.RespuestaLinea) do
      begin
          with result.RespuestaLinea[i] do
          begin
            //si el estado no es correcto, se muestran los errores
            if EstadoRegistro <> EstadoRegistroType(0) then
            begin
                showmessage('Error ' + InttoStr(CodigoErrorRegistro)+#13#10+DescripcionErrorRegistro);
                error:=DescripcionErrorRegistro;
            end
            else
            begin
                spain.Table1.edit;
                spain.Table1.FieldByName('ID_HACIENDA').AsString:=result.CSV;
                spain.Table1.Post;
            end;
          end;
      end;
    except
      On E:Exception do
        MessageDlg(E.Message, mtError, [mbOK], 0);
    end;

¿Alguien puede decirme si el envío lo está haciendo de la misma manera o si ve algo raro en lo anterior?

He probado también a hacer el envío con el componente NetHTTPClient para ver qué pasa. En ese caso, como respuesta obtengo un código html de una página de la AEAT (eso explica el error si uso HTTPRIO, estoy obteniendo como respuesta una página html en vez de un xml).

¿Puede alguien confirmarme si las URL que estoy usando y la forma de llamar a GetsiiSOAP() es correcta? Algo me dice que el envío está abriendo otra página, o algo similar, y por eso devuelve html y no xml.
La firma del envío la hago en el evento OnNeedCertificate del HTTPRIO. No creo que eso esté mal porque lleva funcionando así siempre.

¿Será que debo usar otro certificado distinto? ¿Hay que darse de alta en algún sitio primero? ¿Puedo usar certificados de prueba? ¿Debe el nombre del emisor coincidir con el nombre en el certificado?

La verdad es que ya no sé qué más probar. Funcionaba todo bien hasta hace unos días (al menos a mi cliente). Y ahora tanto él como yo no podemos enviar al entorno de pruebas.


Pues con más razón compañero, haz lo que te digo y prueba en una máquina con W10 a ver si W11 va a tener algún tipo de configuración especial con los nuevos protocolos de seguridad de la aeat.


Saludos.

keys 07-03-2025 14:12:34

En windows 11 funciona correctamente. Lo único que te puedo decir es que pases un pequeño proyecto sólo con el envío de una factura y te lo puedo probar.

espinete 07-03-2025 14:42:33

1 Archivos Adjunto(s)
Cita:

Empezado por keys (Mensaje 562541)
En windows 11 funciona correctamente. Lo único que te puedo decir es que pases un pequeño proyecto sólo con el envío de una factura y te lo puedo probar.

Gracias, keys. He creado un mini-proyecto de prueba. Lo he simplificado al máximo, pero se puede ver el funcionamiento básico para generar el XML y hacer el envío.
He incluido también el archivo .pas que se genera al importar el wsdl.

Los datos del emisor, cliente, etc. son ficticios en este proyecto (en mis pruebas uso NIFs y nombres reales).

Lo de asignar certificado tendrías que completarlo tu si quieres compilar y probar el código, pero no creo que haga falta porque tampoco tiene mucha ciencia el proceso de firmar el envío.
Yo me he asegurado de que el certificado que uso para el envío es el correcto (mostrando en pantalla el nombre del certificado que se asigna al HTTPRIO en el momento de hacer anIndex := xxxx).

Total, que espero que puedas decirme si tienes algo diferente.

Me da rabia porque viendo los primeros mensajes del foro, hay mensajes míos de 2019 en el que conseguí enviar facturas sin problema con el mismo proyecto.
Pero más rabia me da saber que hasta hace 1 semana mi cliente podía enviar sin problemas sin haber tocado nada :confused:

OJO, probando ESTE mini proyecto, ahora PUEDO ENVIAR FACTURAS.

Ahora sí que no entiendo nada. He copiado/pegado el código y los componentes de un proyecto a otro.

espinete 07-03-2025 15:02:55

Creo que el problema está en cómo asigno el certificado durante el envío.

Asignando el certificado con un simple anindex := 1, puedo enviar, obtener los mensajes de error, etc.

Pero asignando el certificado tal como lo tenía...

Código:

for I := 0 to ACertificateList.Count - 1 do
    begin
        if i=strtointdef(comboCertificate.items.SelectedItem.Hint,0) then
        begin
            AnIndex := I;
            Exit;
        end;
    end;

...es cuando obtengo el dichoso error de text/html.

Ya podría el webservice responder de otra manera.

En fin, que está claro que el problema está en el certificado. Tengo que ver qué ha cambiado, o a qué corresponde ese "anindex" porque está claro que no coincide con el index que yo creía que tenía mi certificado.

keys 10-03-2025 08:22:23

En el delphi 12.2 el componente THTTPRIO ha cambiado. Ya el certificado no se le indica de la misma manera. Ahora pasa por un evento OnNeedClientCertificate donde hay que indicarle el certificado por el cual tienes que enviar.

En ese evento te pasa una lista con los certificados que hay disponible ACertificateList: TCertificateList, y elegir el que quieres usar en la variable AnIndex. Te pongo como lo hago yo.
Código Delphi [-]
for var x := 0 to  ACertificateList.Count - 1 do
     begin
       if Pos(AnsiUpperCase(Certificado), AnsiUpperCase(ACertificateList.Items[x].Subject) ) <> 0 then
         if ACertificateList.Items[x].Expiry >= Now then
           begin
             AnIndex := x;
             Encontrado := true;
             break;
           end;
     end;

 if not Encontrado then ERROR;
Certificado es el que usuario ha seleccionado en un combobox. En ACertificateList.Items[x] tienes una serie de propiedades para identificar el certificado que tu quieres usar.

Yo creo que el webservice no te estaba contestando nada por que ni siquiera estás llegando a enviar. Otra de las ventajas del nuevo componente es que ya no hace falta el capicom para acceder a los certificado.

No te lo pruebo ya que veo que has encontrado el problema. Si tienes lago más di si te puedo ayudar.

Danfter 11-03-2025 16:15:01

Error respuesta ATCN namespaces multiples
 
Buenas tardes,
En un cliente nos han pedido desarrollar el envió de facturas a la agencia tributaria canaria ATCN, estamos teniendo problemas en la respuesta que obtenemos ya que viene codificada con varios namespaces en vez de que nos lo devuelva con el esquema RespuestaSuministro.xsd tal y como hace la AEAT, nos lo devuelve de esta manera ( a todos las las url de los esquemas le he quitado el porque no me dejaba publicar ) :

Código:

xmlns:ns4="h t t ps://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/RespuestaSuministro.xsd"
xmlns:ns3="h t t ps://w w w2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/ConsultaLR.xsd"
xmlns:ns2="h t t ps://w w w2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/SuministroLR.xsd"
xmlns="h t t ps://w w w2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/SuministroInformacion.xsd"

¿Alguien sabe cual puede ser el problema?


XML envio
Código:

<soapenv:Envelope xmlns:soapenv="h t t p://schemas.xmlsoap.org/soap/envelope/"
xmlns:siiLR="agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/SuministroLR.xsd"
xmlns:sii="agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/SuministroInformacion.xsd">
<soapenv:Header/>
<soapenv:Body>
<siiLR:SuministroLRFacturasEmitidas>
<sii:Cabecera>
<sii:IDVersionSii>1.0</sii:IDVersionSii>
<sii:Titular>
<sii:NombreRazon>Empresa, S.A.</sii:NombreRazon>
<sii:NIF>B00000001</sii:NIF>
</sii:Titular>
<sii:TipoComunicacion>A0</sii:TipoComunicacion>
</sii:Cabecera>
<siiLR:RegistroLRFacturasEmitidas>
<sii:PeriodoLiquidacion>
<sii:Ejercicio>2025</sii:Ejercicio>
<sii:Periodo>03</sii:Periodo>
</sii:PeriodoLiquidacion>
<siiLR:IDFactura>
<sii:IDEmisorFactura>
<sii:NIF>B00000001</sii:NIF>
</sii:IDEmisorFactura>
<sii:NumSerieFacturaEmisor>FV/010/25-03-000007</sii:NumSerieFacturaEmisor>
<sii:FechaExpedicionFacturaEmisor>10-03-2025</sii:FechaExpedicionFacturaEmisor>
</siiLR:IDFactura>
<siiLR:FacturaExpedida>
<sii:TipoFactura>F1</sii:TipoFactura>
<sii:FechaOperacion>10-03-2025</sii:FechaOperacion>
<sii:ClaveRegimenEspecialOTrascendencia>01</sii:ClaveRegimenEspecialOTrascendencia>
<sii:ImporteTotal>3085.5</sii:ImporteTotal>
<sii:DescripcionOperacion>Factura FV101323/FACTURAS VENTA</sii:DescripcionOperacion>
<sii:RefExterna>FV/010/25-03-000007</sii:RefExterna>
<sii:EmitidaPorTercerosODestinatario>N</sii:EmitidaPorTercerosODestinatario>
<sii:Contraparte>
<sii:NombreRazon>Cliente, S.L.U</sii:NombreRazon>
<sii:NIF>B00000002</sii:NIF>
</sii:Contraparte>
<sii:TipoDesglose>
<sii:DesgloseTipoOperacion>
<sii:Entrega>
<sii:Sujeta>
<sii:NoExenta>
<sii:TipoNoExenta>S1</sii:TipoNoExenta>
<sii:DesgloseIGIC>
<sii:DetalleIGIC>
<sii:TipoImpositivo>7</sii:TipoImpositivo>
<sii:BaseImponible>2550</sii:BaseImponible>
<sii:CuotaRepercutida>178.5</sii:CuotaRepercutida>
</sii:DetalleIGIC>
</sii:DesgloseIGIC>
</sii:NoExenta>
</sii:Sujeta>
</sii:Entrega>
</sii:DesgloseTipoOperacion>
</sii:TipoDesglose>
</siiLR:FacturaExpedida>
</siiLR:RegistroLRFacturasEmitidas>
</siiLR:SuministroLRFacturasEmitidas>
</soapenv:Body>
</soapenv:Envelope>


Código:

XML de respuesta
<soap:Envelope xmlns:soap="h t t p ://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns4:RespuestaLRFacturasEmitidas xmlns:ns5="h t t p s://w w w 2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/RespuestaConsultaLR.xsd"
xmlns:ns4="agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/RespuestaSuministro.xsd"
xmlns:ns3="agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/ConsultaLR.xsd"
xmlns:ns2="agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/SuministroLR.xsd" xmlns="agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/SuministroInformacion.xsd">
<ns4:Cabecera>
<IDVersionSii>1.0</IDVersionSii>
<Titular>
<NombreRazon>Empresa, S.A.</NombreRazon>
<NIF>B00000001</NIF>
</Titular>
<TipoComunicacion>A0</TipoComunicacion>
</ns4:Cabecera>
<ns4:EstadoEnvio>Incorrecto</ns4:EstadoEnvio>
<ns4:RespuestaLinea>
<ns4:IDFactura>
<IDEmisorFactura>
<NIF>B00000001</NIF>
</IDEmisorFactura>
<NumSerieFacturaEmisor>FV/010/25-03-000007</NumSerieFacturaEmisor>
<FechaExpedicionFacturaEmisor>10-03-2025</FechaExpedicionFacturaEmisor>
</ns4:IDFactura>
<ns4:RefExterna>FV/010/25-03-000007</ns4:RefExterna>
<ns4:EstadoRegistro>Incorrecto</ns4:EstadoRegistro>
<ns4:CodigoErrorRegistro>3000</ns4:CodigoErrorRegistro>
<ns4:DescripcionErrorRegistro>Factura duplicada</ns4:DescripcionErrorRegistro>
<ns4:CSV>PYAB4P7KJMQ65VLG</ns4:CSV>
<ns4:RegistroDuplicado>
<EstadoRegistro>Correcta</EstadoRegistro>
</ns4:RegistroDuplicado>
</ns4:RespuestaLinea>
</ns4:RespuestaLRFacturasEmitidas>
</soap:Body>
</soap:Envelope>

Gracias un saludo a todos

Danfter 11-03-2025 17:12:51

Y otro de los problemas que tengo es que prácticamente todo el día devuelve error 500 todos y cada uno de los servicios web, no se si están desplegando algún cambio o simplemente estoy haciendo algo mal en el envió, pero por ejemplo con la AEAT no tenemos ningún problema
Cita:

Empezado por Danfter (Mensaje 562601)
Buenas tardes,
En un cliente nos han pedido desarrollar el envió de facturas a la agencia tributaria canaria ATCN, estamos teniendo problemas en la respuesta que obtenemos ya que viene codificada con varios namespaces en vez de que nos lo devuelva con el esquema RespuestaSuministro.xsd tal y como hace la AEAT, nos lo devuelve de esta manera ( a todos las las url de los esquemas le he quitado el porque no me dejaba publicar ) :

Código:

xmlns:ns4="h t t ps://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/RespuestaSuministro.xsd"
xmlns:ns3="h t t ps://w w w2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/ConsultaLR.xsd"
xmlns:ns2="h t t ps://w w w2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/SuministroLR.xsd"
xmlns="h t t ps://w w w2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/SuministroInformacion.xsd"

¿Alguien sabe cual puede ser el problema?


XML envio
Código:

<soapenv:Envelope xmlns:soapenv="h t t p://schemas.xmlsoap.org/soap/envelope/"
xmlns:siiLR="agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/SuministroLR.xsd"
xmlns:sii="agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/SuministroInformacion.xsd">
<soapenv:Header/>
<soapenv:Body>
<siiLR:SuministroLRFacturasEmitidas>
<sii:Cabecera>
<sii:IDVersionSii>1.0</sii:IDVersionSii>
<sii:Titular>
<sii:NombreRazon>Empresa, S.A.</sii:NombreRazon>
<sii:NIF>B00000001</sii:NIF>
</sii:Titular>
<sii:TipoComunicacion>A0</sii:TipoComunicacion>
</sii:Cabecera>
<siiLR:RegistroLRFacturasEmitidas>
<sii:PeriodoLiquidacion>
<sii:Ejercicio>2025</sii:Ejercicio>
<sii:Periodo>03</sii:Periodo>
</sii:PeriodoLiquidacion>
<siiLR:IDFactura>
<sii:IDEmisorFactura>
<sii:NIF>B00000001</sii:NIF>
</sii:IDEmisorFactura>
<sii:NumSerieFacturaEmisor>FV/010/25-03-000007</sii:NumSerieFacturaEmisor>
<sii:FechaExpedicionFacturaEmisor>10-03-2025</sii:FechaExpedicionFacturaEmisor>
</siiLR:IDFactura>
<siiLR:FacturaExpedida>
<sii:TipoFactura>F1</sii:TipoFactura>
<sii:FechaOperacion>10-03-2025</sii:FechaOperacion>
<sii:ClaveRegimenEspecialOTrascendencia>01</sii:ClaveRegimenEspecialOTrascendencia>
<sii:ImporteTotal>3085.5</sii:ImporteTotal>
<sii:DescripcionOperacion>Factura FV101323/FACTURAS VENTA</sii:DescripcionOperacion>
<sii:RefExterna>FV/010/25-03-000007</sii:RefExterna>
<sii:EmitidaPorTercerosODestinatario>N</sii:EmitidaPorTercerosODestinatario>
<sii:Contraparte>
<sii:NombreRazon>Cliente, S.L.U</sii:NombreRazon>
<sii:NIF>B00000002</sii:NIF>
</sii:Contraparte>
<sii:TipoDesglose>
<sii:DesgloseTipoOperacion>
<sii:Entrega>
<sii:Sujeta>
<sii:NoExenta>
<sii:TipoNoExenta>S1</sii:TipoNoExenta>
<sii:DesgloseIGIC>
<sii:DetalleIGIC>
<sii:TipoImpositivo>7</sii:TipoImpositivo>
<sii:BaseImponible>2550</sii:BaseImponible>
<sii:CuotaRepercutida>178.5</sii:CuotaRepercutida>
</sii:DetalleIGIC>
</sii:DesgloseIGIC>
</sii:NoExenta>
</sii:Sujeta>
</sii:Entrega>
</sii:DesgloseTipoOperacion>
</sii:TipoDesglose>
</siiLR:FacturaExpedida>
</siiLR:RegistroLRFacturasEmitidas>
</siiLR:SuministroLRFacturasEmitidas>
</soapenv:Body>
</soapenv:Envelope>


Código:

XML de respuesta
<soap:Envelope xmlns:soap="h t t p ://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns4:RespuestaLRFacturasEmitidas xmlns:ns5="h t t p s://w w w 2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/RespuestaConsultaLR.xsd"
xmlns:ns4="agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/RespuestaSuministro.xsd"
xmlns:ns3="agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/ConsultaLR.xsd"
xmlns:ns2="agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/SuministroLR.xsd" xmlns="agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/SuministroInformacion.xsd">
<ns4:Cabecera>
<IDVersionSii>1.0</IDVersionSii>
<Titular>
<NombreRazon>Empresa, S.A.</NombreRazon>
<NIF>B00000001</NIF>
</Titular>
<TipoComunicacion>A0</TipoComunicacion>
</ns4:Cabecera>
<ns4:EstadoEnvio>Incorrecto</ns4:EstadoEnvio>
<ns4:RespuestaLinea>
<ns4:IDFactura>
<IDEmisorFactura>
<NIF>B00000001</NIF>
</IDEmisorFactura>
<NumSerieFacturaEmisor>FV/010/25-03-000007</NumSerieFacturaEmisor>
<FechaExpedicionFacturaEmisor>10-03-2025</FechaExpedicionFacturaEmisor>
</ns4:IDFactura>
<ns4:RefExterna>FV/010/25-03-000007</ns4:RefExterna>
<ns4:EstadoRegistro>Incorrecto</ns4:EstadoRegistro>
<ns4:CodigoErrorRegistro>3000</ns4:CodigoErrorRegistro>
<ns4:DescripcionErrorRegistro>Factura duplicada</ns4:DescripcionErrorRegistro>
<ns4:CSV>PYAB4P7KJMQ65VLG</ns4:CSV>
<ns4:RegistroDuplicado>
<EstadoRegistro>Correcta</EstadoRegistro>
</ns4:RegistroDuplicado>
</ns4:RespuestaLinea>
</ns4:RespuestaLRFacturasEmitidas>
</soap:Body>
</soap:Envelope>

Gracias un saludo a todos


Neftali [Germán.Estévez] 11-03-2025 17:18:14

Tal como te está dicciendo la respuesta, estás enviando un número de factura duplicado:

Código:

<ns4:CodigoErrorRegistro>3000</ns4:CodigoErrorRegistro>
<ns4:DescripcionErrorRegistro>Factura duplicada</ns4:DescripcionErrorRegistro>


Danfter 11-03-2025 17:29:00

El problema no es la respuesta, eso ya se que estoy subiendo la factura duplicada, el problema es que si te fijas en el xml parece que esta aplicando varios esquemas xsd y los numera desde el xmlns hasta el
xmlns:ns4, y luego todas las etiquetas del xml están dentro de ns4 y no dentro de sii o siiLR que es como yo lo he enviado. ¿Tendría alguien algún ejemplo de xml de factura emitida de canarias?


Ejemplo cabecera xml aeat aplica solo el esquema SuministroInformacion.xsd
Código:

<env:Envelope xmlns:env="h t t p://schemas.xmlsoap.org/soap/envelope/">
<env:Header/>
<env:Body Id="Body">
<siiR:RespuestaLRFacturasEmitidas xmlns:sii="h t t p s://w w w 2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd"

Ejemplo cabecera xml atcn aplica varios esquemas.

Código:

<soap:Envelope xmlns:soap="h t t p ://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns4:RespuestaLRFacturasEmitidas xmlns:ns5="h t t p s://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/RespuestaConsultaLR.xsd"
xmlns:ns4="h t t p s://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/RespuestaSuministro.xsd"
xmlns:ns3="h t t p s://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/ConsultaLR.xsd"
xmlns:ns2="h t t p s://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/SuministroLR.xsd"
xmlns="h t t p s://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/SuministroInformacion.xsd">

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 562609)
Tal como te está dicciendo la respuesta, estás enviando un número de factura duplicado:

Código:

<ns4:CodigoErrorRegistro>3000</ns4:CodigoErrorRegistro>
<ns4:DescripcionErrorRegistro>Factura duplicada</ns4:DescripcionErrorRegistro>



espinete 11-03-2025 19:32:22

Hola de nuevo...

Ya he conseguido enviar facturas normales, rectificativas de ambos tipos, con varios tipos de IVAB], etc. pero tengo un problema con facturas que tienen artículos con IVA y otros artículos con IVA = 0%.
Entiendo que son facturas Sujetas y no exentas, pero en las que hay un IVA 0% (no sé cual es el motivo concreto).

He estado leyendo posts antiguos, de cuando entró en vigor la posibilidad de enviar facturas con productos con IVA 0%, pero los ejemplos que he encontrado parece que no son válidos ahora, o algo estoy haciendo mal.

He intentado crear el desglose añadiendo el IVA 0% sin indicar Cuota IVA:

Código:

<DesgloseFactura>
<Sujeta>
        <NoExenta>
                <TipoNoExenta>S1</TipoNoExenta>
                <DesgloseIVA>
                        <DetalleIVA>
                                <TipoImpositivo>0</TipoImpositivo>
                                <BaseImponible>25.00</BaseImponible>
                        </DetalleIVA>
                        <DetalleIVA>
                                <TipoImpositivo>21.00</TipoImpositivo>
                                <BaseImponible>100.00</BaseImponible>
                                <CuotaRepercutida>21.00</CuotaRepercutida>
                        </DetalleIVA>
                </DesgloseIVA>
        </NoExenta>
</Sujeta>
</DesgloseFactura>

Pero siempre me devuelve este error: El campo TipoImpositivo debe estar informado con valor distinto de 0 si el campo TipoNoExenta tiene un valor S1 y ClaveRegimenEspecialOTranscedencia o ClaveRegimenEspecialOTrascendenciaAdicional con valor distinto a 03,05,09,16

No sé si debo crear dos desgloses diferentes, o si el problema está en TipoNoExenta o incluso en la Clave/Tipo de Factura (F1...).

He intentado buscar algún ejemplo de factura de este tipo pero no he encontrado nada y ya no sé si es que no es posible emitir este tipo de facturas o qué.

En TicketBAI creo recordar que hay una forma de hacerlo, pero he intentado adaptarlo al SII y no lo consigo. Agradecería que alguien me eche una mano con esto.

espinete 11-03-2025 20:10:25

He conseguido generar un XML como el siguiente, que incluye tanto un apartado para el desglose de IVAs distintos a cero, como un apartado Sujeta-Exenta paa el IVA 0%:

Código:

                                        <TipoDesglose xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">
                                                <DesgloseFactura>
                                                        <Sujeta>
                                                                <NoExenta>
                                                                        <TipoNoExenta>S1</TipoNoExenta>
                                                                        <DesgloseIVA>
                                                                                <DetalleIVA>
                                                                                        <TipoImpositivo>21.00</TipoImpositivo>
                                                                                        <BaseImponible>100.00</BaseImponible>
                                                                                        <CuotaRepercutida>21.00</CuotaRepercutida>
                                                                                </DetalleIVA>
                                                                        </DesgloseIVA>
                                                                </NoExenta>
                                                        </Sujeta>
                                                </DesgloseFactura>
                                                <DesgloseTipoOperacion>
                                                        <Entrega>
                                                                <Sujeta>
                                                                        <Exenta>
                                                                                <DetalleExenta>
                                                                                        <CausaExencion>E6</CausaExencion>
                                                                                        <BaseImponible>10.00</BaseImponible>
                                                                                </DetalleExenta>
                                                                        </Exenta>
                                                                </Sujeta>
                                                        </Entrega>
                                                </DesgloseTipoOperacion>
                                        </TipoDesglose>

Pero ahora me dice que El XML no cumple el esquema. Falta informar campo obligatorio: TipoDesglose

Y no entiendo por qué, porque el campo existe :(

Confirmado que sí es posible que en la factura haya parte exenta y parte no exenta. En el formulario de facturas expedidas de la AEAT puedo simular una factura igual, añadiendo una sección Sujeta/Exenta, con su BI y Causa de Exención, y otra parte "Sujeta/No Exenta" con el desglose de IVAs.

PEro es lo que he intentado replicar en el XML y me da ese error. No sé si lo estoy generando mal, si hay que poner primero el IVA 0% o qué pasa.

espinete 12-03-2025 12:08:53

Buenos días.

Sigo liado con esto. No consigo entender todas las variantes de DesgloseFactura, DesgloseTipoOperacion, cuándo usar una y cuándo usar otra.
Mi cliente necesita que en una misma factura haya productos con IVA y otros con IVA = 0. Es lo único que sé. No sé el motivo, y creo que ese es el problema, porque entiendo que lo que influye en esto es si es una entrega de bienes, cliente extranjero, etc. Tampoco es que el cliente ayude mucho con la información que me ha dado.

Lo que está claro es que esto no me ha funcionado:

Código:

<TipoDesglose xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">
        <DesgloseFactura>
        <Sujeta>
                <NoExenta>
                        <TipoNoExenta>S1</TipoNoExenta>
                        <DesgloseIVA>
                                <DetalleIVA>
                                        <TipoImpositivo>21.00</TipoImpositivo>
                                        <BaseImponible>100.00</BaseImponible>
                                        <CuotaRepercutida>21.00</CuotaRepercutida>
                                </DetalleIVA>
                        </DesgloseIVA>
                </NoExenta>
        </Sujeta>
        </DesgloseFactura>
        <DesgloseTipoOperacion>
        <Entrega>
                <Sujeta>
                        <Exenta>
                                <DetalleExenta>
                                        <CausaExencion>E6</CausaExencion>
                                        <BaseImponible>10.00</BaseImponible>
                                </DetalleExenta>
                        </Exenta>
                </Sujeta>
        </Entrega>
        </DesgloseTipoOperacion>
</TipoDesglose>

He encontrado este ejemplo en el hilo, pero tampoco sé si es lo correcto o si solo es una de las decenas de variantes que pueda haber. Lo de DesgloseFactura y DesgloseTipoOperacion de verdad que no sé por qué la lían de esta manera:

Código:

<TipoDesglose xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">
        <DesgloseTipoOperacion>
                <Entrega>
                        <Sujeta>
                                <Exenta>
                                        <DetalleExenta>
                                                <CausaExencion>E6</CausaExencion>
                                                <BaseImponible>125.00</BaseImponible>
                                        </DetalleExenta>
                                </Exenta>
                                <NoExenta>
                                        <TipoNoExenta>S1</TipoNoExenta>
                                        <DesgloseIVA>
                                                <DetalleIVA>
                                                        <TipoImpositivo>21.00</TipoImpositivo>
                                                        <BaseImponible>100.00</BaseImponible>
                                                        <CuotaRepercutida>21.00</CuotaRepercutida>
                                                </DetalleIVA>
                                        </DesgloseIVA>
                                </NoExenta>
                        </Sujeta>
                </Entrega>
        </DesgloseTipoOperacion>
</TipoDesglose>


keys 12-03-2025 12:14:02

Por norma general si el cliente es nacional tiene que ir por desglose de factura, y no hay que diferenciar entre bienes o servicios. Si es extranjero va por tipo de operación. En cuanto a las exentas tienes que saber el tipo de exención es, para indicarlo en la causa.

espinete 12-03-2025 12:30:01

Al final he conseguido generarlo de esta manera:

Código:

<TipoDesglose xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">
<DesgloseTipoOperacion>
        <Entrega>
                <Sujeta>
                        <Exenta>
                                <DetalleExenta>
                                        <CausaExencion>E6</CausaExencion>
                                        <BaseImponible>100.00</BaseImponible>
                                </DetalleExenta>
                        </Exenta>
                        <NoExenta>
                                <TipoNoExenta>S1</TipoNoExenta>
                                <DesgloseIVA>
                                        <DetalleIVA>
                                                <TipoImpositivo>21.00</TipoImpositivo>
                                                <BaseImponible>100.00</BaseImponible>
                                                <CuotaRepercutida>21.00</CuotaRepercutida>
                                        </DetalleIVA>
                                </DesgloseIVA>
                        </NoExenta>
                </Sujeta>
        </Entrega>
</DesgloseTipoOperacion>
</TipoDesglose>

He leído que una factura NO puede contener ambos bloques juntos DesgloseFactura y DesgloseTipoOperacion, así que he optado por usar DesgloseTipoOperacion cuando se trate de facturas raras como esta.

newtron 12-03-2025 14:02:19

Cita:

Empezado por espinete (Mensaje 562637)
Al final he conseguido generarlo de esta manera:

Código:

<TipoDesglose xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">
<DesgloseTipoOperacion>
    <Entrega>
        <Sujeta>
            <Exenta>
                <DetalleExenta>
                    <CausaExencion>E6</CausaExencion>
                    <BaseImponible>100.00</BaseImponible>
                </DetalleExenta>
            </Exenta>
            <NoExenta>
                <TipoNoExenta>S1</TipoNoExenta>
                <DesgloseIVA>
                    <DetalleIVA>
                        <TipoImpositivo>21.00</TipoImpositivo>
                        <BaseImponible>100.00</BaseImponible>
                        <CuotaRepercutida>21.00</CuotaRepercutida>
                    </DetalleIVA>
                </DesgloseIVA>
            </NoExenta>
        </Sujeta>
    </Entrega>
</DesgloseTipoOperacion>
</TipoDesglose>

He leído que una factura NO puede contener ambos bloques juntos DesgloseFactura y DesgloseTipoOperacion, así que he optado por usar DesgloseTipoOperacion cuando se trate de facturas raras como esta.


^\||/ Gracias por compartir la solución compañero.

espinete 12-03-2025 15:08:26

Me da rabia porque le hemos pedido al cliente que nos detalle el tipo de factura que tiene que hacer exactamente (si es intracomunitaria o por cualquier otro motivo) y nos ha respondido "Ya les he enviado la ley, léanla y consulten con su gestor".

Le diré que yo tardo mucho en leer y que, probablemente, hasta finales de Mayo no termine la primeras 10 páginas.

newtron 12-03-2025 16:35:18

Cita:

Empezado por espinete (Mensaje 562640)
Me da rabia porque le hemos pedido al cliente que nos detalle el tipo de factura que tiene que hacer exactamente (si es intracomunitaria o por cualquier otro motivo) y nos ha respondido "Ya les he enviado la ley, léanla y consulten con su gestor".

Le diré que yo tardo mucho en leer y que, probablemente, hasta finales de Mayo no termine la primeras 10 páginas.


Buen rollito ¿no?.


A mi se me ocurre en principio un ejemplo habitual que son gastos financieros en una factura. Según creo esos gastos no llevarían iva.


Saludos.

keys 13-03-2025 08:29:37

Cita:

Empezado por espinete (Mensaje 562640)
Me da rabia porque le hemos pedido al cliente que nos detalle el tipo de factura que tiene que hacer exactamente (si es intracomunitaria o por cualquier otro motivo) y nos ha respondido "Ya les he enviado la ley, léanla y consulten con su gestor".

Le diré que yo tardo mucho en leer y que, probablemente, hasta finales de Mayo no termine la primeras 10 páginas.

Una factura puede ser exenta o tener partes exentas por muchos motivos. Debería ser el cliente el que te diga el motivo. Ya que por mucho que te sepas la ley si no sabes la naturaleza de la factura poco puedes hacer. Vaya Tela :(

rci 21-03-2025 16:23:33

Facturas de COMPRA con el IVA de otro país de la UE
 
Hola, un usuario de nuestro programa me ha mostrado facturas recibidas (facturas de compra) de un proveedor de Portugal, que tienen un IVA del 23%.
Las ha entrado normal como facturas de compra interiores y cuando las envía a SII las rechaza porque el tipo impositivo no es válido.

Como se tienen que enviar esas facturas de compras con un IVA de otro país de la Unión Europea?

En ventas hay la Ventanilla Única (OSS) y ya lo tenemos implementado pero no se si esto existe también en compras y como se debe enviar.

Muchas gracias

keys 24-03-2025 08:21:56

Cita:

Empezado por rci (Mensaje 562950)
Hola, un usuario de nuestro programa me ha mostrado facturas recibidas (facturas de compra) de un proveedor de Portugal, que tienen un IVA del 23%.
Las ha entrado normal como facturas de compra interiores y cuando las envía a SII las rechaza porque el tipo impositivo no es válido.

Como se tienen que enviar esas facturas de compras con un IVA de otro país de la Unión Europea?

En ventas hay la Ventanilla Única (OSS) y ya lo tenemos implementado pero no se si esto existe también en compras y como se debe enviar.

Muchas gracias

Lo primero que tienes que saber es si se trata de una operación intracomunitaria o no. En compras no hay OSS eso sólo es ventas.

sglorka 24-03-2025 08:30:19

Cita:

Empezado por rci (Mensaje 562950)
Hola, un usuario de nuestro programa me ha mostrado facturas recibidas (facturas de compra) de un proveedor de Portugal, que tienen un IVA del 23%.
Las ha entrado normal como facturas de compra interiores y cuando las envía a SII las rechaza porque el tipo impositivo no es válido.

Como se tienen que enviar esas facturas de compras con un IVA de otro país de la Unión Europea?

En ventas hay la Ventanilla Única (OSS) y ya lo tenemos implementado pero no se si esto existe también en compras y como se debe enviar.

Muchas gracias

Estas facturas no se pueden subir al SII y tampoco forman parte del libro de facturas recibidas ya que ese Iva no es español. Se debe imputar como mayor gasto en la contabilidad aunque puedes reclamar el Iva que has pagado siguiendo un procedimiento que está documentado y cumpliendo una serie de condiciones. Hay bastante documentación al respecto en Internet

rci 24-03-2025 09:02:53

Cita:

Empezado por keys (Mensaje 563009)
Lo primero que tienes que saber es si se trata de una operación intracomunitaria o no. En compras no hay OSS eso sólo es ventas.

Muchas gracias Keys, no lo se. Mi cliente va a preguntar a su asesor.
Pero me parece que las intracomunitarias son exentas, por eso pensaba que no seria el caso, ya que se ha aplicado un IVA.

Cita:

Empezado por sglorka (Mensaje 563011)
Estas facturas no se pueden subir al SII y tampoco forman parte del libro de facturas recibidas ya que ese Iva no es español. Se debe imputar como mayor gasto en la contabilidad aunque puedes reclamar el Iva que has pagado siguiendo un procedimiento que está documentado y cumpliendo una serie de condiciones. Hay bastante documentación al respecto en Internet

Muchas gracias sglorka por la información. lo tendré en cuenta. No se como lo gestionaremos porque claro, en nuestro programa aparecen y el cliente las intenta enviar al SII y se rechazan.


Saludos

keys 24-03-2025 09:17:28

Cita:

Empezado por rci (Mensaje 563013)
Muchas gracias Keys, no lo se. Mi cliente va a preguntar a su asesor.
Pero me parece que las intracomunitarias son exentas, por eso pensaba que no seria el caso, ya que se ha aplicado un IVA.



Muchas gracias sglorka por la información. lo tendré en cuenta. No se como lo gestionaremos porque claro, en nuestro programa aparecen y el cliente las intenta enviar al SII y se rechazan.


Saludos

Por eso te digo. Si es intracomunitaria le han hecho mal la factura. Si no. Pues como te ha indicado el compañero, no hay que declararla en el sii.

Galahad 16-04-2025 16:19:11

Factura Recibida sin identificar
 
Hola, buenas tardes.

Una pregunta,, me pregunta un cliente como pasa una factura de proveedor sin identificar (ticket)
Por un lado , en el diseño de registro me parece ver que el dato del nif del proveedor es obligatorio para el registro de factura recibida, pero utilizando el asistente virtual de la aeat si que parece ser que indica que se puede pasar una factura recibida sin identificar al proveedor.
¿ alguien tiene información al respecto ?
Un saludo..

Galahad 17-04-2025 08:26:37

Facturas Recibidas sin identificar (tickets)
 
Hola, buenos días.
Tenemos un cliente que quiere pasar tickets de proveedores sin identificar el nif de dicho proveedor.
En el esquema figura el nif contraparte como obligatorio, pero me comenta el cliente que su asesor le dice que si se puede hacer.

Estoy haciendo pruebas cambiando el tipo de factura a F2 pero tengo problemas con la identificacón del nif...
¿ alguién sabe si se puede pasar un ticket recibido sin nif ? (aunque sea sin desgravarse el iva)
gracias

pablog2k 17-04-2025 09:02:05

pero es legal emitir un documento 'oficial' (factura o ticket) sin identificarte?
sin identificar al destinatario si, que es un ticket de toda la vida, f2, pero tú siempre vas identificado como proveedor.
por eso cuando metes un ticket de proveedor, te pide que lo identifiques....
igual estoy equivocado, llama a hacienda y comentales tu caso....

Galahad 17-04-2025 09:38:43

[quote=pablog2k;563872]pero es legal emitir un documento 'oficial' (factura o ticket) sin identificarte?
gracias pablo, si, creo que tienes razón.

por cierto el asistente virtual de la aeat dice que si se puede, pero creo que es porque se confunde con las emitidas.
estamos apañados,,,
gracias por contestar, un saludo..

sglorka 14-10-2025 11:19:52

Buenos días.
Alguien sabe si la direcciones de los endpoints de pruebas para el SII han cambiado ?. Y si es así, sabéis cuales son los actualizados
Gracias

keys 14-10-2025 11:23:34

Yo tengo esto para emitidas.

https://prewww1.aeat.es/wlpl/SSII-FA...iiFactFEV1SOAP

sglorka 14-10-2025 11:29:35

Gracias keys
Parece que no funciona, imagino que será algo temporal

keys 14-10-2025 11:30:37

a mi si me funciona

sglorka 14-10-2025 11:56:05

Si que funciona, estaba utilizando un certificado caducado jeje.
Gracias

newtron 19-01-2026 17:20:09

¿Unidad SuministroFactEmitidas?
 
Hola a tod@s.


Como es un tema que casi nadie usa no me he dado cuenta antes pero me estoy percatando de que las llamadas que hago para anular facturas no me funcionan. El caso es que el objeto HTTPRIO crea el fichero XML de forma correcta pero no sé qué pasa que me da un error "El documento XML debe tener un elemento de nivel superior. Line 0".


He probado a adjuntar el XML que genera directamente en la web de pruebas y lo procesa correctamente por lo que otra cosa que se me ha ocurrido es que mi unidad SuministroFacEmitidas que se genera importando el WSDL esté desactualizada o algo porque es de 2021. Por esto he probado a volver a importar el WSDL pero me genera una unidad muy pequeña y con pocas líneas que no es correcta. No sé si estoy haciendo algo mal en la importación porque esto me suena que ya me ha pasado y no recuerdo cómo se resolvió.


¿Alguien me puede indicar cómo importar correctamente el WSDL (tengo delphi berlin) o en su defecto pasarme la unidad SuministroFactEmitidas.pas y SuministroFactRecibidas correctas?


Gracias y un saludo.

keno_71 19-01-2026 18:43:51

archivos sii
 
1 Archivos Adjunto(s)
Te subo los que yo uso, la verdad que no los he tocado hace años, creo que 2023, están modificados para según el ejecutable REAL o PRUEBAS seleccione un url u otro, miralo

saludos

newtron 19-01-2026 18:57:38

Cita:

Empezado por keno_71 (Mensaje 571737)
Te subo los que yo uso, la verdad que no los he tocado hace años, creo que 2023, están modificados para según el ejecutable REAL o PRUEBAS seleccione un url u otro, miralo

saludos


Gracias compañero pero, por la cabecera, creo que esto que me pasas es hasta anterior al mío, tiene fecha de 2020. Si a ti te funcionan las bajas entiendo que mi problema será otro.


Gracias y un saludo.

keno_71 19-01-2026 19:32:17

sii
 
No estoy seguro si funcionan las bajas newtron, la verdad que los clientes que lo usan no me han llamado con ningún error, pero yo tampoco las he probado, es algo que no te puedo asegurar.

newtron 19-01-2026 20:01:34

Cita:

Empezado por keno_71 (Mensaje 571739)
No estoy seguro si funcionan las bajas newtron, la verdad que los clientes que lo usan no me han llamado con ningún error, pero yo tampoco las he probado, es algo que no te puedo asegurar.


Vale. Gracias.


La franja horaria es GMT +2. Ahora son las 10:49:47.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi