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)

sglorka 17-01-2024 10:41:46

Cita:

Empezado por edari (Mensaje 554053)
Ahora voy con una duda mía sobre los xml y el tema de la la firma


Creo que hay dos "estilos" de hacer el xml


Este
Código PHP:

<?xml version="1.0" ?>
<AltaFactuSistemaFacturacion xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Cabecera xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
    <IDVersion>1.0</IDVersion>
    <ObligadoEmision>
      <NombreRazon>EMPRESA SL</NombreRazon>
      <NIF>NIF</NIF>
    </ObligadoEmision>
    <TipoRegistroAEAT>T0</TipoRegistroAEAT>
  </Cabecera>
  <RegistroAltaFacturas xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
    <RegistroFacturacion>
      <IDFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
        <IDEmisorFactura>
          <NIF>NIF</NIF>
        </IDEmisorFactura>
        <NumSerieFacturaEmisor>3</NumSerieFacturaEmisor>
        <FechaExpedicionFacturaEmisor>16-01-2024</FechaExpedicionFacturaEmisor>
      </IDFactura>
      <NombreRazonEmisor xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">EMPRESA SL</NombreRazonEmisor>
      <TipoRegistroSIF xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">S0</TipoRegistroSIF>
      <TipoFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">F1</TipoFactura>
      <DescripcionOperacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">VENTAS</DescripcionOperacion>
      <Destinatarios xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
        <IDDestinatario>
          ...

</div>

y este


Código PHP:

<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:AltaFactuSistemaFacturacion>
<
sum1:Cabecera>
<
sum1:IDVersion>1.0</sum1:IDVersion>
<
sum1:ObligadoEmision>
<
sum1:NombreRazon>EMPRESA SL</sum1:NombreRazon>
<
sum1:NIF>nif</sum1:NIF>
</
sum1:ObligadoEmision>
<
sum1:TipoRegistrroEAT>T0</sum1:TipoRegistrroEAT>
</
sum1:Cabecera>
<
sum:RegisgtroAltaFacturas>
<
sum:RegistroFacturacion>
<
sum1:IDFactura>
<
sum1:IDEmisorFactura>
<
sum1:NIF>nif</sum1:NIF>
</
sum1:IDEmisorFactura>
<
sum1:NumSerieFacturaEmisor>002235405</sum1:NumSerieFacturaEmisor>
<
sum1:FechaExpedicionFacturaEmisor>01-01-2024</sum1:FechaExpedicionFacturaEmisor>
</
sum1:IDFactura>
<
sum1:NombreRazonEmisor>EMPRESA SL</sum1:NombreRazonEmisor>
<
sum1:TipoRegistroSIF>S0</sum1:TipoRegistroSIF>
<
sum1:TipoFactura>F1</sum1:TipoFactura>
<
sum1:DescripcionOperacion>Factura cliente</sum1:DescripcionOperacion>
<
sum1:Destinatarios

</div>

Entendiendo que la verificación de la huella que va a hacer Hacienda da igual que monte el fichero de una forma u otra porque al final siempre se va calcular sobre el contenido de los dos etiquetas "RegistroFacturacion"



Voy bien

Son dos cosas distintas
este fichero Xml

<?xml version="1.0" ?>
<AltaFactuSistemaFacturacion xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Cabecera xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<IDVersion>1.0</IDVersion>
<ObligadoEmision>
<NombreRazon>EMPRESA SL</NombreRazon>
<NIF>NIF</NIF>
</ObligadoEmision>
<TipoRegistroAEAT>T0</TipoRegistroAEAT>
</Cabecera>
<RegistroAltaFacturas xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
<RegistroFacturacion>
<IDFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<IDEmisorFactura>
<NIF>NIF</NIF>
</IDEmisorFactura>
<NumSerieFacturaEmisor>3</NumSerieFacturaEmisor>
<FechaExpedicionFacturaEmisor>16-01-2024</FechaExpedicionFacturaEmisor>
</IDFactura>
<NombreRazonEmisor xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">EMPRESA SL</NombreRazonEmisor>
<TipoRegistroSIF xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">S0</TipoRegistroSIF>
<TipoFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">F1</TipoFactura>
<DescripcionOperacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">VENTAS</DescripcionOperacion>
<Destinatarios xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<IDDestinatario>
...

es el que tienes que construir sacando la huella del nodo

<RegistroFacturacion>
<IDFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<IDEmisorFactura>
<NIF>NIF</NIF>
</IDEmisorFactura>
<NumSerieFacturaEmisor>3</NumSerieFacturaEmisor>
<FechaExpedicionFacturaEmisor>16-01-2024</FechaExpedicionFacturaEmisor>
</IDFactura>
<NombreRazonEmisor xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">EMPRESA SL</NombreRazonEmisor>
<TipoRegistroSIF xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">S0</TipoRegistroSIF>
<TipoFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">F1</TipoFactura>
<DescripcionOperacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">VENTAS</DescripcionOperacion>
<Destinatarios xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<IDDestinatario>
...
</RegistroFacturacion>

el otro código que has puesto

Código PHP:

<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:AltaFactuSistemaFacturacion>
<
sum1:Cabecera>
<
sum1:IDVersion>1.0</sum1:IDVersion>
<
sum1:ObligadoEmision>
<
sum1:NombreRazon>EMPRESA SL</sum1:NombreRazon>
<
sum1:NIF>nif</sum1:NIF>
</
sum1:ObligadoEmision>
<
sum1:TipoRegistrroEAT>T0</sum1:TipoRegistrroEAT>
</
sum1:Cabecera>
<
sum:RegisgtroAltaFacturas>
<
sum:RegistroFacturacion>
<
sum1:IDFactura>
<
sum1:IDEmisorFactura>
<
sum1:NIF>nif</sum1:NIF>
</
sum1:IDEmisorFactura>
<
sum1:NumSerieFacturaEmisor>002235405</sum1:NumSerieFacturaEmisor>
<
sum1:FechaExpedicionFacturaEmisor>01-01-2024</sum1:FechaExpedicionFacturaEmisor>
</
sum1:IDFactura>
<
sum1:NombreRazonEmisor>EMPRESA SL</sum1:NombreRazonEmisor>
<
sum1:TipoRegistroSIF>S0</sum1:TipoRegistroSIF>
<
sum1:TipoFactura>F1</sum1:TipoFactura>
<
sum1:DescripcionOperacion>Factura cliente</sum1:DescripcionOperacion>
<
sum1:Destinatarios

</div>

