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)

PASPAS 12-06-2017 10:26:57

Consultas AEAT
 
Buenas...
Soy yo el único o no va bien el sistema de contactar de la AEAT.
https://www2.agenciatributaria.gob.e...ambito=Gestion

Me podeis decir si os falla también no puedo enviar ninguna consulta.
Saludos

CMB 12-06-2017 10:28:34

Cita:

Empezado por PASPAS (Mensaje 518062)
Buenas...
Soy yo el único o no va bien el sistema de contactar de la AEAT.
https://www2.agenciatributaria.gob.e...ambito=Gestion

Me podeis decir si os falla también no puedo enviar ninguna consulta.
Saludos

Hoy a las 10:28 me funcionan correctamente las consultas, cambios y bajas. Respuesta rápida.

vboloradito 12-06-2017 10:31:03

Cita:

Empezado por ja_73 (Mensaje 517986)
Hola,
primero que nada, agradecer a la gente del foro, ya que muchisimas dudas ya están resueltas en este hilo.
se me plantea el siguiente problema:
tengo una gasolinera, donde muchas veces no se emiten facturas simplificadas se le suministra al cliente y el cliente se va y no pide factura ni nada,
al finalizar el día se contabilizan los litros que salieron del surtidor, se multiplican por el importe de venta, y tenemos el total de ventas del día con su correspondiente iva.
puedo emitir una factura en la que el emisor y el receptor soy yo mismo para declarar este iva y no enviar las facturas simplificadas o tengo obligación de enviar las facturas simplificadas, recordad que muchas veces no se generan facturas simplificadas por cada operacion.
muchas gracias.

un ticket es una factura simplificada.
una factura "normal" es en la que figura el nif del cliente.
tendrias que enviar un resumen con todos los tickets del dia. indicando el no del primer ticket y del ultimo. en un solo xml.

3.19. ¿Qué requisitos deben cumplirse para realizar asientos resumen de facturas emitidas de acuerdo con el art. 63.4 del RD 1624/1992?
Las facturas se expidan en una misma fecha. Se trata por tanto de asientos resumen DIARIOS.
No sea preceptiva la identificación del destinatario.
El devengo de las operaciones documentadas se haya producido dentro de un mismo mes natural.

mrobles 12-06-2017 10:36:28

Ahora, al ver uno de los ejemplos del otro post, me surgió una duda sobre como emitir intracomunitarias

Pone que la hace como emitida:
Código:

<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <SOAP-ENV:Body>
        <SuministroLRFacturasEmitidas
                xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd">
            <Cabecera>
                <IDVersionSii>0.7</IDVersionSii>
                <Titular>
                    <NombreRazon>EMPRESA SL</NombreRazon>
                    <NIF>B9999999</NIF>
                </Titular>
                <TipoComunicacion>A0</TipoComunicacion>
            </Cabecera>
            <RegistroLRFacturasEmitidas>
                <PeriodoImpositivo>
                    <Ejercicio>2017</Ejercicio>
                    <Periodo>01</Periodo>
                </PeriodoImpositivo>
                <IDFactura>
                    <IDEmisorFactura>
                        <NIF>B9999999</NIF>
                    </IDEmisorFactura>
                    <NumSerieFacturaEmisor>17/ AC/000663</NumSerieFacturaEmisor>
                    <FechaExpedicionFacturaEmisor>24-01-2017</FechaExpedicionFacturaEmisor>
                </IDFactura>
                <FacturaExpedida>
                    <TipoFactura>F1</TipoFactura>
                    <ClaveRegimenEspecialOTrascendencia>01</ClaveRegimenEspecialOTrascendencia>
                    <ImporteTotal>475.67</ImporteTotal>
                    <DescripcionOperacion>Factura a cliente</DescripcionOperacion>
                    <Contraparte>
                        <NombreRazon>CLIENTE COMUNITARIO LTD.</NombreRazon>
                        <IDOtro>
                            <CodigoPais>IE</CodigoPais>
                            <IDType>04</IDType>
                            <ID>IE9999999J</ID>
                        </IDOtro>
                    </Contraparte>
                    <TipoDesglose>
                        <DesgloseTipoOperacion>
                            <Entrega>
                                <Sujeta>
                                    <Exenta>
                                        <CausaExencion>E5</CausaExencion>
                                        <BaseImponible>475.67</BaseImponible>
                                    </Exenta>
                                </Sujeta>
                            </Entrega>
                        </DesgloseTipoOperacion>
                    </TipoDesglose>
                </FacturaExpedida>
            </RegistroLRFacturasEmitidas>
        </SuministroLRFacturasEmitidas>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Pero creo que es en otro endpoint distinto
