Importar ventas desde otros sistemas
Importar una venta puede ser un reto, especialmente si proviene de un sistema externo. Muchas plataformas generan facturas con errores que pueden provocar resultados fiscales distintos a los esperados en Dinaup.
Por ejemplo, es común que se aplique IVA nacional en entregas destinadas a Canarias, Ceuta o Melilla, cuando en realidad deberían tener un tratamiento diferente.
Qué tener en cuenta al importar una venta
Uno de los errores más habituales es basar la aplicación del tipo de venta únicamente en los datos fiscales del cliente. Es mucho más fiable apoyarse en la dirección de entrega (si está disponible). En su defecto, se puede usar la dirección donde se consume el servicio o, como última opción, la dirección fiscal.
Escenarios contemplados
Dinaup identifica automáticamente los siguientes tipos de operación:
Venta simplificada
Venta nacional (España, excepto Canarias, Ceuta y Melilla)
Venta No TAI (territorios fuera de aplicación del IVA como Canarias, Ceuta y Melilla)
Operación intracomunitaria (VIES)
OSS (One-Stop Shop)
Exportación fuera de la UE
¿Cómo se detecta cada caso?
El sistema sigue este orden para determinar la ubicación fiscal:
Dirección de entrega (si existe)
Dirección de consumo del servicio (si aplica)
Dirección fiscal del cliente (como última opción)
Según la ubicación, Dinaup clasifica la venta de la siguiente forma:
Nacional
Si la dirección está en España excepto Canarias, Ceuta o Melilla
No TAI
Si la dirección está en Canarias, Ceuta o Melilla
VIES
Si el destino está en la UE y el cliente está dado de alta en el VIES
OSS
Si vendes a particulares de la UE bajo el régimen especial OSS. Si una empresa de la UE no está en el VIES se considera como particular en términos tributarios.
Exportación
Si el envío o prestación de servicio es a un país fuera de la Unión Europea
Para utilizar este código necesitarás estar utilizando Dinaup SDK (.NET) con un client logueado.
VatTerritoriality territorialityResult = ClassifyVatTerritoriality(vatID, countryCode, postalCode, isVies);
switch (territorialityResult)
{
case VatTerritoriality.Unknown:
// lógica para desconocido
break;
case VatTerritoriality.Simplified:
// lógica para venta simplificada
break;
case VatTerritoriality.National:
// lógica para venta nacional
break;
case VatTerritoriality.OutOfVatTerritory:
// lógica para Canarias, Ceuta o Melilla
break;
case VatTerritoriality.IntraCommunity:
// lógica para operación intracomunitaria
break;
case VatTerritoriality.OneStopShop:
// lógica para OSS
break;
case VatTerritoriality.Export:
// lógica para exportación fuera de la UE
break;
}
Última actualización