Vendor & Contractor Compliance API Documentation

Package checks for onboarding, prequalification, payment readiness, document completeness, closeout, and a consolidated report. Results come from the supplied record and buyer rules. Payment is the exact USDC price on Base with x402.

POSThttps://brainiac.software/api/v1/vendor-compliance/vendor-onboarding-precheck$0.04 USDC

Precheck vendor onboarding

Compare a supplied vendor record, document list, and attestations with the buyer requirements. Missing, expired, failed, and unverified items are reported separately.

Body

FieldRequiredNotes
asOfNostring
projectNameNostring
vendorYesobject; Object
documentsNoarray; Array
requirementsNoarray; Array
attestationsNoarray; Array

Request exampleJSON

{
  "asOf": "2026-11-02",
  "projectName": "Example project",
  "vendor": {
    "legalName": "Example Construction LLC",
    "country": "USA",
    "contactEmail": "ap@example.com",
    "identifierPresent": true
  },
  "documents": [
    {
      "id": "ins-1",
      "type": "insurance_certificate",
      "expiresOn": "2026-01-01"
    }
  ],
  "requirements": [
    {
      "id": "gl-doc",
      "kind": "document",
      "name": "Insurance certificate",
      "documentType": "insurance_certificate",
      "expiresAfter": "2026-12-31"
    }
  ]
}

Response exampleJSON

{
  "checkedAt": "2026-11-02T19:00:00.000Z",
  "asOf": "2026-11-02",
  "purpose": "vendor-onboarding-precheck",
  "projectName": "Example project",
  "vendor": {
    "legalName": "Example Construction LLC",
    "normalizedName": "example construction",
    "reference": "V-100"
  },
  "assessment": "requirements_unmet",
  "blocksWorkflow": true,
  "summary": "One or more required items are missing, expired, or failed. Complete the remediation steps before continuing.",
  "counts": {
    "satisfied": 0,
    "missing_evidence": 0,
    "expired": 1,
    "failed": 0,
    "not_verified": 0
  },
  "findings": [
    {
      "id": "gl-doc",
      "name": "Insurance certificate",
      "kind": "document",
      "required": true,
      "status": "expired",
      "observed": "2026-01-01",
      "remediation": "Replace document ins-1. It expired on 2026-01-01, before the check date 2026-11-02.",
      "source": "Supplied document inventory"
    }
  ],
  "warnings": [
    "asOf was not supplied. The check used UTC date 2026-11-02."
  ],
  "limitations": [
    "The result uses the supplied package and buyer requirements. Licensing boards, sanctions lists, wage determinations, and insurers are not contacted."
  ]
}

cURL

curl -i -X POST "https://brainiac.software/api/v1/vendor-compliance/vendor-onboarding-precheck" \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
  --data-binary @- <<'JSON'
{
  "asOf": "2026-11-02",
  "projectName": "Example project",
  "vendor": {
    "legalName": "Example Construction LLC",
    "country": "USA",
    "contactEmail": "ap@example.com",
    "identifierPresent": true
  },
  "documents": [
    {
      "id": "ins-1",
      "type": "insurance_certificate",
      "expiresOn": "2026-01-01"
    }
  ],
  "requirements": [
    {
      "id": "gl-doc",
      "kind": "document",
      "name": "Insurance certificate",
      "documentType": "insurance_certificate",
      "expiresAfter": "2026-12-31"
    }
  ]
}
JSON
POSThttps://brainiac.software/api/v1/vendor-compliance/contractor-prequalification$0.05 USDC

Prequalify a contractor

Compare buyer qualification criteria with supplied vendor facts, documents, and evidence. The result does not award eligibility or query a registry.

Body

FieldRequiredNotes
asOfNostring
projectNameNostring
vendorYesobject; Object
documentsNoarray; Array
requirementsYesarray; Array
evidenceNoarray; Array

Request exampleJSON

{
  "asOf": "2026-11-02",
  "vendor": {
    "legalName": "Example Construction LLC",
    "yearsInBusiness": 3
  },
  "requirements": [
    {
      "id": "years",
      "kind": "field",
      "name": "Years in business",
      "field": "yearsInBusiness",
      "minimum": 5
    }
  ]
}

Response exampleJSON

