Job cost coding of vendor bills in QuickBooks

Read each vendor bill and suggest the job, account and class for every line in QuickBooks Online. A person approves or changes each suggestion. Only approved bills post.

Bill coding: Test Vendor 3, invoice 0042 (sample)
1 line needs a job
Bill lineJobStatus
Rebar, #5Sample Job 14Suggested
Form lumberSample Job 14Suggested
Crane, 1 daySample Job 14Person checks
Fuel surchargeUnassignedNeeds job

Class holds the cost code in this sample. Yours may use items instead.

Bill, one approved line (sample)
{ "VendorRef": { "value": "56" },
"Line": [{ "Amount": 412.50,
"DetailType":
"AccountBasedExpenseLineDetail",
"AccountBasedExpenseLineDetail": {
"AccountRef": { "value": "78" },
"CustomerRef": { "value": "14" },
"ClassRef": { "value": "3000" },
"BillableStatus": "NotBillable"
} }] }

Job and class sit on the line, so one bill can split.

Sample data. Every name and number here is made up.

How it runs.

Job reports go wrong when bills are coded late or to the wrong job. QuickBooks has no cost code field on a bill line, so each company has to choose a workaround.

  1. Vendor bill arrives

    PDF or email, with PO or job references when the vendor gives them.

    Your data
  2. Suggest line coding

    Job, account and class proposed from history and references. Weak matches stay blank.

    Automated
  3. AP or PM approves

    Staff confirm or change each line. Nothing posts without approval.

    A person
  4. Bill posted to QuickBooks

    Approved lines post through Intuit's API after your admin authorizes the connection.

    Automated

QuickBooks Online Accounting API / Bill entity / Customer and class lists / Vendor bill PDFs / Email inbox

The rules and limits.

Job on the line
CustomerRef sits on each expense line, account-based or item-based, so a single bill can be split across jobs.
Class on the line
ClassRef is on the line too. QuickBooks Online Plus or Advanced must have classes set to one per row, not one per transaction.
No cost code field
Intuit's schema has no cost code field on a bill line. The code has to live in a Class or Item, and coding has to follow your setup.
Billable status
BillableStatus accepts Billable, NotBillable or HasBeenBilled. Your accountant decides which applies to job costs you pass through.
API cost
Intuit's partner guide classes creating bills as a Core call, unmetered and uncharged. Reading accounts and reports is CorePlus and metered.

What a person does.

  • Approve or change each line before the bill posts.
  • Assign a job when the match is weak or missing.
  • Decide the split when one line covers more than one job.
  • Your accountant sets the cost code and class scheme.

Where we stand: we have not shipped this for QuickBooks. It uses the same pattern as our document extraction and review-queue work.

Common questions.

Does it work with QuickBooks Desktop?+

This page covers QuickBooks Online through Intuit's API. Desktop has a different SDK and connection, which we would scope separately.

Can it use a real cost code in QuickBooks?+

QuickBooks' bill line schema has no cost code field. The code has to live in something QuickBooks has, such as a Class or an Item. We would map to the one your company uses.

Does anything post without a person?+

No. Bills stay in a queue until someone approves them, and lines with weak matches stay blank. Posting uses Intuit's API, which your QuickBooks admin has to authorize.

Sources

General information, not legal, tax, or compliance advice. Rules change; confirm against the current source and your own advisers.

Bring us your version of this.

Intro calls are 30 minutes, free, and useful even if we never work together. We'll be honest about whether this is the right fit for your construction team.