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 13-01-2017
Virman Virman is offline
Miembro
 
Registrado: ene 2017
Posts: 67
Poder: 8
Virman Va por buen camino
Información AEAT

Os adjunto el mensaje que me ha enviado la AEAT ante la pregunta de cómo obtener un certificado de pruebas o usar un certificado digital existente para el envío de Facturas Emitidas, Facturas Recibidas y Pago Recibidas:

No existe certificado de pruebas.

La presentación podrá ser efectuada por el obligado tributario, un apoderado suyo a este trámite ó un colaborador social, que deberá disponer de un certificado electrónico reconocido. Por tanto, el uso de los servicios requiere tener instalado un certificado electrónico reconocido admitido por la Agencia Tributaria, en el ordenador desde el que se produzca el envío de la información. Dicho certificado podrá ser de Persona Física ó de Persona Jurídica. Todos los NIFs se tienen que validar contra la Base de Datos Centralizada de la AEAT.

No se debe firmar el envío. No hay que inscribir el certificado en ningún censo.

Consulte la ayuda para la obtención del certificado electrónico

Atentamente,
AEAT

Si alguien consigue mandar una factura por favor que me ayude, porque yo sólo obtengo error 403: Error de identificación. No se detecta certificado digital o no se ha seleccionado correctamente. Aún cuando añado un certificado al objeto siiSoap.
Responder Con Cita
  #2  
Antiguo 13-01-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.474
Poder: 21
newtron Va camino a la fama
La AEAT no te va a ayudar en gran cosa en este asunto, como bien te dicen tienes que tener instalado un certificado digital válido para poder hacer la llamada.

Yo creo que la "madre del cordero" está en manejar el evento "OnBeforePost" del componente "THTTPRIO" para asignar el certificado digital correspondiente tal y como aparece en el link de ejemplo que he puesto. Yo lo que todavía no veo claro es la unidad "SignCertificate" que aparece en el ejemplo que no he sido todavía capaz de encontrar la forma de instalar o sustituir por otra similar.

Saludos
__________________
Be water my friend.
Responder Con Cita
  #3  
Antiguo 18-01-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.474
Poder: 21
newtron Va camino a la fama
Amig@s.

Un antiguo usuario del foro (que por lo visto ya no tiene la cuenta activa por no haberla usado en muuuuuuuuuucho tiempo), después de leer este hilo, ha tenido el detalle de ponerse en contacto conmigo por mail para echarme una mano y adaptar el proyecto de ejemplo que estamos intentando sacar adelante para resolver el tema del Suministro Inmediato de Información (SII) de la AEAT, cosa que todos tendremos que agradecerle.

Ahora, tengo dos noticias, una buena y otra mala. La buena es que adjunto el proyecto con las modificaciones necesarias para, antes de hacer la llamada al webservice, asignar el certificado con el que se va a hacer la misma. La mala es que el proyecto está en la versión Berlín de Delphi, imagino que funcionará a partir de las versiones XE... en adelante pero no he conseguido de forma fácil encontrar las unidades similares (si es que las hay) para Delphi 2007 por ejemplo.

Espero que con esto podamos seguir adelante con la tarea de conseguir efectuar la llamada al dichoso webservice.

Saludos.
Archivos Adjuntos
Tipo de Archivo: rar Ejemplo Webservices SII.rar (202,0 KB, 465 visitas)
__________________
Be water my friend.
Responder Con Cita
  #4  
Antiguo 24-01-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.036
Poder: 22
keys Va por buen camino
Red face

Hola A todos! Lo primero decir que me produce cierta alegría encontrar gente en este mundo que se esta pegando también con el nuevo sistema inmediato de información del AEAT desde delphi. Creía que era el único es este mundo.

Yo no voy tan adelantando como vosotros, estoy en el punto de generar los ficheros xml para mandar a la Aeat. En la información de la AEAT hay dos ficheros XSD SuministroInformacion.xsd y SuministroLR.xsd, cada uno con la definicion de dos namespace. Pero luego hay que generar un único fichero xml con los dos namespaces dentro.

Mi pregunta es como puedo generar un unico fichero xml, ya que el xml data binding sólo me deja generar el fichero de uno en uno.

Un Saludo y gracias y procurare aportar lo que pueda.
Responder Con Cita
  #5  