{
  "checkedAt": "2026-11-02T19:00:00.000Z",
  "asOf": "2026-11-02",
  "purpose": "contractor-prequalification",
  "projectName": "Example project",
  "vendor": {
    "legalName": "Example Construction LLC",
    "normalizedName": "example construction",
    "reference": "V-100"
  },
  "assessment": "requirements_unmet",
  "blocksWorkflow": true,
  "summary": "One or more required items are missing, expired, or failed. Complete the remediation steps before continuing.",
  "counts": {
    "satisfied": 0,
    "missing_evidence": 0,
    "expired": 0,
    "failed": 1,
    "not_verified": 0
  },
  "findings": [
    {
      "id": "years",
      "name": "Years in business",
      "kind": "field",
      "required": true,
      "status": "failed",
      "observed": "3",
      "remediation": "Raise Years in business to at least 5, or submit evidence that the buyer minimum does not apply. The supplied value is 3.",
      "source": "Supplied vendor record"
    }
  ],
  "warnings": [
    "asOf was not supplied. The check used UTC date 2026-11-02."
  ],
  "limitations": [
    "Prequalification compares buyer criteria with supplied evidence. It does not award eligibility."
  ]
}

cURL

curl -i -X POST "https://brainiac.software/api/v1/vendor-compliance/contractor-prequalification" \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
  --data-binary @- <<'JSON'
{
  "asOf": "2026-11-02",
  "vendor": {
    "legalName": "Example Construction LLC",
    "yearsInBusiness": 3
  },
  "requirements": [
    {
      "id": "years",
      "kind": "field",
      "name": "Years in business",
      "field": "yearsInBusiness",
      "minimum": 5
    }
  ]
}
JSON
POSThttps://brainiac.software/api/v1/vendor-compliance/subcontractor-payment-readiness$0.04 USDC

Check subcontractor payment readiness

List missing payment documents and caller-supplied open items. This check does not release a payment or rerun sanctions, wage, or certificate screens.

Body

FieldRequiredNotes
asOfNostring
projectNameNostring
vendorNoobject; Object
documentsNoarray; Array
requirementsYesarray; Array
openItemsNoarray; Array

Request exampleJSON

{
  "asOf": "2026-11-02",
  "documents": [
    {
      "id": "invoice-1",
      "type": "invoice"
    }
  ],
  "requirements": [
    {
      "id": "waiver",
      "kind": "document",
      "name": "Lien waiver",
      "documentType": "lien_waiver"
    }
  ],
  "openItems": [
    {
      "id": "payroll",
      "name": "Certified payroll",
      "status": "missing_evidence"
    }
  ]
}

Response exampleJSON

{
  "checkedAt": "2026-11-02T19:00:00.000Z",
  "asOf": "2026-11-02",
  "purpose": "subcontractor-payment-readiness",
  "projectName": "Example project",
  "vendor": {
    "legalName": "Example Construction LLC",
    "normalizedName": "example construction",
    "reference": "V-100"
  },
  "assessment": "requirements_unmet",
  "blocksWorkflow": true,
  "summary": "One or more required items are missing, expired, or failed. Complete the remediation steps before continuing.",
  "counts": {
    "satisfied": 0,
    "missing_evidence": 2,
    "expired": 0,
    "failed": 0,
    "not_verified": 0
  },
  "findings": [
    {
      "id": "payroll",
      "name": "Certified payroll",
      "kind": "open_item",
      "required": true,
      "status": "missing_evidence",
      "observed": "missing_evidence",
      "remediation": "Provide the missing evidence for Certified payroll before payment.",
      "source": "Caller-supplied open item. The underlying screen was not run again."
    },
    {
      "id": "waiver",
      "name": "Lien waiver",
      "kind": "document",
      "required": true,
      "status": "missing_evidence",
      "observed": "missing_evidence",
      "remediation": "Add the missing lien_waiver document to the package before continuing.",
      "source": "Supplied document inventory"
    }
  ],
  "warnings": [
    "asOf was not supplied. The check used UTC date 2026-11-02."
  ],
  "limitations": [
    "Payment readiness lists missing documents and caller-supplied open items. It does not release a payment."
  ]
}

cURL

curl -i -X POST "https://brainiac.software/api/v1/vendor-compliance/subcontractor-payment-readiness" \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
  --data-binary @- <<'JSON'
{
  "asOf": "2026-11-02",
  "documents": [
    {
      "id": "invoice-1",
      "type": "invoice"
    }
  ],
  "requirements": [
    {
      "id": "waiver",
      "kind": "document",
      "name": "Lien waiver",
      "documentType": "lien_waiver"
    }
  ],
  "openItems": [
    {
      "id": "payroll",
      "name": "Certified payroll",
      "status": "missing_evidence"
    }
  ]
}
JSON
POSThttps://brainiac.software/api/v1/vendor-compliance/vendor-document-completeness$0.03 USDC

Check vendor document completeness

Compare a supplied document inventory with a buyer requirements list. Files are not fetched, and a present document is not treated as verified content.

