Bulk Invoice Import to Business Central

Job ID: 40566020

Budget: €250 – €750 EUR

Background
-------------------
We are migrating historical accounting transactions from a legacy billing/accounting system into Microsoft Dynamics 365 Business Central SaaS.
The source system exports:
- One XML file containing accounting entries
- Multiple PDF files representing the original invoices
- PDF filename references are stored inside the XML

The XML contains:
- Document Number
- Posting Date
- Customer Account Number (legacy account)
- Revenue Account Number
- Amount
- Cost Center
- Cost Object
- PDF Filename
The XML does not contain invoice lines and should therefore be imported as accounting transactions rather than sales invoices.

Goal
-------
Develop a Business Central SaaS extension that:
- Imports XML files containing accounting documents.
- Creates General Journal Lines automatically.
- Maps legacy customer and G/L account numbers to Business Central entities.
- Posts the journal entries.
- Finds the corresponding PDF document.
- Attaches the PDF to the resulting posted entry.
- Creates an import log.

Functional Requirements
----------------------------------------
Import Source
The solution should support:
Option A (preferred)
Upload of a ZIP file containing:
Plain TextImportPackage.zip├── Fakt_5511.xml├── Fakt_5511_47465.pdf├── Fakt_5511_47466.pdf├── Fakt_5511_47467.pdf└── ...Show more lines
The extension extracts files internally.
Option B
Read files directly from a OneDrive folder using Microsoft Graph.
Please provide cost and complexity differences between Option A and Option B.

XML Processing
For each:
XML<FibuBeleg>Show more lines
read:
XMLbelegnummerbelegdatumarchivdateiShow more lines
and all accounting positions.
Example:
XML<kontonummer>120011</kontonummer><betrag>1383.01</betrag>Show more lines
XML<kontonummer>3690</kontonummer><betrag>1383.01</betrag>Show more lines

Mapping Tables
Create configurable mapping tables.
Legacy Customer Mapping
Example:
Plain Text120011 → C10000120012 → C10001120128 → C10002``Show more lines
Legacy G/L Account Mapping
Example:
Plain Text3690 → 84003691 → 8410Show more lines
Users must be able to maintain mappings within Business Central.

Dimensions
The XML contains:
XML<kostenstelle>205</kostenstelle><kostentraeger>10300</kostentraeger>Show more lines
These values shall be mapped to Business Central dimensions.
Dimension mappings must be configurable.

Journal Creation
Generate General Journal Lines automatically.
Required fields:

Posting Date
Document No.
External Document No.
Account Type
Account No.
Balancing Account
Amount
Dimensions

Posting
After validation, users should be able to:

Post a single document
Post all imported documents

Use standard Business Central posting routines.

PDF Attachment
After successful posting:

Determine PDF filename from XML.
Locate matching PDF.
Attach PDF to the resulting posted customer ledger entry or another agreed posted record.

Users should be able to open the PDF directly from Business Central.

Import Log
Create a log table showing:
Plain TextImport DateDocument NumberPosting StatusPDF FoundPDF AttachedError MessageShow more lines
Example:
Plain Text5511/47.465 | Posted | Yes | Yes | -5511/47.466 | Error | Yes | No | Customer Mapping MissingShow more lines

User Interface
Create:
Import Page
Actions:

Upload ZIP/XML
Validate
Import
Post
View Log

Mapping Pages

Customer Mapping
G/L Mapping
Dimension Mapping

Import Log Page

Filterable
Exportable


Technical Requirements

Business Central SaaS
AL Extension
Latest BC Version
No On-Premise functionality
No direct filesystem access
Use standard BC document attachment functionality
Follow Microsoft best practices


Deliverables
--------------------
AL Source Code
Compiled Extension (.app)
Installation Guide
User Guide
Test Documentation
Deployment Support
Related categories: XML Accounting Business Central SaaS