Skip to main content
CAC verification is the foundation of every Vouchmark check. It is a document-driven flow: the owner uploads CAC documents, the documents are reviewed in the background, and the per-document outcome is recorded on the company. There is no live registry lookup that returns directors or a registration record — verification is based on the documents you submit.

What gets verified

  • CAC certificate (cacert) — the registration certificate.
  • CAC status report (cacReport) — the company’s status report.
  • MEMART (memartDocument) — the Memorandum and Articles of Association. Required for RC companies (any classification other than BUSINESS_NAME) to clear the full bucket.
Each document ends up in one of four states: verified, pending, failed, or not_submitted.

How it runs

CAC verification is asynchronous. Submission queues a background job, returns a pending status immediately, and the owner is emailed when the job finishes. You can also poll the status endpoint for the per-document result.
1

Submit documents

Upload the certificate (and optionally the status report and MEMART) to POST /v1/verifyCacAndReport. To submit one document at a time, use POST /v1/verifyCacDocument with a documentType of cacert, cacReport, or memartDocument.
2

Background review

A queued job reviews the documents against the company on file. The company’s CAC document statuses move to pending while the job runs.
3

Poll for the outcome

Poll GET /v1/cacVerificationStatus/{companyId} for the per-document verified flag, status, and reason. For a live progress percentage of an in-flight job, POST /v1/checkVerificationProgress with the job’s progressId.

Call it from the API

curl -X POST https://api.vouchmark.com/v1/verifyCacAndReport \
  -H "Authorization: Bearer $TOKEN" \
  -F "companyId=cmp_aBcD..." \
  -F "cacert=@./cacert.pdf" \
  -F "cacReport=@./report.pdf" \
  -F "memartDocument=@./memart.pdf"
Submission response
{
  "success": true,
  "message": "CAC documents submitted for verification. You will receive an email notification once verification is complete, or check back later for status.",
  "data": {
    "verified": false,
    "status": "pending",
    "details": { "companyId": "cmp_aBcD..." }
  }
}
Status response
{
  "success": true,
  "message": "Success",
  "data": {
    "documents": {
      "cacert": { "verified": true, "status": "verified", "reason": null },
      "cacReport": { "verified": false, "status": "pending", "reason": null },
      "memart": { "verified": false, "status": "not_submitted", "reason": null }
    }
  }
}

Notes

  • Submit at least the certificate or the status report; a batch with no files is rejected.
  • For RC companies the MEMART is required to clear the full CAC bucket.
  • A document already in verified state cannot be re-submitted via the single-document endpoint (returns 409).
  • Verification is rate limited to 10 attempts per hour per caller.

Reference