diff --git a/docs/assets/drive/Ln5HvZyVHOBK-JEMdCGGj7N__H5Bzn8mAm3xqW2jRUNOpDdeOdBXNWaa6F-0lWrHDbXbVFXclkYHFqsQ5e-IJWVuo_o8871Y0TTpk7apWwr7W6lwixlux5lbKxTfBsJBHP1o1RsigQrozwyHTJSuGPk.png b/docs/assets/drive/Ln5HvZyVHOBK-JEMdCGGj7N__H5Bzn8mAm3xqW2jRUNOpDdeOdBXNWaa6F-0lWrHDbXbVFXclkYHFqsQ5e-IJWVuo_o8871Y0TTpk7apWwr7W6lwixlux5lbKxTfBsJBHP1o1RsigQrozwyHTJSuGPk.png deleted file mode 100644 index b72077c06e..0000000000 Binary files a/docs/assets/drive/Ln5HvZyVHOBK-JEMdCGGj7N__H5Bzn8mAm3xqW2jRUNOpDdeOdBXNWaa6F-0lWrHDbXbVFXclkYHFqsQ5e-IJWVuo_o8871Y0TTpk7apWwr7W6lwixlux5lbKxTfBsJBHP1o1RsigQrozwyHTJSuGPk.png and /dev/null differ diff --git a/docs/assets/drive/SeBxMk8qhA3rmNFmPr8rDLDp0Te2HvbQ6RS9HV_BlXMUelz5MFQEFTIvC_pg7HDHeh4joNbWJekXn4gGPcPBVhqE4JWeIrEuGE-vXyWDbF0EYfTQVeXUS_9SIqTt-hIk5IGmO4BKrjnfCwV7cVs.png b/docs/assets/drive/SeBxMk8qhA3rmNFmPr8rDLDp0Te2HvbQ6RS9HV_BlXMUelz5MFQEFTIvC_pg7HDHeh4joNbWJekXn4gGPcPBVhqE4JWeIrEuGE-vXyWDbF0EYfTQVeXUS_9SIqTt-hIk5IGmO4BKrjnfCwV7cVs.png deleted file mode 100644 index 05a88a6419..0000000000 Binary files a/docs/assets/drive/SeBxMk8qhA3rmNFmPr8rDLDp0Te2HvbQ6RS9HV_BlXMUelz5MFQEFTIvC_pg7HDHeh4joNbWJekXn4gGPcPBVhqE4JWeIrEuGE-vXyWDbF0EYfTQVeXUS_9SIqTt-hIk5IGmO4BKrjnfCwV7cVs.png and /dev/null differ diff --git a/docs/assets/drive/WmCrqgr1mzfFPN73yfGGt5a6jseoeH0wUEAWYyzaOROUsZtcVEtmljTWDUh_CT6KpHmza0a2Oc6P1ZqnczOZF8COnXiEXg2_W2FiQU8vz_fgIINsqydZnwSpojBEjhBGMcJgJXFss9Ihy4eIjKWzgPo.png b/docs/assets/drive/WmCrqgr1mzfFPN73yfGGt5a6jseoeH0wUEAWYyzaOROUsZtcVEtmljTWDUh_CT6KpHmza0a2Oc6P1ZqnczOZF8COnXiEXg2_W2FiQU8vz_fgIINsqydZnwSpojBEjhBGMcJgJXFss9Ihy4eIjKWzgPo.png deleted file mode 100644 index 117d5305ca..0000000000 Binary files a/docs/assets/drive/WmCrqgr1mzfFPN73yfGGt5a6jseoeH0wUEAWYyzaOROUsZtcVEtmljTWDUh_CT6KpHmza0a2Oc6P1ZqnczOZF8COnXiEXg2_W2FiQU8vz_fgIINsqydZnwSpojBEjhBGMcJgJXFss9Ihy4eIjKWzgPo.png and /dev/null differ diff --git a/docs/assets/drive/fetQO0nNF-Q3kkLURvyOFzQ46wSUEIIjymSsJCfk9GkiUMInhKjnvjWnmvgsZdi2_oM-dpdLGenWjw9a1h6OFBxj7CUAfQBzNLrTT64XL0pA6zhIrcE8hJxoOFD-KP6Uywr6ZuOKqbzsVSUCIt3J2EE.png b/docs/assets/drive/fetQO0nNF-Q3kkLURvyOFzQ46wSUEIIjymSsJCfk9GkiUMInhKjnvjWnmvgsZdi2_oM-dpdLGenWjw9a1h6OFBxj7CUAfQBzNLrTT64XL0pA6zhIrcE8hJxoOFD-KP6Uywr6ZuOKqbzsVSUCIt3J2EE.png deleted file mode 100644 index 0e428e1b38..0000000000 Binary files a/docs/assets/drive/fetQO0nNF-Q3kkLURvyOFzQ46wSUEIIjymSsJCfk9GkiUMInhKjnvjWnmvgsZdi2_oM-dpdLGenWjw9a1h6OFBxj7CUAfQBzNLrTT64XL0pA6zhIrcE8hJxoOFD-KP6Uywr6ZuOKqbzsVSUCIt3J2EE.png and /dev/null differ diff --git a/docs/assets/drive/lnYFE3_FU4bzz-1q2uHRiBxo8WEjg6PJjEZxg7iqFzPwM5kUFVzoXW7eGuF7vCCciW59Ls5jRsSI6vksPNZ6nvMYFB2yBLMgqjW6oausvB8IvBPlj3mVYTv9qAbRfhLQaTat-jaFOxSIpzrRrPw.png b/docs/assets/drive/lnYFE3_FU4bzz-1q2uHRiBxo8WEjg6PJjEZxg7iqFzPwM5kUFVzoXW7eGuF7vCCciW59Ls5jRsSI6vksPNZ6nvMYFB2yBLMgqjW6oausvB8IvBPlj3mVYTv9qAbRfhLQaTat-jaFOxSIpzrRrPw.png deleted file mode 100644 index acb0bcdc7e..0000000000 Binary files a/docs/assets/drive/lnYFE3_FU4bzz-1q2uHRiBxo8WEjg6PJjEZxg7iqFzPwM5kUFVzoXW7eGuF7vCCciW59Ls5jRsSI6vksPNZ6nvMYFB2yBLMgqjW6oausvB8IvBPlj3mVYTv9qAbRfhLQaTat-jaFOxSIpzrRrPw.png and /dev/null differ diff --git a/docs/assets/drive/qPqZ-pAmr6pO6ALY0z4_PrmOrkEnqWO5b-YqmEbVPZX3DSUQUEd36VwA5LmUZciyEqR4l70kFCR9QIv0u2VgUf-HJEWUEDJcp9mCuBe5J_sW6o8wC5PSAesUXAsH3e_0cOVbsnHg4LmSx3XFpJIQtfs.png b/docs/assets/drive/qPqZ-pAmr6pO6ALY0z4_PrmOrkEnqWO5b-YqmEbVPZX3DSUQUEd36VwA5LmUZciyEqR4l70kFCR9QIv0u2VgUf-HJEWUEDJcp9mCuBe5J_sW6o8wC5PSAesUXAsH3e_0cOVbsnHg4LmSx3XFpJIQtfs.png deleted file mode 100644 index e05bbd3690..0000000000 Binary files a/docs/assets/drive/qPqZ-pAmr6pO6ALY0z4_PrmOrkEnqWO5b-YqmEbVPZX3DSUQUEd36VwA5LmUZciyEqR4l70kFCR9QIv0u2VgUf-HJEWUEDJcp9mCuBe5J_sW6o8wC5PSAesUXAsH3e_0cOVbsnHg4LmSx3XFpJIQtfs.png and /dev/null differ diff --git a/docs/assets/drive/rdC0SMKqwDEIs85X9vxqT-gH-nz2YhzthhfKlLB_r9C21y2DwmdHFH5IAjvQSuPjMhDh68W3XBvEA1suciw55sUz01nQtcCjXQLCPLy4GM79hmE-0TnTPJWtlT9wqsIQiSjLi7NSbJQYNjLoePI.png b/docs/assets/drive/rdC0SMKqwDEIs85X9vxqT-gH-nz2YhzthhfKlLB_r9C21y2DwmdHFH5IAjvQSuPjMhDh68W3XBvEA1suciw55sUz01nQtcCjXQLCPLy4GM79hmE-0TnTPJWtlT9wqsIQiSjLi7NSbJQYNjLoePI.png deleted file mode 100644 index 4f41e08483..0000000000 Binary files a/docs/assets/drive/rdC0SMKqwDEIs85X9vxqT-gH-nz2YhzthhfKlLB_r9C21y2DwmdHFH5IAjvQSuPjMhDh68W3XBvEA1suciw55sUz01nQtcCjXQLCPLy4GM79hmE-0TnTPJWtlT9wqsIQiSjLi7NSbJQYNjLoePI.png and /dev/null differ diff --git a/docs/assets/drive/vTuKPdCz4_8FyY4_zSO6LA157zXc_9Nr_D8zgcKv0O4rP5aKXnKOTp6T4ga6SwbHN29oEgD3MZBP_lEyZ4uTmZY43pXsiFapBmKqvowAp_z9xCeRLmituMo4UW7FG0zv2wbDhZuUvIiRR2diRP0.png b/docs/assets/drive/vTuKPdCz4_8FyY4_zSO6LA157zXc_9Nr_D8zgcKv0O4rP5aKXnKOTp6T4ga6SwbHN29oEgD3MZBP_lEyZ4uTmZY43pXsiFapBmKqvowAp_z9xCeRLmituMo4UW7FG0zv2wbDhZuUvIiRR2diRP0.png deleted file mode 100644 index a60dd888ba..0000000000 Binary files a/docs/assets/drive/vTuKPdCz4_8FyY4_zSO6LA157zXc_9Nr_D8zgcKv0O4rP5aKXnKOTp6T4ga6SwbHN29oEgD3MZBP_lEyZ4uTmZY43pXsiFapBmKqvowAp_z9xCeRLmituMo4UW7FG0zv2wbDhZuUvIiRR2diRP0.png and /dev/null differ diff --git a/docs/assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/sii/factura-rectificativa-xml.png b/docs/assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/sii/factura-rectificativa-xml.png new file mode 100644 index 0000000000..eb2ce24eb9 Binary files /dev/null and b/docs/assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/sii/factura-rectificativa-xml.png differ diff --git a/docs/assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/sii/factura-rectificativa.png b/docs/assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/sii/factura-rectificativa.png new file mode 100644 index 0000000000..b90cdc6112 Binary files /dev/null and b/docs/assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/sii/factura-rectificativa.png differ diff --git a/docs/assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/sii/rectificativa-fuera-plazo-xml.png b/docs/assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/sii/rectificativa-fuera-plazo-xml.png new file mode 100644 index 0000000000..5fba90c235 Binary files /dev/null and b/docs/assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/sii/rectificativa-fuera-plazo-xml.png differ diff --git a/docs/assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/sii/rectificativa-fuera-plazo.png b/docs/assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/sii/rectificativa-fuera-plazo.png new file mode 100644 index 0000000000..b8b6f4bf72 Binary files /dev/null and b/docs/assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/sii/rectificativa-fuera-plazo.png differ diff --git a/docs/assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu/contabilidad-ajustada.png b/docs/assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu/contabilidad-ajustada.png deleted file mode 100644 index c77c437470..0000000000 Binary files a/docs/assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu/contabilidad-ajustada.png and /dev/null differ diff --git a/docs/assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu/factura-rectificativa-sust-orig.png b/docs/assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu/factura-rectificativa-sust-orig.png deleted file mode 100644 index 25d89d074e..0000000000 Binary files a/docs/assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu/factura-rectificativa-sust-orig.png and /dev/null differ diff --git a/docs/assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu/factura-rectificativa-sust-rect.png b/docs/assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu/factura-rectificativa-sust-rect.png deleted file mode 100644 index bdb8d7b149..0000000000 Binary files a/docs/assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu/factura-rectificativa-sust-rect.png and /dev/null differ diff --git a/docs/assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu/monitor-verifactu.png b/docs/assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu/monitor-verifactu.png index de0099880f..8ebe08f827 100644 Binary files a/docs/assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu/monitor-verifactu.png and b/docs/assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu/monitor-verifactu.png differ diff --git a/docs/assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/vies/estado-vies.png b/docs/assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/vies/estado-vies.png new file mode 100644 index 0000000000..7c4ebcfae2 Binary files /dev/null and b/docs/assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/vies/estado-vies.png differ diff --git a/docs/es/developer-guide/etendo-classic/bundles/spain-localization/developer-changelog/apichanges.md b/docs/es/developer-guide/etendo-classic/bundles/spain-localization/developer-changelog/apichanges.md new file mode 100644 index 0000000000..50b71ed837 --- /dev/null +++ b/docs/es/developer-guide/etendo-classic/bundles/spain-localization/developer-changelog/apichanges.md @@ -0,0 +1,96 @@ +--- +tags: + - API Changes + - Etendo 26 + - Etendo 25 + - Migrate to Etendo 25 + - Spain Localization + - Update Etendo + - Updating Guide + - Developer Changelog +--- + +# Documentación de Cambios de API + +## Resumen + +Este documento explica todos los cambios ocurridos en la API pública de los módulos contenidos en el bundle de Localización Española. + +Estos cambios representan un riesgo potencial de rotura de módulos, por lo que todos han sido revisados y aprobados explícitamente. Cada vez que se produzca un nuevo cambio, será incluido en esta lista. Antes de actualizar un entorno, se recomienda revisar también la guía oficial de actualización: [Actualizar Etendo a Cualquier Versión](../../../getting-started/upgrade/upgrade-etendo-to-any-version.md). + +Los cambios se agrupan por **versión del bundle** de Localización Española y, dentro de cada versión, por **tipo de cambio**. + +## 4.x + +### Eliminación del "Destino" de TicketBAI (reemplazado por el "Territorio" de sif.general) + +*Versión del bundle: [4.4.0](https://github.com/etendosoftware/com.etendoerp.localization.spain.extensions/releases/tag/4.4.0){target="_blank"} · Módulos: `com.smf.ticketbai`, `com.etendoerp.sif.general` · Riesgo: Medio* + +El campo/tabla **Destino** de TicketBAI (Gipuzkoa / Bizkaia / Álava), que resolvía las URLs y *endpoints* de cada hacienda foral, ha sido **eliminado**. TicketBAI resuelve ahora el territorio a través del campo **Territorio** del módulo `com.etendoerp.sif.general`, que se apoya en el catálogo centralizado de *endpoints* `ETSG_SIF_Channel_Endpoint` compartido por SII, TicketBAI y Verifactu. + +**Tablas Eliminadas** + +Se ha eliminado por completo la siguiente tabla, junto con todas sus columnas, pestañas y entradas del Diccionario de Aplicación. Cualquier módulo personalizado que consulte o referencie directamente esta entidad Hibernate debe actualizarse: + +| Tabla | Clase Entidad Hibernate | Descripción | +|---|---|---| +| `TBAI_Destiny_Config` | `TbaiDestinyConfig` | Configuración por destino de TicketBAI (URLs de alta/anulación/QR, licencia, NIF del desarrollador, URIs de esquema, etc.) | + +**Columnas Eliminadas** + +| Tabla | Columna | Descripción | +|---|---|---| +| `TBAI_Config` | `Tbai_Destiny_Config_ID` | Referencia (FK `TBAI_CONFIG_DESTINY_CONFIG_ID`) al destino de TicketBAI. Sustituida por el campo Territorio. | + +**Columna Nueva (reemplazo)** + +| Tabla | Columna | Entidad / Propiedad Hibernate | Descripción | +|---|---|---|---| +| `TBAI_Config` | `ETSG_SIF_Territory` | `TBAI_Config` / `eTSGSIFTerritory` | Territorio SIF (lista: `GIPUZKOA`, `BIZKAIA`, `ARABA`). Referencia de lista "Territorio SIF" definida en `com.etendoerp.sif.general`. | +| `ETSG_SIF_Channel_Endpoint` | `Territory` | `SifChannelEndpoint` | Catálogo centralizado de *endpoints* por territorio (en `com.etendoerp.sif.general`), contra el que TicketBAI resuelve ahora sus URLs. | + +!!! warning "Acción Requerida para Desarrollos Personalizados" + Los módulos o reportes personalizados que referencien la tabla/columna eliminada del destino de TicketBAI (`TBAI_Destiny_Config`, `TbaiDestinyConfig`, `TBAI_Config.Tbai_Destiny_Config_ID`) deben actualizarse para leer el territorio desde el campo `ETSG_SIF_Territory` de `com.etendoerp.sif.general` (y, si resuelven *endpoints*, contra la tabla `ETSG_SIF_Channel_Endpoint`) **antes** de la actualización. + +## 3.x + +### Flujo unificado de carga de certificado digital + +*Versión del bundle: [3.13.0](https://github.com/etendosoftware/com.etendoerp.localization.spain.extensions/releases/tag/3.13.0){target="_blank"} · Módulos: `com.etendoerp.sif.general`, `com.etendoerp.verifactu`, `com.smf.ticketbai`, `org.openbravo.module.sii` · Riesgo: Bajo* + +Verifactu, SII y TicketBAI ahora utilizan la misma funcionalidad para cargar un Certificado Digital desde la ventana de Organización, usando el proceso "Añadir Certificado Digital" en la organización legal deseada. + +### Unificación del campo "Fecha de Operación" + +*Versión del bundle: [3.9.0](https://github.com/etendosoftware/com.etendoerp.localization.spain.extensions/releases/tag/3.9.0){target="_blank"} · Módulos: `com.etendoerp.sif.general`, `com.etendoerp.verifactu`, `com.smf.ticketbai`, `org.openbravo.module.sii` · Riesgo: Medio* + +Cada sistema de facturación disponía de su propia columna de **Fecha de Operación** en la factura. Estas columnas se han **deprecado** en favor de una única columna unificada `EM_Etsg_Date_Operation`, definida en `com.etendoerp.sif.general` y utilizada por Verifactu, TicketBAI y SII. + +!!! note "Deprecadas, no eliminadas" + Las columnas antiguas **no se eliminan** de la base de datos: siguen presentes y activas, conservando sus datos. Sin embargo, **dejan de ser la fuente de verdad**: la nueva lógica escribe y lee únicamente en `EM_Etsg_Date_Operation`, por lo que las columnas antiguas ya no se pueblan para las facturas nuevas. + +**Columnas Deprecadas** + +| Tabla | Columna | Entidad / Propiedad Hibernate | Módulo | +|---|---|---|---| +| `C_Invoice` | `EM_Etvfac_Date_Operation` | `Invoice` / `eTVFACDateOperation` | com.etendoerp.verifactu | +| `C_Invoice` | `EM_Tbai_Date_Operation` | `Invoice` / `tbaiDateOperation` | com.smf.ticketbai | +| `C_Invoice` (y `C_Order`) | `EM_Aeatsii_Fecha_Operacion` | `Invoice` / `aeatsiiFechaOperacion` (y `Order`) | org.openbravo.module.sii | + +**Columna Nueva (reemplazo)** + +| Tabla | Columna | Entidad / Propiedad Hibernate | Descripción | +|---|---|---|---| +| `C_Invoice` | `EM_Etsg_Date_Operation` | `Invoice` / `eTSGDateOperation` (`Invoice.PROPERTY_ETSGDATEOPERATION`) | Fecha de Operación unificada (en `com.etendoerp.sif.general`). Valor por defecto `@DateInvoiced@`. | + +!!! note "SII en pedidos" + La columna `EM_Aeatsii_Fecha_Operacion` de SII existe también en la tabla `C_Order`. La columna unificada **solo** se define en `C_Invoice`; **no** existe un equivalente unificado en `C_Order`, por lo que el uso de la Fecha de Operación de SII en pedidos permanece inalterado. + +Para poblar la nueva columna con los valores de las columnas antiguas en facturas previas a la actualización, se dispone del proceso **Rellenar Fechas de Operación** (ver la sección [Rellenar Fechas de Operación](../../../../../user-guide/etendo-classic/optional-features/bundles/spain-localization/funcionalidades-generales-para-sifs.md#rellenar-fechas-de-operacion) de la guía de usuario). La copia es solo hacia adelante (no sobrescribe valores ya informados), por lo que **no hay pérdida de datos**. + +!!! warning "Acción Requerida para Desarrollos Personalizados" + Los módulos, reportes o consultas personalizados que lean las columnas/propiedades antiguas (`EM_Etvfac_Date_Operation` / `eTVFACDateOperation`, `EM_Tbai_Date_Operation` / `tbaiDateOperation`, `EM_Aeatsii_Fecha_Operacion` / `aeatsiiFechaOperacion`) deben actualizarse para leer la Fecha de Operación desde `EM_Etsg_Date_Operation` (`Invoice.PROPERTY_ETSGDATEOPERATION`) **antes** de la actualización. Aunque las columnas antiguas siguen existiendo, ya no se pueblan para las facturas nuevas, por lo que el código que dependa de ellas verá valores vacíos o desactualizados. + +--- + +This work is licensed under :material-creative-commons: :fontawesome-brands-creative-commons-by: :fontawesome-brands-creative-commons-sa: [ CC BY-SA 2.5 ES](https://creativecommons.org/licenses/by-sa/2.5/es/){target="_blank"} by [Futit Services S.L](https://etendo.software){target="_blank"}. diff --git a/docs/es/user-guide/etendo-classic/optional-features/bundles/spain-localization/funcionalidades-generales-para-sifs.md b/docs/es/user-guide/etendo-classic/optional-features/bundles/spain-localization/funcionalidades-generales-para-sifs.md index 3e2d2316f0..a680c5daba 100644 --- a/docs/es/user-guide/etendo-classic/optional-features/bundles/spain-localization/funcionalidades-generales-para-sifs.md +++ b/docs/es/user-guide/etendo-classic/optional-features/bundles/spain-localization/funcionalidades-generales-para-sifs.md @@ -25,6 +25,7 @@ El módulo de Funcionalidades Generales para SIFs (**Sistemas de Información Fi - [Carga de certificados digitales](#carga-de-certificados-digitales): permite configurar el certificado digital de cada organización legal. - [Rellenar Fechas de Operación](#rellenar-fechas-de-operacion): proceso para migrar las fechas de facturas existentes al nuevo campo unificado. - [Tipos de Documento Rectificativos](#tipos-de-documento-rectificativos): define las restricciones sobre los documentos utilizados en facturas rectificativas. +- [Facturas Rectificativas](#facturas-rectificativas): explica qué rectificación usar en cada caso y cómo realizarla de principio a fin en Etendo, de forma común a todos los SIFs. ## Rellenar Fechas de Operación @@ -107,6 +108,95 @@ Las facturas rectificativas deben utilizar exclusivamente un tipo de documento y ![](../../../../../../assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/funcionalidades-generales-para-sifs/tipo-doc-rectificativo.png) +!!! info "Solo aplica a organizaciones acogidas a un SIF" + La selección y validación del tipo de documento rectificativo **solo se aplica en organizaciones que tengan configurado algún SIF** (*Verifactu*, *TicketBAI* o *SII*). Es decir, las comprobaciones que exigen que una factura rectificativa utilice un tipo de documento (y una secuencia) marcados como rectificativos, y que impiden usar un tipo rectificativo en una factura que no rectifica a ninguna otra, se activan únicamente cuando la entidad legal de la factura está acogida a *Verifactu*, *TicketBAI* o *SII*. + +## Facturas Rectificativas + +Cuando una factura ya emitida (completada y enviada al SIF correspondiente) contiene un error, la normativa **no permite reactivarla ni modificarla**: la corrección se realiza mediante una **factura rectificativa**. Esta sección explica, de forma común a **Verifactu**, **TicketBAI** y **SII**, **qué rectificación usar en cada caso** y **cómo realizarla de principio a fin en Etendo**. + +En una rectificativa se registra la variación respecto a la factura original, **sin detallar los importes originales corregidos**. + +Por ejemplo, si una factura original tenía una base de 1.000 € y una cuota de 210 € (21 %), y el importe correcto era 200 € superior, la rectificativa registrará **base +200 €, cuota +42 €** (no la base total corregida de 1.200 €). + +### Qué motivo de rectificación usar (R1–R5) + +Toda factura rectificativa debe indicar el **motivo de la rectificación**, que la AEAT clasifica según la causa. La siguiente tabla resume cuándo usar cada uno: + +| Motivo | Cuándo se usa | Ejemplo | +|---|---|---| +| **R1** — Error fundado en derecho y art. 80.Uno, .Dos y .Seis LIVA | Es el motivo **general**, para la mayoría de correcciones: errores fundados en derecho (base o cuota mal calculadas, tipo de IVA incorrecto, etc.) y modificaciones de la base por **devolución** de mercancías, envases o embalajes, **descuentos o rappels** posteriores a la operación, resolución de operaciones o alteración/provisionalidad de precios. | Se devuelve parte de la mercancía; se aplica un descuento posterior; se corrige un tipo de IVA mal aplicado. | +| **R2** — Art. 80.Tres LIVA | El destinatario entra en **concurso de acreedores** después de emitida la factura. | El cliente es declarado en concurso y se modifica la base para recuperar el IVA. | +| **R3** — Art. 80.Cuatro LIVA | **Créditos incobrables** que cumplen los requisitos legales (plazos, reclamación, etc.). | Una factura impagada deviene incobrable transcurrido el plazo legal. | +| **R4** — Resto | Cualquier rectificación **no encuadrable en R1–R3**, incluidas las **correcciones de datos no monetarios** del mismo destinatario (razón social, domicilio, código postal, un apellido, etc.). | Corregir el domicilio o la razón social del cliente sin que cambien la base, la cuota ni el total. | +| **R5** — Facturas simplificadas | Rectificación de una **factura simplificada** (ticket). | Rectificar una factura simplificada emitida anteriormente. | + +!!! note "Correcciones de datos no monetarios (R4)" + Cuando solo se corrige un **dato no monetario** del **mismo** destinatario, la rectificativa se registra con **base 0 €, cuota 0 € y total 0 €**: no hay variación económica. Debe indicarse la causa y la modificación efectuada, e identificar la factura original; esta no se elimina, queda **complementada** por la rectificativa. + + Si, en cambio, la factura **identifica a otro destinatario** (otra persona o un NIF distinto), no basta con una rectificativa de importe cero: consulte [Reemplazar una factura por completo](#reemplazar-una-factura-por-completo-reversion-y-reemision). + +!!! example "Ejemplo R4 — corrección del domicilio del destinatario" + Factura original **F-2026-0105** a *Empresa Ejemplo, S.L.* (NIF `B12345678`), base 1.000 €, cuota 210 €, con el **domicilio mal consignado**. Se emite una rectificativa **R-2026-0012** con **motivo R4**, manteniendo el mismo destinatario y NIF, con el **domicilio correcto**, identificando la factura rectificada (F-2026-0105) y la causa (*«se corrige el domicilio del destinatario; no se modifican la base imponible, la cuota de IVA ni el importe total»*). Importes de la rectificación: **base 0 €, cuota 0 €, total 0 €**. + +### Reemplazar una factura por completo (reversión y reemisión) + +Cuando el error obliga a reemplazar la factura entera —por ejemplo, la factura **identifica a un destinatario equivocado** (otra persona o un NIF distinto)— se aplica el patrón de **reversión y reemisión**, en dos pasos: + +1. **Revertir la factura original**: emitir una factura rectificativa, con el **motivo que corresponda a la causa** (por ejemplo, **`R4` — Resto** cuando el error está en el destinatario), por el **100 % de la original con signo contrario** (base −1.000 €, cuota −210 €), dejando la operación original **a cero**. +2. **Emitir una nueva factura normal** con los datos correctos (por ejemplo, con el destinatario corregido). + +!!! warning "Efecto económico, no anulación registral" + En el caso de un **destinatario equivocado**, este procedimiento consigue el **efecto económico de un abono** (deja la operación original a cero), pero **no** el efecto **técnico y registral de una anulación**: + + - La factura original **sigue constando en VERI\*FACTU como un registro de alta válido**, vinculado al destinatario equivocado. + - La rectificativa R4 es un **segundo registro** de factura rectificativa. + - La AEAT **no considera anulado** el registro original. + - El destinatario incorrecto **podría seguir cotejando la factura original** mediante su código QR. + +### Casos de uso y su registro + +Todos los ejemplos siguientes parten de una **factura original con base 1.000 € y cuota 210 € (21 %)** y se registran informando en un único registro **solo la variación** respecto a la original. Siguen el criterio de la [explicación dada en la AEAT al respecto](https://sede.agenciatributaria.gob.es/Sede/iva/sistemas-informaticos-facturacion-verifactu/preguntas-frecuentes/procedimientos-facturacion.html){target="_blank"}. + +#### Ejemplo: descuento posterior de 200 € sobre la base + +Tras emitir la factura se concede un descuento que reduce la base en 200 € (base correcta **800 €**, cuota correcta **168 €**). Se registra únicamente el ajuste: + +| Campo | Valor | +|---|---| +| Base (desglose) | **−200 €** | +| Cuota (desglose) | **−42 €** | +| Importe total | **−242 €** | + +#### Otros casos frecuentes + +En todos los casos se informa únicamente la variación respecto a la factura original: + +- **Aumento de la base (se facturó de menos).** La operación era 200 € superior a lo facturado → base **+200 €**, cuota **+42 €**. +- **Impago: crédito incobrable o concurso.** El cliente no paga y el crédito deviene incobrable (motivo `R3`, art. 80.Cuatro LIVA) o el destinatario entra en concurso (motivo `R2`, art. 80.Tres LIVA). Se rectifica solo la cuota repercutida que no se cobrará, manteniendo la base → base **0 €**, cuota **−210 €**. +- **Tipo de IVA incorrecto (la base era correcta).** Se aplicó 10 % en lugar de 21 %. Se mantiene la base imponible y se corrige solo el impuesto con **dos desgloses a tipos positivos**: se revierte el erróneo (base **−1.000 €**, cuota **−100 €** al 10 %) y se añade el correcto (base **+1.000 €**, cuota **+210 €** al 21 %). Neto: base 0 €, cuota **+110 €**. +- **Reemplazo completo de la factura** (base incorrecta, error en un dato de cabecera como la fecha o el tercero, varios errores a la vez). Se aplica la [reversión y reemisión](#reemplazar-una-factura-por-completo-reversion-y-reemision): anular la original (base **−1.000 €**, cuota **−210 €**) y emitir a continuación una **nueva factura normal** con los datos correctos. +- **Rectificar una rectificativa anterior.** Se emite otra rectificativa con base y cuota positivas o negativas según el ajuste necesario. + +### Cómo hacerlo en Etendo + +El procedimiento es común a los tres SIFs: + +1. **Configure un tipo de documento rectificativo** y su secuencia, tal como se describe en [Tipos de Documento Rectificativos](#tipos-de-documento-rectificativos). La factura rectificativa debe usar una **serie distinta** a la de la factura original. +2. **Cree una factura de venta** usando ese tipo de documento rectificativo. +3. **Introduzca las líneas con la diferencia** según el caso de la tabla anterior. +4. **Indique el motivo de rectificación** que corresponda (según el SIF, ver más abajo). +5. **Enlace la factura original** que se está rectificando en la solapa correspondiente (**Factura Rectificativa**). +6. **Complete la factura y envíela al SIF** por el procedimiento habitual (envío automático o botón de registro manual, según el SIF). + +### Diferencias específicas por SIF + +Aunque el mecanismo es común (un tipo de documento marcado como rectificativo, mediante el campo `Es Rectificativo`), cada SIF identifica la rectificativa con sus propios campos: + +- **Verifactu**: se selecciona la **clave de tipo de factura** (motivo) `R1`–`R5`. Consulte [Verifactu → Rectificación](./verifactu.md#rectificacion). +- **TicketBAI**: se utiliza un tipo de documento rectificativo con una **secuencia con prefijo** (ver [restricciones del prefijo](./ticketbai-batuz.md#tipo-de-documento-para-facturas-rectificativas)). +- **SII**: la rectificativa se identifica con **Clave tipo factura = Factura Rectificativa** (`R`), más el **Motivo de la rectificación** (`R1`–`R5`). Consulte [SII → Facturas Rectificativas de Venta](./sii-para-iva.md#facturas-rectificativas-de-venta). + --- This work is licensed under :material-creative-commons: :fontawesome-brands-creative-commons-by: :fontawesome-brands-creative-commons-sa: [ CC BY-SA 2.5 ES](https://creativecommons.org/licenses/by-sa/2.5/es/){target="_blank"} by [Futit Services S.L](https://etendo.software){target="_blank"}. \ No newline at end of file diff --git a/docs/es/user-guide/etendo-classic/optional-features/bundles/spain-localization/sii-para-iva.md b/docs/es/user-guide/etendo-classic/optional-features/bundles/spain-localization/sii-para-iva.md index 5eb673c69b..a668b0ea78 100644 --- a/docs/es/user-guide/etendo-classic/optional-features/bundles/spain-localization/sii-para-iva.md +++ b/docs/es/user-guide/etendo-classic/optional-features/bundles/spain-localization/sii-para-iva.md @@ -412,10 +412,7 @@ Dentro del grupo de campos "AEAT SII" debemos indicar, tal y como se muestra en !!! info - No es posible informar este campo de forma automática como "Factura Rectificativa" al crear facturas del tipo "Reverse Sales Invoice", debido a que es posible la creación de Facturas Rectificativas por "Sustitución" como "AR Invoice" (no Reverse). - - -Se validará que al crear una factura de tipo "Factura Rectificativa" "Por Diferencias", el documento de la transacción sea del tipo "Reverse". + Una factura rectificativa se identifica indicando **Clave Tipo Factura = "Factura Rectificativa"** y el **Motivo de la rectificación** (`R1`–`R5`). Es necesario usar un [tipo de documento marcado como rectificativo](./funcionalidades-generales-para-sifs.md#tipos-de-documento-rectificativos). Consulte el detalle en [Facturas Rectificativas de Venta](#facturas-rectificativas-de-venta). - La **Descripción maestro SII** de la operación, ya que en los ficheros XML no incluiremos información sobre las líneas de factura. En este caso seleccionamos una descripción del maestro. - O bien introducimos directamente una descripción de la operación en el campo de texto libre "**Descripción SII**". @@ -492,64 +489,30 @@ Finalmente, en la cabecera de la factura de venta enviada a SII de forma manual ##### **Facturas Rectificativas de Venta** -Es posible rectificar una factura de venta dada de alta en SII de forma correcta, si se produce una devolución de mercancía, descuentos posteriores a la venta (Rappels de venta) o situaciones de deuda incobrable o concurso. - -La rectificación de facturas de venta se deben gestionar y dar de alta en SII bien sea "Por Diferencias" o "Por Sustitución", tal y como se explica a continuación: - -**Por Diferencias**, en este caso se registra una factura de tipo "Reverse" por el importe negativo correspondiente. - -Sería el caso en el que se realizó una venta por valor de 1527.77 € que se dio de alta en SII de forma correcta y, con posterioridad, se devuelve mercancía por parte del cliente por un valor de -27.77 € (15 unidades de producto). - -En este caso, al registrar la factura rectificativa por diferencias, dentro del grupo de campos "AEAT SII" deberemos indicar la siguiente información: - -- **Clave tipo factura** = Factura Rectificativa -- **Tipo Rectificativa** = Por Diferencias -- **Motivo de la rectificación** = R1...R4, a seleccionar por el usuario según el motivo de la rectificación. - -Este tipo de facturas rectificativas se deben crear con documentos del tipo "Reverse" (por ejemplo: "Reverse Sales Invoice"), e importes negativos, tal y como se muestra en la pantalla. Etendo mostrará un error en caso contrario. - -![](../../../../../../assets/drive/vTuKPdCz4_8FyY4_zSO6LA157zXc_9Nr_D8zgcKv0O4rP5aKXnKOTp6T4ga6SwbHN29oEgD3MZBP_lEyZ4uTmZY43pXsiFapBmKqvowAp_z9xCeRLmituMo4UW7FG0zv2wbDhZuUvIiRR2diRP0.png) - -Al dar de Alta esa factura en SII, el fichero XML registrará de forma automática la siguiente información: - -- Tipo Factura = R1 -- Tipo Rectificativa = I -- Importe total = -27.77 - -![](../../../../../../assets/drive/SeBxMk8qhA3rmNFmPr8rDLDp0Te2HvbQ6RS9HV_BlXMUelz5MFQEFTIvC_pg7HDHeh4joNbWJekXn4gGPcPBVhqE4JWeIrEuGE-vXyWDbF0EYfTQVeXUS_9SIqTt-hIk5IGmO4BKrjnfCwV7cVs.png) - -**Por Sustitución**, en este caso se produce una anulación de la factura original (ya dada de alta en SII) y la creación de una nueva factura con los importes correctos. +Es posible rectificar una factura de venta dada de alta en SII de forma correcta, por ejemplo si se produce una devolución de mercancía, descuentos posteriores a la venta (Rappels de venta) o situaciones de deuda incobrable o concurso. -La anulación de la factura original se puede realizar a través de la opción "**Reactivar-Anular**" de Etendo. Esta acción creará una factura del tipo "Reverse" con los siguientes datos: +En SII, al igual que en *Verifactu* y *TicketBAI*, una factura rectificativa se identifica por su **Clave tipo factura = Factura Rectificativa** y el **Motivo de la rectificación** (`R1`–`R5`). Se registra informando únicamente la variación respecto a la factura original. -- **Tipo de documento** = Reverse Sales Invoice -- **Fecha de operación** = fecha de operación de la factura original -- **Clave tipo factura** = Factura +**Cómo registrarla:** -Al dar de Alta esa factura de anulación en SII, el fichero XML registrará de forma automática la siguiente información: +1. Crear una **factura de venta** utilizando un [tipo de documento rectificativo](./funcionalidades-generales-para-sifs.md#tipos-de-documento-rectificativos), en una **serie distinta** a la de la factura original. +2. En el grupo de campos "**AEAT SII**" indicar: + - **Clave tipo factura** = Factura Rectificativa + - **Motivo de la rectificación** = `R1`–`R5`, a seleccionar según el motivo de la rectificación. +3. Introducir las líneas con **la variación** respecto a la factura original. +4. Enlazar la **factura original** que se rectifica. +5. Completar la factura y darla de **alta en SII**. -- Tipo Factura = F1 -- Importe total = -185.13 +![](../../../../../../assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/sii/factura-rectificativa.png) -Posteriormente, se crea la nueva factura con los importes correctos y con los siguientes datos: +Al dar de alta esa factura en SII, el fichero XML registrará automáticamente el **Tipo Factura** (`R1`–`R5`) con el importe (positivo o negativo) correspondiente a la variación. -- **Tipo de documento** = AR Invoice (no reverse) -- **Clave tipo factura** = Factura Rectificativa -- **Tipo Rectificativa** = Por Sustitución -- **Motivo de la rectificación** = R1...R4, a seleccionar por el usuario según el motivo de la rectificación. -- **Fecha de operación** = fecha de operación de la factura original +![](../../../../../../assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/sii/factura-rectificativa-xml.png) -![](../../../../../../assets/drive/rdC0SMKqwDEIs85X9vxqT-gH-nz2YhzthhfKlLB_r9C21y2DwmdHFH5IAjvQSuPjMhDh68W3XBvEA1suciw55sUz01nQtcCjXQLCPLy4GM79hmE-0TnTPJWtlT9wqsIQiSjLi7NSbJQYNjLoePI.png) +!!! tip "Qué rectificación usar en cada caso" + Para conocer **qué rectificación aplicar en cada situación** (disminución, aumento, impago total, corrección de un tipo de IVA mal aplicado, reemplazo completo de la factura mediante reversión y reemisión, o rectificar una rectificativa anterior), consulte la guía común con ejemplos resueltos: [Facturas Rectificativas](./funcionalidades-generales-para-sifs.md#facturas-rectificativas). -Al dar de Alta esta factura rectificativa por sustitución en SII, el fichero XML registrará de forma automática la siguiente información: - -- Tipo Factura = R1 -- Tipo Rectificativa = S -- Importe total = 92.57 - -![](../../../../../../assets/drive/lnYFE3_FU4bzz-1q2uHRiBxo8WEjg6PJjEZxg7iqFzPwM5kUFVzoXW7eGuF7vCCciW59Ls5jRsSI6vksPNZ6nvMYFB2yBLMgqjW6oausvB8IvBPlj3mVYTv9qAbRfhLQaTat-jaFOxSIpzrRrPw.png) - -Tanto en facturas rectificativas de venta por diferencias como por sustitución, el usuario deberá asignar la fecha de operación correspondiente a la factura original (devengo de la operación). Sin embargo, **en facturas rectificativas el periodo de alta en SII será el correspondiente a la fecha factura**, incorporándose a la declaración de IVA en dicho mes. +El usuario deberá asignar la **fecha de operación** correspondiente a la factura original (devengo de la operación). Sin embargo, **en facturas rectificativas el periodo de alta en SII será el correspondiente a la fecha factura**, incorporándose a la declaración de IVA en dicho mes. ##### **Facturas de Compra** @@ -886,10 +849,8 @@ Al procesar, Etendo nos informa de que se han creado las facturas correspondient Si el pedido de venta o los pedidos de venta fueran negativos, este proceso generaría facturas de tipo "AR Invoice" que tendremos que reactivar y modificar antes de dar de alta en SII: -- El tipo de documento debe cambiar a un tipo "reverse" como "Reverse Sales Invoice". -- La clave de tipo factura se debe seleccionar como "Factura Rectificativa", e introducir: - - el tipo de rectificativa - - y el motivo de la rectificación. +- El tipo de documento debe cambiar a un [tipo de documento rectificativo](./funcionalidades-generales-para-sifs.md#tipos-de-documento-rectificativos). +- La clave de tipo factura se debe seleccionar como "Factura Rectificativa", e introducir el **motivo de la rectificación**. ![](../../../../../../assets/drive/pwCBP_ahyxDvNz_-q3IcT0IJBo4B1r05w3AhJLrmfTGMoX9-BFL41vf4-CH6DMC_RN-pZBjBp0LlOigea-baElLEvjiaMlZt52aVaw7SmLR6EW5QwzM86iNtmfaQcygSC21OipvaKGRLLiK4v2w1YeU.png) @@ -1385,93 +1346,42 @@ Este proceso se denomina "**Proceso de adaptación a SII de Facturas de Venta de La ventana "**Monitor SII**" incluye también una pestaña "**Facturas de Venta Primer Semestre 2017**" desde dónde se pueden gestionar estás facturas, una vez configuradas de forma correcta por el proceso. -#### **Factura emitidas rectificativa fuera de plazo** - -Factura emitida rectificativa por sustitución en un periodo posterior al de presentación de la declaración de IVA - Modelo 303, de la factura original. - -La organización F&B España realiza una entrega de bienes por valor de 2420 € (IVA incluido) La operación se realiza el 2 de enero de 2018. F&B España emite la correspondiente factura de venta con fecha 2 de enero de 2022. - -En este caso, y dado que el IVA se ha devengado en el periodo de enero (fecha operación 2 de enero), el plazo límite de expedición de la factura de venta y su alta en SII sería el 15 de febrero. - -Una vez completada la factura, se procede a su Alta en SII el día 2 de enero. - -El XML de alta en SII contendrá la siguiente información: - -Clave tipo factura = F1-Factura - -Importe total = 2420 +#### **Factura rectificativa fuera de plazo** -Fecha Factura: 02-01-2022 +Factura rectificativa emitida en un periodo posterior al de la declaración de IVA - Modelo 303 de la factura original. -Fecha Contable: 02-01-2022 +La organización F&B España realiza una entrega de bienes por valor de 2.420 € (IVA incluido). La operación se realiza y la factura se expide el **2 de enero de 2022**. -**Fecha de Operación: 02-01-2022** +Dado que el IVA se ha devengado en el periodo de enero (fecha de operación 2 de enero), el plazo límite de expedición de la factura y de su alta en SII sería el 15 de febrero. Una vez completada, se procede a su alta en SII. El XML de alta contendrá: -**Periodo SII: 01 - Enero** - -**Ejercicio SII: 2022** +- Clave tipo factura = F1 - Factura +- Importe total = 2.420 +- Fecha Factura / Fecha Contable / **Fecha de Operación** = 02-01-2022 +- **Periodo SII: 01 - Enero** — **Ejercicio SII: 2022** ![](../../../../../../assets/drive/HJdwEipVS4djsZugPA3zso45tgrG6enxXhlP_KOSpe4a9r2v8EcytimONV_AMoVyaMIE8oJ3f4oLSpzObpdoRRgJ3HsTjWRAijIB94bZdAt45OvJPcGz-rwKdw2x1ykj9oX6_eoMKw02eqNaAk01Tjs.png) -El día 1 de marzo, se produce una devolución por mal estado del 20% de la mercancía con un valor de 484 € (IVA incluido) por lo que F&B España procede a la anulación de la factura original y emisión de una nueva con el importe final correcto. - -Se produce una anulación de la factura original (ya dada de alta en SII e incorporada a la declaración de IVA del mes de enero) a través de la opción "Reactivar-Anular" de Etendo. Esta acción creará una factura del tipo "Reverse" con los siguientes datos: - -Clave Tipo Factura = F1-Factura - -Importe total = -2420 - -Tipo de documento = Reverse Sales Invoice - -Fecha Factura: 01-03-2018 - -Fecha Contable: 01-03-2018 - -**Fecha de Operación: 02-01-2018** (fecha de operación de la factura original) - -![](../../../../../../assets/drive/fetQO0nNF-Q3kkLURvyOFzQ46wSUEIIjymSsJCfk9GkiUMInhKjnvjWnmvgsZdi2_oM-dpdLGenWjw9a1h6OFBxj7CUAfQBzNLrTT64XL0pA6zhIrcE8hJxoOFD-KP6Uywr6ZuOKqbzsVSUCIt3J2EE.png) - -Al dar de Alta esa factura de anulación en SII, el fichero XML registrará de forma automática la siguiente información: - -**Periodo SII: 07 - Julio** - -**Ejercicio SII: 2022** - -El periodo asignado en SII no se corresponde con la fecha de operación, si no con la Fecha Factura (julio), por lo que **pasará a formar parte de la liquidación del impuesto del mes de julio**. - -![](../../../../../../assets/drive/qPqZ-pAmr6pO6ALY0z4_PrmOrkEnqWO5b-YqmEbVPZX3DSUQUEd36VwA5LmUZciyEqR4l70kFCR9QIv0u2VgUf-HJEWUEDJcp9mCuBe5J_sW6o8wC5PSAesUXAsH3e_0cOVbsnHg4LmSx3XFpJIQtfs.png) - -Posteriormente, se crea la nueva factura con los importes correctos y con los siguientes datos: - -Tipo de documento = AR Invoice (no reverse) - -Clave tipo factura = Factura Rectificativa - -Tipo Rectificativa = Por Sustitución - -Motivo de la rectificación = R1...R4, a seleccionar por el usuario según el motivo de la rectificación. - -Fecha Factura: 01-03-2018 - -Fecha Contable: 01-03-2018 - -**Fecha de Operación: 02-01-2018** (fecha de operación de la factura original que tendrá que seleccionar el usuario de forma manual) - -![](../../../../../../assets/drive/Ln5HvZyVHOBK-JEMdCGGj7N__H5Bzn8mAm3xqW2jRUNOpDdeOdBXNWaa6F-0lWrHDbXbVFXclkYHFqsQ5e-IJWVuo_o8871Y0TTpk7apWwr7W6lwixlux5lbKxTfBsJBHP1o1RsigQrozwyHTJSuGPk.png) +Más adelante, el **27 de julio de 2022**, se produce una devolución por mal estado del 20 % de la mercancía, por valor de 484 € (IVA incluido). F&B España emite la **factura rectificativa**, que recoge únicamente la variación: -Al dar de Alta esa factura de anulación en SII, el fichero XML registrará de forma automática la siguiente información: +- Tipo de documento = **rectificativo** +- Clave tipo factura = **Factura Rectificativa** +- Motivo de la rectificación = `R1 - Error fundado` +- Importe total (diferencia) = **−484** +- Fecha Factura / Fecha Contable = 27-07-2022 +- **Fecha de Operación: 02-01-2022** (la de la factura original, que el usuario debe seleccionar) -**Periodo SII: 07 - Julio** +![](../../../../../../assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/sii/rectificativa-fuera-plazo.png) -**Ejercicio SII: 2022** +Al dar de alta la rectificativa en SII, el fichero XML registrará: -![](../../../../../../assets/drive/WmCrqgr1mzfFPN73yfGGt5a6jseoeH0wUEAWYyzaOROUsZtcVEtmljTWDUh_CT6KpHmza0a2Oc6P1ZqnczOZF8COnXiEXg2_W2FiQU8vz_fgIINsqydZnwSpojBEjhBGMcJgJXFss9Ihy4eIjKWzgPo.png) +- **Periodo SII: 07 - Julio** — **Ejercicio SII: 2022** -Al igual que la anterior factura que anula el importe de la original, el periodo asignado en SII, no se corresponde con la fecha de operación si no con la Fecha Factura (Julio), por lo que **pasará a formar parte de la liquidación del impuesto del mes de julio**. +![](../../../../../../assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/sii/rectificativa-fuera-plazo-xml.png) -Si la emisión de una factura rectificativa, ya sea por diferencias o por sustitución, se produce en el mismo período del devengo de la operación. Es decir, la emisión de las distintas facturas (Factura original, anulación y rectificativa con motivos R1,R2,R3 Y R4) se emiten en un mismo mes, podrán liquidarse en la declaración del impuesto del mismo periodo. +El periodo asignado en SII **no se corresponde con la fecha de operación (enero), sino con la fecha de factura (julio)**, por lo que la rectificación **pasará a formar parte de la liquidación del impuesto del mes de julio**. -En el resto de casos en los que la fecha de operación de la factura original sea distinta a la emisión de las facturas correctivas posteriores, el periodo de liquidación será distinto. +!!! note "Periodo de liquidación de la rectificativa" + Si la factura rectificativa se emite en el **mismo periodo** del devengo de la operación original, ambas se liquidan en la declaración del mismo periodo. Si la fecha de operación de la original y la fecha de la rectificativa caen en periodos distintos, el periodo de liquidación de la rectificativa será el de su fecha de factura. ### **Libro de Facturas Recibidas** diff --git a/docs/es/user-guide/etendo-classic/optional-features/bundles/spain-localization/validacion-nif-vies.md b/docs/es/user-guide/etendo-classic/optional-features/bundles/spain-localization/validacion-nif-vies.md new file mode 100644 index 0000000000..dd3bf9fb19 --- /dev/null +++ b/docs/es/user-guide/etendo-classic/optional-features/bundles/spain-localization/validacion-nif-vies.md @@ -0,0 +1,61 @@ +--- +title: Validación de NIF/VIES para Terceros +tags: + - Localización Española + - VIES + - NIF + - VAT + - Terceros + - Business Partner +status: new +--- + +# Validación de NIF/VIES para Terceros + +:octicons-package-16: Javapackage: `org.openbravo.module.bptaxidkey` + +## Introducción + +La Localización Española incorpora una **validación del número de IVA (VAT) contra el registro VIES** (*VAT Information Exchange System*) de la Comisión Europea para los terceros (clientes y proveedores) identificados como **operadores intracomunitarios**. + +El objetivo es comprobar, de forma automática, que el número de operador intracomunitario de un tercero **existe y es válido** en el registro oficial de la UE, evitando errores posteriores en las declaraciones y en los envíos a los sistemas de facturación (*SII*, *TicketBAI*, *Verifactu*). + +## Qué se valida + +- Se valida la **existencia y validez del número de IVA intracomunitario** consultando el **servicio web oficial de VIES** de la Comisión Europea. +- La validación se realiza **únicamente** para los terceros cuya **Clave NIF País Residencia** es **`2 - NOI`** (Número de Operador Intracomunitario) y que tengan informado el **Tax ID**. +- El número de IVA debe incluir el **prefijo de país** de dos letras (por ejemplo, `FR12345678901`, `IT15667431009`), a partir del cual se determina el país y el número a consultar. + +!!! info "Resultado no bloqueante ante errores de conexión" + Si el servicio VIES no está disponible, devuelve un error temporal o se agota el tiempo de espera, la validación **no** marca el NIF como inválido: el estado queda como **Pendiente** para poder reintentarse más adelante. De este modo, un problema puntual de conexión con VIES nunca invalida por error un número correcto. + +## Cuándo se ejecuta + +La validación VIES se ejecuta automáticamente **al guardar el tercero** (alta o modificación) en la ventana **Terceros**, cuando su **Clave NIF País Residencia** es `2 - NOI` y tiene un **Tax ID** informado. Si se modifica el Tax ID o la clave y VIES no está accesible en ese momento, el estado se restablece a **Pendiente** para no conservar un resultado que ya no corresponde al número actual. + +El resultado de la validación queda reflejado en el campo **Estado VIES** del tercero (ver más abajo). + + +## Estado VIES + +El resultado de la validación se almacena en el campo de solo lectura **Estado VIES** del tercero, que puede tomar los siguientes valores: + +| Valor | Significado | +|---|---| +| **Válido** (`V`) | El número de identificación fiscal ha sido verificado correctamente en el registro VIES. | +| **No válido** (`I`) | El número de identificación fiscal no figura como válido en el registro VIES. | +| **Pendiente** (`P`) | Aún no verificado, o VIES no estaba accesible en el último intento. Es el valor por defecto. | + +![](../../../../../../assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/vies/estado-vies.png) + +## Comportamiento al cambiar el país + +Cuando se establece o cambia el **país** del tercero a un **país de la Unión Europea distinto de España**, y el **Tax ID** del tercero comienza con el prefijo de dos letras de ese país (por ejemplo, `FR…` para Francia), Etendo **actualiza automáticamente la Clave NIF País Residencia a `2 - NOI`** (si no lo era ya). + +La validación VIES **no se ejecuta en ese mismo momento**, sino **al guardar la cabecera del tercero**: una vez guardado con la Clave NIF `2 - NOI`, se valida el número y se actualiza el campo **Estado VIES**. + +Este cambio automático **no borra otros campos ni cambia la visibilidad de los mismos**: únicamente ajusta la Clave NIF a `2 - NOI`. Si el país seleccionado **no** pertenece a la UE (o es España), o el prefijo del Tax ID no coincide con el país, no se realiza ningún cambio automático. + +--- + +This work is licensed under :material-creative-commons: :fontawesome-brands-creative-commons-by: :fontawesome-brands-creative-commons-sa: [ CC BY-SA 2.5 ES](https://creativecommons.org/licenses/by-sa/2.5/es/){target="_blank"} by [Futit Services S.L](https://etendo.software){target="_blank"}. diff --git a/docs/es/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu.md b/docs/es/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu.md index 3de44a5eca..b6cb727c59 100644 --- a/docs/es/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu.md +++ b/docs/es/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu.md @@ -29,8 +29,6 @@ Este módulo permite a Etendo automatizar procesos clave como la generación, el - Reactivación de facturas. - Anulación de facturas. - - Eliminación de facturas, pedidos o albaranes (incluso en estado borrador). - - Modificación del Rango de un impuesto ya creado. - Configuración simultánea para un mismo emisor de: - *Verifactu* + *SII*. - *Verifactu* + *TBAI*. @@ -218,17 +216,17 @@ Los siguientes campos son **obligatorios**: Los valores informados en esta configuración se utilizarán para generar el registro de facturación que posteriormente se enviará a *Verifactu*. -### Ajustes para Facturas Rectificativas por Sustitución o F3 -Con los nuevos procedimientos de facturación introducidos por la AEAT, ya no es posible reactivar ni modificar una factura que ya haya sido emitida (completada y enviada a *Verifactu*). Para corregir errores en una factura previamente emitida, se incorpora el concepto de **Factura Rectificativa**, que se emite específicamente para corregir incidencias o rectificar datos de una factura anterior. -Por tanto, la utilización de esta funcionalidad requiere realizar determinados ajustes de configuración para garantizar que la información registrada y enviada sea correcta. +### Ajustes Contables para Facturas F3 + +Una **factura F3** (*factura emitida en sustitución de facturas simplificadas facturadas y declaradas*, clave de tipo de factura `F3`) reemplaza a las facturas simplificadas que consolida. Su emisión requiere determinados ajustes de configuración para garantizar que la información contable registrada sea correcta. ### Ajustes Contables -La emisión de una factura sustitutiva requiere ajustar los asientos contables, ya que los únicos datos contables que deben conservarse son los correspondientes a la factura que se crea para sustituir a la anterior. +La emisión de una factura **F3** requiere ajustar los asientos contables, ya que los únicos datos contables que deben conservarse son los correspondientes a la factura F3 que sustituye a las anteriores. Para ello, se ha desarrollado una plantilla contable que: -- Detecta la factura original relacionada. +- Detecta la factura (o facturas) original relacionada. - Copia sus apuntes contables. - Genera los apuntes inversos (intercambiando Debe y Haber), anulando el impacto contable original. @@ -257,9 +255,9 @@ En la ventana **Esquema Contable**, en la solapa **Tablas a Contabilizar**, loca ### Cobro Cero -Cuando la **factura original** no ha sido cobrada, pero tiene un **plan de pagos** definido, al completar la **factura sustitutiva** el sistema genera automáticamente un **cobro cero** en la factura original. +Cuando la **factura original** no ha sido cobrada, pero tiene un **plan de pagos** definido, al completar la **factura F3** el sistema genera automáticamente un **cobro cero** en la factura original. -Este cobro se registra en la **factura original** utilizando la **cuenta contable asociada al tercero**, con el objetivo de insertar el **concepto contable** necesario y dejar la factura original sin un plan de pagos activo. De este modo, el **único plan de pagos activo** queda vinculado a la **nueva factura sustitutiva**. +Este cobro se registra en la **factura original** utilizando la **cuenta contable asociada al tercero**, con el objetivo de insertar el **concepto contable** necesario y dejar la factura original sin un plan de pagos activo. De este modo, el **único plan de pagos activo** queda vinculado a la **nueva factura F3**. Para configurar este **concepto contable**, se debe acceder a la ventana :material-menu: `Aplicación` > `Gestión Financiera` > `Contabilidad` > `Configuración` > `Concepto Contable`, seleccionar la organización legal utilizada y, en la solapa **Contabilidad**, añadir un registro con el **esquema contable** y por último, completar el campo `Cuenta crédito` con la **cuenta asociada al tercero** utilizado. ![](../../../../../../assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu/concepto-contable.png) @@ -268,6 +266,57 @@ Para configurar este **concepto contable**, se debe acceder a la ventana :materi Esta cuenta es la que figura en la ventana :material-menu: `Aplicación` > `Datos Maestros` > `Terceros`, subsolapa **Contabilidad Cliente**, en el campo `Recibos de clientes` del esquema contable utilizado. ![](../../../../../../assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu/tercero.png) +### Cobros Asociados + +Si la factura que se está reemplazando ya tiene cobros asociados, al enlazarla en la solapa **Factura Rectificativa** se mostrará una advertencia informando que se deben regularizar dichos cobros. + +Para tener mayor control, se puede configurar una **alerta** para recibir información sobre facturas de reemplazo que tengan cobros relacionados en sus facturas enlazadas, utilizando la siguiente consulta: + +```sql +SELECT DISTINCT ON (cir.C_Invoice_ID) + cir.C_Invoice_ID AS referencekey_id, + cir.documentno AS record_id, + 0 AS ad_role_id, + NULL AS ad_user_id, + cir.description AS description, + 'Y' AS isActive, + cir.ad_org_id, + cir.ad_client_id, + now() AS created, + 0 AS createdBy, + now() AS updated, + 0 AS updatedBy +FROM FIN_Payment_Schedule p +JOIN FIN_Payment_ScheduleDetail d + ON d.FIN_Payment_Schedule_Invoice = p.FIN_Payment_Schedule_id +JOIN c_invoice_Reverse r + ON r.reversed_c_invoice_id = p.C_Invoice_ID +JOIN ( + SELECT DISTINCT AD_ORG_ID, AD_GET_ORG_LE_BU(AD_ORG_ID, 'LE') AS LE_ORG_ID + FROM c_invoice_reverse +) r_org ON r_org.AD_ORG_ID = r.ad_org_id +JOIN etvfac_verifactu_config v + ON v.AD_ORG_ID = r_org.LE_ORG_ID +JOIN C_Invoice ci + ON ci.C_Invoice_ID = p.C_Invoice_ID +JOIN C_Invoice cir + ON cir.C_Invoice_ID = r.C_Invoice_ID +WHERE p.created >= v.created + AND ci.issotrx = 'Y' + AND ci.processed = 'Y' + AND (cir.em_etvfac_reverseinvtype = 'S' OR cir.em_etvfac_inv_type = 'F3') + AND EXISTS ( + SELECT 1 + FROM FIN_Payment_ScheduleDetail d2 + WHERE d2.FIN_Payment_Schedule_Invoice = p.FIN_Payment_Schedule_id + AND d2.em_etvfac_payment_zero = 'N' + AND d2.FIN_Payment_Detail_ID IS NOT NULL + ) +``` +![](../../../../../../assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu/alerta.png) + +!!! note + Puede consultar más información sobre cómo crear una [Alerta](../../../basic-features/general-setup/application/alert.md) ## Proceso de Envío a Verifactu @@ -322,9 +371,12 @@ Al completar la factura: ![](../../../../../../assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu/rf-adjunto.png) + !!! info "Protección frente al borrado" + Los adjuntos generados por *Verifactu* (como el Registro de Facturación) están **protegidos frente a su eliminación** mientras la organización esté acogida a *Verifactu*, en cumplimiento de la obligación de conservación de los registros. + - Una vez generado el RF, un proceso automático (no requiere configuración previa y se activa automáticamente al instalar el módulo de *Verifactu*) se encargará de enviarlo a la **Agencia Tributaria**. Por defecto, este proceso se ejecuta cada *60 segundos*. -- El estado del envío puede consultarse en la solapa **Verifactu** de la factura o en la ventana **Monitor Verifactu** refrescando los datos. +- El estado del envío puede consultarse en la solapa **Verifactu** de la factura o en la ventana **Monitor Verifactu**. ![](../../../../../../assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu/estado-envio-alta.png) @@ -444,16 +496,18 @@ Para crear una factura rectificativa, debe seleccionarse uno de los siguientes t - `R5`: Factura rectificativa en facturas simplificadas -#### Rectificación por diferencias +En *Verifactu*, para saber **qué rectificación aplicar en cada caso** (disminución, aumento, impago, corrección de tipo de IVA, reemplazo completo, etc.) y qué **motivo** (`R1`–`R5`) usar, consulte la guía común [Facturas Rectificativas](./funcionalidades-generales-para-sifs.md#facturas-rectificativas). + +#### Crear una factura rectificativa -Se informa únicamente la **variación de importes** con respecto a la factura original. +Se informa únicamente la **variación** respecto a la factura original. **Acción:** Crear una nueva factura de venta utilizando un [tipo de documento para facturas rectificativas](./funcionalidades-generales-para-sifs.md#tipos-de-documento-rectificativos), en una **serie distinta** a la original. Luego: 1. Seleccionar el tipo de factura correspondiente (`R1` a `R5`). -2. Indicar que se trata de una **Rectificativa por Diferencias**. -3. Enlazar la factura original en la solapa **Factura Rectificativa**. +2. Enlazar la factura original en la solapa **Factura Rectificativa**. +3. Introducir las líneas con la diferencia y completar la factura para su envío a *Verifactu*. ![](../../../../../../assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu/factura-rectifica-inc-orig.png) ![](../../../../../../assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu/factura-rectifica-inc-rect.png) @@ -462,75 +516,15 @@ Crear una nueva factura de venta utilizando un [tipo de documento para facturas !!! example En este ejemplo, la factura original declaraba 20 unidades del producto, pero en realidad se debían facturar 21. Por lo tanto, la factura rectificativa incluye una línea adicional por esa unidad faltante. -#### Rectificación por Sustitución - -Se reemplaza por completo la factura original. - -**Acción:** -Crear una nueva factura de venta utilizando un [tipo de documento para facturas rectificativas](./funcionalidades-generales-para-sifs.md#tipos-de-documento-rectificativos), en una **serie distinta** a la original. Luego: - -1. Seleccionar el tipo de factura correspondiente (`R1` a `R5`). -2. Indicar que se trata de una **Rectificativa por Sustitución**. -3. Enlazar la factura original en la solapa **Factura Rectificativa**. - - ![](../../../../../../assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu/factura-rectificativa-sust-orig.png) - ![](../../../../../../assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu/factura-rectificativa-sust-rect.png) - ![](../../../../../../assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu/contabilidad-ajustada.png) - - !!! example - En este ejemplo, la factura original incluía un producto incorrecto. Se genera una factura rectificativa **por sustitución** con el producto correcto y se ajusta la contabilidad para reflejar la operación correctamente. +#### Reemplazo completo de una factura -#### Cobros Asociados +Cuando el error obliga a **reemplazar la factura por completo** —por ejemplo, por un error de **destinatario equivocado** (otra persona o NIF distinto)— se utiliza el patrón de **reversión y reemisión**: -Si la factura que se está sustituyendo ya tiene cobros asociados, al enlazarla en la solapa **Factura Rectificativa** se mostrará una advertencia informando que se deben regularizar dichos cobros. - -Para tener mayor control, se puede configurar una **alerta** para recibir información sobre facturas sustitutivas que tengan cobros relacionados en sus facturas enlazadas, utilizando la siguiente consulta: - -```sql -SELECT DISTINCT ON (cir.C_Invoice_ID) - cir.C_Invoice_ID AS referencekey_id, - cir.documentno AS record_id, - 0 AS ad_role_id, - NULL AS ad_user_id, - cir.description AS description, - 'Y' AS isActive, - cir.ad_org_id, - cir.ad_client_id, - now() AS created, - 0 AS createdBy, - now() AS updated, - 0 AS updatedBy -FROM FIN_Payment_Schedule p -JOIN FIN_Payment_ScheduleDetail d - ON d.FIN_Payment_Schedule_Invoice = p.FIN_Payment_Schedule_id -JOIN c_invoice_Reverse r - ON r.reversed_c_invoice_id = p.C_Invoice_ID -JOIN ( - SELECT DISTINCT AD_ORG_ID, AD_GET_ORG_LE_BU(AD_ORG_ID, 'LE') AS LE_ORG_ID - FROM c_invoice_reverse -) r_org ON r_org.AD_ORG_ID = r.ad_org_id -JOIN etvfac_verifactu_config v - ON v.AD_ORG_ID = r_org.LE_ORG_ID -JOIN C_Invoice ci - ON ci.C_Invoice_ID = p.C_Invoice_ID -JOIN C_Invoice cir - ON cir.C_Invoice_ID = r.C_Invoice_ID -WHERE p.created >= v.created - AND ci.issotrx = 'Y' - AND ci.processed = 'Y' - AND (cir.em_etvfac_reverseinvtype = 'S' OR cir.em_etvfac_inv_type = 'F3') - AND EXISTS ( - SELECT 1 - FROM FIN_Payment_ScheduleDetail d2 - WHERE d2.FIN_Payment_Schedule_Invoice = p.FIN_Payment_Schedule_id - AND d2.em_etvfac_payment_zero = 'N' - AND d2.FIN_Payment_Detail_ID IS NOT NULL - ) -``` -![](../../../../../../assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu/alerta.png) +1. Emitir una factura rectificativa, con el **motivo que corresponda** (por ejemplo, **`R4`** cuando el error está en el destinatario), por el **100 % de la original con signo contrario**, dejando la operación original a cero. +2. Emitir una **nueva factura normal** con los datos correctos. -!!! note - Puede consultar más información sobre cómo crear una [Alerta](../../../basic-features/general-setup/application/alert.md) +!!! warning "Efecto económico, no anulación registral" + En el caso de un **destinatario equivocado**, este procedimiento logra el **efecto económico de un abono**, pero **no** el efecto registral de una anulación: la factura original sigue constando en *Verifactu* como un **registro de alta válido** (con su QR verificable). Consulte el detalle en [Reemplazar una factura por completo](./funcionalidades-generales-para-sifs.md#reemplazar-una-factura-por-completo-reversion-y-reemision). ### Rectificaciones desde Pedidos de Venta o Devolución de Cliente @@ -553,7 +547,7 @@ Existen dos ventanas desde las cuales es posible consultar el estado de envío d ### Monitor Verifactu :material-menu: `Aplicación` > `Gestión Financiera` > `Sistemas de Facturación` > `Verifactu` > `Monitor Verifactu` -Permite consultar facturas en estado Rechazada, Parcialmente Aceptada, Aceptada e Inválida. Los tres primeros estados provienen de la AEAT; el último indica errores previos. Se debe pulsar Refrescar Datos para obtener los últimos registros. +Permite consultar facturas en estado Rechazada, Parcialmente Aceptada, Aceptada e Inválida. Los tres primeros estados provienen de la AEAT; el último indica errores previos. ![](../../../../../../assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu/monitor-verifactu.png) @@ -599,19 +593,6 @@ Al imprimir una factura, se incorpora un **código QR** diseñado para facilitar ![](../../../../../../assets/user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu/qr-baja.png) - -## Desinstalar el Módulo - -Para desinstalar el módulo y evitar futuros problemas con registros huérfanos, se debe seguir una secuencia de pasos: - -1. Ejecute la siguiente consulta en la base de datos del entorno - - ``` - DELETE FROM c_attachment_conf WHERE c_attachment_method_id = 'E30F0DBF1C164251B6163AA6B078F2AD'; - ``` - -2. Una vez finalizada correctamente la consulta, [elimine el módulo](../../../../../developer-guide/etendo-classic/developer-tools/etendo-gradle-plugin.md#desinstalar-módulos-uninstallmodule) siguiendo el procedimiento correspondiente al método de instalación (Sources/JARs) - --- This work is licensed under :material-creative-commons: :fontawesome-brands-creative-commons-by: :fontawesome-brands-creative-commons-sa: [ CC BY-SA 2.5 ES](https://creativecommons.org/licenses/by-sa/2.5/es/){target="_blank"} by [Futit Services S.L](https://etendo.software){target="_blank"}. diff --git a/mkdocs.yml b/mkdocs.yml index 7ba01b2fd8..8efb456d76 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -373,6 +373,7 @@ plugins: - Funcionalidades Generales para SIFs: user-guide/etendo-classic/optional-features/bundles/spain-localization/funcionalidades-generales-para-sifs.md - SII para IVA: user-guide/etendo-classic/optional-features/bundles/spain-localization/sii-para-iva.md - TicketBai y Batuz: user-guide/etendo-classic/optional-features/bundles/spain-localization/ticketbai-batuz.md + - Validación de NIF/VIES para Terceros: user-guide/etendo-classic/optional-features/bundles/spain-localization/validacion-nif-vies.md - Veri*Factu: user-guide/etendo-classic/optional-features/bundles/spain-localization/verifactu.md - Warehouse Extensions Bundle: - Overview: user-guide/etendo-classic/optional-features/bundles/warehouse-extensions/overview.md @@ -596,6 +597,9 @@ plugins: - Financial Extensions Bundle: - Overview: developer-guide/etendo-classic/bundles/financial-extensions-bundle/overview.md - Etendo BI Extensions Bundle: developer-guide/etendo-classic/bundles/etendo-bi-extensions.md + - Spanish Localization Bundle: + - Developer Changelog: + - API Changes: developer-guide/etendo-classic/bundles/spain-localization/developer-changelog/apichanges.md - Developer Changelog: - API Changes: developer-guide/etendo-classic/developer-changelog/apichanges.md - Etendo RX: