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)

Sistel 03-10-2024 17:12:55

Cita:

Empezado por rci (Mensaje 557813)
Hola Sistel, como lo haces?
En cada venta, antes de salvarla (y por lo tanto antes de generar TicketBAI / VeriFactu), compruebas si el numero de identificación introducido es correcto contactando con el webservice?
y si contesta que no es correcto muestras un error y no permites salvar hasta que hayan introducido un NIF correcto?

Muchas gracias

Hola,

Efectivamente, para las facturas con destinatario, se conecta al webservice de la AEAT y comprueba si el NIF y nombre son correctos.
Si no lo son, doy mensaje de error y no dejo emitir esa factura.

Saludos

Sistel 03-10-2024 17:16:38

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 557817)
¿Y si se "cae" la conexión a Internet no se emiten facturas?
Creo que eso no debería ser así. Debes poder emitir aunque no tengas conexión.

Hola,

Mi sistema es una API en la nube.
Si no hay conexión a Internet, no puedes facturar (lo mismo que si se te va la luz).
Para garantizar conexión permanente a Internet, siempre se puede utilizar un router 4G de backup que conmuta automáticamente y saca el tráfico por la red de telefonía móvil si se cae la conexión por la fibra.
Y con un SAI ya bordas la instalación.

Saludos

jguarda 03-10-2024 17:18:05

Dni
 
acaso pretenden que cada ticket que emita un bar, tienda de calzado, peluqueria... etc, se vayan pidiendo los DNI a todo dios ...

rci 03-10-2024 17:20:10

Cita:

Empezado por jguarda (Mensaje 557822)
acaso pretenden que cada ticket que emita un bar, tienda de calzado, peluqueria... etc, se vayan pidiendo los DNI a todo dios ...

No, en ese caso pueden ser facturas simplificadas, sin identificar el destinatario.
Pero si quieres emitir una factura completa, los datos del destinatario (incluido el DNI) tienen que constar y ser correctos

Sistel 03-10-2024 17:21:53

Cita:

Empezado por rci (Mensaje 557818)
Imagino que en ese caso el programa de Sistel cruza los dedos para que sea correcto y permite salvar.:p

Hola,

Hoy por hoy las redes de fibra y 4G son muy estables.
En los más de 2 años que llevamos dando servicio TicketBAI a casi 300 usuarios (principalmente comercios, bares y restaurantes) las incidencias por corte de conexión han sido anecdóticas.
Y la ventaja de tener todo centralizado, guardado y a salvo del usuario en servidores de Internet ... no tiene precio.

Saludos

Sistel 03-10-2024 17:23:59

Cita:

Empezado por rci (Mensaje 557823)
No, en ese caso pueden ser facturas simplificadas, sin identificar el destinatario.
Pero si quieres emitir una factura completa, los datos del destinatario (incluido el DNI) tienen que constar y ser correctos

Lo mismo que ahora.
La única diferencia que hasta ahora se hacía en papel y con Verifactu se hará también electrónico.
Pero la normativa de facturación es la misma de siempre.

Galahad 03-10-2024 17:33:10

Cita:

Empezado por pablog2k (Mensaje 557800)
si que está validando lo de la huella ... lo que pasa es que te la da aceptada con errores:
ejemplo:
registro con huella mal:
Código PHP:

<tikR:EstadoRegistro>AceptadoConErrores</tikR:EstadoRegistro>

<
tikR:CodigoErrorRegistro>2000</tikR:CodigoErrorRegistro

registro con huella bien:
Código PHP:

<tikR:EstadoRegistro>Correcto</tikR:EstadoRegistro

como comenté, para poder arreglar las huellas de todos los documentos, tienes que empezar por el primero que esté mal, e ir subiendolo como subsanacion

perdón , a ver si sobre esto me podeís ayudar.
me acepta las facturas, pero con con errores por el tema de la firma, si realmente las está validando, no lo entiendo.

Cita:

<tikR:RespuestaLinea>
<tikR:IDFactura>
<tik:IDEmisorFactura>XXXXXXX</tik:IDEmisorFactura>
<tik:NumSerieFactura>0F240006</tik:NumSerieFactura>
<tik:FechaExpedicionFactura>22-01-2024</tik:FechaExpedicionFactura>
</tikR:IDFactura>
<tikR:EstadoRegistro>AceptadoConErrores</tikR:EstadoRegistro>
<tikR:CodigoErrorRegistro>2000</tikR:CodigoErrorRegistro>
<tikR:DescripcionErrorRegistro>El cálculo de la huella suministrada es incorrecta. Datos de entrada cálculo huella: IDEmisorFactura=XXXXXXX&NumSerieFactura=0F240006&FechaExpedicionFactura=22-01-2024&TipoFactura=F1&CuotaTotal=420.00&ImporteTotal=2420.00&Huella=&FechaHoraHusoGenRegistro=2024-10-03T16:15:03+02:00 Huella calculada: A8925885A65EB9F41DEEFAEBF9971DB688DC8F92D35B38ACACD34318FEEF3104</tikR:DescripcionErrorRegistro>

</tikR:RespuestaLinea>

estoy creando la huella con :
Código Delphi [-]
 Result := THashSHA2.GetHashString(CadenaVerifactu,THashSHA2.TSHA2Version.SHA256);

pensaba enviar está consulta a la aeat,,, ¿ la dirección correcta de soporte para estas consultas seria : [email protected] ?, ¿ o hay alguna específica para soporte informático a verifactu ?

rci 03-10-2024 17:37:14

Cita:

Empezado por Galahad (Mensaje 557826)
pensaba enviar está consulta a la aeat,,, ¿ la dirección correcta de soporte para estas consultas seria : [email protected] ?, ¿ o hay alguna específica para soporte informático a verifactu ?

Mejor aquí:

[email protected]

Saludos

newtron 03-10-2024 18:06:57

Gracias a todos por vuestras respuestas.


Parece claro que es un problema de windows 7 con TLS 1.2, yo lo tengo activado como me comentáis y no funciona. Voy a probar a meter un parche de seguridad que me recomienda mi ultimo gran amigo (chatgpt) :D y os comento para tenerlo claro.


Saludos.

bmfranky 03-10-2024 18:17:59

Si, ya te comentaba que en el 7 habia que aplicar un parche.

newtron 03-10-2024 18:38:00

Cita:

Empezado por bmfranky (Mensaje 557831)
Si, ya te comentaba que en el 7 habia que aplicar un parche.


Cierto... voy a ello. :)

jguarda 03-10-2024 20:53:34

Simplificada
 
supongo que el envío a veri*factu de facturas (simplificadas), habrá que meterlo en un tThread distinto al hilo principal xq sino el terminal se quedará tostado hasta que termine el envio y recepción del resultado. Creo que esto es un problema tanto para el cliente como para nosotros. Si alguien quiere su ticket inmediato después de haber por ejemplo comprado algo en una tienda, el de la tienda tiene que pasar esto inmediatamente a veri*factu, por lo que se van a liar una colas de gente en ciertos negocios tremendas, amen de los cuelgues por falta de comunicación en la hacienda publica, y se me ocurren otro montón de situaciones, en donde veo inviable esto que pretenden.


Imaginemos alguien, que decide quitar internet de su negocio, pero quiere usar su sistema informático para dar un ticket al cliente. Hacienda le pagará el internet para que emita sus tickes a veri*factu, o le multará, en fin ... no se



al final, libreta y boligrafo y el que quiera factura ya se le mandara por carta postal, jejej

sglorka 03-10-2024 20:55:50

