EchoVerify API Documentation

Base URL: https://echoverify.ng/api/v1

Authentication

X-API-Key: ev_test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
X-Environment: test | live
Content-Type: application/json

1. List Verification Products

GET /products

Sample Response

{
  "data": [
    {
      "id": 1,
      "name": "NIN Verification",
      "slug": "nin-verification",
      "price": 120
    },
    {
      "id": 2,
      "name": "BVN Verification",
      "slug": "bvn-verification",
      "price": 144
    }
  ]
}

2. Listings (Banks and Other Metadata)

GET /listings?type={type}

Supported types: banks, countries, document-types, id-types

Optional query params: country, search

Bank List Request

GET /listings?type=banks&country=NG

Sample Response

{
  "type": "banks",
  "status": true,
  "message": "Listing fetched successfully.",
  "count": 3,
  "data": [
    { "name": "Guaranty Trust Bank", "code": "058", "slug": "" },
    { "name": "Access Bank", "code": "044", "slug": "" },
    { "name": "First Bank", "code": "011", "slug": "" }
  ]
}

Other Listing Requests

GET /listings?type=countries
GET /listings?type=document-types
GET /listings?type=id-types&search=passport

3. Run Verification

POST /verify

NIN Example Request

{
  "product_slug": "nin-verification",
  "payload": {
    "id": "25082691216",
    "isSubjectConsent": true
  }
}

BVN Example Request

{
  "product_slug": "bvn-verification",
  "payload": {
    "id": "22345678901",
    "isSubjectConsent": true
  }
}

Bank Account Example Request

{
  "product_slug": "bank-account-verification",
  "payload": {
    "account_number": "0123456789",
    "bank_code": "058"
  }
}

Document Verification Example Request

{
  "product_slug": "document-verification",
  "payload": {
    "document_type": "passport",
    "document_number": "A12345678",
    "country": "NG"
  }
}

Sample Success Response

{
  "reference": "EV-VER-ABCDEFG123456",
  "status": "success",
  "charged": 120,
  "image_urls": [
    "https://.../selfie.jpg",
    "https://.../document.jpg"
  ],
  "echoverify_response": {
    "status": true,
    "message": "Verification completed successfully.",
    "data": {
      "first_name": "John",
      "last_name": "Doe",
      "date_of_birth": "1994-01-10"
    },
    "http_status": 200
  }
}

Sample Failed Response (Auto-refund applies)

{
  "reference": "EV-VER-HIJKLMN654321",
  "status": "failed",
  "charged": 120,
  "image_urls": [],
  "echoverify_response": {
    "status": false,
    "message": "Verification could not be completed.",
    "data": null,
    "http_status": 404
  }
}

4. Face Match Verification

POST /verify
{
  "product_slug": "face-match-verification",
  "payload": {
    "image": "data:image/jpeg;base64,/9j/4AAQSkZJRg...",
    "selfie_image": "data:image/jpeg;base64,/9j/4AAQSkZJRg..."
  }
}

Sample Response

{
  "reference": "EV-VER-FACEMATCH12345",
  "status": "success",
  "charged": 264,
  "echoverify_response": {
    "status": true,
    "message": "Verification completed successfully.",
    "data": {
      "match": true,
      "match_score": 0.94
    },
    "http_status": 200
  }
}

5. AML Name Screening

POST /verify
{
  "product_slug": "aml-name-screening",
  "payload": {
    "first_name": "John",
    "last_name": "Doe",
    "country": "NG"
  }
}

Sample Response

{
  "reference": "EV-VER-AMLNAME123456",
  "status": "success",
  "charged": 144,
  "echoverify_response": {
    "status": true,
    "message": "Verification completed successfully.",
    "data": {
      "is_match": false,
      "risk_level": "low",
      "watchlists_checked": ["pep", "sanctions"]
    },
    "http_status": 200
  }
}

6. PEP and Sanctions Screening

Use domestic-pep-screening for dedicated PEP checks, and AML screening products for sanctions/watchlist checks.

POST /verify

PEP Example

{
  "product_slug": "domestic-pep-screening",
  "payload": {
    "first_name": "Jane",
    "last_name": "Smith"
  }
}

Sanctions Example (via AML Identity)

{
  "product_slug": "aml-identity-screening",
  "payload": {
    "first_name": "Jane",
    "last_name": "Smith",
    "dob": "1990-01-12",
    "country": "NG"
  }
}

7. KYT Requests (All)

POST /verify

KYT Create Individual Client

{
  "product_slug": "kyt-create-individual-client",
  "payload": {
    "type": "individual",
    "external_id": "CUST-1001",
    "first_name": "Ada",
    "last_name": "Okafor",
    "country": "NG"
  }
}

KYT Create Business Client

{
  "product_slug": "kyt-create-business-client",
  "payload": {
    "type": "business",
    "external_id": "BIZ-2044",
    "business_name": "Acme Holdings Ltd",
    "country": "NG"
  }
}

KYT Risk Assessment

{
  "product_slug": "kyt-risk-assessment",
  "payload": {
    "actor_id": "actor_12345",
    "country": "NG"
  }
}

Sample KYT Risk Response

{
  "reference": "EV-VER-KYTRISK998877",
  "status": "success",
  "charged": 360,
  "echoverify_response": {
    "status": true,
    "message": "Verification completed successfully.",
    "data": {
      "risk_score": 31,
      "risk_level": "medium"
    },
    "http_status": 200
  }
}

8. Fetch Verification Details

GET /verifications/{reference}

Sample Response

{
  "reference": "EV-VER-ABCDEFG123456",
  "status": "success",
  "environment": "test",
  "charged": 120,
  "outcome_image_url": "https://.../selfie.jpg",
  "image_urls": ["https://.../selfie.jpg"],
  "product": {
    "id": 1,
    "name": "NIN Verification",
    "slug": "nin-verification"
  },
  "echoverify_response": {
    "status": true,
    "message": "Verification completed successfully.",
    "data": {
      "first_name": "John",
      "last_name": "Doe"
    },
    "http_status": 200
  },
  "created_at": "2026-02-28T14:40:02.000000Z"
}

9. Account Snapshot

GET /me

Sample Response

{
  "company": "Acme Corp",
  "email": "client@acme.com",
  "wallet_balance": 19880,
  "active_keys": 2
}

cURL Samples

curl -X GET 'https://echoverify.ng/api/v1/listings?type=banks&country=NG' \
  -H 'X-API-Key: ev_test_xxxxx' \
  -H 'X-Environment: test'
curl -X POST 'https://echoverify.ng/api/v1/verify' \
  -H 'X-API-Key: ev_test_xxxxx' \
  -H 'X-Environment: test' \
  -H 'Content-Type: application/json' \
  -d '{"product_slug":"nin-verification","payload":{"id":"25082691216"}}'
curl -X GET 'https://echoverify.ng/api/v1/verifications/EV-VER-ABCDEFG123456' \
  -H 'X-API-Key: ev_test_xxxxx' \
  -H 'X-Environment: test'