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)

robinsondemantu 30-03-2017 09:57:38

Endpoint incorrecto
 
Cita:

Empezado por vboloradito (Mensaje 514890)
Hola:

Estoy validando todos los ejemplos de xml de SII usando directamente la web de aeat.

Me funcionan todos excepto los de cobros : (8.1.5. Alta de Cobros en metálico)
uso el end_point : /wlpl/SSII-FACT/ws/fr/SiiFactPAGV1SOAP

y recibo el error.
<faultstring>Codigo[4124].Error La direccion no se corresponde con el fichero de entrada.</faultstring>

aunque en otras ocasiones el error devuelto era:
<faultstring>403.No autorizado</faultstring>

¿alquien tiene un xml correcto con su correspondiente end_point?
gracias

Código:

<soapenv:Envelope>
 <soapenv:Header/>
<soapenv:Body>
<!-- Alta de Cobros en metálico recibido
 -->
<!-- /wlpl/SSII-FACT/ws/fr/SiiFactPAGV1SOAP
 -->
<siiLR:SuministroLRCobrosMetalico>
<sii:Cabecera>
 <sii:IDVersionSii>0.6</sii:IDVersionSii>
<sii:Titular>
 <sii:NombreRazon>Mi_nombrel</sii:NombreRazon>
 <sii:NIF>MI_numero_NIF</sii:NIF>
 </sii:Titular>
 <sii:TipoComunicacion>A0</sii:TipoComunicacion>
 </sii:Cabecera>
<siiLR:RegistroLRCobrosMetalico>
<sii:PeriodoImpositivo>
 <sii:Ejercicio>2017</sii:Ejercicio>
 <sii:Periodo>0A</sii:Periodo>
 </sii:PeriodoImpositivo>
<siiLR:Contraparte>
 <sii:NombreRazon>LA_OTRA_EMPRESA</sii:NombreRazon>
 <sii:NIF>NIF_OTRA_EMPRESA</sii:NIF>
 </siiLR:Contraparte>
 <siiLR:ImporteTotal>6130.56</siiLR:ImporteTotal>
 </siiLR:RegistroLRCobrosMetalico>
 </siiLR:SuministroLRCobrosMetalico>
 </soapenv:Body>
 </soapenv:Envelope>



Estás enviado un cobro a los pagos. La URL correcta del enpoint de cobros es: https://www7.aeat.es/wlpl/SSII-FACT/...iFactCOBV1SOAP

espinete 30-03-2017 11:01:47

Cita:

Empezado por newtron (Mensaje 514935)
Uis... es verdad me sonaba tu nick y es del hilo ese de las facturas electrónicas. Hace unos días te puse una consulta pero imagino que no la habrás visto porque decías que ibas a poner un resumen de cómo se quedaba el tema pero no lo he visto, ¿está por algún lado? es un tema que me interesa.

Quizás puse "resúmenes" por separado de algunos de los procesos, ya que el procedimiento se compone de varias partes: generar la factura (XML), firmarla, conectarse al webservice de face, firmar la petición, etc. Al contrario que con el SII, con el face hay que firmar el XML y la petición (es un poco más tedioso). Yo lo hice con las SecureBlackBox (tuve que contactar con ellos varias veces para que me echaran un cable, porque nunca había trabajado con firmas digitales).

Intentaré hacer un resumen final cuando tenga un poco más de tiempo, a lo mejor este fin de semana. Si quieres, responde al hilo de las facturas electrónicas con las dudas que tengas y poco a poco lo voy mirando.

Un saludo

vboloradito 30-03-2017 11:23:33

Cita:

Empezado por Virman (Mensaje 514933)
Qué raro! En el envío de intracomunitarias me muestra el siguiente error: "Codigo[4124].Error La direccion no se corresponde con el fichero de entrada."
Para intracomunitarias uso la siguiente dirección: https://www7.aeat.es/wlpl/SSII-FACT/...iiFactOIV1SOAP y siempre me ha ido bien.
Alguien más tiene problemas para el envío de intracomunitarias? El resto de tipos me lo hace correctamente.

Edito: Para cobros en metálico me dice lo mismo. En cobros metálico uso la dirección: https://www7.aeat.es/wlpl/SSII-FACT/...iiFactCMV1SOAP

Será que los envíos de tipo anual van a cambiar de dirección de envío?


PAra los intracomunitarios me ha funcionado ahora mismo /wlpl/SSII-FACT/ws/oi/SiiFactOIV1SOAP

PAra los de cobros lo que ayer me funcionaba hoy no.


vboloradito 30-03-2017 11:42:36

Cita:

Empezado por vboloradito (Mensaje 514941)
PAra los intracomunitarios me ha funcionado ahora mismo /wlpl/SSII-FACT/ws/oi/SiiFactOIV1SOAP

PAra los de cobros lo que ayer me funcionaba hoy no.


para el de cobros.
https://www7.aeat.es/wlpl/SSII-FACT/...iiFactCMV1SOAP