Leo varios post referidos a, qué hacer cuando rechazan una factura o la aceptan parcialmente, y veo que la mayoría de los post no son correctos y puede llegar a confusión este galimatías. En mi opinión y con el Reglamento de Facturación vigente y el Reglamento Verifactu, si te rechazan una factura y tienes contenido en la propiedad Respuestalinea del objeto Respuesta donde se especifica el motivo del rechazo, significa que la Aeat ha logrado parsear el registro enviado, situación distinta a la ocurrida cuando el servicio de la Aeat no ha podido hacerlo porque está fuera de línea, no tenemos Internet o nuestro modelo Xml no es correcto. En estos casos se recibe un objeto Respuesta con todas sus propiedades a Nothing o Null pero con la propiedad EstadoDeEnvio = Incorrecto. Sólo en este caso podremos reenviar el paquete de nuevo, ya que la Aeat no tiene nada registrado de este paquete.

Si recibimos contenido en la propiedad Respuestalinea del objeto Respuesta, sea lo que sea, ya no podrás volver a reenviar los registros que contenía dicho paquete, hayan venido Incorrectos o Parcialmente Correctos.
Disponemos de herramientas para solventar este caso.

La primera es subsanar el registro creando un Nuevo registro de Subsanación y olvidándote del registro rechazado, sólo puede corregir datos que no impliquen la emisión de una factura rectificativa, por ejemplo errores en fecha de operación, régimen tributario, la huella generada....Puedes generar un Alta por rechazo previo o un Alta por Subsanación sin rechazo previo según sea el caso

Y la segunda es nuestra querida amiga la Factura Rectificativa. Si nos rechazan una factura porque el tipo impositivo no existe, te tienes que olvidar de ese registro de facturación y emitir una factura rectificativa por sustitución haciendo referencia a esa factura rechazada para corregir ese error. Quedará un hueco en las facturas que tiene la Aeat (nos ha rechazado la factura) pero eso es normal ya que NO PODEMOS modificar facturas para arreglarlas. Haciendo referencia a dicha factura a través de la rectificación justificamos en la Aeat la existencia de ese hueco.

pablog2k 04-10-2024 08:07:04

Cita:

Empezado por jguarda (Mensaje 557834)
supongo que el envío a veri*factu de facturas (simplificadas), habrá que meterlo en un tThread distinto al hilo principal xq sino el terminal se quedará tostado hasta que termine el envio y recepción del resultado. Creo que esto es un problema tanto para el cliente como para nosotros. Si alguien quiere su ticket inmediato después de haber por ejemplo comprado algo en una tienda, el de la tienda tiene que pasar esto inmediatamente a veri*factu, por lo que se van a liar una colas de gente en ciertos negocios tremendas, amen de los cuelgues por falta de comunicación en la hacienda publica, y se me ocurren otro montón de situaciones, en donde veo inviable esto que pretenden.


Imaginemos alguien, que decide quitar internet de su negocio, pero quiere usar su sistema informático para dar un ticket al cliente. Hacienda le pagará el internet para que emita sus tickes a veri*factu, o le multará, en fin ... no se



al final, libreta y boligrafo y el que quiera factura ya se le mandara por carta postal, jejej

hola , el proceso de generar el ticket, con el QR, es independiente a subir ese ticket a verifactu. De hecho, si tienes un corte de internet en un comercio, puedes (y debes)seguir emitiendo tickets sin problemas, y si el cliente se queja de que el QR no lleva a ningún sitio, le dices que estás sin internet y que a lo largo del día estará operativo el QR.
A mi tambien me parece inviable lo que pretenden hacer, pero porque no creo que estén preparados para recibir tantisima información de todos los comercios enviando registros. El modelo que pretenden implantar ya está operativo en el pais vasco, y desde este foro te pueden comentar compañeros que al final se ha implantado y la gente a tenido que pasar por el aro

pablog2k 04-10-2024 08:31:13

Cita:

Empezado por Galahad (Mensaje 557826)
perdón , a ver si sobre esto me podeís ayudar.
me acepta las facturas, pero con con errores por el tema de la firma, si realmente las está validando, no lo entiendo.



estoy creando la huella con :
Código Delphi [-]
 Result := THashSHA2.GetHashString(CadenaVerifactu,THashSHA2.TSHA2Version.SHA256);

pensaba enviar está consulta a la aeat,,, ¿ la dirección correcta de soporte para estas consultas seria : [email protected] ?, ¿ o hay alguna específica para soporte informático a verifactu ?

hola , en la pagina 1 de este hilo tienes un ejemplo de como crear el hash, utiliza una de las librerías que incorpora DelphiXE8 creo, incluso la puedes generar como DLL por si tienes versiones mas antiguas de delphi

Sistel 04-10-2024 08:47:58

Cita:

Empezado por pablog2k (Mensaje 557837)
hola , el proceso de generar el ticket, con el QR, es independiente a subir ese ticket a verifactu. De hecho, si tienes un corte de internet en un comercio, puedes (y debes)seguir emitiendo tickets sin problemas, y si el cliente se queja de que el QR no lleva a ningún sitio, le dices que estás sin internet y que a lo largo del día estará operativo el QR.
A mi tambien me parece inviable lo que pretenden hacer, pero porque no creo que estén preparados para recibir tantisima información de todos los comercios enviando registros. El modelo que pretenden implantar ya está operativo en el pais vasco, y desde este foro te pueden comentar compañeros que al final se ha implantado y la gente a tenido que pasar por el aro

Hola,

Efectivamente, aquí, en el País Vasco, TicketBAI (que viene a ser, prácticamente, lo mismo que Verifactu) lleva ya varios años funcionando.
Al principio, la gente se echaba las manos a la cabeza con los posibles problemas: cortes, lentitud y demás.
Pero se ha comprobado que no: todo funciona, en general, sin problemas.

Hoy por hoy, no hay problemas en ningún sitio para tener Internet (por fibra, por 3G/4G, por satélite o combinados)

Y respecto a lo que leí sobre si Hacienda va a pagar la conexión a Internet necesaria en todos los comercios y negocios que emitan factura:
En el País Vasco, las Haciendas Forales permiten una deducción extraordinaria del 30% del importe de la implantación de TicketBAI (ordenadores, TPVs, impresoras, software, implantación, formación, ...)
(Si le le suma la deducción del IVA y la reducción por gasto del Impuesto de Sociedades o del IRPF, el coste final de la implantación es mínimo)
Muchos comercios han aprovechado esta oferta para actualizar sus equipos informáticos.
Aparte, la Hacienda Foral de Bizkaia también concede otra deducción del Impuesto de Sociedades o del IRPF si se entra voluntariamente en el sistema antes de la fecha que corresponda.
A las Haciendas les merece la pena casi regalar todos los costes a cambio de tener información instantánea de las facturas emitidas que ya no podrán ser objeto de fraude (borrado o manipulación antes de la declaración de IVAs)
No sé si al final la AEAT también permitirá deducciones especiales por los gastos de implantación de Verifactu.

Respecto al tema de la posible lentitud con la comprobación del NIF y nombre del destinatario (utilizando el webservice de AEAT) + los envíos de los datos de la factura a Hacienda:
Nos ha sorprendido lo bien que va.
Nuestro sistema, por ejemplo, recibe (en un servidor en la nube) los datos de la factura a emitir, hace las verificaciones, grabaciones, creación del XML, firma del XML, cálculo del código TBAI y del código QR retorno de todos los datos al comercio y envío (encolado) a Hacienda en unos 150-200 milisegundos de media.
La verdad es que no tenemos prácticamente nunca problemas de saturación.

Está claro que cuando la mayoría de los países de la UE ya tienen en marcha un sistema similar a Verifactu, es que se puede.

Saludos.

antoine0 04-10-2024 08:56:39

Cita:

Empezado por newtron (Mensaje 557830)
Parece claro que es un problema de windows 7 con TLS 1.2, yo lo tengo activado como me comentáis y no funciona. Voy a probar a meter un parche de seguridad que me recomienda mi ultimo gran amigo (chatgpt) :D y os comento para tenerlo claro.

