---
id: object/table/122
type: object
title: Table 122 "Purch. Inv. Header"
summary: Table 122 "Purch. Inv. Header" in Base Application (Microsoft.Purchases.History). 114 fields, 9 public procedures, 6 events. Present since at least BC23, still in BC30, changed in BC24-29.
tier: official
language: en
tags:
  - table
  - base application
versions:
  introduced: null
  last_changed: "29"
  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: be9b835c85106fc205bee14ad0241f0cf0cb16c77e941e6514c06f41686433b3
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Purchases/History/PurchInvHeader.Table.al
    title: src/Layers/W1/BaseApp/Purchases/History/PurchInvHeader.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/across-edit-posted-document
    - https://learn.microsoft.com/dynamics365/business-central/finance-how-use-edocuments-purchase
    - https://learn.microsoft.com/dynamics365/business-central/finance-sustainability-journal
    - https://learn.microsoft.com/dynamics365/business-central/purchasing-how-correct-cancel-unpaid-purchase-invoices
    - https://learn.microsoft.com/dynamics365/business-central/purchasing-how-record-purchases
    - https://learn.microsoft.com/dynamics365/business-central/purchasing-how-to-combine-receipts
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/finance/set-up-and-use-e-documents
    - topic/business-central/business-functionality/general-business-functionality
    - topic/business-central/business-functionality/purchasing
    - topic/business-central/business-functionality/sustainability-management
  localizations:
    - localization/at
    - localization/au
    - localization/be
    - localization/ca
    - localization/ch
    - localization/de
    - localization/es
    - localization/fi
    - localization/it
    - localization/mx
    - localization/nl
    - localization/no
    - localization/nz
    - localization/ru
    - localization/se
    - localization/us
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/8959
object_type: table
object_id: 122
name: Purch. Inv. Header
namespace: Microsoft.Purchases.History
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"
  - "26"
  - "27"
  - "28"
  - "29"
source_major: "29"
obsolete: null
countries:
  - at
  - au
  - be
  - ca
  - ch
  - de
  - es
  - fi
  - it
  - mx
  - nl
  - "no"
  - nz
  - ru
  - se
  - us
ms_search_form_ids: []
counts:
  fields: 114
  procedures: 16
  events: 6
  subscribers: 0
relations:
  out: 60
  referenced_by: 16
  pages: 6
  extended_by: 5
  event_subscribers: 6
  calls: 5
  called_by: 0
  implements: 0
---

# Table 122 "Purch. Inv. Header"

> Table 122 "Purch. Inv. Header" in Base Application (Microsoft.Purchases.History). 114 fields, 9 public procedures, 6 events. Present since at least BC23, still in BC30, changed in BC24-29.

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

Learn documents this table through its pages: [Page 138 "Posted Purchase Invoice"](../page/138.md) (4 Learn pages), [Page 146 "Posted Purchase Invoices"](../page/146.md) (4).

## Properties

