Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Ley antifraude 2021 (VERIFACTU) - Programas informáticos (https://www.clubdelphi.com/foros/showthread.php?t=95235)

espinete 10-10-2024 13:54:17

Cita:

Empezado por Sistel (Mensaje 558045)
Hola,

Si un negocio está dado de alta en el régimen de recargo de equivalencia es porque funciona como comercio intermedio entre un proveedor y el cliente final.
El proveedor además de facturarle con IVA también debe recargarle el RE.
Y él, en sus facturas a clientes debe cargar sólo el IVA.
Está exento de hacer declaraciones de IVA: ya ha pagado IVA + RE de lo comprado y ha cobrado IVA de lo vendido. Y Hacienda con eso se da por satisfecha.
Y, lógicamente, no puede vender a clientes que también estén en régimen de recargo de equivalencia: no puede emitir facturas con RE.
Sólo puede vender a clientes finales.

Saludos

Por lo tanto, entiendo que una empresa que está en "régimen de recargo de equivalencia" NO puede emitir facturas a sus clientes CON recargo de Equivalencia. Solo con IVA.
Así que la "clave regimen" sería "recargo equivalencia", pero SOLO tendría IVA en las facturas.

Y en el caso del "proveedor" (siguiendo tu ejemplo), sí le añade el RE a las facturas a este cliente, por lo que entiendo que el proveedor debe tener Clave Régimen = 01, para poder emitir facturas con RE.

O sea, que lo que está claro es que no se puede estar en ClaveRegimen = Recargo Equiv Y ADEMÁS emitir facturas con RE

¿Correcto?

nincillo 10-10-2024 16:30:39

Cita:

Empezado por newtron (Mensaje 558062)
Pues lo primero que hice fue instalar algunas actualizaciones que tenía pendientes de windows (por si acaso) y :eek: se me fastidió el arranque del sistema y no hubo forma de repararlo. Llevo casi una semana intentando ponerlo todo al día. Si consigo avances en ese sentido lo pondré por aquí por si a alguien le viene bien pero la verdad es que soy pesimista al respecto.


Saludos.

Pues suerte con la "reparación" a ver si al final consigues algo...

Yo de momento estoy haciendo pruebas con la Delphi 12 Community, los WSDL y el HTTPRio y he atascado en un punto que de momento no he conseguido "desatascar".
Ya genero una parte del xlm, ya hago hago el envío y ya recibo la respuesta del servidor diciendo que me falta rellenar tal o cual campo. Hasta ahí todo normal. El problema lo tengo con el certificado y más concretamente con la contraseña de éste.

Código:

 
var
    rfsf : RegFactuSistemaFacturacion;
    result : RespuestaRegFactuSistemaFacturacionType;
begin

  rfsf := RegFactuSistemaFacturacion.Create;
  rfsf.Cabecera := Cabecera.Create;
  ...
  ...
  ...
  result := RespuestaRegFactuSistemaFacturacionType.Create;

  HTTPRIO1.HTTPWebNode.ClientCertificate.CertName := EditCertificado.text;
  HTTPRIO1.HTTPWebNode.ClientCertificate.Password := 'Pass123';

  SistemaFacturacion.RespuestaRegFactuSistemaFacturacion(result) := SistemaFacturacion.GetsfPortTypeVerifactu(false, EditUrl.Text, HTTPRIO1).RegFactuSistemaFacturacion(rfsf);
end;

Opciones que se me han dado:

1) Si no relleno el CertName, me sale una ventana donde seleccionar el certificado y posteriormente, si el certificado no tengo instalado con contraseña, entonces me sale otra ventana para introducir la contraseña.
2) Si relleno el CertName con un valor correcto, entonces ya no me sale la ventana para seleccionar el certificado, sino que ya me sale directamente la ventana para escribir la contraseña (si la tiene)
3) Si relleno el CertName y el Password, me pasa lo mismo que en la opción 2, me selecciona el certificado correcto pero también me pide que introduzca la contraseña y de momento, de ahí no paso.

A ver si alguien me puede dar un empujón...

Un saludo.

Sistel 10-10-2024 17:15:19

Cita:

