Importante
Este proceso solamente es necesario para las empresas que estén acogidas a la nueva normativa OSS e IOSS.
La finalidad del presenta artículo es explicar los pasos que se deben realizar para adaptar el SII a los cambios de 01.07.2021 de ventas a distancia con la estructura de configuración actual.
Si la empresa está acogida a ventanilla única o supera los 10.000€, cuando las operaciones tributan en destino, realmente este tipo de operación no está sujeto al IVA español. Por tanto a la hora de subirlo al SII lo subimos por el total como no sujeto, no tenemos que desglosar el IVA.
Se deberán configurar nuevo/os impuesto/os, operaciones fiscales y las venta a clientes comunitarios particulares (configurados como nacionales y en su ficha IdImpuesto de su país), al hacer ventas de bienes/servicios podremos subir las facturas al SII tal como indica la AEAT.
Solución
Se deben seguir los siguientes pasos de configuración: ERP - Configurar nuevos impuestos
En el captura se muestra nuevo impuesto "IVA PT" cuyo Id sería -1 y que es lo que habría que indicar en el Post. |
Una vez tenemos configurado el ERP, tenemos que modificar el comportamiento del SII para poder generar los registros correctamente para este tipo de facturas, se ha preparado un Post de forma temporal para generar facturas con los impuestos creados, en este se deben indicar de forma manual los idImpuesto que han creado:
- Añadir la nueva clave '17' para el SII en los datos estáticos:
INSERT INTO SII_1_1_Clave_Regimen_Cli (ClaveRegimenCli,Descrip) SELECT '17','Operación acogida a alguno de los regímenes previstos en el Capítulo XI del Título IX (OSS e IOSS)'
- Aplicar en el proceso _Post del SII 'pSII_1_1_Actualiza_Factura_Post' la siguiente modificación al final del proceso indicando manualemente los idImpuesto creados:
DECLARE @SII_Canarias AS BIT SELECT @SII_Canarias = dbo.StrToBool(dbo.Valor_Parametro('SII_Canarias',USER)) -- #31 SII Canarias -- Cabecera de las facturas MERGE SII_1_1_Facturas_Cli AS TARGET USING ( SELECT ( SELECT ISNULL(MAX(IdSIIFacturaCli), 0) FROM SII_1_1_FACTURAS_CLI ) + ROW_NUMBER() OVER ( ORDER BY FCC.IdFactura ) IdSIIFacturaCli ,FCC.IdFactura AS IdFactura ,1 AS IdEstado ,YEAR(FCC.FechaFact) AS Ejercicio ,RIGHT('0' + CAST(month(FechaFact) AS VARCHAR), 2) AS Periodo ,E.Nif AS NIFFacturaEmisor ,CAST(FCC.SerieFactura AS VARCHAR) + '/' + cast(FCC.NumFactCliente AS VARCHAR) NumFacturaEmisor ,NULL AS NumeroFacturaEmisorResumenFin ,FCC.FechaFact AS FechaExpedicionFacturaEmisor ,CASE WHEN FCC.Rectificativa = 1 THEN 'R1' ELSE 'F1' END AS TipoFactura ,CASE WHEN FCC.Rectificativa = 1 THEN 'I' ELSE NULL END AS TipoRectificativa ,NULL AS BaseRectificada ,NULL AS CuotaRectificada ,NULL AS CuotaRecargoRectificado ,NULL AS TipoNoExenta ,NULL AS ClaveRegimenEspecialOTrascendenciaAdicional1 ,NULL AS ClaveRegimenEspecialOTrascendenciaAdicional2 ,NULL AS NumRegistroAcuerdoFacturacion ,VLI.ImporteTAIReglasLocalizacion AS ImporteTotal ,NULL AS BaseImponibleACoste ,'Operación acogida a alguno de los regímenes previstos en el Capítulo XI del Título IX (OSS e IOSS)' AS DescripcionOperacion ,NULL AS FacturaSimplificadaArticulos7_2_7_3 ,NULL AS NIFEntidadSucedida ,NULL AS NombreRazonEntidadSucedida ,NULL AS RegPrevioGGEEoREDEMEoCompetencia ,NULL AS Macrodato ,NULL AS ImporteTransmisionInmueblesSujetoAIVA ,NULL AS EmitidaPorTercerosODestinatario ,NULL AS FacturacionDelMercadoDelGas ,NULL AS VariosDestinatarios ,NULL AS Cupon ,NULL AS FacturaSinIdentifDestinatarioAritculo6_1_d ,C.Nombre AS ContraparteNombreRazon ,NULL AS ContraparteNIFRepresentante ,NULL AS ContraparteNIF ,FCC.FechaFact AS FechaOperacion ,'06' AS ContraparteIdOtroIDType ,C.idPais AS ContraparteIdOtroCodigoPais ,C.Nif AS ContraparteIdOtroID ,'17' AS ClaveRegimenEspecialOTrascendencia ,STOA.Eliminar FROM SII_1_1_Temp_Objetos_Actualizar STOA INNER JOIN Facturas_Cli_Cab FCC ON STOA.IdDocObjeto = FCC.IdDoc AND STOA.Objeto = 'SIIFacturaCli' AND STOA.IdDocSesion = @IdDocSesion INNER JOIN Clientes_Datos CD ON CD.IdCliente = FCC.IdCliente OUTER APPLY ( SELECT TOP 1 IdContacto IdContactoG FROM Contactos_Objetos WHERE Objeto = 'Cliente' AND IdDocObjeto = CD.IdDoc AND (FechaHasta >= FCC.FechaActualizacion) AND IdTipo = - 1 ORDER BY FechaHasta DESC ) CG INNER JOIN Contactos C ON C.IdContacto = ISNULL(CG.IdContactoG, CD.IdContactoG) LEFT JOIN SII_1_1_Codigo_Pais P ON C.IdPais = P.IdPais INNER JOIN Series_Facturacion SF ON SF.SerieFactura = FCC.SerieFactura INNER JOIN Empresa E ON E.IdEmpresa = FCC.IdEmpresa INNER JOIN SII_1_1_Empresas SE ON SE.IdEmpresa = E.IdEmpresa CROSS APPLY ( SELECT IdFactura ,SUM(LI.BaseEuros) AS ImporteTAIReglasLocalizacion FROM vLibroIVA LI INNER JOIN Ivas I ON I.IdIva = LI.IdIva AND LI.IdFactura = FCC.IdFactura AND LI.IdLibro = 0 AND LI.TipoFactura IN (0, 3) AND ((I.IdImpuesto IN (/* Indicar los idImpuestos generados*/)AND @SII_Canarias = 0)) WHERE LI.idFactura = FCC.idFactura GROUP BY idFactura ) VLI WHERE EXISTS ( SELECT IdFactura FROM LibroIVA LI INNER JOIN Ivas I ON I.IdIva = LI.IdIva AND LI.IdFactura = FCC.IdFactura AND LI.IdLibro = 0 AND LI.TipoFactura IN (0, 3) AND ((I.IdImpuesto IN (/* Indicar los idImpuestos generados*/) AND @SII_Canarias = 0) ) ) ) AS SOURCE ON (TARGET.IdFactura = SOURCE.IdFactura) WHEN MATCHED THEN UPDATE SET TARGET.Ejercicio = SOURCE.Ejercicio ,TARGET.NIFFacturaEmisOR = SOURCE.NIFFacturaEmisOR ,TARGET.FechaExpedicionFacturaEmisor = SOURCE.FechaExpedicionFacturaEmisor ,TARGET.TipoFactura = SOURCE.TipoFactura ,TARGET.TipoRectificativa = SOURCE.TipoRectificativa ,TARGET.BaseRectificada = SOURCE.BaseRectificada ,TARGET.CuotaRectificada = SOURCE.CuotaRectificada ,TARGET.CuotaRecargoRectificado = SOURCE.CuotaRecargoRectificado ,TARGET.TipoNoExenta = SOURCE.TipoNoExenta ,TARGET.ClaveRegimenEspecialOTrascendenciaAdicional1 = SOURCE.ClaveRegimenEspecialOTrascendenciaAdicional1 ,TARGET.ClaveRegimenEspecialOTrascendenciaAdicional2 = SOURCE.ClaveRegimenEspecialOTrascendenciaAdicional2 ,TARGET.NumRegistroAcuerdoFacturacion = SOURCE.NumRegistroAcuerdoFacturacion ,TARGET.ImporteTotal = SOURCE.ImporteTotal ,TARGET.BaseImponibleACoste = SOURCE.BaseImponibleACoste ,TARGET.DescripcionOperacion = SOURCE.DescripcionOperacion ,TARGET.FacturaSimplificadaArticulos7_2_7_3 = SOURCE.FacturaSimplificadaArticulos7_2_7_3 ,TARGET.NIFEntidadSucedida = SOURCE.NIFEntidadSucedida ,TARGET.NombreRazonEntidadSucedida = SOURCE.NombreRazonEntidadSucedida ,TARGET.RegPrevioGGEEoREDEMEoCompetencia = SOURCE.RegPrevioGGEEoREDEMEoCompetencia ,TARGET.Macrodato = SOURCE.Macrodato ,TARGET.ImporteTransmisionInmueblesSujetoAIVA = SOURCE.ImporteTransmisionInmueblesSujetoAIVA ,TARGET.EmitidaPorTercerosODestinatario = SOURCE.EmitidaPorTercerosODestinatario ,TARGET.FacturacionDelMercadoDelGas = SOURCE.FacturacionDelMercadoDelGas ,TARGET.VariosDestinatarios = SOURCE.VariosDestinatarios ,TARGET.Cupon = SOURCE.Cupon ,TARGET.FacturaSinIdentifDestinatarioAritculo6_1_d = SOURCE.FacturaSinIdentifDestinatarioAritculo6_1_d ,TARGET.ContraparteNombreRazon = SOURCE.ContraparteNombreRazon ,TARGET.ContraparteNIFRepresentante = SOURCE.ContraparteNIFRepresentante ,TARGET.ContraparteNIF = SOURCE.ContraparteNIF ,TARGET.FechaOperacion = SOURCE.FechaOperacion ,TARGET.ContraparteIdOtroIDType = SOURCE.ContraparteIdOtroIDType ,TARGET.ContraparteIdOtroCodigoPais = SOURCE.ContraparteIdOtroCodigoPais ,TARGET.ContraparteIdOtroID = SOURCE.ContraparteIdOtroID ,TARGET.ClaveRegimenEspecialOTrascendencia = SOURCE.ClaveRegimenEspecialOTrascendencia WHEN NOT MATCHED BY TARGET THEN INSERT ( IdSIIFacturaCli ,IdFactura ,IdEstado ,Ejercicio ,Periodo ,NIFFacturaEmisOR ,NumFacturaEmisOR ,FechaExpedicionFacturaEmisor ,TipoFactura ,TipoRectificativa ,BaseRectificada ,CuotaRectificada ,CuotaRecargoRectificado ,TipoNoExenta ,ClaveRegimenEspecialOTrascendenciaAdicional1 ,ClaveRegimenEspecialOTrascendenciaAdicional2 ,NumRegistroAcuerdoFacturacion ,ImporteTotal ,BaseImponibleACoste ,DescripcionOperacion ,FacturaSimplificadaArticulos7_2_7_3 ,NIFEntidadSucedida ,NombreRazonEntidadSucedida ,RegPrevioGGEEoREDEMEoCompetencia ,Macrodato ,ImporteTransmisionInmueblesSujetoAIVA ,EmitidaPorTercerosODestinatario ,FacturacionDelMercadoDelGas ,VariosDestinatarios ,Cupon ,FacturaSinIdentifDestinatarioAritculo6_1_d ,ContraparteNombreRazon ,ContraparteNIFRepresentante ,ContraparteNIF ,FechaOperacion ,ContraparteIdOtroIDType ,ContraparteIdOtroCodigoPais ,ContraparteIdOtroID ,ClaveRegimenEspecialOTrascendencia ) VALUES ( SOURCE.IdSIIFacturaCli ,SOURCE.IdFactura ,SOURCE.IdEstado ,SOURCE.Ejercicio ,SOURCE.Periodo ,SOURCE.NIFFacturaEmisOR ,SOURCE.NumFacturaEmisOR ,SOURCE.FechaExpedicionFacturaEmisor ,SOURCE.TipoFactura ,SOURCE.TipoRectificativa ,SOURCE.BaseRectificada ,SOURCE.CuotaRectificada ,SOURCE.CuotaRecargoRectificado ,SOURCE.TipoNoExenta ,SOURCE.ClaveRegimenEspecialOTrascendenciaAdicional1 ,SOURCE.ClaveRegimenEspecialOTrascendenciaAdicional2 ,SOURCE.NumRegistroAcuerdoFacturacion ,SOURCE.ImporteTotal ,SOURCE.BaseImponibleACoste ,SOURCE.DescripcionOperacion ,SOURCE.FacturaSimplificadaArticulos7_2_7_3 ,SOURCE.NIFEntidadSucedida ,SOURCE.NombreRazonEntidadSucedida ,SOURCE.RegPrevioGGEEoREDEMEoCompetencia ,SOURCE.Macrodato ,SOURCE.ImporteTransmisionInmueblesSujetoAIVA ,SOURCE.EmitidaPorTercerosODestinatario ,SOURCE.FacturacionDelMercadoDelGas ,SOURCE.VariosDestinatarios ,SOURCE.Cupon ,SOURCE.FacturaSinIdentifDestinatarioAritculo6_1_d ,SOURCE.ContraparteNombreRazon ,SOURCE.ContraparteNIFRepresentante ,SOURCE.ContraparteNIF ,SOURCE.FechaOperacion ,SOURCE.ContraparteIdOtroIDType ,SOURCE.ContraparteIdOtroCodigoPais ,SOURCE.ContraparteIdOtroID ,SOURCE.ClaveRegimenEspecialOTrascendencia ); -- Lineas de la factura MERGE SII_1_1_Facturas_Cli_Lineas AS TARGET USING ( SELECT FCC.IdFactura AS IdFactura ,SFC.IdDoc AS IdDocSIIFacturaCli ,FCC.Deudor AS TipoOperacion ,NULL AS Sujeta ,NULL AS Exenta ,NULL AS CausaExencion ,NULL AS BaseImponible ,NULL AS TipoNoExenta ,NULL AS TipoImpositivo ,NULL AS CuotaRepercutida ,NULL AS TipoRecargoEquivalencia ,NULL AS CuotaRecargoEquivalencia ,NULL AS ImportePorArticulos7_14_Otros ,SUM(LI.BaseEuros) AS ImporteTAIReglasLocalizacion FROM SII_1_1_Temp_Objetos_Actualizar STOA INNER JOIN Facturas_Cli_Cab FCC ON STOA.IdDocObjeto = FCC.IdDoc AND STOA.Objeto = 'SIIFacturaCli' AND STOA.IdDocSesion = @IdDocSesion INNER JOIN SII_1_1_Facturas_Cli SFC ON SFC.IdFactura = FCC.IdFactura INNER JOIN Clientes_Datos CD ON CD.IdCliente = FCC.IdCliente INNER JOIN LibroIVA LI ON LI.IdFactura = SFC.IdFactura AND LI.TipoFactura IN (0, 3) AND LI.IdLibro = 0 INNER JOIN IVAs I ON LI.IdIva = I.IdIVA --AND (I.IdImpuesto IN (-1,-2) AND @SII_Canarias = 0) WHERE EXISTS ( SELECT IdFactura FROM LibroIVA LI INNER JOIN Ivas I ON I.IdIva = LI.IdIva AND LI.IdFactura = FCC.IdFactura AND LI.IdLibro = 0 AND LI.TipoFactura IN (0, 3) AND ((I.IdImpuesto IN (/* Indicar los idImpuestos generados*/) AND @SII_Canarias = 0)) ) GROUP BY FCC.IdFactura ,SFC.IdDoc ,FCC.Deudor ) AS SOURCE ON (TARGET.IdFactura = SOURCE.IdFactura) WHEN MATCHED THEN UPDATE SET TARGET.IdFactura = SOURCE.IdFactura ,TARGET.IdDocSIIFacturaCli = SOURCE.IdDocSIIFacturaCli ,TARGET.TipoOperacion = SOURCE.TipoOperacion ,TARGET.Sujeta = SOURCE.Sujeta ,TARGET.Exenta = SOURCE.Exenta ,TARGET.CausaExencion = SOURCE.CausaExencion ,TARGET.BaseImponible = SOURCE.BaseImponible ,TARGET.TipoNoExenta = SOURCE.TipoNoExenta ,TARGET.TipoImpositivo = SOURCE.TipoImpositivo ,TARGET.CuotaRepercutida = SOURCE.CuotaRepercutida ,TARGET.TipoRecargoEquivalencia = SOURCE.TipoRecargoEquivalencia ,TARGET.CuotaRecargoEquivalencia = SOURCE.CuotaRecargoEquivalencia ,TARGET.ImportePorArticulos7_14_Otros = SOURCE.ImportePorArticulos7_14_Otros ,TARGET.ImporteTAIReglasLocalizacion = SOURCE.ImporteTAIReglasLocalizacion WHEN NOT MATCHED BY TARGET THEN INSERT ( IdFactura ,IdDocSIIFacturaCli ,TipoOperacion ,Sujeta ,Exenta ,CausaExencion ,BaseImponible ,TipoNoExenta ,TipoImpositivo ,CuotaRepercutida ,TipoRecargoEquivalencia ,CuotaRecargoEquivalencia ,ImporteTAIReglasLocalizacion ) VALUES ( SOURCE.IdFactura ,SOURCE.IdDocSIIFacturaCli ,SOURCE.TipoOperacion ,SOURCE.Sujeta ,SOURCE.Exenta ,SOURCE.CausaExencion ,SOURCE.BaseImponible ,SOURCE.TipoNoExenta ,SOURCE.TipoImpositivo ,SOURCE.CuotaRepercutida ,SOURCE.TipoRecargoEquivalencia ,SOURCE.CuotaRecargoEquivalencia ,SOURCE.ImporteTAIReglasLocalizacion );
La forma de subir las facturas al SII:
SII Factura de Cliente |
SII Envíos |
Código del cambio: 16513