Project Subcontracting
Learn how to manage subcontractor relationships through statements, self-billing invoices, and project-related automation.
Project Subcontracting in Business Central enables accurate tracking, invoicing, and validation of subcontracted project work. This includes:
- Logging subcontractor usage from journals, time sheets, and expense sheets
- Creating subcontractor statements
- Generating self-billing invoices
- Matching vendor invoices with statements
- Producing formatted statement reports
There are two supported processes for handling subcontractor billing:
- Self-billing allows you to generate purchase invoices based on approved subcontractor statements. This ensures internal control over invoicing and simplifies the payment workflow. Learn more.
- Invoice matching is used when subcontractors send their own invoices, and you want to validate them against recorded project usage. It helps confirm that the invoiced amount aligns with approved work and allows for tolerance-based checks. Learn more.
Both methods ensure accurate financial tracking and prevent duplicate billing for the same work.
This documentation covers each part of the process, from setup to automation.
1 - Subcontractor Usage Tracking
Learn how subcontractor usage is tracked across journals, time sheets, and expense sheets.
Subcontractor usage can be recorded through project journals, time sheets, and expense sheets, with automatic linking to the subcontractor vendor based on the resource setup.
Project Journal Lines
You can use project journals to manually enter subcontractor-related work:
- Open Project Journal.
- Fill in fields like Project No., Project Task No. and select a Resource.
- If the resource has a Subcontractor Vendor No., it will auto-fill on the journal line.
- Post the journal to create Project Ledger Entries with the vendor link.
Tip
You can also set or change the vendor number manually on the journal line.Business Central Time Sheets
When recording time through standard BC time sheets:
- Assign a subcontractor resource on a Project-type time sheet line.
- When posted, the Subcontractor Vendor No. flows into the ledger entry.
Progressus Time Sheets
In Progressus Time Sheets:
- Submit time entries for a subcontractor resource.
- Posting the time sheet creates the ledger entries with the info about the subcontractor.
Progressus Expense Sheets
To track Progressus subcontractor-related expenses:
- Enter expenses for a subcontractor resource in a Progressus Expense Sheet.
- Posting the expense sheet creates the ledger entries with the info about the subcontractor.
Summary
Subcontractor usage entered through journals, time sheets, or expense sheets is automatically linked to the subcontractor vendor using the setup on the resource. This ensures all project costs are properly tracked and attributed to the correct vendor.
Tip
Set the Subcontractor Vendor No. on the Resource Card to enable automatic tracking.2 - Subcontractor statements
Learn how to collect unpaid project usage into subcontractor statements for invoicing or validation.
Subcontractor Statements group unpaid project usage for a vendor and a period. They’re used as a basis for self-billing or invoice validation.
When to use it
Use subcontractor statements when:
- You need to summarize subcontracted work before processing payment.
- You intend to generate a self-billing invoice for recorded project usage.
- You want to compare an incoming vendor invoice with recorded usage.
How to create a statement
- Choose the 🔎 icon, enter Subcontractor Statements, and select the related link.
- Choose New to create a blank statement.
- On the statement page, fill in the following fields:
Subcontract Vendor No.Period Start and Period End
Document date will be today’s date by default. Vendor info and currency are auto-filled.
Add project entries to the statement
- Choose Get project entries
- A list of eligible unpaid project ledger entries will appear. The system includes entries that:
- Match the vendor and date range
- Are not assigned to another subcontractor statement.
- All entries are set to Included by default. You can deselect any entries you don’t want to include in the statement.
- Click Close. All entries marked as Included will be added to the statement.
Tip
Use standard selection methods (Shift+Click, Ctrl+Click) to select multiple lines, then choose Clear Included to exclude them. To include them again, use Set Included.The selected entries are now linked to the statement. The system does not create new entries but assigns the Subc. Stmt. No. field on each ledger entry.
Note
After project entries are added, you can no longer change the vendor on the statement.Remove lines from a statement
- To remove a line from a statement:
- Select one or more lines
- Choose Delete Line.
This action is only available for open statements.
It clears the Subc. Stmt. No. field on the project ledger entries but does not delete the entries themselves. The total amount on the statement is recalculated automatically.
Print the Statement Report
To print or export a formatted version of the subcontractor statement:
- Choose Print on the statement page.
- The report summarizes header and line details for distribution or record-keeping.
Statement status
Open — still editableApproved — ready for invoicing or matchingClosed — finalized after invoice is posted
Note
Only Approved statements can be used for creating a self-billing invoice or matching with existing purchase invoices.See Also
3 - Batch Create Subcontractor Statements
Learn how to automatically generate subcontractor statements for multiple vendors and periods.
You can automate the creation of subcontractor statements by running the Create Subcontractor Statements batch job.
This process collects all eligible project ledger entries and creates statements in bulk for all selected vendors and periods.
When to Use It
- You want to generate statements for multiple subcontractors at once.
- You regularly create statements for a defined billing period (e.g., weekly or monthly).
- You want to ensure no eligible project usage is missed for invoicing.
How to Run the Batch Job
- 🔎 Go to Subcontractor Statements.
- Choose Create Subcontractor Statements.
- In the request page, specify the required filters and options.
Filters
Mandatory fields include:
- Document Date – Sets the document date for the created statements. It is set by default to today’s date.
- Period Start / Period End – Defines the date range for included project ledger entries.
Optional fields include:
- Vendor No. – Limits statement creation to specific vendors.
- Project No. – Limits statement creation to a specific project.
- Project Task No. – Limits statement creation to a specific task.
Options
- Create Empty Statements – When enabled, creates statements even if no project ledger entries exist for the selected vendor and period.
After confirming, the system runs the batch job and shows how many statements were created.
Result
- One Subcontractor Statement per vendor that meets the criteria
- All related unpaid project ledger entries are linked automatically
- Each statement is created with Status = Open, ready for review and approval
4 - Create self billing invoices
Learn how to generate self billing purchase invoices from subcontractor statements.
Self billing lets you create a purchase invoice on behalf of a subcontractor, using data from an approved Subcontractor Statement. This ensures accurate billing for recorded project work, without waiting for the vendor’s invoice.
When to use it
Use this functionality when:
- The subcontractor does not send their own invoice, and billing needs to be generated internally
- The company has a self-billing agreement with the subcontractor
- The Subcontractor Statement has been reviewed and approved for payment
Create a self billing purchase invoice
- 🔎 Go to Subcontractor Statements
- Select an Approved statement
- Choose Create Self-Billing Invoice
Pre-filled fields and currency logic
The purchase invoice header is auto-filled with vendor details, statement period, and document dates. The language code from the vendor card is also applied.
The invoice lines include:
- A summary line displaying the billing period.
- Detailed lines for each project ledger entry included in the statement.
If any project ledger entry uses a different currency than the invoice, the system automatically converts the amounts to the invoice currency using the current exchange rate set.
Note
The invoice does not include project or task numbers to avoid duplication in project accounting.Self-billing Agreement Validation
To comply with tax regulations (e.g., in the UK), a valid self-billing agreement must exist between the customer and subcontractor before generating self-billing invoices.
Setup
- In Purchase & Payables Setup, enable Require Self Billing Agreement.
- On the Vendor Card, set the Self Billing Agrmt. End Date.
Behavior
- If the date is missing or in the past, the system prompts the user before allowing invoice creation.
- If the date is valid (in the future), the invoice is created normally.
Note
The agreement document isn’t stored in the system, only its end date is tracked.See Also
Closed Subcontractor Statements
5 - Match subcontractor statements to invoices
Learn how to match incoming purchase invoices with subcontractor statements and validate amounts using tolerance settings.
Matching purchase invoices with approved Subcontractor Statements ensures that subcontractors are paid accurately and only for confirmed project work. This process is especially useful when subcontractors issue their own invoices instead of using self billing.
The system allows you to link a vendor invoice to a subcontractor statement, compare amounts, and automatically detect discrepancies based on a configured tolerance. This improves financial control and ensures that invoicing aligns with recorded project usage.
When to use it
Use invoice matching when:
- The subcontractor submits their own invoice instead of using self billing.
- You want to verify the invoice against an Approved Subcontractor Statement.
- You need visibility and control over discrepancies before posting the invoice.
How to match a subcontractor statement to a purchase invoice
- Open the purchase invoice for the subcontractor.
- Enter the subcontractor statement number in the
Your Reference field.
Alternatively, use the lookup on the Subcontractor Statement No. field to manually select the correct statement. - If a matching approved statement is found:
- The
Subc. Stmt. No. field is auto-filled. - The system compares the invoice total with the statement amount.
- Based on the comparison:
- If the amounts are within the configured tolerance the match status is set to Full Match.
- If the difference exceeds the tolerance the match status is set to Partial Match.
- If necessary, you can manually override the match result by updating the Subc. Stmt. Match field.
The system evaluates match status automatically and updates it as values change.
Note
The system uses the Currency Code on the purchase invoice and automatically converts the subcontractor statement total from its original currency if needed.Note
If a purchase invoice includes project-related lines that were not added through a subcontractor statement, the system will still update the Subcontractor Invoice No. on the resulting project ledger entries, but will leave the Subcontract Statement No. empty. These entries will be excluded from future subcontractor statements to avoid duplicate billing.See Also
Closed Subcontractor Statements
6 - Closed Subcontractor Statements
Learn how to review and manage closed subcontractor statements after posting self-billing invoices.
When the purchase invoice is posted, the related Subcontractor Statement is automatically closed.
Keeping closed statements separate from active ones ensures clarity in project accounting, serve as an audit trail and provides a traceable history of subcontractor billing.
Overview
A closed statement contains all data from the original approved statement, including:
- Vendor details
- Statement period and total amount
- Linked project ledger entries
- Reference to the connected purchase invoice
These records are read-only and cannot be modified.
Where to Find Closed Statements
To view historical subcontractor statements:
- 🔎 Go to Closed Subcontractor Statements.
- Use filters such as Vendor or Period to locate the desired record.
- Open the statement to review its details and links to related documents.
Available Actions
On the Closed Subcontractor Statement page, you can:
- View all linked Project Ledger Entries
- View the related Posted Purchase Invoice
- Export or print the statement for reporting or audit purposes