---
id: object/table/7012
type: object
title: Table 7012 "Purchase Price"
summary: Table 7012 "Purchase Price" in Base Application (Microsoft.Purchases.Pricing). 9 fields, 1 public procedures, 1 events. Present since at least BC23, still in BC30, changed in BC24, BC26, BC28.
tier: official
language: en
tags:
  - table
  - base application
versions:
  introduced: null
  last_changed: "28"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: 02cbfc1aa771a052803dc5492a770fc9f7d1ce46b9d5bf759d5941dd8b119610
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Purchases/Pricing/PurchasePrice.Table.al
    title: src/Layers/W1/BaseApp/Purchases/Pricing/PurchasePrice.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/purchasing-how-record-purchase-price-discount-payment-agreements
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/set-up-business-central/set-up-purchase
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 7012
name: Purchase Price
namespace: Microsoft.Purchases.Pricing
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "26"
  - "28"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 9
  procedures: 2
  events: 1
  subscribers: 0
relations:
  out: 5
  referenced_by: 0
  pages: 2
  extended_by: 0
  event_subscribers: 0
  calls: 0
  called_by: 0
  implements: 0
---

# Table 7012 "Purchase Price"

> Table 7012 "Purchase Price" in Base Application (Microsoft.Purchases.Pricing). 9 fields, 1 public procedures, 1 events. Present since at least BC23, still in BC30, changed in BC24, BC26, BC28.

Base Application · Microsoft.Purchases.Pricing · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Purchases/Pricing/PurchasePrice.Table.al) · facts from BC29

Learn documents this table through its pages: [Page 7012 "Purchase Prices"](../page/7012.md) (1 Learn page), [Page 7190 "Get Purchase Price"](../page/7190.md) (1).

## Properties

| Property | Value |
|---|---|
| Caption | Purchase Price |
| DataClassification | CustomerContent |

## Fields

Explanation: the field's ToolTip in the code; without one, the ToolTip of a page control bound to the field (marked via the page); without that, its Caption (marked caption) when that differs from the name.

| No. | Name | Type | Explanation | Notes |
|---|---|---|---|---|
| 1 | Item No. | Code[20] | Specifies the number of the item that the purchase price applies to. | TableRelation [Table 27 "Item"](../table/27.md); NotBlank |
| 2 | Vendor No. | Code[20] | Specifies the number of the vendor who offers the line discount on the item. | TableRelation [Table 23 "Vendor"](../table/23.md); NotBlank |
| 3 | Currency Code | Code[10] | Specifies the currency code of the purchase price. | TableRelation [Table 4 "Currency"](../table/4.md) |
| 4 | Starting Date | Date | Specifies the date from which the purchase price is valid. |  |
| 5 | Direct Unit Cost | Decimal | Specifies the cost of one unit of the selected item or resource. |  |
| 14 | Minimum Quantity | Decimal | Specifies the minimum quantity of the item that you must buy from the vendor in order to get the purchase price. |  |
| 15 | Ending Date | Date | Specifies the date to which the purchase price is valid. |  |
| 5400 | Unit of Measure Code | Code[10] | Specifies how each unit of the item or resource is measured, such as in pieces or hours. By default, the value in the Base Unit of Measure field on the item or resource card is inserted. | TableRelation [Table 5404 "Item Unit of Measure"](../table/5404.md) ("Item Unit of Measure".Code where("Item No." = field("Item No."))) |
| 5700 | Variant Code | Code[10] | Specifies the variant of the item on the line. | TableRelation [Table 5401 "Item Variant"](../table/5401.md) ("Item Variant".Code where("Item No." = field("Item No."))) |

## Keys

- Key1: Item No., Vendor No., Starting Date, Currency Code, Variant Code, Unit of Measure Code, Minimum Quantity (clustered)
- Key2: Vendor No., Item No., Starting Date, Currency Code, Variant Code, Unit of Measure Code, Minimum Quantity

## Events published

- `OnBeforeNewPurchasePriceInsert(var NewPurchasePrice: Record "Purchase Price"; PurchasePrice: Record "Purchase Price")` (integration)

## Procedures

- `CopyPurchPriceToVendorsPurchPrice(var PurchPrice: Record "Purchase Price"; VendNo: Code[20])`

## Triggers

OnInsert, OnRename

## Relations

- Vendor No.: TableRelation [Table 23 "Vendor"](../table/23.md)
- Item No.: TableRelation [Table 27 "Item"](../table/27.md)
- Currency Code: TableRelation [Table 4 "Currency"](../table/4.md)
- Variant Code: TableRelation [Table 5401 "Item Variant"](../table/5401.md)
- Unit of Measure Code: TableRelation [Table 5404 "Item Unit of Measure"](../table/5404.md)

## Pages and codeunits on this table

- [Page 7012 "Purchase Prices"](../page/7012.md) (source table)
- [Page 7190 "Get Purchase Price"](../page/7190.md) (source table)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24, BC26, BC28

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "table", object_name: "Purchase Price")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
