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)
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,
}
}
};