es el archivo xml que has creado envuelto en el protocolo soap para que "viaje" hasta el servidor de aeat

edari 17-01-2024 11:09:30

Cita:

Empezado por sglorka (Mensaje 554056)
Son dos cosas distintas
este fichero Xml

<?xml version="1.0" ?>
<AltaFactuSistemaFacturacion xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Cabecera xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<IDVersion>1.0</IDVersion>
<ObligadoEmision>
<NombreRazon>EMPRESA SL</NombreRazon>
<NIF>NIF</NIF>
</ObligadoEmision>
<TipoRegistroAEAT>T0</TipoRegistroAEAT>
</Cabecera>
<RegistroAltaFacturas xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
<RegistroFacturacion>
<IDFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<IDEmisorFactura>
<NIF>NIF</NIF>
</IDEmisorFactura>
<NumSerieFacturaEmisor>3</NumSerieFacturaEmisor>
<FechaExpedicionFacturaEmisor>16-01-2024</FechaExpedicionFacturaEmisor>
</IDFactura>
<NombreRazonEmisor xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">EMPRESA SL</NombreRazonEmisor>
<TipoRegistroSIF xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">S0</TipoRegistroSIF>
<TipoFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">F1</TipoFactura>
<DescripcionOperacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">VENTAS</DescripcionOperacion>
<Destinatarios xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<IDDestinatario>
...

es el que tienes que construir sacando la huella del nodo

<RegistroFacturacion>
<IDFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<IDEmisorFactura>
<NIF>NIF</NIF>
</IDEmisorFactura>
<NumSerieFacturaEmisor>3</NumSerieFacturaEmisor>
<FechaExpedicionFacturaEmisor>16-01-2024</FechaExpedicionFacturaEmisor>
</IDFactura>
<NombreRazonEmisor xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">EMPRESA SL</NombreRazonEmisor>
<TipoRegistroSIF xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">S0</TipoRegistroSIF>
<TipoFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">F1</TipoFactura>
<DescripcionOperacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">VENTAS</DescripcionOperacion>
<Destinatarios xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<IDDestinatario>
...
</RegistroFacturacion>

el otro código que has puesto

Código PHP:

<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:AltaFactuSistemaFacturacion>
<
sum1:Cabecera>
<
sum1:IDVersion>1.0</sum1:IDVersion>
<
sum1:ObligadoEmision>
<
sum1:NombreRazon>EMPRESA SL</sum1:NombreRazon>
<
sum1:NIF>nif</sum1:NIF>
</
sum1:ObligadoEmision>
<
sum1:TipoRegistrroEAT>T0</sum1:TipoRegistrroEAT>
</
sum1:Cabecera>
<
sum:RegisgtroAltaFacturas>
<
sum:RegistroFacturacion>
<
sum1:IDFactura>
<
sum1:IDEmisorFactura>
<
sum1:NIF>nif</sum1:NIF>
</
sum1:IDEmisorFactura>
<
sum1:NumSerieFacturaEmisor>002235405</sum1:NumSerieFacturaEmisor>
<
sum1:FechaExpedicionFacturaEmisor>01-01-2024</sum1:FechaExpedicionFacturaEmisor>
</
sum1:IDFactura>
<
sum1:NombreRazonEmisor>EMPRESA SL</sum1:NombreRazonEmisor>
<
sum1:TipoRegistroSIF>S0</sum1:TipoRegistroSIF>
<
sum1:TipoFactura>F1</sum1:TipoFactura>
<
sum1:DescripcionOperacion>Factura cliente</sum1:DescripcionOperacion>
<
sum1:Destinatarios

</div>

es el archivo xml que has creado envuelto en el protocolo soap para que "viaje" hasta el servidor de aeat


Gracias sglorka,


A mi primer fichero le calculo la huella y es el que tengo que subir a Hacienda, correcto?

_Io 17-01-2024 11:13:41

Hola.

Cita:

sglorka
es el que tienes que construir sacando la huella del nodo
El nodo sería RegistroFacturacion, no?

Muchas Gracias.

sglorka 17-01-2024 11:19:42

Cita:

Empezado por edari (Mensaje 554058)
Gracias sglorka,


A mi primer fichero le calculo la huella y es el que tengo que subir a Hacienda, correcto?

Sí, es correcto. Debes subir ese fichero. Ten en cuenta que ese fichero podría contener varios registros de facturación no sólo uno, dependiendo del control de flujo (n,t) que te haya asignado en el último envío la administración

sglorka 17-01-2024 11:21:57

Cita:

Empezado por _Io (Mensaje 554059)
Hola.



El nodo sería RegistroFacturacion, no?

Muchas Gracias.

A ver ... una cosa importante para llegar a buen fin es leerse la orden ministerial.
En ella te establece claramente que la huella sale del nodo RegistroFacturacion

edari 17-01-2024 11:28:15

Cita:

Empezado por sglorka (Mensaje 554060)
Sí, es correcto. Debes subir ese fichero. Ten en cuenta que ese fichero podría contener varios registros de facturación no sólo uno, dependiendo del control de flujo (n,t) que te haya asignado en el último envío la administración


Sí, sí...era una manera de hablar ^\||/

_Io 17-01-2024 11:33:19

Cita:

Empezado por sglorka (Mensaje 554061)
A ver ... una cosa importante para llegar a buen fin es leerse la orden ministerial.
En ella te establece claramente que la huella sale del nodo RegistroFacturacion

Oido Cocina.

Muchas Gracias.

antoine0 17-01-2024 13:31:25

Cita:

Empezado por edari (Mensaje 554052)
Yo también le estoy dando vueltas a esto, me parece muy importante hacer ese Webservice de verificación porque, como sea como TicketBai, cada vez que subes una factura y es rechazada por algún tema de NIF...puede provocar errores de encadenamiento

No debe provocar ningún problema de encadenamiento.

Cuando creas una factura, la encadenas. Este registro tiene código S0 en el campo TipoRegistroSIF
Si hay un problema de NIF o de IVA o cosa similar con esta factura, y se debe modificar algo, creas otro registro con la misma identificación (número de factura y fecha) pero código S1 en el campo TipoRegistroSIF. Dado que es un registro distinto, tiene otra huella y está encadenado en su sitio (orden temporal), independientemente del primero registro. Este segundo registro se debe subir independientemente a la AEAT.

Si luego tienes que anular la factura, será otro registro, esta vez de tipo S2 y con un contenido diferente en el XML, registro que se debe subir por un webservice diferente.
Y para cerrar el circulo, teóricamente también puedes modificar el registro de anulación, será otro registro esta vez con tipo S3, que también sube por el segundo webservice.

