Skip to main content
Cleo Pay requires business verification before you can send payments. The verification process follows KYB (Know Your Business) standards and involves submitting tax information, officer details, and supporting documents.

Verification statuses

StatusDescription
pendingVerification has not been started or is in progress.
verifiedThe business passed KYB and is fully active.
suspendedVerification failed. Additional action is required.
documentAdditional documents are required to complete verification.

Verification flow

1

Submit tax information

Provide the business’s EIN or SSN and sign the IRS W-9 certification. Use PATCH /api/businesses/{businessId}/tax to submit basic tax info, then PATCH /api/businesses/{businessId}/tax/signature to record the electronic signature.
2

Add business officers

List all beneficial owners with 25% or more ownership using POST /api/businesses/{businessId}/officers. For each officer, you need their name, date of birth, address, and SSN.
3

Certify beneficial ownership

Once all officers are added, certify the beneficial ownership information with POST /api/businesses/{businessId}/officers/certify-beneficial-ownership.
4

Upload verification documents (if required)

If the status becomes document, upload supporting documents (e.g., EIN letter, formation documents) using POST /api/businesses/{businessId}/tax/upload-verification-documents.
5

Await review

Cleo Pay reviews the submission. The business status updates to verified once approved. Monitor status via GET /api/businesses/{businessId}/tax/detailed.

Tax info endpoints

Get tax info

GET /api/businesses/{businessId}/tax Returns the current tax information on file for the business.
businessId
string
required
The unique ID of the business.
curl --request GET \
  --url https://api.cleo-pay.com/api/businesses/biz_abc123/tax \
  --header "Authorization: Bearer <token>"

Update tax info

PATCH /api/businesses/{businessId}/tax Submits or updates the business’s EIN or SSN for IRS TIN verification.
businessId
string
required
The unique ID of the business.
ein
string
Employer Identification Number. Required for LLCs, corporations, and partnerships.
ssn
string
Social Security Number. Accepted for sole proprietorships.
curl --request PATCH \
  --url https://api.cleo-pay.com/api/businesses/biz_abc123/tax \
  --header "Authorization: Bearer <token>" \
  --header "Content-Type: application/json" \
  --data '{ "ein": "12-3456789" }'

Get detailed tax status

GET /api/businesses/{businessId}/tax/detailed Returns the full verification status including KYB state, IRS TIN check result, and required next steps.
curl --request GET \
  --url https://api.cleo-pay.com/api/businesses/biz_abc123/tax/detailed \
  --header "Authorization: Bearer <token>"

Update tax signature

PATCH /api/businesses/{businessId}/tax/signature Records the electronic signature for the IRS W-9 certification. The signer certifies that the tax information provided is accurate under penalty of perjury.
signerName
string
required
Full name of the person signing the W-9 certification.
signedAt
string
required
ISO 8601 timestamp of the signing event.
curl --request PATCH \
  --url https://api.cleo-pay.com/api/businesses/biz_abc123/tax/signature \
  --header "Authorization: Bearer <token>" \
  --header "Content-Type: application/json" \
  --data '{
    "signerName": "Jane Doe",
    "signedAt": "2026-04-02T14:30:00Z"
  }'

Upload verification documents

POST /api/businesses/{businessId}/tax/upload-verification-documents Uploads supporting documents when the business verification status is document. Accepted document types include EIN letters, articles of incorporation, and government-issued IDs. Send documents as multipart/form-data.
curl --request POST \
  --url https://api.cleo-pay.com/api/businesses/biz_abc123/tax/upload-verification-documents \
  --header "Authorization: Bearer <token>" \
  --form "file=@/path/to/ein-letter.pdf" \
  --form "documentType=einLetter"

Officer endpoints

List officers

GET /api/businesses/{businessId}/officers Returns all beneficial owners and officers on file for the business.
curl --request GET \
  --url https://api.cleo-pay.com/api/businesses/biz_abc123/officers \
  --header "Authorization: Bearer <token>"

Add officer

POST /api/businesses/{businessId}/officers Adds a beneficial owner or officer to the business. You must add all individuals with 25% or more ownership.
firstName
string
required
Officer’s first name.
lastName
string
required
Officer’s last name.
title
string
required
Job title (e.g., CEO, Owner).
dateOfBirth
string
required
Date of birth in YYYY-MM-DD format.
ssn
string
required
Full SSN for identity verification.
address
object
required
Officer’s personal address with street, city, state, zip, and country fields.
curl --request POST \
  --url https://api.cleo-pay.com/api/businesses/biz_abc123/officers \
  --header "Authorization: Bearer <token>" \
  --header "Content-Type: application/json" \
  --data '{
    "firstName": "Jane",
    "lastName": "Doe",
    "title": "CEO",
    "dateOfBirth": "1985-06-15",
    "ssn": "123-45-6789",
    "address": {
      "street": "456 Oak Ave",
      "city": "Austin",
      "state": "TX",
      "zip": "78702",
      "country": "US"
    }
  }'

Certify beneficial ownership

POST /api/businesses/{businessId}/officers/certify-beneficial-ownership Certifies that the list of beneficial owners is complete and accurate. This step is required before Cleo Pay can complete KYB verification.
curl --request POST \
  --url https://api.cleo-pay.com/api/businesses/biz_abc123/officers/certify-beneficial-ownership \
  --header "Authorization: Bearer <token>" \
  --header "Content-Type: application/json" \
  --data '{
    "certifierName": "Jane Doe",
    "certifiedAt": "2026-04-02T14:45:00Z"
  }'