cuando tenga todas los xmls listo intento hacer un paquete y los adjunto,

Indicando en cada xml con que end_point se usan.
lo que no me queda claro es si todos los end_point estan recogidos en algun documento de la aeat

vboloradito 30-03-2017 11:57:02

url util para validar NIF
 
No se si conoceis esta url de la AEAT, pero puede ser muy util cuando os de problemas un NIF y su nombre social. o antes de entrar a producción validar si todos los nifs que teneis son correctos.
Ejemplo:
Tengo estos dos nif y no estoy seguro del nombre.
A28006013 ;
A28017895 ;
voy a la aeat.

agenciatributaria.gob.es/AEAT.sede/tramitacion/G321.shtml

y elijo:
Comprobación de un NIF de terceros a efectos censales
Pego los NIF, seguidos de ;

A28006013 ;
A28017895 ;

y me devuelve el nombre. y me dice si esta registrado

IDENTIFICADO ; A28006013 ; HEINEKEN ESPA/A SA
IDENTIFICADO ; A28017895 ; EL CORTE INGLES SA

PAra empresas te da el nombre.
PAra personas te obliga a meter el nombre para decirte si es correctgo o no.
Supongo que por protección de datos..




CMB 30-03-2017 12:07:45

Cita:

Empezado por keys (Mensaje 514934)
Estoy de acuerdo, pero yo propongo primero a algún moderador separe este foro en por lo menos en tres, uno para Delphi, Otro para VB C# (Otros lenguajes raros :eek:) y otro para normativa. Ya que me pongo en el lugar del que este empezando y se ponga a revisar este foro, es una mezcla de varios lenguajes, propuestas, etcc...
Luego diran que el delphi esta muerto y no creo que exista otro foro sobre este tema más completo.
:rolleyes::rolleyes::rolleyes::rolleyes:

Totalmente de acuerdo. Es muy lioso mezclar mensajes hablando de diferentes lenguajes de programación.

Habría que separarlos. Después si alguien quiere leerlos todos es muy libre de hacerlo.

Saludos,

espinete 30-03-2017 14:59:08

Pregunta tonta...

¿Cómo hacéis para poder enviar las facturas Emitidas y las Recibidas en el mismo Form sin que el compilador se vuelva loco? Hay tipos y variables que coinciden en ambos wsdl y he tenido que hacer un Form para cada proceso, a no ser que me esté perdiendo algo...

Por cierto... ¿Alguien ha conseguido enviar las facturas Recibidas?

A mí me devuelve "Interface not supported" :confused:

keys 30-03-2017 15:11:12

Hola, yo el envío lo he tenido que hacer en units diferentes y que una no conozca a la otra, ya que sino se vuelve loco por que como dices hay muchos tipos coincidentes.

Prueba a enviar las recibidas por la pagina de hacienda para ver si es problema del fichero.

anabelda 30-03-2017 15:12:22

Cita:

Empezado por CMB (Mensaje 513976)
Perdonad mi ignorancia pero no sé ni siquiera qué significa deserializando. Para mí es mucho más sencillo. Con mi Delphi construyo un XML exactamente igual que los ejemplos que pone la AEAT (con datos reales, NIF, nombre, etc), lo envío, y en un segundo recibo la respuesta. Todo correcto, o parcialmente, o todas las facturas duplicadas, da igual, pero la cosa funciona, tanto para emitidas como recibidas.

Copia y pega uno de los ejemplos del fichero SII_Descripcion_ServicioWeb_v0.5_es_es.pdf, tal cual, le pones datos de verdad, y lo envías. Recibirás la respuesta de inmediato (a menos que estén de obras, como el miércoles y jueves pasados :D ).

Saludos,

En primer lugar gracias a todos por las ideas y sugerencias. Yo me he decantado por generar el XML en fichero (con Delphi) , ya que lo necesito así para un cliente en concreto. El problema me surge a la hora de enviar el fichero. Después de leer los mensajes de este foro, no sé cómo enviarlo. ¿Podéis subir un ejemplo en el que se envía un fichero previamente guardado?

Un saludo y gracias.

CMB 30-03-2017 15:23:43

Cita:

Empezado por keys (Mensaje 514950)
Hola, yo el envío lo he tenido que hacer en units diferentes y que una no conozca a la otra, ya que sino se vuelve loco por que como dices hay muchos tipos coincidentes.
Prueba a enviar las recibidas por la pagina de hacienda para ver si es problema del fichero.

Si creas el XML con las herramientas de Delphi, simplemente rellenando un TStringList línea a línea, sin usar las funciones de los WSDL, luego puedes enviarlo todo desde el mismo TForm mediante distintos botones, sólo tienes que cambiar la URL. Es todo mucho más sencillo. No comprendo cómo tantos se complican la vida con dependencias externas.

keys 30-03-2017 15:33:02

Cita:

Empezado por CMB (Mensaje 514952)
Si creas el XML con las herramientas de Delphi, simplemente rellenando un TStringList línea a línea, sin usar las funciones de los WSDL, luego puedes enviarlo todo desde el mismo TForm mediante distintos botones, sólo tienes que cambiar la URL. Es todo mucho más sencillo. No comprendo cómo tantos se complican la vida con dependencias externas.

Toda esta tecnología WSDL https://es.wikipedia.org/wiki/WSDL se ha desarrollado por algo, como no poder cometer fallos de formato al rellenar el xml, asi como la de facilitar la vida de los que consumen un servicio web. Desde luego se puede generar el xml a pinrel, incluso con un bloc de notas y tecleandolo a mano.

No creo que nos cueste más o menos generar el fichero, una vez realizado el fichero. Todos estamos sujetos a dependencias externas ya que todos dependemos de hacienda y de los cambios que quieran hacer y cada cambio que hacen creo que nos supone lo mismo a todos, yo adapto la clase que ellos nos proponen y tu tienes que cambiar el fichero que generas a mano.

Pero bueno cada uno que siga el camino que quiera. :D:D:D

Virman 30-03-2017 15:42:24

Cita:

Empezado por vboloradito (Mensaje 514941)
PAra los intracomunitarios me ha funcionado ahora mismo /wlpl/SSII-FACT/ws/oi/SiiFactOIV1SOAP

PAra los de cobros lo que ayer me funcionaba hoy no.


Que asco de references.cs, al actualizar las referencias a los webservices me estaba poniendo en los dos que me daban problemas, la url de bienes de inversión, por eso me daba el error de dirección no correcta con respecto al fichero de entrada.

Corregido y enviando otra vez sin problemas.

CMB 30-03-2017 16:23:13

Cita:

Empezado por keys (Mensaje 514953)
Pero bueno cada uno que siga el camino que quiera. :D:D:D

¡Por supuesto!

espinete 31-03-2017 11:38:29

Dudas no técnicas
 
Hola de nuevo...

Tengo un par de dudas sobre el SII. Algunas serán muy tontas, pero hay que tener en cuenta que aquí en Canarias no hay IVA, así que nunca he visto el 340, 347, 303, etc. No obstante, la mayoría de nuestros clientes son de la Península y tenemos que hacer el proyecto para ellos.

1. Entiendo que hay que enviar, por separado, las facturas de venta (o tickets) como Facturas Emitidas y las de Compra como Recibidas.

2. ¿Entiendo también que hay que enviar también los Cobros y Pagos de esas facturas, utilizando los wdsl propios para cada cosa? ¿O los cobros y pagos son opcionales (solo para según qué tipo de Empresa) y vale solo con las emitidas/recibidas?

3. ¿Cuándo se debe enviar la información a la AEAT? He leído en la web de la AEAT que el tiempo límite son 4 días (8 durante el primer trimestre). ¿4 días después de la fecha de emisión de cada factura?
Esto es algo que no entiendo, porque el 347 es anual (salvo para Grandes Empresas), así que... ¿se deben enviar los registros una vez al año, cada 4 días, una vez al mes, cada vez que se facture...?

4. ¿Es necesario enviar los "bienes de inversión"? Imagino que para pymes (comercios), que son el 99% de nuestros clientes, esto no es necesario, no?

5. ¿Alguien tiene un ejemplo de los diferentes tipos de desglose de IVA en las facturas?
Exenta
Sujeta
Con Recargo de Equivalencia
...

Un saludo

keys 31-03-2017 11:49:28

Cita:

Empezado por espinete (Mensaje 514988)
Hola de nuevo...

Tengo un par de dudas sobre el SII. Algunas serán muy tontas, pero hay que tener en cuenta que aquí en Canarias no hay IVA, así que nunca he visto el 340, 347, 303, etc. No obstante, la mayoría de nuestros clientes son de la Península y tenemos que hacer el proyecto para ellos.

1. Entiendo que hay que enviar, por separado, las facturas de venta (o tickets) como Facturas Emitidas y las de Compra como Recibidas.

2. ¿Entiendo también que hay que enviar también los Cobros y Pagos de esas facturas, utilizando los wdsl propios para cada cosa? ¿O los cobros y pagos son opcionales (solo para según qué tipo de Empresa) y vale solo con las emitidas/recibidas?

3. ¿Cuándo se debe enviar la información a la AEAT? He leído en la web de la AEAT que el tiempo límite son 4 días (8 durante el primer trimestre). ¿4 días después de la fecha de emisión de cada factura?
Esto es algo que no entiendo, porque el 347 es anual (salvo para Grandes Empresas), así que... ¿se deben enviar los registros una vez al año, cada 4 días, una vez al mes, cada vez que se facture...?

4. ¿Es necesario enviar los "bienes de inversión"? Imagino que para pymes (comercios), que son el 99% de nuestros clientes, esto no es necesario, no?

5. ¿Alguien tiene un ejemplo de los diferentes tipos de desglose de IVA en las facturas?
Exenta
Sujeta
Con Recargo de Equivalencia
...

Un saludo

Lo primero te remito a la pagina de la Aeat donde está explicado todo lo que preguntas. http://www.agenciatributaria.es/AEAT...VA__SII_.shtml

1) Cada libro a enviar es un servicio web diferente, por lo que hay que enviarlo por separado.
2) Los cobros/pagos solo hay que enviarlos cuando la empresa este en el régimen de criterio de caja.
3) La información como maximo hay que enviarla 4 dias despues de la emisión o recepción de las facturas. Habrá empresas que envien todos los dias, cada dos dias, en un día 3 veces, etc... dependerá del volumen de información de cada empresa y de como lo quieran gestionar.
4) El libro de bienes de inversión solo hay que enviarlo una vez al año (final de año y ya se tiene la prorrata definitiva) y sólo las empresas que tienen prorrata.
5) no puedo poner un ejemplo con los diferentes tipo de IVA, ya que ese es el desarrollo completo de mi empresa.

Un Saludo. ;)

PepCat 31-03-2017 12:11:49

Felicidades por la respuesta Keys! Ojala hubiera sabido toda esta información hace unas semanas…

jacju 31-03-2017 12:48:08

Hola otra vez, estoy generando todos los posibles casos de iva y en todos me sucede lo mismo, el resultado del error al enviar es:

El documento XML tiene que tener un elemento de nivel superior. Line 0.

EL caso es que en el evento ONBeforeexecute del HTTPrio creo la copia del XML que en teoría envía el portal, pero después del ONAfterexecute me da ese fallo.

Pero lo mas curioso es que si lo subo al portal en el aparatado cliente de web service me acepta todos los XML

No entiendo nada, os ha pasado esto.

Y otra cosa alguien sabe porque al devolver la excepción no dice el error concreto y te dice cualquier cosa.

Gracias

keys 31-03-2017 12:52:42

Mira si lo del certificado lo tienes bien resuelto en el objeto Httprio. La aeat no devuelve un error concreto por que parece que es un error del objeto. El fichero no llega a llegar a la aeat para decirte cual es el error.

Si envías una sola factura te funciona?

jonortsal 31-03-2017 13:27:32

Xml Facturas Emitidas
 
¿Podéis mandar algun ejemplo XML con todos los posibles desgloses DE IVA?
Por otra parte, Según el manual “SSI_Descripción_Servicio_Web_v0.6.pdf”, el “TipoDesglose” tiene que tener o bien un “DesgloseFactura” o bien “DesgloseTipoOperacion”. ¿Alguien sabe en qué casos tiene que utilizar una u otra?

keys 31-03-2017 13:33:33

Cita:

Empezado por jonortsal (Mensaje 514994)
¿Podéis mandar algun ejemplo XML con todos los posibles desgloses DE IVA?
Por otra parte, Según el manual “SSI_Descripción_Servicio_Web_v0.6.pdf”, el “TipoDesglose” tiene que tener o bien un “DesgloseFactura” o bien “DesgloseTipoOperacion”. ¿Alguien sabe en qué casos tiene que utilizar una u otra?

3.11. A la hora de desglosar los datos de la factura, ¿debe indicarse si la operación es una entrega de bienes o una prestación de servicios?

El desglose se hará obligatoriamente a nivel de operación cuando:
- El cliente sea extranjero (tipo “ID Otro” o NIF que empiece por N) y
- No sea una factura simplificada o un asiento resumen.

El resto de casos el desglose ira a nivel de Desglose de Factura. Sacado de las faqs.

jonortsal 31-03-2017 13:38:40

Gracias keys!!

jodaws 31-03-2017 15:43:22

Nueva
 
1 Archivos Adjunto(s)
Buenas tardes, me estoy poniendo con este proceso y he intentado leer todo el foro antes de continuar. Pero necesito algo de luz ya que soy bastante nueva en el tema.

Mi primera opción era generar los XML utilizando el XML Mapper y los ficheros de estructura XSD, y pensando (que no si será así...) que desde la web permitirán subir los XML generados. Pero veo que nos los crea correctamente, no me genera los XML correctamente.

Mi segunda opción y creo que la de la mayoría es importar el WSDL y trabajar directamnete con el WS. He intentado importar el WSDL para poder empezar a hacer pruebas, he empezado con el SuministroFactEmitidas.wsdl, pero ya ni me compila, os adjunto la unidad pas que me genera Delphi a ver si podéis echarme una mano, estoy utilizando Berlin para hacer una prueba simple.

Alguien lo ha hecho con Delphi 2007?? es que el más utilizamos.

Saludos

jodaws 31-03-2017 19:03:09

Parece que al importar del WSDL no lo hace correctamente. Me podéis indicar como lo hacéis? No sé porqué no me lo hace correctamente.

Muchas gracias de antemano

espinete 01-04-2017 12:35:36

Parece que has importado otro wsdl distinto. Prueba a importar este:

http://www.agenciatributaria.es/stat...tEmitidas.wsdl

CMB 01-04-2017 14:09:29

Cita:

Empezado por newtron (Mensaje 514632)
Cuando das una factura de baja no podrás usar el mismo número ni hacer nada más con ella, la nueva factura tendrá que tener otro número. Si lo que quieres es modificarla tendrás que enviar una factura de rectificación.

Hola newtron:

En el documento SII_Descripcion_ServicioWeb_v0.6.pdf, página 190, dice

Cita:

Se podrán modificar facturas que están dadas de baja. El nuevo estado de la factura modificada será “Aceptada” o “Aceptada con errores”.
Ahora mismo he enviado solicitudes de cambio (no de rectificación, entiendo que podría ser algo distinto) de tres facturas que previamente había anulado, me ha aceptado las tres peticiones y han pasado a ser facturas aceptadas de nuevo. Ningún cambio en los datos, ni el número ni la fecha. Los mismos datos originales.

Es decir, que dar de baja una factura no es algo irreversible, ni siquiera hay que cambiar ninguno de sus datos para revertirlo. Lo único que no te permite es darla de alta de nuevo.

Saludos,

CMB 01-04-2017 19:31:50

Petición de baja de una factura recibida
 
Cuando pido la baja de facturas recibidas me devuelven sistemáticamente el error

Cita:

<faultstring>Codigo[4102].El XML no cumple el esquema. Falta informar campo obligatorio.: NombreRazon</faultstring>
Pero el XML de la petición, estoy cansado de repasarlo, parece correcto (datos falseados expresamente):

Código:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:siiLR="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd" xmlns:sii="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">
    <soapenv:Header/>
    <soapenv:Body>
        <siiLR:BajaLRFacturasRecibidas>
            <sii:Cabecera>
                <sii:IDVersionSii>0.6</sii:IDVersionSii>
                <sii:Titular>
                    <sii:NombreRazon>XXX XXX XXX</sii:NombreRazon>
                    <sii:NIF>99999999E</sii:NIF>
                </sii:Titular>
            </sii:Cabecera>
            <siiLR:RegistroLRBajaRecibidas>
                <sii:PeriodoImpositivo>
                    <sii:Ejercicio>2017</sii:Ejercicio>
                    <sii:Periodo>03</sii:Periodo>
                </sii:PeriodoImpositivo>
                <siiLR:IDFactura>
                    <sii:IDEmisorFactura>
                        <sii:NIF>88888888T</sii:NIF>
                    </sii:IDEmisorFactura>
                    <sii:NumSerieFacturaEmisor>123321</sii:NumSerieFacturaEmisor>
                    <sii:FechaExpedicionFacturaEmisor>16-03-2017</sii:FechaExpedicionFacturaEmisor>
                </siiLR:IDFactura>
            </siiLR:RegistroLRBajaRecibidas>
        </siiLR:BajaLRFacturasRecibidas>
    </soapenv:Body>
</soapenv:Envelope>

incluso (aunque no es obligatorio) he probado de añadir la línea

Cita:

<sii:NombreRazon>YYY YYY YYY</sii:NombreRazon>
dentro de <sii:IDEmisorFactura>, por si acaso, y el error que recibo es el mismo.

Curiosamente no me sucede con las bajas de facturas emitidas.

Ya que no existe en el manual ningún ejempo de baja de recibidas (sólo de emitidas), ¿tendría alguien la amabilidad de echarle una ojeada?

O alternativamente publicar un xml de una baja de factura recibida que no dé error.

Muchas gracias,

espinete 01-04-2017 20:49:52

A mi me pasó algo parecido con las recibidas y el problema estaba en NombreRazon pero NO de la cabecera (titular) sino de la Contraparte. Revisa que ambos campos tienen valor, y que si se trata de un NIF (persona física) tiene los apellidos antes que el nombre.

CMB 01-04-2017 22:43:36

Cita:

Empezado por espinete (Mensaje 515015)
A mi me pasó algo parecido con las recibidas y el problema estaba en NombreRazon pero NO de la cabecera (titular) sino de la Contraparte. Revisa que ambos campos tienen valor, y que si se trata de un NIF (persona física) tiene los apellidos antes que el nombre.

Pues era eso, el orden del nombre y apellidos. Lo curioso es que con bajas de facturas emitidas se lo traga y con bajas de recibidas no. Menuda tontería para perder media tarde y todo el buen humor. Cosas de programadores ;)

Muchas gracias por recordarme ese detalle. Lo sabía per no había caído.

jodaws 03-04-2017 09:15:12

Cita:

Empezado por espinete (Mensaje 515008)
Parece que has importado otro wsdl distinto. Prueba a importar este:

Buenos días, muchas gracias por tu respuesta. El WSDL me lo he bajado directamente de la página de la agencia tributaria y es el mismo del link que me has adjuntado. Al importar dejo todo por defecto, no se si tengo que hacer algo diferente.

Saludos

keys 03-04-2017 09:17:49

Te tienes que bajar lo wdsl y los xsd. Bajate todo y ponlo en la misma carpeta.

Un Saludo.

