Page 6 of 23
Re: España: Normativa sancionadora sistemas informáticos
Posted: Sun Jul 28, 2024 7:09 pm
by FiveWiDi
paquitohm wrote:Hola Carlos,
3. Esta pregunta-respuesta oficial quizás responda tu inquietud:
Pregunta: En el diseño del registro de alta, en el nodo SistemaInformatico, aparece un campo que es el
NumeroInstalacion. ¿a qué se refiere?
Respuesta: El campo <NumeroInstalacion> es un nº propio de cada instancia/instalación concreta (o SIF) de un producto de
facturación particular. Este campo sirve para diferenciar diferentes instancias/instalaciones de SIF de un mismo obligado
tributario que emplea productos "iguales" en todos ellos (por ejemplo, distintos PC que tienen instalado una mismo
programa y versión para facturar, para así poder distinguir cuál de ellos ha expedido cada factura y generado su
correspondiente registro de facturación) .
Si, si. Esto lo tengo claro. Es el caso de una empresa que tiene 2 o más ordenadores y factura desde cualquiera de ellos.
Es que es muy raro lo que me explicaron de que la empresa para la que trabajan les expide SUS facturas cuyo destinatario es la empresa para la que trabajan.
Y en la definición del XML veo que hay un 'tercero' que ha expedido la factura.
Tag 'EmitidaPorTercerosODestinatario' con la explicación 'Identificador que especifica si la factura ha sido emitida por un tercero o por el destinatario (contraparte).
Y posiblemente yo tendré este caso encima de la mesa en su momento.
Re: España: Normativa sancionadora sistemas informáticos
Posted: Sun Jul 28, 2024 8:45 pm
by paquitohm
Es que es muy raro lo que me explicaron de que la empresa para la que trabajan les expide SUS facturas cuyo destinatario es la empresa para la que trabajan.
Ese sistema lo conozco yo a través de la agricultura y la ganadería: Como algunos pequeños agricultores o ganaderos no tienen sistemas administrativos que les permitan expedir facturar es la propia empresa que compra sus producciones la que se hace una autofactura
Re: España: Normativa sancionadora sistemas informáticos
Posted: Mon Jul 29, 2024 8:34 am
by VictorCasajuana
FiveWiDi wrote:Hola a todos,
3 dudas.
1-Seguimos en este hilo? o abrimos uno específico para VERIFACTU? (En Off-Topic seria lo correcto)
2-Curiosidad. Mirando un fichero que tengo nombrado como "Anexo_OM_RD-1007-2023(v0.5.0_2023-12-20).xlsx", que son especificaciones del XML, veo algo curioso. Se 'podrían' enviar 1000 registros con el tag 'RegistroAltaFacturas' y en cada uno de éstos otros 1000 con el tag 'IDFacturaRectificada'. Quizás alguna gran empresa eléctrica o de telefonía puede en su día rectificar o substituir facturas (sólo serían 1.000.000 de facturas como máximo).
3-Veo que una factura puede emitirse por el propio DESTINATARIO (en las especificaciones del XML parece contemplarse esta circunstancia).
De hecho ayer me comentaban un caso de una aseguradora que emite las facturas de sus proveedores en las cuales ella es la destinataria; son trabajos baremados y así facilitan el papeleo a las pequeñas empresas que les dan servicio (ahora entiendo que exija que sean empresas y no autónomos, pero eso es otro tema).
Entonces, si esa pequeña empresa realiza además trabajos para otras empresas o a particulares, ¿Cómo se trataría el tema del encadenamiento? ¿Quién ha de enviar el registro por VERIFACTU? Por qué está claro que la pequeña empresa pierde el control de la emisión de sus facturas, al menos las destinadas a la aseguradora. ¿Podría solucionarse usando una número de serie para cada origen/emisor de la factura?
1. estaría bien
2. ok
3. Mi opinión al respecto, es que esos pequeños negocios que ahora delegan la creación de la factura a su proveedor ( lo he visto en agricultura ) tendrán que hacerla ellos, o con un SIF propio o utilizando la aplicación que habilitará hacienda. Técnicamente no pueden hacerlas los proveedores ya que se perderá el encadenamiento aunque hagas series independientes, ya que el encadenamiento es independiente de la serie, a parte de que el proveedor ha de tener los certificados de todos sus clientes para hacer las facturas en su nombre.
Re: España: Normativa sancionadora sistemas informáticos
Posted: Mon Jul 29, 2024 11:27 am
by paquitohm
Autofactura, aclaración oficial
Pregunta: Como se van a tratar las autofacturas que hacen algunas empresas. Ya que emiten en nombre de
cliente. Presentará el que emite la autofactura?
Respuesta: Se entiende que se refiere a cuando es el propio destinatario de la factura quien expide materialmente la factura que su proveedor está obligado a expedirle. Esto está permitido por el reglamento de facturación y por el reglamento del RD
1007/2023, siempre y cuando el proveedor le haya otorgado al destinatario las facultades pertinentes para ello. En ese
caso, quien firmaría o remitiría a la AEAT el registro de facturación de la factura (de su proveedor a él) sería el
destinatario, con su propio certificado (del destinatario). Se recuerda quen en el caso de remisión, además se requiere
apoderamiento para dicho trámite o ser colaborador social con el adecuado convenio suscrito.
Re: España: Normativa sancionadora sistemas informáticos
Posted: Mon Jul 29, 2024 11:38 am
by VictorCasajuana
paquitohm wrote:Autofactura, aclaración oficial
Pregunta: Como se van a tratar las autofacturas que hacen algunas empresas. Ya que emiten en nombre de
cliente. Presentará el que emite la autofactura?
Respuesta: Se entiende que se refiere a cuando es el propio destinatario de la factura quien expide materialmente la factura que su proveedor está obligado a expedirle. Esto está permitido por el reglamento de facturación y por el reglamento del RD
1007/2023, siempre y cuando el proveedor le haya otorgado al destinatario las facultades pertinentes para ello. En ese
caso, quien firmaría o remitiría a la AEAT el registro de facturación de la factura (de su proveedor a él) sería el
destinatario, con su propio certificado (del destinatario). Se recuerda quen en el caso de remisión, además se requiere
apoderamiento para dicho trámite o ser colaborador social con el adecuado convenio suscrito.
pues aún más sencillo! así ya es una gestión que se deriva al cliente final (nuestro cliente que utiliza el SIF) para que haga los apoderamientos pertinentes.
Re: España: Normativa sancionadora sistemas informáticos
Posted: Mon Jul 29, 2024 6:44 pm
by paquitohm
Hola,
¿ Alguien tiene implementada el hash 256 de la huella en harbour ?
El ejemplo que ponen es en Java y es este, extraido de una imagen:
Code: Select all | Expand
import java.security.MessageDigest;
import org.apache.commons.codec.binary.Basel6;
public class Huella {
public static String getHashVerifactu(String msg)throws Exception {
MessageDigest digest = MessageDigest.getlnstance("SHA-256");
return new Basel6(f&lse) .encodeAsString(digest.digest{msg.getBytes(StandardCharsets UTF_8)));
public static String getReferenciaRegistro(String idEmisorFactura, String numFacturaSerie, String fechaExpedicion,
String tipoFactura, String cuotaTotal, String importeTotal, String huellaAnterior,
String fechaUsoHorarioRegistro) {
StringBuilder sb = new StringBuilder();
sb.append("IDE:misorFactura=") .append(idEmisorFactura) .append("&")
.append("NumSerieFactura="l .append(numFacturaSerie) .append("&")
.append("FechaExpedicionFactura="l .append(fechaExpedicion) .append("&")
.append("TipoFactura="l . append(tipoFactura) .append("& ")
. append ( "CuotaTotal=") . append (cuotaTotal) . append ( " & ")
.append("ImporteTotal=") . append{llnporteTotal) . append("&")
. append ("Huella=") . append {huellaAnterior) . append ( " & ")
. append (" FechaHoraHusoGenRegistro=") . append (fechaUsoHorarioRegistro) ;
return sb.toString();
public static String calcularHuella{String idEmisorFactura, String numFacturaSerie, String fechaExpedicion,
String tipoFactura, String cuotaTotal, String importeTotal, String huellaAnterior,
String fechaRegistro, String horaRegistro, String usoHorarioRegistro)throws Exception
String ref = getReferenciaRegistro(idEmisorFactura, numFacturaSerie, fechaExpedicion, tipoFactura, cuotaTotal,
importeTotal, huellaAnterior, fechaRegistro);
return getHashVerifactu(ref);
public static void main(String args(])throws Exception {
Huella h = new Huella();
System. out.println (calcularHuella ("89890001K", "12345678/G33", "01-01-2024", "Fl", "12. 35", "123. 45",
"123456789012345678901234567890123456789012345678901234567890abcd", "2024-01-01Tl2:00:00+0l:OO"));
}
}
Re: España: Normativa sancionadora sistemas informáticos
Posted: Tue Jul 30, 2024 10:30 am
by quim
paquitohm wrote:Hola,
¿ Alguien tiene implementada el hash 256 de la huella en harbour ?
[/code]
Paquito, en harbour es muy fácil (como en casi todo) ...
Code: Select all | Expand
//-----------------------------------------------------------------------------//
// Especificaciones de huella o hash
//-----------------------------------------------------------------------------//
// Algoritmo: SHA-256
// Codificación: UTF-8
// Formato de salida será:
// - En sistema hexadecimal.
// - En mayúsculas.
// Se validará la huella o hash en el servicio de remisión de registros de facturación.
// En caso de error, se marcará como “Aceptada con errores” y se deberá proceder a su revisión.
//-----------------------------------------------------------------------------//
function hb_Huella()
local c := ""
local h := {=>}
h['Nif'] := "B1234567"
h['NumSerieFacturaEmisor'] := "AB-123456"
h['FechaExpedicionFactura'] := hb_dtoc( date(), "dd-mm-yyyy" )
h['TipoRegistroSIF'] := "01"
h['TipoFactura'] := "F1"
h['CuotaTotal'] := ltrim( str(261.61, 12, 2) )
h['ImporteTotal'] := ltrim( str(1507.36, 12, 2) )
h['HuellaRegistroAnterior'] := "ZmY2MDgxMzc2ZWIyMTI4ZDFiMDMyMDlkMTAyNmQ4ZDVmZGExMWJkYWRiMThjZTNkYjE4ODExZDg3MDUwZTNjMQ=="
h['FechaHoraHusoGenRegistro'] := hb_TtoS( hb_datetime() )
hb_heval( h, {|k,v,i| c += v} ) // | key, value, index |
return hb_base64Encode( hb_sha256(c) )
Re: España: Normativa sancionadora sistemas informáticos
Posted: Tue Jul 30, 2024 10:43 am
by paquitohm
Gracias quim por el aporte del que todos nos beneficiaremos
Es fácil cuando se sabe hacer, claro está
Pero lo que sí me parece que resulta evidente es que el código es mucho más fácil que el código de JAVA
Re: España: Normativa sancionadora sistemas informáticos
Posted: Tue Jul 30, 2024 10:54 am
by quim
paquitohm wrote:
Es fácil cuando se sabe hacer, claro está
Evidentemente es fácil si se conoce, disculpa por si me he expresado de forma prepotente ...
Me referia a lo 'relativamente' fácil que resulta implementar cualquier cosa en harbour, respecto por ejemplo a Java
Saludos
Re: España: Normativa sancionadora sistemas informáticos
Posted: Tue Jul 30, 2024 11:06 am
by paquitohm
No por dios, quim, no hay nada que disculpar, sólo faltaba...
Quise decir que cuando las cosas se estudian, entonces se conocen y entonces se saben hacer y resultan fáciles. Es evidente que tú ya has hecho el camino que otros deberíamos hacer también.
Agradezco nuevamente este y todos tus aportes que tanto benefician a la comunidad y por los cuales siempre te estaremos agradecidos
Re: España: Normativa sancionadora sistemas informáticos
Posted: Tue Jul 30, 2024 12:01 pm
by paquitohm
Esta autorización parece que es necesaria para el tema de las autofacturas que comentábamos el otro día ¿ Que vas a hacer/ imprimir facturas en nombre de un tercero ? Pues entonces te toca también enviarlas a la agencia y para eso se hace necesaria una autorización
https://sede.agenciatributaria.gob.es/s ... quidac.pdf
Re: España: Normativa sancionadora sistemas informáticos
Posted: Thu Aug 01, 2024 3:32 pm
by FiveWiDi
Hola a todos,
Sabéis si hay novedades respecto de la orden ministerial? (A ver si me he despistado)
Y sobre cambios 'técnicos'?
Es que estoy trabajando en ello (modificar los DBF, validaciones internas, el XML, ...)
Veo algo que no encuentro justificación que esté donde está en la estructura del XML.
Hay un grupo de datos que hace referencia al 'sistema informático', no es un poco absurdo que esté con cada grupo de datos de la factura?
Para mi lo lógico sería que estuviera al mismo nivel que los TAG 'RegistroFacturación' y 'DatosControl', y no que pertenezca al 'RegistroFacturación'.
Por eso pregunto si han habido cambios recientemente.
Muchas gracias,
Re: España: Normativa sancionadora sistemas informáticos
Posted: Fri Aug 02, 2024 7:51 am
by paquitohm
Buenos días,
FiveWiDi wrote:Hola a todos,
Sabéis si hay novedades respecto de la orden ministerial? (A ver si me he despistado)
Y sobre cambios 'técnicos'?
Hasta donde yo sé nada hay de la O.M. aunque si todo entra en vigor el 1/7/25, no debería tardar muchos meses, salvo retrasos oficiales
FiveWiDi wrote:Es que estoy trabajando en ello (modificar los DBF, validaciones internas, el XML, ...)
¿ Qué tipo de cambios estás haciendo en los DBF ? ¿ Qué validaciones ? Pregunto por ayudarte porque no hacen falta _ como supusimos al principio que había que hacer
FiveWiDi wrote:Veo algo que no encuentro justificación que esté donde está en la estructura del XML.
Hay un grupo de datos que hace referencia al 'sistema informático', no es un poco absurdo que esté con cada grupo de datos de la factura?
Para mi lo lógico sería que estuviera al mismo nivel que los TAG 'RegistroFacturación' y 'DatosControl', y no que pertenezca al 'RegistroFacturación'.
TicketBai tiene la estructura que tu comentas.
Sospecho que esa estructura tiene el sentido de que haya sistemas "enviadores" de facturas producidas por varios SIF, asi un envio podria constar de muchas facturas impresas por varios SIF distintos
Salu2
Re: España: Normativa sancionadora sistemas informáticos
Posted: Fri Aug 02, 2024 8:44 am
by Xevi
quim wrote:paquitohm wrote:Hola,
¿ Alguien tiene implementada el hash 256 de la huella en harbour ?
[/code]
Paquito, en harbour es muy fácil (como en casi todo) ...
Code: Select all | Expand
//-----------------------------------------------------------------------------//
// Especificaciones de huella o hash
//-----------------------------------------------------------------------------//
// Algoritmo: SHA-256
// Codificación: UTF-8
// Formato de salida será:
// - En sistema hexadecimal.
// - En mayúsculas.
// Se validará la huella o hash en el servicio de remisión de registros de facturación.
// En caso de error, se marcará como “Aceptada con errores” y se deberá proceder a su revisión.
//-----------------------------------------------------------------------------//
function hb_Huella()
local c := ""
local h := {=>}
h['Nif'] := "B1234567"
h['NumSerieFacturaEmisor'] := "AB-123456"
h['FechaExpedicionFactura'] := hb_dtoc( date(), "dd-mm-yyyy" )
h['TipoRegistroSIF'] := "01"
h['TipoFactura'] := "F1"
h['CuotaTotal'] := ltrim( str(261.61, 12, 2) )
h['ImporteTotal'] := ltrim( str(1507.36, 12, 2) )
h['HuellaRegistroAnterior'] := "ZmY2MDgxMzc2ZWIyMTI4ZDFiMDMyMDlkMTAyNmQ4ZDVmZGExMWJkYWRiMThjZTNkYjE4ODExZDg3MDUwZTNjMQ=="
h['FechaHoraHusoGenRegistro'] := hb_TtoS( hb_datetime() )
hb_heval( h, {|k,v,i| c += v} ) // | key, value, index |
return hb_base64Encode( hb_sha256(c) )
Quim,
Harbour nos lo pone ¿fácil???, jejeje.
Le daré una vuelta a ver si cambio por lo que tengo hecho.
Code: Select all | Expand
cUtcTime := iTime()['datetime']
cUtcTime := Left( cUtcTime, 19 ) + Right( cUtcTime, 6 ) //2024-01-01T19:20:35+01:00
h['TextHuella'] := "IDEmisorFactura=" + AllTrim(AppData:cNifEmpresa) + "&NumSerieFactura=" + AllTrim(cNumFac) + "&FechaExpedicionFactura=" + StrTran( h['cDataFactura'], "/", "-" ) + "&TipoFactura=F1&CuotaTotal=" + AllTrim(Str( h['nIva1']+h['nIva2']+h['nIva3'], 15, 2 )) + "&ImporteTotal=" + AllTrim(Str( h['nBase0']-h['nDte0'] + h['nBase1']-h['nDte1'] + h['nBase2']-h['nDte2'] + h['nBase3']-h['nDte3'], 15, 2 )) + "&Huella=" + "3C464DAF61ACB827C65FDA19F352A4E3BDC2 C640E9E9FC4CC058073F38F12F60" + "&FechaHoraHusoGenRegistro=" + cUtcTime
h['Huella'] := Upper(HB_SHA256( h['TextHuella'] ))
No se porque le antepones hb_base64Encode()... ¿?¿?
Debes de añadir un Upper() al retorno del valor.
Además... debería de conformar la huella TODO el texto 'informativo' de cada campo a generar la huella...
Editado...
Acabo de mirar el documento para la generación de la huella...
Es como comento.
https://www.agenciatributaria.es/static ... istros.pdf
Apartado 6. Ejemplos
Re: España: Normativa sancionadora sistemas informáticos
Posted: Fri Aug 02, 2024 9:19 am
by FiveWiDi
paquitohm wrote:
¿ Qué tipo de cambios estás haciendo en los DBF ? ¿ Qué validaciones ? Pregunto por ayudarte porque no hacen falta _ como supusimos al principio que había que hacer
He añadido el campo huella y de envío a Verifactu al DBF de las facturas y al de su detalle.
A partir del 01/07/2025 no permitiré las bajas y modificaciones de facturas ya enviadas a Verifactu, hasta esa fecha (o hasta que empiece a utilizar Verifactu) aparecerá un mensaje indicando que no debe hacerlo, pero bajo su responsabilidad podrá hacerlo.
Está el tema de enlazar facturas anterior-posterior, aún le estoy dando vueltas; creo que guiarme por el número de factura.... leí algo de que no tienen por que existir facturas correlativas, por tanto puede faltar la factura 'anterior'.
Si es así deberé establecer el binomio anterior-siguiente en el momento de recepción 'Ok' de Verifactu.
Hasta la recepción del 'Ok' de Verifactu soy libre de hacer lo que quiera mientras no se entregue la factura al cliente.
paquitohm wrote:
TicketBai tiene la estructura que tu comentas.
Sospecho que esa estructura tiene el sentido de que haya sistemas "enviadores" de facturas producidas por varios SIF, asi un envio podria constar de muchas facturas impresas por varios SIF distintos
Entiendo.
Les será útil a las empresas que den servicio de envío a Verifactu y en un solo paquete envíen información de varios de sus clientes.
Curiosidad.
Si un obligado tributario está acogido a Verifactu, en sus XML enviará sólo la factura del momento, cierto?
Ya que la emisión, envío a Verifactu, entrega al cliente, debe ser por este orden, cierto?
Duda.
He leído que no hay problema en enviar facturas a Verifactu con fecha emisión anterior a la de su envío a Verifactu.
Ahora bien, se de una persona que envía las facturas de alquiler días antes de la fecha factura (envío el dia 28 de mes, fecha factura día 1 del mes siguiente) . De esto no he encontrado nada. Si las envía a Verifactu... Qué ocurrirá?
Muchas gracias,