Código:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                  xmlns:sum="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd"
                  xmlns:sum1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">
    <soapenv:Header/>
    <soapenv:Body>
        <sum:SuministroLRDetOperacionIntracomunitaria>
            <sum1:Cabecera>
                <sum1:IDVersionSii>0.7</sum1:IDVersionSii>
                <sum1:Titular>
                    <sum1:NombreRazon>EMPRESAYYYYY</sum1:NombreRazon>
                    <sum1:NIF>N0041746I</sum1:NIF>
                </sum1:Titular>
                <sum1:TipoComunicacion>A0</sum1:TipoComunicacion>
            </sum1:Cabecera>
            <sum:RegistroLRDetOperacionIntracomunitaria>
                <sum1:PeriodoImpositivo>
                    <sum1:Ejercicio>2017</sum1:Ejercicio>
                    <sum1:Periodo>02</sum1:Periodo>
                </sum1:PeriodoImpositivo>
                <sum:IDFactura>
                    <sum1:IDEmisorFactura>
                        <sum1:NombreRazon>EMPRESAYYYYY</sum1:NombreRazon>
                        <sum1:NIF>N0041746I</sum1:NIF>
                    </sum1:IDEmisorFactura>
                    <sum1:NumSerieFacturaEmisor>00001</sum1:NumSerieFacturaEmisor>
                    <sum1:FechaExpedicionFacturaEmisor>01-01-2017</sum1:FechaExpedicionFacturaEmisor>
                </sum:IDFactura>
                <sum:Contraparte>
                    <sum1:NombreRazon>EMPRESAXXX</sum1:NombreRazon>
                    <sum1:NIF>A84532501</sum1:NIF>
                </sum:Contraparte>
                <sum:OperacionIntracomunitaria>
                    <sum1:TipoOperacion>A</sum1:TipoOperacion>
                    <sum1:ClaveDeclarado>D</sum1:ClaveDeclarado>
                    <sum1:EstadoMiembro>FR</sum1:EstadoMiembro>
                    <sum1:DescripcionBienes>Descripcion</sum1:DescripcionBienes>
                    <sum1:DireccionOperador>Direccion</sum1:DireccionOperador>
                </sum:OperacionIntracomunitaria>
            </sum:RegistroLRDetOperacionIntracomunitaria>
        </sum:SuministroLRDetOperacionIntracomunitaria>
    </soapenv:Body>
</soapenv:Envelope>


xamminf 12-06-2017 10:39:33

AISAN, gracias por responder.

Inicialmente tenia el WS de la consulta simple del NIF. Pero con 25.000 nif a comprobar... tenia hasta cortes en la comunicacion. Ahi no tenia problemas, salvo los normales, de codificacion.

Paso al WS de consulta de nif multiple y es cuando me vienen los problemas CON ALGUNOS caracteres, como los superindices º ª.

Tu diras, pues los sustituyes y ya esta. Si eso hice desde el primer momento, CUANDO PUDE DETECTAR EL PROBLEMA, porque el WS te devuelve un bonito error de sintaxis para los 25.000 sin especificar el que esta mal. Asi que tuve que correr la consulta multiple UNO a UNO.

Ahora bien, mi paranoia es: He detectado el ª º pero ¿ quien me dice a mi que en otra bbdd no hay un nombre que contiene algo que no acepta el WS y me toca hacerlo de uno en uno otra vez ? ¿ Tengo que pedir a todos mis clientes la bbdd para saber si tienen algun declarado con algun caracter en el nombre que rechaza el WS ?

Asi, y como decia al principio: falta de informacion de los caracteres admitidos, sólo tenemos un "permitido todo lo que sea UTF8 y cambiar % y > por tal y tal"... Eso no es cierto y este hilo lo está demostrando con las respuestas que alguno ya me habeis dado y que agradezco nuevamente.

Cita:

Empezado por AlSan (Mensaje 518060)
OJO: Creo que el problema no viene por la codificación de caracteres, sino por como está registrado el nombre en la AEAT.
Esto liga con el tema sobre el que ya intervine la semana pasada, el tema de los NIFs no identificados por AEAT.
De hecho yo me he encontrado con un caso real de una Mª que me la daba como ni identificada; al poner MARIA ya me la aceptó sin problemas.
Pero no creo que sea por culpa del carácter "ª", lo mismo hubiese pasado con cualquier otra abreviatura.

Saludos


CMB 12-06-2017 10:43:35

Cita:

Empezado por mrobles (Mensaje 518065)
Ahora, al ver uno de los ejemplos del otro post, me surgió una duda sobre como emitir intracomunitarias. Pone que la hace como emitida:

Yo entiendo que el SuministroLRDetOperacionIntracomunitarias sólo se utiliza en unos casos aislados. Las operaciones con la Unión Europea se registran como emitidas y como recibidas, con algunos cambios, como el IDOtro y el DesgloseTipoOperación.

Por eso lo llaman "determinadas" operaciones.

Si voy equivocado que alguien lo diga.

Saludos,

mrobles 12-06-2017 10:45:44

Cita:

Empezado por CMB (Mensaje 518067)
Yo entiendo que el SuministroLRDetOperacionIntracomunitarias sólo se utiliza en unos casos aislados. Las operaciones con la Unión Europea se registran como emitidas y como recibidas, con algunos cambios, como el IDOtro y el DesgloseTipoOperación.

Por eso lo llaman "determinadas" operaciones.

Si voy equivocado que alguien lo diga.

Saludos,

Lo comprendo, pero en que caso debo de utilizar esta.
Siendo sincero, yo soy programador, pero de facturación ando mas bien corto de conocimiento.

CMB 12-06-2017 10:59:33

Cita:

Empezado por mrobles (Mensaje 518069)
Lo comprendo, pero en que caso debo de utilizar esta.
Siendo sincero, yo soy programador, pero de facturación ando mas bien corto de conocimiento.

No tengo mucha idea, tan poca como tú, pero lo de las determinadas operaciones intracomunitarias lo estoy ignorando como si no existiera. Hay por ahí alguna referencia legal al BOE, por si te quieres entretener, pero creo que no merece la pena.

Saludos,

usr3010 12-06-2017 11:25:37

Hola, buenos dias.

Efectivamente yo también estoy haciendo como CMB ... Envío las facturas de entregas a la CEE como ventas normales sólo que usando como ID el 02 (NIF-VAT) y listo ...
Según la normativa, y a mi entender, las "Determinadas" parecen ser entregas de bienes para peritajes y otros temas creo que no relacionados con la venta o compra normal de bienes y servicios ...

Al respecto de esto, me ha pasado lo siguiente:

Cuendo empecé en febrero, usé SOAPUI para generar archivos XML de prueba. Configuré el certificado de la empresa y subí los primeros XML de "prueba" ...
Resulta que me ha caducado el certificado de la AEAT y el nuevo, emitido en nombre del Gerente en representación de la empresa, me está
dando problemas y no puedo subir ni XML's LRFE ni LRFR ...

Una vez en marcha dejé de usar SOAPUI y sólo lo usé para importar las definiciones del WSDL a las plantillas que uso en mi ERP ... Así que se borró la configuración
de Seguridad que tenía originalmente registrada ...

Recuerdo que había que registrar en WS-Security Configurations el certificado para identificar el origen de la transacción, pero no recuero qué parámetros exactos se
tenía que poner ...

Así que si alguno de vosotros lo tiene en marcha, o lo recuerda, por favor, que me refresque qué se tiene que poner en la pestaña Outgoing WS-Secutity
Options para ver si los problemas que tengo vienen del certificado renovado que no me vale para la AEAT ...

Gracias y un saludo.

figo21 12-06-2017 11:32:13

Cita:

Empezado por usr3010 (Mensaje 518071)
Hola, buenos dias.

Efectivamente yo también estoy haciendo como CMB ... Envío las facturas de entregas a la CEE como ventas normales sólo que usando como ID el 02 (NIF-VAT) y listo ...
Según la normativa, y a mi entender, las "Determinadas" parecen ser entregas de bienes para peritajes y otros temas creo que no relacionados con la venta o compra normal de bienes y servicios ...

Al respecto de esto, me ha pasado lo siguiente:

Cuendo empecé en febrero, usé SOAPUI para generar archivos XML de prueba. Configuré el certificado de la empresa y subí los primeros XML de "prueba" ...
Resulta que me ha caducado el certificado de la AEAT y el nuevo, emitido en nombre del Gerente en representación de la empresa, me está
dando problemas y no puedo subir ni XML's LRFE ni LRFR ...

Una vez en marcha dejé de usar SOAPUI y sólo lo usé para importar las definiciones del WSDL a las plantillas que uso en mi ERP ... Así que se borró la configuración
de Seguridad que tenía originalmente registrada ...

Recuerdo que había que registrar en WS-Security Configurations el certificado para identificar el origen de la transacción, pero no recuero qué parámetros exactos se
tenía que poner ...

Así que si alguno de vosotros lo tiene en marcha, o lo recuerda, por favor, que me refresque qué se tiene que poner en la pestaña Outgoing WS-Secutity
Options para ver si los problemas que tengo vienen del certificado renovado que no me vale para la AEAT ...

Gracias y un saludo.

Yo estoy usando dos certificados de representación y no tengo problemas.

Entra al portal de pruebas de la AEAT usando ese certificado y te debe permitir acceder sin problemas.


Un saludo.

mrobles 12-06-2017 11:39:51

Debo suponer entonces que solo hacéis 2 diferenciaciones (aparte de bienes de inversión y la de seguros).

1- Envió de todas la emitidas (tanto comunitarias, como intracomunitaras y exportaciones), todas a "SuministroLRFacturasEmitidas" cambiando "ClaveRegimenEspecialOTrascendencia" y "CausaExencion" (aparte del "Contraparte")

2- Y lo mismo que en el anterior pero para recibidas.

Siendo asi, me ahorro muchos problemas al importarme listados de facturas y generar los xmls de envió.

usr3010 12-06-2017 11:43:47

Error Certificado
 
Cita:

Empezado por figo21 (Mensaje 518072)
Yo estoy usando dos certificados de representación y no tengo problemas.

Entra al portal de pruebas de la AEAT usando ese certificado y te debe permitir acceder sin problemas.

Un saludo.

Sí, si la consulta de Facturas desde el portal WEB SII me funciona sin problemas, pero cuando envío XML's con el certificado nuevo (el viejo caducó el pasado viernes 9 de Junio) nada de nada ... y lo más extraño es que vía WS debe haber algún problema porque no me responde el mismo error que me da con SOAPUI ...

He usado openssl para extraer la clave privada:

# openssl pkcs12 -in RutaAlCertificado.pfx -nocerts -out RutaClavePrivada-key.pem -nodes

y para el certificado (Clave Publica) uso:

# openssl pkcs12 -in RutaAlCertificado.pfx -nokeys -out RutaCertificado-cer.pem

La subida a la AEAT la hago usando Node.JS ...

Pero como supongo que no tengo bien configurado en SOAPUI el certificado (que debe ser bueno porque entro con él al portal WEB de la AEAT) lo que querría es ver el mensaje "correcto" XML que genera SOAPUI para enviar al servicio WEB SII, para comparar éste con el que genero yo vía Node.JS antes de subirlo y corregir el error ...

Gracias.

usr3010 12-06-2017 12:11:36

Certificados Representacion son Correctos + Total Factura Importaciones DUA
 
Perdón por el despiste ... Los lunes ...
Estaba yo con la manía de que el XML se envíaba firmado, y no, sólo se envía autenticado ... Y me faltaba actualizar la ruta al certificado nuevo ... Vaya tela !!!
Qué despistado y qué susto !!!
En fin ... Que los certificados de Representación funcionan perfectamente ...

Aprovecho para preguntaros un tema sobre Importaciones con DUA ... Os digo como lo estoy haciendo:

Como Base Imponible pongo la que usa Aduana para calcular el IVA ... Normalmente compuesta por el Valor Calculado por Aduana + Derechos Aduana + Otros Conceptos ...
Como cuota IVA, la indicada por Aduana ... y este mismo importe es que el registro como deducible al final del XML ...
Pero como Total factura, dejo el importe original de la Factura del Proveedor ... Dado que en los manuales del SII no indica nada del total factura ...
Así tengo una factura de una Importación de EEUU presentada "correcta" en el SII que queda así:

(Copio y pego texto desde portal WEB-SII de la AEAT)

Datos Periodo
Ejercicio: 2017Periodo: 04

Datos Factura Emisor
Código País Emisor: ESTADOS UNIDOS DE AMÉRICA (US)Tipo de Identificación Emisor: Documento oficial de identificación expedido por el país o territorio de residenciaIdentificador Emisor: 474369183Nº Serie + Nº Factura: 4731Fecha Expedición: 15-02-2017Nombre o Razón Social Factura Emisor: >DEL MAR TRADING, L.L.C.

Datos de Operacion
Descripción Operación: Importaciones

Datos Registro Contable
Fecha Registro Contable: 25-04-2017

Clasificación de Tipo de Factura
Tipo de factura: F5: Importaciones DUA

Datos de Factura
Importe Total: 94352.29Clave de Régimen Especial: 01: Operación de régimen general

Datos de Desglose

Tipo Impositivo(%) Base Imponible Cuota Soportada Tipo Recargo Equivalencia(%) Cuota Recargo Equivalencia Porcentaje Compensacion REAGYP(%) Importe Compensacion REAGYP(%)
4.00 97840.91 3913.64

Datos Cuotas
Cuota Deducible: 3913.64


Es decir, el total factura por 94352.29€ y la Base Imponible + el IVA por 97840.91 + 3913.64 ...

Mi pregunta es ... ? ¿ Vosotros también las registraís así o estáis actualizando el Total Factura el importe Base + Cuota IVA ?

Ah, y finalmente ... ¿ sabeís de algún sitio WEB donde poder buscar los TIN (TaxPayer ID Number) para consultar ID de empresas de EEUU porque muchas de sus facturas vienen sin ningún tipo de ID, ni siquiera en el DUA vienen registrados ... ?

Gracias y un saludo ...

figo21 12-06-2017 12:23:56

Cita:

Empezado por usr3010 (Mensaje 518075)
Perdón por el despiste ... Los lunes ...
Estaba yo con la manía de que el XML se envíaba firmado, y no, sólo se envía autenticado ... Y me faltaba actualizar la ruta al certificado nuevo ... Vaya tela !!!
Qué despistado y qué susto !!!
En fin ... Que los certificados de Representación funcionan perfectamente ...

El importe total es un valor opcional.
Yo estoy haciendo lo que se comentó en el foro hace varios días, todo lo opcional no lo envío.


Un saludo.

usr3010 12-06-2017 12:27:47

Cita:

Empezado por figo21 (Mensaje 518076)
El importe total es un valor opcional.
Yo estoy haciendo lo que se comentó en el foro hace varios días, todo lo opcional no lo envío.
Un saludo.

Ok, así lo haré entonces ...

Gracias por tu respuesta figo21 ...

xamminf 12-06-2017 12:29:07

Opcional también es el Recargo de Equivalencia... y ¿ lo envias ?

Cita:

Empezado por figo21 (Mensaje 518076)
El importe total es un valor opcional.
Yo estoy haciendo lo que se comentó en el foro hace varios días, todo lo opcional no lo envío.


Un saludo.


figo21 12-06-2017 12:38:49

Cita:

Empezado por xamminf (Mensaje 518078)
Opcional también es el Recargo de Equivalencia... y ¿ lo envias ?

Sí, el recargo sí lo envío.
El caso es que si no se envía el recargo puede dar parcialmente contrastada la factura, porque no cuadraría el recargo.


Un saludo.

xamminf 12-06-2017 12:47:25

Muchas gracias !

Cita:

Empezado por figo21 (Mensaje 518079)
Sí, el recargo sí lo envío.
El caso es que si no se envía el recargo puede dar parcialmente contrastada la factura, porque no cuadraría el recargo.


Un saludo.


nincillo 12-06-2017 13:42:56

Cita:

Empezado por nincillo (Mensaje 518008)
Ante todo, muchas gracias por el código que publicaste en su momento y ahora por los endpoints.

La duda que me surge ahora es la siguiente: La generación de los xml la haces a "mano" o mediante la importación de los WDSL.

Es que yo desde Delphi 2007 he sido incapaz de importarlos.

Gracias y un saludo.

Por fin ya he conseguido importar los WDSL
.
Donde he atascado ahora es al hacer la llamada:

Código:

Result := GetsiiSOAP(true, '', HTTPRIO1).SuministroLRFacturasEmitidas(ASuministroLRFacturasEmitidas);
El Evento OnBeforeExecute me salta en él puedo crear el fichero XML físico pero lo que no consigo es hacer el envío propiamente dicho ya que me salta el mensaje de que no hay un certificado válido.

No consigo saber como asignarle previamente el certificado a utilizar o simplemente forzar el que salgan la ventana típica con la relación de los certificados instalados para que se pueda seleccionar el deseado en cada momento.

A ver si alguien me puede dar un empujón!!!!

Gracias.

jordimmcc 12-06-2017 16:10:47

Cita:

Empezado por jlegido (Mensaje 514238)
Hola angelhorse,

Estoy siguiendo un metodo parecido al tuyo, es decir lo hago en VB.Net, pero generando el archivo xml de forma manual (es decir son uso objetos generados al importa la referencia al servicio web).
Bueno el tema es que creo tener todo bien pero estoy en un atasco del que no puedo salir y ando ya desesperado, creo que tu me puedes echar un cable.
Tengo el archivo xml correcto y bien formado y con datos reales
Tengo un certificado (en archivo .pfx) correcto y verificado (he hecho envios de otra forma y funciona)
Al final la empresa ha decidido hacerlo todo sin usar los objetos generados al importar la referencia al servicio web, es decir que no tengo un objeto de tipo SuministroLRFacturasEmitidas con el que hacer las usuales lineas:
Código:

    Dim resul As RespuestaLRFEmitidasType
        resul = proxy.SuministroLRFacturasEmitidas(testC)

