Esta documentación está en fase de desarrollo y puede contener errores.

Otros supuestos: España

Ejemplos de código para emitir distintos supuestos de factura en España con sus claves y tipos impositivos.

⚠️ Esta información tiene carácter orientativo. Te recomendamos consultar con tu asesor fiscal antes de aplicarla a tu caso concreto.

Factura normal régimen general

Las facturas ordinarias nacionales usan la clave F1 e identifican al receptor. El sistema tiene preconfigurado el Tipo de Venta: Nacional y aplica el Impuesto: IVA 21% Régimen general (IVA, S1, 01, Sin Exención).

var invoice = new Invoice("FCO-5", new DateTime(2024, 11, 15), "B72877814")
{
    InvoiceType = TipoFactura.F1,
    SellerName = "WEFINZ GANDIA SL",
    BuyerID = "B44531218",
    BuyerName = "WEFINZ SOLUTIONS SL",
    Text = "PRESTACION SERVICIOS DESARROLLO SOFTWARE",
    TaxItems = new List<TaxItem>() {
        new TaxItem()
        {
            TaxRate = 4,
            TaxBase = 10,
            TaxAmount = 0.4m
        },
        new TaxItem()
        {
            TaxRate = 21,
            TaxBase = 100,
            TaxAmount = 21
        }
    }
};

Factura simplificada

Las facturas simplificadas usan la clave F2 y no identifican al receptor. El sistema tiene preconfigurado el Tipo de Venta: Simplificada y aplica el Impuesto: IVA 21% Régimen general (IVA, S1, 01, Sin Exención).

var invoice = new Invoice("FSO-24", new DateTime(2024, 12, 4), "B72877814")
{
    InvoiceType = TipoFactura.F2,
    SellerName = "WEFINZ GANDIA SL",
    Text = "PRESTACION SERVICIOS DESARROLLO SOFTWARE",
    TaxItems = new List<TaxItem>() {
        new TaxItem()
        {
            TaxRate = 4,
            TaxBase = 10,
            TaxAmount = 0.4m
        },
        new TaxItem()
        {
            TaxRate = 21,
            TaxBase = 100,
            TaxAmount = 21
        }
    }
};

Factura recargo de equivalencia

Las facturas con recargo de equivalencia usan la clave F1 e identifican al receptor. El sistema tiene preconfigurado el Tipo de Venta: Nacional, aplicando Impuesto: IVA 21% Régimen general (IVA, S1, 01, Sin Exención).

Aunque existe la clave de régimen 18: L8A: Recargo de equivalencia..., no es necesario seleccionarla: Dinaup trata igual la clave 01 y la 18. En ventas existe un campo llamado Aplica recargo de equivalencia, y en función de ese campo Dinaup informa correctamente a la AEAT.

Para activar el recargo de equivalencia en una venta se debe marcar el checkbox Recargo de equivalencia en la pestaña de Parámetros

Se puede marcar Vender con recargo de equivalencia, en la ficha del cliente para que se marque automáticamente en las ventas.

var invoice = new Invoice("FCO-6", new DateTime(2024, 10, 14), "B72877814")
{
    InvoiceType = TipoFactura.F1,
    SellerName = "WEFINZ GANDIA SL",
    BuyerID = "B44531218",
    BuyerName = "WEFINZ SOLUTIONS SL",
    Text = "VENTA A COMERCIO MINORISTA",
    TaxItems = new List<TaxItem>() {
        new TaxItem()
        {
            TaxScheme = ClaveRegimen.RecEquivPeqEmp,
            TaxType = CalificacionOperacion.S1,
            TaxRate = 21,
            TaxBase = 1000,
            TaxAmount = 210m,
            TaxRateSurcharge = 5.2m, // Tipo recargo equivalencia
            TaxAmountSurcharge = 52m // Cuota recargo equivalencia
        }
    }
};

Factura rectificativa

// Creamos una instacia de la clase factura para la factura rectificativa
var invoiceRectif = new Invoice("GIT-AB-0076", new DateTime(2024, 12, 10), "B72877814")
{
    InvoiceType = TipoFactura.R1,
    SellerName = "WEFINZ GANDIA SL",
    BuyerID = "B44531218",
    BuyerName = "WEFINZ SOLUTIONS SL",
    Text = "ABONO ERROR PRECIO FACTURA GIT-EJ-0065",
    TaxItems = new List<TaxItem>() 
    {
        new TaxItem()
        {
            TaxRate = 21,
            TaxBase = -100,
            TaxAmount = -21
        }
    },
    RectificationItems = new List<RectificationItem>() 
    { 
        new RectificationItem()
        { 
            InvoiceID = "GIT-EJ-0076",
            InvoiceDate = new DateTime(2024, 12, 4)
        }
    }
};

