SAP transaction codeObjectVK13ModuleSD_O2C

VK13 — Display Condition Records for Pricing

VK13 displays existing pricing condition records (prices, discounts, surcharges, freight) for a chosen condition type and key combination, such as customer/material or price list. It is read-only; VK11 creates and VK12 changes. The main source of confusion is that a condition type can have records stored under several different key combinations at once, so checking the wrong one gives a false 'no record found' result even though a price exists.

This page covers VK13, the display transaction for condition records that drive SD pricing. It focuses on how condition records are structured across key combinations and validity periods, and on the diagnostic sequence for the recurring complaint that a price is missing or wrong in a sales document. It also covers which tables the record lives in and how to confirm the data directly.

Reviewed by an ERPClimb SAP consultant on 15 Sept 2026· 1,241 words

Purpose

VK13 shows the value stored in a condition record: a rate, discount percentage, surcharge, freight amount, or tax rate tied to a condition type and a specific combination of key fields, such as sales organization plus customer plus material, or just material, or price list plus customer group. It is display-only, matching the create (VK11) and change (VK12) pair. The structural fact that causes most confusion is that a single condition type is not one record but potentially many, spread across multiple key combinations and access sequence steps. A user checking the material-only combination will see nothing even though a valid record sits under customer/material, or under a price-list combination that takes priority. VK13 only shows what is asked for; picking the wrong combination on the initial screen produces a misleading empty result.

When it is used

VK13 is reached for whenever a price, discount, surcharge, or freight amount in a quotation, sales order, or billing document looks wrong or missing, and the investigation has already confirmed the pricing procedure and access sequence are configured to look for that condition type. It sits below the configuration layer, in master data, and answers the question of whether the actual record exists, is valid for the relevant date, and holds the expected value. It is preferred over VK12 during investigation because display access carries no risk of an accidental overwrite while diagnosing. It is also used before and after data loads or migrations to confirm condition records were created with the right key values and validity, and during cutover checks comparing legacy price lists against what landed in the target system.

How to use it in practice

  • Call VK13 and enter the condition type, or leave it blank to browse the list of condition types
  • Choose the correct key combination from the list presented (customer/material, price list, material, customer group, etc) - this determines which table is read
  • Enter selection values matching the document under investigation: sales organization, distribution channel, customer, material, and a date range
  • Execute and review the resulting list of condition records, noting validity dates and any deletion flag
  • Drill into a specific line to see the rate, unit, currency, and any scale (graduated pricing) attached to it
  • Check for release status or condition supplements if the condition type supports them, since these gate whether the record is usable even when valid

Key data objects

  • KONH - condition record header: validity period (date from/to), condition type, and the record key (KNUMH) linking to the item and scale tables
  • KONP - condition record item: rate or percentage, condition unit, currency, scale type, and per-unit basis (for example per piece versus per 100 pieces)
  • Access table generated per condition table (named with an A-prefix and a number tied to the condition table) - stores the actual key combination values (customer, material, sales org, etc) and links to KONH/KONP via KNUMH
  • KONM and KONW - graduated scale values for quantity-based and value-based scales respectively, linked to the record via KNUMH

How to prove it in the data

Identify the condition table number behind the condition type and key combination in question (visible from the pricing configuration or from the 'key combination' chosen on the VK13 selection screen). Open that access table (Annn) via SE16N, filter on the exact key values from the document - customer, material, sales organization, distribution channel - and on a validity range covering the document's pricing date. Note the KNUMH value returned. Look up KONP by KNUMH to get the rate, unit, and currency, and KONH by the same key to confirm validity dates and check the deletion indicator, which can leave a record technically present but excluded from pricing.

ECC vs S/4HANA

The condition record structure and the VK11/VK12/VK13 transaction pair are unchanged on S/4HANA; the underlying tables and access-sequence logic behave the same as in ECC. A Fiori app for managing sales pricing conditions exists for simpler condition maintenance scenarios, but complex condition tables with many key fields or scales are commonly still handled through the classic transactions. No functional behavior difference to account for during troubleshooting.

Common pitfalls and how to diagnose them

  • Wrong key combination checked - the price is maintained under a different combination than the one queried, for example under customer/material while only material-only was checked; also check the access sequence order and whether an earlier access step is marked exclusive, which stops the search before it reaches the record actually being looked for
  • Validity window mismatch - the record's valid-from/valid-to does not cover the pricing-relevant date used by the document (order date or requested delivery date depending on configuration), or the record carries a deletion indicator that hides it from pricing while leaving it visible in KONH
  • Organizational data mismatch - the record is scoped to a different sales organization, distribution channel, or division than the document, or the condition table has no organizational field at all and the record's apparent scope is broader or narrower than assumed
  • Release status not set - certain condition types (commonly rebate-related) require a separate release step before a maintained record becomes usable in live pricing, so a record can exist, be valid, and still not fire
  • Scale misread - the scale base (quantity versus value) or the scale direction (from-value versus to-value) is read backwards, making a correctly configured tiered price look wrong at the boundary quantity
  • Currency or unit mismatch - the record is maintained per 100 units or in a different currency than assumed, producing an apparent value error that is actually a unit conversion error
  • Reflex fix to avoid: creating a new record in VK12 to 'fix' a missing price without first confirming why the existing one was not found; this produces overlapping validity periods and duplicate records that make the next investigation harder, and changing validity dates on a live record can silently reprice open, undelivered orders on next pricing redetermination

Whose problem this is

Functional SD, specifically the pricing/order management consultant, owns interpretation of key combinations, access sequences, and record validity. Master data or pricing administration teams own actual record maintenance authorization. Basis involvement is rare, limited to table display authorization issues. A good handover states the condition type, the exact key combination and values checked, the document pricing date, and the KNUMH found (or confirmation none was found).

Related SAP objects

Reviewed pages this object connects to in the ERPClimb knowledge graph.

Source: ERPClimb — https://erpclimb.com/sap-tcodes/vk13ERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.