Learn Direct costs

Bulk import invoices as Procore direct costs

Have you ever keyed thirty vendor invoices into Procore direct costs from a stack of PDFs?

Direct costs are entered one invoice at a time. Drop the PDFs on a sheet, let the lines extract, fix vendors and budget codes, and create them all as drafts.

15 min to do it yourself September 3, 2026
Bulk import invoices as Procore direct costs
Quick answer.

Procore’s Direct Costs tool takes one invoice at a time, header then lines. Drop the month’s invoices on a Sandspit sheet, let extraction read them into rows, map any vendor or budget code Procore does not recognise, and sync. Each invoice becomes one draft direct cost with its lines coded, and a link back to it lands on the sheet.

01

Drop the invoices on the sheet

Open Direct Cost Import in the Sandspit task pane, switch to AI Extraction, and drop the PDFs. Choose Grouped to roll each invoice up by budget code, or Detailed to keep every invoice line. Click Add items to sheet. Each invoice arrives as one direct cost with its lines, dates, and vendor filled in.

02

Fix the vendors and budget codes the review flags

The task pane checks every row against the project as it lands. A vendor Procore does not know, or a budget code that does not match, is grouped under its issue. Use Map to existing to search and pick the right value. The dropdowns on the sheet do the same thing.

Watch out: vendors and budget codes have to exist on the project already. This tool does not create them. Add them in Procore, then refresh the picklists.

03

Check the amounts and duplicates

Each line needs an amount, or a quantity and unit cost that produce one. The same vendor and invoice number twice on the sheet is flagged as a duplicate. Fix those cells and the row clears.

04

Sync

The sync button stays disabled until every issue is clear, then click Sync 24 changes to Procore. Sandspit creates the direct costs in the background and writes a Procore link back on every row. Rows already synced are never sent again.

Watch out: if Procore already has an invoice with the same vendor, number, and date, that row fails with the message rather than creating a duplicate.

05

Finish in Procore

Everything is created as an invoice-type direct cost in Draft. Move them out of Draft, and attach the source PDFs, in Procore’s Direct Costs tool.

Why invoices pile up

A busy job receives dozens of vendor invoices a month that are not against a commitment. Rentals, deliveries, general conditions, small trades. Each one has to be keyed into Procore as a direct cost with its lines coded, and the person doing it is reading a PDF and typing.

The typing is the delay. Costs sit in a folder until someone has an afternoon, and the budget reports are wrong until then.

What the sheet changes

  • Extraction does the reading. Vendor, invoice number, dates, and lines land as rows.
  • Validation before Procore. Vendors, budget codes, amounts, and duplicates are checked on the sheet.
  • One sync. Every clean invoice is created in one run, with a link back.
  • Draft, not posted. Nothing leaves Draft until you move it in Procore.

Frequently asked

What kinds of direct costs can this create?

Invoice-type direct costs in Draft status, one per invoice. Expense and payroll types are entered in Procore.

Does it read the PDF, or do I still type the lines?

It reads them. PDFs, images, CSVs, and spreadsheets all go through extraction, and the lines land on the sheet with the vendor, invoice number, dates, and amounts. You correct what it got wrong rather than typing from scratch.

Why is there no cost code or cost type column?

A direct cost line is coded by its budget code, which is Procore’s WBS code and already contains the cost code and cost type. Pick the budget code and Procore derives the rest.

Can I update a direct cost that already exists?

No. This tool creates. Edit existing direct costs in Procore.

What permission do I need?

Standard or Admin on the project’s Direct Costs tool. Read Only can pull direct costs into a reporting sheet with Pull from Procore but cannot create them.

Applies to

Procore Project Financials. Needs Standard on the Direct Costs tool. Creates invoice-type direct costs in Draft.

Step-by-step mechanics, every column, and every error message are in the documentation.

Schedule a Demo

See how Sandspit helps construction teams review budgets, forecasts, and change-event intake before it syncs to Procore.