Al final, cada vez que con una factura se hace una operación (crear, modificar, «borrar»), se crea un nuevo registro de facturación; este registro debe ser encadenado en su sitio, con las informaciones relevantes de la factura en este momento. Y luego no se toca nunca más.

sglorka 17-01-2024 16:03:01

Cita:

Empezado por antoine0 (Mensaje 554068)
No debe provocar ningún problema de encadenamiento.

Cuando creas una factura, la encadenas. Este registro tiene código S0 en el campo TipoRegistroSIF
Si hay un problema de NIF o de IVA o cosa similar con esta factura, y se debe modificar algo, creas otro registro con la misma identificación (número de factura y fecha) pero código S1 en el campo TipoRegistroSIF. Dado que es un registro distinto, tiene otra huella y está encadenado en su sitio (orden temporal), independientemente del primero registro. Este segundo registro se debe subir independientemente a la AEAT.

Si luego tienes que anular la factura, será otro registro, esta vez de tipo S2 y con un contenido diferente en el XML, registro que se debe subir por un webservice diferente.
Y para cerrar el circulo, teóricamente también puedes modificar el registro de anulación, será otro registro esta vez con tipo S3, que también sube por el segundo webservice.

Al final, cada vez que con una factura se hace una operación (crear, modificar, «borrar»), se crea un nuevo registro de facturación; este registro debe ser encadenado en su sitio, con las informaciones relevantes de la factura en este momento. Y luego no se toca nunca más.

Yo no lo veo así.
Estás suponiendo que el primer registro S0 te lo ha aceptado, y la suposición (creo que es así... ya veremos ) es que no te lo va a aceptar por un error en el NIF (mal informado) o por un tipo de IVA inexistente. Entonces ocurre que el siguiente registro que quieres enviar está encadenado con el registro rechazado y al enviarlo te va a dar error de encadenamiento ya que el servidor no tiene ese registro anterior en su sistema. El registro S1 sólo se debe crear si el/los dato(s) a corregir no implican la creación de una factura rectificativa. Si el error es de un tipo de iva inexistente, o un nif mal informado, entonces hay que emitir una factura rectificativa por sustitución, o sea, otro registro S0. El registro S1 corrige un registro S0 aceptado pero que tiene algún dato mal (como por ejemplo el régimen de tributación ).
En definitiva, la duda es cómo debemos resolver el encadenamiento de los registros de facturación posteriores al rechazo de un registro anterior.

antoine0 17-01-2024 19:13:36

Cita:

Empezado por sglorka (Mensaje 554070)
Yo no lo veo así.
Estás suponiendo que el primer registro S0 te lo ha aceptado, y la suposición (creo que es así... ya veremos ) es que no te lo va a aceptar por un error en el NIF (mal informado) o por un tipo de IVA inexistente. Entonces ocurre que el siguiente registro que quieres enviar está encadenado con el registro rechazado y al enviarlo te va a dar error de encadenamiento ya que el servidor no tiene ese registro anterior en su sistema. [...]
En definitiva, la duda es cómo debemos resolver el encadenamiento de los registros de facturación posteriores al rechazo de un registro anterior.

Vale. Efectivamente no había pillado bien la casuística.

Si te sigo bien, tenemos lo siguiente:
  • En el SIF (la aplicación en casa del cliente, que realice el encadenamiento) se genera una serie de registro R1, R2, R3, R4, encadenados entre sí;
  • Se remitirán a los clientes las 4 facturas correspondientes;
  • Luego, en un tiempo un poco diferido, se envían a Hacienda estos 4 registros, en 1 o más envíos, da igual. Y Hacienda dice, «el R2 está mal, no lo acepto y hago como si no lo había visto nunca»; luego al validar los registros R3 y luego R4, el sistema de Haciendo no debería aceptarlos, porque «falta» el intermediario... pero es solo el inicio de los problemas;
  • Al recibir el aviso sobre el registro R2, se modifica la factura correspondiente (corrección, rectificativa, anulación, lo que sea) lo genera en el SIF el registro R5 (y potencialmente R6, y eventualmente pasar al cliente una nueva copia de la factura; aquí entran los códigos S1 o S2 para R5). Pero no se ha resuelto el problema, y Hacienda seguirá rechazando estos registros R5 o R6 en el sistema Veri*factu...
  • Pero visto en la casa del cliente, en el SIF el registro R2 sigue "correcto", no se puede modificar por qué el sistema es inalterable, y todos los registros que lo siguen dependen de él...:confused:
No me extraña ahora que en Hacienda están «pensando en esto», o «estudiando internamente» según te han escrito.

Lo único que podemos esperar es que los controles para pasar R2 al estado "AcceptadaConErrores", que sí permite reconocer el encadenamiento (creo), sigan lo más básico posible; es decir, poco más que controlar que el XML es descifrable y luego que la huella anterior es la esperada dado el SistemaInformatico indicado (o parte de). Y desde luego que se publiquen normas claras al respecto.

keno_71 18-01-2024 07:51:53

Perdonad la ignorancia pero este tema que comentáis antoine0 y sglorka no está resuelto en Ticketbai?, pensaba que se habían basado en este sistema y entiendo en la experiencia que ya hay sobre él para la implantación y todos estos problemas de encadenamiento por ejemplo ya estaban más que pensados por Hacienda. En el momento que salga el Reglamento Técnico creo que es cuando van a desvelarse muchas dudas. Saludos

Neftali [Germán.Estévez] 18-01-2024 08:45:40

Cita:

Empezado por antoine0 (Mensaje 554071)
Lo único que podemos esperar es que los controles para pasar R2 al estado "AcceptadaConErrores", que sí permite reconocer el encadenamiento (creo), sigan lo más básico posible; es decir, poco más que controlar que el XML es descifrable y luego que la huella anterior es la esperada dado el SistemaInformatico indicado (o parte de). Y desde luego que se publiquen normas claras al respecto.

Cita:

Empezado por keno_71 (Mensaje 554074)
Perdonad la ignorancia pero este tema que comentáis antoine0 y sglorka no está resuelto en Ticketbai?, pensaba que se habían basado en este sistema y entiendo en la experiencia que ya hay sobre él para la implantación y todos estos problemas de encadenamiento por ejemplo ya estaban más que pensados por Hacienda. En el momento que salga el Reglamento Técnico creo que es cuando van a desvelarse muchas dudas.

