Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-01-2017
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 112
Poder: 8
seccion_31 Va por buen camino
bien, ahora usando el nuevo 0.5 da el error:

Not Found (404) - 'https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP'

ah! y por lo que veo, utilizando el 0.1, puedes colar un calculo del IVA erróneo. Lo he probado a posta y la factura ha pasado. la factura ha pasado ahora mismo sin problemas. LAMENTABLE.
Responder Con Cita
  #2  
Antiguo 30-01-2017
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 112
Poder: 8
seccion_31 Va por buen camino
por cierto nasca

¿Cómo vas a enviar el XML? ¿y recibir las respuestas de la AEAT?

Saludos !
Responder Con Cita
  #3  
Antiguo 30-01-2017
Nasca Nasca is offline
Miembro
 
Registrado: abr 2007
Ubicación: Almería (España)
Posts: 249
Poder: 18
Nasca Va por buen camino
Indy con OpenSSL. En su momento las he probado en versiones anteriores del WebService y funcionan sin problemas.
Y los xml a mano, paso de depender de librerías del puñetero Windows en ambos casos.
Responder Con Cita
  #4  
Antiguo 30-01-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.030
Poder: 22
keys Va por buen camino
Hola a todos. Yo creo que el problema no esta tanto en como enviarlo, si por la indys o por SOAP, etc ... , ya que como hemos visto en el ejemplo la conexión no es muy dificil. El problema esta en la descripción de la información a enviar, ya sea directamente con el xml o con las clases que genera el wsdl, ya que estamos vendidos a los cambios que le apetezca hacer a hacienda como acabamos de ver con el cambio de version.

De todas formas esto esta un poco verde y con el tiempo esperemos que se valla estabilizando. Por cierto ¿Alguno ha tenido la gran suerte de ser o trabajar para alguna una de las empresas elegidas para las pruebas piloto?, ya que creo que esas empresas lo tienen mucho más fácil para acceder a la aeat.

Un Saludo.
Responder Con Cita
  #5  
Antiguo 08-02-2017
usr3010 usr3010 is offline
Miembro
 
Registrado: feb 2017
Posts: 13
Poder: 0
usr3010 Va por buen camino
Respuesta a mensaje de prueba con HTML no con XML

Cita:
Empezado por Nasca Ver Mensaje
Indy con OpenSSL. En su momento las he probado en versiones anteriores del WebService y funcionan sin problemas.
Y los xml a mano, paso de depender de librerías del puñetero Windows en ambos casos.
Hola, buenas tardes ... Soy usr3010 ...

Yo también estoy generando los XML a mano a partir de las plantillas facilitadas por la AEAT, y para enviar el archivo XML uso node.js ... Estoy probando todavía ...

He visto que si no registro el Certificado al hacer la llamada https, la TGSS me responde con un html apuntando a erro4033.html (No puedo adjuntar enlaces todavía), y cuando lo incluyo, me responde con un html indicando:

Se ha producido un error
Error del cliente. Se ha producido un error en la solicitud que impide al servidor procesarla.
Puede contactar con el servicio de atención al contribuyente indicando el código de error 400.


¿ Teneís idea alguien de porqué contesta así en vez de con un XML tal cual se indica en el manual ?

Gracias.
Responder Con Cita
  #6  
Antiguo 09-02-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.030
Poder: 22
keys Va por buen camino
Hola a todos.

Sin certificado valido no se puede enviar nada. El sistema de la aeat genera errores.

Por otro lado no es lo mismo una factura rectificativa que una factura que se ha mandado mal. Para una factura rectificativa es otra factura nueva que se genera y rectifica a otra anterior y en ese caso si hay que mandar una rectifictiva e indicar la que estas rectificando, ya sea positiva o negativa. Una factura que se ha mandado mal, es decir hay un dato mal como puede ser el cliente, bases imponibles, etc hay que mandar la factura otra vez pero con clave A1 en el campo tipo de comunicación o A4 si es del regimen de viajeros. Eso es lo que yo creo.

Un Saludo.
Responder Con Cita
  #7  
Antiguo 09-02-2017
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 112
Poder: 8
seccion_31 Va por buen camino
Ahora deberíamos revisar:

http://www.agenciatributaria.es/AEAT...ormacion.shtml


Si modificas una factura con A1 te devuelve un CSV diferente.

Y dice modificaciones en "datos registrales" que no me queda muy claro que es.... eso si, la presentación con A0 y A1 es la misma.

saludos !

Última edición por seccion_31 fecha: 09-02-2017 a las 12:12:45.
Responder Con Cita
  #8  
Antiguo 09-02-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.030
Poder: 22
keys Va por buen camino
Hola.