| Property | Value |
|---|---|
| Caption | Purch. Inv. Header |
| 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 |
|---|---|---|---|---|
| 2 | Buy-from Vendor No. | Code[20] | Specifies the identifier of the vendor that you bought the items from. | TableRelation [Table 23 "Vendor"](../table/23.md); NotBlank |
| 3 | No. | Code[20] | Specifies the posted invoice number. |  |
| 4 | Pay-to Vendor No. | Code[20] | Specifies the number of the vendor that you received the invoice from. | TableRelation [Table 23 "Vendor"](../table/23.md); NotBlank |
| 5 | Pay-to Name | Text[100] | Specifies the name of the vendor who you received the invoice from. |  |
| 6 | Pay-to Name 2 | Text[50] | Specifies an additional part of the name of the vendor who you receive the invoice from. |  |
| 7 | Pay-to Address | Text[100] | Specifies the address of the vendor that you received the invoice from. |  |
| 8 | Pay-to Address 2 | Text[50] | Specifies additional address information. |  |
| 9 | Pay-to City | Text[30] | Specifies the city of the vendor on the purchase document. | TableRelation [Table 225 "Post Code"](../table/225.md) ("Post Code".City) |
| 10 | Pay-to Contact | Text[100] | Specifies the name of the person you should contact at the vendor who you received the invoice from. |  |
| 11 | Your Reference | Text[35] | — |  |
| 12 | Ship-to Code | Code[10] | Specifies the address on purchase orders shipped with a drop shipment directly from the vendor to a customer. | TableRelation [Table 222 "Ship-to Address"](../table/222.md) ("Ship-to Address".Code where("Customer No." = field("Sell-to Customer No."))) |
| 13 | Ship-to Name | Text[100] | Specifies the name of the customer at the address that the items are shipped to. |  |
| 14 | Ship-to Name 2 | Text[50] | Specifies an additional part of the name of the company at the address to which the items in the purchase order were shipped. |  |
| 15 | Ship-to Address | Text[100] | Specifies the address that the items in the purchase order were shipped to. |  |
| 16 | Ship-to Address 2 | Text[50] | Specifies additional address information. |  |
| 17 | Ship-to City | Text[30] | Specifies the city of the vendor on the purchase document. | TableRelation [Table 225 "Post Code"](../table/225.md) ("Post Code".City) |
| 18 | Ship-to Contact | Text[100] | Specifies the name of a contact person at the address that the items in the purchase order were shipped to. |  |
| 19 | Order Date | Date | — |  |
| 20 | Posting Date | Date | Specifies the date the purchase header was posted. |  |
| 21 | Expected Receipt Date | Date | Specifies the date on which the invoiced items were expected. |  |
| 22 | Posting Description | Text[100] | Specifies any text that is entered to accompany the posting, for example for information to auditors. |  |
| 23 | Payment Terms Code | Code[10] | Specifies the code to use to find the payment terms that apply to the purchase header. | TableRelation [Table 3 "Payment Terms"](../table/3.md) (Payment Terms) |
| 24 | Due Date | Date | Specifies when the invoice is due. The program calculates the date using the Payment Terms Code and Document Date fields on the purchase header. |  |
| 25 | Payment Discount % | Decimal | Specifies the payment discount percent granted if payment is made on or before the date in the Pmt. Discount Date field. |  |
| 26 | Pmt. Discount Date | Date | Specifies the date on which the amount in the entry must be paid for a payment discount to be granted. |  |
| 27 | Shipment Method Code | Code[10] | Specifies the delivery conditions of the related shipment, such as free on board (FOB). | TableRelation [Table 10 "Shipment Method"](../table/10.md) (Shipment Method) |
| 28 | Location Code | Code[10] | Specifies the code for the location where the items are registered. | TableRelation [Table 14 "Location"](../table/14.md) (Location where("Use As In-Transit" = const(false))) |
| 29 | Shortcut Dimension 1 Code | Code[20] | Specifies the code for Shortcut Dimension 1, which is one of two global dimension codes that you set up in the General Ledger Setup window. | TableRelation [Table 349 "Dimension Value"](../table/349.md) ("Dimension Value".Code where("Global Dimension No." = const(1))) |
| 30 | Shortcut Dimension 2 Code | Code[20] | Specifies the code for Shortcut Dimension 2, which is one of two global dimension codes that you set up in the General Ledger Setup window. | TableRelation [Table 349 "Dimension Value"](../table/349.md) ("Dimension Value".Code where("Global Dimension No." = const(2))) |
| 31 | Vendor Posting Group | Code[20] | Specifies the vendor's market type to link business transactions made for the vendor with the appropriate account in the general ledger. | TableRelation [Table 93 "Vendor Posting Group"](../table/93.md) (Vendor Posting Group); not editable |
| 32 | Currency Code | Code[10] | Specifies the currency code used to calculate the amounts on the invoice. | TableRelation [Table 4 "Currency"](../table/4.md); not editable |
| 33 | Currency Factor | Decimal | — |  |
| 35 | Prices Including VAT | Boolean | — |  |
| 37 | Invoice Disc. Code | Code[20] | — |  |
| 41 | Language Code | Code[10] | — | TableRelation [Table 8 "Language"](../table/8.md) |
| 42 | Format Region | Text[80] | — | TableRelation "Language Selection"."Language Tag" |
| 43 | Purchaser Code | Code[20] | Specifies which purchaser is assigned to the vendor. | TableRelation [Table 13 "Salesperson/Purchaser"](../table/13.md) (Salesperson/Purchaser) |
| 44 | Order No. | Code[20] | Specifies the number of the purchase order that this invoice was posted from. |  |
| 46 | Comment | Boolean | — | FlowField: exist("Purch. Comment Line" where("Document Type" = const("Posted Invoice"), "No." = field("No."), "Document Line No." = const(0))); not editable |
| 47 | No. Printed | Integer | Specifies how many times the document has been printed. | not editable |
| 51 | On Hold | Code[3] | — |  |
| 52 | Applies-to Doc. Type | Enum "Gen. Journal Document Type" | — | enum [Enum 6 "Gen. Journal Document Type"](../enum/6.md) |
| 53 | Applies-to Doc. No. | Code[20] | — |  |
| 55 | Bal. Account No. | Code[20] | — | TableRelation [Table 15 "G/L Account"](../table/15.md), [Table 270 "Bank Account"](../table/270.md) (if ("Bal. Account Type" = const("G/L Account")) "G/L Account" else if ("Bal. Account Type" = const("Bank Account")) "Bank Account") |
| 60 | Amount | Decimal | Specifies the total, in the currency of the invoice, of the amounts on all the invoice lines. | FlowField: sum("Purch. Inv. Line".Amount where("Document No." = field("No."))); not editable |
| 61 | Amount Including VAT | Decimal | Specifies the total of the amounts, including VAT, on all the lines on the document. | FlowField: sum("Purch. Inv. Line"."Amount Including VAT" where("Document No." = field("No."))); not editable |
| 66 | Vendor Order No. | Code[35] | Specifies the vendor's order number. |  |
| 68 | Vendor Invoice No. | Code[35] | Specifies the vendor's own invoice number. |  |
| 70 | VAT Registration No. | Text[20] | — |  |
| 72 | Sell-to Customer No. | Code[20] | — | TableRelation [Table 18 "Customer"](../table/18.md) |
| 73 | Reason Code | Code[10] | — | TableRelation [Table 231 "Reason Code"](../table/231.md) (Reason Code) |
| 74 | Gen. Bus. Posting Group | Code[20] | — | TableRelation [Table 250 "Gen. Business Posting Group"](../table/250.md) (Gen. Business Posting Group) |
| 76 | Transaction Type | Code[10] | — | TableRelation [Table 258 "Transaction Type"](../table/258.md) (Transaction Type) |
| 77 | Transport Method | Code[10] | — | TableRelation [Table 259 "Transport Method"](../table/259.md) (Transport Method) |
| 78 | VAT Country/Region Code | Code[10] | — | TableRelation [Table 9 "Country/Region"](../table/9.md) (Country/Region) |
| 79 | Buy-from Vendor Name | Text[100] | Specifies the name of the vendor who shipped the items. |  |
| 80 | Buy-from Vendor Name 2 | Text[50] | Specifies an additional part of the name of the vendor that you’re buying from. |  |
| 81 | Buy-from Address | Text[100] | Specifies the address of the vendor who shipped the items. |  |
| 82 | Buy-from Address 2 | Text[50] | Specifies additional address information. |  |
| 83 | Buy-from City | Text[30] | Specifies the city of the vendor on the purchase document. | TableRelation [Table 225 "Post Code"](../table/225.md) ("Post Code".City) |
| 84 | Buy-from Contact | Text[100] | Specifies the name of the contact person at the vendor who delivered the items. |  |
| 85 | Pay-to Post Code | Code[20] | Specifies the post code of the vendor that you received the invoice from. | TableRelation [Table 225 "Post Code"](../table/225.md) (Post Code) |
| 86 | Pay-to County | Text[30] | Specifies the state, province or county as a part of the address. |  |
| 87 | Pay-to Country/Region Code | Code[10] | Specifies the country or region of the ship-to address. | TableRelation [Table 9 "Country/Region"](../table/9.md) (Country/Region) |
| 88 | Buy-from Post Code | Code[20] | Specifies the post code of the vendor who delivered the items. | TableRelation [Table 225 "Post Code"](../table/225.md) (Post Code) |
| 89 | Buy-from County | Text[30] | Specifies the state, province or county as a part of the address. |  |
| 90 | Buy-from Country/Region Code | Code[10] | Specifies the country or region of the ship-to address. | TableRelation [Table 9 "Country/Region"](../table/9.md) (Country/Region) |
| 91 | Ship-to Post Code | Code[20] | Specifies the postal code of the address that the items are shipped to. | TableRelation [Table 225 "Post Code"](../table/225.md) (Post Code) |
| 92 | Ship-to County | Text[30] | Specifies the state, province or county as a part of the address. |  |
| 93 | Ship-to Country/Region Code | Code[10] | Specifies the country or region of the ship-to address. | TableRelation [Table 9 "Country/Region"](../table/9.md) (Country/Region) |
| 94 | Bal. Account Type | enum "Payment Balance Account Type" | — | enum [Enum 96 "Payment Balance Account Type"](../enum/96.md) |
| 95 | Order Address Code | Code[10] | Specifies the order address of the related vendor. | TableRelation [Table 224 "Order Address"](../table/224.md) ("Order Address".Code where("Vendor No." = field("Buy-from Vendor No."))) |
| 97 | Entry Point | Code[10] | — | TableRelation [Table 282 "Entry/Exit Point"](../table/282.md) (Entry/Exit Point) |
| 98 | Correction | Boolean | — |  |
| 99 | Document Date | Date | Specifies the date on which the purchase document was created. |  |
| 101 | Area | Code[10] | — | TableRelation [Table 284 "Area"](../table/284.md) |
| 102 | Transaction Specification | Code[10] | — | TableRelation [Table 285 "Transaction Specification"](../table/285.md) (Transaction Specification) |
| 104 | Payment Method Code | Code[10] | Specifies how to make payment, such as with bank transfer, cash, or check. | TableRelation [Table 289 "Payment Method"](../table/289.md) (Payment Method) |
| 107 | Pre-Assigned No. Series | Code[20] | — | TableRelation [Table 308 "No. Series"](../table/308.md) (No. Series) |
| 108 | No. Series | Code[20] | — | TableRelation [Table 308 "No. Series"](../table/308.md) (No. Series); not editable |
| 110 | Order No. Series | Code[20] | — | TableRelation [Table 308 "No. Series"](../table/308.md) (No. Series) |
| 111 | Pre-Assigned No. | Code[20] | Specifies the number of the purchase document that the posted invoice was created for. |  |
| 112 | User ID | Code[50] | — | TableRelation User."User Name"; DataClassification EndUserIdentifiableInformation |
| 113 | Source Code | Code[10] | — | TableRelation [Table 230 "Source Code"](../table/230.md) (Source Code) |
| 114 | Tax Area Code | Code[20] | Specifies the tax area that is used to calculate and post sales tax. | TableRelation [Table 318 "Tax Area"](../table/318.md) (Tax Area) |
| 115 | Tax Liable | Boolean | Specifies if the customer or vendor is liable for sales tax. |  |
| 116 | VAT Bus. Posting Group | Code[20] | — | TableRelation [Table 323 "VAT Business Posting Group"](../table/323.md) (VAT Business Posting Group) |
| 119 | VAT Base Discount % | Decimal | — |  |
| 135 | Prepayment No. Series | Code[20] | — | TableRelation [Table 308 "No. Series"](../table/308.md) (No. Series) |
| 140 | Prepayment Invoice | Boolean | — |  |
| 141 | Prepayment Order No. | Code[20] | — |  |
| 146 | Spend Request No. | Code[20] | Specifies the spend request that this purchase document relates to. | TableRelation [Table 6840 "Spend Request"](../table/6840.md) (Spend Request) |
| 147 | Spend Request Close | Boolean | Specifies that the spend request will be closed when the purchase document is posted. |  |
| 151 | Quote No. | Code[20] | Specifies the number of the purchase quote document if a quote was used to start the purchase process. | not editable |
| 170 | Creditor No. | Code[20] | Specifies the number of the vendor. |  |
| 171 | Payment Reference | Code[50] | Specifies the payment of the purchase invoice. |  |
| 179 | VAT Reporting Date | Date | Specifies the VAT date on the invoice. | not editable |
| 180 | Self-Billing Invoice | Boolean | — |  |
| 210 | Ship-to Phone No. | Text[30] | Specifies the telephone number of the company's shipping address. |  |
| 480 | Dimension Set ID | Integer | — | TableRelation [Table 480 "Dimension Set Entry"](../table/480.md) (Dimension Set Entry); not editable |
| 1000 | Remit-to Code | Code[20] | Specifies the code for the vendor's remit address for this invoice. | TableRelation [Table 2224 "Remit Address"](../table/2224.md) ("Remit Address".Code where("Vendor No." = field("Buy-from Vendor No."))); not editable |
| 1302 | Closed | Boolean | Specifies if the posted purchase invoice is paid. The check box will also be selected if a credit memo for the remaining amount has been applied. | FlowField: - exist("Vendor Ledger Entry" where("Entry No." = field("Vendor Ledger Entry No."), Open = filter(true))); not editable |
| 1303 | Remaining Amount | Decimal | Specifies the remaining amount of the invoice. | FlowField: - sum("Detailed Vendor Ledg. Entry".Amount where("Vendor Ledger Entry No." = field("Vendor Ledger Entry No."))); not editable |
| 1304 | Vendor Ledger Entry No. | Integer | — | TableRelation [Table 25 "Vendor Ledger Entry"](../table/25.md) ("Vendor Ledger Entry"."Entry No."); not editable |
| 1305 | Invoice Discount Amount | Decimal | — | FlowField: sum("Purch. Inv. Line"."Inv. Discount Amount" where("Document No." = field("No."))); not editable |
| 1310 | Cancelled | Boolean | Specifies if the posted purchase invoice has been either corrected or canceled. | FlowField: exist("Cancelled Document" where("Source ID" = const(122), "Cancelled Doc. No." = field("No."))); not editable |
| 1311 | Corrective | Boolean | Specifies if the posted purchase invoice is a corrective document. | FlowField: exist("Cancelled Document" where("Source ID" = const(124), "Cancelled By Doc. No." = field("No."))); not editable |
| 1340 | Dispute Status | Code[10] | Specifies if there is an ongoing dispute for this document. | TableRelation [Table 142 "Dispute Status"](../table/142.md) (Dispute Status) |
| 5050 | Campaign No. | Code[20] | — | TableRelation [Table 5071 "Campaign"](../table/5071.md) |
| 5052 | Buy-from Contact No. | Code[20] | Specifies the number of the contact you bought the items from. | TableRelation [Table 5050 "Contact"](../table/5050.md) |
| 5053 | Pay-to Contact No. | Code[20] | Specifies the number of the contact you received the invoice from. | TableRelation [Table 5050 "Contact"](../table/5050.md) |
| 5700 | Responsibility Center | Code[10] | Specifies the code for the responsibility center that serves the vendor on this purchase document. | TableRelation [Table 5714 "Responsibility Center"](../table/5714.md) (Responsibility Center) |
| 7000 | Price Calculation Method | Enum "Price Calculation Method" | — | enum [Enum 7000 "Price Calculation Method"](../enum/7000.md) |
| 8001 | Draft Invoice SystemId | Guid | — | DataClassification SystemMetadata |

