OnComply
Back to Blog
Best PracticesMarch 8, 2026·4 min read

Vendor Eligibility Tracking: Building a Can-Work, Can-Pay System

How to build a real-time vendor eligibility system that tells you instantly which vendors are cleared to work and cleared to receive payment — and why.

Most vendor compliance programs track documents. The best ones translate document status into operational decisions. The critical operational decisions are two: can this vendor work, and can this vendor be paid?

These questions sound simple. They are structurally important.

Why Separate Work Eligibility from Payment Eligibility

Work eligibility and payment eligibility are related but distinct. A vendor might be cleared to continue working on an existing project but blocked from new assignments because their insurance has lapsed. A vendor might be cleared to work but blocked from payment because their W-9 is missing. Conflating the two creates operational problems.

Work eligibility (can_work) answers: is this vendor currently authorized to perform work for us?

Depends on:

  • Insurance coverage is active and meets requirements
  • Professional license is valid for the work they are doing
  • No safety hold or quality hold applied
  • Contract is in force

Payment eligibility (can_pay) answers: can we issue payment to this vendor?

Depends on:

  • W-9 is on file with a valid TIN
  • No IRS backup withholding trigger active
  • No payment hold for compliance reasons
  • ACH authorization is on file (if paying by direct deposit)
  • Tax exemption certificate is on file (if claiming exemption)

A vendor can be can_work = true and can_pay = false (all insurance and licenses valid, but W-9 missing). They can be can_work = false and can_pay = true (COI expired mid-project, but they can still be paid for work already performed). Both states need to be visible and actionable.

The Blocking Rule Architecture

An eligibility system is only as useful as its blocking rules. Blocking rules define which compliance gaps trigger which eligibility restrictions.

Recommended blocking rules:

DocumentGapWork BlockPayment Block
W-9MissingNoYes
W-9TIN mismatchNoYes
COIExpiredYesNo
COICoverage below minimumYesNo
Professional LicenseExpiredYesNo
Professional LicenseWrong scopeYesNo
ContractExpiredYesNo
ACH AuthorizationMissing (if ACH payment)NoYes
Tax Exemption CertExpiredNo(Charge tax)

These are starting points — your specific rules should reflect your risk tolerance and operational context.

Real-Time vs. Periodic Eligibility

The choice between real-time eligibility updates and periodic updates has significant operational implications.

Periodic updates (daily or weekly batch):

  • Simpler to implement
  • Creates a window where a vendor who lost eligibility is still shown as eligible
  • Adequate for most administrative contexts

Real-time updates:

  • Eligibility status reflects the current document status at any moment
  • Required for integration with time-sensitive systems (payroll, project management, work order systems)
  • Necessary when eligibility decisions drive operational actions (can a crew dispatch, can an invoice be processed)

For a mid-market company with weekly AP runs, daily eligibility updates are typically sufficient. For a construction company with daily work authorizations and same-day pay decisions, real-time matters.

Integrating Eligibility with Operational Systems

The value of an eligibility system multiplies when it is connected to the systems that need the information.

Payroll / AP integration:

  • Check can_pay before processing each payment
  • Block payment automatically when can_pay = false
  • Log the blocking reason with the payment record

Project management / work order integration:

  • Prevent assigning a vendor to new work when can_work = false
  • Alert project managers when a vendor loses work eligibility mid-project

HR / time tracking integration:

  • Block timekeeping or invoice submission for vendors who are not work-eligible

These integrations are the difference between a compliance program that requires manual follow-up to enforce and one that enforces itself.

The API Approach

For companies with their own internal systems, an eligibility API is the cleanest integration path. A single API call to an eligibility endpoint returns can_work, can_pay, the blocking scope, and the specific reason codes. The calling system makes the access control decision based on the response.

This architecture separates compliance logic from operational systems. When compliance requirements change, they change in one place — the eligibility engine — not in every system that makes eligibility decisions.

Audit Trail for Eligibility Decisions

Every eligibility decision that affects operations should be logged:

  • When the status changed
  • What triggered the change (document expired, document renewed, manual override)
  • Who made any manual decisions
  • What operational actions were taken based on the status

This audit trail is necessary for two purposes: resolving disputes (a vendor who claims they were incorrectly blocked needs an audit trail to evaluate) and demonstrating to auditors that eligibility decisions were systematic and not arbitrary.

The log is also valuable internally for identifying patterns. If the same vendors are repeatedly going non-compliant, that is a signal worth investigating.


W-9 CollectionCOI TrackingACH AuthorizationDocument Fill & SignAutomated ValidationRenewal RemindersCan-Work / Can-Pay ControlsVendor PortalCompliance DashboardWebhook IntegrationsEligibility APIAudit-Ready ExportsLicense TrackingGrace Period ManagementCustom FormsW-9 CollectionCOI TrackingACH AuthorizationDocument Fill & SignAutomated ValidationRenewal RemindersCan-Work / Can-Pay ControlsVendor PortalCompliance DashboardWebhook IntegrationsEligibility APIAudit-Ready ExportsLicense TrackingGrace Period ManagementCustom Forms