Antiguo 25-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 a todos !

Soy Jesús (alias Seccion31 alias seccion_31) menciono dos alias porque me ha sido imposible recuperar mi registro de 2004...

En fin... agradecer a todos los que estais en el foro vuestra importante labor, y comentar que SI, que yo también soy uno de los afectados de la SII.

Estoy absolutamente perdido con el SOAP... y tengo un monton de dudas.

Querria compartir con vosotros alguna de ellas:

¿ Solo hay que enviar facturas emitdas / recibidas?

¿Es posible enviar los registros de facturas emitidas / recibidas en formato Excel (ó XML) desde la web de la AEAT?

¿Sabeis si es posible hacer pruebas?

He preguntado a hacienda via email, pero todavía no me han dicho nada.

En fin...

vamos a empezar con este tema, y lo que vaya experimentando os lo comunicare.

Saludos cordiales

Jesús
Responder Con Cita
  #6  
Antiguo 25-01-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.036
Poder: 22
keys Va por buen camino
Hola

¿ Solo hay que enviar facturas emitdas / recibidas?
En prinicipio hay que enviar cuatro libros
Libro registro de Facturas Expedidas.
Libro registro de Facturas Recibidas.
Libro registro de Bienes de Inversión.
Libro registro de Determinadas Operaciones Intracomunitarias.

Es una especie de modelo 340.


¿Es posible enviar los registros de facturas emitidas / recibidas en formato Excel (ó XML) desde la web de la AEAT?
No. Solo se pueden enviar mediante un fichero xml con la estructura definida por la aeat.

¿Sabeis si es posible hacer pruebas?
Se supone que si se pueden hacer pruebas pero yo por lo menos no he llegado a ese punto, estoy en el paso de generar lo xml.

En la página de la AEAT tienes mas información sobre el modelo y las especificaciones técnicas. Te pongo el enlace.

http://www.agenciatributaria.es/AEAT...VA__SII_.shtml
Responder Con Cita
  #7  
Antiguo 25-01-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.474
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por keys Ver Mensaje
¿Sabeis si es posible hacer pruebas?
Se supone que si se pueden hacer pruebas pero yo por lo menos no he llegado a ese punto, estoy en el paso de generar lo xml.
Según he podido ver se puede definir en el "port" del componente HTTPRIO un puerto para pruebas llamado 'SuministroFacturasPruebas'. Esto se cambia al principio de la función GetiiSOAP:

Código Delphi [-]
function GetsiiSOAP(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): siiSOAP;
const
  defWSDL = 'https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInmediatoInfo.wsdl';
  defURL  = 'http://schemas.xmlsoap.org/wsdl/';
  defSvc  = 'siiService';
  defPrt  = 'SuministroFacturasPruebas';
.....

Saludos
__________________
Be water my friend.
Responder Con Cita
  #8  
Antiguo 10-04-2017
inyu inyu is offline
Miembro
NULL
 
Registrado: mar 2017
Posts: 48
Poder: 0
inyu Va por buen camino
¿Alguien tiene un ejemplo del desglose de una factura recibida? Pensé que no me costaria nada adaptar el de una factura emitida pero tengo problemas creando el desglose de la factura e IVAs, gracias.

PD: Me refiero al código en C, .net, delphi o lo que sea, el XML ya lo tengo claro.
Responder Con Cita
  #9  
Antiguo 10-04-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.474
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por inyu Ver Mensaje
¿Alguien tiene un ejemplo del desglose de una factura recibida? Pensé que no me costaria nada adaptar el de una factura emitida pero tengo problemas creando el desglose de la factura e IVAs, gracias.

PD: Me refiero al código en C, .net, delphi o lo que sea, el XML ya lo tengo claro.
Hola.

No tengo ningún ejemplo de facturas recibidas pero te paso mi parte del código que las envía, imagino que te servirá de ejemplo aunque todavía no está cerrado con todos los tipos de facturas y eso.