## Keys

- Key1: No. (clustered)
- Key2: Order No.
- Key3: Pre-Assigned No.
- Key4: Vendor Invoice No., Posting Date
- Key5: Buy-from Vendor No.
- Key6: Prepayment Order No., Prepayment Invoice
- Key7: Pay-to Vendor No.
- Key8: Posting Date
- Key9: Due Date

## Events published

- `OnBeforePrintRecords(var PurchInvHeader: Record "Purch. Inv. Header"; ShowRequestPage: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeShowCanceledOrCorrCrMemo(var PurchInvHeader: Record "Purch. Inv. Header"; var IsHandled: Boolean)` (integration)
- `OnBeforeDoPrintToDocumentAttachment(var PurchInvHeaderLocal: Record "Purch. Inv. Header"; var IsHandled: Boolean)` (integration)
- `OnLookupAppliesToDocNoOnAfterSetFilters(var VendLedgEntry: Record "Vendor Ledger Entry"; PurchInvHeader: Record "Purch. Inv. Header")` (integration)
- `OnBeforeSetSecurityFilterOnRespCenter(var PurchInvHeader: Record "Purch. Inv. Header"; var IsHandled: Boolean)` (integration)
- `OnBeforCheckIfPurchaseInvoiceFullyOpen(var PurchInvHeader: Record "Purch. Inv. Header"; var FullyOpen: Boolean; var IsHandled: Boolean)` (integration)

## Trigger event subscribers

- OnAfterDeleteEvent: [Codeunit 1173 "Document Attachment Mgmt"](../codeunit/1173.md) DeleteAttachedDocumentsOnAfterDeletePurchInvHeader, [Codeunit 5529 "Purch. Inv. Aggregator"](../codeunit/5529.md) OnAfterDeletePurchaseInvoiceHeader, [Codeunit 8028 "Usage Based Contr. Subscribers"](../codeunit/8028.md) RemovePurchDocumentNoFromUsageDataBillingOnAfterDeleteEvent
- OnAfterInsertEvent: [Codeunit 5529 "Purch. Inv. Aggregator"](../codeunit/5529.md) OnAfterInsertPurchaseInvoiceHeader
- OnAfterModifyEvent: [Codeunit 5529 "Purch. Inv. Aggregator"](../codeunit/5529.md) OnAfterModifyPurchaseInvoiceHeader
- OnAfterRenameEvent: [Codeunit 5529 "Purch. Inv. Aggregator"](../codeunit/5529.md) OnAfterRenamePurchaseInvoiceHeader

## Procedures

- `IsFullyOpen(): Boolean`
- `PrintRecords(ShowRequestPage: Boolean)`
- `PrintToDocumentAttachment(var PurchInvHeaderLocal: Record "Purch. Inv. Header")`
- `Navigate()`
- `ShowDimensions()`
- `SetSecurityFilterOnRespCenter()`
- `ShowCanceledOrCorrCrMemo()`
- `ShowCorrectiveCreditMemo()`
- `ShowCancelledCreditMemo()`

