Business Central Invoice Import

Jul 24, 2026

Try it now: upload an invoice and get the data in Excel or CSV

PDF, JPG, PNG, BMP, HEIC, TIFF

Upload your invoices

There are three supported ways to import purchase invoices into Dynamics 365 Business Central: a configuration package built on the Purchase Header and Purchase Line tables for bulk historical loads, the Edit in Excel add-in for smaller recurring batches, and the purchase invoice API for a scheduled pipeline. All three need the vendor and G/L account records to already exist in Business Central, which is the most common reason a first import fails. Last updated July 2026.

This guide walks through each route, what the file has to look like, what breaks and how to fix it, and where the built-in Payables Agent fits alongside a bulk import. It is written for US finance teams and Business Central partners moving real invoice volume, not a single test document.

Can you import invoices into Business Central?

Yes. Business Central has no single Import Invoices button, but it exposes three separate mechanisms that all land purchase invoices in the system. Configuration packages handle large one-time loads, Edit in Excel handles ongoing batches from the purchase invoice list, and the REST API handles automated pipelines. Which one you pick depends on volume, how often you repeat it, and whether a developer is available.

RouteBest forWho runs itRepeatable?
Configuration packageBulk historical loads, go-live migrationConsultant or adminYes, reuse the package
Edit in ExcelMonthly or weekly batches under a few hundred linesAP clerk or controllerYes, paste and publish
Purchase invoice APIScheduled, hands-off automationDeveloper or partnerFully automated
Payables AgentEmailed PDF invoices under 10 pagesRuns itself, supervisedContinuous

What format does Business Central need for an invoice import?

Business Central wants one row per invoice line, not one row per invoice. A purchase invoice is two tables joined by a document number: the Purchase Header carries vendor number, document number, posting date, document date, due date and currency, and the Purchase Line carries type, number, description, quantity, direct unit cost and any dimension codes. Your file has to repeat the header values on every line belonging to the same document, or split into two sheets if you are using a configuration package.

The columns that trip people up are the ones with no obvious source on the invoice itself. Vendor No. must be the Business Central vendor code, not the vendor name printed on the PDF. Type on the line is usually G/L Account or Item, and No. is the corresponding account or item code, which means your extraction output needs a mapping step before it can post. Document Type must be set to Invoice. Get those four right and most imports go through on the first attempt.

How to import invoices into Business Central with a configuration package

Configuration packages are the workhorse for a go-live migration or a year of back invoices. Search for Configuration Packages, create a new package, and add table 38 Purchase Header and table 39 Purchase Line. Open each table and use Fields to switch off everything you are not populating, which keeps the Excel template readable. Export the package to Excel, fill the two sheets, import it back, then run Validate Package before Apply Package. Validation is the whole point: it lists every bad vendor code and missing G/L account as a row-level error you can fix in the sheet rather than a failure halfway through the load.

Two practical notes. Set Document Type to Invoice on both sheets, and make sure your Document No. values do not collide with a number series Business Central will later try to reuse. Many partners load with explicit document numbers taken from the vendor invoice number prefixed with a source code, which keeps the audit trail obvious after the fact.

How to import invoices into Business Central using Excel

For a recurring monthly batch, Edit in Excel is faster than building a package. Open the Purchase Invoices list, choose Edit in Excel, and Business Central opens the list in a workbook connected through the Excel add-in. Add rows, fill the header fields, then publish back. The add-in validates against the same business logic the UI uses, so a bad vendor code fails immediately with a readable message instead of posting something wrong.

The limitation is scale. Edit in Excel is comfortable up to a few hundred rows and gets slow beyond that, and it works on one list at a time, so header and line entry is a two-pass job. If your batch is regularly over a thousand lines, move to a configuration package or the API.

How do I import invoices into Business Central automatically?

Use the purchase invoice API. Business Central exposes purchaseInvoices and purchaseInvoiceLines endpoints in the standard v2.0 API, so a scheduled job can create a draft invoice, append its lines, and leave it for review without anybody opening the client. Authenticate with an Entra ID application registration, POST the header, capture the returned id, then POST each line against it. Power Automate works for the same pattern if you would rather not write code, and teams that want the extraction, mapping and posting steps to run as one scheduled chain usually wire the apps and APIs together rather than babysitting a folder.

The API route is also the one that survives volume. There is no per-day ceiling of the kind the Payables Agent carries, and because you control the payload you can enforce your own duplicate check before anything is created, which the agent does not do for you.