newtron 03-04-2017 09:40:50

Cita:

Empezado por jodaws (Mensaje 514997)
Alguien lo ha hecho con Delphi 2007?? es que el más utilizamos.
Saludos

Si no me equivoco, los que estamos por aquí no hemos conseguido ponerlo en marcha con Delphi 2007.

Cita:

Empezado por CMB (Mensaje 515009)
Hola newtron:

En el documento SII_Descripcion_ServicioWeb_v0.6.pdf, página 190, dice

Ahora mismo he enviado solicitudes de cambio (no de rectificación, entiendo que podría ser algo distinto) de tres facturas que previamente había anulado, me ha aceptado las tres peticiones y han pasado a ser facturas aceptadas de nuevo. Ningún cambio en los datos, ni el número ni la fecha. Los mismos datos originales.

Es decir, que dar de baja una factura no es algo irreversible, ni siquiera hay que cambiar ninguno de sus datos para revertirlo. Lo único que no te permite es darla de alta de nuevo.

Saludos,

Pues no sé, yo por lo que había leido daba la impresión de que una factura anulada ya se quedaba así para los restos, igual se me ha pasado ese párrafo o lo han cambiado después. Gracias por la aclaración.

Saludos

CMB 03-04-2017 10:45:50

Cita:

Empezado por newtron (Mensaje 515051)
Si no me equivoco, los que estamos por aquí no hemos conseguido ponerlo en marcha con Delphi 2007.

Ni tampoco con el antiguo (pero todavía muy utilizado) Delphi 7. El documento PAS que crea es muy corto y no sirve.

Saludos,

CMB 03-04-2017 10:50:11

Cita:

Empezado por newtron (Mensaje 515051)
Pues no sé, yo por lo que había leido daba la impresión de que una factura anulada ya se quedaba así para los restos, igual se me ha pasado ese párrafo o lo han cambiado después. Gracias por la aclaración.

A todos nos pasan estas cosas. Es todo muy liado y la información que la AEAT suministra tiene algunas deficiencias y contradicciones.

Pero lo he probado muchas veces. Cualquier factura anulada, sea emitida o recibida, se puede resuscitar enviando una petición de cambio. Incluso sin cambiar ningún dato. De modo que si alguien se equivoca lo puede solucionar con un cambio. Incluso el ciclo se puede repetir varias veces: baja, cambio, baja, cambio, etc. y funciona.

seccion_31 03-04-2017 11:12:40

Buenas, me vuelvo a incorporar a este tema, tras haberlo dejado un par de meses.

he leído alguno de los posteos pero no todos...

He notado:

que han jodido el interface de facturas recibidas,....

que han puesto en marcha la web SII para enviar XML y consultar lo enviado. Entiendo que les falta el formulario para introducirlas manualmente, AEAT me dice que estará durante este mes.

Ahora estoy re-adaptando el envio con las facturas recibidas y -...

con los cobros en metalico que creo es obligatorio comunicar ¿no? (atraves del envio de cobros)

Saludos !

y de aquí ya hasta Julio. Cualquier cosa en que pueda ayudar por aquí estare.

Virman 03-04-2017 11:45:55

Buenos días, alguno ha conseguido enviar un xml deserealizando uno de partida? Yo estoy intentando hacerlo y no hay forma.
He creado una clase Deserializador() donde creo un objeto XMLSerializer para facturas emitidas: XmlSerializer serializer = new XmlSerializer(typeof(SuministroLRFacturasEmitidas), "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd");

Al que le paso un fichero XML como referencia. Lo primero que me encuentro es que me obliga a quitar todas las apariciones de la palabra <sii: en las etiquetas sino, me devuelve el error: "Error en el documento XML (2, 2)." Donde el primer dígito es la línea donde aparece un <sii:
Al quitar todos los sii: ya me deja ejecutar, pero me devuelve un objeto sin valores devueltos.

Mi clase sólo contiene lo siguiente:
Código:

try
{
                XmlSerializer serializer = new XmlSerializer(typeof(SuministroLRFacturasEmitidas), "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd");

                FileStream fs = new FileStream(filename, FileMode.Open);
                XmlReader reader = XmlReader.Create(fs);

                SuministroLRFacturasEmitidas i;

                i = (SuministroLRFacturasEmitidas)serializer.Deserialize(reader);
                fs.Close();
                return i;
            }
            catch (System.Exception ex)

El fichero XML de entrada tiene la siguiente estructura (adjunto parte de él):
Código:

<?xml version="1.0" encoding="UTF-8"?>
<SuministroLRFacturasEmitidas xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd">
<Cabecera>
<IDVersionSii>0.6</IDVersionSii>
<Titular>
<NombreRazon>ENTIDAD XXXXXXXXXXXXXX</NombreRazon>
<NIF>XXXXXXXXX</NIF>
</Titular>
<TipoComunicacion>A0</TipoComunicacion>
</Cabecera>
<RegistroLRFacturasEmitidas>
<PeriodoImpositivo>
<Ejercicio>2015</Ejercicio>
<Periodo>01</Periodo>
</PeriodoImpositivo>
<IDFactura>
<IDEmisorFactura>
<NIF>XXXXXXXXX</NIF>
</IDEmisorFactura>
<NumSerieFacturaEmisor>2017032100000001</NumSerieFacturaEmisor>
<FechaExpedicionFacturaEmisor>15-01-2015</FechaExpedicionFacturaEmisor>
</IDFactura>
<FacturaExpedida>
<TipoFactura>F1</TipoFactura>
<ClaveRegimenEspecialOTrascendencia>01</ClaveRegimenEspecialOTrascendencia>
<ImporteTotal>26.70</ImporteTotal>

Alguien ha conseguido hacer una deserialización de xml?
Muchas gracias.

newtron 03-04-2017 12:41:08

Cita:

Empezado por seccion_31 (Mensaje 515056)
con los cobros en metalico que creo es obligatorio comunicar ¿no? (atraves del envio de cobros)

Negativo, si mal no recuerdo solo hay que enviar los cobros si se está incluido en la ley de la prorrata.

Saludos

CMB 03-04-2017 12:46:13

Consulta de facturas expedidas o recibidas
 
Cuando se envía una consulta, la respuesta contiene todas las facturas del período solicitado, que pueden ser docenas o cientos, hasta 10.000.

¿Existe la posibilidad de enviar una consulta referida a una factura concreta y recibir la respuesta solamente de esa factura?

El campo <ClavePaginacion> sólo permite indicar la factura a partir de la cual deseas la información, pero no tiene previsto indicar la última, de modo que se pudiera obtener solamente el estado de una factura concreta. O por lo menos yo no lo he podido encontrar.


Saludos,

keys 03-04-2017 12:56:22

Los cobros y pagos de las facturas sólo hay que declararlos si la empresa esta dentro del regimen de criterio de caja no del de prorrata. La prorrata es para el libro de bienes de inversión

Los cobros en metálico sólo hay que declararlos a final de año si han superado los 6000 euros por un cliente, en el libro de cobros en metalico dentro del libro de operaciones de transcendencia, que es lo que han cambiado en la versión 0.6.

newtron 03-04-2017 12:59:51

Cita:

Empezado por keys (Mensaje 515062)
Los cobros y pagos de las facturas sólo hay que declararlos si la empresa esta dentro del regimen de criterio de caja no del de prorrata. La prorrata es para el libro de bienes de inversión

Los cobros en metálico sólo hay que declararlos a final de año si han superado los 6000 euros por un cliente, en el libro de cobros en metalico dentro del libro de operaciones de transcendencia, que es lo que han cambiado en la versión 0.6.

Ves tú como no me fío mucho de mi memoria..... :rolleyes:

jcapilla 03-04-2017 13:39:11

Serializar objeto para el SII de la AEAT
 
Buenas a todos.

Yo no programo con Delphi. Estoy con .Net pero veo que aquí nos ayudamos todos. Veo que lo que hacéis mas que nada es coger un xml y deserializarlo en un objeto para enviarlo. Mi caso es al revés. Monto un objeto y lo serializo para obtener el xml que posteriormente otra empresa se encargará de enviarlo. El problema es que al serializarlo no me escribe los Namespaces SiiLR y Sii y no se como hacerlo.

Este es mi código:

Código:

Dim oSfe As New SuministroFactEmitidas.SuministroLRFacturasEmitidas
oSfe.Cabecera = New SuministroFactEmitidas.CabeceraSii
oSfe.Cabecera.IDVersionSii = SuministroFactEmitidas.VersionSiiType.Item06
oSfe.Cabecera.Titular = New SuministroFactEmitidas.PersonaFisicaJuridicaESType
oSfe.Cabecera.Titular.NombreRazon = "EMPRESA EMISORA"
oSfe.Cabecera.Titular.NIF = "A00000000"
oSfe.Cabecera.TipoComunicacion = SuministroFactEmitidas.ClaveTipoComunicacionType.A0
oSfe.RegistroLRFacturasEmitidas = New SuministroFactEmitidas.LRfacturasEmitidasType(0) {}
oSfe.RegistroLRFacturasEmitidas(0) = New SuministroFactEmitidas.LRfacturasEmitidasType
oSfe.RegistroLRFacturasEmitidas(0).PeriodoImpositivo = New SuministroFactEmitidas.RegistroSiiPeriodoImpositivo
oSfe.RegistroLRFacturasEmitidas(0).PeriodoImpositivo.Ejercicio = 2017
oSfe.RegistroLRFacturasEmitidas(0).PeriodoImpositivo.Periodo = SuministroFactEmitidas.TipoPeriodoType.Item01
oSfe.RegistroLRFacturasEmitidas(0).IDFactura = New SuministroFactEmitidas.IDFacturaExpedidaType
oSfe.RegistroLRFacturasEmitidas(0).IDFactura.IDEmisorFactura = New SuministroFactEmitidas.IDFacturaExpedidaTypeIDEmisorFactura
oSfe.RegistroLRFacturasEmitidas(0).IDFactura.IDEmisorFactura.NIF = "A00000000"
oSfe.RegistroLRFacturasEmitidas(0).IDFactura.NumSerieFacturaEmisor = "FA1700001"
oSfe.RegistroLRFacturasEmitidas(0).IDFactura.FechaExpedicionFacturaEmisor = Now.ToString("dd-MM-yyyy")
oSfe.RegistroLRFacturasEmitidas(0).FacturaExpedida = New SuministroFactEmitidas.FacturaExpedidaType
oSfe.RegistroLRFacturasEmitidas(0).FacturaExpedida.TipoFactura = SuministroFactEmitidas.ClaveTipoFacturaType.F1
oSfe.RegistroLRFacturasEmitidas(0).FacturaExpedida.FechaOperacion = Now.ToString("dd-MM-yyyy")
oSfe.RegistroLRFacturasEmitidas(0).FacturaExpedida.ClaveRegimenEspecialOTrascendencia = SuministroFactEmitidas.IdOperacionesTrascendenciaTributariaType.Item01
oSfe.RegistroLRFacturasEmitidas(0).FacturaExpedida.DescripcionOperacion = "Venta de mercaderia"
oSfe.RegistroLRFacturasEmitidas(0).FacturaExpedida.Contraparte = New SuministroFactEmitidas.PersonaFisicaJuridicaType
oSfe.RegistroLRFacturasEmitidas(0).FacturaExpedida.Contraparte.NombreRazon = "EMPRESA RECEPTORA"
oSfe.RegistroLRFacturasEmitidas(0).FacturaExpedida.Contraparte.Item = "B00000000"
oSfe.RegistroLRFacturasEmitidas(0).FacturaExpedida.TipoDesglose = New SuministroFactEmitidas.FacturaExpedidaTypeTipoDesglose
oSfe.RegistroLRFacturasEmitidas(0).FacturaExpedida.TipoDesglose.Item = New SuministroFactEmitidas.TipoSinDesgloseType
CType(oSfe.RegistroLRFacturasEmitidas(0).FacturaExpedida.TipoDesglose.Item, SuministroFactEmitidas.TipoSinDesgloseType).Sujeta = New SuministroFactEmitidas.SujetaType
CType(oSfe.RegistroLRFacturasEmitidas(0).FacturaExpedida.TipoDesglose.Item, SuministroFactEmitidas.TipoSinDesgloseType).Sujeta.NoExenta = New SuministroFactEmitidas.SujetaTypeNoExenta
CType(oSfe.RegistroLRFacturasEmitidas(0).FacturaExpedida.TipoDesglose.Item, SuministroFactEmitidas.TipoSinDesgloseType).Sujeta.NoExenta.TipoNoExenta = SuministroFactEmitidas.TipoOperacionSujetaNoExentaType.S1
CType(oSfe.RegistroLRFacturasEmitidas(0).FacturaExpedida.TipoDesglose.Item, SuministroFactEmitidas.TipoSinDesgloseType).Sujeta.NoExenta.DesgloseIVA = New SuministroFactEmitidas.DetalleIVAEmitidaType(0) {}
CType(oSfe.RegistroLRFacturasEmitidas(0).FacturaExpedida.TipoDesglose.Item, SuministroFactEmitidas.TipoSinDesgloseType).Sujeta.NoExenta.DesgloseIVA(0) = New SuministroFactEmitidas.DetalleIVAEmitidaType
CType(oSfe.RegistroLRFacturasEmitidas(0).FacturaExpedida.TipoDesglose.Item, SuministroFactEmitidas.TipoSinDesgloseType).Sujeta.NoExenta.DesgloseIVA(0).TipoImpositivo = "21"
CType(oSfe.RegistroLRFacturasEmitidas(0).FacturaExpedida.TipoDesglose.Item, SuministroFactEmitidas.TipoSinDesgloseType).Sujeta.NoExenta.DesgloseIVA(0).BaseImponible = "100"
CType(oSfe.RegistroLRFacturasEmitidas(0).FacturaExpedida.TipoDesglose.Item, SuministroFactEmitidas.TipoSinDesgloseType).Sujeta.NoExenta.DesgloseIVA(0).CuotaRepercutida = "21"

Dim xmlSerial As New XmlSerializer(oSfe.GetType(), "")
Dim SufijoFecha As String = String.Format("_{0:yyyyMMdd}_{1:HHmmssfff}", Now, Now)
Dim nombreFichero As String = String.Format("FE{0}", SufijoFecha)
Dim strWriter As New StreamWriter(String.Format("D:\Proyectos\IDI\S.I.I\PruebasGeneracionFicheros\{0}.xml", nombreFichero))
xmlSerial.Serialize(strWriter, oSfe)
strWriter.Close()


¿Alguien puede ayudarme?


La franja horaria es GMT +2. Ahora son las 00:13:07.

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