Plus 1 local procedures.

## Triggers

OnDelete

## Relations

- drill-down page [Page 146 "Posted Purchase Invoices"](../page/146.md)
- lookup page [Page 146 "Posted Purchase Invoices"](../page/146.md)
- Shipment Method Code: TableRelation [Table 10 "Shipment Method"](../table/10.md)
- Amount: CalcFormula [Table 123 "Purch. Inv. Line"](../table/123.md)
- Amount Including VAT: CalcFormula [Table 123 "Purch. Inv. Line"](../table/123.md)
- Invoice Discount Amount: CalcFormula [Table 123 "Purch. Inv. Line"](../table/123.md)
- Purchaser Code: TableRelation [Table 13 "Salesperson/Purchaser"](../table/13.md)
- Location Code: TableRelation [Table 14 "Location"](../table/14.md)
- Dispute Status: TableRelation [Table 142 "Dispute Status"](../table/142.md)
- Bal. Account No.: TableRelation [Table 15 "G/L Account"](../table/15.md) (conditional)
- Sell-to Customer No.: TableRelation [Table 18 "Customer"](../table/18.md)
- Cancelled: CalcFormula [Table 1900 "Cancelled Document"](../table/1900.md)
- Corrective: CalcFormula [Table 1900 "Cancelled Document"](../table/1900.md)
- Ship-to Code: TableRelation [Table 222 "Ship-to Address"](../table/222.md)
- Remit-to Code: TableRelation [Table 2224 "Remit Address"](../table/2224.md)
- Order Address Code: TableRelation [Table 224 "Order Address"](../table/224.md)
- Buy-from City: TableRelation [Table 225 "Post Code"](../table/225.md)
- Buy-from Post Code: TableRelation [Table 225 "Post Code"](../table/225.md)
- Pay-to City: TableRelation [Table 225 "Post Code"](../table/225.md)
- Pay-to Post Code: TableRelation [Table 225 "Post Code"](../table/225.md)
- Ship-to City: TableRelation [Table 225 "Post Code"](../table/225.md)
- Ship-to Post Code: TableRelation [Table 225 "Post Code"](../table/225.md)
- Buy-from Vendor No.: TableRelation [Table 23 "Vendor"](../table/23.md)
- Pay-to Vendor No.: TableRelation [Table 23 "Vendor"](../table/23.md)
- Source Code: TableRelation [Table 230 "Source Code"](../table/230.md)
- Reason Code: TableRelation [Table 231 "Reason Code"](../table/231.md)
- Closed: CalcFormula [Table 25 "Vendor Ledger Entry"](../table/25.md)
- Vendor Ledger Entry No.: TableRelation [Table 25 "Vendor Ledger Entry"](../table/25.md)
- Gen. Bus. Posting Group: TableRelation [Table 250 "Gen. Business Posting Group"](../table/250.md)
- Transaction Type: TableRelation [Table 258 "Transaction Type"](../table/258.md)
- Transport Method: TableRelation [Table 259 "Transport Method"](../table/259.md)
- Bal. Account No.: TableRelation [Table 270 "Bank Account"](../table/270.md) (conditional)
- Entry Point: TableRelation [Table 282 "Entry/Exit Point"](../table/282.md)
- Area: TableRelation [Table 284 "Area"](../table/284.md)
- Transaction Specification: TableRelation [Table 285 "Transaction Specification"](../table/285.md)
- Payment Method Code: TableRelation [Table 289 "Payment Method"](../table/289.md)
- Payment Terms Code: TableRelation [Table 3 "Payment Terms"](../table/3.md)
- No. Series: TableRelation [Table 308 "No. Series"](../table/308.md)
- Order No. Series: TableRelation [Table 308 "No. Series"](../table/308.md)
- Pre-Assigned No. Series: TableRelation [Table 308 "No. Series"](../table/308.md)
- Prepayment No. Series: TableRelation [Table 308 "No. Series"](../table/308.md)
- Tax Area Code: TableRelation [Table 318 "Tax Area"](../table/318.md)
- VAT Bus. Posting Group: TableRelation [Table 323 "VAT Business Posting Group"](../table/323.md)
- Shortcut Dimension 1 Code: TableRelation [Table 349 "Dimension Value"](../table/349.md)
- Shortcut Dimension 2 Code: TableRelation [Table 349 "Dimension Value"](../table/349.md)
- Remaining Amount: CalcFormula [Table 380 "Detailed Vendor Ledg. Entry"](../table/380.md)
- Currency Code: TableRelation [Table 4 "Currency"](../table/4.md)
- Comment: CalcFormula [Table 43 "Purch. Comment Line"](../table/43.md)
- Dimension Set ID: TableRelation [Table 480 "Dimension Set Entry"](../table/480.md)
- Buy-from Contact No.: TableRelation [Table 5050 "Contact"](../table/5050.md)
- Pay-to Contact No.: TableRelation [Table 5050 "Contact"](../table/5050.md)
- Campaign No.: TableRelation [Table 5071 "Campaign"](../table/5071.md)
- Responsibility Center: TableRelation [Table 5714 "Responsibility Center"](../table/5714.md)
- Spend Request No.: TableRelation [Table 6840 "Spend Request"](../table/6840.md)
- Language Code: TableRelation [Table 8 "Language"](../table/8.md)
- Buy-from Country/Region Code: TableRelation [Table 9 "Country/Region"](../table/9.md)
- Pay-to Country/Region Code: TableRelation [Table 9 "Country/Region"](../table/9.md)
- Ship-to Country/Region Code: TableRelation [Table 9 "Country/Region"](../table/9.md)
- VAT Country/Region Code: TableRelation [Table 9 "Country/Region"](../table/9.md)
- Vendor Posting Group: TableRelation [Table 93 "Vendor Posting Group"](../table/93.md)

