Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Colaboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-05-2017
Galahad Galahad is offline
Miembro
 
Registrado: abr 2007
Posts: 266
Poder: 20
Galahad Va por buen camino
Cita:
Empezado por keys Ver Mensaje
Hola a todos, en mi modesta opinión creo que estáis equivocados, la cuota deducible NO ES LA BASE IMPONIBLE. Sino la cuota de IVA de la factura en caso de que sea deducible. Por ejemplo en una factura de 121 euros con un 21% de IVA será

Base := 100;
Cuota := 25;
Total Factura := 125.

El importe de la cuota deducible dependerá de muchas cosas, como la naturaleza de la operación o el tipo de empresa. Por ejemplo hay tipos de empresas que están exentas de IVA y la cuota deducible es siempre 0. Las bases imponibles ya están en el detalle de las facturas y las cuotas también pero no la parte deducible o no de la factura.

La cuota deducible es la cantidad que luego te vas a dedudicir en hacienda en el 303 y es creo el dato que más le puede importar a hacienda, ya que es función de ella y de la soportada te van a calcular el dinero que tienes que pagar o te tienen que devolver.

Un Saludo.
Estoy totalmente de acuerdo, lo que no entiendo es como dice un compañero en un post un poc más arriba , es como la aeat no devuelve esas facturas como erróneas, en el registro enviamos la base imponible y el total factura, se supone que podría comprobar que la cuota deducible no es correcta,¿ no ?
Responder Con Cita
  #2  
Antiguo 30-05-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.229
Poder: 24
keys Va por buen camino
Cita:
Empezado por Galahad Ver Mensaje
Estoy totalmente de acuerdo, lo que no entiendo es como dice un compañero en un post un poc más arriba , es como la aeat no devuelve esas facturas como erróneas, en el registro enviamos la base imponible y el total factura, se supone que podría comprobar que la cuota deducible no es correcta,¿ no ?
Por lo menos deberían comprobar que la cuota deducible no sea mayor que la suma de las cuotas. Pero hay una serie de campos que no se validan y me imagino que en un futuro lo irán haciendo, como puede ser el total de la factura.
Responder Con Cita
  #3  
Antiguo 30-05-2017
vboloradito vboloradito is offline
Miembro
NULL
 
Registrado: mar 2017
Posts: 107
Poder: 10
vboloradito Va por buen camino
Cita:
Empezado por keys Ver Mensaje
Por lo menos deberían comprobar que la cuota deducible no sea mayor que la suma de las cuotas. Pero hay una serie de campos que no se validan y me imagino que en un futuro lo irán haciendo, como puede ser el total de la factura.

4.7. ¿Es obligatorio suministrar la información de la cuota deducible?
Sí. En el caso de que aplique prorrata deberá consignar la cuota deducible en función del porcentaje de deducción provisional.

¿esto no aplica solo a las empresas acogidas a prorrata?
Responder Con Cita
  #4  
Antiguo 30-05-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.229
Poder: 24
keys Va por buen camino
Cita:
Empezado por vboloradito Ver Mensaje
4.7. ¿Es obligatorio suministrar la información de la cuota deducible?
Sí. En el caso de que aplique prorrata deberá consignar la cuota deducible en función del porcentaje de deducción provisional.

¿esto no aplica solo a las empresas acogidas a prorrata?
Segun como lo interpretes. Detras del Si hay un punto. Es decir yo entiendo que hay que ponerla siempre, y en el caso de las empresas con prorrata hay que poner la cuota deducible en funcion del porcentaje provisional.

Última edición por keys fecha: 30-05-2017 a las 12:05:32.
Responder Con Cita
  #5  
Antiguo 30-05-2017
CMB CMB is offline
Miembro
 
Registrado: ene 2017
Posts: 349
Poder: 10
CMB Va por buen camino
Cita:
Empezado por keys Ver Mensaje
Segun como lo interpretes. Detras del Si hay un punto. Es decir yo entiendo que hay que ponerla siempre, y en el caso de las empresas con prorrata hay que poner la cuota deducible en funcion del porcentaje provisional.
Ahora mismo he enviado una factura recibida normal y corriente, pero SIN incluir la cuota deducible, y me contestan

Codigo[4102].El XML no cumple el esquema. Falta informar campo obligatorio.: CuotaDeducible
Responder Con Cita
  #6  
Antiguo 30-05-2017
joefrommalaka joefrommalaka is offline
Miembro
NULL
 
Registrado: mar 2017
Posts: 10
Poder: 0
joefrommalaka Va por buen camino
Problema al enviar más de 20 facturas a la vez

Buenas tardes,

Estoy con un problema que no consigo encontrar la solución, a ver si alguien pudiese echarme una mano.
Cuando envío más de 20 facturas emitidas (me pasa lo mismo con las recibidas) recibo el siguiente error:

Se requiere un certificado para completar la autenticación de cliente - URL:https://www7.aeat.es/wlpl/SSII-FACT/...iiFactFEV1SOAP - SOAPAction:""

Si esas mismas facturas las envío en dos veces, me las envía sin problema.


Para realizar el envío, genero el xml con delphi 7 y realizo el envío mediante una dll que he creado con Delphi XE7.


El código mediante el cual hago el envío es el siguiente:


Código:
type
  TComunicacionSW = class(TObject)
    private
      FArchivoEnvio: String;
      FArchivoRespuesta: String;
      FHTTPRIO: THTTPRIO;
      procedure HTTPRIOBeforeExecute(const MethodName: string; SOAPRequest: TStream);
      procedure HTTPRIOAfterExecute(const MethodName: string; SOAPResponse: TStream);
    public
      Constructor Create;
      Destructor Destroy;
  end;


procedure TComunicacionSW.HTTPRIOBeforeExecute(const MethodName: string; SOAPRequest: TStream);
var
  v_fileStream: TFileStream;
begin
  SOAPRequest.Size := 0;
  v_fileStream := TFileStream.Create(FArchivoEnvio, fmOpenRead);
  SOAPRequest.Position := 0;
  SOAPRequest.CopyFrom(v_fileStream, v_fileStream.Size);
  v_fileStream.Free;
  SOAPRequest.Position := 0;
end;

procedure TComunicacionSW.HTTPRIOAfterExecute(const MethodName: string; SOAPResponse: TStream);
var
  v_fileStream: TFileStream;
begin
  if FileExists(FArchivoRespuesta) then
    DeleteFile(FArchivoRespuesta);
  v_fileStream := TFileStream.Create(FArchivoRespuesta, fmCreate);
  SOAPResponse.Position := 0;
  v_fileStream.CopyFrom(SOAPResponse, SOAPResponse.size);
  v_fileStream.Free;
  SOAPResponse.Position := 0;
end;

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

function EnviarFacturasEmitidas(p_nombreCertificado, p_archivoEnvio, p_archivoRespuesta: ShortString): PChar;stdcall;export;
var
  v_suministroLRFacturasEmitidas: SuministroFactEmitidas.SuministroLRFacturasEmitidas;
  v_respuestaLRFacturasEmitidas: SuministroFactEmitidas.RespuestaLRFacturasEmitidas;
  v_siiSOAP: SuministroFactEmitidas.siiSOAP;
  v_serialNum: String;
  v_error: string;
  v_comunicacionSW: TComunicacionSW;
begin
  v_error := '';

  v_serialNum := ObtenerNumeroSerieCertificado(p_nombreCertificado);
  
  v_comunicacionSW := TComunicacionSW.Create;
  v_suministroLRFacturasEmitidas := SuministroFactEmitidas.SuministroLRFacturasEmitidas.Create;
  v_respuestaLRFacturasEmitidas := SuministroFactEmitidas.RespuestaLRFacturasEmitidas.Create;
  try
    try
      v_comunicacionSW.FArchivoEnvio := p_archivoEnvio;
      v_comunicacionSW.FArchivoRespuesta := p_archivoRespuesta;
      v_comunicacionSW.FHTTPRIO.HTTPWebNode.ClientCertificate.SerialNum := v_serialNum;

      //Se realiza la llamada sin datos y en el evento HTTPRIOBeforeExecute se establece el xml con los datos generados anteriormente
      v_siiSOAP := SuministroFactEmitidas.GetsiiSOAP(true,'',v_comunicacionSW.FHTTPRIO);
      v_respuestaLRFacturasEmitidas := v_siiSOAP.SuministroLRFacturasEmitidas(v_suministroLRFacturasEmitidas);
    except
      on e:Exception do
        v_error := 'Error DLL: Error en la comunicación con el servicio web.' + e.Message;
    end;
  finally
    v_suministroLRFacturasEmitidas.Free;
    v_respuestaLRFacturasEmitidas.Free;
  end;

  result := StringToPChar(v_error);
end;


El archivo SuministroFactEmitidas lo he generado automáticamente con WSDL Importer de delphi y le he modificado lo siguiente (defURL realmente no lo utilizo):

const
defWSDL = 'https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroFactEmitidas.wsdl';
defURL = 'https://www7.aeat.es/wlpl/SSII-FACT/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP';
defSvc = 'siiService';
defPrt = 'SuministroFactEmitidasPruebas';


¿Se le ocurre a alguien que es lo que estoy haciendo mal?

Un saludo
Responder Con Cita
  #7  
Antiguo 30-05-2017
joefrommalaka joefrommalaka is offline
Miembro
NULL
 