lo que uso es un objeto System.Net.HttpWebRequest, con el siguiente codigo

Código:

  Dim req As System.Net.HttpWebRequest
      Dim url As String = "*://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP"
      'inicializar propiedades request--------------------------------
      req = HttpWebRequest.Create(url)
      req.Headers.Add("SOAP:Action")
      req.ContentType = "text/xml;charset=""utf-8"""
      req.Accept = "text/xml"
      req.Method = "POST"
      Dim soapEnvelopeXml As XmlDocument = New XmlDocument()
      'cargar xml desde archivo
      Dim filename As String = "h:\facturaEmitidaMODEL1_1_1.xml"
      soapEnvelopeXml.Load(filename)

      'certificado---------------------------------------------------
      Dim cert As System.Security.Cryptography.X509Certificates.X509Certificate2
      Dim sRutaCert As String = "H:\Certificado.pfx"
      Dim sClaveCert As String = "xy123"
      cert = New System.Security.Cryptography.X509Certificates.X509Certificate2(sRutaCert, sClaveCert)
      req.ClientCertificates.Add(cert)

      'recoger respuesta 1-----------------------------------------
      Dim resp As WebResponse = req.GetResponse()
      Dim reader As StreamReader = New StreamReader(resp.GetResponseStream())
      Dim soapResult As String = reader.ReadToEnd()

Y aqui es donde me quedo totalmente atascado, me da un mensaje super largo, del cual solo posteo lo inicial, que es:

Código:

<?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:env="*://schemas.xmlsoap.org/soap/envelope/"><env:Body><env:Fault><faultcode>env:Client</faultcode><faultstring>Codigo[1304].Fin prematuro del archivo. (-1,-1)</faultstring><detail><callstack>XML no válido o mal formado
Pero por mas que repaso y repaso no veo que el xml no sea valido o este mal formado y sobre el “Fin prematuro de archivo” no he encontrado nada de anda en internet.
¿Qué codigo usas tu para enviarlo?

Muchas gracias por tu ayuda
Saludos

P.D. donde pongo * me refiero a una enlace (No me deja copiarlos tal cual) xD

[/quote]
Buenas tardes jlejido, a mi me ocurre lo mismo, ¿has podido resolver el problema?

Un saludo.

mrobles 12-06-2017 17:04:57

Ando usando para validar los NIF las siguientes paginas, pero creo que como comentaron esta mañana, me esta dando errores los caracteres "extraños" como 'º', 'ª', '/', 'ñ' (no se cual realmente). ¿Alguien sabe el listado de caracteres no validos?
https://www1.agenciatributaria.gob.e.../ws/VNifV1SOAP (webservice)
https://www1.agenciatributaria.gob.e...BUGC-JDIT/Cnec (validar CSV)
http://ec.europa.eu/taxation_customs/vies/ (Validar externos)

xamminf 12-06-2017 17:30:49

Yo sólo encontré los que he comentado: º ª

Mis temores al respecto ya los expuse en comentario anterior.

Me llama la atención que esto no haya salido antes en el hilo.
Quizás la gente no ha validado con la opción multiple, sino con el simple.
La cosa es que el simple, que lo probé también, me huele que da error si se hacen muchos request seguidos al WS.

Sólo decir que con el tema de la calidad de datos multiple estuve toda una tarde hasta bien entrada la noche para determinar que lo tenía todo cogido con pinzas: cualquier otro caracter extraño hará eclosionar un fault error del WS, el cual no dice qué es exactamente y donde falla.

Cita:

Empezado por mrobles (Mensaje 518088)
Ando usando para validar los NIF las siguientes paginas, pero creo que como comentaron esta mañana, me esta dando errores los caracteres "extraños" como 'º', 'ª', '/', 'ñ' (no se cual realmente). ¿Alguien sabe el listado de caracteres no validos?
https://www1.agenciatributaria.gob.e.../ws/VNifV1SOAP (webservice)
https://www1.agenciatributaria.gob.e...BUGC-JDIT/Cnec (validar CSV)
http://ec.europa.eu/taxation_customs/vies/ (Validar externos)


Jaketon 12-06-2017 18:44:36

Sobre <CuotaDeducible>
 
Buenas una pregunta a ver si alguien me la puede aclarar en las facturas Recibidas intracomunitarias si nuestra empresa esta inscrita en el ROI( Registro operadores intracomunitarios) en el campo de <sum1:CuotaDeducible> que debemos consignar. Pq en los ejemplo he visto que es 0.00 y no estoy muy seguro.

Saludos.

manelb 12-06-2017 19:01:14

Cita:

Empezado por Jaketon (Mensaje 518096)
Buenas una pregunta a ver si alguien me la puede aclarar en las facturas Recibidas intracomunitarias si nuestra empresa esta inscrita en el ROI( Registro operadores intracomunitarios) en el campo de <sum1:CuotaDeducible> que debemos consignar. Pq en los ejemplo he visto que es 0.00 y no estoy muy seguro.

Saludos.

Pues como más vueltas le doy más ofuscado estoy en este punto...
A ver si alguien nos puede aclarar un poco el tema.

En la Preguntas frecuentes dice:
Cita:

4.4. ¿Cómo se registran las Adquisiciones Intracomunitarias de Bienes y Servicios?
Se anotará la factura recibida del proveedor comunitario en el Libro registro de Facturas Recibidas 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 “Código País” no será obligatorio.
En el campo “Clave Régimen especial o Trascendencia” se consignará el valor 09. Por otra parte, se deberá calcular y consignar la cuota soportada correspondiente a la citada factura así como cumplimentar el campo “Cuota Deducible”.
Pero que quiere decir "calcular y consignar la cuota soportada"??
No es 0 la cuota soportada?