## Referenced by

16 fields in 11 objects relate to this table (TableRelation or CalcFormula).

- [Table 1900 "Cancelled Document"](../table/1900.md): Cancelled By Doc. No., Cancelled Doc. No.
- [Table 23 "Vendor"](../table/23.md): No. of Pstd. Invoices, Pay-to No. of Pstd. Invoices
- [Table 38 "Purchase Header"](../table/38.md): Last Posting No., Last Prepayment No.
- [Table 6108 "E-Doc. Vendor Assign. History"](../table/6108.md): Vendor No From Purch. Header, Purch. Inv. Header SystemId
- [Table 9060 "SB Owner Cue"](../table/9060.md): Overdue Purchase Invoices, Unpaid Purchase Invoices
- [Table 123 "Purch. Inv. Line"](../table/123.md): Document No.
- [Table 5109 "Purchase Header Archive"](../table/5109.md): Last Posting No.
- [Table 6907 "Expense Report Line"](../table/6907.md): Posted Purch. Invoice No.
- [Table 6916 "Posted Expense Report Line"](../table/6916.md): Posted Purch. Invoice No.
- [Table 8064 "Billing Line Archive"](../table/8064.md): Document No.
- [Table 9046 "Account Payable Cue"](../table/9046.md): Posted Purch. Inv. This Month