Empezado por espinete (Mensaje 558082)
Por lo tanto, entiendo que una empresa que está en "régimen de recargo de equivalencia" NO puede emitir facturas a sus clientes CON recargo de Equivalencia. Solo con IVA.
Así que la "clave regimen" sería "recargo equivalencia", pero SOLO tendría IVA en las facturas.
Y en el caso del "proveedor" (siguiendo tu ejemplo), sí le añade el RE a las facturas a este cliente, por lo que entiendo que el proveedor debe tener Clave Régimen = 01, para poder emitir facturas con RE.
O sea, que lo que está claro es que no se puede estar en ClaveRegimen = Recargo Equiv Y ADEMÁS emitir facturas con RE
¿Correcto?

Hola,

Efectivamente. Así es.

Saludos

Sistel 10-10-2024 17:17:08

Cita:

Empezado por novatico (Mensaje 558081)
Yo ya tengo varios clientes que han decidido adelantar su jubilación al año que viene, para evitar tener que enfrentar toda esta movida.

Hola,

En el caso de TicketBAI, se excluyó de la obligatoriedad a los negocios de autónomos con jubilación próxima.
Tal vez hagan lo mismo en Verifactu.

Saludos

edari 10-10-2024 17:32:04

Hola de nuevo,

Ya conseguí subir mi primera factura a pruebas...voy por la segunda :D gracias por toda vuestra ayuda


Tengo una duda de como guardáis los xml (en modo VERIFACTU)


Vamos a imaginar que subo un envío de 20 facturas en un mismo "paquete"


Guardáis el xml "individual" de cada factura en vuestro ERP? Entiendo que sí


Y si es que sí, la fecha que ponéis en FechaHoraHusoGenRegistro entiendo que es la misma en las 20 facturas, con la que subió el fichero de las 20 a Veifactu. Voy bien?


Gracias de nuevo

[email protected] 10-10-2024 17:39:58

Edari, podrias compartir un xml que te haya funcionado.
Yo estoy estancado en la seccion DESGLOSE no consigo pasasr

Gracias

ermendalenda 10-10-2024 18:01:39

Cita:

Empezado por edari (Mensaje 558091)
Hola de nuevo,

Ya conseguí subir mi primera factura a pruebas...voy por la segunda :D gracias por toda vuestra ayuda


Tengo una duda de como guardáis los xml (en modo VERIFACTU)


Vamos a imaginar que subo un envío de 20 facturas en un mismo "paquete"


Guardáis el xml "individual" de cada factura en vuestro ERP? Entiendo que sí


Y si es que sí, la fecha que ponéis en FechaHoraHusoGenRegistro entiendo que es la misma en las 20 facturas, con la que subió el fichero de las 20 a Veifactu. Voy bien?


Gracias de nuevo

Yo entiendo que ese campo es la hora fecha de cada factura, ya que se emite la factura y el qr a una hora determinada junto con el registro individual, otra cosa es que mandes varios registros en el mismo paquete. Pero el fechahorausogenregistro es de cada registro.

Mlopez 10-10-2024 18:11:47

Nos está ocurriendo al hacer algunos envíos de pruebas, que si en alguno nos lo rechaza o no hay conexión justo en el momento de generar la factura y crear el registro del xml(que ya nos coge la fechahora en ese momento), y se envía algo después, nos lo acepta como "Aceptado con errores" indicando:
"El valor del campo FechaHoraHusoGenRegistro debe ser la fecha actual del sistema de la AEAT, admitiéndose un margen de error de: 120 segundos."

Esto vemos que ocurre aunque el envío se haga indicando la marca de "Incidencia" y aunque sea un envío del xml con subsanar y la marca de "RechazoPrevio", lo cual parece un poco raro, porque estos casos pueden darse si hay una incidencia de internet o similar y se envían con algo de retraso.

Se sabe si eso será siempre así y también si los registros aceptados así con ese error, pueden dejarse así, o requerirán que se haga luego otro envío con subsanación sólo para enviar un registro nuevo igual pero con fechahora actual? os está pasando lo mismo en estos casos?

ermendalenda 10-10-2024 18:20:13

Cita:

Empezado por Mlopez (Mensaje 558097)
Nos está ocurriendo al hacer algunos envíos de pruebas, que si en alguno nos lo rechaza o no hay conexión justo en el momento de generar la factura y crear el registro del xml(que ya nos coge la fechahora en ese momento), y se envía algo después, nos lo acepta como "Aceptado con errores" indicando:
"El valor del campo FechaHoraHusoGenRegistro debe ser la fecha actual del sistema de la AEAT, admitiéndose un margen de error de: 120 segundos."