https://learn.microsoft.com/es-es/me...tls-1-2-client

Neftali [Germán.Estévez] 04-10-2024 08:57:14

Cita:

Empezado por jguarda (Mensaje 557834)
supongo que el envío a veri*factu de facturas (simplificadas), habrá que meterlo en un tThread distinto al hilo principal xq sino el terminal se quedará tostado hasta que termine el envio y recepción del resultado. Creo que esto es un problema tanto para el cliente como para nosotros. Si alguien quiere su ticket inmediato después de haber por ejemplo comprado algo en una tienda, el de la tienda tiene que pasar esto inmediatamente a veri*factu, por lo que se van a liar una colas de gente en ciertos negocios tremendas, amen de los cuelgues por falta de comunicación en la hacienda publica, y se me ocurren otro montón de situaciones, en donde veo inviable esto que pretenden.

Cita:

Empezado por pablog2k (Mensaje 557837)
hola , el proceso de generar el ticket, con el QR, es independiente a subir ese ticket a verifactu. De hecho, si tienes un corte de internet en un comercio, puedes (y debes)seguir emitiendo tickets sin problemas, y si el cliente se queja de que el QR no lleva a ningún sitio, le dices que estás sin internet y que a lo largo del día estará operativo el QR.

[pablog2k] ya lo ha dicho.
Ambos procesos DEBEN ser independientes (generación y envío).
Lo lógico es montar una cola de envío que vaya enviando las facturas "a medida que pueda".
Si "se cae" internet, pues cuando vuelva las enviará todas.
Ya sea con un thread independiente, un programa independiente, un servicio,....

David M 04-10-2024 10:09:54

Novedades - Actualización de documentación
 
Buenas,

Han vuelto a publicar novedades:
https://www.agenciatributaria.es/AEA...olladores.html

Saludos,
David M.

Neftali [Germán.Estévez] 04-10-2024 10:12:06

Publicado esta madrugada (04/10/2024)

VERI*FACTU - Actualización de documentación en sistemas VERI*FACTU
: Se ha publicado una nueva versión de la documentación asociada a los sistemas VERI*FACTU:

- Diseño de registro (0.14.4), con nuevo campo RefExterna y modificaciones en bloque RemisionRequerimiento y actualización en listas de claves de régimen. Se actualizan los esquemas XSD en consonancia.
- Documento de Validaciones y errores (0.9.0), con modificaciones asociadas a cambios en tipos de impuesto y claves de régimen, además de incluir un enlace al listado de códigos de error. Los cambios se muestran resaltados en amarillo, se encuentran pendientes de publicación en el entorno de Pruebas Externas. Se estima que estarán disponibles en las próximas semanas.
- Documento de Especificaciones técnicas del código QR (0.4.5), con modificaciones en los mensajes para sistemas que emitan facturas no verifacables y códigos de error.

Ante cualquier duda/sugerencia y/o falta de corrección sobre la nueva información publicada, se recuerda el buzón de consultas técnicas de VERI*FACTU:
[email protected]


Actualizo el mensaje#1 y el FTP

seccion_31 04-10-2024 10:55:04

Sobre la falta de informacion sobre el comprobante WEB de la factura anulada, me dicen que lo van a consultar.


Informacion de la AEAT sobre presentar anulaciones sobre la misma factura:


Cita:

De forma detallada. Una secuencia correcta y válida es:

1. Se presenta inicialmente el alta de una factura que tiene este IDFactura:

<IDEmisorFactura>xxxxx</IDEmisorFactura>
<NumSerieFactura>F240003</NumSerieFactura>
<FechaExpedicionF>21-01-2024</FechaExpedicionFactura>

*Nota: Y además, el resto de información de la factura en sí, y del propio registro (encadenamiento, huella, etc.)

2. Posteriormente, se envía un registro de "Anulación", que apunta a ese mismo IDFactura:

<IDEmisorFacturaAnulada>xxxx</IDEmisorFacturaAnulada>
<NumSerieFacturaAnulada>F240003</NumSerieFacturaAnulada>
<FechaExpedicionFacturaAnulada>21-01-2024</FechaExpedicionFacturaAnulada>

*Nota: esto hace que esa factura pase a estar en estado anulada. El registro enviado tiene su propia huella, su propio encadenamiento con la factura anterior (que podría ser de alta o de anulación, cualquiera que haya sido expedida inmediatamente antes en ese SIF y para ese OEF). Remitiéndonos a la imagen que le adjuntamos antes, el resultado sería el que pone OK (7): "El registro remitido anula el registro de facturación de alta registrado dejando los nuevos datos recibidos."

3. Posteriormente, se envía otro registro de "Anulación", que apunta a ese mismo IDFactura:

<IDEmisorFacturaAnulada>xxx</IDEmisorFacturaAnulada>
<NumSerieFacturaAnulada>F240003</NumSerieFacturaAnulada>
<FechaExpedicionFacturaAnulada>21-01-2024</FechaExpedicionFacturaAnulada>


*Nota: esto actualiza los datos de esa factura, que seguirá estando anulada. El registro enviado tiene su propia huella, su propio encadenamiento con la factura anterior (que podría ser de alta o de anulación, cualquiera que haya sido expedida inmediatamente antes en ese SIF y para ese OEF). Remitiéndonos a la imagen que le adjuntamos antes, el resultado sería el que pone OK (8): "El registro remitido anula el registro de facturación de anulación registrado dejando los nuevos datos recibidos".

¿Por qué se admite esto? Porque —por ejemplo— podría ser necesario corregir la huella del registro de facturación que se envió en el punto 2, dado que ha sido "Aceptado con errores" porque hubo algún error en el encadenamiento. Así que se envía otro registro de anulación realizando un encadenamiento correcto.

Es decir, esta operación no debería ser algo habitual, pero sí que se contempla para corregir posibles datos erróneos de un registro de anulación previamente presentado (teniendo en cuenta los "pocos" datos erróneos que se pueden dar en un registro de anulación, dado que no incluye tanto detalle de la factura como los de Alta, pero sí que contiene otros datos que hacen referencia a los registros de facturación y que son susceptibles de enviarse mal —y así se permite corregirlos posteriormente—).

Ese es el motivo por el que se admite más de un registro de anulación sobre un mismo IDFactura. Esperamos haberle despejado esa duda.

bmfranky 04-10-2024 11:32:33

Listado codigos de errror.
 
Han puesto en linea un listado d los codigos de error devueltos, https://prewww2.aeat.es/static_files...res.properties
Código PHP:

********* Listado de códigos de error que provocan el rechazo del envío completo ********* 
4102 El XML no cumple el esquemaFalta informar campo obligatorio.
4103 Se ha producido un error inesperado al parsear el XML.
4104 Error en la cabecerael valor del campo NIF del bloque ObligadoEmision no está identificado.
4105 Error en la cabecerael valor del campo NIF del bloque Representante no está identificado.
4106 El formato de fecha es incorrecto.
4107 El NIF no está identificado en el censo de la AEAT.
4108 Error técnico al obtener el certificado.
4109 El formato del NIF es incorrecto.
4110 Error técnico al comprobar los apoderamientos.
4111 Error técnico al crear el trámite.
4112 El titular del certificado debe ser Obligado EmisiónColaborador SocialApoderado o Sucesor.
4113 El XML no cumple con el esquemase ha superado el límite permitido de registros para el bloque.
4114 El XML no cumple con el esquemase ha superado el límite máximo permitido de facturas a registrar.
4115 El valor del campo NIF del bloque ObligadoEmision es incorrecto.
4116 Error en la cabecerael campo NIF del bloque ObligadoEmision tiene un formato incorrecto.
4117 Error en la cabecerael campo NIF del bloque Representante tiene un formato incorrecto.
4118 Error técnicola dirección no se corresponde con el fichero de entrada.
4119 Error al informar caracteres cuya codificación no es UTF-8.
4120 
Error en la cabecerael valor del campo FechaFinVeriFactu es incorrectodebe ser 31-12-20XXdonde XX corresponde con el año actual o el anterior.
4121 Error en la cabecerael valor del campo Incidencia es incorrecto.
4122 Error en la cabecerael valor del campo RefRequerimiento es incorrecto.
4123 Error en la cabecerael valor del campo NIF del bloque Representante no está identificado en el censo de la AEAT.
4124 Error en la cabecerael valor del campo Nombre del bloque Representante no está identificado en el censo de la AEAT.
4125 Error en la cabecerael campo RefRequerimiento es obligatorio.
4126 Error en la cabecerael campo RefRequerimiento solo debe informarse en sistemas no VERIFACTU.
4127 Error en la cabecerala remisión voluntaria solo debe informarse en sistemas VERIFACTU.
4128 Error técnico en la recuperación del valor del Gestor de Tablas.
3500 Error técnico de base de datoserror en la integridad de la información.
3501 Error técnico de base de datos.
3502 La factura consultada para el suministro de pagos/cobros/inmuebles no existe.
3503 La factura especificada no pertenece al titular registrado en el sistema.