Registrado: mar 2017
Posts: 10
Poder: 0
joefrommalaka Va por buen camino
Por cierto si envío el archivo xml mediante la web https://www7.aeat.es/static_files/co...teWSAEAT2.html se envía correctamente.
Responder Con Cita
  #8  
Antiguo 30-05-2017
Avatar de mrobles
mrobles mrobles is offline
Miembro
NULL
 
Registrado: may 2017
Posts: 115
Poder: 10
mrobles Va por buen camino
Cita:
Empezado por joefrommalaka Ver Mensaje
Buenas tardes,

Estoy con un problema que no consigo encontrar la solución, a ver si alguien pudiese echarme una mano.
Cuando envío más de 20 facturas emitidas (me pasa lo mismo con las recibidas) recibo el siguiente error:

Se requiere un certificado para completar la autenticación de cliente - URL:https://www7.aeat.es/wlpl/SSII-FACT/...iiFactFEV1SOAP - SOAPAction:""

Si esas mismas facturas las envío en dos veces, me las envía sin problema.


Para realizar el envío, genero el xml con delphi 7 y realizo el envío mediante una dll que he creado con Delphi XE7.


El código mediante el cual hago el envío es el siguiente:


Código:
type
  TComunicacionSW = class(TObject)
    private
      FArchivoEnvio: String;
      FArchivoRespuesta: String;
      FHTTPRIO: THTTPRIO;
      procedure HTTPRIOBeforeExecute(const MethodName: string; SOAPRequest: TStream);
      procedure HTTPRIOAfterExecute(const MethodName: string; SOAPResponse: TStream);
    public
      Constructor Create;
      Destructor Destroy;
  end;


procedure TComunicacionSW.HTTPRIOBeforeExecute(const MethodName: string; SOAPRequest: TStream);
var
  v_fileStream: TFileStream;
begin
  SOAPRequest.Size := 0;
  v_fileStream := TFileStream.Create(FArchivoEnvio, fmOpenRead);
  SOAPRequest.Position := 0;
  SOAPRequest.CopyFrom(v_fileStream, v_fileStream.Size);
  v_fileStream.Free;
  SOAPRequest.Position := 0;
end;

procedure TComunicacionSW.HTTPRIOAfterExecute(const MethodName: string; SOAPResponse: TStream);
var
  v_fileStream: TFileStream;
begin
  if FileExists(FArchivoRespuesta) then
    DeleteFile(FArchivoRespuesta);
  v_fileStream := TFileStream.Create(FArchivoRespuesta, fmCreate);
  SOAPResponse.Position := 0;
  v_fileStream.CopyFrom(SOAPResponse, SOAPResponse.size);
  v_fileStream.Free;
  SOAPResponse.Position := 0;
end;

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

function EnviarFacturasEmitidas(p_nombreCertificado, p_archivoEnvio, p_archivoRespuesta: ShortString): PChar;stdcall;export;
var
  v_suministroLRFacturasEmitidas: SuministroFactEmitidas.SuministroLRFacturasEmitidas;
  v_respuestaLRFacturasEmitidas: SuministroFactEmitidas.RespuestaLRFacturasEmitidas;
  v_siiSOAP: SuministroFactEmitidas.siiSOAP;
  v_serialNum: String;
  v_error: string;
  v_comunicacionSW: TComunicacionSW;
begin
  v_error := '';

  v_serialNum := ObtenerNumeroSerieCertificado(p_nombreCertificado);
  
  v_comunicacionSW := TComunicacionSW.Create;
  v_suministroLRFacturasEmitidas := SuministroFactEmitidas.SuministroLRFacturasEmitidas.Create;
  v_respuestaLRFacturasEmitidas := SuministroFactEmitidas.RespuestaLRFacturasEmitidas.Create;
  try
    try
      v_comunicacionSW.FArchivoEnvio := p_archivoEnvio;
      v_comunicacionSW.FArchivoRespuesta := p_archivoRespuesta;
      v_comunicacionSW.FHTTPRIO.HTTPWebNode.ClientCertificate.SerialNum := v_serialNum;

      //Se realiza la llamada sin datos y en el evento HTTPRIOBeforeExecute se establece el xml con los datos generados anteriormente
      v_siiSOAP := SuministroFactEmitidas.GetsiiSOAP(true,'',v_comunicacionSW.FHTTPRIO);
      v_respuestaLRFacturasEmitidas := v_siiSOAP.SuministroLRFacturasEmitidas(v_suministroLRFacturasEmitidas);
    except
      on e:Exception do
        v_error := 'Error DLL: Error en la comunicación con el servicio web.' + e.Message;
    end;
  finally
    v_suministroLRFacturasEmitidas.Free;
    v_respuestaLRFacturasEmitidas.Free;
  end;

  result := StringToPChar(v_error);
end;


