API Docs chevron_right v1 chevron_right Reference

EthioVerify API Reference

Verify Ethiopian bank transactions across CBE, Telebirr, and Dashen through a unified API.

Base URL: https://recieptcheck.oppnestapp.com/api/v1/verify API v1

Overview

EthioVerify provides a unified API for verifying transaction information from supported Ethiopian financial providers. Developers can send a bank identifier and transaction reference and receive a normalized JSON response.

bolt

Simple API

One verification endpoint for supported providers.

dataset

Normalized Response

Common response structure across supported providers.

shield_check

Server-side API

Designed for secure backend integrations.

Authentication

Authenticate requests using your EthioVerify API credential in the HTTP header as a x-api-key .

x-api-key:  ev_live_YOUR_SECRET_KEY
shield
Keep your API credential private

Store your API credential securely on your backend. Do not expose it in browser JavaScript, public frontend applications, or source code committed to a public repository.

POST /verify

Verify a single transaction by providing the supported bank identifier and transaction reference.

// cURL Quickstart
curl -X POST https://recieptcheck.oppnestapp.com/api/v1/verify \
  -H "x-api-key: ev_live_YOUR_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "bank": "cbe",
    "reference": "FT1234567890"
  }'

Request Schema

JSON body parameters required by the verification endpoint.

Field Type Required Description
bank string required Bank or provider identifier. Supported values include cbe, telebirr, and dashen.
reference string required Transaction reference or receipt input accepted by the selected provider.

Response Structure

Successful requests return a normalized response containing the provider, verification result, and transaction information when available.

// Successful Verification
{
  "success": true,
  "request_id": "901284fa921b901284fa921b",
  "data": {
    "bank": "cbe",
    "verification_result": "verified",
    "transaction": {
      "reference": "FT1234567890",
      "status": "completed",
      "amount": 140.00,
      "currency": "ETB",
      "date": "18-06-2026",
      "description": "description",
      "sender": {
        "name": "Example Sender",
        "account": "1********1234"
      },
      "receiver": {
        "name": "Example Receiver",
        "account": "1********4321"
      }
    }
  },
  "error": null
}

Response Fields

success (boolean)

Indicates whether the API request was processed successfully.

request_id (string)

Unique identifier used to trace a request in logs and support investigations.

data.verification_result (string)

Indicates the transaction verification state.

verified not_found
data.transaction (object | null)

Contains the normalized transaction information when transaction details are available.

Error Codes & Handling

When success is false , inspect error.code to determine why the request failed and how your application should handle it.

{
  "success": false,
  "request_id": "1234567-2feb-42ab-b442-123456789",
  "error": {
    "code": "INVALID_API_KEY",
    "message": "Invalid or revoked API credential."
  }
}
Error Code HTTP Status Description
API_KEY_MISSING 401 No API credential was provided in the request.
INVALID_API_KEY 401 The provided API credential is invalid or revoked.
API_KEY_EXPIRED 401 The provided API credential has expired.
INVALID_REQUEST_BODY 400 The request body is invalid or required fields are missing.
INVALID_BANK 400 The bank field is missing or invalid.
INVALID_REFERENCE 400 The transaction reference field is missing or invalid.
UNSUPPORTED_BANK 400 The supplied bank is not currently supported.
INVALID_REFERENCE_NUMBER 404 The bank could not find a transaction matching the reference number.
INVALID_ENDPOINT 404 The requested API endpoint does not exist.
METHOD_NOT_ALLOWED 405 The HTTP method is not allowed for this endpoint.
RATE_LIMIT_EXCEEDED 429 The API rate limit has been exceeded.
PROVIDER_UNAVAILABLE 503 The upstream bank provider is temporarily unavailable.
INTERNAL_ERROR 500 An unexpected EthioVerify server error occurred.

Supported Banks & Inputs

EthioVerify currently supports transaction verification for the following providers.

Commercial Bank of Ethiopia

Active

Bank Code: cbe

Input: CBE transaction reference such as FT26231826W6 .

Telebirr

Active

Bank Code: telebirr

Input: Telebirr receipt or transaction reference.

Dashen Bank

Active

Bank Code: dashen

Input: Dashen transaction reference.

Bank of Abyssinia

Coming Soon

Bank Code: abyssinia

Integration is not currently available in the public API.

Code Examples

Example requests using common development environments.

curl -X POST https://recieptcheck.oppnestapp.com/api/v1/verify \
  -H "x-api-key: ev_live_YOUR_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "bank": "cbe",
    "verificationInput": "FT1234567890"
  }'

Rate Limits

API requests are subject to the limits associated with your account plan.

API Usage Plan dependent
Per-minute limit Determined by your account plan.
Monthly limit Determined by your account plan.

Request ID & Debugging

API responses include a request_id that can be used to trace the request.

Store the returned request_id with your own transaction or customer record. If you need help investigating a request, provide this identifier when contacting support.