Factura rectificativa sustitutiva


// Creamos una instacia de la clase factura para la factura rectificativa
var invoiceRectif = new Invoice("GIT-AB-0085", new DateTime(2025, 3, 12), "B72877814")
{
    InvoiceType = TipoFactura.R1,
    SellerName = "WEFINZ GANDIA SL",
    BuyerID = "B44531218",
    BuyerName = "WEFINZ SOLUTIONS SL",
    Text = "ABONO ERROR PRECIO FACTURA GIT-EJ-00651",
    TaxItems = new List<TaxItem>()
    {
        new TaxItem()
        {
            TaxRate = 21,
            TaxBase = 100,
            TaxAmount = 21
        }
    },
    RectificationItems = new List<RectificationItem>()
    {
        new RectificationItem()
        {
            InvoiceID = "GIT-EJ-00651",
            InvoiceDate = new DateTime(2025, 3, 12)
        }
    }
};

Factura a la Administración con IVA diferido

Las facturas a Administración Pública con IVA diferido usan la clave F1, identifican al receptor y requieren clave de régimen 14. Se aplica el Impuesto: IVA para la Administración pública con IVA diferido (IVA, S1, 14, Sin Exención).

var invoice = new Invoice("FCO-7", new DateTime(2024, 10, 10), "B72877814")
{
    InvoiceType = TipoFactura.F1,
    SellerName = "WEFINZ GANDIA SL",
    BuyerID = "P1203200I",
    BuyerName = "AYUNTAMIENTO DE BURRIANA",
    Text = "CONSTRUCCION NUEVAS OFICINAS",
    OperationDate = new DateTime(2024, 12, 10), // Fecha operación obligatoria
    TaxItems = new List<TaxItem>() {
        new TaxItem()
        {
            TaxScheme = ClaveRegimen.ObraPteDevengoAdmonPublica,
            TaxType = CalificacionOperacion.S1,
            TaxRate = 21,
            TaxBase = 1000,
            TaxAmount = 210m,
        }
    }
};

Factura operación No Sujeta artículo 7, 14, otros

Se aplican los impuestos correspondientes (Otro, N1, 01, Sin Exención)

// Creamos una instacia de la clase factura
var invoice = new Invoice("FCO-8", new DateTime(2024, 10, 14), "B72877814")
{
    InvoiceType = TipoFactura.F1,
    SellerName = "WEFINZ GANDIA SL",
    BuyerID = "123456789",
    BuyerName = "CLIENTE EXTRANJERO SERVICIOS INFORMATICOS",
    BuyerIDType = IDType.PASAPORTE,
    BuyerCountryID = "US",
    Text = "SERVICIOS INFORMATICOS",
    TaxItems = new List<TaxItem>() {
        new TaxItem()
        {
            Tax = Impuesto.OTROS,
            TaxType = CalificacionOperacion.N1,
            TaxBase = 1000,
        }
    }
};

Factura operación No Sujeta por Reglas de localización

Las facturas no sujetas por reglas de localización usan la clave F1 con calificación N2. El sistema tiene preconfigurado el Tipo de Venta: Exportación y se aplica el Impuesto: No Sujeto por reglas de Localización (Otro, N2).

// Creamos una instacia de la clase factura
var invoice = new Invoice("FEO-1", new DateTime(2024, 10, 14), "B72877814")
{
    InvoiceType = TipoFactura.F1,
    SellerName = "WEFINZ GANDIA SL",
    BuyerID = "123456789",
    BuyerName = "CLIENTE EXTRANJERO SERVICIOS INFORMATICOS",
    BuyerIDType = IDType.PASAPORTE,
    BuyerCountryID = "US",
    Text = "CLIENTE EXTRANJERO SERVICIOS INFORMATICOS",
    TaxItems = new List<TaxItem>() {
        new TaxItem()
        {
            Tax = Impuesto.OTROS,
            TaxType = CalificacionOperacion.N2,
            TaxBase = 1000,
        }
    }
};

Factura con Suplidos

Emitir Factura con Suplidos