Y "así como cumplimentar el campo Cuota Deducible.".
No es 0 también la cuota deducible?

He visto cantidad de ejemplos diferentes y de varias formas distintas y ya no se con cual quedarme.

CMB 12-06-2017 21:19:01

Cita:

Empezado por manelb (Mensaje 518097)
Pues como más vueltas le doy más ofuscado estoy en este punto...
A ver si alguien nos puede aclarar un poco el tema.
En la Preguntas frecuentes dice:
Pero que quiere decir "calcular y consignar la cuota soportada"??
No es 0 la cuota soportada?
Y "así como cumplimentar el campo Cuota Deducible.".
No es 0 también la cuota deducible?
He visto cantidad de ejemplos diferentes y de varias formas distintas y ya no se con cual quedarme.

Parece que hay casos (ya tratados en anteriores mensajes) en que el proveedor de la UE puede cargar IVA, el tipo de IVA de su país. Del mismo modo que, a la inversa, en algunas ventas a la UE nosotros podemos también cargar IVA. Ver escrito de angelsalom del 8 de junio en http://www.clubdelphi.com/foros/showpost.php?p=517943

Quizás sirva para aclarar tus dudas, que también son las mías :).

Saludos,

manelb 13-06-2017 08:54:05

Cita:

Empezado por CMB (Mensaje 518099)
Parece que hay casos (ya tratados en anteriores mensajes) en que el proveedor de la UE puede cargar IVA, el tipo de IVA de su país. Del mismo modo que, a la inversa, en algunas ventas a la UE nosotros podemos también cargar IVA. Ver escrito de angelsalom del 8 de junio en http://www.clubdelphi.com/foros/showpost.php?p=517943

Quizás sirva para aclarar tus dudas, que también son las mías :).

Saludos,

Gracias CMB por tus aclaraciones. Había visto el mensaje al que haces referencia pero ahora con tu explicación entiendo mejor el concepto.

De todas formas, si hablamos de operación intracomunitaria, jo entendía que las dos partes estaban inscritas en el ROI, por tanto siempre sin IVA. De lo contrario yo no lo entendía como una operación intracomunitaria

En tal caso, y respondiendo al compañero Jaketon(yo lo hago así)
Base = Base Imponible = total factura
Tipo IVA =0
Cuota IVA =0
Cuota deducible =0

Seria correcto de esta forma??

Ñuño Martínez 13-06-2017 09:20:38

Cita:

Empezado por mrobles (Mensaje 518088)
(...) me esta dando errores los caracteres "extraños" como 'º', 'ª', '/', 'ñ' (no se cual realmente). ¿Alguien sabe el listado de caracteres no validos?

No me digáis que esperan ASCII o ISO y no UNICODE (UTF). :eek:

jordimmcc 13-06-2017 09:20:41

Caracteres no admitidos
 
En la impresentable documentación del SII sólo hay esta informarción:
!! No me dejan poner el enlace, pero en la segunda pregunta de cuestiones generales responden: Los permitidos para UTF-8.

Yo personalmente sustituyo los carácteres no admisibles de la tabla que adjunto (x,0) por (x,1).

arrayChars(0, 0) = "Ó"
arrayChars(0, 1) = "a"
arrayChars(1, 0) = "Ë"
arrayChars(1, 1) = "O"
arrayChars(2, 0) = "Ð"
arrayChars(2, 1) = "Ñ"
arrayChars(3, 0) = "±"
arrayChars(3, 1) = "ñ"
arrayChars(4, 0) = "¬"
arrayChars(4, 1) = "ª"
arrayChars(5, 0) = "Ã"
arrayChars(5, 1) = "Ç"
arrayChars(6, 0) = "¾"
arrayChars(6, 1) = "o"
arrayChars(7, 0) = "Ý"
arrayChars(7, 1) = "i"
arrayChars(8, 0) = "þ"
arrayChars(8, 1) = "ç"
arrayChars(9, 0) = "ß"
arrayChars(9, 1) = "a"
arrayChars(10, 0) = "³"
arrayChars(10, 1) = "u"
arrayChars(11, 0) = "Ú"
arrayChars(11, 1) = "e"
arrayChars(12, 0) = "ð"
arrayChars(12, 1) = "Ñ"
arrayChars(13, 0) = "†"
arrayChars(13, 1) = "."

Un saludo.

mrobles 13-06-2017 09:26:11

Cita:

Empezado por xamminf (Mensaje 518090)
Yo sólo encontré los que he comentado: º ª

Mis temores al respecto ya los expuse en comentario anterior.

Me llama la atención que esto no haya salido antes en el hilo.
Quizás la gente no ha validado con la opción multiple, sino con el simple.
La cosa es que el simple, que lo probé también, me huele que da error si se hacen muchos request seguidos al WS.

Sólo decir que con el tema de la calidad de datos multiple estuve toda una tarde hasta bien entrada la noche para determinar que lo tenía todo cogido con pinzas: cualquier otro caracter extraño hará eclosionar un fault error del WS, el cual no dice qué es exactamente y donde falla.

Cita:

Empezado por Ñuño Martínez (Mensaje 518112)
No me digáis que esperan ASCII o ISO y no UNICODE (UTF). :eek:

Cita:

Empezado por jordimmcc (Mensaje 518113)
En la impresentable documentación del SII sólo hay esta informarción:
!! No me dejan poner el enlace, pero en la segunda pregunta de cuestiones generales responden: Los permitidos para UTF-8.