## Pages and codeunits on this table

- [Page 10001 "Overdue Purchase Invoices"](../page/10001.md) (source table)
- [Page 1351 "Posted Purch. Invoice - Update"](../page/1351.md) (source table)
- [Page 138 "Posted Purchase Invoice"](../page/138.md) (source table)
- [Page 146 "Posted Purchase Invoices"](../page/146.md) (source table)
- [Page 400 "Purchase Invoice Statistics"](../page/400.md) (source table)
- [Page 9971 "Posted Purchase Invoice API"](../page/9971.md) (source table)
- [Codeunit 1313 "Correct Posted Purch. Invoice"](../codeunit/1313.md) (codeunit runs on it)
- [Codeunit 1324 "Correct PstdPurchInv (Yes/No)"](../codeunit/1324.md) (codeunit runs on it)
- [Codeunit 1325 "Cancel PstdPurchInv (Yes/No)"](../codeunit/1325.md) (codeunit runs on it)
- [Codeunit 1405 "Purch. Inv. Header - Edit"](../codeunit/1405.md) (codeunit runs on it)
- [Codeunit 319 "Purch. Inv.-Printed"](../codeunit/319.md) (codeunit runs on it)

## Extended by

- [Table extension 4883 "EU3 Purch. Inv. Header"](../tableextension/4883.md)
- [Table extension 5029 "Serv. Decl. Purch. Inv. Header"](../tableextension/5029.md)
- [Table extension 6217 "Sust. Purch. Inv. Header"](../tableextension/6217.md)
- [Table extension 6798 "Withholding Purch. Inv. Header"](../tableextension/6798.md)
- [Table extension 8062 "Purch. Inv. Header"](../tableextension/8062.md)