Factura exenta articulo 20 LIVA (Exenciones en operaciones interiores)

Las facturas exentas por el artículo 20 de la LIVA (operaciones interiores exentas) usan la clave F1 con causa de exención E1.

var invoice = new Invoice("FCO-9", new DateTime(2024, 12, 11), "B72877814")
{
    InvoiceType = TipoFactura.F1,
    SellerName = "WEFINZ GANDIA SL",
    BuyerID = "B44531218",
    BuyerName = "WEFINZ SOLUTIONS SL",
    Text = "C# PROGRAMMING COURSE",
    TaxItems = new List<TaxItem>() {
        new TaxItem()
        {
            TaxException = CausaExencion.E1,
            TaxBase = 200,
        }
    }
};

Factura exenta articulo 25 LIVA (Entrega intracomunitaria)

Impuesto: VIES

var invoice = new Invoice("FIO-2", new DateTime(2025, 2, 7), "B12959755")
{
    InvoiceType = TipoFactura.F1,
    SellerName = "IRENE SOLUTIONS SL",
    BuyerID = "IE3668997OH",
    BuyerName = "GOOGLE CLOUD EMEA LIMITED",
    BuyerCountryID = "IE",
    BuyerIDType = IDType.NIF_IVA,
    Text = "ENTREGA INTRACOMUNITARIA: COMPONENTES HARDWARE",
    TaxItems = new List<TaxItem>() {
        new TaxItem()
        {
            TaxException = CausaExencion.E5,
            TaxBase = 200,
        }
    }
};


Factura a cliente con VAT number de la UE

// Creamos una instacia de la clase factura
var invoice = new Invoice("FCO-10", new DateTime(2025, 1, 9), "B72877814")
{
    InvoiceType = TipoFactura.F1,
    SellerName = "WEFINZ GANDIA SL",
    BuyerID = "IE3668997OH",
    BuyerName = "GOOGLE CLOUD EMEA LIMITED",
    BuyerIDType = IDType.NIF_IVA,
    BuyerCountryID = "IE",
    Text = "SERVICIOS INFORMATICOS",
    TaxItems = new List<TaxItem>() {
        new TaxItem()
        {
            TaxRate = 21,
            TaxBase = 100,
            TaxAmount = 21
        }
    }
};


Factura a cliente con pasaporte como identificador

var invoice = new Invoice("FCO-11", new DateTime(2025, 1, 9), "B72877814")
{
    InvoiceType = TipoFactura.F1,
    SellerName = "WEFINZ GANDIA SL",
    BuyerID = "P4366918",
    BuyerName = "ESTIVE SOTANO MENGANO",
    BuyerIDType = IDType.PASAPORTE,
    BuyerCountryID = "US",
    Text = "SERVICIOS INFORMATICOS",
    TaxItems = new List<TaxItem>() {
        new TaxItem()
        {
            TaxRate = 21,
            TaxBase = 100,
            TaxAmount = 21
        }
    }
};

Factura IGIC Canarias

Impuesto IGIC

var invoice = new Invoice("FCO-12", new DateTime(2024, 12, 4), "B72877814")
{
    InvoiceType = TipoFactura.F1,
    SellerName = "WEFINZ GANDIA SL",
    BuyerID = "B44531218",
    BuyerName = "WEFINZ SOLUTIONS SL",
    Text = "PRESTACION SERVICIOS DESARROLLO SOFTWARE",
    TaxItems = new List<TaxItem>() {
        new TaxItem()
        {
            TaxScheme = ClaveRegimen.RegimenGeneral,
            Tax = Impuesto.IGIC,
            TaxRate = 7,
            TaxBase = 100,
            TaxAmount = 7
        }
    }
};

Factura REBU (Régimen especial de los bienes usados, objetos de arte, antigüedades y objetos de colección)

Impuesto: REBU (Régimen especial de los bienes usados...)

var invoice = new Invoice("GIT-EJ-00809", new DateTime(2025, 2, 27), "B12959755")
{
    InvoiceType = TipoFactura.F1,
    SellerName = "IRENE SOLUTIONS SL",
    BuyerID = "B44531218",
    BuyerName = "WEFINZ SOLUTIONS SL",
    Text = "VENTA SMARTPHONE REACONDICIONADO",
    TaxItems = new List<TaxItem>() {
        new TaxItem()
        {
            TaxScheme = ClaveRegimen.Rebu,
            TaxBase = 1000m,
        }
    }
};

On this page