---
id: object/table/7000
type: object
title: Table 7000 "Price List Header"
summary: Table 7000 "Price List Header" in Base Application (Microsoft.Pricing.PriceList). 22 fields, 14 public procedures, 8 events. Present since at least BC23, still in BC30, changed in BC24-25, BC27-28.
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: dcaebc263b310aa1fa7dfb72b555ef5bce1ea918e982a00563e6271fc284e788
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al
    title: src/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/across-prices-and-discounts
    - 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
    - topic/business-central/business-functionality/set-up-business-central/set-up-sales
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 7000
name: Price List Header
caption: Price List
namespace: Microsoft.Pricing.PriceList
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "25"
  - "27"
  - "28"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 22
  procedures: 32
  events: 8
  subscribers: 0
relations:
  out: 8
  referenced_by: 9
  pages: 7
  extended_by: 0
  event_subscribers: 0
  calls: 3
  called_by: 0
  implements: 0
---

# Table 7000 "Price List Header"

> Table 7000 "Price List Header" in Base Application (Microsoft.Pricing.PriceList). 22 fields, 14 public procedures, 8 events. Present since at least BC23, still in BC30, changed in BC24-25, BC27-28.

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

Learn documents this table through its pages: [Page 7017 "Purchase Price Lists"](../page/7017.md) (2 Learn pages), [Page 7018 "Purchase Price List"](../page/7018.md) (2), [Page 7015 "Sales Price Lists"](../page/7015.md) (1), [Page 7016 "Sales Price List"](../page/7016.md) (1).

## Properties

