---
id: object/page/51
type: object
title: Page 51 "Purchase Invoice"
summary: Page 51 "Purchase Invoice" in Base Application (Microsoft.Purchases.Document). 5 public procedures, 11 events. Present since at least BC23, still in BC30, changed in BC24-25.
tier: official
language: en
tags:
  - page
  - base application
versions:
  introduced: null
  last_changed: "25"
  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: 41f56d7a5274d77d749f03e01cc53535e121774a22c990730dbb1740b7856466
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Purchases/Document/PurchaseInvoice.Page.al
    title: src/Layers/W1/BaseApp/Purchases/Document/PurchaseInvoice.Page.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/finance-how-to-eu3party-trade-purchase
    title: EU third-party purchase transactions
    date: null
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/finance-how-to-settle-purchase-invoices-promptly
    title: Settle purchase invoices promptly
    date: null
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/finance-how-use-edocuments-purchase
    title: Use E-Documents in the purchase process
    date: null
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/finance-how-use-non-deductible-vat
    title: Use non-deductible VAT
    date: null
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/finance-sustainability-journal
    title: Record sustainability entries
    date: null
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/LocalFunctionality/UnitedStates/how-to-1099-use
    title: Track data and use the IRS 1099 form
    date: null
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/LocalFunctionality/UnitedStates/set-up-use-irs1099-form
    title: Set up and use the IRS 1099 form [US]
    date: null
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/purchasing-how-purchase-products-sale
    title: Purchase items for a sale
    date: null
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/purchasing-how-record-purchases
    title: Record purchases with purchase invoices
    date: null
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/SRB/working-with-contracts/vendor-contract-integration-purchase-invoice
    title: Vendor contract integration in purchase invoices
    date: null
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/value-chain-howto-purchase
    title: Sustainability value chain in purchasing
    date: null
    commit: null
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/finance-how-to-eu3party-trade-purchase
    - https://learn.microsoft.com/dynamics365/business-central/finance-how-to-settle-purchase-invoices-promptly
    - https://learn.microsoft.com/dynamics365/business-central/finance-how-use-edocuments-purchase
    - https://learn.microsoft.com/dynamics365/business-central/finance-how-use-non-deductible-vat
    - https://learn.microsoft.com/dynamics365/business-central/finance-sustainability-journal
    - https://learn.microsoft.com/dynamics365/business-central/LocalFunctionality/UnitedStates/how-to-1099-use
    - https://learn.microsoft.com/dynamics365/business-central/LocalFunctionality/UnitedStates/set-up-use-irs1099-form
    - https://learn.microsoft.com/dynamics365/business-central/purchasing-how-purchase-products-sale
    - https://learn.microsoft.com/dynamics365/business-central/purchasing-how-record-purchases
    - https://learn.microsoft.com/dynamics365/business-central/SRB/working-with-contracts/vendor-contract-integration-purchase-invoice
    - https://learn.microsoft.com/dynamics365/business-central/value-chain-howto-purchase
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/finance/manage-payables/make-payments
    - topic/business-central/business-functionality/finance/set-up-and-use-e-documents
    - topic/business-central/business-functionality/finance/working-with-value-added-tax-vat
    - topic/business-central/business-functionality/local-functionality/united-states/tax
    - topic/business-central/business-functionality/purchasing
    - topic/business-central/business-functionality/sustainability-management
    - topic/business-central/business-functionality/sustainability-management/sustainability-value-chain
  localizations:
    - localization/ca
    - localization/it
    - localization/mx
    - localization/ru
    - localization/us
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/8959
    - change/bcapps/9044
    - change/bcapps/9204
object_type: page
object_id: 51
name: Purchase Invoice
namespace: Microsoft.Purchases.Document
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"
source_major: "29"
obsolete: null
countries:
  - ca
  - it
  - mx
  - ru
  - us
ms_search_form_ids:
  - docs/learn-smb-docs/business-central/finance-how-to-eu3party-trade-purchase.md
  - docs/learn-smb-docs/business-central/finance-how-to-settle-purchase-invoices-promptly.md
  - docs/learn-smb-docs/business-central/finance-how-use-edocuments-purchase.md
  - docs/learn-smb-docs/business-central/finance-how-use-non-deductible-vat.md
  - docs/learn-smb-docs/business-central/finance-sustainability-journal.md
  - docs/learn-smb-docs/business-central/LocalFunctionality/UnitedStates/how-to-1099-use.md
  - docs/learn-smb-docs/business-central/LocalFunctionality/UnitedStates/set-up-use-irs1099-form.md
  - docs/learn-smb-docs/business-central/purchasing-how-purchase-products-sale.md
  - docs/learn-smb-docs/business-central/purchasing-how-record-purchases.md
  - docs/learn-smb-docs/business-central/SRB/working-with-contracts/vendor-contract-integration-purchase-invoice.md
  - docs/learn-smb-docs/business-central/value-chain-howto-purchase.md
