Formato canónico
A continuación describiremos los datos necesarios del formato canónico en alta / subsanación de facturas para la correcta conversión necesaria a Veri*Factu.
Se adjuntan ejemplos de facturas.
Datos a rellenar del formato canónico para Veri*Factu
Será la aplicación la que determine los datos necesarios para su negocio y la posterior utilización para la generación de un registro Veri*Factu.
Si no se indican, se asumen por defecto los valores para los tipos de datos:
| Tipo | Valor |
|---|---|
boolean |
false |
integer |
0 |
decimal |
0 |
string |
|
datetime |
0001-01-01T00:00:00+00:00 |
A continuación se detallan valores a rellenar del formato canónico para Veri*Factu:
| Valor a rellenar |
|---|
| Emisor de factura: * Seller.Tin: Número de identificación fiscal (NIF) del obligado a expedir la factura.* Seller.BusinessName: Nombre-razón social del obligado a expedir la factura. |
Nº Serie (Series) y Nº Factura (Number) que identifica a la factura emitida.Para Veri*Factu el Nº Serie ( Series) es opcional, pero en el caso de TicketBAI, la norma dice que hay que especificar separadamente el Nº Serie (Series) y el Nº Factura (Number). |
Fecha Expedición de la Factura (DateAndTime). Refleja el día en el que se genera formalmente la factura. Es decir, cuando se envía a SDH. |
Descripción del objeto de la factura (Description). |
(Opcional) Fecha en la que se ha realizado la operación siempre que sea diferente a la fecha de expedición (TransactionDate). Refleja el devengo de la factura, sobre la que se calculan los vencimientos y la contabilización. |
| Tipo de factura |
Consideraciones facturas de sustitución y rectificativas (correctives) |
Consideraciones bloque Destinatarios (buyer) |
Consideraciones respecto a Terceros (buyer, thirdParty) |
Importe total de la cuota (sumatorio de la Cuota Repercutida y Cuota de Recargo de Equivalencia) (TotalTaxes). |
Importe total de la factura. (Total). |
En el desglose del detalle es necesario especificar en taxableBases con un límite de 12 elementos (se recomienda agrupar mismos conceptos de impuestos):
|
(Opcional) Cupón (isCoupon). Identificador que especifica si tiene minoración de la base imponible por la concesión de cupones, bonificaciones o descuentos cuando solo se expide el original de la factura.Sólo se podrá rellenar con true si TipoFactura = R5 o R1.Indica que la operación no es una factura completa ni simplificada, sino un cupón canjeable por bienes o servicios.Permite que la AEAT reconozca que la operación no genera factura ordinaria, sino un comprobante equivalente (ticket, cupón, vale). Cuando en normativa fiscal se habla de “factura con cupón”, no se refiere a un vale promocional cualquiera como los que usamos en un supermercado, sino a un concepto concreto. Un cupón es un documento (o código) que concede al cliente un descuento o bonificación en la compra, y ese descuento afecta directamente a la base imponible de la factura (el importe antes de IVA). En esos casos, en lugar de emitir una factura por el importe completo y luego otra nota de crédito, la propia factura original ya incluye la minoración (reducción) de la base imponible gracias al cupón. Por eso el sistema pide marcar ese identificador, para que Hacienda sepa que la factura no refleja el precio íntegro del producto/servicio, sino que ya lleva aplicado un cupón/bonificación que reduce lo que se declara a efectos de IVA. Ejemplos sencillos: * Una empresa de telefonía emite un cupón de 20 € de descuento para la siguiente factura. * Una tienda emite un cupón promocional de 10 % de descuento en la compra actual. * Una aseguradora aplica una bonificación que aparece como “cupón” en la factura del seguro. |
(Opcional) FacturaSimplificadaArt7273 (isSimplifiedArt7273). Factura simplificada que SÍ identifica al destinatario al amparo de los Artículos 7.2 Y 7.3 RD 1619/2012.Sólo se podrá rellenar con true si TipoFactura=F1, F3, R1, R2, R3 o R4. Por ejemplo, cuando una operación no supera los 400€ (IVA incluido), está permitido emitir facturas simplificadas incluso a profesionales. En algunos sectores especiales, como la hostelería, dicho importe puede alcanzar hasta los 3000€, pero se debe identificar al receptor si éste quiere deducirse el IVA. Los artículos 7.2 y 7.3 del RD 1619/2012 permiten que ciertas facturas simplificadas puedan incluirse en el Libro Registro de IVA con efectos de deducción si contienen datos adicionales: * Art. 7.2 → Factura simplificada con identificación del destinatario cuando éste lo solicite, incluyendo NIF y nombre o razón social del destinatario, Domicilio del destinatario, Tipo impositivo aplicado, Cuota tributaria repercutida. * Art. 7.3 → Factura simplificada emitida en sectores con obligación específica de identificar al cliente o con importe superior a 400 € (IVA incluido). |
(Opcional) FacturaSinIdentifDestinatarioArt61d (isNotBuyerArt61d). Factura que NO identifica al destinatario conforme al artículo 6.1.d) RD 1619/2012.Sólo se podrá rellenar a true si TipoFactura=F2 o R5.Por ejemplo, cuando un consumidor final solicita expresamente una factura completa, pero no facilita su identificación fiscal. El artículo 6.1.d) del RD 1619/2012 indica que se permite no incluir la identificación del destinatario en una factura completa cuando el importe no supere 400 € IVA incluido, o en otros casos concretos previstos en la ley (por ejemplo, ciertas ventas al por menor, hostelería, transporte de personas, etc.), siempre que no sea una operación intracomunitaria o con obligación expresa de identificar al cliente. |
Tipo de factura
Especificación del tipo de factura: factura completa, factura simplificada, factura emitida en sustitución de facturas simplificadas o factura rectificativa.
| Tipo Factura | isSimplified |
isSimplifiedSubstitution |
isCorrective |
correctiveKey |
|---|---|---|---|---|
| F1 | ||||
| F2 | true | |||
| F3 | true | |||
| R1 | true | 1 | ||
| R2 | true | 2 | ||
| R3 | true | 3 | ||
| R4 | true | 4 | ||
| R5 | true | true | 5 |
isSimplifiedArt7273=true: A pesar de ser una factura simplificada, se considera como completa. Sólo se podrá rellenar con true si TipoFactura=F1, F3, R1, R2, R3 o R4.
isNotBuyerArt61d=true: A pesar de ser un factura completa, se considera como simplificada. Sólo se podrá rellenar a true si TipoFactura=F2 o R5.
Consideraciones de Facturas de Sustitución y Rectificativas
| Tipo Factura | Bloque FacturasRectificadas o FacturasSustituidas (correctives) |
|---|---|
| F3 | Indicar la lista de facturas emitidas a sustituir en correctives, asignando las facturas (Series y Number) con su fecha expedición (Date). |
| R1 a R5 | Asignar el tipo de factura correctiva en correctiveType.Indicar la lista de facturas emitidas a rectificar en correctives. asignando las facturas (Series y Number) con su fecha de expedición (Date).Si es factura rectificativa por sustitución ( correctiveType=1), su base imponible (Base), cuota repercutida o soportada (Quota) y opcionalmente su cuota recargo de equivalencia (Surcharge). |
Consideraciones bloque Destinatarios
| Tipo Factura | Bloque Destinatarios (buyer) |
|---|---|
| F1 | Obligatorio |
| F2 | No indicarlo. Simplificada |
| F3 | Obligatorio. Factura completa que Sustituye a varias facturas simplificadas |
| R1 a R4 | Obligatorio |
| R5 | No indicarlo. Rectificativa de Simplificada |
Consideraciones respecto a Terceros
| Condición | Acción (buyer, thirdParty) |
|---|---|
isIssuedByThirdParties=true |
Caso de que la factura sea expedida materialmente por un tercero, porque lo emite otro en nombre del obligado tributario. Asignar datos del tercero que expide la factura ( thirdParty):- Identificador del NIF o en el país de residencia ( Tin).- Nombre-razón social ( BusinessName).- En caso ser necesario país de residencia, asignar el tipo de documento ( documentType) y opcionalmente el código del país (country). |
isIssuedByRecipients=true |
Caso de que la factura sea expedida materialmente por un tercero, porque es el destinatario. |
isSimplified=false isSimplifiedArt7273=false |
Asignar datos de destinatario (o contraparte, es decir el cliente) de la operación (buyer):- Nombre-razón social ( BusinessName).- si isNotBuyerArt61d=false el identificador del NIF o en el país de residencia (Tin).- En caso ser necesario país de residencia, asignar el tipo de documento ( documentType) y opcionalmente el código del país. |
Resolución de casos de ejemplos concretos
| Caso |
|---|
| Las facturas de anticipo se deben tratar como una factura normal más, habitualmente de tipo F1. |
| ¿Cómo realizar facturas con IRPF? |
| ¿Cómo realizar facturas de casos de Canarias? |
| ¿Cómo realizar facturas de ventanilla única (OSS)? |
| ¿A quién aplica facturas de terceros desde un SIF Veri*Factu? |
| ¿Cómo se realiza una venta nacional a un cliente intracomunitario? |
| ¿Cómo se realiza una venta intracomunitaria a un cliente intracomunitario? |
| ¿Cómo aplica un régimen de exportación? |
Equivalencia de Formato canónico con Veri*Factu
| Canónico | Veri*Factu |
|---|---|
| Seller / Tin | IDFactura / IDEmisorFactura |
| Seller / BusinessName | NombreRazonEmisor |
| Buyer / Tin | Destinatarios / IDDestinatario / NIF |
| Buyer / Country | Destinatarios / IDDestinatario / IDOtro / CodigoPais |
| Buyer / DocumentType | Destinatarios / IDDestinatario / IDOtro / IDType |
| Buyer / Tin | Destinatarios / IDDestinatario / IDOtro / ID |
| Buyer / BusinessName | Destinatarios / IDDestinatario / NombreRazon |
| ThirdParty / Tin | Tercero / NIF |
| ThirdParty / Country | Tercero / IDOtro / CodigoPais |
| ThirdParty / DocumentType | Tercero / IDOtro / IDType |
| ThirdParty / Tin | Tercero / IDOtro / ID |
| ThirdParty / BusinessName | Tercero / NombreRazon |
| IsIssuedByRecipients | EmitidaPorTerceroODestinatario |
| IsIssuedByThirdParties | EmitidaPorTerceroODestinatario |
| Series | IDFactura / NumSerieFactura |
| Number | IDFactura / NumSerieFactura |
| DateAndTime | IDFactura / FechaExpedicionFactura |
| IsSimplified | TipoFactura |
| IsSimplifiedSubstitution | TipoFactura |
| IsCorrective | TipoFactura |
| CorrectiveKey | TipoFactura |
| CorrectiveType | TipoRectificativa |
| Correctives / Base | ImporteRectificacion / BaseRectificada |
| Correctives / Quota | ImporteRectificacion / CuotaRectificada |
| Correctives / Surcharge | ImporteRectificacion / CuotaRecargoRectificado |
| Correctives / Series | FacturasRectificadas o FacturasSustituidas / IDFacturaRectificada o IDFacturaSustituida / NumSerieFactura |
| Correctives / Number | FacturasRectificadas o FacturasSustituidas / IDFacturaRectificada o IDFacturaSustituida / NumSerieFactura |
| Correctives / Date | FacturasRectificadas o FacturasSustituidas / IDFacturaRectificada o IDFacturaSustituida / FechaExpedicionFactura |
| TransactionDate | FechaOperacion |
| Description | DescripcionOperacion |
| TotalTaxes | CuotaTotal |
| Total | ImporteTotal |
| TaxableBases / CauseExemption | Desglose / DetalleDesglose / OperacionExenta |
| TaxableBases / NonExemptType | Desglose / DetalleDesglose / CalificacionOperacion |
| TaxableBases / BaseOrAmount | Desglose / DetalleDesglose / BaseImponibleOimporteNoSujeto |
| TaxableBases / TaxRate | Desglose / DetalleDesglose / TipoImpositivo |
| TaxableBases / TaxFee | Desglose / DetalleDesglose / CuotaRepercutida |
| TaxableBases / SurchargeTypeEquivalence | Desglose / DetalleDesglose / TipoRecargoEquivalencia |
| TaxableBases / FeeSurchargeEquivalence | Desglose / DetalleDesglose / CuotaRecargoEquivalencia |
| TaxableBases / EquivalenceRegime | Desglose / DetalleDesglose / TipoRecargoEquivalencia |
| TaxableBases / CauseNotSubject | Desglose / DetalleDesglose / CalificacionOperacion |
| TaxableBases / TaxableBaseAtCost | Desglose / DetalleDesglose / BaseImponibleACoste |
| TaxableBases / VATKey | Desglose / DetalleDesglose / ClaveRegimen |
| TaxableBases / TaxType | Desglose / DetalleDesglose / Impuesto |
| IsSimplifiedArt7273 | FacturaSimplificadaArt7273 |
| IsNotBuyerArt61d | FacturaSinIdentifDestinatarioArt61d |
| IsCoupon | Cupon |
{
"series": "string",
"number": "string",
"dateAndTime": "datetime",
"transactionDate": "datetime",
"isSimplified": boolean,
"isSimplifiedSubstitution": boolean,
"seller": {
"tin": "string",
"businessName": "string"
},
"buyer": {
"tin": "string",
"documentType": integer,
"businessName": "string",
"country": "string"
},
"thirdParty": {
"tin": "string",
"documentType": integer,
"businessName": "string",
"country": "string"
},
"isIssuedByThirdParties": boolean,
"isIssuedByRecipients": boolean,
"isCorrective": boolean,
"correctiveKey": integer,
"correctiveType": integer,
"correctives": [
{
"series": "string",
"number": "string",
"date": "datetime",
"base": decimal,
"quota": decimal,
"surcharge": decimal
}
],
"description": "string",
"totalTaxes": decimal,
"total": decimal,
"taxableBases": [
{
"taxType": integer,
"causeExemption": integer,
"nonExemptType": integer,
"causeNotSubject": integer,
"baseOrAmount": decimal,
"taxRate": decimal,
"taxFee": decimal,
"surchargeTypeEquivalence": decimal,
"feeSurchargeEquivalence": decimal,
"equivalenceRegime": boolean,
"taxableBaseAtCost": decimal,
"vatKey": integer
}
],
"isCoupon": boolean,
"isSimplifiedArt7273": boolean,
"isNotBuyerArt61d": boolean
}