El archivo SuministroFactEmitidas lo he generado automáticamente con WSDL Importer de delphi y le he modificado lo siguiente (defURL realmente no lo utilizo):

const
defWSDL = 'https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroFactEmitidas.wsdl';
defURL = 'https://www7.aeat.es/wlpl/SSII-FACT/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP';
defSvc = 'siiService';
defPrt = 'SuministroFactEmitidasPruebas';


¿Se le ocurre a alguien que es lo que estoy haciendo mal?

Un saludo
Ahora mismo andan un poco pasando de la comprobación de certificados, pero creo que a partir de 10 si que falla si no es un certificado valido (o mal insertado).
Yo ando en PHP y logro mandar bloques de 100 sin problema alguno
Responder Con Cita
  #9  
Antiguo 30-05-2017
PASPAS PASPAS is offline
Miembro
 
Registrado: feb 2017
Posts: 115
Poder: 10
PASPAS Va por buen camino
Direcciones WDSL producción

Pregunta a la AEAT:
Tengo 2 cuestiones técnicas:
1.- Nos pueden suministrar las direcciones de los endpoint en producción para
que sean incorporadas en nuestro software antes de la puesta en marcha para que
no sea todo a última hora. Tienen pensado publicarlo pronto aunque no se pueda
utilizar hasta el 1 de Julio.
2.-Cuando exista un cambio de versión. Entre versión anterior y la que se
publique existirá un tiempo para poder utilizar la anterior hasta que cada
desarrollador de software adecue su programa para la nueva versión. Me refiero
si entre versión y versión existirá un plazo por ejemplo de 30 días para
cambiarlo o será de hoy para mañana.

-------------------
Respuesta de la AEAT:

1. Todavía no están disponibles.
2. Hay un periodo de adaptación entre versiones.

-------------------

Saludos a todos.
Responder Con Cita
  #10  
Antiguo 30-05-2017
PASPAS PASPAS is offline
Miembro
 
Registrado: feb 2017
Posts: 115
Poder: 10
PASPAS Va por buen camino
Aumento días plazo

Pregunta AEAT
En el supuesto caso: suele pasar en ocasiones una empresa envía en el último día de plazo la factura emitida o recibida.
Resulta en entonces que se me da el caso de:
1.- No existe conexión a internet en la empresa actualmente, debido causas tales como. Corte de suministro, corte por mantenimiento, etc… Qué debe hacer la empresa en estos casos.
2.- No está disponible la página de la AEAT. Mostrando el error de "Error 403", "Error de conexión SSL", "No se puede mostrar la página" o "Conexión segura fallida”
3.- El error se debe a que la página de un faultcode de tipo env:SERVER. Causado por el servidor de la AEAT. Por ejemplo: Código[102].Conexión a Oracle no disponible.
4.- Error debido a que esta en tramite la renovación del certificado y no deja la posibilidad de cambiar el actual ya que aún no se posee.
5.- Existe una Factura enviada pero con errores y no los pueden corregir por desconocimiento. Esta 100% obligado la empresa a corregir dichos errores.
Nos pueden indicar si estos casos van a generar una multa posterior. ¿Cómo se va a actuar en cada caso?
Necesitamos aclararlo ya que los clientes nos hacen muchas preguntas.
Necesito saber también en caso de multa cual sería su cuantía.
--------------------------------
Respuesta AEAT
Buenos días.

El artículo 7.3 de la Orden HFP/417/2017, de 12 de mayo señala lo siguiente en relación con los supuestos en que por imposibilidades técnicas no se haya remitido la información en los plazos previstos reglamentariamente:
3. En aquellos supuestos en que por razones de carácter técnico no fuera posible efectuar el suministro por Internet en el plazo establecido reglamentariamente para cada registro de facturación, o cuando este suministro no pudiera completarse porque no fuera posible realizar la consulta de los registros de facturación previamente suministrados, dicho suministro podrá efectuarse durante los cuatro días naturales siguientes al de finalización de dicho plazo.
Por su parte, el régimen de infracciones y sanciones previsto se encuentra regulado en el artículo 200 de la Ley 58/2003, de 17 de diciembre, General Tributaria.

En cualquier caso, de conformidad con lo establecido en el artículo 87 de la Ley 58/2003, de 17 de diciembre, General Tributaria (Boletín Oficial del Estado del día 18), esta contestación tiene el carácter de mera información de los criterios administrativos existentes para la aplicación de la normativa tributaria. Si desea plantear una consulta tributaria escrita respecto al régimen, clasificación o calificación tributaria que le corresponda, debe dirigirse, según lo establecido en los artículos 88 y 89 de la Ley General Tributaria, a la DGT como órgano competente para la elaboración de contestaciones vinculantes.
----------------


Saludos a todos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 4524 Hace 1 Día 16:17:40
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 02:52:46.


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