Body

FieldRequiredNotes
asOfNostring
projectNameNostring
documentsYesarray; Array
requirementsYesarray; Array

Request exampleJSON

{
  "asOf": "2026-11-02",
  "documents": [
    {
      "id": "w9-1",
      "type": "w9"
    }
  ],
  "requirements": [
    {
      "id": "w9",
      "kind": "document",
      "name": "Form W-9",
      "documentType": "w9"
    },
    {
      "id": "coi",
      "kind": "document",
      "name": "Certificate of insurance",
      "documentType": "insurance_certificate"
    }
  ]
}

Response exampleJSON

{
  "checkedAt": "2026-11-02T19:00:00.000Z",
  "asOf": "2026-11-02",
  "purpose": "vendor-document-completeness",
  "projectName": "Example project",
  "vendor": {
    "legalName": "Example Construction LLC",
    "normalizedName": "example construction",
    "reference": "V-100"
  },
  "assessment": "requirements_unmet",
  "blocksWorkflow": true,
  "summary": "One or more required items are missing, expired, or failed. Complete the remediation steps before continuing.",
  "counts": {
    "satisfied": 1,
    "missing_evidence": 1,
    "expired": 0,
    "failed": 0,
    "not_verified": 0
  },
  "findings": [
    {
      "id": "w9",
      "name": "Form W-9",
      "kind": "document",
      "required": true,
      "status": "satisfied",
      "observed": "w9-1",
      "remediation": "No action is required for this item.",
      "source": "Supplied document inventory"
    },
    {
      "id": "coi",
      "name": "Certificate of insurance",
      "kind": "document",
      "required": true,
      "status": "missing_evidence",
      "observed": "missing_evidence",
      "remediation": "Add the missing insurance_certificate document to the package before continuing.",
      "source": "Supplied document inventory"
    }
  ],
  "warnings": [
    "asOf was not supplied. The check used UTC date 2026-11-02."
  ],
  "limitations": [
    "Document completeness compares the supplied inventory with the buyer list and does not fetch the files."
  ]
}

cURL

curl -i -X POST "https://brainiac.software/api/v1/vendor-compliance/vendor-document-completeness" \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
  --data-binary @- <<'JSON'
{
  "asOf": "2026-11-02",
  "documents": [
    {
      "id": "w9-1",
      "type": "w9"
    }
  ],
  "requirements": [
    {
      "id": "w9",
      "kind": "document",
      "name": "Form W-9",
      "documentType": "w9"
    },
    {
      "id": "coi",
      "kind": "document",
      "name": "Certificate of insurance",
      "documentType": "insurance_certificate"
    }
  ]
}
JSON
POSThttps://brainiac.software/api/v1/vendor-compliance/vendor-compliance-report$0.08 USDC

Build a vendor compliance report

Consolidate supplied vendor information, documents, attestations, evidence, and open items into one requirements report. External registries are not contacted.

Body

FieldRequiredNotes
asOfNostring
projectNameNostring
vendorNoobject; Object
documentsNoarray; Array
requirementsNoarray; Array
attestationsNoarray; Array
evidenceNoarray; Array
openItemsNoarray; Array

Request exampleJSON

{
  "asOf": "2026-11-02",
  "projectName": "Example project",
  "vendor": {
    "legalName": "Example Construction LLC",
    "country": "USA",
    "identifierPresent": true
  },
  "documents": [
    {
      "id": "lic-1",
      "type": "licence",
      "jurisdiction": "US-TX",
      "licenseType": "Journeyman Electrician",
      "expiresOn": "2027-01-31",
      "completedCeHours": 4
    }
  ],
  "requirements": [
    {
      "id": "licence",
      "kind": "licence",
      "name": "Texas journeyman electrician licence",
      "jurisdiction": "US-TX",
      "licenseType": "Journeyman Electrician"
    }
  ]
}

Response exampleJSON

{
  "checkedAt": "2026-11-02T19:00:00.000Z",
  "asOf": "2026-11-02",
  "purpose": "vendor-compliance-report",
  "projectName": "Example project",
  "vendor": {
    "legalName": "Example Construction LLC",
    "normalizedName": "example construction",
    "reference": "V-100"
  },
  "assessment": "requirements_met",
  "blocksWorkflow": false,
  "summary": "Every required item in the supplied package met the buyer rules. This is not an approval to contract, pay, or close out.",
  "counts": {
    "satisfied": 1,
    "missing_evidence": 0,
    "expired": 0,
    "failed": 0,
    "not_verified": 0
  },
  "findings": [
    {
      "id": "licence",
      "name": "Texas journeyman electrician licence",
      "kind": "licence",
      "required": true,
      "status": "satisfied",
      "observed": "2027-01-31",
      "remediation": "No action is required for this item.",
      "source": "Stored US-TX Journeyman Electrician rule recorded 2026-10-28. The licence was not checked against the live registry."
    }
  ],
  "warnings": [
    "asOf was not supplied. The check used UTC date 2026-11-02."
  ],
  "limitations": [
    "The report consolidates the supplied vendor record, documents, attestations, evidence, and open items."
  ]
}