Yo entiendo que una modificación registral es que en la factura enviada hay cosas que se han informado mal (Cliente, bases imponibles, Datos Registrales, etcc), es decir la factura ya esta aceptada en el sistema y hay que volverla a enviar, o la factura ha sido aceptada con avisos que hay que corregir. PAra eso se utiliza la clave A1 o A2 en el tipo de comunicación. Logicamente te devuelve un CSV nuevo por que es un envío nuevo y cada envio devuelve un csv nuevo y tendras uno para el primer envío y otro para el segundo.

Es mas en la información pone que se puede modificar una factura que se envío y luego se dio de baja.

Una factura rectificativa es un nueva factura con su número nuevo y que rectifica una anterior. Es decir hay otro documento de factura por medio.

Como bien dices todo esto esta explicado mas o menos en la información de la aeat. Que por cierto gracias a Trump ahora la tenemos en inglés.

Un Saludo.
Responder Con Cita
  #9  
Antiguo 30-01-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.471
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por seccion_31 Ver Mensaje
bien, ahora usando el nuevo 0.5 da el error:

Not Found (404) - 'https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP'

ah! y por lo que veo, utilizando el 0.1, puedes colar un calculo del IVA erróneo. Lo he probado a posta y la factura ha pasado. la factura ha pasado ahora mismo sin problemas. LAMENTABLE.
Lamentable también el "chapucerismo" y las prisas con las que se hacen todas estas cosas siempre, los políticos aprueban las leyes de un día para otro sin tener en cuenta del "tinglado" que hay que montar y para el que ni ellos mismos están preparados. Sacan la normativa, preparan el webservice y, antes de que ni siquiera hayamos terminado de enterarnos como va, lo cambian y "vuelta la burra al torno".

En fin..... es lo que hay.
__________________
Be water my friend.
Responder Con Cita
  #10  
Antiguo 30-01-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.030
Poder: 22
keys Va por buen camino
Cita:
Empezado por seccion_31 Ver Mensaje
bien, ahora usando el nuevo 0.5 da el error:

Not Found (404) - 'https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP'
Hola a mi me da el mismo error al cambiar los archivos. yo creo que el servicio del 0.5 no esta activo o los ficheros de descripcion están mal. Si te fijas en la versión del 0.5 en VersionSiiType = (_0_1); sigue poniendo 0.1 .

Como siempre una chapuza.
Responder Con Cita
  #11  
Antiguo 31-01-2017
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 112
Poder: 8
seccion_31 Va por buen camino
Buenos días !

Tres cuestiones:

1) cuidado con el mensaje de respuesta cuando hemos enviado las facturas, hay un campo que vuelve cargado con un valor que hay que guardar junto a las facturas y que es común al bloque que hemos enviado y sirve como comprobante: result.CSV

2) si envió un grupo de facturas, mas de 15 creo me da error de "necesita un certificado y bla bla..." si envio menos ó una sola funciona bien.

3) y aquí vengo a pedir ayuda: ¿Cuál seria la "ruta" para enviar facturas emitidas intracomunitarias y de exportación?

En emitidas, seria esta:
ARegistroLRFacturasEmitidas[ i ].FacturaExpedida.TipoDesglose.desglosefactura.sujeta.noexenta.desgloseIVA

Saludos !

A ver si alguien puede darme una mano, gracias.
Responder Con Cita
  #12  
Antiguo 31-01-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.030
Poder: 22
keys Va por buen camino
Cita:
Empezado por seccion_31 Ver Mensaje

3) y aquí vengo a pedir ayuda: ¿Cuál seria la "ruta" para enviar facturas emitidas intracomunitarias y de exportación?


A ver si alguien puede darme una mano, gracias.
Hola no entiendo muy bien tu pregunta. Las facturas intracomunitarias y de exportación se declaran dentro del libro de iva de facturas emitidas.

3.6. ¿Cómo se registra una Entrega Intracomunitaria de Bienes? Se anotará la factura emitida al cliente comunitario en el Libro registro de Facturas Expedidas 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 “CodigoPais” no será obligatorio. Por otra parte, la base imponible de la factura se incluirá en el campo de tipo de operación “Exenta” dentro del bloque “Entrega”. Como causa de exención se consignará la clave “E5: Exenta por el artículo 25”.

El apartado del libro de operaciones Intracomunitarias, sólo es para determinadas operaciones, las más habituales van en el libro de expedidas o de emitidas.