Os explico un poco cómo se hace en TicketBAI por si el tema va similar.
Lo primero es que una factura en la cual falla el encadenamiento es "ACEPTADA CON ERRORES"; Es decir, una factura que lleva el encadenamiento mal no se rechaza. Hay situaciones en las que se puede dar esta situación. Algunas son correctas (por ejemplo, cambio de serie al final del año) y otras por situaciones inesperadas (backup/restore después de un error). Lo que es posible que hacienda te pida explicaciones de porqué se ha roto ese encadenamiento y tengas que justificarlo.
Seguramente si tienes 3 errores de encadenamiento en un año no se molesten, pero si cada semana estás enviando "roturas" de encadenamiento te llamarán para saber "qué estás haciendo" :cool::D:D

Por otro lado, que una factura sea RECHAZADA, no significa que hacienda no se quede con información de ella.
Por ejemplo, yo he creado estas 3 facturas:


Las tres van encadenadas de forma consecutiva y de esta forma:

viz 2 --> viz 3 err --> viz 4

La primera ACEPTADA (viz 2), la segunda está RECHAZADA (viz 3 err) encadenada con la anterior y la tercera al enviarla está ACEPTADA (y está encadenada con la segunda, que está RECHAZADA).
No hay error de encadenamiento, porque yo las he encadenado bien.
Como la segunda está RECHAZADA, tendré que corregirla o realizar una rectificativa y volver a enviarla por los cauces que me digan (en el caso de TicketBAI hay diferentes formas según la tribitación).

Lo que quiero decir es, que aunque la segunda esté rechazada (eso es a posteriori), sí que entra en el encadenamiento. Ahora mismo la factura no es válida (por el error que sea), pero hacienda sí que se ha quedado con información se esa factura (como debe ser). Porque lo que no vale ahora es decir, "como está RECHAZADA, la borro en mi sistema y la creo nueva" :rolleyes:. Hay arreglar esa que ya has enviado.

Hay situaciones en las que sí se puede BORRAR una factura (ANULACION) pero son casos especiales. Una factura, aunque esté RECHAZADA no se puede BORRAR. Hay que corregirla y enviarla de nuevo o rectificarla, según el caso.

Espero haber aclarado algo.

pablog2k 18-01-2024 09:30:18

yo espero que Verifactu sea como ticketbai, como el ejemplo tal cual que ha puesto Neftali

antoine0 18-01-2024 09:32:22

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 554075)
Hay situaciones en las que sí se puede BORRAR una factura (ANULACION) pero son casos especiales. Una factura, aunque esté RECHAZADA no se puede BORRAR. Hay que corregirla y enviarla de nuevo o rectificarla, según el caso.

Espero haber aclarado algo.

Sí que has aclarado, y bastante, muchas gracias al respecte.

Una pregunta (relacionada pero distinta) me queda, sobre estos casos especiales. En el caso que una factura siga enviada (estado S0 en SIF) y luego anulada (estado S2 en SIF), ¿es posible «resucitarla»?
Es decir, cancelar la anulación y recuperar esta factura como legítima y válida. El caso más habitual es el caso de una factura anulada por algún bug en el programa. :o
En el SII, funciona enviando una transacción A1 sobre la factura dada de baja; así que por paralela, sería encadenar y enviar un registro de rectificación (estado S1 en SIF) con todos los datos sobre la factura que era últimamente marcada borrada. ¿Este caso existe en TicketBAI?

Neftali [Germán.Estévez] 18-01-2024 10:08:33

Cita:

Empezado por antoine0 (Mensaje 554077)
En el caso que una factura siga enviada (estado S0 en SIF) y luego anulada (estado S2 en SIF), ¿es posible «resucitarla»?
¿Este caso existe en TicketBAI?


En el caso de TicketBAI no existe esa posibilidad.
Creas una nueva y la subes.

antoine0 18-01-2024 10:29:50

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 554078)
En el caso de TicketBAI no existe esa posibilidad.
Creas una nueva y la subes.

Quieres decir qué ¿el sistema te deja «crear» dos facturas con el mismo número?

sglorka 18-01-2024 11:45:58

Gracias Neftali. Parece que era lo obvio que funcionara así, de lo contrario sería un desastre

Neftali [Germán.Estévez] 18-01-2024 11:55:31

Cita:

Empezado por antoine0 (Mensaje 554079)
Quieres decir qué ¿el sistema te deja «crear» dos facturas con el mismo número?

No.
Factura nueva, número distinto.
Pero creo que eso no tiene que ver con TicketBAI sino con la ley de facturación.

La ley de facturación especifica unos casos muy concretos para poder ANULAR una factura. Lo habitual y lo correcto es RECTFICARLA si hay errores.
Pero si en algún caso DEBES anularla, entiendo que no puedes repetir en número. En ese caso deje un "hueco" y si es necesario justificas la anulación (con las razones pertinentes).

NOTA IMPORTANTE: No soy experto en temas legales así que por favor si alguien ve que esto es incorrecto que lo comente.

A mi personalmente no se me ocurriría repetir y menos si esa factura debe subir luego a algún sitio (SII, TBAI, VERI*FACTU,...). Crep que va a generar más posibles problemas, que no justificar la anulación y el "hueco".

Nosotros en TBAI lo hacemos así:
1) Creo la factura con numero 3000
2) Creo la factura con número 3001
3) Anulo la factura con número 3001
4) La siguiente que creo coge el número 3002
...

Eso en TBAI no da ningún problema.
Si te piden el porqué de la anulación se justifica y ya está.

antoine0 18-01-2024 13:12:16

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 554081)
No.
Factura nueva, número distinto.
Pero creo que eso no tiene que ver con TicketBAI sino con la ley de facturación. [...]

Vale. Tiene todo el sentido del mundo. Aunque no creo que se debe al reglamento de facturación; me explico:

En el S.I.I. estamos apañando la subida de un número grande de facturas hasta Hacienda. Por tanto el sistema debe gestionar casos complejos de comunicación de sistemas; y si me han pasado unos casos de facturas que he tenido que anular en el S.I.I., han sido por causas relacionadas con bien el sistema de facturación bien la aplicación SII; y cuando hay un bug en una de los dos, pues resulta ser un problema.

En los SIF, igualmente que en TicketBAI, no debe ocurrir «tantos» problemas de anulación por qué debe haber muy pocos casos de anulación y todos tienen que ver con el sistema de facturación. La subida a Hacienda no puede generar problemas dado que lo que se sube es lo que hay en la cadena dentro del SIF, no es una elaboración hecha a posteriori (como sí es el caso del SII en todos los casos donde el SII se ha añadido a un sistema existente; aquí está a mi juicio la razón).

