![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Cita:
|
|
#2
|
|||
|
|||
|
Actualización y enlaces correctos al API-Verifactu y DSK para Delphi
API REST para VeriFactu: SDK y ejemplos para Delphi (7 y 10)
Hola a todos, Quería compartir con la comunidad una herramienta que hemos estado desarrollando para facilitar el dolor de cabeza que supone la integración con el sistema VeriFactu de la AEAT. Se trata de un microservicio/API REST diseñado para abstraer toda la complejidad del formato, el encadenamiento criptográfico (SHA-256) y el envío a Hacienda, permitiendo que cualquier aplicación (ERP, TPV, etc.) pueda integrarse de forma muy sencilla enviando simples peticiones JSON. Como sabemos que en el mundo Delphi, especialmente en versiones más antiguas como Delphi 7, lidiar con las últimas normativas criptográficas o las conexiones TLS 1.2/1.3 puede requerir componentes de terceros o generar muchos problemas, hemos preparado un SDK integrado específico para Delphi. Hemos subido a GitHub toda la documentación y ejemplos funcionales tanto para Delphi 7 (muy útil para software legacy) como para Delphi 10. Repositorio oficial (Información, guías y demos): https://github.com/SystemsFGH/API-Verifactu-SystemsFGH Descarga directa de los SDK para Delphi 7 y 10: Descargar Delphi.DSK.zip ¿Qué ventajas aporta utilizar la API desde Delphi?
Para que veáis que no exageramos cuando decimos que es fácil de implementar, os dejo aquí el código literal que viene en nuestro SDK de ejemplo demostrando el alta y confirmación completo en una docena de líneas: Ejemplos de la Guía de Integración: Código:
{ ==============================================================================
SECCIÓN: EJEMPLOS DE LA GUÍA DE INTEGRACIÓN
==============================================================================
Los siguientes métodos se corresponden fielmente con los ejemplos de código
documentados en la "Guía de Integración VeriFactu para Delphi 7".
Están aquí para demostrar que el código de la documentación es funcional y compilable.
============================================================================== }
{ ------------------------------------------------------------------------------
7. Ejemplo de Integración: Alta Síncrona (Todo en Uno)
------------------------------------------------------------------------------ }
procedure TFrmMainVF.EmitirAltaSincrona_DemoDoc;
var
Cfg: TVfDemoConfig;
Engine: TVFEngine;
Res: TVFIngestaAckResult;
MiJson: string;
begin
// 1. Configurar
// Cfg.ApiBaseUrl := 'http://localhost:8000';
// Cfg.TimeoutMs := 60000;
// Adaptado para la Demo: Tomamos valores de la UI
Cfg.ApiBaseUrl := Trim(edBaseUrl.Text);
Cfg.Token := Trim(edToken.Text);
Cfg.NifEmisor := Trim(edNif.Text);
Cfg.TimeoutMs := StrToIntDef(edTimeoutMs.Text, 60000);
Engine := TVFEngine.Create(Cfg);
try
// MiJson := '{ ... datos factura ... }';
MiJson := MemoJson.Lines.Text;
if Trim(MiJson) = '' then
begin
Log('DemoDoc: JSON vacío');
Exit;
end;
// 2. Ejecutar Ciclo Completo (Ingesta -> Polling -> ACK)
Res := Engine.IngestaYConfirmacion(MiJson, Cfg.TimeoutMs, 200, 50, True);
if Res.Timeout then
Log('Factura enviada al Backend, pero la AEAT tarda en responder. Consulte "Pendientes" más tarde.')
else if Res.AckHecho then
begin
// 3. Éxito: Guardar Huella y QR en base de datos local
// GuardarEnBD(Res.Pendiente.Huella, Res.Pendiente.UrlQrVerifactu);
// PRO: Podemos imprimir el ticket con QR AHORA MISMO
// ImprimirTicket(Res.Pendiente.UrlQrVerifactu);
Log('DemoDoc: Éxito Síncrono. Huella: ' + Res.Pendiente.Huella);
// Mostrar QR usando utilidades de la demo
ShowQrFromFields(Res.Pendiente.QrVerifactu, Res.Pendiente.UrlQrVerifactu);
end
else
Log('Error AEAT: ' + Res.ErrorMsg);
finally
Engine.Free;
end;
end;
{ ------------------------------------------------------------------------------
8.1. Ingesta Asíncrona (Solo Envío)
------------------------------------------------------------------------------ }
procedure TFrmMainVF.EnviarFacturaAsync_DemoDoc;
var
IngestaResp: TVFIngestaResponse;
Cfg: TVfDemoConfig;
Engine: TVFEngine;
MiJson: string;
begin
// Configuración desde UI
Cfg.ApiBaseUrl := Trim(edBaseUrl.Text);
Cfg.Token := Trim(edToken.Text);
Cfg.NifEmisor := Trim(edNif.Text);
Engine := TVFEngine.Create(Cfg);
try
MiJson := MemoJson.Lines.Text;
// Solo enviamos al Backend, reciben OK (guardado) y nos vamos.
IngestaResp := Engine.IngestaFromJson(MiJson);
if IngestaResp.Ok then
Log('Factura encolada. ID: ' + IngestaResp.Id)
else
Log('Error al encolar: ' + IngestaResp.ErrorMsg);
finally
Engine.Free;
end;
end;
{ ------------------------------------------------------------------------------
8.2. Recuperación de Pendientes (Polling de Confirmaciones)
------------------------------------------------------------------------------ }
procedure TFrmMainVF.ProcesarColaPendientes_DemoDoc;
var
Cfg: TVfDemoConfig;
Engine: TVFEngine;
Pend: TVFPendientesResponse;
// Ack: TVFAckResponse;
I: Integer;
Item: TVFPendienteItem;
begin
// Configuración desde UI
Cfg.ApiBaseUrl := Trim(edBaseUrl.Text);
Cfg.Token := Trim(edToken.Text);
Cfg.NifEmisor := Trim(edNif.Text);
Engine := TVFEngine.Create(Cfg);
try
// 2. Recuperar las ultimas 50 facturas pendientes de ACK
Pend := Engine.GetPendientes(50);
if not Pend.Ok then Exit;
for I := 0 to Length(Pend.Items) - 1 do
begin
Item := Pend.Items[i];
// Status 0..3: Respuestas Finales de la AEAT
if (Item.Status >= 0) and (Item.Status <= 3) then
begin
try
// A. Procesar respuesta en el ERP
// MiBD.ActualizarEstado(Item.IdEnvio, Item.Status, ...);
Log('DemoDoc: Procesando Item Pendiente ID=' + IntToStr(Item.IdEnvio) + ' Status=' + IntToStr(Item.Status));
// B. Confirmar recepción (ACK)
Engine.AckIndice(Item.IndiceLog);
except
// Si falla mi BD local, NO hago ACK para que vuelva a salir luego
Log('Error guardando en BD local, reintentaremos luego.');
end;
end;
end;
finally
Engine.Free;
end;
end;
Cualquier feedback, sugerencia, pull request o duda es bienvenida por este hilo. ¡Un saludo ! |
|
#3
|
||||
|
||||
![]() ![]() ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#4
|
|||
|
|||
|
Novedades en la documentación
¡Hola a todos de nuevo!
Creo que algunos ya habeis mirado el servicio que he creado para simplificar la integración de VeriFactu y lidiar con los envíos a la AEAT desde componentes legacy de Delphi. Hoy no vengo a hablar del Micro Server en sí, sino de una **novedad importante a nivel de documentación técnica**. Sabemos que uno de los mayores dolores de cabeza para los desarrolladores cuando integramos pasarelas empresariales/gubernamentales sonde a veces hay documentaciones pobres, muros horribles de texto y falta de ejemplos reales en nuestro lenguaje. Dándole una vuelta de tuerca a eso, **hemos reestructurado radicalmente cómo documentamos nuestros SDKs**. En vez de PDFs estáticos corporativos, hemos publicado una nueva remesa de guías técnicas diseñadas para copiar, pegar y entender de un vistazo: con el código fuente desplegable nativo en Pascal y demostraciones visuales. Os dejo aquí los enlaces directos a las nuevas documentaciones para nuestro lenguaje: 👉 SDK de integración estructurado para Delphi 7: https://www.systemsfgh.com/documentation/sdk_delphi7.md 👉 SDK de integración estructurado para Delphi 10 (y superiores): https://www.systemsfgh.com/documenta...dk_delphi10.md Para ilustrar esta nueva filosofía de "cero cajas negras", hemos montado unas demostraciones de arquitectura limpias grabadas directamente desde la IDE de Delphi. En dichos vídeos se aprecia la pantalla dividida: a un lado nuestro panel web que administra el servicio, y al otro las aplicaciones de Delphi enviando lotes masivos y asíncronos para comprobar los Tiempos de Respuesta reales de las colas de la AEAT: Videoguías y demostraciones en vivo de los SDKs: 🎬 Vídeo 1: https://youtu.be/XRn_FgcbQMM 🎬 Vídeo 2: https://youtu.be/gbpBQKYmjug 🎬 Vídeo 3: https://youtu.be/Ozc1VpDHrFE Hemos preparado las 'Units' de tal forma que tragan la estructura que pide Hacienda mediante un JSON neutro y limpio, sin que tengáis que tocar las tripas de TLS ni XMLDsigs. La idea de este cambio es que tener una pasarela en Delphi operativa no pase nunca de la media hora de pruebas locales. Pasaos a ojear el material y las APIs y, como siempre, cualquier *feedback* arquitectónico, duda implementando las Units o mejora de los componentes, o si alguno se ha decidido a probar, mejor interactuar por GitHub o correo electrónico: [email protected] ¡Un saludo! |
|
#5
|
|||
|
|||
|
Gracias Birmain, le echaremos un vistazo
|
|
#6
|
|||
|
|||
|
Nuevo código para Demo del API Verifactu
¡Hola a todos!
He creado nuevo codigo para la demostración en Delphi 7 y 10+ para la API de Veri*Factu. Muchos en la comunidad nos estamos enfrentando al mismo muro: lidiar con criptografía avanzada, construcción de XMLs pesados, enrutamiento SSL y gestión de certificados oficiales. Hacerlo de forma nativa mermando el rendimiento del ERP ya es molesto, pero si además tienes que dar soporte a software legacy en Delphi 7 o similar, puede convertirse en un auténico dolor de cabeza. Para que veáis lo sencillo que puede quedar el código en Delphi, acabamos de publicar nuevas guías interactivas con el SDK Nativo:
Espero que estos recursos os ahorren decenas de horas de programación y documentacion, a los que hasta ahora no hayais resuelto esta meta. Echadle un ojo a las URLs y cualquier sugerencia arquitectónica, duda o feedback será enormemente bienvenido en GitHub o preguntas directas en la propia web. ¡Un saludo! P.D: Disculpar, los dos primeros enlaces ya los había puesto, no obstante estan revisados y he añadido contenido. El tercero es completamente nuevo. Última edición por birmain fecha: 18-04-2026 a las 18:06:56. |
|
#7
|
|||
|
|||
|
Enlaces que han caducado
Disculpar mi insistencia en los enlaces. Se está mejorando la web y algunos han quedado obsoletos.
Documentación Oficial y SDKs (VeriFactu Micro-Servicio)
Un saludo !! |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Error 404 Servicio validación registros No Verifactu | JM_1 | Errores (relacionados con al AEAT) | 8 | 25-09-2025 12:05:36 |
| Servicio Web alta facturas Verifactu | ermendalenda | Envío de registros y sus respuestas | 6 | 09-09-2025 12:17:13 |
| Determinar si el servicio Windows del Verifactu está activo o no | aleixep | General/Noticias | 5 | 05-09-2025 16:01:21 |
| Demo con código Verifactu.dll para (delphi 7) | seccion_31 | Envío de registros y sus respuestas | 669 | 04-09-2025 08:42:05 |
| Problemas al integrar verifactu en modo servicio | Galahad | Envío de registros y sus respuestas | 12 | 10-07-2025 18:59:50 |
|