Catálogo 07 — Tipo de afectación del IGV
Catálogo SUNAT que indica la afectación del Impuesto General a las Ventas (IGV) para cada línea de un comprobante de venta. Determina si la línea es gravada, exonerada o inafecta, y por tanto qué tributo del Catálogo 05 se aplica.
Tabla de códigos
Sección titulada «Tabla de códigos»| Código | Descripción |
|---|---|
| 10 | Gravado - Operación Onerosa |
| 20 | Exonerado - Operación Onerosa |
| 30 | Inafecto - Operación Onerosa |
Uso típico
Sección titulada «Uso típico»Se utiliza en el campo tipoAfectacionIGV de:
DocumentoVentaDetalle(usado porInvoice,CreditNoteyDebitNote)
openUBL usa este valor para decidir si calcula IGV y qué categoría de tributo reporta en el XML. El valor por defecto es "10" (Gravado - Operación Onerosa).
Ejemplo
Sección titulada «Ejemplo»from openubl.models import Invoice, Proveedor, Cliente, DocumentoVentaDetallefrom decimal import Decimal
invoice = Invoice( serie="F001", numero=127, proveedor=Proveedor(ruc="20100100100", razonSocial="Mi Empresa S.A.C."), cliente=Cliente( nombre="Cliente Ejemplo", numeroDocumentoIdentidad="20123456789", tipoDocumentoIdentidad="6", ), detalles=[ DocumentoVentaDetalle( descripcion="Producto gravado", cantidad=Decimal("2"), precio=Decimal("50.00"), tipoAfectacionIGV="10", ), DocumentoVentaDetalle( descripcion="Producto exonerado", cantidad=Decimal("1"), precio=Decimal("100.00"), tipoAfectacionIGV="20", ), DocumentoVentaDetalle( descripcion="Producto inafecto", cantidad=Decimal("1"), precio=Decimal("80.00"), tipoAfectacionIGV="30", ), ], moneda="PEN",)import { createInvoice } from "@openubl/sdk";import { zInvoice } from "@openubl/sdk/zod.gen";
const invoice = zInvoice.parse({serie: "F001",numero: 127,proveedor: { ruc: "20100100100", razonSocial: "Mi Empresa S.A.C." },cliente: { nombre: "Cliente Ejemplo", numeroDocumentoIdentidad: "20123456789", tipoDocumentoIdentidad: "6",},detalles: [ { descripcion: "Producto gravado", cantidad: 2, precio: 50.00, tipoAfectacionIGV: "10", }, { descripcion: "Producto exonerado", cantidad: 1, precio: 100.00, tipoAfectacionIGV: "20", }, { descripcion: "Producto inafecto", cantidad: 1, precio: 80.00, tipoAfectacionIGV: "30", },],moneda: "PEN",});
const { data, error } = await createInvoice({ body: invoice });if (error) throw new Error(JSON.stringify(error));curl -X POST http://localhost:8000/api/v1/invoice/create -H "Content-Type: application/json" -d '{ "serie": "F001", "numero": 127, "proveedor": { "ruc": "20100100100", "razonSocial": "Mi Empresa S.A.C." }, "cliente": { "nombre": "Cliente Ejemplo", "numeroDocumentoIdentidad": "20123456789", "tipoDocumentoIdentidad": "6" }, "detalles": [ { "descripcion": "Producto gravado", "cantidad": 2, "precio": 50.00, "tipoAfectacionIGV": "10" }, { "descripcion": "Producto exonerado", "cantidad": 1, "precio": 100.00, "tipoAfectacionIGV": "20" }, { "descripcion": "Producto inafecto", "cantidad": 1, "precio": 80.00, "tipoAfectacionIGV": "30" } ], "moneda": "PEN"}'