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 18-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
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
  #2  
Antiguo 24-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
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
  #3  
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
  #4  
Antiguo 25-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

¿ 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
  #5  
Antiguo 25-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
¿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
  #6  
Antiguo 25-01-2017
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 112
Poder: 8
seccion_31 Va por buen camino
hola !

si es posible hacer pruebas....

he puesto en marcha el excelente ejemplo que habéis posteado. Lo he modificado levemente para encontrar los certificados digitales instalados. y SI: hay un puerto para hacer pruebas, que es el que estoy usando...

pero me devuelve este error:

código 102. Server returned wrong cipher suite for sesión ...

y ahí estamos.

y ahora sin tocar nada, me da este error:

El titular en la cabecera NO esta identificado... NIF tu NIF ... etc...

lo cual es una buena señal.


Pienso (pero no tengo mucha ida) que una vez establecida la conexión con el servidor (es decir, que el ejemplo funcione y responda algo lo que sea....) lo mas simple seria buscar la función (si es que existe) que envía el XML y esperar el resultado.

Edito de nuevo:

Visto lo visto básicamente el problema esta en saber que datos hay que enviar y donde localizarlos en el array: ARegistroLRFacturasEmitidas
Con lo que no haría falta el XML y aunque parezca mentira yo creo que seria mas cómodo... (creo).

Última edición por seccion_31 fecha: 25-01-2017 a las 10:29:40. Razón: mas info...
Responder Con Cita
  #7  
Antiguo 25-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. Ya he llegado al punto de poder enviar el fichero, he seguido el ejemplo que han subido pero a la hora de hacer llamar a la función de envío me sale este error.

'Received content of invalid Content-Type setting: text/html - SOAP expects "text/xml"

Me pasa tanto en mi proyecto como en el de ejemplo. No se por que puede ser, alguien me puede ayudar.

He probado con los datos que vienen en el ejemplo y con estos, pero en los dos casos me devuelve el mismo error.

defWSDL = 'https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInmediatoInfo.wsdl';
defURL = 'https://www1.agenciatributaria.gob.es/wlpl/SSII-FACT/ws/SiiFactV1PSOAP';
defSvc = 'siiService';
defPrt = 'SuministroFacturasPruebas';


Por otra parte el poder generar el xml directamente puede ser una buena opción ya que la AEAT sacará una opción de poder enviar el xml a través de la página web de ellos sin web services ni nada. Será para empresas que tienen poco volumen de facturas.
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.471
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 10-04-2017
inyu inyu is offline
Miembro
NULL
 
Registrado: mar 2017
Posts: 48
Poder: 0
inyu Va por buen camino
Gracias [newtron] pero las emitidas ya las tengo funcionando. Tengo problemas declarando el Detalle y Desglose de las facturas recibidas, y no doy en cómo adaptar esa parte de las emitidas porque no existe el "DesgloseFacturasRecibidas".
Responder Con Cita
  #11  
Antiguo 10-04-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 inyu Ver Mensaje
Gracias [newtron] pero las emitidas ya las tengo funcionando. Tengo problemas declarando el Detalle y Desglose de las facturas recibidas, y no doy en cómo adaptar esa parte de las emitidas porque no existe el "DesgloseFacturasRecibidas".
¿Y qué te he enviado?
__________________
Be water my friend.
Responder Con Cita
  #12  
Antiguo 11-07-2017
pesadillator pesadillator is offline
Registrado
NULL
 
Registrado: abr 2017
Posts: 5
Poder: 0
pesadillator Va por buen camino
Facturas sujeto pasivo

Tengo el programa funcionando con facturas emitidas y recibidas, pero ahora un cliente tiene facturas de inversión del sujeto pasivo, en delphi como se realizaría, me podríais poner un ejemplo.
Gracias
Responder Con Cita
  #13  
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
  #14  
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
  #15  
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
  #16  
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
  #17  
Antiguo 28-06-2017
Avatar de mrobles
mrobles mrobles is offline
Miembro
NULL
 
Registrado: may 2017
Posts: 115
Poder: 8
mrobles Va por buen camino
Cita:
Empezado por didou Ver Mensaje
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.
Ese error lleva saliendo meses y esta solucionado por aqui. El numero limite es 9.999 facturas por envio, sin limite de envios
Responder Con Cita
  #18  
Antiguo 28-06-2017
didou didou is offline
Miembro
 
Registrado: may 2017
Posts: 59
Poder: 8
didou Va por buen camino
Cita:
Empezado por mrobles Ver Mensaje
Ese error lleva saliendo meses y esta solucionado por aqui. El numero limite es 9.999 facturas por envio, sin limite de envios
Hola Mrobles, la verdad no encuentro en el foro la solución a este problema que dices que ya esta solucionado, me puedes decir donde? gracias.
Responder Con Cita
  #19  
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
  #20  
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
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 17:26:20.


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