Dónde tienes razón es que los casos de anulación (registros tipo S2+S3 en el SIF, uso del webservice BajaFactuSistemaFacturacion) deben ser estrictamente los enunciados en las normas de aplicación del reglamento de facturación (el reglamento en sí no contempla esta oportunidad).

Cita:

A mi personalmente no se me ocurriría repetir y menos si esa factura debe subir luego a algún sitio (SII, TBAI, VERI*FACTU,...). Crep que va a generar más posibles problemas, que no justificar la anulación y el "hueco".
A mi tampoco se me ocurre. Pero existe una clase que se llama usuarios, que tienen unas ideas distintas a las mías. :rolleyes:
Y pasa que cuando descubren una función de anulación, les parece puede apañar problemas que han tenido, digamos que el ratón se ha ido al mal sitio o el ordenador ha presionado la mala tecla o el café se ha vertido o cualquier razón me inventen (son muy ricos en eso), y resulta que les parece bien anular la factura sin pensar en cosas «informáticas» que les parecen chino austral. Y luego vendrán a pedir que se les arregle el programa de [censurado] que no funciona bien porqué no saber pasar la factura que se ha entregado al cliente. ¿Os suena de algo?
Y no me digáis que la función tiene que ser reservada al administrador o al supervisor: los supervisores también pueden tener ideas parecidas (o solo para dar la razón a los usuarios) si les parece razonable hacerlo, sin tener en cuenta las dichosas razones informáticas... Entonces sí debe ser reservada y/o tener doble validación, por supuesto que sí, pero esto no resultará ser una protección suficiente.

Dicho esto, si anulan una factura, la factura quedará como anulada en el SIF y no se podrá «rescatar» o «resucitar» el número. Un problema menos para mí.:)

antoine0 18-01-2024 14:37:18

Cita:

Empezado por sglorka (Mensaje 553994)
Sí, se pueden emitir facturas que tenga fecha de emisión distinta de la fecha de registro. El caso más claro es la factura rectificativa por sustitución. Si se emite una factura con error en la fecha de expedición se puede emitir una rectificativa por sustitución con la fecha de expedición correcta, y en este caso, obviamente tendrías fechas diferentes de emisión y registro

Estoy leyendo el reglamento de facturación y no veo esta opción de cambiar la fecha de expedición con una rectificativa.
Entiendo que si has expedido una factura con una fecha incorrecta, puedes emitir una rectificativa por sustitución para subsanar el error. Pero creo qué la fecha de expedición de esta rectificativa será la fecha efectiva que se realice la rectificación, no la fecha que debería haber sido puesta en la factura inicial.

Concretamente en el reglamento, el artículo 15.5 dice que la factura rectificativa deberá cumplir los mismos requisitos que cualquier factura; y no he visto nada que hable de fechas de expedición distinta de la fecha en la cual se expide una factura. (Otras cosas distintas son la fecha de devengo del IVA, o sea la fecha o el periodo de liquidación; y evidentemente está también la fecha de operación, que es un campo distinto y va por sus propias normas, y en el caso de la rectificativa aquí pondría la fecha de la operación inicial; pero estas fechas no son parte de los identificadores de una factura).

Por tanto no veo como una factura en un SIF puede llevar una fecha de expedición que difiere de la fecha del registro S0.

NOTA IMPORTANTE: Igual que Neftali tampoco soy experto en temas legales así que por favor si alguien ve que esto, o el anterior, es incorrecto que lo comente.

sglorka 18-01-2024 16:34:00

Cita:

Empezado por antoine0 (Mensaje 554085)
Estoy leyendo el reglamento de facturación y no veo esta opción de cambiar la fecha de expedición con una rectificativa.
Entiendo que si has expedido una factura con una fecha incorrecta, puedes emitir una rectificativa por sustitución para subsanar el error. Pero creo qué la fecha de expedición de esta rectificativa será la fecha efectiva que se realice la rectificación, no la fecha que debería haber sido puesta en la factura inicial.

Concretamente en el reglamento, el artículo 15.5 dice que la factura rectificativa deberá cumplir los mismos requisitos que cualquier factura; y no he visto nada que hable de fechas de expedición distinta de la fecha en la cual se expide una factura. (Otras cosas distintas son la fecha de devengo del IVA, o sea la fecha o el periodo de liquidación; y evidentemente está también la fecha de operación, que es un campo distinto y va por sus propias normas, y en el caso de la rectificativa aquí pondría la fecha de la operación inicial; pero estas fechas no son parte de los identificadores de una factura).

Por tanto no veo como una factura en un SIF puede llevar una fecha de expedición que difiere de la fecha del registro S0.

NOTA IMPORTANTE: Igual que Neftali tampoco soy experto en temas legales así que por favor si alguien ve que esto, o el anterior, es incorrecto que lo comente.

No vas a encontrar en el reglamento exactamente lo que buscas. El reglamento te dice muy claro lo que debes hacer en ciertas circunstancias y en otras lo deja a tu interpretación siempre y cuando no vulneres el reglamento. ¿ Dice el reglamento que la fecha de expedición de una factura tiene que ser la misma que el día en que la expides ?. No los vas a encontrar por que no lo dice. Pero sí dice lo siguiente:

Reglamento de facturación
Artículo 11. Plazo para la expedición de las facturas.
1. Las facturas deberán ser expedidas en el momento de realizarse la operación.
No obstante, cuando el destinatario de la operación sea un empresario o profesional que actúe como tal, las facturas deberán expedirse antes del día 16 del mes siguiente a aquél en que se haya producido el devengo del Impuesto correspondiente a la citada operación.

O sea, yo puede ir realizando notas de entrega a un cliente empresario durante el mes de marzo y después emitirle una factura resumen de esas operaciones antes del 16 de abril. Como debo respetar la numeración correlativa y las fechas de expedición de forma ascendente, estando a día 16 de abril emito una factura resumen de operaciones con fecha 17 de abril (no tengo facturas emitidas después del 16 de abril ). Le envío la factura al cliente y me responde al día siguiente reclamándome que la fecha de factura es errónea. Ahora ¿Cómo lo soluciono? ¿ Emito una rectificativa con fecha 17 de abril, día en el que estoy ? no debería por que sigo sin resolver el problema.
Lo que debo hacer es emitir una rectificativa por sustitución con fecha de emisión 16 de abril, para corregir la factura errónea.

