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.
https://brainiac.software/api/v1/vendor-compliance/vendor-onboarding-precheck$0.04 USDCPrecheck 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
| Field | Required | Notes |
|---|---|---|
asOf | No | string |
projectName | No | string |
vendor | Yes | object; Object |
documents | No | array; Array |
requirements | No | array; Array |
attestations | No | array; 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"
}
]
}
JSONhttps://brainiac.software/api/v1/vendor-compliance/contractor-prequalification$0.05 USDCPrequalify a contractor
Compare buyer qualification criteria with supplied vendor facts, documents, and evidence. The result does not award eligibility or query a registry.
Body
| Field | Required | Notes |
|---|---|---|
asOf | No | string |
projectName | No | string |
vendor | Yes | object; Object |
documents | No | array; Array |
requirements | Yes | array; Array |
evidence | No | array; 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
}
]
}
JSONhttps://brainiac.software/api/v1/vendor-compliance/subcontractor-payment-readiness$0.04 USDCCheck 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
| Field | Required | Notes |
|---|---|---|
asOf | No | string |
projectName | No | string |
vendor | No | object; Object |
documents | No | array; Array |
requirements | Yes | array; Array |
openItems | No | array; 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"
}
]
}
JSONhttps://brainiac.software/api/v1/vendor-compliance/vendor-document-completeness$0.03 USDCCheck 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
| Field | Required | Notes |
|---|---|---|
asOf | No | string |
projectName | No | string |
documents | Yes | array; Array |
requirements | Yes | array; 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"
}
]
}
JSONhttps://brainiac.software/api/v1/vendor-compliance/vendor-compliance-report$0.08 USDCBuild a vendor compliance report
Consolidate supplied vendor information, documents, attestations, evidence, and open items into one requirements report. External registries are not contacted.
Body
| Field | Required | Notes |
|---|---|---|
asOf | No | string |
projectName | No | string |
vendor | No | object; Object |
documents | No | array; Array |
requirements | No | array; Array |
attestations | No | array; Array |
evidence | No | array; Array |
openItems | No | array; 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"
}
]
}
JSONhttps://brainiac.software/api/v1/vendor-compliance/contractor-closeout-check$0.04 USDCCheck contractor closeout
Compare buyer closeout requirements with supplied documents and attestations. A passing result does not certify that the project is complete.
Body
| Field | Required | Notes |
|---|---|---|
asOf | No | string |
projectName | No | string |
vendor | No | object; Object |
documents | No | array; Array |
requirements | Yes | array; Array |
attestations | No | array; 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