Procure-to-Pay, PO Workflows & Spend Governance4 min readUpdated September 2026

Airbase and Procurify When Every Purchase Ties to a Client Project

For a software shop that bills by client project, Airbase tags each purchase to a project at the card swipe, while Procurify asks for the project in the request before approving anything. Either way, every tool, contractor and license needs a project code, because someone must decide whether it is rebilled to the client or absorbed as overhead.

Neither platform was built specifically for project-based billing, but they get you there in different ways: one through tagging at the card level, the other through a purchase request that already asks which project a cost belongs to before it approves anything.

Vendors Covered in this Article

Disclosure: We may earn a commission if you buy through some links on this page. It doesn't change what we recommend.

Why do costs lose track of their client project?

On a fixed-bid engagement, every dollar spent that can't be traced to a specific client project is a dollar that quietly erodes the margin you quoted. A project lead spins up a testing environment for two weeks, a contractor bills for a sprint of QA work, or someone buys a one-off design tool license to mock up a client deliverable, and none of it shows up anywhere except a general ledger line called software and contractors. By the time the project closes, finance can't tell you whether that engagement made money or just felt busy.

The fix isn't a better spreadsheet. It's making the project code part of the purchase itself, captured at the moment someone spends, not reconstructed afterward from memory and old email threads.

Airbase: Tag It When the Card Swipes

Airbase lets you attach a custom field, like a project code, to a card transaction as it happens, and route the approval to that project's lead instead of a generic department head. For a shop running a dozen small engagements at once, that means a QA contractor's software purchase gets tagged to the right client project the moment it happens, not weeks later when someone tries to reconstruct the bill. The tradeoff is discipline: if the person swiping the card skips the project field, the transaction still goes through, and you're back to reconstructing it by hand.

Procurify: Name the Project Before the Money Moves

Procurify pushes the project question earlier, into the request itself. Nobody gets a purchase order approved without naming the client project and, ideally, whether the cost is billable or absorbed as overhead. That upfront friction is exactly what a shop with strict client-billing rules wants, because it forces the classification decision onto the person who actually knows the answer, the project lead, rather than leaving it for finance to guess at close.

The cost is speed. A contractor who needs same-day access to a tool has to wait for that request to clear, which can be a real problem when a client deadline is measured in hours, not days.

Fixed-Bid Shops Want One Thing; Time-and-Materials Shops Want Another

If most of your revenue comes from time-and-materials contracts, every reimbursable cost you can document turns directly into billable revenue, so a tool that makes it easy to log a cost against a project the moment it happens, Airbase's approach, tends to recover more of what you're actually owed. If most of your revenue is fixed-bid, the priority flips: you care less about rebilling and more about knowing, project by project, whether you're staying under the budget you quoted, which is where Procurify's request-first budget check earns its keep.

A shop running both contract types at once often ends up applying stricter rules on the time-and-materials side and looser ones on fixed-bid work, rather than picking one platform's default behavior for everything.

How do you build a project-code list before automating?

Whichever tool you choose, none of this works without a clean list of active project codes that matches what's in your time-tracking or project-accounting system, kept current as engagements open and close. Build that list first. Then decide who owns the classification call, billable or overhead, for each purchase: usually the project lead, not finance, because they're the one who knows whether a client actually agreed to reimburse a given cost.

Once that's in place, review flagged mismatches monthly, a purchase with no project code, or one tagged to a project that closed two months ago, rather than waiting for a client invoice dispute to surface it for you.

Set up project codes in this order:

  1. Build a clean list of active project codes that matches your time-tracking or project-accounting system.
  2. Name the person who owns the billable-or-overhead call for each purchase, usually the project lead rather than finance.
  3. Make the project code a required field at the moment of purchase instead of reconstructing it later.
  4. Close each code when the engagement ends, so later purchases cannot be charged to a finished project.

A Common Mistake: Project Codes That Outlive the Project

A shop that sets up project codes carefully at kickoff often forgets to close them at the other end. Six weeks after a client engagement wraps, a departing contractor's laptop insurance renewal, a staging environment nobody decommissioned, or a design tool seat still gets tagged to that same project code, because the code is still sitting there in the dropdown and closing it out was never anyone's job. Finance only catches it when a client asks why a closed engagement still shows activity, or when the margin report for a project that closed profitably three months ago suddenly looks worse.

The fix is a short closeout step, not a new tool: when a project lead marks an engagement done, someone (usually the PM or a project accountant) archives the project code the same week, so it drops out of the active list in Airbase or Procurify and can't absorb stray charges by accident. Pair that with a monthly scan for purchases tagged to a project that closed more than 30 days ago; those are almost always billing errors waiting to be found by the client instead of by you.

Executive Capability Standard

What Good Looks Like

A well-run project-based dev shop can tell you, for any closed engagement, exactly what it spent on tools and contractors, and whether that cost was billed to the client or absorbed, without anyone reconstructing it from memory.

Building The Capability (5-Stage Skill Ladder)

1. Learn:Pull the last two closed engagements and try to reconstruct every tool and contractor cost tied to them from existing records, then note where that trail broke.
2. Do Manually:Require project leads to log every purchase against a project code in a shared tracker before it's approved, even before you automate anything.
3. Delegate:Assign one person, often a project accountant or PM lead, to review the tracker weekly and flag purchases missing a project code.
4. Automate:Connect Airbase or Procurify's custom fields to your project-accounting or time-tracking system so a project code is required, not optional, on every purchase.
5. Buy:Move to a platform that reconciles billable spend against each client contract automatically and flags margin drift on open engagements before the project closes.

How to Get Started

Disclosure: We may earn a commission if you buy through some links on this page. It doesn't change what we recommend.

Frequently Asked Questions

Should overhead software, like our own project management tool, get a project code at all?

No. Tag only costs that could plausibly be billed to or absorbed by a specific client engagement. Your own internal tools, like the project management system every team uses, belong under general overhead, not a project code, or you'll spend more time debating the tag than the cost is worth.

What happens when a contractor buys something without going through either tool?

It becomes an unclassified cost that finance has to chase down at month end, which is the exact problem both platforms exist to prevent. The practical fix is a policy that contractors get provisioned inside the platform from their first day, not added later once someone notices a gap.

Can we run different rules for fixed-bid versus time-and-materials clients in the same platform?

Yes, both platforms support different approval routing by project or client, so you can require billability tagging on time-and-materials engagements while keeping fixed-bid purchases on a simpler budget-check workflow.

About the numbers

This guide doesn't quote a sourced benchmark. Figures in it are estimates or general guidance, so check them against your own numbers.

Related Guides