En resumen, hay que respetar la cronología NumeroFactura-FechaExpedición pero como pueden haber errores, se debe poder rectificarlos, es lo que subyace en el reglamento cuando crea la factura rectificativa, eso si, sin intentar torcerlo. Si yo sé que no tengo facturas emitidas hoy ni las voy a emitir. ¿ qué problema hay en emitirlas hoy con fecha del día siguiente?

Te adjunto link de consulta vinculante realizada a la administración donde se recoge el caso de la emisión de una factura rectificativa por error en fecha de expedición.
https://www.iberley.es/resoluciones/...4-2022-1538919

ermendalenda 19-01-2024 11:52:45

Cita:

Empezado por sglorka (Mensaje 554086)
No vas a encontrar en el reglamento exactamente lo que buscas. El reglamento te dice muy claro lo que debes hacer en ciertas circunstancias y en otras lo deja a tu interpretación siempre y cuando no vulneres el reglamento. ¿ Dice el reglamento que la fecha de expedición de una factura tiene que ser la misma que el día en que la expides ?. No los vas a encontrar por que no lo dice. Pero sí dice lo siguiente:

Reglamento de facturación
Artículo 11. Plazo para la expedición de las facturas.
1. Las facturas deberán ser expedidas en el momento de realizarse la operación.
No obstante, cuando el destinatario de la operación sea un empresario o profesional que actúe como tal, las facturas deberán expedirse antes del día 16 del mes siguiente a aquél en que se haya producido el devengo del Impuesto correspondiente a la citada operación.

O sea, yo puede ir realizando notas de entrega a un cliente empresario durante el mes de marzo y después emitirle una factura resumen de esas operaciones antes del 16 de abril. Como debo respetar la numeración correlativa y las fechas de expedición de forma ascendente, estando a día 16 de abril emito una factura resumen de operaciones con fecha 17 de abril (no tengo facturas emitidas después del 16 de abril ). Le envío la factura al cliente y me responde al día siguiente reclamándome que la fecha de factura es errónea. Ahora ¿Cómo lo soluciono? ¿ Emito una rectificativa con fecha 17 de abril, día en el que estoy ? no debería por que sigo sin resolver el problema.
Lo que debo hacer es emitir una rectificativa por sustitución con fecha de emisión 16 de abril, para corregir la factura errónea.

En resumen, hay que respetar la cronología NumeroFactura-FechaExpedición pero como pueden haber errores, se debe poder rectificarlos, es lo que subyace en el reglamento cuando crea la factura rectificativa, eso si, sin intentar torcerlo. Si yo sé que no tengo facturas emitidas hoy ni las voy a emitir. ¿ qué problema hay en emitirlas hoy con fecha del día siguiente?

Te adjunto link de consulta vinculante realizada a la administración donde se recoge el caso de la emisión de una factura rectificativa por error en fecha de expedición.
https://www.iberley.es/resoluciones/...4-2022-1538919

Cuidado con la fecha y hora de emisión de las facturas, una cosa es el reglamento y otra el conbtrol verifactu que va a estar por encima del reglamento. Si emito una factura hoy con fecha de mañana, a parte de que no puedas hacer ninguna ya con fecha/hora anterior a la emitida tampoco la podras transmitir a hacienda hasta llegada la hora y fecha, se corre el rieso de que te la rechacen por fecha/hora incorrecta. Ya habeis visto en el proyecto de la OM que los programas deben estar como máximo 1 minuto de margen de diferencia con la hora real. Con lo cual, me temo que van a controlar que no haya horas/fechas futuras.

sglorka 19-01-2024 13:40:03

Cita:

Empezado por ermendalenda (Mensaje 554088)
Cuidado con la fecha y hora de emisión de las facturas, una cosa es el reglamento y otra el conbtrol verifactu que va a estar por encima del reglamento. Si emito una factura hoy con fecha de mañana, a parte de que no puedas hacer ninguna ya con fecha/hora anterior a la emitida tampoco la podras transmitir a hacienda hasta llegada la hora y fecha, se corre el rieso de que te la rechacen por fecha/hora incorrecta. Ya habeis visto en el proyecto de la OM que los programas deben estar como máximo 1 minuto de margen de diferencia con la hora real. Con lo cual, me temo que van a controlar que no haya horas/fechas futuras.

Bajo mi punto de vista, Verifactu no puede impedir que se haga algo que sí permite el reglamento de facturación como queda constatado en la consulta vinculante, que es emitir facturas rectificativas con la
fecha de emisión correcta cuando la fecha de emisión fue incorrecta en primera instancia. El apunte que haces respecto de no poder emitir facturas con fecha anterior a una factura ya emitida es cierta ya que debemos mantener una cronología entre número de factura y fecha de emisión. Pero debes tener en cuenta que cuando se trata de una factura rectificativa, herramienta creada para poder solventar errores en las facturas emitidas, no debería extrañarte que existiera la posibilidad de rotura de esta cronología. Además, ten en cuenta que la OM en ningún momento habla del control de las fechas de expedición de facturas, sólo habla de momento en el que se realiza el fechado del registro de facturación

f) En cualquier caso, el obligado tributario usuario del sistema informático deberá
asegurarse de que la fecha y hora empleadas por dicho sistema informático para fechar
los registros de facturación son exactas, con un margen máximo de error admitido de un
minuto.


2.º La fecha y hora de generación del último registro de facturación generado no es
superior en más de un minuto a la fecha y hora actuales que se utilizarán para fechar
el registro de facturación a generar


por lo que da a entender que se está refiriendo a los campos
FechaGenRegistro, HoraGenRegistro y HusoHorarioGenRegistro del objeto RegistroFacturacion y no del campo FechaExpedicionFacturaEmisor del objeto IDFactura del objeto RegistroFacturacion

De todas maneras, todo esto que hablamos lo podremos probar cuando habiliten el endpoint de recepción de facturas. ¿ Que no te permite que la fecha de expedición sea distinta que la fecha actual ?, pues ya sabes a qué atenerte, no puedes dejar libre el campo fecha emisión en tus facturas por que no vas a poder rectificarlas si se equivocan.

edari 19-01-2024 18:24:07

En cuanto al fichero individual de la factura, no el que se subirá luego a Hacienda



Rellenamos el campo HoraGenRegistro con la hora real de creación pero pasará algo si la subida a la AEAT se hace dentro de 10 minutos así lo han requerido?

antoine0 19-01-2024 19:29:32