cURL

curl -i -X POST "https://brainiac.software/api/v1/vendor-compliance/vendor-compliance-report" \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
  --data-binary @- <<'JSON'
{
  "asOf": "2026-11-02",
  "projectName": "Example project",
  "vendor": {
    "legalName": "Example Construction LLC",
    "country": "USA",
    "identifierPresent": true
  },
  "documents": [
    {
      "id": "lic-1",
      "type": "licence",
      "jurisdiction": "US-TX",
      "licenseType": "Journeyman Electrician",
      "expiresOn": "2027-01-31",
      "completedCeHours": 4
    }
  ],
  "requirements": [
    {
      "id": "licence",
      "kind": "licence",
      "name": "Texas journeyman electrician licence",
      "jurisdiction": "US-TX",
      "licenseType": "Journeyman Electrician"
    }
  ]
}
JSON
POSThttps://brainiac.software/api/v1/vendor-compliance/contractor-closeout-check$0.04 USDC

Check contractor closeout

Compare buyer closeout requirements with supplied documents and attestations. A passing result does not certify that the project is complete.

Body

FieldRequiredNotes
asOfNostring
projectNameNostring
vendorNoobject; Object
documentsNoarray; Array
requirementsYesarray; Array
attestationsNoarray; Array

Request exampleJSON

{
  "asOf": "2026-11-02",
  "projectName": "Example project",
  "documents": [
    {
      "id": "as-built-1",
      "type": "as_built"
    }
  ],
  "requirements": [
    {
      "id": "as-built",
      "kind": "document",
      "name": "As-built drawings",
      "documentType": "as_built"
    },
    {
      "id": "punch",
      "kind": "attestation",
      "name": "Punch list",
      "documentId": "punch"
    }
  ],
  "attestations": [
    {
      "id": "punch",
      "statement": "The punch list is closed.",
      "accepted": false
    }
  ]
}

Response exampleJSON

{
  "checkedAt": "2026-11-02T19:00:00.000Z",
  "asOf": "2026-11-02",
  "purpose": "contractor-closeout-check",
  "projectName": "Example project",
  "vendor": {
    "legalName": "Example Construction LLC",
    "normalizedName": "example construction",
    "reference": "V-100"
  },
  "assessment": "requirements_unmet",
  "blocksWorkflow": true,
  "summary": "One or more required items are missing, expired, or failed. Complete the remediation steps before continuing.",
  "counts": {
    "satisfied": 1,
    "missing_evidence": 0,
    "expired": 0,
    "failed": 1,
    "not_verified": 0
  },
  "findings": [
    {
      "id": "as-built",
      "name": "As-built drawings",
      "kind": "document",
      "required": true,
      "status": "satisfied",
      "observed": "as-built-1",
      "remediation": "No action is required for this item.",
      "source": "Supplied document inventory"
    },
    {
      "id": "punch",
      "name": "Punch list",
      "kind": "attestation",
      "required": true,
      "status": "failed",
      "observed": "The punch list is closed.",
      "remediation": "Obtain acceptance of “The punch list is closed.” before continuing.",
      "source": "Supplied attestation"
    }
  ],
  "warnings": [
    "asOf was not supplied. The check used UTC date 2026-11-02."
  ],
  "limitations": [
    "Closeout compares buyer closeout requirements with the supplied documents and attestations. It does not certify completion."
  ]
}

cURL

curl -i -X POST "https://brainiac.software/api/v1/vendor-compliance/contractor-closeout-check" \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
  --data-binary @- <<'JSON'
{
  "asOf": "2026-11-02",
  "projectName": "Example project",
  "documents": [
    {
      "id": "as-built-1",
      "type": "as_built"
    }
  ],
  "requirements": [
    {
      "id": "as-built",
      "kind": "document",
      "name": "As-built drawings",
      "documentType": "as_built"
    },
    {
      "id": "punch",
      "kind": "attestation",
      "name": "Punch list",
      "documentId": "punch"
    }
  ],
  "attestations": [
    {
      "id": "punch",
      "statement": "The punch list is closed.",
      "accepted": false
    }
  ]
}
JSON