Código Delphi [-]
  try
    ASuministroLRFacturasRecibidas := SuministroLRFacturasRecibidas.Create;
    ASuministroLRFacturasRecibidas.Cabecera := CabeceraSii.Create;

    // DATOS:
    ASuministroLRFacturasRecibidas.Cabecera.IDVersionSii:=VersionSiiType(0);       // 0.1
    ASuministroLRFacturasRecibidas.Cabecera.titular := PersonaFisicaJuridicaESType.Create;
    ASuministroLRFacturasRecibidas.Cabecera.Titular.NombreRazon:=Bd.BuscaValor('DATOSEMPRESA','NOMBRE','  ','');    // NOMBRE DEL PRESENTADOR
    ASuministroLRFacturasRecibidas.Cabecera.Titular.NIF:=Bd.BuscaValor('DATOSEMPRESA','MNIF','','');              // CIF del PRESENTADOR (DEBE COINCIDIR CON EL CERTIFICADO SELECCIONADO)
    // (0) A0 - ALTA
    // (1) A1-  MODIFICACION
    // (2) A4-  MODIFICACION REGIMEN VIAJEROS
    if FormSii.RadioButton1.Checked then begin
      ASuministroLRFacturasRecibidas.Cabecera.TipoComunicacion:=ClaveTipoComunicacionType(0);
    end else if FormSii.RadioButton2.Checked then begin
      ASuministroLRFacturasRecibidas.Cabecera.TipoComunicacion:=ClaveTipoComunicacionType(1);
    end;

    //Se crean todas las estructuras de datos de la consulta
    SetLength(ARegistroLRFacturasRecibidas, M);

    for N := 0 to M do begin
      FormSII.PBProceso.Position := FormSII.PBProceso.Position+1;
      If Grid.ValorCeldaPorCampoYFila('ENVIAR',N+1)='X' then begin
        FormSII.Label5.Caption := 'Factura: '+Grid.ValorCeldaPorCampoYFila('FACTURA',N+1);
        Application.ProcessMessages;
        // Busco registro en tabla de iva
        Tabla.FindKey([Grid.ValorCeldaPorCampoYFila('CODIGO',N+1)]);
        // Busco registro en tabla de cuentas
        TablaCuentas.FindKey([Tabla.FieldByName('CUENTA').AsString]);
        ARegistroLRFacturasRecibidas[N]:=LRfacturasRecibidasType.Create;
        ARegistroLRFacturasRecibidas[N].IDFactura:=IDFacturaRecibidaType.create;
        ARegistroLRFacturasRecibidas[N].FacturaRecibida:=FacturaRecibidaType.create;               // <- clase para tipo de factura
        ARegistroLRFacturasRecibidas[N].PeriodoImpositivo:=PeriodoImpositivo.Create;

        ARegistroLRFacturasRecibidas[N].PeriodoImpositivo.Ejercicio:=Bd.BuscaValor('DATOSEMPRESA','MEJERCICIO','','');  //  AÑO
        // Periodo
        P:=StrToInt(FormatDateTime('MM',StrToDate(Grid.ValorCeldaPorCampoYFila('FECHA',N+1))));
        ARegistroLRFacturasRecibidas[N].PeriodoImpositivo.periodo  :=TipoPeriodoType(P-1);          //  PERIODO 01- ENERO ... 12-DICIEMBRE  (0A - ANUAL )
        ARegistroLRFacturasRecibidas[N].IDFactura.IDEmisorFactura:= IDEmisorFactura4.Create;
        ARegistroLRFacturasRecibidas[N].IDFactura.IDEmisorFactura.NIF  := Tabla.FieldByName('CIF').AsString;                         // NUESTRO NIF, COMO EMISOR = TITULAR LIBRO REGISTRO = CERTIFICADO DIGITAL
        if FormSII.CheckBox1.Checked then
          ARegistroLRFacturasRecibidas[N].IDFactura.NumSerieFacturaEmisor:=Grid.ValorCeldaPorCampoYFila('FACTURA',N+1)+'/'+FormatDateTime('YYYYMMDDHHMMSS'+IntToStr(N),now)
        else
          ARegistroLRFacturasRecibidas[N].IDFactura.NumSerieFacturaEmisor:=Grid.ValorCeldaPorCampoYFila('FACTURA',N+1); // Numero de factura

        ARegistroLRFacturasRecibidas[N].IDFactura.FechaExpedicionFacturaEmisor:=Grid.ValorCeldaPorCampoYFila('FECHA',N+1);                 // FECHA DE EXPEDICION FACTURA    (dd-mm-yyyy)
        if Tabla.FieldByName('TOTAL').AsCurrency<0 then begin
          ARegistroLRFacturasRecibidas[N].FacturaRecibida.tipofactura:=ClaveTipoFacturaType(2);      //  RECTIFICATIVA
          ARegistroLRFacturasRecibidas[N].FacturaRecibida.TipoRectificativa := ClaveTipoRectificativaType(1);
        end else begin
          ARegistroLRFacturasRecibidas[N].FacturaRecibida.tipofactura:=ClaveTipoFacturaType(0);      //  F1- FACTURA / F2 TICKET / ...
        end;

        ARegistroLRFacturasRecibidas[N].FacturaRecibida.FechaRegContable := Tabla.FieldByName('FECHAE').AsString;
        cAux:=Tabla.FieldByName('BASE1').AsCurrency+Tabla.FieldByName('BASE2').AsCurrency+Tabla.FieldByName(  'BASE3').AsCurrency;
        sAux:=CurrToStr(cAux);
        AregistroLRFacturasRecibidas[N].FacturaRecibida.CuotaDeducible := StrTran(sAux,',','.');

        if Tabla.FieldByName('TIPOSII').AsString<>'' then begin
          ARegistroLRFacturasRecibidas[N].FacturaRecibida.ClaveRegimenEspecialOTrascendencia:=IdOperacionesTrascendenciaTributariaType(Tabla.  FieldByName('TIPOSII').AsInteger-1);  // 01-REGIMEN COMUN / 02-BIENES USADOS... 15-EXPORTACION
        end else begin
          ARegistroLRFacturasRecibidas[N].FacturaRecibida.ClaveRegimenEspecialOTrascendencia:=IdOperacionesTrascendenciaTributariaType(0);  // 01-REGIMEN COMUN / 02-BIENES USADOS... 15-EXPORTACION
        end;

        ARegistroLRFacturasRecibidas[N].FacturaRecibida.ImporteTotal:=StrTran(Tabla.FieldByName('TOTAL').AsString,',','.');                       //  TOTAL (opcional)
        ARegistroLRFacturasRecibidas[N].FacturaRecibida.descripcionOperacion:='Su Factura';   //  DESCRIPCION FACTURA (LIBRE)

        ARegistroLRFacturasRecibidas[N].FacturaRecibida.Contraparte:=PersonaFisicaJuridicaType.Create;  // CREAR PROVEEDOR:
        ARegistroLRFacturasRecibidas[N].FacturaRecibida.Contraparte.NombreRazon:=Tabla.FieldByName('NOMBRE').AsString;           // NOMBRE DEL PROVEEDOR

        try
          iAux:=Tabla.FieldByName('TIPOSII').AsInteger;
        except
          iAux:=1;
        end;


        if (Tabla.FieldByName('TIPO').AsString='9') or (Tabla.FieldByName('TIPO').AsString='7') or (Tabla.FieldByName('TIPO').AsString='A') then begin
          If Tabla.FieldByName('TIPO').AsString='7' then begin   // Inversion Sujeto pasivo
            ARegistroLRFacturasRecibidas[N].FacturaRecibida.Contraparte.NIF:=Tabla.FieldByName('CIF').AsString;                      // NIF DEL PROVEEDOR
          end;
        end else begin
          // CONTRAPARTE:
          ARegistroLRFacturasRecibidas[N].FacturaRecibida.Contraparte.NIFRepresentante:='';
          ARegistroLRFacturasRecibidas[N].FacturaRecibida.Contraparte.NIF:=Tabla.FieldByName('CIF').AsString;                      // NIF DEL PROVEEDOR
        end;
       // EMPEZAMOS CON LOS DESGLOSES (IVAs)
        if (Tabla.FieldByName('IVA1').AsCurrency<>0) and (Tabla.FieldByName('IVA2').AsCurrency<>0) and (Tabla.FieldByName('IVA3').AsCurrency<>0) then begin
          nIvas:=3;
        end else if (Tabla.FieldByName('IVA1').AsCurrency<>0) and (Tabla.FieldByName('IVA2').AsCurrency<>0) then begin
          nIvas:=2;
        end else if (Tabla.FieldByName('IVA1').AsCurrency<>0) then begin
          nIvas:=1;
        end else begin
          nIvas:=0;
        end;
        if nIvas>0 then begin
          setLength(IVAS,nIvas);                       // numeros de iVAs en factura
          Z:=0;
          for zz := 0 to nIvas-1 do begin
            if Tabla.FieldByName('IVA'+IntToStr(ZZ+1)).AsCurrency<>0 then begin
              IVAS[zz]:=DetalleIVARecibidaType.create;             // CREAR primer IVA
              IVAS[zz].BaseImponible:=StrTran(Tabla.FieldByName('BASE'+IntToStr(ZZ+1)).AsString,',','.');            // BASE IMPONIBLE
              IVAS[zz].TipoImpositivo:=StrTran(Tabla.FieldByName('TIVA'+IntToStr(ZZ+1)).AsString,',','.');            // IVA %
              IVAS[zz].CuotaSoportada:=StrTran(Tabla.FieldByName('IVA'+IntToStr(ZZ+1)).AsString,',','.');          // IMPORTE IVA
            end;
          end;
        end;

        //   opcion 1
        if nIvas>0 then begin
          ARegistroLRFacturasRecibidas[N].FacturaRecibida.desgloseFactura:=DesgloseFacturaRecibidasType.create;
          ARegistroLRFacturasRecibidas[N].FacturaRecibida.desglosefactura.desgloseIVA:=IVAS;
        end else begin

          if (Tabla.FieldByName('TIPO').AsString='7') then begin
            setLength(IVAS,1);                       // numeros de iVAs en factura
            IVAS[0]:=DetalleIVARecibidaType.create;             // CREAR primer IVA
            IVAS[0].BaseImponible:='0';
            IVAS[0].TipoImpositivo:='0';
            IVAS[0].CuotaSoportada:='0';
            ARegistroLRFacturasRecibidas[N].FacturaRecibida.DesgloseFactura :=DesgloseFacturaRecibidasType.create;
            ARegistroLRFacturasRecibidas[N].FacturaRecibida.DesgloseFactura.DesgloseIVA := IVAS;
          end else if (Tabla.FieldByName('TIPO').AsString='9') then begin

          end else if (Tabla.FieldByName('TIPO').AsString='7') or (Tabla.FieldByName('TIPO').AsString='A') then begin

          end else begin
          end;

        end;
      end;
    end;
    //se añade el array de facturas creado anteriormente
    ASuministroLRFacturasRecibidas.RegistroLRFacturasRecibidas:=ARegistroLRFacturasRecibidas;

   try

      FormSII.Label5.Caption := 'Enviando paquete de datos....';
      Application.ProcessMessages;
      // se hace la llamada a la funcion suministrada por el WS
      result := GetsiiSOAP(true,'',HTTPRIO1).SuministroLRFacturasRecibidas(ASuministroLRFacturasRecibidas);

      //mostrar los resultados devueltos por la llamada
      for i := low(result.RespuestaLinea) to High(result.RespuestaLinea) do begin
        with result.RespuestaLinea[i] do begin