3.7. ¿Cómo se registra una Exportación? La operación se anota en el Libro Registro de Facturas Expedidas. En el campo “Clave Régimen especial o Trascendencia” se consignará el valor 15. Deberá identificarse al cliente – en caso de ser extranjero- mediante el “Código país” y las claves 3 “Pasaporte”, 4 “Documento oficial de identificación expedido por el país o territorio de residencia”, 5 “Certificado de residencia” ó 6 “Otro documento probatorio” del campo “IDType”. Por otra parte, la base imponible de la factura se incluirá en el campo de tipo de operación “Exenta” dentro del bloque “Entrega”. Como causa de exención se consignará la clave E2 “Exenta por el artículo 21”.

Por cierto has conseguido enviar por la versión 0.5 ? He preguntado a hacienda pero las cosas de palacio van despacio.

Un Saludo
Responder Con Cita
  #13  
Antiguo 31-01-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.030
Poder: 22
keys Va por buen camino
Hola a todos!

Yo en vez de utilizar la unit Soap.SOAPHTTPTrans.pas que va en el ejemplo utilizo la unit que viene con delphi. Esta unit no tiene la opción de añadir el certificado directamente, lo que hago es asignarlo a un objeto THTTPRIO, de esta forma no dependo de esta unit que no se si funcionará en futuras versiones de delphi.

No se por que en el ejemplo se utilizó una propia en vez de la de delphi.

Un Saludo.
Responder Con Cita
  #14  
Antiguo 31-01-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.471
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por keys Ver Mensaje
Hola a todos!

Yo en vez de utilizar la unit Soap.SOAPHTTPTrans.pas que va en el ejemplo utilizo la unit que viene con delphi. Esta unit no tiene la opción de añadir el certificado directamente, lo que hago es asignarlo a un objeto THTTPRIO, de esta forma no dependo de esta unit que no se si funcionará en futuras versiones de delphi.

No se por que en el ejemplo se utilizó una propia en vez de la de delphi.

Un Saludo.
¿Y cómo haces esa asignación?

Saludos
__________________
Be water my friend.
Responder Con Cita
  #15  
Antiguo 31-01-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.030
Poder: 22
keys Va por buen camino
Hola para hacer la asignacion hago lo siguiente.

Tengo un objeto HttpPRIO que se le asigna el numero de serie del certificado.

Código Delphi [-]
  Objeto.HTTPWebNode.ClientCertificate.SerialNum := BuscarCertificado;


Código Delphi [-]
//Esta funcion devuelve el Numero de serie del certificado pasandole el nombre del certificado.
//Para ello tengo un combo donde cargo todos los certificados instalados.

function BUSCAR_CERTIFICADO(Nombre_Certificado: String): string;
var
  hStore: HCERTSTORE;
  PrevContext, CurContext: PCERT_CONTEXT;
  cbSize: DWORD;
  sNombre: String;
begin
  Result := '';
  hStore := CertOpenSystemStore(0, PChar('MY'));
  if hStore <> nil then begin
     PrevContext := nil;
     CurContext := CertEnumCertificatesInStore(hStore, PrevContext);
     while CurContext <> nil do begin
       sNombre := '';
       cbSize := CertGetNameString(CurContext, CERT_NAME_SIMPLE_DISPLAY_TYPE, 0, nil, nil, 0);
       if cbSize > 0 then  begin
          SetLength(sNombre, cbSize-1);
          CertGetNameString(CurContext, CERT_NAME_SIMPLE_DISPLAY_TYPE, 0, nil, PChar(sNombre), cbSize);
           if SameText(Nombre_certificado, sNombre) then
             begin
               REsult := GetCertSerialNumber(@CurContext^.pCertInfo^.SerialNumber);
               break;
            end;
       end;
       PrevContext := CurContext;
       CurContext  := CertEnumCertificatesInStore(hStore, PrevContext);
     end;
  end;
end;

A la hora de hacer el envio se hace de la siguiente manera

Código Delphi [-]
  resultado := GetsiiSOAP(True, '', OBJETO HTTPTRIO).SuministroLRFacturasEmitidas(ASuministroLRFacturasEmitidas);

Última edición por Neftali [Germán.Estévez] fecha: 31-01-2017 a las 15:14:59. Razón: Añadir TAG's al código
Responder Con Cita
  #16  
Antiguo 31-01-2017
Virman Virman is offline
Miembro
 
Registrado: ene 2017
Posts: 67
Poder: 8
Virman Va por buen camino
Tengo problemas para el envío de facturas recibidas, que me dice: Valor o tipo incorrecto del campo: NIF.

Revisando los campos para el emisor de la factura (el que nos la envía a nosotros por ser factura recibida), veo que no hay campo NIF, teniendo que usar obligatoriamente el campo IdOtro.

