Cuando trabajas con facturación en SAP, es fácil pensar que una factura es simplemente un documento con importes pero técnicamente, SAP lo organiza de una forma mucho más estructurada.
Una factura es un modelo de datos estructurado con tres niveles bien diferenciados:
Cabecera → Datos generales de la factura (quién, cuándo, número)
Posiciones → Qué se factura (materiales, servicios, cantidades)
Condiciones → Cómo se calculan los importes (precios, descuentos, impuestos)
Estas tres tablas, VBRK, VBRP y PRCD_ELEMENTS, son la base técnica de cualquier documento de factura.
VBRK – Cabecera de factura
VBRK contiene una fila por factura.
Campos importantes que debes conocer
Identificación del documento
| Campo | Descripción | Ejemplo |
|---|---|---|
VBELN | Número de factura (clave) | 900001 |
FKDAT | Fecha de la factura | 2024-01-15 |
FKART | Tipo de factura (clase de factura) | F2 (factura estándar), ZINV (factura custom), etc |
VBTYP | Tipo lógico de documento | M → factura normal, N → cancelación, etc |
Roles de cliente
SAP distingue varios roles de cliente en la cabecera. El más usado para facturación es KUNRG:
| Campo | Rol | Descripción | ¿Cuándo se usa? |
|---|---|---|---|
KUNAG | Sold-to party | Quién contrata o compra | Relación comercial |
KUNRG | Payer | Quién paga la factura | ✅ Facturación (agrupa por este campo) |
KUNRE | Bill-to party | A quién se envía la factura | Facturación externa |
KUNWE | Ship-to party | Quién recibe la mercancía | Logística (menos relevante) |
Regla práctica: En facturación, los documentos se agrupan por
KUNRG(pagador), no porKUNAG. Por eso al buscar datos de cliente desde una factura, debes usarKUNRGpara enlazar conKNA1.
Pricing (enlace a los importes)
| Campo | Descripción |
|---|---|
KNUMV | Número de pricing → clave que conecta con PRCD_ELEMENTS |
KALSM | Esquema de precios (procedimiento de cálculo) |
KNUMVNO es dinero. Es un ID que apunta a la tabla donde realmente están los importes, es decir, es una referencia hacia PRCD_ELEMENTS
Cancelaciones
| Campo | Descripción |
|---|---|
FKSTO | 'X' si la factura está cancelada (marca en la factura original) |
SFAKN | Número de la factura original (aparece en la fila de la factura de cancelación) |
Ejemplo real de cancelación:
Factura original: VBELN = 900001, VBTYP = 'M', SFAKN = '', FKSTO = 'X'
Factura cancelación: VBELN = 900002, VBTYP = 'N', SFAKN = 900001, FKSTO = ''
VBRP – Posiciones de factura
VBRP contiene una fila por línea de factura. Es cada línea que el cliente ve en el documento.
Campos importantes
| Campo | Descripción |
|---|---|
VBELN | Número de factura (clave foránea a VBRK) |
POSNR | Número de posición (000010, 000020, …) |
MATNR | Material o servicio facturado |
ARKTX | Texto de la línea (descripción visible en la factura) |
LMENG | Cantidad facturada |
PRSDT | Fecha de precio |
FBUDA | Fecha contable |
⚠️ Importante: VBRP NO tiene el importe final, solo contiene cantidades y datos descriptivos. El importe está en PRCD_ELEMENTS. La relación se hace mediante: VBRP-VBELN + VBRP-POSNR → PRCD_ELEMENTS-KNUMV + PRCD_ELEMENTS-KPOSN
PRCD_ELEMENTS – Elementos de precios
Esta es la tabla más importante y más incomprendida de la facturación. PRCD_ELEMENTS NO es una tabla de facturas. Es una tabla que documenta cómo SAP llegó al precio final, paso a paso.
SAP no guarda un precio final directamente. Guarda una lista de pasos de cálculo (condiciones). Cada paso es una fila en PRCD_ELEMENTS.
Ejemplo real de cálculo:
| Paso | Concepto | Cálculo | Importe |
|---|---|---|---|
| 1 | Precio base | 100 € | 100 € |
| 2 | Descuento 10% | -10 € | 90 € |
| 3 | IVA 10% | +9 € | 99 € |
| Total | 99 € |
SAP guarda cada línea de este cálculo como una condición en PRCD_ELEMENTS.
Campos clave de PRCD_ELEMENTS
Identificación
| Campo | Descripción |
|---|---|
KNUMV | Número de pricing (viene de VBRK-KNUMV) |
KPOSN | Posición dentro del pricing: 000010 = posición 10, etc. |
Tipo de condición
| Campo | Descripción | Ejemplos típicos |
|---|---|---|
KSCHL | Clave de condición | PR00 (precio base), K004 (descuento), MWST (IVA), ZXXX (custom) |
SAP no entiende de «descuento» o «IVA». Solo entiende de KSCHL. El significado semántico lo defines tú en la configuración.
Importes
| Campo | Descripción |
|---|---|
KWERT | Valor de la condición (en moneda) → el importe real |
KBETR | Porcentaje (si la condición es un porcentaje) |
WAERS | Moneda |
¿Qué es un esquema de cálculo (KALSM)?
KALSM es el procedimiento de precios (pricing procedure). Define:
Cada factura tiene un KALSM en VBRK. Ese esquema determina cómo se comportan las condiciones de PRCD_ELEMENTS.
Las tablas VBRK, VBRP y PRCD_ELEMENTS forman el triángulo de la facturación en SAP:
VBRK→ La cabecera: quién, cuándo, númeroVBRP→ Las líneas: qué se vende, cuántoPRCD_ELEMENTS→ Los importes: cómo se calcula el precio final