//          sAux:='factura: ' + IDFactura.NumSerieFacturaEmisor + ' ' + IDFactura.NumSerieFacturaEmisorResumenFin + ' ' + IDFactura.FechaExpedicionFacturaEmisor;
          sAux:='Ok. Factura: '+IDFactura.NumSerieFacturaEmisor +' '+DateTimeToStr(now);
          //si el estado no es correcto, se muestran los errores
          if EstadoRegistro <> EstadoRegistroType(0) then begin
            sAux:='Error no.: ' + InttoStr(CodigoErrorRegistro);
            sAux:=sAux+' '+DescripcionErrorRegistro;
          end;
        end;
        Grid.ValorCeldaPorCampoYFila('RESULTADO',i+1, sAux);
        // Marco tabla y grid principal
        Tabla.FindKey([Grid.ValorCeldaPorCampoYFila('CODIGO',i+1)]);
        Bd.RegistroEdita(Tabla);
        // Resultados:
        if result.RespuestaLinea[i].EstadoRegistro=EstadoRegistroType(0) then begin
          Grid.ValorCeldaPorCampoYFila('RESULTII',i+1, '0');
          Tabla.FieldByName('RESULTII').AsString:='0';
        end else if result.RespuestaLinea[i].EstadoRegistro=EstadoRegistroType(2) then begin
          Grid.ValorCeldaPorCampoYFila('RESULTII',i+1, '1');
          if Tabla.FieldByName('RESULTII').AsString<>'2' then
            Tabla.FieldByName('RESULTII').AsString:='1';
        end else if result.RespuestaLinea[i].EstadoRegistro=EstadoRegistroType(1) then begin
          Grid.ValorCeldaPorCampoYFila('RESULTII',i+1, '2');
          Tabla.FieldByName('RESULTII').AsString:='2';
        end;
        Tabla.FieldByName('CSVII').AsString:=Result.csv;
        Tabla.FieldByName('RESULTADO').AsString:=sAux;
        Bd.RegistroGraba(Tabla);
      end;
    except
      On E:Exception do
        //El proceso de envio dio error
        MessageDlg(E.Message, mtError, [mbOK], 0);
    end;
  finally
    // se eliminan los objetos creados
    ASuministroLRFacturasRecibidas.Free;
    result.Free;
  end;

