Skip to main content
POST
/
verify
Verify a payment
curl --request POST \
  --url https://api.check.et/api/v1/verify \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "bank": "cbe",
  "transaction_number": "FT26144SG2ST",
  "account_number": "1000876543218",
  "bank_account_id": 123,
  "receipt_url": "https://apps.ethiotelecom.et/receipt/DEL889NG4S",
  "receipt_text": "<string>"
}
'
{
  "success": true,
  "exists": true,
  "duplicate": false,
  "message": null,
  "data": {
    "bank": "cbe",
    "bank_name": "Commercial Bank of Ethiopia",
    "verification_id": "FT26144SG2ST",
    "transaction_number": "FT26144SG2ST",
    "source_url": null,
    "verification_method": "official",
    "receipt": {
      "status": "completed",
      "transaction_type": "transfer",
      "amount": 1350,
      "currency": "ETB",
      "transaction_date": "2025-06-10T14:30:00+03:00",
      "payer_name": "Hayat Ahmed",
      "payer_account": "1000126543218",
      "receiver_name": "Abebe Bekele",
      "receiver_account": "1000876543218",
      "description": "Payment"
    }
  }
}

Authorizations

Authorization
string
header
required

API key from your dashboard - starts with chk_. Requires a business account.

Body

bank
enum<string>

Bank code. Required unless using receipt_url, receipt_file, or receipt_text.

Available options:
cbe,
telebirr,
dashen,
awash,
boa,
zemen,
cbebirr,
mpesa,
sinqee
Example:

"cbe"

transaction_number
string

Reference number from the receipt. Required unless using receipt_url, receipt_file, or receipt_text.

Example:

"FT26144SG2ST"

account_number
string

Your receiving account (required for CBE, BOA). For CBE Birr, pass the payer's phone number (251XXXXXXXXX).

Example:

"1000876543218"

bank_account_id
integer

ID of a saved bank account - use instead of account_number.

receipt_url
string

Share URL from the banking app. Auto-extracts bank and transaction number.

Example:

"https://apps.ethiotelecom.et/receipt/DEL889NG4S"

receipt_text
string

OCR'd text from a receipt image (max 50,000 chars). Required alongside image files.

Response

Verified - success: true means the payment is confirmed

success
boolean

true = transaction confirmed

Example:

true

exists
boolean

true = transaction found in bank records

Example:

true

duplicate
boolean

true = already verified in this branch

Example:

false

message
string | null
Example:

null

data
object
existing_verification_id
integer

Only present when duplicate=true

Example:

9812

verified_at
string<date-time>

Only present when duplicate=true