| Property | Value |
|---|---|
| Caption | Price List |
| 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 | Code | Code[20] | Specifies the unique identifier of the price list. |  |
| 2 | Description | Text[250] | Specifies the description of the price list. |  |
| 3 | Source Group | Enum "Price Source Group" | Specifies whether the prices come from groups of customers, vendors or projects. | enum [Enum 7002 "Price Source Group"](../enum/7002.md) |
| 4 | Source Type | Enum "Price Source Type" | Assign-to Type <small>caption</small> | enum [Enum 7003 "Price Source Type"](../enum/7003.md) |
| 5 | Source No. | Code[20] | Specifies the entity to which the prices are assigned. The options depend on the selection in the Assign-to Type field. If you choose an entity, the price list will be used only for that entity. |  |
| 6 | Parent Source No. | Code[20] | Assign-to Parent No. (projects) <small>caption</small> |  |
| 7 | Source ID | Guid | Assign-to ID <small>caption</small> |  |
| 8 | Price Type | Enum "Price Type" | — | enum [Enum 7009 "Price Type"](../enum/7009.md) |
| 9 | Amount Type | Enum "Price Amount Type" | Specifies whether the price list defines prices, discounts, or both. | enum [Enum 7001 "Price Amount Type"](../enum/7001.md) |
| 10 | Currency Code | Code[10] | Specifies the currency code of the price list. | TableRelation [Table 4 "Currency"](../table/4.md) |
| 11 | Starting Date | Date | Specifies the date from which the price is valid. |  |
| 12 | Ending Date | Date | Specifies the last date that the price is valid. |  |
| 13 | Price Includes VAT | Boolean | Specifies if prices include VAT. |  |
| 14 | VAT Bus. Posting Gr. (Price) | Code[20] | Specifies the default VAT business posting group code. <small>via [Page 7013 "Price List Filters"](../page/7013.md)</small> | TableRelation [Table 323 "VAT Business Posting Group"](../table/323.md) (VAT Business Posting Group) |
| 15 | Allow Line Disc. | Boolean | Specifies whether line discounts are allowed. You can change this value on the lines. |  |
| 16 | Allow Invoice Disc. | Boolean | Specifies whether invoice discount is allowed. You can change this value on the lines. |  |
| 17 | No. Series | Code[20] | — | TableRelation [Table 308 "No. Series"](../table/308.md) (No. Series); not editable |
| 18 | Status | Enum "Price Status" | Specifies whether the price list is in Draft status and can be edited, Inactive and cannot be edited or used, or Active and can be edited (when Allow Editing Active Price is enabled) and used for price calculations. | enum [Enum 7005 "Price Status"](../enum/7005.md) |
| 19 | Filter Source No. | Code[20] | — | not editable |
| 20 | Allow Updating Defaults | Boolean | Specifies whether users can change the values in the fields on the price list lines that contain default values from the header. This does not affect the ability to allow line or invoice discounts. | DataClassification SystemMetadata |
| 21 | Assign-to No. | Code[20] | Specifies the entity to which the prices are assigned. The options depend on the selection in the Assign-to Type field. If you choose an entity, the price list will be used only for that entity. | TableRelation [Table 18 "Customer"](../table/18.md), [Table 340 "Customer Discount Group"](../table/340.md), [Table 5050 "Contact"](../table/5050.md) (if ("Source Type" = const(Campaign)) Campaign else if ("Source Type" = const(Contact)) Contact else if ("Source Type" = const(Customer)) Customer else if ("Source Type" = const("Customer Disc. Group")) "Customer Discount Group" else if ("Source Type" = const("Customer Price Group")) "Customer Price ...) |
| 22 | Assign-to Parent No. | Code[20] | Specifies the entity to which the prices are assigned. The options depend on the selection in the Assign-to Type field. If you choose an entity, the price list will be used only for that entity. | TableRelation [Table 167 "Job"](../table/167.md) (if ("Source Type" = const("Job Task")) Job) |

## Keys

- PK: Code
- Key1: Source Type, Source No., Starting Date, Currency Code
- Key2: Status, Price Type, Source Group, Source Type, Source No., Currency Code, Starting Date, Ending Date

## Events published

- `OnAfterBlankDefaults(var PriceListHeader: Record "Price List Header")` (integration)
- `OnAfterCopyFromPriceSource(PriceSource: Record "Price Source")` (integration)
- `OnAfterCopyToPriceSource(var PriceSource: Record "Price Source")` (integration)
- `OnAfterGetNoSeries(var PriceListHeader: Record "Price List Header"; var Result: Code[20])` (integration)
- `OnBeforeHasDraftLines(var PriceListLine: Record "Price List Line"; var Result: Boolean; var IsHandled: Boolean; var PriceListHeader: Record "Price List Header")` (integration)
- `OnBeforeUpdateStatus(var PriceListHeader: Record "Price List Header"; var Updated: Boolean; var IsHandled: Boolean)` (integration)
- `OnUpdateStatusOnBeforeConfirmStatus(PriceListHeader: Record "Price List Header"; Updated: Boolean; var Confirmed: Boolean; var IsHandled: Boolean)` (integration)
- `OnUpdateDatesInLinesOnBeforePriceListLineModifyAllEndingDate(var PriceListLine: Record "Price List Line"; var PriceListHeader: Record "Price List Header")` (integration)

## Procedures

- `IsEditable(): Boolean`
- `IsCRMIntegrationAllowed(StatusActiveFilterApplied: Boolean; AllowUpdatingDefaultsFilterApplied: Boolean): Boolean`
- `AssistEditCode(xPriceListHeader: Record "Price List Header"): Boolean`
- `BlankDefaults()`
- `CheckIfLinesExist(Caption: Text)`
- `CopyFrom(PriceSource: Record "Price Source")`
- `CopyTo(var PriceSource: Record "Price Source")`
- `IsSourceNoAllowed(): Boolean`
- `UpdateAmountType()`
- `SyncDropDownLookupFields()`
- `TestStatusDraft()`
- `HasDraftLines(): Boolean`
- `HasDraftLines(var PriceListLine: Record "Price List Line"): Boolean`
- `LookupSourceNo(): Boolean`

Plus 10 local procedures.

## Triggers

OnInsert, OnDelete, OnRename

## Relations

- Assign-to Parent No.: TableRelation [Table 167 "Job"](../table/167.md)
- Assign-to No.: TableRelation [Table 18 "Customer"](../table/18.md) (conditional)
- No. Series: TableRelation [Table 308 "No. Series"](../table/308.md)
- VAT Bus. Posting Gr. (Price): TableRelation [Table 323 "VAT Business Posting Group"](../table/323.md)
- Assign-to No.: TableRelation [Table 340 "Customer Discount Group"](../table/340.md) (conditional)
- Currency Code: TableRelation [Table 4 "Currency"](../table/4.md)
- Assign-to No.: TableRelation [Table 5050 "Contact"](../table/5050.md) (conditional)
- Assign-to No.: TableRelation [Table 5071 "Campaign"](../table/5071.md) (conditional)

## Referenced by

9 fields in 7 objects relate to this table (TableRelation or CalcFormula).

- [Table 315 "Jobs Setup"](../table/315.md): Default Purch Price List Code, Default Sales Price List Code
- [Table 7021 "Price Line Filters"](../table/7021.md): From Price List Code, To Price List Code
- [Table 311 "Sales & Receivables Setup"](../table/311.md): Default Price List Code
- [Table 312 "Purchases & Payables Setup"](../table/312.md): Default Price List Code
- [Table 7001 "Price List Line"](../table/7001.md): Price List Code
- [Table 7009 "Duplicate Price Line"](../table/7009.md): Price List Code
- [Table 7022 "Price Worksheet Line"](../table/7022.md): Price List Code

## Pages and codeunits on this table

- [Page 7013 "Price List Filters"](../page/7013.md) (source table)
- [Page 7015 "Sales Price Lists"](../page/7015.md) (source table)
- [Page 7016 "Sales Price List"](../page/7016.md) (source table)
- [Page 7017 "Purchase Price Lists"](../page/7017.md) (source table)
- [Page 7018 "Purchase Price List"](../page/7018.md) (source table)
- [Page 7019 "Sales Job Price Lists"](../page/7019.md) (source table)
- [Page 7020 "Purchase Job Price Lists"](../page/7020.md) (source table)

## Calls

From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an `Object::"Name"` argument. Interface dispatch and calls through events are not counted, so the list is not complete.

- [Codeunit 7017 "Price List Management"](../codeunit/7017.md) (3 calls: `IsAllowedEditingActivePrice → IsAllowedEditingActivePrice`, `UpdateStatus → ResolveDuplicatePrices`, `UpdateStatus → VerifyLines`)
- [Codeunit 27 "Confirm Management"](../codeunit/27.md) (2 calls: `UpdateDatesInLines → GetResponse`, `UpdateStatus → GetResponseOrDefault`)
- [Page 456 "No. Series"](../page/456.md) (2 calls: `AssistEditCode → (object)`, `OnInsert → (object)`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24-25, BC27-28

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). The call sections above are our own, per object, from the BC29 call graph. 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: "Price List Header")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