Why does my Business Central invoice import fail?

Almost always because a referenced record does not exist yet. Business Central will not create a vendor, G/L account, item, dimension value or currency on the fly during an import. If the file names something the system has never seen, the row fails. Load the master data first, in that order, and re-run.

The other frequent causes are worth knowing before you start:

  • Posting date outside an allowed period. Check Allow Posting From and Allow Posting To in General Ledger Setup and on the user setup card.
  • Blocked vendor. A vendor with Blocked set to All or Payment stops the invoice. Note that when the Payables Agent creates a new vendor it deliberately sets Blocked to All until somebody approves it.
  • Document No. already used. Either the number series has moved past your value or a prior partial import left the record behind.
  • Missing Type on the line. A line with a No. but no Type will not resolve to an account.
  • Mandatory dimensions. If a G/L account has a dimension marked Code Mandatory, every line hitting it needs that dimension value.

Where the Payables Agent fits alongside a bulk import

Microsoft's Payables Agent handles the steady drip of emailed invoices. It monitors a designated Microsoft 365 mailbox, creates an Inbound E-Document for each PDF attachment, extracts the data with Azure Document Intelligence, identifies the vendor and drafts a purchase invoice for a supervisor to finalize. For a small company receiving tidy PDFs by email, it removes most of the typing.

It does not replace a bulk import, and Microsoft is clear about why. The agent processes only emails containing PDF attachments, skips any email with more than 10 attachments, will not process PDFs over 10 pages or over 5 MB, and stops at 100 emails and 500 invoices per day. Approval flows and anomaly detection are not supported, and the feature is validated and supported in English only. So a long freight manifest, a scanned supplier statement holding eight invoices, a portal download, or a catch-up batch of last quarter's paperwork all still need the file-based or API route.

Getting invoice data into a loadable file in the first place

Every route above assumes you already hold structured data. That is the actual bottleneck for most teams, because vendor invoices arrive as PDFs and scans with no two layouts alike. Typing them into a template is the job the import was supposed to eliminate.

AI extraction closes that gap. Upload the invoices, get back one row per line item with vendor, invoice number, dates, description, quantity, unit price, tax and total in consistent columns regardless of vendor layout, then map vendor names to Business Central vendor codes and descriptions to G/L accounts once. Our Business Central AP automation page covers the capture side in detail, including the invoices the Payables Agent will not accept, and invoice line item extraction explains why line-level capture matters more than header totals when you are posting rather than just filing. If you are costing out the OCR engine underneath the agent, Azure Document Intelligence pricing has the per-invoice math.

Teams running the same exercise on other systems can follow the equivalent walkthroughs for importing invoices into NetSuite, Xero and Sage, or read how to import invoices to an ERP for the pattern that holds across all of them.

Frequently asked questions

Can Business Central import invoices from PDF?

Not directly from a file you drop in. Business Central reads PDFs through the Payables Agent, which picks them up as email attachments and sends them to Azure Document Intelligence for OCR. PDFs over 10 pages or 5 MB are not processed, and files that arrive any other way are not seen at all. For those, extract the data first and load the result as a CSV or through the API.

What is the difference between a configuration package and Edit in Excel?

A configuration package is a reusable definition of which tables and fields you are loading, with a validation pass that reports errors row by row before anything is written. Edit in Excel is a live connected view of one list that publishes changes straight back. Packages suit large or repeated migrations; Edit in Excel suits an accountant fixing or adding a few hundred rows.

Do vendors need to exist before importing invoices into Business Central?

Yes. Business Central matches on the Vendor No. field and will not create the vendor record during an import. Load the vendor list first, then the invoices. The same applies to G/L accounts, items, currencies and any dimension values referenced on the lines.

How many invoices can the Business Central Payables Agent process per day?

Microsoft documents a limit of 100 emails per day and 500 invoices per day. It also skips any email carrying more than 10 attachments. Those ceilings are fine for a small company and constraining for a shared service center, which is why higher-volume teams pair the agent with a file or API import path.

Can I import invoices into Business Central with Power Automate?

Yes. The Business Central connector in Power Automate can create purchase invoice and purchase invoice line records through the same v2.0 API a developer would call directly. It is a reasonable middle ground when you want scheduled automation without writing AL code, though you still need the extraction and mapping steps in front of it to produce clean vendor codes and account numbers.