counts:
  fields: 0
  procedures: 32
  events: 11
  subscribers: 0
  controls: 107
  actions: 35
relations:
  out: 1
  referenced_by: 0
  pages: 1
  extended_by: 7
  event_subscribers: 9
  calls: 17
  called_by: 10
  implements: 0
---

# Page 51 "Purchase Invoice"

> Page 51 "Purchase Invoice" in Base Application (Microsoft.Purchases.Document). 5 public procedures, 11 events. Present since at least BC23, still in BC30, changed in BC24-25.

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

## Properties

| Property | Value |
|---|---|
| Caption | Purchase Invoice |
| SourceTable | Purchase Header |
| PageType | Document |

## Fields on this page

Layout controls in source order, grouped by the container they sit in. Shows: the table field a control is bound to (or its expression as written); ToolTip: the control's own, else the bound field's (marked).

| Group | Control | Shows | ToolTip |
|---|---|---|---|
| General | No. | [No.](../table/38.md#fields) | Specifies the number of the involved entry or record, according to the specified number series. |
|  | Vendor No. | [Buy-from Vendor No.](../table/38.md#fields) | Specifies the number of the vendor who delivers the products. |
|  | Vendor Name | [Buy-from Vendor Name](../table/38.md#fields) | Specifies the name of the vendor who delivers the products. |
|  | Vendor Name 2 | [Buy-from Vendor Name 2](../table/38.md#fields) | Specifies an additional part of the name of the vendor that you’re buying from. <small>from the table field</small> |
|  | Posting Description | [Posting Description](../table/38.md#fields) | Specifies additional posting information for the document. After you post the document, the description can add detail to vendor and customer ledger entries. <small>from the table field</small> |
| Buy-from | Address | [Buy-from Address](../table/38.md#fields) | Specifies the address of the vendor who ships the items. <small>from the table field</small> |
|  | Address 2 | [Buy-from Address 2](../table/38.md#fields) | Specifies additional address information. <small>from the table field</small> |
|  | City | [Buy-from City](../table/38.md#fields) | Specifies the city of the vendor on the purchase document. <small>from the table field</small> |
| Control93 | Buy-from County | [Buy-from County](../table/38.md#fields) | Specifies the state, province or county of the address. <small>from the table field</small> |
| Buy-from | Post Code | [Buy-from Post Code](../table/38.md#fields) | Specifies the postal code. |
|  | Country/Region | [Buy-from Country/Region Code](../table/38.md#fields) | Specifies the country or region of the address. |
|  | Contact No. | [Buy-from Contact No.](../table/38.md#fields) | Specifies the number of your contact at the vendor. <small>from the table field</small> |
|  | Phone No. | `BuyFromContact."Phone No."` | Specifies the telephone number of the vendor contact person. |
|  | Mobile Phone No. | `BuyFromContact."Mobile Phone No."` | Specifies the mobile telephone number of the vendor contact person. |
|  | Email | `BuyFromContact."E-Mail"` | Specifies the email address of the vendor contact person. |
| General | Contact | [Buy-from Contact](../table/38.md#fields) | Specifies the name of the person to contact about shipment of the item from this vendor. |
|  | Document Date | [Document Date](../table/38.md#fields) | Specifies the date when the related document was created. <small>from the table field</small> |
|  | Invoice Received Date | [Invoice Received Date](../table/38.md#fields) | Specifies the date when the related document was received. <small>from the table field</small> |
|  | Posting Date | [Posting Date](../table/38.md#fields) | Specifies the date when the posting of the purchase document will be recorded. <small>from the table field</small> |
|  | VAT Reporting Date | [VAT Reporting Date](../table/38.md#fields) | Specifies the date used to include entries on VAT reports in a VAT period. This is either the date that the document was created or posted, depending on your setting on the General Ledger Setup page. <small>from the table field</small> |
|  | Due Date | [Due Date](../table/38.md#fields) | Specifies when the invoice is due. The program calculates the date using the Payment Terms Code and Document Date fields. |
|  | Incoming Document Entry No. | [Incoming Document Entry No.](../table/38.md#fields) | Specifies the number of the incoming document that this purchase document is created for. <small>from the table field</small> |
|  | Vendor Invoice No. | [Vendor Invoice No.](../table/38.md#fields) | Specifies the document number of the original document you received from the vendor. You can require the document number for posting, or let it be optional. By default, it's required, so that this document references the original. Making document numbers optional removes a step from the posting proc... <small>from the table field</small> |
|  | Spend Request No. | [Spend Request No.](../table/38.md#fields) | Specifies the spend request that this purchase document relates to. |
|  | Purchaser Code | [Purchaser Code](../table/38.md#fields) | Specifies which purchaser is assigned to the vendor. <small>from the table field</small> |
|  | Vendor Order No. | [Vendor Order No.](../table/38.md#fields) | Specifies the vendor's order number. <small>from the table field</small> |
|  | Campaign No. | [Campaign No.](../table/38.md#fields) | Specifies the campaign number the document is linked to. <small>from the table field</small> |
|  | Alternate Vendor Address Code | [Order Address Code](../table/38.md#fields) | Specifies the order address of the related vendor. <small>from the table field</small> |
|  | Responsibility Center | [Responsibility Center](../table/38.md#fields) | Specifies the code of the responsibility center, such as a distribution hub, that is associated with the involved user, company, customer, or vendor. <small>from the table field</small> |
|  | Assigned User ID | [Assigned User ID](../table/38.md#fields) | Specifies the ID of the user who is responsible for the document. <small>from the table field</small> |
|  | Status | [Status](../table/38.md#fields) | Specifies whether the record is open, waiting to be approved, invoiced for prepayment, or released to the next stage of processing. <small>from the table field</small> |
|  | DocAmount | [Doc. Amount Incl. VAT](../table/38.md#fields) | Specifies the total amount (including VAT) of the purchase invoice or credit memo as specified in the external document. When this value comes from an e-document service, it's value can't be changed. <small>from the table field</small> |
|  | DocAmountVAT | [Doc. Amount VAT](../table/38.md#fields) | Specifies the VAT amount of the purchase invoice or credit memo as specified in the external document. When this values comes from an e-document service, it's value can't be changed. <small>from the table field</small> |
|  | Job Queue Status | [Job Queue Status](../table/38.md#fields) | Specifies the status of a job queue entry that handles the posting of purchase invoices. |
|  | Language Code | [Language Code](../table/38.md#fields) | Specifies the language to be used on printouts for this document. <small>from the table field</small> |
|  | Format Region | [Format Region](../table/38.md#fields) | Specifies the format to be used on printouts for this document. <small>from the table field</small> |
| Content | PurchLines | part [Page 55 "Purch. Invoice Subform"](../page/55.md) | — |
| Invoice Details | Currency Code | [Currency Code](../table/38.md#fields) | Specifies the currency code for amounts on the purchase lines. |
|  | Expected Receipt Date | [Expected Receipt Date](../table/38.md#fields) | Specifies the date you expect to receive the items on the purchase document. |
|  | Prices Including VAT | [Prices Including VAT](../table/38.md#fields) | Specifies if the Unit Price and Line Amount fields on document lines should be shown with or without VAT. <small>from the table field</small> |
|  | VAT Bus. Posting Group | [VAT Bus. Posting Group](../table/38.md#fields) | Specifies the VAT specification of the involved customer or vendor to link transactions made for this record with the appropriate general ledger account according to the VAT posting setup. <small>from the table field</small> |
|  | Vendor Posting Group | [Vendor Posting Group](../table/38.md#fields) | Specifies the vendor's market type to link business transactions to. <small>from the table field</small> |
|  | Payment Terms Code | [Payment Terms Code](../table/38.md#fields) | Specifies a formula that calculates the payment due date, payment discount date, and payment discount amount. <small>from the table field</small> |
|  | Payment Method Code | [Payment Method Code](../table/38.md#fields) | Specifies how to make payment, such as with bank transfer, cash, or check. <small>from the table field</small> |
|  | Reason Code | [Reason Code](../table/38.md#fields) | Specifies the reason code, a supplementary source code that enables you to trace the document. <small>from the table field</small> |
|  | Shortcut Dimension 1 Code | [Shortcut Dimension 1 Code](../table/38.md#fields) | 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. <small>from the table field</small> |
|  | Shortcut Dimension 2 Code | [Shortcut Dimension 2 Code](../table/38.md#fields) | 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. <small>from the table field</small> |
|  | Payment Discount % | [Payment Discount %](../table/38.md#fields) | Specifies the payment discount percent granted if payment is made on or before the date in the Pmt. Discount Date field. <small>from the table field</small> |
|  | Pmt. Discount Date | [Pmt. Discount Date](../table/38.md#fields) | Specifies the date on which the amount in the entry must be paid for a payment discount to be granted. <small>from the table field</small> |
|  | Journal Templ. Name | [Journal Templ. Name](../table/38.md#fields) | Specifies the name of the journal template in which the purchase header is to be posted. <small>from the table field</small> |
|  | Tax Liable | [Tax Liable](../table/38.md#fields) | Specifies if the customer or vendor is liable for sales tax. |
|  | Tax Area Code | [Tax Area Code](../table/38.md#fields) | Specifies the tax area that is used to calculate and post sales tax. |
|  | Shipment Method Code | [Shipment Method Code](../table/38.md#fields) | Specifies the delivery conditions of the related shipment, such as free on board (FOB). <small>from the table field</small> |
|  | Payment Reference | [Payment Reference](../table/38.md#fields) | Specifies the payment of the purchase invoice. <small>from the table field</small> |
|  | Creditor No. | [Creditor No.](../table/38.md#fields) | Specifies the vendor who sent the purchase invoice. |
|  | On Hold | [On Hold](../table/38.md#fields) | Specifies that the related entry represents an unpaid invoice for which either a payment suggestion, a reminder, or a finance charge memo exists. <small>from the table field</small> |
| Control78 | Ship-to | `ShipToOptions` | Specifies the address that the products on the purchase document are shipped to. Default (Company Address): The same as the company address specified in the Company Information window. Location: One of the company's location addresses. Custom Address: Any ship-to address that you specify in the fiel... |
| Control81 | Location Code | [Location Code](../table/38.md#fields) | Specifies the code for the location where the items are to be received. When you select the vendor and the vendor has a location assigned, the value is taken from the Vendor card. If the vendor has no location, but a Responsibility Center is populated, the location code is taken from the Responsibil... <small>from the table field</small> |
| Control79 | Name | [Ship-to Name](../table/38.md#fields) | Specifies the name of the company at the address that you want the items on the purchase document to be shipped to. |
|  | Name 2 | [Ship-to Name 2](../table/38.md#fields) | Specifies an additional part of the name of the company at the address that you want the items on the purchase document to be shipped to. |
|  | Address | [Ship-to Address](../table/38.md#fields) | Specifies the address that you want the items on the purchase document to be shipped to. |
|  | Address 2 | [Ship-to Address 2](../table/38.md#fields) | Specifies additional address information. <small>from the table field</small> |
|  | City | [Ship-to City](../table/38.md#fields) | Specifies the city of the address that you want the items on the purchase document to be shipped to. |
| Control199 | Ship-to County | [Ship-to County](../table/38.md#fields) | Specifies the state, province or county of the address. <small>from the table field</small> |
| Control79 | Post Code | [Ship-to Post Code](../table/38.md#fields) | Specifies the postal code of the address that you want the items on the purchase document to be shipped to. |
|  | Country/Region | [Ship-to Country/Region Code](../table/38.md#fields) | Specifies the country/region code of the address that you want the items on the purchase document to be shipped to. |
|  | Phone No. | [Ship-to Phone No.](../table/38.md#fields) | Specifies the telephone number of the company's shipping address. <small>from the table field</small> |
|  | Contact | [Ship-to Contact](../table/38.md#fields) | Specifies the name of a contact person for the address of the address that you want the items on the purchase document to be shipped to. |
| Control56 | Pay-to | `PayToOptions` | Specifies the vendor that the purchase document will be paid to. Default (Vendor): The same as the vendor on the purchase document. Another Vendor: Any vendor that you specify in the fields below. |
| Control88 | Name | [Pay-to Name](../table/38.md#fields) | Specifies the name of the vendor sending the invoice. |
|  | Name 2 | [Pay-to Name 2](../table/38.md#fields) | Specifies an additional part of the name of the vendor who you receive the invoice or credit memo from. <small>from the table field</small> |
|  | Address | [Pay-to Address](../table/38.md#fields) | Specifies the address of the vendor sending the invoice. <small>from the table field</small> |
|  | Address 2 | [Pay-to Address 2](../table/38.md#fields) | Specifies additional address information. <small>from the table field</small> |
|  | City | [Pay-to City](../table/38.md#fields) | Specifies the city of the vendor on the purchase document. <small>from the table field</small> |
| Control103 | Pay-to County | [Pay-to County](../table/38.md#fields) | Specifies the state, province or county of the address. <small>from the table field</small> |
| Control88 | Post Code | [Pay-to Post Code](../table/38.md#fields) | Specifies the postal code. |
|  | Country/Region | [Pay-to Country/Region Code](../table/38.md#fields) | Specifies the country or region of the address. |
|  | Contact No. | [Pay-to Contact No.](../table/38.md#fields) | Specifies the number of the contact who sends the invoice. <small>from the table field</small> |
|  | Phone No. | `PayToContact."Phone No."` | Specifies the telephone number of the vendor contact person. |
|  | Mobile Phone No. | `PayToContact."Mobile Phone No."` | Specifies the mobile telephone number of the vendor contact person. |
|  | Email | `PayToContact."E-Mail"` | Specifies the email address of the vendor contact person. |
|  | Contact | [Pay-to Contact](../table/38.md#fields) | Specifies the name of the person to contact about an invoice from this vendor. <small>from the table field</small> |
| Remit-to | Remit-to Code | [Remit-to Code](../table/38.md#fields) | Specifies the code for the vendor's remit address for this invoice. <small>from the table field</small> |
| Remit-to information | Name | `RemitAddressBuffer.Name` | Specifies the name of the company at the address that you want the invoice to be remitted to. |
|  | Address | `RemitAddressBuffer.Address` | Specifies the address that you want the items on the purchase document to be remitted to. |
|  | Address 2 | `RemitAddressBuffer."Address 2"` | Specifies additional address information. |
|  | City | `RemitAddressBuffer.City` | Specifies the city of the address that you want the items on the purchase document to be remitted to. |
| Remit-to County group | County | `RemitAddressBuffer.County` | Specifies the state, province or county of the address. |
| Remit-to information | Post Code | `RemitAddressBuffer."Post Code"` | Specifies the postal code of the address that you want the items on the purchase document to be remitted to. |
|  | Country/Region | `RemitAddressBuffer."Country/Region Code"` | Specifies the country/region code of the address that you want the items on the purchase document to be remitted to. |
|  | Contact | `RemitAddressBuffer.Contact` | Specifies the name of a contact person for the address that you want the items on the purchase document to be remitted to. |
| Foreign Trade | Transaction Specification | [Transaction Specification](../table/38.md#fields) | Specifies a specification of the document's transaction, for the purpose of reporting to INTRASTAT. <small>from the table field</small> |
|  | Transaction Type | [Transaction Type](../table/38.md#fields) | Specifies the type of transaction that the document represents, for the purpose of reporting to INTRASTAT. <small>from the table field</small> |
|  | Transport Method | [Transport Method](../table/38.md#fields) | Specifies the transport method, for the purpose of reporting to INTRASTAT. <small>from the table field</small> |
|  | Entry Point | [Entry Point](../table/38.md#fields) | Specifies the code of the port of entry where the items pass into your country/region, for reporting to Intrastat. <small>from the table field</small> |
|  | Area | [Area](../table/38.md#fields) | Specifies the destination country or region for the purpose of Intrastat reporting. <small>from the table field</small> |
| FactBoxes | Document Check | part [Page 9118 "Purch. Doc. Check Factbox"](../page/9118.md) | — |
|  | Documents | part [Page 1178 "Doc. Attachment List Factbox"](../page/1178.md) | — |
|  | Control27 | part [Page 9103 "Pending Approval FactBox"](../page/9103.md) | — |
|  | ApprovalFactBox | part [Page 9092 "Approval FactBox"](../page/9092.md) | — |
|  | Control1901138007 | part [Page 9093 "Vendor Details FactBox"](../page/9093.md) | — |
|  | IncomingDocAttachFactBox | part [Page 193 "Incoming Doc. Attach. FactBox"](../page/193.md) | — |
|  | Control1904651607 | part [Page 9094 "Vendor Statistics FactBox"](../page/9094.md) | — |
|  | Control1903435607 | part [Page 9095 "Vendor Hist. Buy-from FactBox"](../page/9095.md) | — |
|  | Control1906949207 | part [Page 9096 "Vendor Hist. Pay-to FactBox"](../page/9096.md) | — |
|  | Control3 | part [Page 9100 "Purchase Line FactBox"](../page/9100.md) | — |
|  | WorkflowStatus | part [Page 1528 "Workflow Status FactBox"](../page/1528.md) | — |

## Actions

| Group | Action | ToolTip | Runs |
|---|---|---|---|
| Invoice | Statistics | View statistical information, such as the value of posted entries, for the record. | [Page 161 "Purchase Statistics"](../page/161.md) |
|  | Vendor | View or edit detailed information about the vendor on the purchase document. | [Page 26 "Vendor Card"](../page/26.md) |
|  | Vendor Statistics | View statistical information, such as the value of posted entries, for the buy-from vendor on the purchase document. | [Page 152 "Vendor Statistics"](../page/152.md) |
|  | Comments | View or add comments for the record. | [Page 66 "Purch. Comment Sheet"](../page/66.md) |
|  | Dimensions | View or edit dimensions, such as area, project, or department, that you can assign to sales and purchase documents to distribute costs and analyze transaction history. |  |
|  | Attachments | Add a file as an attachment. You can attach images as well as documents. |  |
| Incoming Document | View | View any incoming document records and file attachments that exist for the entry or document. |  |
|  | Select | Select an incoming document record and file attachment that you want to link to the entry or document. |  |
|  | Create from File | Create an incoming document record by selecting a file to attach, and then link the incoming document record to the entry or document. |  |
|  | Create from Attachment | Create an incoming document record by selecting an attachment from outlook email, and then link the incoming document record to the entry or document. |  |
|  | Remove | Remove an external document that has been recorded, manually or automatically, and attached as a file to a document or ledger entry. |  |
| Approval | Approve | Approve the requested changes. |  |
|  | Reject | Reject the approval request. |  |
|  | Delegate | Delegate the approval to a substitute approver. |  |
|  | Comments | View or add comments for the record. |  |
| Release | Release | Release the document to the next stage of processing. You must reopen the document before you can make changes to it. |  |
|  | Reopen | Reopen the document to change it after it has been approved. Approved documents have the Released status and must be opened before they can be changed. |  |
|  | Reject IC Purchase Invoice | Deletes the invoice and sends the rejection to the company that created it. |  |
| Functions | Get Recurring Purchase Lines | Insert purchase document lines that you have set up for the vendor as recurring. Recurring purchase lines could be for a monthly replenishment order or a fixed freight expense. |  |
|  | Copy Document | Copy document lines and header information from another purchase document to this document. You can copy a posted purchase invoice into a new purchase invoice to quickly create a similar document. |  |
|  | Calculate Invoice Discount | Calculate the invoice discount for the entire purchase invoice. |  |
|  | Create Tracking Information | Create item tracking information for the entire purchase invoice. |  |
|  | Move Negative Lines | Prepare to create a replacement purchase order in a purchase return process. |  |
|  | Matched Order Lines | View and match order lines related to this purchase invoice. |  |
| Request Approval | Approvals | View a list of the records that are waiting to be approved. For example, you can see who requested the record to be approved, when it was sent, and when it is due to be approved. |  |
|  | Send Approval Request | Request approval of the document. |  |
|  | Cancel Approval Request | Cancel the approval request. |  |
| Power Automate | Create approval flow | Create a new flow in Power Automate from a list of relevant flow templates. |  |
| Posting | Post | Finalize the document or journal by posting the amounts and quantities to the related accounts in your company books. |  |
|  | Preview Posting | Review the different types of entries that will be created when you post the document or journal. |  |
|  | Test Report | View a test report so that you can find and correct any errors before you perform the actual posting of the journal or document. |  |
|  | Post and Print | Finalize and print the document or journal. The values and quantities are posted to the related accounts. |  |
|  | Post and New | Post the purchase document and create a new, empty one. |  |
|  | Post Batch | Post several documents at once. A report request window opens where you can specify which documents to post. |  |
|  | Remove From Job Queue | Remove the scheduled processing of this record from the job queue. |  |

## Events published

- `OnAfterOnAfterGetRecord(var PurchaseHeader: Record "Purchase Header")` (integration)
  - subscribers: [Codeunit 9070 "Document Errors Mgt."](../codeunit/9070.md) OnAfterOnAfterGetRecordPurchaseInvoice
- `OnAfterCalculateCurrentShippingAndPayToOption(var ShipToOptions: Option "Default (Company Address)",Location,"Custom Address"; var PayToOptions: Option "Default (Vendor)","Another Vendor","Custom Address"; PurchaseHeader: Record "Purchase Header")` (integration)
- `OnPostDocumentOnBeforePurchaseHeaderInsert(var PurchaseHeader: Record "Purchase Header")` (integration)
- `OnBeforeValidateShipToOptions(var PurchaseHeader: Record "Purchase Header"; ShipToOptions: Option)` (integration)
- `OnBeforePostDocument(var PurchaseHeader: Record "Purchase Header"; xPurchaseHeader: Record "Purchase Header"; PostingCodeunitID: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeVerifyTotal(var PurchaseHeader: Record "Purchase Header"; var IsHandled: Boolean)` (integration)
- `OnAfterValidateShipToOptions(var PurchaseHeader: Record "Purchase Header"; ShipToOptions: Option)` (integration)
- `OnPostDocumentBeforeNavigateAfterPosting(var PurchaseHeader: Record "Purchase Header"; var PostingCodeunitID: Integer; var Navigate: Enum "Navigate After Posting"; DocumentIsPosted: Boolean; var IsHandled: Boolean)` (integration)
- `OnQueryClosePageOnAfterCalcShowConfirmCloseUnposted(var PurchaseHeader: Record "Purchase Header"; var ShowConfirmCloseUnposted: Boolean)` (integration)
- `OnBeforeCurrencyCodeOnAssistEdit(var PurchaseHeader: Record "Purchase Header"; xPurchaseHeader: Record "Purchase Header"; var IsHandled: Boolean)` (integration)
- `OnPostDocumentOnAfterCalcDocumentIsScheduledForPosting(var PurchaseHeader: Record "Purchase Header"; var DocumentIsScheduledForPosting: Boolean; var DocumentIsPosted: Boolean)` (integration)

## Trigger event subscribers

- OnAfterGetCurrRecordEvent: [Codeunit 1854 "Sales Forecast Notifier"](../codeunit/1854.md) OnAfterCurrPurchaseInvoice
- OnAfterValidateEvent(Buy-from Vendor Name): [Codeunit 170 "Standard Codes Mgt."](../codeunit/170.md) OnAfterValidatePurchaseInvoiceSellToVendorName, [Codeunit 1854 "Sales Forecast Notifier"](../codeunit/1854.md) OnAfterBuyFromVendorNameValidate
- OnAfterValidateEvent(Buy-from Vendor No.): [Codeunit 170 "Standard Codes Mgt."](../codeunit/170.md) OnAfterValidatePurchaseInvoiceSellToVendorNo
- OnClosePageEvent: [Codeunit 1508 "Notification Lifecycle Handler"](../codeunit/1508.md) OnClosePurchaseInvoice
- OnInsertRecordEvent: [Codeunit 1854 "Sales Forecast Notifier"](../codeunit/1854.md) OnAfterInsertPurchaseHeader
- OnModifyRecordEvent: [Codeunit 9070 "Document Errors Mgt."](../codeunit/9070.md) OnModifyRecordEventPurchaseInvoice
- OnOpenPageEvent: [Codeunit 1508 "Notification Lifecycle Handler"](../codeunit/1508.md) OnOpenPurchaseInvoice

## Procedures

- `LineModified()`
- `CallPostDocument(PostingCodeunitID: Integer; Navigate: Enum "Navigate After Posting")`
- `VerifyTotal()` (protected)
- `RunBackgroundCheck()`
- `SetPostingGroupEditable()`

Plus 16 local procedures.

## Triggers

OnAfterGetCurrRecord, OnAfterGetRecord, OnDeleteRecord, OnInit, OnNewRecord, OnInsertRecord, OnOpenPage, OnQueryClosePage

## Relations

- source table [Table 38 "Purchase Header"](../table/38.md)

## Pages and codeunits on this table

- [Page 9308 "Purchase Invoices"](../page/9308.md) (card page)

## Extended by

- [Page extension 1857 "PurchaseInvoiceForecastExt"](../pageextension/1857.md)
- [Page extension 20250 "Purchase Invoice Ext"](../pageextension/20250.md)
- [Page extension 4886 "EU3 Purch. Invoice"](../pageextension/4886.md)
- [Page extension 5024 "SD Purch. Invoice"](../pageextension/5024.md)
- [Page extension 6129 "E-Doc. Purchase Invoice"](../pageextension/6129.md)
- [Page extension 6797 "Withholding Purchase Invoice"](../pageextension/6797.md)
- [Page extension 8012 "Purchase Invoice"](../pageextension/8012.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 1330 "Instruction Mgt."](../codeunit/1330.md) (5 calls: `PostDocument → IsEnabled`, `PostDocument → ShowPostedConfirmationMessageCode`, `ShowPostedConfirmationMessage → ShowConfirm`, …)
- [Codeunit 1630 "Office Management"](../codeunit/1630.md) (4 calls: `OnOpenPage → IsAvailable`, `OnOpenPage → IsOutlookMobileApp`, `OnOpenPage → OCRAvailable`, …)
- [Codeunit 1535 "Approvals Mgmt."](../codeunit/1535.md) (3 calls: `SetControlAppearance → CanCancelApprovalForRecord`, `SetControlAppearance → HasOpenApprovalEntries`, `SetControlAppearance → HasOpenApprovalEntriesForCurrentUser`)
- [Codeunit 427 "ICInboxOutboxMgt"](../codeunit/427.md) (3 calls: `OnAfterGetRecord → IsPurchaseHeaderFromIncomingIC`, `OnOpenPage → IsPurchaseHeaderFromIncomingIC`, `OnOpenPage → ShowDuplicateICDocumentWarning`)
- [Codeunit 365 "Format Address"](../codeunit/365.md) (2 calls: `ActivateFields → UseCounty`, `FillRemitToFields → VendorRemitToAddress`)
- [Codeunit 9070 "Document Errors Mgt."](../codeunit/9070.md) (2 calls: `CheckShowBackgrValidationNotification → CheckShowEnableBackgrValidationNotification`, `SetControlAppearance → BackgroundValidationEnabled`)
- [Codeunit 9179 "Application Area Mgmt. Facade"](../codeunit/9179.md) (2 calls: `OnInit → IsAllDisabled`, `OnInit → IsLocationEnabled`)
- [Codeunit 1320 "Lines Instruction Mgt."](../codeunit/1320.md) (1 call: `PostDocument → PurchaseCheckAllLinesHaveQuantityAssigned`)
- [Codeunit 1400 "DocumentNoVisibility"](../codeunit/1400.md) (1 call: `SetDocNoVisible → PurchaseDocumentNoIsVisible`)
- [Codeunit 1543 "Workflow Webhook Management"](../codeunit/1543.md) (1 call: `SetControlAppearance → GetCanRequestAndCanCancel`)
- [Codeunit 1563 "Privacy Notice"](../codeunit/1563.md) (1 call: `OnInit → GetPrivacyNoticeApprovalState`)
- [Codeunit 457 "Environment Information"](../codeunit/457.md) (1 call: `OnOpenPage → IsSaaS`)
- [Codeunit 57 "Document Totals"](../codeunit/57.md) (1 call: `SaveInvoiceDiscountAmount → PurchaseRedistributeInvoiceDiscountAmountsOnDocument`)
- [Codeunit 5700 "User Setup Management"](../codeunit/5700.md) (1 call: `OnNewRecord → GetPurchasesFilter`)
- [Codeunit 6400 "Flow Service Management"](../codeunit/6400.md) (1 call: `OnInit → GetPowerAutomatePrivacyNoticeId`)
- [Codeunit 799 "VAT Reporting Date Mgt"](../codeunit/799.md) (1 call: `OnOpenPage → IsVATDateEnabled`)
- [Page 138 "Posted Purchase Invoice"](../page/138.md) (1 call: `PostDocument → (object)`)

## Called by

- [Codeunit 1314 "Purch. Doc. From Sales Doc."](../codeunit/1314.md) (1 call: `CreatePurchaseInvoice → (object)`)
- [Codeunit 1324 "Correct PstdPurchInv (Yes/No)"](../codeunit/1324.md) (1 call: `CancelPostedInvoiceAndOpenNewPurchaseInvoice → (object)`)
- [Codeunit 1402 "Cancel Posted Purch. Cr. Memo"](../codeunit/1402.md) (1 call: `ShowPurchaseInvoice → (object)`)
- [Codeunit 1637 "Office Document Handler"](../codeunit/1637.md) (1 call: `OpenIndividualPurchaseDocument → (object)`)
- [Codeunit 1854 "Sales Forecast Notifier"](../codeunit/1854.md) (1 call: `CreateAndShowPurchaseDocument → (object)`)
- [Codeunit 5530 "Calc. Item Availability"](../codeunit/5530.md) (1 call: `RunPurchHeaderPage → (object)`)
- [Codeunit 6620 "Copy Document Mgt."](../codeunit/6620.md) (1 call: `ShowPurchDoc → (object)`)
- [Codeunit 99000834 "Purch. Line-Reserve"](../codeunit/99000834.md) (1 call: `OnLookupDocument → (object)`)
- [Page 1872 "Item Availability Check"](../page/1872.md) (1 call: `ShowNewPurchaseDocument → (object)`)
- [Table 23 "Vendor"](../table/23.md) (1 call: `CreateAndShowNewInvoice → (object)`)

## Recent changes

- 2026-07-31 [#8959 Deliverable 638799: Spend Requests in Base App](../../changes/bcapps/8959.md) (main, BC30, feature)
- 2026-07-15 [#9044 [Master] Contact email is no validated during creation purchase documents_New](../../changes/bcapps/9044.md) (main, BC30, fix)
- 2026-07-10 [#9204 [Master]-Vendor Order No. exceeds 20-character limit causing error in Intercompany Purchase Invoice](../../changes/bcapps/9204.md) (main, BC30, fix)

## Across versions

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

## Countries that replace it

[CA](../../localizations/ca.md), [IT](../../localizations/it.md), [MX](../../localizations/mx.md), [RU](../../localizations/ru.md), [US](../../localizations/us.md)

## Documented on Microsoft Learn

- [EU third-party purchase transactions](https://learn.microsoft.com/dynamics365/business-central/finance-how-to-eu3party-trade-purchase)
- [Settle purchase invoices promptly](https://learn.microsoft.com/dynamics365/business-central/finance-how-to-settle-purchase-invoices-promptly)
- [Use E-Documents in the purchase process](https://learn.microsoft.com/dynamics365/business-central/finance-how-use-edocuments-purchase)
- [Use non-deductible VAT](https://learn.microsoft.com/dynamics365/business-central/finance-how-use-non-deductible-vat)
- [Record sustainability entries](https://learn.microsoft.com/dynamics365/business-central/finance-sustainability-journal)
- [Track data and use the IRS 1099 form](https://learn.microsoft.com/dynamics365/business-central/LocalFunctionality/UnitedStates/how-to-1099-use)
- [Set up and use the IRS 1099 form [US]](https://learn.microsoft.com/dynamics365/business-central/LocalFunctionality/UnitedStates/set-up-use-irs1099-form)
- [Purchase items for a sale](https://learn.microsoft.com/dynamics365/business-central/purchasing-how-purchase-products-sale)
- [Record purchases with purchase invoices](https://learn.microsoft.com/dynamics365/business-central/purchasing-how-record-purchases)
- [Vendor contract integration in purchase invoices](https://learn.microsoft.com/dynamics365/business-central/SRB/working-with-contracts/vendor-contract-integration-purchase-invoice)
- [Sustainability value chain in purchasing](https://learn.microsoft.com/dynamics365/business-central/value-chain-howto-purchase)

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: "page", object_name: "Purchase Invoice")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