Yo personalmente sustituyo los carácteres no admisibles de la tabla que adjunto (x,0) por (x,1).

arrayChars(0, 0) = "Ó"
arrayChars(0, 1) = "a"
arrayChars(1, 0) = "Ë"
arrayChars(1, 1) = "O"
arrayChars(2, 0) = "Ð"
arrayChars(2, 1) = "Ñ"
arrayChars(3, 0) = "±"
arrayChars(3, 1) = "ñ"
arrayChars(4, 0) = "¬"
arrayChars(4, 1) = "ª"
arrayChars(5, 0) = "Ã"
arrayChars(5, 1) = "Ç"
arrayChars(6, 0) = "¾"
arrayChars(6, 1) = "o"
arrayChars(7, 0) = "Ý"
arrayChars(7, 1) = "i"
arrayChars(8, 0) = "þ"
arrayChars(8, 1) = "ç"
arrayChars(9, 0) = "ß"
arrayChars(9, 1) = "a"
arrayChars(10, 0) = "³"
arrayChars(10, 1) = "u"
arrayChars(11, 0) = "Ú"
arrayChars(11, 1) = "e"
arrayChars(12, 0) = "ð"
arrayChars(12, 1) = "Ñ"
arrayChars(13, 0) = "†"
arrayChars(13, 1) = "."

Un saludo.


La cosa esta en que "creo" que individualmente desde el webservice si que acepta los datos bien, pero no están registrados como "Mª Antonia" sino "María Antonia", pero para validar excels y demás falla de manera impresionante todo. De hecho en el archivo que devuelve, me devuelve un archivo csv separado por ";" y me sustituye las "Ñ" por "ş" con lo que me crea inconscientemente otra columna. Ademas creo que no funciona bien, dado que algunos en el campo donde me debería poner si esta o no esta admitido, me vuelve a poner el NIF (y eso sin hablar de que la mitad de las veces es inaccesible o esta caído el servicio)

Ñuño Martínez 13-06-2017 09:38:51

Cita:

Empezado por mrobles (Mensaje 518114)
La cosa esta en que "creo" que individualmente desde el webservice si que acepta los datos bien, pero no están registrados como "Mª Antonia" sino "María Antonia", pero para validar excels y demás falla de manera impresionante todo. De hecho en el archivo que devuelve, me devuelve un archivo csv separado por ";" y me sustituye las "Ñ" por "ş" con lo que me crea inconscientemente otra columna. Ademas creo que no funciona bien, dado que algunos en el campo donde me debería poner si esta o no esta admitido, me vuelve a poner el NIF (y eso sin hablar de que la mitad de las veces es inaccesible o esta caído el servicio)

Creo que en las negritas está la respuesta. Si usan Microsoft por debajo (que es lo más seguro porque es lo que usa toda la administración pública española), el soporte a UTF-8 será deficiente (suele serlo en Windows), y si el programador de turno ha decidido confiar en el sistema operativo, al hacer la conversión desde/hacia ISO-8859-1 (que es lo que usa Windows para el castellano/español) habrá caracteres que no codifique o que codifique incorrectamente.

[edito]
Cita:

Empezado por jordimmcc (Mensaje 518113)
En la impresentable documentación del SII sólo hay esta informarción:
!! No me dejan poner el enlace, pero en la segunda pregunta de cuestiones generales responden: Los permitidos para UTF-8.

Pues entonces debería permitir todos, incluso en alfabetos no latinos (griego, árabe, cuneiforme...).

newtron 13-06-2017 10:06:16

Cita:

Empezado por manelb (Mensaje 518097)
Pero que quiere decir "calcular y consignar la cuota soportada"??
No es 0 la cuota soportada?....

Yo también estoy algo perdido en ese punto. En las preguntas frecuentes explica que hay que "calcular" e informar del importe del IVA. Yo ahí entiendo que, aunque no se pague, hay que calcularlo y ponerlo, y en principio eso es lo que haré porque por más que pregunto nadie me sabe decir con exactitud qué hacer.

Saludos

mrobles 13-06-2017 10:58:26

Cita:

Empezado por mrobles (Mensaje 518114)
La cosa esta en que "creo" que individualmente desde el webservice si que acepta los datos bien, pero no están registrados como "Mª Antonia" sino "María Antonia", pero para validar excels y demás falla de manera impresionante todo. De hecho en el archivo que devuelve, me devuelve un archivo csv separado por ";" y me sustituye las "Ñ" por "ş" con lo que me crea inconscientemente otra columna. Ademas creo que no funciona bien, dado que algunos en el campo donde me debería poner si esta o no esta admitido, me vuelve a poner el NIF (y eso sin hablar de que la mitad de las veces es inaccesible o esta caído el servicio)

EDITO:
Esa "ş" realmente es un "&# 351 ;" todo junto

didou 13-06-2017 11:11:19

Entorno De Pruebas Sii
 
Buenos días, esta muy bien el foro la verdad y gracias a todos los que habéis aportado vuestro granito de arena para que esto avance y sea menos travesia del desierto, yo ya lo voy consiguiendo gracias a vuestra ayuda, estoy en el punto de comenzar a probar el envio y mi duda es de como hay que llamar a la función GetSiiSOAP y con que parámetros para enviar al entorno de pruebas de la Agencia Tributaria, trabajo con DelphiXe y si me podeis ayudar con un ejemplo de fuente se agradeceria mucho, después para volver a enviar al entorno real de producción, que hay que hacer?

Gracias.

usr3010 13-06-2017 11:13:28

Cita:

Empezado por newtron (Mensaje 518120)
Yo también estoy algo perdido en ese punto. En las preguntas frecuentes explica que hay que "calcular" e informar del importe del IVA. Yo ahí entiendo que, aunque no se pague, hay que calcularlo y ponerlo, y en principio eso es lo que haré porque por más que pregunto nadie me sabe decir con exactitud qué hacer.

Saludos

A lo que se refiere es que debes calcular "al vuelo" y registrar en el XML que se envía la cuota para/y el tipo impositivo correspondiente, tal cual se hace con las adquisiciones intracomunitarias cuando se rellena el 303 ...

mrobles 13-06-2017 11:16:22

Cita:

Empezado por didou (Mensaje 518122)
Buenos días, esta muy bien el foro la verdad y gracias a todos los que habéis aportado vuestro granito de arena para que esto avance y sea menos travesia del desierto, yo ya lo voy consiguiendo gracias a vuestra ayuda, estoy en el punto de comenzar a probar el envio y mi duda es de como hay que llamar a la función GetSiiSOAP y con que parámetros para enviar al entorno de pruebas de la Agencia Tributaria, trabajo con DelphiXe y si me podeis ayudar con un ejemplo de fuente se agradeceria mucho, después para volver a enviar al entorno real de producción, que hay que hacer?

Gracias.

hasta el 15 no están los endpoint de produccion

CMB 13-06-2017 11:41:00

Cita:

Empezado por newtron (Mensaje 518120)
Yo también estoy algo perdido en ese punto. En las preguntas frecuentes explica que hay que "calcular" e informar del importe del IVA. Yo ahí entiendo que, aunque no se pague, hay que calcularlo y ponerlo, y en principio eso es lo que haré porque por más que pregunto nadie me sabe decir con exactitud qué hacer.
Saludos

¿Pero cómo vas a calcular el tipo de IVA sobre la marcha? ¿En base al país de emisión de la factura, o a los tipos aplicables en España? ¿Y cómo sabes si es normal, reducido, superreducido, o cero?

Saludos,

manelb 13-06-2017 12:59:15

Cita:

Empezado por jordimmcc (Mensaje 518113)
En la impresentable documentación del SII sólo hay esta informarción:
!! No me dejan poner el enlace, pero en la segunda pregunta de cuestiones generales responden: Los permitidos para UTF-8.

Yo estoy utilizando la siguiente función que, creo recordar, encontré por aquí en el foro
Código Delphi [-]
{------------------------------------------------------------------------------
 TEnvioFacturas.OStripAccents

  Elimina los caracteres no validos para UTF-8
 ----------------------------------------------------------------------------- }

function TEnvioFacturas.OStripAccents(const aStr: String): String;
type
  USASCIIString = type AnsiString(20127);//20127 = us ascii
begin
  Result := String(USASCIIString(aStr));
end;

jacju 13-06-2017 13:18:54

Buenas, tengo una duda y a la vez una propuesta, alguien a intentado cargar las respuestas del SII mediante el XML mapper y transformarlas
para visualizarlas con un clientdataset.

Es una idea por si se puede realizar ya que siempre me esta dando error al cargar el XML con y sin componente TXMLDocument.

Gracias

usr3010 13-06-2017 13:22:56

Calcular Cuotas IVA
 
Cita:

Empezado por CMB (Mensaje 518125)
¿Pero cómo vas a calcular el tipo de IVA sobre la marcha? ¿En base al país de emisión de la factura, o a los tipos aplicables en España? ¿Y cómo sabes si es normal, reducido, superreducido, o cero?
Saludos,

Lo de "calcular al vuelo" es para Facturas de Compras Intracomunitarias sólamente ... Para importaciones, debes registrar como bases y cuotas lo que viene en el DUA ...

Ahora no tengo a mano el FAQ de la Versió 0.7, pero creo recordar es lo mismo que decía esta versión 0.5, excepto la clave REOT ...

Dice:

4.5. ¿Cómo se registran las Adquisiciones Intracomunitarias de Bienes y Servicios?
Se anotará la factura recibida del proveedor comunitario en el Libro registro de
Facturas Recibidas 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 “Código País” no será obligatorio.
En el campo “Clave Régimen especial o Trascendencia” se consignará el valor 10. Por
otra parte, se deberá calcular y consignar la cuota soportada correspondiente a la
citada factura así como cumplimentar el campo “Cuota Deducible”.

En estos casos no se debe informar con la clave de tipo de operación “S2: Sujeta – No
Exenta – Inv. Suj. Pasivo” que sólo se utiliza cuando el declarante sea sujeto pasivo
del Impuesto de acuerdo con lo dispuesto en los artículos 84.Uno.2º y 4º de la Ley del
IVA siempre que tengan su origen en operaciones distintas a las adquisiciones
intracomunitarias de bienes y servicios.
No se registrará dato alguno en el Libro Registro de Facturas Expedidas.

Evidentemente los tipos Impositivos aplicables son los indicados en la Ley del IVA de España ...
Tienes que aplicar el Tipo Impositivo en función del tipo de producto/productos indicados en la factura (10% para casi toda la Alimentación, 21% para Bienes de Consumo en General y Servicios, etc ...)
Si tienes varios productos con distintos tipos aplicables, entonces tienes que usar un grupo de datos de Detalle de IVA por cada uno.

Espero haberte ayudado ...

Un Saludo

newtron 13-06-2017 13:24:30

Cita:

Empezado por CMB (Mensaje 518125)
¿Pero cómo vas a calcular el tipo de IVA sobre la marcha? ¿En base al país de emisión de la factura, o a los tipos aplicables en España? ¿Y cómo sabes si es normal, reducido, superreducido, o cero?

Saludos,

Ahílasdao. A ver si alguien nos ilumina.

Edito: Ya nos han iluminao.


La franja horaria es GMT +2. Ahora son las 16:00:49.

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