Purchase Invoices Realtime-enabled
GETPOSTPATCHDELETETable: Purchase Header
Read and write unposted purchase invoices, the Purchase Header filtered to Document Type = Invoice. POST a full invoice in one call (header plus the purchaseInvoiceLines child collection); Document Type is stamped for you, so you never send it. Your external key round-trips on integrationId.
Resolve the vendor
You do not have to know the Business Central vendor number. Send any one of vendorNumber, or vendorIntegrationId. The latter is a res resolver field that looks the vendor up by its Integration Id and sets Buy-from Vendor No. for you. See resolvers for how resolver fields behave.
vendorIntegrationId matches no vendor the call errors. It does not silently create one.Currency
currencyCode is an ISO code, not the raw Business Central currency code. The local currency (LCY) is represented as the blank/empty code, and the endpoint translates ISO↔blank in both directions, so send "" (or omit it) for an LCY invoice.
Deep insert
POST/purchaseInvoices
{
"vendorIntegrationId": "ACME-001",
"vendorInvoiceNumber": "INV-5567",
"purchaseInvoiceLines": [
{ "itemNumber": "1000", "quantity": 5, "directUnitCost": 12.50 }
]
}See posted documents for reading back the result, and dimensions for the shortcut-dimension columns.
Bound actions
release performs a manual release and reopen returns a released invoice to Open. post releases the invoice on its way through, so use release when you want the invoice released and left unposted for a person to check.
POST/purchaseInvoices({id})/Microsoft.NAV.release
The bound action post receives and invoices the document (equivalent to Post in Business Central). It is invoked on a single invoice:
POST/purchaseInvoices({id})/Microsoft.NAV.post
archive / cancel snapshot a version and keep the invoice open, or archive then delete it (soft delete). See Archiving & cancelling.
totalAmountExcludingTax, totalTaxAmount, totalAmountIncludingTax) are read-only sums; you cannot set them.