Esto vemos que ocurre aunque el envío se haga indicando la marca de "Incidencia" y aunque sea un envío del xml con subsanar y la marca de "RechazoPrevio", lo cual parece un poco raro, porque estos casos pueden darse si hay una incidencia de internet o similar y se envían con algo de retraso.

Se sabe si eso será siempre así y también si los registros aceptados así con ese error, pueden dejarse así, o requerirán que se haga luego otro envío con subsanación sólo para enviar un registro nuevo igual pero con fechahora actual? os está pasando lo mismo en estos casos?

120segundos?
Vaya tela me acabas de dar un disgusto. Yo lo envío a u tercero para que lo reenvíe a verifactu y se acaba de complicar con eso.

edari 10-10-2024 18:21:12

Cita:

Empezado por [email protected] (Mensaje 558092)
Edari, podrias compartir un xml que te haya funcionado.
Yo estoy estancado en la seccion DESGLOSE no consigo pasasr

Gracias


Aquí tienes


Código PHP:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sum="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd" xmlns:sum1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
    <soapenv:Header/>
    <soapenv:Body>
        <sum:RegFactuSistemaFacturacion>
            <sum1:Cabecera>
                <sum1:ObligadoEmision>
                    <sum1:NombreRazon>NOMBRE EMPRESA</sum1:NombreRazon>
                    <sum1:NIF>B99999999</sum1:NIF>
                </sum1:ObligadoEmision>
            </sum1:Cabecera>
            <sum:RegistroFactura>
                <sum:RegistroAlta>
                    <sum1:IDVersion>1.0</sum1:IDVersion>
                    <sum1:IDFactura>
                        <sum1:IDEmisorFactura>B01583343</sum1:IDEmisorFactura>
                        <sum1:NumSerieFactura>124000125</sum1:NumSerieFactura>
                        <sum1:FechaExpedicionFactura>01-10-2024</sum1:FechaExpedicionFactura>
                    </sum1:IDFactura>
                    <sum1:NombreRazonEmisor>NOMBRE EMPRESA</sum1:NombreRazonEmisor>
                    <sum1:TipoFactura>F1</sum1:TipoFactura>
                    <sum1:DescripcionOperacion>Factura cliente</sum1:DescripcionOperacion>
                    <sum1:Destinatarios>
                        <sum1:IDDestinatario>
                            <sum1:NombreRazon>PEPE GOMEZ</sum1:NombreRazon>
                            <sum1:NIF>B1111111</sum1:NIF>
                        </sum1:IDDestinatario>
                    </sum1:Destinatarios>
                    <sum1:Desglose>
                        <sum1:DetalleDesglose>
                            <sum1:ClaveRegimen>01</sum1:ClaveRegimen>
                            <sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
                            <sum1:TipoImpositivo>21.00</sum1:TipoImpositivo>
                            <sum1:BaseImponibleOimporteNoSujeto>57.01</sum1:BaseImponibleOimporteNoSujeto>
                            <sum1:CuotaRepercutida>11.97</sum1:CuotaRepercutida>
                        </sum1:DetalleDesglose>
                    </sum1:Desglose>
                    <sum1:CuotaTotal>11.97</sum1:CuotaTotal>
                    <sum1:ImporteTotal>68.98</sum1:ImporteTotal>
                    <sum1:Encadenamiento>
                        <sum1:PrimerRegistro>S</sum1:PrimerRegistro>
                    </sum1:Encadenamiento>
                    <sum1:SistemaInformatico>
                        <sum1:NombreRazon>NOMBRE EMPRESA SUFRIDORA</sum1:NombreRazon>
                        <sum1:NIF>BXXXXXXXX</sum1:NIF>
                        <sum1:NombreSistemaInformatico>ERP</sum1:NombreSistemaInformatico>
                        <sum1:IdSistemaInformatico>01</sum1:IdSistemaInformatico>
                        <sum1:Version>2024</sum1:Version>
                        <sum1:NumeroInstalacion>002</sum1:NumeroInstalacion>
                        <sum1:TipoUsoPosibleSoloVerifactu>S</sum1:TipoUsoPosibleSoloVerifactu>
                        <sum1:TipoUsoPosibleMultiOT>N</sum1:TipoUsoPosibleMultiOT>
                        <sum1:IndicadorMultiplesOT>N</sum1:IndicadorMultiplesOT>
                    </sum1:SistemaInformatico>
                    <sum1:FechaHoraHusoGenRegistro>2024-10-10T10:05:33+02:00</sum1:FechaHoraHusoGenRegistro>
                    <sum1:TipoHuella>01</sum1:TipoHuella>
                    <sum1:Huella>93DF558DFBFB0C30844992A58DC9F50362E829B79C602C8E6CADFD58B9A7483A</sum1:Huella>
                </sum:RegistroAlta>
            </sum:RegistroFactura>
        </sum:RegFactuSistemaFacturacion>
    </soapenv:Body>