Saludos
__________________
Be water my friend.
Responder Con Cita
  #10  
Antiguo 17-05-2017
dgalindosaeta dgalindosaeta is offline
Registrado
NULL
 
Registrado: may 2017
Posts: 2
Poder: 0
dgalindosaeta Va por buen camino
Error SSL/TLS en c#

Hola amigos, he visto que hay gente que está montando el proyecto en C#. Me gustaría que nos comunicásemos para sacar en conjunto el tema. Resolví el error que he leído por ahí que da:

The content type text/html of the response message does not match the content type of the binding (text/xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 1024 bytes of the response were:

Lo he resuelto poniendo el certificado, pero ahora tengo un error de comunicación:

No se pudo establecer un canal seguro para SSL/TLS con la autoridad 'www7aeates'

Y aunque le he añadido:

Código:
using System.Net;
using System.Net.Security;

ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
Pero aún así no hay forma. Os pongo todo el código para que veáis:

Código:
                    System.Net.ServicePointManager.Expect100Continue = false;
                    System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11;
                    ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

                    BasicHttpBinding binding = new BasicHttpBinding();
                    binding.Name = "siiBinding";                    
                    binding.Security.Mode = BasicHttpSecurityMode.Transport;
                    //binding.Security.Mode = SecurityMode.Transport;
                    binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;

                    FacturasEmitidas.siiSOAPClient Servicio = new FacturasEmitidas.siiSOAPClient("SuministroFactEmitidasPruebas", new EndpointAddress("https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP"));
                    Servicio.Endpoint.Binding = binding;

                    Servicio.ClientCredentials.ClientCertificate.Certificate = cFunciones.EncontrarCertificado(DatosEnvio.NombreCertificado);
                    Servicio.ClientCredentials.UseIdentityConfiguration = true;
Responder Con Cita
  #11  
Antiguo 27-06-2017
Virman Virman is offline
Miembro
 
Registrado: ene 2017
Posts: 67
Poder: 8
Virman Va por buen camino
Duda con facturas recibidas

Buenas tardes, perdonad la pregunta absurda pero, en las facturas recibidas, el contraparte no debe ser la empresa titular del libro? Es decir, la que sería emisora en las facturas emitidas.

Es que en las facturas recibidas que he enviado recientemente me indica que da error porque el contraparte no es el mismo que el emisor para las facturas recibidas.

Tras cambiarlo y poner el mismo contraparte que emisor en las facturas recibidas ya me deja enviarlas, pero me deja un poco descolocado.

Alguna sugerencia? Muchísimas gracias.
Responder Con Cita
  #12  
Antiguo 27-06-2017
Galahad Galahad is offline
Miembro
 
Registrado: abr 2007
Posts: 218
Poder: 18
Galahad Va por buen camino
Cita:
Empezado por Virman Ver Mensaje
Buenas tardes, perdonad la pregunta absurda pero, en las facturas recibidas, el contraparte no debe ser la empresa titular del libro? Es decir, la que sería emisora en las facturas emitidas.

Es que en las facturas recibidas que he enviado recientemente me indica que da error porque el contraparte no es el mismo que el emisor para las facturas recibidas.

Tras cambiarlo y poner el mismo contraparte que emisor en las facturas recibidas ya me deja enviarlas, pero me deja un poco descolocado.

Alguna sugerencia? Muchísimas gracias.
Hola, creo que el contraparte y el emisor solo pueden ser el mismo en caso de facturas de importaciones . No sé si es este el caso que estás comentando.
En facturas 'normales' la contraparte es el 'emisor' o proveedor de la factura. En las importaciones creo que si que como contraparte se define el mismo que el emisor del libro (o sea la empresa que figura en la cabecera).
Esto creo que es así para importaciones donde hay un dua (hay un ejemplo en el documento de descripción del servicio), cuando no hay dicho dua ya no lo tengo tan claro, creo que hay que poner el proveedor original. Si alguien puede confirmar esto último....
Saludos...
Responder Con Cita
  #13  
Antiguo 28-06-2017
didou didou is offline
Miembro
 
Registrado: may 2017
Posts: 59
Poder: 8
didou Va por buen camino
Buenos días.

Hasta ahora he estado haciendo envios sin problemas, hoy estoy intentando enviar + de 13 facturas al SII (hasta 13 funciona) y me da el siguiente mensaje de error
"ERROR AL ENVIAR: Se requiere un certificado para completar la autenticación del cliente - URL:https://www1.agenciatributaria.gob.e...iiFactFEV1SOAP - SOAPAction"

Sera que hasta el 1 de Julio los envios están limitados a 13 facturas ?

Alquien me puede ayudar? gracias.
Responder Con Cita
  #14  
Antiguo 27-06-2017
PASPAS PASPAS is offline
Miembro
 
Registrado: feb 2017
Posts: 115
Poder: 8
PASPAS Va por buen camino
Cita:
Empezado por Virman Ver Mensaje
Buenas tardes, perdonad la pregunta absurda pero, en las facturas recibidas, el contraparte no debe ser la empresa titular del libro? Es decir, la que sería emisora en las facturas emitidas.

Es que en las facturas recibidas que he enviado recientemente me indica que da error porque el contraparte no es el mismo que el emisor para las facturas recibidas.

Tras cambiarlo y poner el mismo contraparte que emisor en las facturas recibidas ya me deja enviarlas, pero me deja un poco descolocado.

Alguna sugerencia? Muchísimas gracias.
Si asi es pero da que pensar es cierto. En todo caso se supone que sera por lo que tiene implementado la aeat internamente pero podrian haberlo obviado
Responder Con Cita
  #15  
Antiguo 25-05-2017
asanchezdbs asanchezdbs is offline
Registrado
NULL
 
Registrado: ene 2015
Posts: 3
Poder: 0
asanchezdbs Va por buen camino
Hola a todos.

Alguien ha conseguido desarrollar el tema del SII?
Habeis podido solucionar tambien lo de asignar el certificado instalado en el navegador por defecto?

Saludos.
Responder Con Cita
  #16  
Antiguo 11-09-2019
iozuniga iozuniga is offline
Registrado
 
Registrado: jul 2016
Posts: 6
Poder: 0
iozuniga Va por buen camino
Cita:
Empezado por newtron Ver Mensaje
Amig@s.
...
Espero que con esto podamos seguir adelante con la tarea de conseguir efectuar la llamada al dichoso webservice.

Saludos.
Buenos días,

Estoy intentando utilizar el proyecto de ejemplo con Delphi Rio y lo primero que he hecho es quitar todas las referencias a archivos Soap.*.pas pues entiendo ya están incluidos en al última versión de Delphi. Al quitar dichos archivos obtenga un error al llamar a la función setCERTIFICADO, que he conseguido encontrar en un archivo del propio Delphi: Soap.SOAPHTTPTrans.pas, lo cual me ha desconcertado aún más.

Si alguien ha conseguido llegar un poco más lejos con un ejemplo en Delphi Rio o Tokio, le agradezco cualquier sugerencia. Muchas gracias.

Un saludo
Responder Con Cita
  #17  
Antiguo 12-09-2019
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.474
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por iozuniga Ver Mensaje
Buenos días,

Estoy intentando utilizar el proyecto de ejemplo con Delphi Rio y lo primero que he hecho es quitar todas las referencias a archivos Soap.*.pas pues entiendo ya están incluidos en al última versión de Delphi. Al quitar dichos archivos obtenga un error al llamar a la función setCERTIFICADO, que he conseguido encontrar en un archivo del propio Delphi: Soap.SOAPHTTPTrans.pas, lo cual me ha desconcertado aún más.

Si alguien ha conseguido llegar un poco más lejos con un ejemplo en Delphi Rio o Tokio, le agradezco cualquier sugerencia. Muchas gracias.

Un saludo

No entiendo qué quieres decir con "ya están incluidos en la última versión de Delphi". ¿Has probado a compilar directamente sin quitar esas referencias?


Saludos
__________________
Be water my friend.
Responder Con Cita
  #18  
Antiguo 12-09-2019
iozuniga iozuniga is offline
Registrado
 
Registrado: jul 2016
Posts: 6
Poder: 0
iozuniga Va por buen camino
Cita:
Empezado por newtron Ver Mensaje
No entiendo qué quieres decir con "ya están incluidos en la última versión de Delphi". ¿Has probado a compilar directamente sin quitar esas referencias?
Buenos días,

Muchísimas gracias por responder. El error que recibo si intento construir el proyecto es:

Código:
[dcc32 Fatal Error] Soap.SOAPHTTPTrans.pas(1590): F2051 Unit Soap.HTTPUtil was compiled with a different version of Soap.SOAPHTTPTrans.IHTTPReqResp
Y si quito del proyecto el archivo Soap.SOAPHTTPTrans.pas se produce el error de función no encontrada antes comentado.

Todos esos ficheros Soap.*.pas que incluye el proyecto, no son más que versiones antiguas del API para usar SOAP. De hecho todos los archivos ya existen en C:\Program Files (x86)\Embarcadero\Studio\20.0\source\soap

Soap.EncdDecd.pas
Soap.HTTPSOAPToPasBind.pas
Soap.HTTPUtil.pas
Soap.inquire_v1.pas
Soap.IntfInfo.pas
Soap.InvConst.pas
Soap.Invoker.pas
Soap.InvokeRegistry.pas
Soap.OPConvert.pas
Soap.OpConvertOptions.pas
Soap.OPToSOAPDomConv.pas
Soap.OPToSOAPDomCustom.pas
Soap.Rio.pas
Soap.SOAPAttach.pas
Soap.SOAPAttachIntf.pas
Soap.SOAPConn.pas
Soap.SOAPConst.pas
Soap.SOAPDm.pas
Soap.SOAPDomConv.pas
Soap.SOAPEnv.pas
Soap.SOAPHTTPClient.pas
Soap.SOAPHTTPDisp.pas
Soap.SOAPHTTPPasInv.pas
Soap.SOAPHTTPTrans.pas
Soap.SOAPLinked.pas
Soap.SOAPMidas.pas
Soap.SOAPPasInv.pas
Soap.TypeTrans.pas
Soap.UDDIHelper.pas
Soap.WebBrokerSOAP.pas
Soap.WebNode.pas
Soap.WebServExp.pas
Soap.Win.CertHelper.pas
Soap.WSDLBind.pas
Soap.WSDLIntf.pas
Soap.WSDLItems.pas
Soap.WSDLLookup.pas
Soap.WSDLNode.pas
Soap.WSDLPub.pas
Soap.WSDLSOAP.pas
Soap.WSILIntf.pas
Soap.XSBuiltIns.pas

Por lo que entiendo que no tiene mucho sentido utilizar los que se incluyen en el proyecto.

Muchas gracias por todo.

Un saludo
Responder Con Cita
  #19  
Antiguo 12-09-2019
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.474
Poder: 21
newtron Va camino a la fama
Pues la verdad es que no sé qué decirte porque yo la versión más actual que tengo es Berlín.


Imagino que lo que tienes que hacer es buscar las equivalencias de las funciones que se usan en el proyecto de ejemplo para la versión que tú tienes.


De una forma o de otra siempre puedes intentar crear un nuevo proyecto a partir del ejemplo e ir implementando los objetos y las funciones según la versión de delphi que uses.



Saludos
__________________
Be water my friend.
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 4175 Hace 1 Día 16:17:35
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 07:00:32.


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