Yo lo hago así:
IDFacturaRecibidaType idFact = new IDFacturaRecibidaType(); //IDFACTURA
IDFacturaRecibidaTypeIDEmisorFactura emisorFactura = new IDFacturaRecibidaTypeIDEmisorFactura(); //emisorFactura
IDOtroType idOtro = new IDOtroType();
idOtro.CodigoPais = ((CountryType2)(202)); //España
idOtro.IDType = ((PersonaFisicaJuridicaIDTypeType)(00)); //00 -> 02(NIF - IVA)
idOtro.ID = "XXXXXXXXX"; //Aqui pongo X por no poner un NIF real
emisorFactura.Item = idOtro;
idFact.IDEmisorFactura = emisorFactura;

Será que en la versión 0.5 ya se puede poner correctamente el NIF del emisor de la factura recibida? Cómo lo hacéis vosotros para las facturas recibidas?

Muchas gracias.
Responder Con Cita
  #18  
Antiguo 31-01-2017
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 112
Poder: 8
seccion_31 Va por buen camino
Hola !

Para keys, necesitaría un ejemplo de los objetos que creáis para introducir una factura de exportación o intracomunitaria.


En mi ejemplo para facturas emitidas:
ARegistroLRFacturasEmitidas[ i ].FacturaExpedida.TipoDesglose.desglosefactura.sujeta.noexenta.desgloseIVA


¿para exportación ?


¿para intracomunitaria?



Virman: Si, van en unidades separadas, pero es lo mismo. El problema es que todavía no conecta con la AEAT. Yo sigo con el anterior hasta el 7 de febrero.
Virman: estoy empezando con las recibidas. tardare en llegar ahí, por dificultades con mi fichero de facturas recibidas.
Keys: ¿has probado a enviar mas de 15 facturas emitidas a la vez?
Responder Con Cita
  #19  
Antiguo 31-01-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.030
Poder: 22
keys Va por buen camino
Cuando el emisor de una factura es español hay que rellenar solo la parte de contraparte el nombre y el cif. La parte del idotro es para cuando no es nacional.

<sii:Contraparte>
<sii:NombreRazon>EMPRESAYYYYYYYY</sii:NombreRazon>
<sii:NIF>94234500B</sii:NIF>
</sii:Contraparte>
Responder Con Cita
  #20  
Antiguo 31-01-2017
CMB CMB is offline
Miembro
 
Registrado: ene 2017
Posts: 349
Poder: 8
CMB Va por buen camino
Cita:
Empezado por Virman Ver Mensaje
Tengo problemas para el envío de facturas recibidas, que me dice: Valor o tipo incorrecto del campo: NIF.
Revisando los campos para el emisor de la factura (el que nos la envía a nosotros por ser factura recibida), veo que no hay campo NIF, teniendo que usar obligatoriamente el campo IdOtro.
Yo lo hago así:
IDFacturaRecibidaType idFact = new IDFacturaRecibidaType(); //IDFACTURA
IDFacturaRecibidaTypeIDEmisorFactura emisorFactura = new IDFacturaRecibidaTypeIDEmisorFactura(); //emisorFactura
IDOtroType idOtro = new IDOtroType();
idOtro.CodigoPais = ((CountryType2)(202)); //España
idOtro.IDType = ((PersonaFisicaJuridicaIDTypeType)(00)); //00 -> 02(NIF - IVA)
idOtro.ID = "XXXXXXXXX"; //Aqui pongo X por no poner un NIF real
emisorFactura.Item = idOtro;
idFact.IDEmisorFactura = emisorFactura;
¿No os parece que sería más sencillo crear un fichero XML que incluya todas las facturas a enviar? Siguiendo el esquema y ejemplos del documento "SII_Descripcion_ServicioWeb_v0.5.pdf".

Luego se envía el XML por webservice y se recoge la respuesta. Menos código a escribir. ¿Alguien lo ha probado?

Saludos,
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
TICKET BAI (TicketBAI); Nuevo sistema de la Agencia Tributaria del Pais Vasco keys Internet 4170 Hace 1 Semana 17:29:05
AEAT envio de datos vía Webservice problemas con WSDL CelsoO Internet 11 09-10-2019 20:03:41
webService Soap de la Administración Digital Española notific@ apicito Internet 3 31-01-2017 11:25:28
Error en Webservice funcion envio de sms webmasterplc Delphi para la web 5 25-07-2013 20:10:29
Problemas con envío de XML a un WebService davidvamo Internet 1 13-02-2007 15:49:20


La franja horaria es GMT +2. Ahora son las 08:50:33.


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
Copyright 1996-2007 Club Delphi