## 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 364 "PostPurch-Delete"](../codeunit/364.md) (2 calls: `OnDelete → DeletePurchInvLines`, `OnDelete → IsDocumentDeletionAllowed`)
- [Page 140 "Posted Purchase Credit Memo"](../page/140.md) (2 calls: `ShowCancelledCreditMemo → (object)`, `ShowCorrectiveCreditMemo → (object)`)
- [Codeunit 1535 "Approvals Mgmt."](../codeunit/1535.md) (1 call: `OnDelete → DeletePostedApprovalEntries`)
- [Codeunit 408 "DimensionManagement"](../codeunit/408.md) (1 call: `ShowDimensions → ShowDimensionSet`)
- [Codeunit 5700 "User Setup Management"](../codeunit/5700.md) (1 call: `SetSecurityFilterOnRespCenter → GetPurchasesFilter`)

## Recent changes

- 2026-07-31 [#8959 Deliverable 638799: Spend Requests in Base App](../../changes/bcapps/8959.md) (main, BC30, feature)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24-29

## Countries that replace it

[AT](../../localizations/at.md), [AU](../../localizations/au.md), [BE](../../localizations/be.md), [CA](../../localizations/ca.md), [CH](../../localizations/ch.md), [DE](../../localizations/de.md), [ES](../../localizations/es.md), [FI](../../localizations/fi.md), [IT](../../localizations/it.md), [MX](../../localizations/mx.md), [NL](../../localizations/nl.md), [NO](../../localizations/no.md), [NZ](../../localizations/nz.md), [RU](../../localizations/ru.md), [SE](../../localizations/se.md), [US](../../localizations/us.md)

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: "Purch. Inv. Header")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
