1. Proceso de Facturación en Tienda Online (PrestaShop)
graph TD
A[El cliente hace un pedido] --> B{¿Pedido confirmado/pagado?};
B -- "Sí, pagado" --> C[Generar JSON con datos de la factura];
B -- "No, en espera" --> D[Pedido queda en espera de pago];
D -- "Cuando se confirma/paga" --> B;
C --> E[Addon PrestaShop envía JSON a la
API verifactu.infoal.com];
E --> F{Checkeo previo antes del envío a la AEAT,
Respuesta de https://verifactu.infoal.com};
F -- "OK (200)" --> G[Recibir ID de cola];
F -- "Error (400)" --> H[Vendedor: Factura marcada como 'Errónea'
- corregir errores como NIF incorrectos,
impuestos mal calculados, etc...];
G --> I[Guardar ID de cola en la factura
y marcar como 'En espera'];
I --> J[Generar PDF de la factura
con el QR];
J --> K[El Addon lanzará el proceso de consulta del estado de las facturas automaticamente];
H -- "Reintento automático del sistema" --> E;
style A fill:#4a90e2,stroke:#3b72b8,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
style B fill:#f9a03f,stroke:#c47a27,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
style C fill:#4a90e2,stroke:#3b72b8,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
style D fill:#7e8c9b,stroke:#64707f,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
style E fill:#4a90e2,stroke:#3b72b8,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
style F fill:#f9a03f,stroke:#c47a27,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
style G fill:#2f70b8,stroke:#265c97,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
style H fill:#d9534f,stroke:#a33b37,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
style I fill:#2f70b8,stroke:#265c97,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
style J fill:#fff,stroke:#3b72b8,stroke-width:2px,color:#333,stroke-dasharray:none,rx:5;
style K fill:#4a90e2,stroke:#3b72b8,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
style H stroke-dasharray: 5 5;
style B stroke-dasharray: 5 5;
style F stroke-dasharray: 5 5;
2. Proceso de Anulación de Factura
graph TD
subgraph Anulación en PrestaShop
AA[Vendedor: Inicia anulación de factura
creando un abono] --> CC[Generar Abono/Factura Rectificativa
con referencia a la original];
end
CC --> EE[Recoger datos del Abono,
generar JSON y enviarlo a la API];
EE --> FF{Checkeo previo antes del envío a la AEAT,
Respuesta de https://verifactu.infoal.com};
FF -- "OK (200)" --> GG[Recibir ID de cola y guardar
en el Abono];
FF -- "Error (400)" --> HH[Vendedor: Abono marcado como 'Erróneo'
- corregir errores como NIF incorrectos,
impuestos mal calculados, etc...];
GG --> JJ[Generar PDF del abono
con el QR];
JJ --> II[Abono en estado 'En espera'];
HH -- "Reintento automático" --> EE;
II --> KK[El Addon lanzará el proceso de consulta del estado de las facturas automaticamente];
style AA fill:#4a90e2,stroke:#3b72b8,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
style CC fill:#4a90e2,stroke:#3b72b8,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
style EE fill:#4a90e2,stroke:#3b72b8,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
style FF fill:#f9a03f,stroke:#c47a27,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
style GG fill:#2f70b8,stroke:#265c97,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
style HH fill:#d9534f,stroke:#a33b37,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
style II fill:#2f70b8,stroke:#265c97,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
style JJ fill:#fff,stroke:#3b72b8,stroke-width:2px,color:#333,stroke-dasharray:none,rx:5;
style KK fill:#4a90e2,stroke:#3b72b8,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
3. Consulta y Gestión del Estado de la Factura
graph TD
subgraph Consulta de Estado
K[Addon de PrestaShop consulta periodicamente facturas 'en espera'] --> L{Respuesta de la AEAT};
L -- "Correcta" --> M[Guardar hash, hash previo y fecha de registro];
L -- "Aceptada con Errores" --> N[Guardar hash, hash previo y fecha de registro];
L -- "Anulada" --> O[Guardar hash, hash previo y fecha de registro];
L -- "Rechazada" --> P[Mostrar error de rechazo];
end
M --> Q[Factura validada y aceptada];
N --> R[Mostrar advertencia de errores];
O --> S[Factura anulada correctamente];
P --> T(Acción: Corregir datos en sistema);
R --> T;
T --> U[Generar Factura Rectificativa];
U --> V[Recoger datos de la factura corregida, generar JSON y enviarlo a la API];
V --> K;
style K fill:#4a90e2,stroke:#3b72b8,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
style L fill:#f9a03f,stroke:#c47a27,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
style M fill:#2f70b8,stroke:#265c97,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
style N fill:#d9534f,stroke:#a33b37,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
style O fill:#7e8c9b,stroke:#64707f,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
style P fill:#d9534f,stroke:#a33b37,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
style Q fill:#2f70b8,stroke:#265c97,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
style R fill:#d9534f,stroke:#a33b37,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
style S fill:#7e8c9b,stroke:#64707f,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
style T fill:#f9a03f,stroke:#c47a27,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
style U fill:#4a90e2,stroke:#3b72b8,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;
style V fill:#4a90e2,stroke:#3b72b8,stroke-width:2px,color:#fff,stroke-dasharray:none,rx:5;