Cita:

Empezado por ermendalenda (Mensaje 554088)
Ya habeis visto en el proyecto de la OM que los programas deben estar como máximo 1 minuto de margen de diferencia con la hora real.

Sí, pero esto incumbe claramente al usuario operario del sistema (nuestro cliente), art. 7 f), y únicamente en modo «bajo requerimiento» (el art. 3 exime del 7 f), 7 h) y 7 i))

ermendalenda 22-01-2024 12:57:06

comando curl fecha/hora
 
Aquí os dejo un comando curl para los que querais asegurar la fecha y hora de sistema esten correctas antes de cada factura, ya que si lo dejais en mano de windows algún listillo puede desactivar la sincronización.
Ya lo habia subido anteriormente pero el anterior ejemplo tenia en cuenta la zona horaria de la ip y me a hecho alguna putada, ésta es la correcta:
Código PHP:

curl.exe  --connect-timeout 2 "http://worldtimeapi.org/api/timezone/Europe/Madrid" -[path.json donde quieres grabar el resultado


Neftali [Germán.Estévez] 22-01-2024 13:33:31

Cita:

Empezado por ermendalenda (Mensaje 554108)
Aquí os dejo un comando curl para los que querais asegurar la fecha y hora de sistema esten correctas antes de cada factura, ya que si lo dejais en mano de windows algún listillo puede desactivar la sincronización.
Ya lo habia subido anteriormente pero el anterior ejemplo tenia en cuenta la zona horaria de la ip y me a hecho alguna putada, ésta es la correcta:
Código PHP:

curl.exe  --connect-timeout 2 "http://worldtimeapi.org/api/timezone/Europe/Madrid" -[path.json donde quieres grabar el resultado


Añadido al mensaje #2 del hilo, donde está la recopilación de códigos útiles.

celades1 23-01-2024 08:22:46

Calculo de la Huella
 
Cita:

Empezado por edari (Mensaje 554058)
Gracias sglorka,


A mi primer fichero le calculo la huella y es el que tengo que subir a Hacienda, correcto?

Estoy intentando generar la huella , ¿ Debo quitar espacios en blanco entre nodos y saltos de línea antes de enviar la huella o no ?
¿ Donde puedo hacer la prueba para ver si la huella que genero es correcta ?

CarlosMz 23-01-2024 10:09:12

Buenas,
cómo se calcula la huella del registro de facturación actual antes de enviarlo por GetsfSOAP ?

Muchas gracias

ermendalenda 23-01-2024 10:11:17

Cita:

Empezado por celades1 (Mensaje 554110)
¿ Debo quitar espacios en blanco entre nodos y saltos de línea antes de enviar la huella o no ?

Negativo, debes calcular la huella desde el inicio del nodo <sum:RegistroFacturacion> hasta el fin del nodo </sum:RegistroFacturacion>, donde las etiquetas de inicio y fin deben estar incluidas. Ojo no se calcula la huella del fichero completo, entre otras cosas por que la huella debe estar incluida en el fichero y no podrias calcularla incluyendola antes.
-No puedes quitar ningún caracter, ni espacios, ni tabuladores, ni saltos de linea ni retornos de carro, ni ningún otro caracter especial que esté incluido entre esas 2 etiquetas.
-Para hacer pruebas en alguna web hay que tener en cuenta que los caracteres especiales a veces no se pegan correctamente, con lo cual puedes copiar el nodo en otro fichero para hacer la prueba desde fichero en vez de copiar y pegar, pero recuerda que un salto de línea, por ejemplo después del último caracter, te va a cambiar totalmente el cálculo de la huella (sha256).
-La duda quedaría sí después de la etiqueta de cierre del nodo </sum:RegistroFacturacion>, hay un salto de línea o retorno de carro, ¿habría que cogerlos o no para el cálculo?, en este caso lo que algunos hemos hecho es pegar el inicio del siguiente nodo al final de este y quitar todos los caracteres que poudieran haber entre ambos y nos ahorramos esa duda.

Cita:

Empezado por celades1 (Mensaje 554110)
¿ Donde puedo hacer la prueba para ver si la huella que genero es correcta ?

Aquí te dejo una web para que puedas probar, tanto desde fichero como con copiar y pegar
https://hash.online-convert.com/es/generador-sha256

CarlosMz 23-01-2024 10:48:06

Cita:

Empezado por CarlosMz (Mensaje 554111)
Buenas,
cómo se calcula la huella del registro de facturación actual antes de enviarlo por GetsfSOAP ?

Muchas gracias

Me refiero a cómo accedo al XML antes de enviar y poder calcular el hash del nodo RegistroFacturacion.

Perdón por la pregunta, es probable que sea absurda pero solo consigo el XML cuando envío y capturo el evento HTTPRIO1BeforeExecute

Código Delphi [-]
var res:RespuestaAltaFactuSistemaFacturacion := RespuestaAltaFactuSistemaFacturacion.Create;
    res := GetsfSOAP(False, '', HTTPRIO1).AltaFactuSistemaFacturacion(alta);

celades1 23-01-2024 18:37:30

Muchas gracias ermendalenda

ramherfer 23-01-2024 21:50:48

Cita:

Empezado por CarlosMz (Mensaje 554113)
Me refiero a cómo accedo al XML antes de enviar y poder calcular el hash del nodo RegistroFacturacion.

Perdón por la pregunta, es probable que sea absurda pero solo consigo el XML cuando envío y capturo el evento HTTPRIO1BeforeExecute

Código Delphi [-]
var res:RespuestaAltaFactuSistemaFacturacion := RespuestaAltaFactuSistemaFacturacion.Create;
    res := GetsfSOAP(False, '', HTTPRIO1).AltaFactuSistemaFacturacion(alta);

De absurda nada. Estoy en el mismo caso no se como acceder al XML antes del GetsfSOAP para seleccionar el nodo y calcular el hash del nodo RegistroFacturacion. Si genero el XML manual no tengo problema en acceder y calcular el hash

Por favor, ¿Cómo y de donde me puedo descargar la Orden Ministerial (OM)?

antoine0 24-01-2024 09:17:27

Cita:

Empezado por ramherfer (Mensaje 554122)
¿Cómo y de donde me puedo descargar la Orden Ministerial (OM)?

La OM no está publicada aún. Solo existe un borrador en fase de audiencia publica: https://www.hacienda.gob.es/es-ES/No...aAbiertas.aspx

keys 24-01-2024 11:24:44

Hola a todos.

Vamos a empezar a trabajar en esto de verifactu. Ya hemos desarrollado para TicketBAI, así que el cambio no es tan grande. Lo primero que veo es que hacienda ha lanzado todo esto pero lo tiene un poco verde, al menos la información que tenemos, seguramente hay algunas empresas (las de siempre, ya ha pasado en otros desarollos) que tienen más información.

He estado leyendo el foro, y veo que hay un poco de dudas sobre la fecha de factura, según TicketBAI (Hacienda te dice que también según el reglamento de facturación), la fecha de factura tiene que ser igual a la fecha del día que se genera, ni antes ni después. Hemos tenido varias discusiones con clientes y hacienda y eso es lo que te contestan. De hecho los programas que han hecho en hacienda para los que hacen pocas facturas no se puede modificar la fecha de factura, otra cosa es la fecha de operación.

Una consulta muy recurrente que hacían los clientes es, Es que yo hago las facturas el viernes con fecha del lunes para así tenerlas preparadas, pues no se puede. Nosotros lo que hacemos es generar una prefacturación y luego el día que quiere hace las facturas, pero siempre con la fecha del día que se genera las facturas.

Una diferencia que he encontrado respecto a TicketBAI y el SII es que no hay que indicar si el desglose es a nivel de factura o a nivel de operación. Me imagino que por eso las empresas que hacen el SII no tiene por que hacer todo esto. En las Haciendas forales es al revés, el que entra en TicketBAI ya no tiene que enviar las facturas emitidas al SII.

Otra diferencia que veo es que las anulaciones hay que tenerlas en cuenta en el encadenamiento de las facturas, en TicketBAI.

Me llama la atención toda la información que hay que enviar del sistema informático. También veo que respecto a TicketBAI el mayor cambio y del cual no hay mucha información es el tema de los eventos. Entiendo que todo esto es por no obligar a todo el mundo a entrar en VErifactu, como han hecho en las forales que todo el mundo (salvo pocos casos) tienen que entrar en TicketBAI.

ermendalenda 24-01-2024 12:08:22

Último día de consulta del proyecto de la OM
 
Hola, me han recomendado enviar una consulta para "quejarse" de las restricciones sobre los certificados de envios. Que va a ser un gran problema.
Por si quereis y os interesa quejaros, hoy es el último día para quejarse:
[email protected]

Neftali [Germán.Estévez] 24-01-2024 12:11:55

Cita:

Empezado por keys (Mensaje 554129)
Lo primero que veo es que hacienda ha lanzado todo esto pero lo tiene un poco verde, al menos la información que tenemos, seguramente hay algunas empresas (las de siempre, ya ha pasado en otros desarollos) que tienen más información.


Nosotros tenemos algo hecho, pero más que nada en pruebas.
Hay muy poca información, la que hay es muy poco concreta, nada donde se pueda probar,...
Yo creo que para hacer algo "es serio" no sirve. Sí para ir probando cosas sueltas.



Cita:

Empezado por keys (Mensaje 554129)
Entiendo que todo esto es por no obligar a todo el mundo a entrar en VErifactu, como han hecho en las forales que todo el mundo (salvo pocos casos) tienen que entrar en TicketBAI.

Lo que ya he oído y leído en varios sitios (y tiene bastante sentido), es que en la práctica quieren que hagas VERI*FACTU (servicios web destinados al envío voluntario de registros de facturación), porque los requisitos de no hacerlo complican tanto el sistema que creo que casi todos los programas van a optar por esta opción. Estaba bien explicado en un video (charla) a la que hicieron referencia hace unos días (de una empresa privada) en el foro, pero no encuentro el link para ponerlo.

keys 24-01-2024 12:18:31

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 554133)
Nosotros tenemos algo hecho, pero más que nada en pruebas.
Hay muy poca información, la que hay es muy poco concreta, nada donde se pueda probar,...
Yo creo que para hacer algo "es serio" no sirve. Sí para ir probando cosas sueltas.





Lo que ya he oído y leído en varios sitios (y tiene bastante sentido), es que en la práctica quieren que hagas VERI*FACTU (servicios web destinados al envío voluntario de registros de facturación), porque los requisitos de no hacerlo complican tanto el sistema que creo que casi todos los programas van a optar por esta opción. Estaba bien explicado en un video (charla) a la que hicieron referencia hace unos días (de una empresa privada) en el foro, pero no encuentro el link para ponerlo.

El problema es tener que obligar a todos tus clientes que se metan en VeriFactu, aunque es una opción a considerar y así se te olvidas de los eventos, inspecciones, etc....

Sistel 24-01-2024 12:25:03

Cita:

Empezado por ermendalenda (Mensaje 554132)
Hola, me han recomendado enviar una consulta para "quejarse" de las restricciones sobre los certificados de envios. Que va a ser un gran problema.
Por si quereis y os interesa quejaros, hoy es el último día para quejarse:
[email protected]

Hola,

Gracias por avisarnos, Ermendalenda.

Acabamos de enviar email con el texto:
Cita:

Con relación a la próxima aprobación de la Orden Ministerial que regula el procedimiento Veri*Factu, queríamos hacer una observación:

Actualmente, nuestros softwares procesan unas 10.000 facturas diarias obligadas al sistema TicketBAI de las Haciendas Forales del País Vasco.
Para el envío de dichas facturas de nuestros clientes a las Haciendas Forales, utilizamos nuestro propio certificado digital, no el del obligado tributario.
Obtenemos, para ello, un documento firmado por nuestros clientes (obligados tributarios) en el que se nos autoriza, en su nombre, a la emisión, firma y envío de los datos de las facturas a TicketBAI.
Y estamos acreditados antes las Haciendas Forales para dicho procedimiento.

Nos parece altamente peligroso almacenar en nuestro sistema los certificados digitales de nuestros clientes (obligados tributarios) y creemos que Veri*Factu debería incorporar la opción del envío mediante un certificado digital de la empresa de software (que podría estar acreditada ante Hacienda para dicha operación).

Esperamos que se tenga en cuenta dicha observación antes de la aprobación de la Orden Ministerial.
A ver si tienen en cuenta el tema.

Saludos

ermendalenda 24-01-2024 12:40:32

Cita:

Empezado por Sistel (Mensaje 554135)
Hola,

Gracias por avisarnos, Ermendalenda.

Acabamos de enviar email con el texto:


A ver si tienen en cuenta el tema.

Saludos


Perfecto.
Gracias a tí


La franja horaria es GMT +2. Ahora son las 07:29:05.

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