Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   SII -Nuevo sistema de la Agencia Tributaria española de envío de datos vía Webservice (https://www.clubdelphi.com/foros/showthread.php?t=91252)

Javierus 12-06-2024 18:59:09

Problemas con envío a Canarias
 
Hola,
Desde ayer estoy teniendo problemas con los envíos al SII de Canarias; estoy utilizando:
https://sede.gobiernodecanarias.org/...iiFactFEV1SOAP
https://sede.gobiernodecanarias.org/...iiFactFRV1SOAP

Y desde ayer la conexión me da "connection timed out", tanto desde instalaciones/equipamiento del cliente como nuestros

¿Sabéis si han cambiado o se han caído esos endpoints?

¡¡Gracias!!

chenech 12-06-2024 19:49:45

Si, están caídos, nos han llamado todos los clientes ayer y hoy que no le funciona a ninguno e intentan dar de alta alguna factura directamente en la plataforma y tampoco les funciona.
Un saludo.

sglorka 12-06-2024 22:52:21

Confirmo la información. Desde ayer por la tarde sólo responde connection timeout. Confirmado al subir una factura desde la propia plataforma de la ATC

Javierus 12-06-2024 23:52:59

Muchas gracias; ya no sabía dónde mirar

Noe277 14-06-2024 10:04:13

Sii
 
Buenas,

Nos a llamado algún cliente y nos a dicho que mandan al SII y que luego entran a la Web y no ven nada.
Estos no mandan a canarias.

sglorka 14-06-2024 11:04:13

Ya están habilitados los endpoints en la Agencia tributaria canaria.

razorxxx 27-06-2024 14:47:24

Solución al OnBeforePost en Delphi 10.3 y superiores
 
Cita:

Empezado por razorxxx (Mensaje 545013)
Dado que aún no he conseguido hacer funcionar el procedimiento OnBeforePost del HTTPRIO en Delphi Rio, estoy tratando de prescindir de ese método, y asignando (justo antes de la petición al WebService) la llamada al HTTPRIO1.HTTPWebNode.ClientCertificate.SerialNum, usando la función
Código:

function BUSCAR_CERTIFICADO(Nombre_Certificado: String): string;
que ya han mencionado en un post anterior.

Sin embargo, cuando hago
Código:

HTTPRIO1.HTTPWebNode.ClientCertificate.SerialNum := Buscar_Certificado(Cert.Text)
, me devuelve una cadena vacía. Según me he estado informando, esto solo sirve para cuando el certificado está en el almacén de certificados del equipo, pero no para cuando trabajamos con un fichero PFX/P12.

¿Alguien tiene alguna idea acerca de cargar un .pfx o .p12 en un objeto THTTPRIO, usando HTTPWebNode.ClientCertificate y prescindiendo de la llamada al OnBeforePost?

Buenas a todos.

Hasta ahora, para cargar un certificado desde archivo antes de realizar una petición con un objeto HTTPRIO utilizaba la librería capicom.dll desde el método OnBeforePost. Pero como comenté en su día, el método había cambiado desde la versión 10.3 de Delphi, ya que el Data: Pointer lo cambiaron a Client: THTTPClient.

Pues bien, después de mucho batallar, he conseguido hacerlo funcionar y además prescindiendo de la antigua librería capicom, simplemente usando métodos nativos de la librería crypt32.dll de Windows.

Primeramente, antes de llamar al bloque "implementation" de nuestro código, poner la siguiente línea:

Código Delphi [-]
function PFXImportCertStore(var pPFX: CRYPT_DATA_BLOB; szPassword: LPCWSTR; dwFlags: DWORD): HCERTSTORE; stdcall; external 'Crypt32.dll';

Luego en el método
Código Delphi [-]
HTTPRIOHTTPWebNodeBeforePost(const HTTPReqResp: THTTPReqResp; Client: THTTPClient)
se pone lo siguiente:

Código Delphi [-]
const
     PKCS12_INCLUDE_EXTENDED_PROPERTIES  = $0010;
     CERT_COMPARE_HAS_PRIVATE_KEY        = 21;
     CERT_FIND_HAS_PRIVATE_KEY           = CERT_COMPARE_HAS_PRIVATE_KEY shl CERT_COMPARE_SHIFT;
var
   Almacen: HCERTSTORE;
   Certificado: PCERT_CONTEXT;
   DataBlob: CRYPT_DATA_BLOB;
   PFX: TBytes;
begin
     Almacen := nil;
     Certificado := nil;
     PFX := TFile.ReadAllBytes(Cert.Text);
     Try
        DataBlob.cbData := Length(PFX);
        DataBlob.pbData := @PFX[0];

        // Defino mi almacén con el único certificado seleccionado, en lugar del almacén con todos los certificados de Windows
        Almacen := PFXImportCertStore(DataBlob, PWideChar(Pwd.Text), PKCS12_INCLUDE_EXTENDED_PROPERTIES);
        If not Assigned(Almacen) Then
            Salida.Lines.Add('[ERROR] No se pudo importar el certificado seleccionado.')  //RaiseLastOSError;
        Else
        Begin
             Certificado := CertFindCertificateInStore(Almacen, X509_ASN_ENCODING, 0, CERT_FIND_HAS_PRIVATE_KEY, nil, nil);
             If not Assigned(Certificado) Then
                 Salida.Lines.Add('[ERROR] No se pudo encontrar el certificado digital en el contexto actual, o bien no tiene clave privada.');  //RaiseLastOSError;
        End;
     Finally
            If Assigned(Certificado) Then CertFreeCertificateContext(Certificado);
            If Assigned(Almacen) Then CertCloseStore(Almacen, 0);
     End;
end;

, sabiendo que la ruta completa al certificado .pfx o .p12 está en un campo TEdit llamado 'Cert', y su contraseña en otro TEdit llamado 'Pwd'.

No olviden asignar este método al OnBeforePost del objeto HTTPRIO que realiza la petición al webservice, de lo contrario recibirán el error Received content of invalid Content-Type setting: text/html - SOAP expects "text/xml".

Espero haber ayudado. Saludos.

razorxxx 28-06-2024 16:01:48

Nada, olviden lo anterior. Seguía dando problemas para conectar, porque faltaba asignarle el certificado al objeto HTTPReqResp, parece ser que me estaba cogiendo el primero que veía en el almacén de certificados.

Pero lo he solucionado. Todo es más fácil de lo que pensaba.

El método
Código Delphi [-]
HTTPRIOHTTPWebNode1BeforePost(const HTTPReqResp: THTTPReqResp; Client: THTTPClient)
debe quedar así:

Código Delphi [-]
var
   CertStream: TMemoryStream;
begin
     CertStream := TMemoryStream.Create;
     CertStream.LoadFromFile(Cert.Text);
     HTTPReqResp.ClientCertificate.Stream := CertStream;
     HTTPReqResp.ClientCertificate.Password := Pwd.Text;
end;

Ahora ya puedo seleccionar el certificado que quiera antes de cualquier petición y prescindir de la librería CAPICOM.

Saludos.

keno_71 28-06-2024 16:20:44

Cita:

Empezado por razorxxx (Mensaje 556425)
Nada, olviden lo anterior. Seguía dando problemas para conectar, porque faltaba asignarle el certificado al objeto HTTPReqResp, parece ser que me estaba cogiendo el primero que veía en el almacén de certificados.

Pero lo he solucionado. Todo es más fácil de lo que pensaba.

El método
Código Delphi [-]
HTTPRIOHTTPWebNode1BeforePost(const HTTPReqResp: THTTPReqResp; Client: THTTPClient)
debe quedar así:

Código Delphi [-]
var
   CertStream: TMemoryStream;
begin
     CertStream := TMemoryStream.Create;
     CertStream.LoadFromFile(Cert.Text);
     HTTPReqResp.ClientCertificate.Stream := CertStream;
     HTTPReqResp.ClientCertificate.Password := Pwd.Text;
end;

Ahora ya puedo seleccionar el certificado que quiera antes de cualquier petición y prescindir de la librería CAPICOM.

Saludos.


Gracias razorxxx, estoy en Delphi Berlin y veía que uno de los cambios que me afectaba para pasar a un delphi superior era ese

razorxxx 01-07-2024 15:58:53

Cita:

Empezado por keno_71 (Mensaje 556427)
Gracias razorxxx, estoy en Delphi Berlin y veía que uno de los cambios que me afectaba para pasar a un delphi superior era ese

Gracias a la ayuda del usuario Garada de este foro he sabido que cada vez que se realiza una petición al webservice se guarda un fichero temporal con la clave privada encriptada en la ruta %appdata%\Microsoft\Crypto\RSA\S-1-5-21-algomás. Esto significa que en apenas 1 año habremos acumulado cientos o miles de archivos que no sirven para nada, si bien es verdad que ocupan muy poco espacio.

Si usas la librería crypto32.dll y quieres deshacerte de estos archivos, Garada aporta la siguiente solución en otro hilo: https://www.clubdelphi.com/foros/sho...0&postcount=50 .

En mi caso, como no uso ni crypto32.dll ni capicom.dll, para borrar estos archivos automáticamente lo que hago es moverme a la ruta %appdata%\Microsoft\Crypto\RSA\ y cuando encuentre el directorio que empieza por S-1-5-21, borro su contenido.

Si bien es verdad que otras aplicaciones pueden estar guardando estos temporales en la misma carpeta, en mi caso ningún usuario va a estar trabajando simultáneamente con 2 aplicaciones a la vez, así que los borro sin piedad. En cualquier caso, como sólo se usan en el contexto en el que fueron creados, interpreto que solamente se usarán en su mayoría durante pocos milisegundos o segundos.

fercapfor 09-07-2024 19:48:00

Cita:

Empezado por razorxxx (Mensaje 556425)
Nada, olviden lo anterior. Seguía dando problemas para conectar, porque faltaba asignarle el certificado al objeto HTTPReqResp, parece ser que me estaba cogiendo el primero que veía en el almacén de certificados.

Pero lo he solucionado. Todo es más fácil de lo que pensaba.

El método
Código Delphi [-]
HTTPRIOHTTPWebNode1BeforePost(const HTTPReqResp: THTTPReqResp; Client: THTTPClient)
debe quedar así:

Código Delphi [-]
var
   CertStream: TMemoryStream;
begin
     CertStream := TMemoryStream.Create;
     CertStream.LoadFromFile(Cert.Text);
     HTTPReqResp.ClientCertificate.Stream := CertStream;
     HTTPReqResp.ClientCertificate.Password := Pwd.Text;
end;

Ahora ya puedo seleccionar el certificado que quiera antes de cualquier petición y prescindir de la librería CAPICOM.

Saludos.

Hola razorxxx, grácias por los aportes.
El ejemplo que indicas no me funciona en Delphi 10.4 ya que ClientCertificate no tiene la propiedad 'Stream' ni tampoco 'Password'.
He intentado sobreescribir el fichero 'Soap.SOAPHTTPTrans.pas' con una versión de Delphi 11.......y sigue sin funcionar.
Hay que modificar algo más ?
Grácias

rci 10-07-2024 10:34:35

Rectificativa de Ventanilla Única OSS sin tener el CIF del comprador
 
Cita:

Empezado por rci (Mensaje 555455)
Por fin hoy me han contestado de hacienda a la consulta de como facturar y como enviar a SII ventas de Ventanilla Única OSS sin tener el CIF del comprador.

Resumiendo un poco, me han dicho lo siguiente:


Por lo tanto en el caso de OSS si no tenemos el CIF enviaremos el tipo de factura F2

Saludos

Hola hace unos días comenté en este foro el caso de facturas de Ventanilla Única OSS sin tener el CIF del comprador. Ya funciona correctamente pero ahora nos encontramos que alguna de esas facturas se ha hecho una rectificativa y como enviamos el tipo de factura F2 pues no indicamos que es una rectificativa (R4) cuando si lo es y por eso especificamos el TipoRectificativa.
Las facturas son rechazadas con el siguiente error:
Cita:

Si la factura no es del tipo rectificativa, el campo TipoRectificativa no debe tener valor
En este caso que no tengo claro que debemos hacer.
Si queremos indicar que es rectificativa pero no tenemos el CIF podemos utilizar el tipo R5 (Factura Rectificativa en facturas simplificadas) o mejor indicar R4 (Factura Rectificativa (Resto)) y utilizar la clave idOtro.IDType = 06 (Otro documento probatorio) para poner el CIF con un 0 (por ejemplo)?

Muchas gracias

newtron 10-07-2024 11:02:03

Cita:

Empezado por rci (Mensaje 556625)
Hola hace unos días comenté en este foro el caso de facturas de Ventanilla Única OSS sin tener el CIF del comprador. Ya funciona correctamente pero ahora nos encontramos que alguna de esas facturas se ha hecho una rectificativa y como enviamos el tipo de factura F2 pues no indicamos que es una rectificativa (R4) cuando si lo es y por eso especificamos el TipoRectificativa.
Las facturas son rechazadas con el siguiente error:


En este caso que no tengo claro que debemos hacer.
Si queremos indicar que es rectificativa pero no tenemos el CIF podemos utilizar el tipo R5 (Factura Rectificativa en facturas simplificadas) o mejor indicar R4 (Factura Rectificativa (Resto)) y utilizar la clave idOtro.IDType = 06 (Otro documento probatorio) para poner el CIF con un 0 (por ejemplo)?

Muchas gracias


No se me ha dado el caso pero entiendo que si pones un tipo relativo a facturas simplificadas no necesitarás rellenar esos campos.


Saludos.

sglorka 10-07-2024 11:43:44

Cita:

Empezado por rci (Mensaje 556625)
Hola hace unos días comenté en este foro el caso de facturas de Ventanilla Única OSS sin tener el CIF del comprador. Ya funciona correctamente pero ahora nos encontramos que alguna de esas facturas se ha hecho una rectificativa y como enviamos el tipo de factura F2 pues no indicamos que es una rectificativa (R4) cuando si lo es y por eso especificamos el TipoRectificativa.
Las facturas son rechazadas con el siguiente error:


En este caso que no tengo claro que debemos hacer.
Si queremos indicar que es rectificativa pero no tenemos el CIF podemos utilizar el tipo R5 (Factura Rectificativa en facturas simplificadas) o mejor indicar R4 (Factura Rectificativa (Resto)) y utilizar la clave idOtro.IDType = 06 (Otro documento probatorio) para poner el CIF con un 0 (por ejemplo)?

Muchas gracias

Si tienes que hacer una factura rectificativa de una simplificada, sólo tienes una opción, y es enviarla como R5. R1, R2, R3 y R4 sólo son para facturas rectificativas completas.

Por otro lado, te agradecería que publicaras el xml de una factura simplificada para el caso de ventanilla única OSS para contrastarlo, Gracias

rci 10-07-2024 12:02:47

Cita:

Empezado por sglorka (Mensaje 556628)
Si tienes que hacer una factura rectificativa de una simplificada, sólo tienes una opción, y es enviarla como R5. R1, R2, R3 y R4 sólo son para facturas rectificativas completas.

Por otro lado, te agradecería que publicaras el xml de una factura simplificada para el caso de ventanilla única OSS para contrastarlo, Gracias


Muchas gracias newtron y sglorka por las respuestas.

De hecho nuestro programa no permite hacer facturas simplificadas con IVA de otro país de la UE, ventanilla única OSS. PERO
este caso se refiere a facturas completas que no tienen el cif del destinatario y las enviamos con el tipo F2, según indicación de hacienda, como puedes ver si sigues el hilo de esté post.
El problema que tenemos ahora es cuando se rectifica esa factura completa pero sin el cif del cliente y que es de ventanilla única.

sglorka 10-07-2024 12:08:09

Cita:

Empezado por rci (Mensaje 556629)
Muchas gracias newtron y sglorka por las respuestas.

De hecho nuestro programa no permite hacer facturas simplificadas con IVA de otro país de la UE, ventanilla única OSS. PERO
este caso se refiere a facturas completas que no tienen el cif del destinatario y las enviamos con el tipo F2, según indicación de hacienda, como puedes ver si sigues el hilo de esté post.
El problema que tenemos ahora es cuando se rectifica esa factura completa pero sin el cif del cliente y que es de ventanilla única.

Y por qué no puedes emitir la misma factura con clave F2, tipo rectificativa R5 y sin identificación de destinatario ?

rci 10-07-2024 12:47:45

Cita:

Empezado por sglorka (Mensaje 556630)
Y por qué no puedes emitir la misma factura con clave F2, tipo rectificativa R5 y sin identificación de destinatario ?

Si, es una de las opciones que quiero probar, pero no se cual es la mejor ni cual es la correcta.
Cuando sepa algo mas os informo.

gracias!

rci 24-07-2024 16:42:46

Rectificativa de Ventanilla Única OSS sin tener el CIF del comprador
 
Cita:

Empezado por sglorka (Mensaje 556630)
Y por qué no puedes emitir la misma factura con clave F2, tipo rectificativa R5 y sin identificación de destinatario ?

Perdona sglorka no te respondí correctamente:
No puedo indicar a la vez la clave F2 y la clave R5 porque es una única propiedad y solo puedo indicar un valor.




Recordatorio, es una factura completa pero no tenemos el cif del cliente. Es una factura rectificativa de una factura de ventanilla única OSS.

Opción 1
Clave de régimen especial 17 // Ventanilla única OSS
TipoRectificativa = ClaveTipoRectificativaType.I; // por diferencias
ClaveTipoFacturaType.R5; // Factura Rectificativa en facturas simplificadas
No indicar datos de la contraparte


Opción 2
Clave de régimen especial 17 // Ventanilla única OSS
TipoRectificativa = ClaveTipoRectificativaType.I; // por diferencias
ClaveTipoFacturaType.R4; // Factura Rectificativa (Resto)
Informar los datos de la contraparte.
idOtro.IDType = PersonaFisicaJuridicaIDTypeType.Item06; // Otro documento probatorio
idOtro.ID = 0; // No disponemos del CIF


He probado las dos opciones y de las dos formas se ha aceptado correctamente la factura. No se cual será la correcta :confused:
En una estoy indicando que es una simplificada cuando no lo es y en la otra estoy enviando un 0 como documento identificativo del receptor:(

Muchas gracias por vuestro tiempo. Saludos!

sglorka 24-07-2024 17:11:37

Cita:

Empezado por rci (Mensaje 556817)
Perdona sglorka no te respondí correctamente:
No puedo indicar a la vez la clave F2 y la clave R5 porque es una única propiedad y solo puedo indicar un valor.




Recordatorio, es una factura completa pero no tenemos el cif del cliente. Es una factura rectificativa de una factura de ventanilla única OSS.

Opción 1
Clave de régimen especial 17 // Ventanilla única OSS
TipoRectificativa = ClaveTipoRectificativaType.I; // por diferencias
ClaveTipoFacturaType.R5; // Factura Rectificativa en facturas simplificadas
No indicar datos de la contraparte


Opción 2
Clave de régimen especial 17 // Ventanilla única OSS
TipoRectificativa = ClaveTipoRectificativaType.I; // por diferencias
ClaveTipoFacturaType.R4; // Factura Rectificativa (Resto)
Informar los datos de la contraparte.
idOtro.IDType = PersonaFisicaJuridicaIDTypeType.Item06; // Otro documento probatorio
idOtro.ID = 0; // No disponemos del CIF


He probado las dos opciones y de las dos formas se ha aceptado correctamente la factura. No se cual será la correcta :confused:
En una estoy indicando que es una simplificada cuando no lo es y en la otra estoy enviando un 0 como documento identificativo del receptor:(

Muchas gracias por vuestro tiempo. Saludos!

Si utilizas el asistente virtual del SII, ante este tipo de operación arroja la siguiente información.

Libro registro: Facturas emitidas
Identificación de la factura:
NIF del emisor: NIF del transmitente
Número de factura: número de factura
Fecha de expedición: fecha de expedición de factura
Tipo Factura: F1, F2
Importe total: importe total de la factura en euros,sin incluir en su caso, el IVA de otro Estado miembro.
Clave de régimen especial: 17
Contraparte: no debe consignar los datos de la contraparte si el tipo de factura es F2. Si es F1, consigne:
    NIF.
    En el caso de que el cliente no sea residente en España, IdOtro:
    Código país: identificación fiscal del país de residencia del cliente (consumidor final)
    Número de identificación fiscal en el país de residencia (claves 03…06)
Desglose, tipo de operación: entrega de bienes o prestación de servicios
No sujeta
Importe no sujeto por reglas de localización: importe total de la factura en euros, sin incluir el IVA del otro Estado miembro.
Plazo presentación:4 días naturales excluidos sábados, domingos y festivos nacionales desde la expedición de la factura y en todo caso hasta el 15 del mes siguiente al periodo de liquidación en que se incluya la operación (casilla 123 del modelo 303).



Si no tienes identificación de destinatario deberías emitir la factura como la opción 1, R5 rectificativa de simplificada. Si la emites como R4 estás indicando que la factura original era completa. Pero en este caso deberías usar R1, que indica que la rectificación es por modificación de la base imponible debido a devoluciones o descuentos

rci 24-07-2024 17:37:19

Cita:

Empezado por sglorka (Mensaje 556818)
Si utilizas el asistente virtual del SII, ante este tipo de operación arroja la siguiente información.

Libro registro: Facturas emitidas
Identificación de la factura:
NIF del emisor: NIF del transmitente
Número de factura: número de factura
Fecha de expedición: fecha de expedición de factura
Tipo Factura: F1, F2
Importe total: importe total de la factura en euros,sin incluir en su caso, el IVA de otro Estado miembro.
Clave de régimen especial: 17
Contraparte: no debe consignar los datos de la contraparte si el tipo de factura es F2. Si es F1, consigne:
    NIF.
    En el caso de que el cliente no sea residente en España, IdOtro:
    Código país: identificación fiscal del país de residencia del cliente (consumidor final)
    Número de identificación fiscal en el país de residencia (claves 03…06)
Desglose, tipo de operación: entrega de bienes o prestación de servicios
No sujeta
Importe no sujeto por reglas de localización: importe total de la factura en euros, sin incluir el IVA del otro Estado miembro.
Plazo presentación:4 días naturales excluidos sábados, domingos y festivos nacionales desde la expedición de la factura y en todo caso hasta el 15 del mes siguiente al periodo de liquidación en que se incluya la operación (casilla 123 del modelo 303).



Si no tienes identificación de destinatario deberías emitir la factura como la opción 1, R5 rectificativa de simplificada. Si la emites como R4 estás indicando que la factura original era completa. Pero en este caso deberías usar R1, que indica que la rectificación es por modificación de la base imponible debido a devoluciones o descuentos

Muchas gracias sglorka. Seguramente lo enviaremos como la opción 1, aunque la factura original sea completa...



Sobre esto que comentas del R1, nosotros como no sabemos en cada factura el motivo de la rectificación para decidir el tipo y el usuario no lo puede escoger, siempre enviamos el tipo R4 y no hemos tenido ningún problema pero... puede que no sea del todo correcto ... :o

sglorka 24-07-2024 17:42:51

Cita:

Empezado por rci (Mensaje 556819)
Muchas gracias sglorka. Seguramente lo enviaremos como la opción 1, aunque la factura original sea completa...



Sobre esto que comentas del R1, nosotros como no sabemos en cada factura el motivo de la rectificación para decidir el tipo y el usuario no lo puede escoger, siempre enviamos el tipo R4 y no hemos tenido ningún problema pero... puede que no sea del todo correcto ... :o

Bueno respecto del tipo de rectificativa, simplemente, si hay disminución de la base imponible por devolución o descuentos sería R1, si es una rectificativa sustitutiva o hay aumento de la base imponible por error en precios, sería R4. R2 y R3 sólo son para recuperar cuotas devengadas por impago de facturas y R5 para todas las simplificadas.
Algún cliente mío ha recibido notificación del SII por enviar como R4 sus rectificativas

antoine0 24-07-2024 20:41:32

Cita:

Empezado por sglorka (Mensaje 556820)
si hay disminución de la base imponible por devolución o descuentos sería R1, si es una rectificativa sustitutiva o hay aumento de la base imponible por error en precios, sería R4.

Gracias por la regla. Muy interesante.

Sin embargo, entiendo de tu descripción que si hay disminución de la base imponible por error en los precios, sería R1, ¿correcto?
Entonces ¿de dónde viene que las subidas de precio acaban en R4 cuando las bajadas son R1?
La ley en 80.2 dice que «[...] o se altere el precio después del momento en que la operación se haya efectuado, la base imponible se modificará en la cuantía correspondiente.»
Lo leí como que una alteración de precio, de cualquier signo, entraría en este caso.

El texto en la elipsis cubre las devoluciones y demás diferencias a la baja de cantidades; por tanto está claro que un eventual aumento de base por error en las cantidades debe acabar como R4.

De hecho, para mí R4 es un cajón de sastre para los casos excepcionales, los casos normales (aunque no son muy numerosos) suelen acabar como R1. Pero estoy igual que rci, puede que no sea del todo correcto...:cool:

sglorka 24-07-2024 23:24:45

Cita:

Empezado por antoine0 (Mensaje 556823)
Gracias por la regla. Muy interesante.

Sin embargo, entiendo de tu descripción que si hay disminución de la base imponible por error en los precios, sería R1, ¿correcto?
Entonces ¿de dónde viene que las subidas de precio acaban en R4 cuando las bajadas son R1?
La ley en 80.2 dice que «[...] o se altere el precio después del momento en que la operación se haya efectuado, la base imponible se modificará en la cuantía correspondiente.»
Lo leí como que una alteración de precio, de cualquier signo, entraría en este caso.

El texto en la elipsis cubre las devoluciones y demás diferencias a la baja de cantidades; por tanto está claro que un eventual aumento de base por error en las cantidades debe acabar como R4.

De hecho, para mí R4 es un cajón de sastre para los casos excepcionales, los casos normales (aunque no son muy numerosos) suelen acabar como R1. Pero estoy igual que rci, puede que no sea del todo correcto...:cool:

Bajo mi punto de vista, una disminución de la base imponible por error en los precios no sería R1. Sólo sería R1 si se produce una disminución de la bases imponibles debido a devoluciones o descuentos. Un error en los precios, yo personalmente, lo interpretaría como R4 independientemente de que baje o suba la base imponible.

Entiendo que la frase que citas de la ley L20/91 Art. 22 apartado 4, referente a la alteración del precio una vez efectuada la operación, no se refiere a que el precio era incorrecto en origen, más bien entiendo que una vez expedida la factura y debido a algún problema financiero posterior, dicho precio habría que aumentarlo para poder cubrir costes. En este caso, también seria una R1.

En resumen, para ser prácticos, optaría por marcar como R1 todas las rectificaciones ocasionadas por devoluciones y descuentos ( las de alteración de precio son infrecuentes) y como R4 todas las demás, errores en la identificación fiscal del cliente, cualquier rectificación de facturas rectificativas, errores en la aplicación de precios o errores en la aplicación de descuentos.

Recordar que el documento de descripción del servicio web para el SII, dice textualmente
R1 Factura Rectificativa (Error fundado en derecho y Art. 22 apartados 4, 5 y 11 L20/91), pongo link a dicha ley https://www.boe.es/buscar/act.php?id...1991-14463#a22

antoine0 25-07-2024 10:54:45

Cita:

Empezado por sglorka (Mensaje 556827)
Bajo mi punto de vista, una disminución de la base imponible por error en los precios no sería R1. Sólo sería R1 si se produce una disminución de la bases imponibles debido a devoluciones o descuentos. Un error en los precios, yo personalmente, lo interpretaría como R4 independientemente de que baje o suba la base imponible.

Entiendo que la frase que citas de la ley L20/91 Art. 22 apartado 4, referente a la alteración del precio una vez efectuada la operación, no se refiere a que el precio era incorrecto en origen, más bien entiendo que una vez expedida la factura y debido a algún problema financiero posterior, dicho precio habría que aumentarlo para poder cubrir costes. En este caso, también seria una R1.

En resumen, para ser prácticos, optaría por marcar como R1 todas las rectificaciones ocasionadas por devoluciones y descuentos ( las de alteración de precio son infrecuentes) y como R4 todas las demás, errores en la identificación fiscal del cliente, cualquier rectificación de facturas rectificativas, errores en la aplicación de precios o errores en la aplicación de descuentos.

Recordar que el documento de descripción del servicio web para el SII, dice textualmente
R1 Factura Rectificativa (Error fundado en derecho y Art. 22 apartados 4, 5 y 11 L20/91), pongo link a dicha ley https://www.boe.es/buscar/act.php?id...1991-14463#a22

Gracias por tomar el tiempo de explicármelo.
Estoy de acuerdo contigo que las modificaciones de precios son infrecuentes (y menos al alza, ya que la presión del cliente suele sentirse en sentido contrario) y por tanto entiendo el criterio de poner R4 sistemáticamente en tal caso.

Solo señalar que en el marco peninsular, la ley aplicable es la 37/92 (o sus correspondientes forales, idénticas en esta materia) y el tipo R1 se refiere al artículo 80 apartados 2, 1 y 6 respectivamente: https://www.boe.es/buscar/act.php?id...1992-28740#a80. El texto me parece muy similar o idéntico.

sglorka 25-07-2024 15:28:51

Sí tienes razón, el marco peninsular hace referencia a otra Ley, pero básicamente deben decir lo mismo ya que el reglamento de facturación es común para todo el País.

muli 20-08-2024 13:02:53

Cita:

Empezado por newtron (Mensaje 555968)
Buenas.


Igual que declaras una matriz para los ivas soportados tienes que declarar una distinta para los ivas soportados de inversión del sujeto pasivo.


Código SQL [-]
  IVASP: InversionSujetoPasivo;


Dependiendo si tiene iva o no lo rellenas o no y finalmente se lo asignas:


Código SQL [-]
   ARegistroLRFacturasRecibidas[N].FacturaRecibida.desglosefactura.InversionSujetoPasivo:=IVASP;


Así es como yo lo hago.


Saludos.

Muy buena la ayuda, y todo OK, pero ya sabes que siempre hay que darle mas vueltas a todo, en este caso es cuando es un bien de inversion S/N Con el Iva normal, hago lo siguiente:
Código Delphi [-]
  Ivas[1]:=DetalleIVARecibidaType.Create;
  IVAS[1].BaseImponible:=Edit3.Text;            // BASE IMPONIBLE
  IVAS[1].TipoImpositivo:=Edit13.Text;            // IVA %
  IVAS[1].CuotaSoportada:=Edit14.Text;
  If CheckBox2.Checked Then    // Si es un bien de inversión.
  Begin
     Ivas[1].BienInversion:=BienInversionType(0);
  End;


Pero en la inversión de sujeto pasivo no tiene la propiedad de Bien Inversión, sin embargo en el portal de la agencia tributaria si permite poner bien de inversion s/n.

Alguna luz al respecto?

newtron 20-08-2024 13:35:28

Cita:

Empezado por muli (Mensaje 557013)
Muy buena la ayuda, y todo OK, pero ya sabes que siempre hay que darle mas vueltas a todo, en este caso es cuando es un bien de inversion S/N Con el Iva normal, hago lo siguiente:
Código Delphi [-] Ivas[1]:=DetalleIVARecibidaType.Create; IVAS[1].BaseImponible:=Edit3.Text; // BASE IMPONIBLE IVAS[1].TipoImpositivo:=Edit13.Text; // IVA % IVAS[1].CuotaSoportada:=Edit14.Text; If CheckBox2.Checked Then // Si es un bien de inversión. Begin Ivas[1].BienInversion:=BienInversionType(0); End;



Pero en la inversión de sujeto pasivo no tiene la propiedad de Bien Inversión, sin embargo en el portal de la agencia tributaria si permite poner bien de inversion s/n.

Alguna luz al respecto?


Ahí me has pillado porque no tenía conciencia de que hubiera que informar de ese detalle y mirando por las preguntas frecuentes me encuentro esto:





donde dice que no es obligatorio informar de ese dato.


Saludos.

antoine0 20-08-2024 14:11:07

Cita:

Empezado por muli (Mensaje 557013)
Pero en la inversión de sujeto pasivo no tiene la propiedad de Bien Inversión [...]

Debería estar si se han importado correctamente los XSD de la versión 1.1 bis (2022)...
Una factura recibida «normal» tiene un bloque DesgloseIVA/DetalleIVA de tipo DetalleIVARecibidaType (que incluye campos como PorcentCompensacionREAGYP o ImporteCompensacionREAGYP) que acaba con un campo BienInversion que es opcional.
La misma factura recibida puede tener también (antes) un bloque InversionSujetoPasivo/DetalleIVA de tipo DetalleIVARecibida2Type (sin los campos PorcentCompensacionREAGYP o ImporteCompensacionREAGYP) que acaba también con un campo BienInversion, que también es opcional.

Entonces creo que el código siguiente debería funcionar:
Código Delphi [-]
  Ivas[0]:=DetalleIVARecibida2Type.Create;
  IVAS[0].BaseImponible:=Edit3.Text;            // BASE IMPONIBLE
  IVAS[0].TipoImpositivo:=Edit13.Text;            // IVA %
  IVAS[0].CuotaSoportada:=Edit14.Text;
  If CheckBox2.Checked Then    // Si es un bien de inversión.
  Begin
     Ivas[0].BienInversion:=BienInversionType(0);
  End;

afxe 09-10-2024 12:28:20

Problemas con Rectificativas al 0% y 5%
 
Buenas... Me están rechazando las facturas rectificativas (TipoFactura = R1) de aquellos que no están exentos (tipoNoExento = S1) y que tienen un IVA del 0% o del 5%. ¿Alquien se ha topado con este error? adjunto XML que genero.

Código:


<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<SuministroLRFacturasEmitidas xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd">
<Cabecera>
  <IDVersionSii>1.1</IDVersionSii>
  <Titular>
    <NombreRazon>APPPP, S.A.</NombreRazon>
    <NIF>A99999999</NIF>
  </Titular>
  <TipoComunicacion>A0</TipoComunicacion>
</Cabecera>
<RegistroLRFacturasEmitidas>
  <PeriodoLiquidacion>
    <Ejercicio>2024</Ejercicio>
    <Periodo>10</Periodo>
  </PeriodoLiquidacion>
  <IDFactura>
    <IDEmisorFactura>
      <NIF>A29999999</NIF>
    </IDEmisorFactura>
    <NumSerieFacturaEmisor>24/R/001168</NumSerieFacturaEmisor>
    <FechaExpedicionFacturaEmisor>01-10-2024</FechaExpedicionFacturaEmisor>
  </IDFactura>
  <FacturaExpedida>
    <TipoFactura>R1</TipoFactura>
    <TipoRectificativa>I</TipoRectificativa>
    <ClaveRegimenEspecialOTrascendencia>01</ClaveRegimenEspecialOTrascendencia>
    <ImporteTotal>-24.20</ImporteTotal>
    <DescripcionOperacion>Factura a cliente</DescripcionOperacion>
    <Contraparte>
      <NombreRazon>RESTAOCIO SL</NombreRazon>
      <NIF>B40197246</NIF>
    </Contraparte>
    <TipoDesglose>
      <DesgloseFactura>
        <Sujeta>
          <NoExenta>
            <TipoNoExenta>S1</TipoNoExenta>
            <DesgloseIVA>
              <DetalleIVA>
                <TipoImpositivo>0.00</TipoImpositivo>
                <BaseImponible>-24.20</BaseImponible>
                <CuotaRepercutida>0.00</CuotaRepercutida>
              </DetalleIVA>
            </DesgloseIVA>
          </NoExenta>
        </Sujeta>
      </DesgloseFactura>
    </TipoDesglose>
  </FacturaExpedida>
</RegistroLRFacturasEmitidas>
</SuministroLRFacturasEmitidas>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

¿Alguien me echa una manita?

edari 10-10-2024 09:06:22

Cita:

Empezado por afxe (Mensaje 558027)
Buenas... Me están rechazando las facturas rectificativas (TipoFactura = R1) de aquellos que no están exentos (tipoNoExento = S1) y que tienen un IVA del 0% o del 5%. ¿Alquien se ha topado con este error? adjunto XML que genero.

Código:


<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<SuministroLRFacturasEmitidas xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd">
<Cabecera>
  <IDVersionSii>1.1</IDVersionSii>
  <Titular>
    <NombreRazon>APPPP, S.A.</NombreRazon>
    <NIF>A99999999</NIF>
  </Titular>
  <TipoComunicacion>A0</TipoComunicacion>
</Cabecera>
<RegistroLRFacturasEmitidas>
  <PeriodoLiquidacion>
    <Ejercicio>2024</Ejercicio>
    <Periodo>10</Periodo>
  </PeriodoLiquidacion>
  <IDFactura>
    <IDEmisorFactura>
      <NIF>A29999999</NIF>
    </IDEmisorFactura>
    <NumSerieFacturaEmisor>24/R/001168</NumSerieFacturaEmisor>
    <FechaExpedicionFacturaEmisor>01-10-2024</FechaExpedicionFacturaEmisor>
  </IDFactura>
  <FacturaExpedida>
    <TipoFactura>R1</TipoFactura>
    <TipoRectificativa>I</TipoRectificativa>
    <ClaveRegimenEspecialOTrascendencia>01</ClaveRegimenEspecialOTrascendencia>
    <ImporteTotal>-24.20</ImporteTotal>
    <DescripcionOperacion>Factura a cliente</DescripcionOperacion>
    <Contraparte>
      <NombreRazon>RESTAOCIO SL</NombreRazon>
      <NIF>B40197246</NIF>
    </Contraparte>
    <TipoDesglose>
      <DesgloseFactura>
        <Sujeta>
          <NoExenta>
            <TipoNoExenta>S1</TipoNoExenta>
            <DesgloseIVA>
              <DetalleIVA>
                <TipoImpositivo>0.00</TipoImpositivo>
                <BaseImponible>-24.20</BaseImponible>
                <CuotaRepercutida>0.00</CuotaRepercutida>
              </DetalleIVA>
            </DesgloseIVA>
          </NoExenta>
        </Sujeta>
      </DesgloseFactura>
    </TipoDesglose>
  </FacturaExpedida>
</RegistroLRFacturasEmitidas>
</SuministroLRFacturasEmitidas>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

¿Alguien me echa una manita?


A nosotros nos pasa igual


Mis clientes intentan hacer abonos al 0% o al 5% y tampoco les deja


Lo único que he conseguido es subir los del 0% pasándolos como Nosujeta pero no sé me estoy convirtiendo en el "delincuente" del mes :eek:


...
<sii:TipoDesglose>
<sii:DesgloseFactura>
<sii:NoSujeta>
<sii:ImportePorArticulos7_14_Otros>850.00</sii:ImportePorArticulos7_14_Otros>

</sii:NoSujeta>


</sii:DesgloseFactura>


</sii:TipoDesglose>


...

Y las del 5% ni idea




antoine0 10-10-2024 09:19:00

Cita:

Empezado por afxe (Mensaje 558027)
Buenas... Me están rechazando las facturas rectificativas (TipoFactura = R1) de aquellos que no están exentos (tipoNoExento = S1) y que tienen un IVA del 0% o del 5%. ¿Alquien se ha topado con este error?
¿Alguien me echa una manita?

Falta la fecha de operación.

Desde la última actualización en julio, Hacienda averigua si el tipo está ajustado a la fecha de operación indicada. Si no hay fecha de operación, utiliza la fecha de factura.
Y una factura rectificativa como el ejemplo está fechada (correctamente) en octubre, por tanto un tipo sujeto del 0% no es posible (y supongo que será igual para el 5%). Hay que indicar la fecha de operación, que en tal caso se corresponde con la fecha de operación de la factura rectificada.

afxe 10-10-2024 12:40:43

Creo entender que hay que indicar en fecha de operación, no la fecha en que se retira la mercancía, sino la fecha en la que se vendió la mercancía que ahora es retirada.... ¿Correcto? Pues en el módulo de contabilidad no tengo acceso a ese dato. Intentaré poner a pelo fecha de septiembre a cualquier IVA del 0% o 5% a ver si cuela y os digo el resultado.
Edito: Tengo un problema: En la misma factura cambio de producto: (Se retira mercancía a punto de caducar y se cambia por mercancía con más fecha de caducidad, operaciones típicas en lácteos y cárnicas envasadas). Tengo IVA del 0% y 2%, o 5% y 7.5% en la misma factura. La FechaOperacion es única para la factura.

afxe 10-10-2024 13:35:56

Ha funcionado. Al generar los registros de IVA, si detecto un 0% o un 5% y es rectificativa, encasqueto a pelo: aReg_Fra_Emi[Ind].FacturaExpedida.FechaOperacion := '30-09-2024';

Lo he comentado con el cliente y me dice que habrá que hacer algo parecido cuando el IVA suba del 2% al 4% y del 7.% al 10%. Me comenta que cuando se ponga con las facturas de rappel en enero del año que viene, si va a tener que hacer una factura por cada periodo de IVA actividad de IVA, ya que la FechaOperacion es única para la factura.... :confused::confused::confused:

sglorka 10-10-2024 14:17:21

Alguien que comunique con el SII de Canarias me puede verificar si puedes hacerlo ?
Gracias

antoine0 10-10-2024 19:44:37

Cita:

Empezado por afxe (Mensaje 558077)
Me comenta que cuando se ponga con las facturas de rappel en enero del año que viene, si va a tener que hacer una factura por cada periodo de IVA actividad de IVA, ya que la FechaOperacion es única para la factura.... :confused::confused::confused:

Mmmmm... Qué bueno caso...
Parece claro que Hacienda espera que le pongamos tipos diferenciados en el rappel, ¾ al 0% y ¼ al 2% (realmente deben ser en proporción a los volúmenes de venta).
Y evidentemente la nueva validación no lo permite, o parece que no lo permite.

Creo que habrá noticias al respecte antes de 3 meses. Por qué lo de hacer facturas separadas no lo veo: le quita todo el sentido al concepto de rappel sobre un volumen anual de ventas.

jlmoli_67 12-11-2024 12:17:57

Error 1304 Final De Archivo Prematuro
 
Buenas.
Llevo unos dias intentanto enviar una factura recibida normal y me da ese error. Estoy ya desesperado porque algo se me escapa pero no lo veo mas que lo intento. Podria alguien decirme donde esta el fallo o bien poner un xml completo que funcione para que yo pueda fijarme. Os lo agradeceria muchisimo


certificado= "**FRA A CARGO DE ESTE TITULAR**"
URL DE ENVIO: https://prewww1.aeat.es/wlpl/SSII-FA...iiFactFRV1SOAP

Código PHP:

<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:siiLR="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd" 
xmlns:sii="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">
<soapenv:Header/>
<soapenv:Body>
<siiLR:SuministroLRFacturasRecibidas>
  <sii:Cabecera>
    <sii:IDVersionSii>1.1</sii:IDVersionSii>
    <sii:Titular>
      <sii:NombreRazon>**FRA A CARGO DE ESTE TITULAR**</sii:NombreRazon>
      <sii:NIF>NIF</sii:NIF>
    </sii:Titular>
    <sii:TipoComunicacion>A0</sii:TipoComunicacion>
  </sii:Cabecera>
  <siiLR:RegistroLRFacturasRecibidas>
    <sii:PeriodoLiquidacion>
      <sii:Ejercicio>2024</sii:Ejercicio>
      <sii:Periodo>10</sii:Periodo>
    </sii:PeriodoLiquidacion>
    <siiLR:IDFactura>
      <sii:IDEmisorFactura>
        <sii:NIF>NIF PROVEEDOR</sii:NIF>
      </sii:IDEmisorFactura>
      <sii:NumSerieFacturaEmisor>00000020</sii:NumSerieFacturaEmisor>
      <sii:FechaExpedicionFacturaEmisor>01-10-2024</sii:FechaExpedicionFacturaEmisor>
    </siiLR:IDFactura>
    <siiLR:FacturaRecibida>
      <sii:TipoFactura>F1</sii:TipoFactura>
      <sii:FechaOperacion>01-10-2024</sii:FechaOperacion>
      <sii:ClaveRegimenEspecialOTrascendencia>01</sii:ClaveRegimenEspecialOTrascendencia>
      <sii:DescripcionOperacion>Venta de mercaderia</sii:DescripcionOperacion>
      <sii:DesgloseFactura>
        <sii:DesgloseIVA>
          <sii:DetalleIVA>
            <sii:TipoImpositivo>21</sii:TipoImpositivo>
            <sii:BaseImponible>1000</sii:BaseImponible>
            <sii:CuotaSoportada>210</sii:CuotaSoportada>
          </sii:DetalleIVA>
         </sii:DesgloseIVA>
      </sii:DesgloseFactura>
      <sii:Contraparte>
        <sii:NombreRazon>PROVEEDOR</sii:NombreRazon>
        <sii:NIF>NIF PROVEEDOR</sii:NIF>
      </sii:Contraparte>
      <sii:FechaRegContable>01-10-2024</sii:FechaRegContable>
      <sii:CuotaDeducible>210</sii:CuotaDeducible>
    </siiLR:FacturaRecibida>
  </siiLR:RegistroLRFacturasRecibidas>
</siiLR:SuministroLRFacturasRecibidas>
</soapenv:Body>
</soapenv:Envelope>


keys 12-11-2024 12:36:39

1 Archivos Adjunto(s)
Aquí tienes un ejemplo

jlmoli_67 12-11-2024 13:19:40

Muchas gracias keys. Eres un crack !!

El problema era una gilipollez. Visto lo visto voy a tener que descansar cada 4 horas. Estoy muy quemado

Gracias de nuevo

jlmoli_67 18-11-2024 11:17:04

simplificada identificada
 
Hola,
Se puede emitir una simplificada (f2) que incorpore los datos del cliente? No se como hacerlo sin tener que cambiar de tipo de factura.


gracias

keys 18-11-2024 11:31:28

Cita:

Empezado por jlmoli_67 (Mensaje 559828)
Hola,
Se puede emitir una simplificada (f2) que incorpore los datos del cliente? No se como hacerlo sin tener que cambiar de tipo de factura.


gracias

No se puede.
Cita:

Si el tipo de factura es F2, F4 ó R5, la contraparte no puede estar cumplimentada
Tienes que enviarlas como F1 o lo que le corresponda


La franja horaria es GMT +2. Ahora son las 21:30:41.

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