Skip to content

YeboVerify API Routes

Base URL

Production: https://api.yeboverify.com

Authentication

All routes require API key authentication:

X-API-Key: your_api_key_here

Admin Routes

Business Registration

MethodRouteDescription
POST/v1/businesses/registerRegister new business (admin only)

Body:

json
{
  "name": "ACME Corp",
  "email": "admin@acme.com",
  "plan": "starter"
}

Response:

json
{
  "success": true,
  "data": {
    "id": "clx...",
    "name": "ACME Corp",
    "email": "admin@acme.com",
    "apiKey": "ybv_live_abc123...",
    "plan": "starter"
  }
}

Account Routes

Get Account

MethodRouteAuth
GET/v1/accountAPI Key

Response:

json
{
  "success": true,
  "data": {
    "id": "clx...",
    "name": "ACME Corp",
    "email": "admin@acme.com",
    "plan": "starter",
    "webhookUrl": "https://your-app.com/webhook",
    "createdAt": "2024-01-01T00:00:00Z"
  }
}

Update Webhook

MethodRouteAuth
PUT/v1/account/webhookAPI Key

Body:

json
{
  "webhookUrl": "https://your-app.com/webhook",
  "webhookSecret": "your_secret_here"
}

Verification Routes

Submit Verification

MethodRouteAuth
POST/v1/verifyAPI Key

Content-Type: multipart/form-data

Fields:

FieldTypeRequiredDescription
idFrontfileFront of ID document
idBackfileBack of ID document
selfiefileUser selfie photo
externalRefstringYour reference ID
documentTypestringDocument type hint

Response:

json
{
  "success": true,
  "data": {
    "verificationId": "vrf_abc123xyz",
    "status": "pending"
  }
}

Get Verification

MethodRouteAuth
GET/v1/verifications/:verificationIdAPI Key

Response:

json
{
  "success": true,
  "data": {
    "verificationId": "vrf_abc123xyz",
    "externalRef": "your-ref-123",
    "status": "completed",
    "decision": "approved",
    "decisionReason": "High face match and OCR confidence",
    "confidence": "high",
    "faceScore": 92.5,
    "ocrConfidence": 85.0,
    "extractedData": {
      "surname": "Doe",
      "names": "John James",
      "dateOfBirth": "1990-05-15",
      "idNumber": "123456789",
      "documentType": "National ID"
    },
    "processingMs": 3250,
    "createdAt": "2024-01-15T10:00:00Z",
    "completedAt": "2024-01-15T10:00:03Z"
  }
}

List Verifications

MethodRouteAuth
GET/v1/verificationsAPI Key

Query Parameters:

ParamTypeDefaultDescription
pagenumber1Page number
limitnumber20Items per page (max 100)
statusstringFilter by status

Response:

json
{
  "success": true,
  "data": {
    "verifications": [
      {
        "verificationId": "vrf_abc123xyz",
        "externalRef": "your-ref-123",
        "status": "completed",
        "decision": "approved",
        "confidence": "high",
        "createdAt": "2024-01-15T10:00:00Z",
        "completedAt": "2024-01-15T10:00:03Z"
      }
    ],
    "pagination": {
      "page": 1,
      "limit": 20,
      "total": 150,
      "totalPages": 8
    }
  }
}

Webhook Payload

When a verification completes, YeboVerify sends:

json
{
  "event": "verification.completed",
  "verificationId": "vrf_abc123xyz",
  "externalRef": "your-ref-123",
  "status": "completed",
  "decision": "approved",
  "confidence": "high",
  "faceScore": 92.5,
  "ocrConfidence": 85.0,
  "extractedData": {
    "surname": "Doe",
    "names": "John James",
    "dateOfBirth": "1990-05-15",
    "idNumber": "123456789",
    "documentType": "National ID"
  },
  "timestamp": "2024-01-15T10:00:03.000Z"
}

Headers:

Content-Type: application/json
X-YeboVerify-Signature: sha256=abc123...

Error Responses

json
{
  "success": false,
  "error": {
    "code": "INVALID_API_KEY",
    "message": "Invalid or missing API key"
  }
}

Error Codes:

CodeHTTPDescription
INVALID_API_KEY401API key invalid or missing
VERIFICATION_NOT_FOUND404Verification ID not found
INVALID_FILE400File upload issue
PROCESSING_ERROR500Internal processing failure

One chat. Everything done.