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
¿Le ha sido útil este artículo?
¡Qué bien!
Gracias por sus comentarios
¡Sentimos mucho no haber sido de ayuda!
Gracias por sus comentarios
Sus comentarios se han enviado
Agradecemos su esfuerzo e intentaremos corregir el artículo