Es mi primera factura, no tiene encadenamiento


Saludos

ermendalenda 10-10-2024 18:28:40

Bueno al menos le meteré 1 min de adelanto a la generación que creo que admiten 1 minuto de margen de error así pasaré a tener 180segundos en vez de 120.

ermendalenda 10-10-2024 18:29:31

Bueno al menos le meteré 1 min de adelanto a la generación que creo que admiten 1 minuto de margen de error así oasare a tener 180segundos en vez de 120.

nincillo 10-10-2024 18:35:41

Cita:

Empezado por [email protected] (Mensaje 558092)
Edari, podrias compartir un xml que te haya funcionado.
Yo estoy estancado en la seccion DESGLOSE no consigo pasasr

Gracias

¿Te está dando algún error cuando lo envías?. ¿Cuál?

¿Tienes dudas de como definir los "objetos" en el propio código fuente?

A mi me estaba dando error al enviar en el TipoImpositivo y el problema era que aunque yo tenía programado:

Código:

detalleDesglose.TipoImpositivo := FormatFloat('0.00', 10);
Al xml realmente le estaba llegando 10,00.

edari 10-10-2024 18:38:51

Cita:

Empezado por ermendalenda (Mensaje 558094)
Yo entiendo que ese campo es la hora fecha de cada factura, ya que se emite la factura y el qr a una hora determinada junto con el registro individual, otra cosa es que mandes varios registros en el mismo paquete. Pero el fechahorausogenregistro es de cada registro.


Supongo que será como dices, que por cierto me viene mejor,...


El tema nace porque en esa primera factura subida me ha dado también el error del compañero Mlopez "El valor del campo FechaHoraHusoGenRegistro debe ser la fecha actual del sistema de la AEAT, admitiéndose un margen de error de: 120 segundos."


En mi prueba era normal porque entre que cree el fichero y luego lo subí pasó una hora porque estaba atendiendo otras cosas etc...pero el mensaje me hizo pensar que claro, cuidado con la que nos pude venir


Gracias

[email protected] 10-10-2024 18:51:25

Gracias Edari, a ver si puedo seguir

bmfranky 10-10-2024 18:59:32

Cita:

Empezado por nincillo (Mensaje 558088)
Pues suerte con la "reparación" a ver si al final consigues algo...

Yo de momento estoy haciendo pruebas con la Delphi 12 Community, los WSDL y el HTTPRio y he atascado en un punto que de momento no he conseguido "desatascar".
Ya genero una parte del xlm, ya hago hago el envío y ya recibo la respuesta del servidor diciendo que me falta rellenar tal o cual campo. Hasta ahí todo normal. El problema lo tengo con el certificado y más concretamente con la contraseña de éste.

Código:

 
var
    rfsf : RegFactuSistemaFacturacion;
    result : RespuestaRegFactuSistemaFacturacionType;
begin

  rfsf := RegFactuSistemaFacturacion.Create;
  rfsf.Cabecera := Cabecera.Create;
  ...
  ...
  ...
  result := RespuestaRegFactuSistemaFacturacionType.Create;

  HTTPRIO1.HTTPWebNode.ClientCertificate.CertName := EditCertificado.text;
  HTTPRIO1.HTTPWebNode.ClientCertificate.Password := 'Pass123';

  SistemaFacturacion.RespuestaRegFactuSistemaFacturacion(result) := SistemaFacturacion.GetsfPortTypeVerifactu(false, EditUrl.Text, HTTPRIO1).RegFactuSistemaFacturacion(rfsf);
end;

Opciones que se me han dado:

1) Si no relleno el CertName, me sale una ventana donde seleccionar el certificado y posteriormente, si el certificado no tengo instalado con contraseña, entonces me sale otra ventana para introducir la contraseña.
2) Si relleno el CertName con un valor correcto, entonces ya no me sale la ventana para seleccionar el certificado, sino que ya me sale directamente la ventana para escribir la contraseña (si la tiene)
3) Si relleno el CertName y el Password, me pasa lo mismo que en la opción 2, me selecciona el certificado correcto pero también me pide que introduzca la contraseña y de momento, de ahí no paso.

A ver si alguien me puede dar un empujón...

Un saludo.

Hola, yo no uso delphi, pero en c# lo que hago es cargar el certificado en una variable, puedes hacerlo desde el archivo de guardado o desde el propio winfdows y luego pasarselo talcual.

espinete 10-10-2024 19:03:14

¿Alguien más está recibiendo estos errores de repente?

El XML no cumple el esquema. Falta informar campo obligatorio: "TipoUsoPosibleSoloVerifactu"
El XML no cumple el esquema. Falta informar campo obligatorio: "TipoUsoPosibleMultiOT"

¿Que yo sepa esos dos campos del nodo SistemaInformatico son opcionales, no? Vamos, que no están en rojo en el Excel...

edari 10-10-2024 19:24:12

Cita:

Empezado por espinete (Mensaje 558107)
¿Alguien más está recibiendo estos errores de repente?

El XML no cumple el esquema. Falta informar campo obligatorio: "TipoUsoPosibleSoloVerifactu"
El XML no cumple el esquema. Falta informar campo obligatorio: "TipoUsoPosibleMultiOT"

¿Que yo sepa esos dos campos del nodo SistemaInformatico son opcionales, no? Vamos, que no están en rojo en el Excel...

He añadido esos dos campos al XML y ahora recibo este otro, mucho más raro...

Codigo[1304].El contenido no está permitido en el prólogo. (1,1) :(

Hasta hace 20 o 30 minutos estaba haciendo pruebas y enviando sin ningún problema

Acabo de subir mi segunda factura y ok



Solo te puede decir eso

delphiGar 10-10-2024 19:43:04

Cita:

Empezado por espinete (Mensaje 558107)
¿Alguien más está recibiendo estos errores de repente?

El XML no cumple el esquema. Falta informar campo obligatorio: "TipoUsoPosibleSoloVerifactu"
El XML no cumple el esquema. Falta informar campo obligatorio: "TipoUsoPosibleMultiOT"

¿Que yo sepa esos dos campos del nodo SistemaInformatico son opcionales, no? Vamos, que no están en rojo en el Excel...

Segun leo en el esquema es obligatorio informar de estos campos:

TipoUsoPosibleSoloVerifactu

Especifica si para cumplir el Reglamento el sistema informático de facturación solo puede funcionar exclusivamente como «VERI*FACTU» (valor "S") o puede funcionar también como «NO VERI*FACTU» (valor "N"). Obligatorio en registros de facturación de alta y de anulación. No aplica en registros de evento.

TipoUsoPosibleMultiOT

Especifica si el sistema informático de facturación permite llevar independientemente la facturación de varios obligados tributarios (valor "S") o solo de uno (valor "N"). Obligatorio en registros de facturación de alta y de anulación, y opcional en registros de evento.

IndicadorMultiplesOT

Obligatorio en registros de facturación de alta y de anulación, y opcional en registros de evento.

unomasmas 10-10-2024 20:01:00

Cita:

Empezado por sglorka (Mensaje 558016)
La factura rechazada siguen en tu sistema SIF pero el hueco queda en la Aeat, en tu SIF la factura reza como anulada, sin huecos. El procedimiento para rectificar en dos pasos que es el que yo utilizo sería :

1.- Emitir una Anulación del Registro con la marca SinRegistroPrevio = S (ya que no existe en la Aeat) y la marca RechazoPrevio = S
2.- Emitir Factura Rectificativa por sustitución donde se indica la rectificación de la factura que ha sido rechazada

Esta información que aporto está contrastada con el [email protected]

Muchas gracias :-). Creo que me queda claro.


La franja horaria es GMT +2. Ahora son las 03: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