********* 
Listado de códigos de error que provocan el rechazo de la factura (o de la petición completa si el error se produce en la cabecera) ********* 
1100 Valor o tipo incorrecto del campo.
1101 El valor del campo CodigoPais es incorrecto.
1102 El valor del campo IDType es incorrecto.
1103 El valor del campo ID es incorrecto.
1104 El valor del campo NumSerieFactura es incorrecto.
1105 El valor del campo FechaExpedicionFactura es incorrecto.
1106 El valor del campo TipoFactura no está incluido en la lista de valores permitidos.
1107 El valor del campo TipoRectificativa es incorrecto.
1108 El NIF del IDEmisorFactura debe ser el mismo que el NIF del ObligadoEmision.
1109 El NIF no está identificado en el censo de la AEAT.
1110 El NIF no está identificado en el censo de la AEAT.
1111 El campo CodigoPais es obligatorio cuando IDType es distinto de 02.
1112 
El campo FechaExpedicionFactura es superior a la fecha actual.
1114 Si la factura es de tipo rectificativael campo TipoRectificativa debe tener valor.
1115 Si la factura no es de tipo rectificativael campo TipoRectificativa no debe tener valor.
1116 Debe informarse el campo FacturasSustituidas sólo si la factura es de tipo F3.
1117 Si la factura no es de tipo rectificativael bloque FacturasRectificadas no podrá venir informado.
1118 Si la factura es de tipo rectificativa por sustitución el bloque ImporteRectificacion es obligatorio.
1119 Si la factura no es de tipo rectificativa por sustitución el bloque ImporteRectificacion no debe tener valor.
1120 Valor de campo IDEmisorFactura del bloque IDFactura con tipo incorrecto.
1121 El campo ID no está identificado en el censo de la AEAT.
1122 El campo CodigoPais indicado no coincide con los dos primeros dígitos del identificador.
1123 El formato del NIF es incorrecto.
1124 El valor del campo TipoImpositivo no está incluido en la lista de valores permitidos.
1125 El valor del campo FechaOperacion tiene una fecha superior a la permitida.
1126 El valor del CodigoPais solo puede ser ES cuando el IDType sea 07 o 03. Si IDType es 07 el CodigoPais debe ser ES.
1127 El valor del campo TipoRecargoEquivalencia no está incluido en la lista de valores permitidos.
1128 No existe acuerdo de facturación.
1129 Error técnico al obtener el acuerdo de facturación.
1130 El campo NumSerieFactura contiene caracteres no permitidos.
1131 El valor del campo ID ha de ser el NIF de una persona física cuando el campo IDType tiene valor 07.
1132 
El valor del campo TipoImpositivo es incorrectoel valor informado solo es permitido para FechaOperacion o FechaExpedicionFactura inferior o igual al año 2012.
1133 
El valor del campo FechaExpedicionFactura no debe ser inferior a la fecha actual menos veinte años.
1134 El valor del campo FechaOperacion no debe ser inferior a la fecha actual menos veinte años.
1135 El valor del campo TipoRecargoEquivalencia es incorrectoel valor informado solo es permitido para FechaOperacion o FechaExpedicionFactura inferior o igual al año 2012.
1136 
El campo FacturaSimplificadaArticulos7273 solo acepta valores N o S.
1137 El campo Macrodato solo acepta valores N o S.
1138 El campo Macrodato solo debe ser informado con valor S si el valor de ImporteTotal es igual o superior a +-100.000.000
1139 
Si el campo ImporteTotal está informado y es igual o superior a +-100.000.000 el campo Macrodato debe estar informado con valor S.
1140 Los campos CuotaRepercutida y BaseImponibleACoste deben tener el mismo signo.
1142 El campo CuotaRepercutida tiene un valor incorrecto para el valor de los campos BaseImponibleOimporteNoSujeto y TipoImpositivo suministrados.
1143 Los campos CuotaRepercutida y BaseImponibleOimporteNoSujeto deben tener el mismo signo.
1144 El campo CuotaRepercutida tiene un valor incorrecto para el valor de los campos BaseImponibleACoste y TipoImpositivo suministrados.
1145 Formato de fecha incorrecto.
1146 Excepto para ClaveRegimen 14 o 15la FechaExpedicionFactura no puede ser anterior a la FechaOperacion.
1147 Si ClaveRegimen es 14FechaOperacion es obligatoria y debe ser posterior a la FechaExpedicionFactura.
1148 Si la ClaveRegimen es 14el campo TipoFactura debe ser F1R1R2R3 o R4.
1149 Si ClaveRegimen es 14el NIF de Destinatarios debe estar identificado en el censo de la AEAT y comenzar por PQS o V.
1150 Cuando TipoFactura sea F2 y no este informado NumRegistroAcuerdoFacturacion o FacturaSinIdentifDestinatarioArt61d no sea S el sumatorio de BaseImponibleOimporteNoSujeto y CuotaRepercutida de todas las líneas de detalle no podrá ser superior a 3.000.
1151 El campo GeneradoPorTercerosODestinatario solo acepta valores D o T.
1152 La fecha de expedicion de la factura no puede ser inferior al indicado en la Orden Ministerial.
1153 Valor del campo RechazoPrevio no válidosolo podrá incluirse el campo RechazoPrevio con valor X si se ha informado el campo Subsanacion y tiene el valor S.
1154 El NIF del emisor de la factura rectificada/sustitutiva no se ha podido identificar en el censo de la AEAT.
1155 Se está informando el bloque Tercero sin estar informado el campo EmitidaPorTerceroODestinatario.
1156 Para el bloque IDOtro y IDType 02el valor de TipoFactura es incorrecto.
1157 El valor de cupón solo puede ser S o N si está informadoEl valor de cupón sólo puede ser S si el tipo de factura es R1 o R5.
1158 Se está informando EmitidaPorTerceroODestinatariopero no se informa el bloque correspondiente
1159 Se está informando del bloque Tercero cuando se indica que se va a informar de Destinatario.
1160 Si el TipoImpositivo es 5%, sólo se admite TipoRecargoEquivalencia 0,5 o 0,62.
1161 
El valor del campo RechazoPrevio no es válidosólo podrá incluirse el campo RechazoPrevio con valor X si se ha informado el campo Subsanacion y tiene el valor S.
1162 Si el TipoImpositivo es 21%, sólo se admite TipoRecargoEquivalencia 5,2 ó 1,75.
1163 
Si el TipoImpositivo es 10%, sólo se admite TipoRecargoEquivalencia 1,4.
1164 
Si el TipoImpositivo es 4%, sólo se admite TipoRecargoEquivalencia 0,5.
1165 
Si el TipoImpositivo es 0entre el 1 de enero de 2023 y el 30 de septiembre de 2024sólo se admite TipoRecargoEquivalencia 0.
1166 
Si el TipoImpositivo es 2entre el 1 de octubre de 2024 y el 31 de diciembre de 2024sólo se admite TipoRecargoEquivalencia 0,26.
1167 
Si el TipoImpositivo es 5entre el 1 de julio de 2022 y el 31 de diciembre de 2022sólo se admite TipoRecargoEquivalencia 0,5.
1168 
Si el TipoImpositivo es 5entre el 1 de enero de 2023 y el 30 de septiembre de 2024sólo se admite TipoRecargoEquivalencia 0,62.
1169 
Si el TipoImpositivo es 7,5entre el 1 de octubre de 2024 y el 31 de diciembre de 2024sólo se admite TipoRecargoEquivalencia 1.
1170 
Si el TipoImpositivo es 0%, desde el 1 de octubre del 2024sólo se admite TipoRecargoEquivalencia 0,26.
1171 
El valor del campo Subsanacion o RechazoPrevio no se encuentra en los valores permitidos.
1172 El valor del campo NIF u ObligadoEmision son nulos.
1173 Sólo se permite que la fecha de operación sea superior a la fecha actual si los detalles del desglose son ClaveRegimen=  14 o 15.
1174 
El valor del campo FechaExpedicionFactura del bloque RegistroAnteriores incorrecto.
1175 El valor del campo NumSerieFactura del bloque RegistroAnterior es incorrecto.
1176 El valor de campo NIF del bloque SistemaInformatico es incorrecto.
1177 El valor de campo IdSistemaInformatico del bloque SistemaInformatico es incorrecto.
1178 Error en el bloque de Tercero.
1179 Error en el bloque de SistemaInformatico.
1180 Error en el bloque de Encadenamiento.
1181 El valor del campo CalificacionOperacion es incorrecto.
1182 El valor del campo OperacionExenta es incorrecto.
1183 El campo FacturaSimplificadaArticulos7273 solo se podrá rellenar con S si TipoFactura es de tipo F1 o F3 o R1 o R2 o R3 o R4.
1184 El campo FacturaSinIdentifDestinatarioArt61d solo acepta valores S o N.
1185 El campo FacturaSinIdentifDestinatarioArt61d solo se podrá rellenar con S si TipoFactura es de tipo F2 o R5.
1186 Si EmitidaPorTercerosODestinatario es igual a T el bloque Tercero será de cumplimentación obligatoria.
1187 Sólo se podrá cumplimentarse el bloque Tercero si el valor de EmitidaPorTercerosODestinatario es T.
1188 El NIF del bloque Tercero debe ser diferente al NIF del ObligadoEmision.
1189 Si TipoFactura es F1 o F3 o R1 o R2 o R3 o R4 el bloque Destinatarios tiene que estar cumplimentado.
1190 Si TipoFactura es F2 o R5 el bloque Destinatarios no puede estar cumplimentado.
1191 Si TipoFactura es R3 sólo se admitirá NIF o IDType 07.
1192 
Si TipoFactura es R2 sólo se admitirá NIF o IDType 07 o 02.
1193 
En el bloque Destinatarios si se identifica mediante NIFel NIF debe estar identificado y ser distinto del NIF ObligadoEmision.
1194 El valor del campo TipoImpositivo es incorrectoel valor informado solo es permitido para FechaOperacion o FechaExpedicionFactura posterior o igual a 1 de julio de 2022 e inferior o igual a 30 de septiembre de 2024.
1195 
Al menos uno de los dos campos OperacionExenta o CalificacionOperacion deben estar informados.
1196 OperacionExenta o CalificacionOperacion no pueden ser ambos informados ya que son excluyentes entre sí.
1197 Si CalificacionOperacion es S2 TipoFactura solo puede ser F1F3R1R2R3 y R4.
1198 Si CalificacionOperacion es S2 TipoImpositivo y CuotaRepercutida deberan tener valor 0.
1199 
Si ClaveRegimen es 01 no pueden marcarse las OperacionExenta E2E3.
1200 Si ClaveRegimen es 03 CalificacionOperacion sólo puede ser S1.
1201 Si ClaveRegimen es 04 CalificacionOperacion sólo puede ser S2 o bien OperacionExenta.
1202 Si ClaveRegimen es 06 TipoFactura no puede ser F2F3R5 y BaseImponibleACoste debe estar cumplimentado.
1203 Si ClaveRegimen es 07 OperacionExenta no puede ser E2E3E4 y E5 o CalificacionOperacion no puede ser S2N1N2.
1205 Si ClaveRegimen es 10 CalificacionOperacion tiene que ser N1TipoFactura F1 y Destinatarios estar identificada mediante NIF.
1206 Si ClaveRegimen es 11 TipoImpositivo ha de ser 21%.
1207 La CuotaRepercutida solo podrá ser distinta de 0 si CalificacionOperacion es S1.
1208 Si CalificacionOperacion es S1 y ClaveRegimen es distinto de 06TipoImpositivo y CuotaRepercutida son obligatorios.
1209 Si CalificacionOperacion es S1 y ClaveRegimen es 06TipoImpositivo y CuotaRepercutida son obligatorios.
1210 El campo ImporteTotal tiene un valor incorrecto para el valor de los campos BaseImponibleOimporteNoSujetoCuotaRepercutida y CuotaRecargoEquivalencia suministrados.
1211 El bloque Tercero no puede estar identificado con IDType=07 (no censado).
1212 El campo TipoUsoPosibleSoloVerifactu solo acepta valores N o S.
1213 El campo TipoUsoPosibleMultiOT solo acepta valores N o S.
1214 El campo NumeroOTAlta debe ser númerico positivo de 4 posiciones.
1215 Error en el bloque de ObligadoEmision.
1216 El campo CuotaTotal tiene un valor incorrecto para el valor de los campos CuotaRepercutida y CuotaRecargoEquivalencia suministrados.
1217 Error identificando el IDEmisorFactura.
1218 El valor del campo Impuesto es incorrecto.
1219 El valor del campo IDEmisorFactura es incorrecto.
1220 El valor del campo NombreSistemaInformatico es incorrecto.
1221 El valor del campo IDType del sistema informático es incorrecto.
1222 El valor del campo ID del bloque IDOtro es incorrecto.
1223 En el bloque SistemaInformatico si se cumplimenta NIFno deberá existir la agrupación IDOtro y viceversapero es obligatorio que se cumplimente uno de los dos.
1224 Si se informa el campo GeneradoPor deberá existir la agrupación Generador y viceversa.
1225 El valor del campo GeneradoPor es incorrecto.
1226 El campo IndicadorMultiplesOT solo acepta valores N o S.
1227 Si el campo GeneradoPor es igual a E debe estar relleno el campo NIF del bloque Generador.
1228 En el bloque Generador si se cumplimenta NIFno deberá existir la agrupación IDOtro y viceversapero es obligatorio que se cumplimente uno de los dos.
1229 Si el valor de GeneradoPor es igual a T el valor del campo IDType del bloque Generador no debe ser 07 (No censado).
1230 Si el valor de GeneradoPor es igual a D y el CodigoPais tiene valor ESel valor del campo IDType del bloque Generador debe ser 03 o 07.
1231 
El valor del campo IDType del bloque Generador es incorrecto.
1232 Si se identifica a través de la agrupación IDOtro y CodigoPais tiene valor ESel campo IDType debe valer 03.
1233 
Si se identifica a través de la agrupación IDOtro y CodigoPais tiene valor ESel campo IDType debe valer 07.
1234 
Si se identifica a través de la agrupación IDOtro y CodigoPais tiene valor ESel campo IDType debe valer 03 o 07.
1235 
El valor del campo TipoImpositivo es incorrectoel valor informado sólo es permitido para FechaOperacion o FechaExpedicionFactura posterior o igual a 1 de octubre de 2024 e inferior o igual a 31 de diciembre de 2024.
1236 
El valor del campo TipoImpositivo es incorrectoel valor informado solo es permitido para FechaOperacion o FechaExpedicionFactura posterior o igual a 1 de octubre de 2024 e inferior o igual a 31 de diciembre de 2024.
1237 
El valor del campo CalificacionOperacion está informado como N1 o N2 y el impuesto es IVANo se puede informar de los campos TipoImpositivo (excepto con ClaveRegimen 17), CuotaRepercutida (excepto con ClaveRegimen 17), TipoRecargoEquivalencia y CuotaRecargoEquivalencia.
1238 Si la operacion es exenta no se puede informar ninguno de los campos TipoImpositivoCuotaRepercutidaTipoRecargoEquivalencia y CuotaRecargoEquivalencia.
1239 Error en el bloque Destinatario.
1240 Error en el bloque de IdEmisorFactura.
1241 Error técnico al obtener el SistemaInformatico.
1242 No existe el sistema informático
1243 Error técnico al obtener el cálculo de la fecha del huso horario.
1244 El campo FechaHoraHusoGenRegistro tiene un formato incorrecto.
1245 Si el campo Impuesto está vacío o tiene valor 01 o 03 el campo ClaveRegimen debe de estar cumplimentado.
1246 El valor del campo ClaveRegimen es incorrecto.
1247 El valor del campo TipoHuella es incorrecto
1248 El valor del campo Periodo es incorrecto.
1249 El valor del campo IndicadorRepresentante tiene un valor incorrecto.
1250 El valor de fecha desde debe ser menor que el valor de fecha hasta en RangoFechaExpedicion
1251 El valor del campo IdVersion tiene un valor incorrecto
1252 
Si ClaveRegimen es 08 el campo CalificacionOperacion tiene que ser N2 e ir siempre informado.
1253 El valor del campo RefExterna tiene un valor incorrecto.
1254 Si FechaOperacion (FechaExpedicionFactura si no se informa FechaOperaciones anterior a 01/01/2021 no se permite el valor 'XI' para Identificaciones NIF-IVA
1255 
Si FechaOperacion (FechaExpedicionFactura si no se informa FechaOperaciones mayor o igual que 01/02/2021 no se permite el valor 'GB' para Identificaciones NIF-IVA
3000 
Registro de facturación duplicado.
3001 El registro de facturación ya ha sido dado de baja.
3002 No existe el registro de facturación.
3003 El presentador no tiene los permisos necesarios para actualizar este registro de facturación.

********* 
Listado de códigos de error que producen la aceptación del registro de facturación en el sistema (posteriormente deben ser subsanados) ********* 
2000 El cálculo de la huella suministrada es incorrecta.
2001 El NIF del bloque Destinatarios no está identificado en el censo de la AEAT.
2002 La longitud de huella del registro anterior no cumple con las especificaciones.
2003 El contenido de la huella del registro anterior no cumple con las especificaciones.
2004 El valor del campo FechaHoraHusoGenRegistro debe ser la fecha actual del sistema de la AEATadmitiéndose un margen de error de 5 minutos.
2005 El campo ImporteTotal tiene un valor incorrecto para el valor de los campos BaseImponibleOimporteNoSujetoCuotaRepercutida y CuotaRecargoEquivalencia suministrados.
2006 El campo CuotaTotal tiene un valor incorrecto para el valor de los campos CuotaRepercutida y CuotaRecargoEquivalencia suministrados.

********* 
Listado de códigos de error ajenos al servicio web (Formulario de facturación) ********* 
5000 Parámetro obligatorio y contiene NULL.
5001 El campo TipoFactura no tiene un valor correcto.
5002 Se deben informar todos los datos de pago si se informa alguno de ellos.
5003 La cuenta de pago debe estar rellena si se informa como forma de pago Transferencia o Recibo Domiciliado.
5004 La cuenta de pago no debe estar rellena si no se informa como forma de pago Transferencia o Recibo Domiciliado.
5005 Error al dar de alta la facturaFactura duplicada
5006 Se deben informar todos los campos del bloque Datos FacturasRectificadas si se informa alguno de ellos.
5007 Usuario no autorizado a realizar esta acción


cdlrubia 04-10-2024 11:57:41

Verifactu facturas B2C
 
Buenos días compañeros.

Tengo un cacao muy grande en la cabeza con respecto a si tengo que enviar todos los tiques que haga nuestra máquina o no.
Nosotros hacemos balanzas de supermercado que son capaces de cobrarte, por lo tanto de emitir facturas simplificadas a particulares.

Tengo entendido que las facturas B2C no tienen la obligación de ser presentadas en formato electrónico a hacienda. Pero por otro lado en el reglamento de Verifactu pone que se aplica a todas las facturas, pero Verifactu no deja de ser un sistema de factura electrónica.... ¿entonces las facturas B2C sí están obligadas o no están obligadas a presentarse por sistema Verifactu? Porque también te dicen que hay un sistema No Verifactu..... He lanzado la consulta a hacienda pero unos te dicen que no, otros te dicen que sí.....

Muchas gracias

Franche 04-10-2024 12:40:58

Entonces si envio una factura y me devuelve un error , por ejemplo con el NIF del cliente, ¿puedo editar la factura, guardarla y volver a enviar ?

bmfranky 04-10-2024 12:44:25

Cita:

Empezado por Franche (Mensaje 557854)
Entonces si envio una factura y me devuelve un error , por ejemplo con el NIF del cliente, ¿puedo editar la factura, guardarla y volver a enviar ?

Si, pero has de volver a enviarla codificando alta por rechazo.

rci 04-10-2024 13:11:39

Se puede modificar una factura???
 
Cita:

Empezado por Franche (Mensaje 557854)
Entonces si envio una factura y me devuelve un error , por ejemplo con el NIF del cliente, ¿puedo editar la factura, guardarla y volver a enviar ?

Cita:

Empezado por bmfranky (Mensaje 557855)
Si, pero has de volver a enviarla codificando alta por rechazo.

bmfranky estás seguro?

Alguien piensa que NO se puede modificar una factura una vez salvada? Creia que era la base de la ley anti fraude pero a lo mejor me confundo.

Por aquí venia mi duda en un post anterior que quedó sin respuesta:

Cita:

Empezado por rci (Mensaje 557814)
Yo tengo una duda sobre el caso "incorrecta".
Entiendo que si al enviar hay algún error en la conexión, en los servidores de AEAT, ... con volver a intentar el envío ya se soluciona porque la factura ya está bien.
Pero en el caso que AEAT contesta y rechaza, es porque o tienes mal el XML o hay algún error no aceptable en la factura y debes corregirlo.
Bien pues aquí tengo la duda, en teoría, una factura no la puedes modificar no?
Si es un error del programa que ha generado mal el xml pues supongo que modificas el programa urgentemente para que genere bien el xml y lo vuelves a enviar.
Pero si lo que está mal son los datos de la factura?
Ya se, no tendría que permitir que un usuario guarde una factura con datos mal pero... y si pasa?
Creo que no puedo permitir al usuario modificar la factura para cambiar alguna información incorrecta... no?

O me estoy liando?

Muchas gracias!


MUCHAS GRACIAS !

bmfranky 04-10-2024 13:15:15

Cita:

Empezado por rci (Mensaje 557857)
bmfranky estás seguro?

Alguien piensa que NO se puede modificar una factura una vez salvada? Creia que era la base de la ley anti fraude pero a lo mejor me confundo.

Por aquí venia mi duda en un post anterior que quedó sin respuesta:




MUCHAS GRACIAS !

Cita:

ALTA POR RECHAZO
· Al ta por recha zo del regi s tro de fa ctura ci ón de a lta
i ni cia l (y que, por tanto, no exis te a ún en l a AEAT).


· Es l a s ubs a na ción de da tos de un regi s tro de
fa ctura ci ón de a l ta i ni ci a l, cua ndo no s e exi ge l a
emis i ón de una fa ctura rectifica tiva (u otro
meca ni s mo contempl a do en el Regl a mento de
Fa ctura ci ón).


· <Subs a na ci on>=S
· <Recha zoPrevi o>=X · VERI*FACTU


· La cla ve úni ca del regis tro de fa ctura ci ón no
debe exi s tir previa mente en la AEAT.


· El a lta previ a del regis tro de fa ctura ción fue
recha za da .


Alta del regis tro de fa ctura ci ón con los
nuevos da to
Interpreto que seria este caso.

Delphier 04-10-2024 13:36:45

Componente derivado de HTTRIO para facilitar los envíos a verifactu.
 
Os lo pongo , Por si le sirve a alguien como Idea o como ayuda.


El componente Requiere Delphi 12 , me baso en enviar XML preparados previamente almacenados con un certificado también almacenado en el software.

Bàsicamente le cargamos el certificado , el password un XML y lo enviamos.



Código:


unit VerifactuHTTPRIO;

interface

uses
  System.SysUtils,
  System.Classes,
  Soap.Rio,
  Dialogs,
  Xml.XMLDoc,
  Xml.XMLIntf,
  Soap.SOAPHTTPClient,
  Soap.SOAPHTTPTrans;



type

  TBeforeExecuteEvent = procedure(const MethodName: string; SOAPRequest: TStream) of object;
  TAfterExecuteEvent  = procedure(const MethodName: string; SOAPResponse: TStream) of object;

  TVerifactuHTTPRIO = class(THTTPRIO)


  private
    { Private declarations }
    FCertificate    : TMemoryStream;
    FCertPassword  : String;
    FXMLRequest    : TStringList;
    FXMLResponse    : TStringList;
    FOnAfterExecute : TAfterExecuteEvent;
    FOnBeforeExecute: TBeforeExecuteEvent;
    function StreamToString(aStream: TStream): string;
  protected
    { Protected declarations }
    procedure DoAfterExecute(const MethodName: string; Response: TStream); override;
    procedure DoBeforeExecute(const MethodName: string; Request: TStream); override;
  public
    { Public declarations }
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    { Published declarations }
    property OnAfterExecute: TAfterExecuteEvent read FOnAfterExecute write FOnAfterExecute;
    property OnBeforeExecute: TBeforeExecuteEvent read FOnBeforeExecute write FOnBeforeExecute;
    property Certificate  : TMemoryStream  read FCertificate write FCertificate;
    property CertPassword  : String  read FCertPassword write FCertPassword;
    property XMLRequest    : TStringList  read FXMLRequest write FXMLRequest;
    property XMLResponse  : TStringList  read FXMLResponse write FXMLResponse;

  end;

procedure Register;

implementation


constructor TVerifactuHTTPRIO.Create(AOwner: TComponent);
Begin
  Inherited Create(Aowner);

  FCertificate := TMemoryStream.Create;
  FXMLRequest  := TStringList.Create;
  FXMLResponse := TStringList.Create;

End;

destructor TVerifactuHTTPRIO.Destroy;
begin

  FCertificate.Free;
  FXMLRequest.Free;
  FXMLResponse.Free;

  inherited;
end;


procedure TVerifactuHTTPRIO.DoBeforeExecute(const MethodName: string; Request: TStream);
begin

  // Si hay XMLRequest la enviamos
  if FXMLRequest.Count > 0 then
  Begin
    Request.Position := 0; // Importante
    FXMLRequest.SaveToStream(Request);
  End;


  // Cetificado
  HTTPWebNode.ClientCertificate.Stream  := Certificate;
  HTTPWebNode.ClientCertificate.Password := CertPassword;


  if Assigned(FOnBeforeExecute) then
  begin
    FOnBeforeExecute(MethodName, Request);
    Request.Position := 0;
  end;

end;

procedure TVerifactuHTTPRIO.DoAfterExecute(const MethodName: string; Response: TStream);
var RespuestaXML : String;
begin

  // Asignamos la respuesta y Maquillamos XML
  RespuestaXML := StreamToString(Response);

  RespuestaXML := Xml.XMLDoc.FormatXMLData(RespuestaXML);

  FXMLResponse.Text := RespuestaXML;


  if Assigned(FOnAfterExecute) then
  begin
    FOnAfterExecute(MethodName, Response);
    Response.Position := 0;
  end;

end;


function TVerifactuHTTPRIO.StreamToString(aStream: TStream): string;
var
  SS: TStringStream;
begin
  if aStream <> nil then
  begin
    SS := TStringStream.Create('');
    try
      SS.CopyFrom(aStream, 0);
      Result := SS.DataString;
    finally
      SS.Free;
    end;
  end else
  begin
    Result := '';
  end;
end;


procedure Register;
begin
  RegisterComponents('Componentes Verifactu', [TVerifactuHTTPRIO]);
end;

end.


Como Usar:


Código:


procedure TFormSoap.Button2Click(Sender: TObject);
var direccion_envio : String;
begin


direccion_envio := 'https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP';

// Cargar el certificado
VerifactuRIO.Certificate.LoadFromFile('MiCertificado.pfx');
VerifactuRIO.CertPassword := '1234';


// Cargar el XMl  enviar , de fichero o de texto
VerifactuRIO.XMLRequest.LoadFromFile('XML_Envio_Verifactu.xml');

// Llamada
GetsfPortTypeVerifactu(False, direccion_envio, VerifactuRIO).RegFactuSistemaFacturacion(nil);

// Aquí tenemnos la respues
VerifactuRIO.XMLResponse.Text;

end;


Un Saludo

Neftali [Germán.Estévez] 04-10-2024 13:51:59

Cita:

Empezado por Delphier (Mensaje 557859)
Os lo pongo , Por si le sirve a alguien como Idea o como ayuda.
El componente Requiere Delphi 12 , me baso en enviar XML preparados previamente almacenados con un certificado también almacenado en el software.
Bàsicamente le cargamos el certificado , el password un XML y lo enviamos.


Gracias por compartirlo.
Lo subo al FTP y actualizo el mensaje#2 con códigos y demás....

antoine0 04-10-2024 18:03:12

Cita:

Empezado por cdlrubia (Mensaje 557852)
Tengo un cacao muy grande en la cabeza con respecto a si tengo que enviar todos los tiques que haga nuestra máquina o no.

La respuesta es sí.

Cita:

Nosotros hacemos balanzas de supermercado que son capaces de cobrarte, por lo tanto de emitir facturas simplificadas a particulares.

Tengo entendido que las facturas B2C no tienen la obligación de ser presentadas en formato electrónico a hacienda. Pero por otro lado en el reglamento de Verifactu pone que se aplica a todas las facturas, pero Verifactu no deja de ser un sistema de factura electrónica.... ¿entonces las facturas B2C sí están obligadas o no están obligadas a presentarse por sistema Verifactu? Porque también te dicen que hay un sistema No Verifactu..... He lanzado la consulta a hacienda pero unos te dicen que no, otros te dicen que sí.....
Consulta el mensaje #557126 dónde he contestado a una pregunta muy similar por la confusión que hay en este tema en general. Creo que te va a ayudar mucho a aclararte.

edari 04-10-2024 18:08:41

Buenas a todos,

Tengo una duda muy básica...


Voy a intentar la semana que viene hacer mi primera subida a pruebas y no tengo claro si en el xml la parte inicial que hace referencia al sopaenv es indiferente de si el fichero va al servidor de pruebas o al real. Esta parte concretamente:

<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>


Tengo que sustituir ahí los www2.agenciatributaria.gob.es por prewww2.aeat.es dentro del xml según vaya a un lado u otro o el xml siempre es igual


Gracias





antoine0 04-10-2024 18:42:00

Cita:

Empezado por edari (Mensaje 557863)
Tengo una duda muy básica... Voy a intentar la semana que viene hacer mi primera subida a pruebas y no tengo claro si en el xml la parte inicial que hace referencia al sopaenv es indiferente de si el fichero va al servidor de pruebas o al real. Esta parte concretamente:
Código:

<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">

Tengo que sustituir ahí los www2.agenciatributaria.gob.es por prewww2.aeat.es dentro del xml según vaya a un lado u otro o el xml siempre es igual

No, debes usar las URLs de producción aunque estas enviando al servidor de pruebas.
Y la verdad es un alivio que siga así.

La contrapartida vendrá más tarde: dado que no hay control de versión en las URL actuales, cuando Hacienda querrá hacer una nueva versión, deberán crear nuevas URL (posiblemente con un indicador de versión) y habilitarlas primero en entorno de test y más tarde en producción. Pero no estamos todavía allá. :rolleyes:

edari 04-10-2024 18:56:05

Cita:

Empezado por antoine0 (Mensaje 557865)
No, debes usar las URLs de producción aunque estas enviando al servidor de pruebas.
Y la verdad es un alivio que siga así.

La contrapartida vendrá más tarde: dado que no hay control de versión en las URL actuales, cuando Hacienda querrá hacer una nueva versión, deberán crear nuevas URL (posiblemente con un indicador de versión) y habilitarlas primero en entorno de test y más tarde en producción. Pero no estamos todavía allá. :rolleyes:



Aclarado lo del fichero.


Y en el comando que use para subir el xml ahí sí tengo que poner, hoy por hoy, las https://prewww...no?



Gracias antoine0,

Matorral 05-10-2024 10:25:50

Buenos días¡¡

Primero agradeceros a todos el gran esfuerzo.

a alguien más le esta pasando esto ?

Código:

Error al realizar el envío; (ESOAPHTTPException)-Service Unavailable (503) - 'https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP'
se ha caído el servidor de pruebas o solo funciona en horario laboral ? :)

:(

CarlosArjonomia 05-10-2024 10:33:37

Cita:

Empezado por Matorral (Mensaje 557875)
Buenos días¡¡

Primero agradeceros a todos el gran esfuerzo.

a alguien más le esta pasando esto ?

Código:

Error al realizar el envío; (ESOAPHTTPException)-Service Unavailable (503) - 'https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP'
se ha caído el servidor de pruebas o solo funciona en horario laboral ? :)

:(

A mí tampoco me funciona.

delphiGar 05-10-2024 10:34:26

Cita:

Empezado por Matorral (Mensaje 557875)
Buenos días¡¡

Primero agradeceros a todos el gran esfuerzo.

a alguien más le esta pasando esto ?

Código:

Error al realizar el envío; (ESOAPHTTPException)-Service Unavailable (503) - 'https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP'
se ha caído el servidor de pruebas o solo funciona en horario laboral ? :)

:(

lo acabo de probar y efectivamente esta OUT :D

ermendalenda 06-10-2024 10:29:24

Prueba
 
Buenos días, aún me queda para llegar a la parte de los envíos, pero hay una cosa que me preocupa y pido que alguien por favor haga la prueba (cuando rehabiliten el servicio)
1-Emitir/enviar 1 factura simplificada
2-Emitir/enviar una factura sustitutiva/canje de la simplificada
3-Anular/enviar la sustitutiva
4-Emitir/enviar nueva sustitutiva/canje sobre la primera factura simplificada(que se supone se ha liberado)
5-¿Da ok o da ko(error)?
6-por otro lado(debería devolver error si se intenta mandar una sustitutiva que apunte a alguna simplificada que ya se ha emitido sustitutiva y no ha sido anulada(es así?)
Gracias

espinete 06-10-2024 21:04:39

Dudas con algunos campos del XML
 
Hay algunos campos opcionales en el XML de "Registro Facturación Alta" que me gustaría corroborar por si me estoy equivocando...

- "FacturaSimplificadaArt7273": Entiendo que cuando se trate de facturas simplificadas siempre hay que poner (S)? No era más sencillo simplemente en TipoFactura poner F2 y punto? O es que el campo "FacturaSimplificadaArt7273" es para otra cosa?
- "FacturaSinIdentifDestinatarioArt61d": Cuando no tengamos los datos del destinatario, Y no sea una simplificada (las simplificadas no requieren destinatario), hay que poner (S) aquí?

Es que llamar a estos dos campos con el nombre del artículo (Art7273 y Art61d) me mosquea...

Otros campos raros son:
- "Macrodato"
- "NumRegistroAcuerdoFacturacion": ni p___ idea
- "IdAcuerdoSistemaInformatico": ni idea tampoco

El último campo, "Signature", entiendo que es la firma del XML pero solo para cuando se trate de No-Verifactu. Del No-Verifactu aún no me he preocupado porque considero esto más importante, por ahora.

antoine0 07-10-2024 09:40:01

Cita:

Empezado por espinete (Mensaje 557900)
- "FacturaSimplificadaArt7273": Entiendo que cuando se trate de facturas simplificadas siempre hay que poner (S)? No era más sencillo simplemente en TipoFactura poner F2 y punto? O es que el campo "FacturaSimplificadaArt7273" es para otra cosa?

Las facturas artículos 7.2 y 7.3 son facturas simplificadas (antiguos tickets) que llevan nombre, NIF y domicilio del destinatario. No es el caso habitual (dónde las facturas simplificadas son anónimas).

sglorka 07-10-2024 09:51:59

Cita:

Empezado por espinete (Mensaje 557900)
Hay algunos campos opcionales en el XML de "Registro Facturación Alta" que me gustaría corroborar por si me estoy equivocando...

- "FacturaSimplificadaArt7273": Entiendo que cuando se trate de facturas simplificadas siempre hay que poner (S)? No era más sencillo simplemente en TipoFactura poner F2 y punto? O es que el campo "FacturaSimplificadaArt7273" es para otra cosa?
- "FacturaSinIdentifDestinatarioArt61d": Cuando no tengamos los datos del destinatario, Y no sea una simplificada (las simplificadas no requieren destinatario), hay que poner (S) aquí?

Es que llamar a estos dos campos con el nombre del artículo (Art7273 y Art61d) me mosquea...

Otros campos raros son:
- "Macrodato"
- "NumRegistroAcuerdoFacturacion": ni p___ idea
- "IdAcuerdoSistemaInformatico": ni idea tampoco

El último campo, "Signature", entiendo que es la firma del XML pero solo para cuando se trate de No-Verifactu. Del No-Verifactu aún no me he preocupado porque considero esto más importante, por ahora.

FacturaSimplificadaArt7273", este campo es opcional y si lo pones a SÍ indica que la factura es completa (F1) pero no se identifica al destinatario, por ejemplo en ventas a la Unión Europea a un cliente final no empresario o profesional.

FacturaSinIdentifDestinatarioArt61d, este campo es opcional, si lo pones a SÍ, significa que vas a emitir una Factura Simplificada con Identificación de Destinatario por que así te lo ha exigido éste.

Macrodato si el importe de la factura excede del valor absoluto de 100.000.000,00 debes poner SÍ, básicamente controla que no te has equivocado con ese importe que has informado

NumRegistroAcuerdoFacturacion cuando existe, tienen que ver con la posibilidad de emisión de facturas simplificadas por importes superiores a 3000€

IdAcuerdoSistemaInformatico tiene que ver con un software homologado por la administración tributaria para realizar una tarea específica


La franja horaria es GMT +2. Ahora son las 06:11:37.

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