Integrate payment verification in minutes

A single REST endpoint to verify Telebirr, CBE, BOA and more, with ready-to-paste code samples in 7 languages.

1
Endpoint
7
Languages
5+
Providers
<5s
Response time

Up and running in 3 steps

01

Create an account

Register and choose a subscription plan that fits your verification volume.

Sign up free
02

Generate an API key

In your dashboard, create an API key. Keys start with vk_live_ and stay secret.

Dashboard
03

Call POST /api/verify

Send a provider key and transaction ID. Get verified payment details in one round-trip.

See endpoint

Verify request

Send a POST with your API key in the header and a JSON body. Keys start with vk_live_. Use the short provider key from the table below, not a UUID.

Method
POST
URL
https://veriq.company/api/verify
Header
X-API-Key: YOUR_API_KEY
Content-Type
application/json

Request body

application/json
Loading…
provider
Required. Lowercase API key from the supported providers table.
transactionId
Required. Bank reference / receipt ID (max 128 characters).

Supported providers

Active providers with an API key configured in admin. When a provider needs an account number, configure it in your dashboard under My providers ; it is not sent in the API body.

API keyProviderAccount on file
amhara
Amhara Bank
Not required
boa
Bank of Abyssinia
Enable this provider under Providers and save your account number (at least 5 digits). Verification uses reference + last 5 digits.
cbe
Commercial Bank of Ethiopia
Save your account number under Providers. Verification matches the reference with the last 8 digits of that account.
telebirr
Telebirr
Not required

Success response (200)

On HTTP 200, check success === true and read payment details from receipt.

200 OK
Loading…

Error responses

Common failures. Use message for display and code for programmatic handling when present.

HTTP 401Unauthorized

Missing, invalid, or revoked API key.

401 example
Loading…
HTTP 400MISSING_ACCOUNTMissing account configuration

Some providers require an account number on your enabled provider before verification.

400 example
Loading…
HTTP 400Validation failed

Invalid JSON or invalid provider key format.

400 example
Loading…
HTTP 403PLAN_REQUIREDNo subscription plan

User has not selected an active payment plan.

403 example
Loading…
HTTP 429QUOTA_EXCEEDEDMonthly limit reached

Successful API verifications exceeded the plan limit for this month.

429 example
Loading…
HTTP 403Provider not enabled

The provider key exists but is not enabled for your account.

403 example
Loading…
HTTP 404Unknown provider key

No provider with this API key is configured.

404 example
Loading…
HTTP 404INVALID_TRANSACTION_IDTransaction not found

Bank could not find a receipt for this reference (wrong ID or account).

404 example
Loading…
HTTP 502NETWORK_FAILEDBank temporarily unavailable

Upstream bank or receipt service timed out or returned a server error.

502 example
Loading…

Code examples

Replace YOUR_TRANSACTION_ID and your API key. Pick a provider key for the sample payload.

bash
Loading…

Receipt fields

All providers return the same receipt object shape when verification succeeds.

transactionId
Bank reference or receipt ID
payer
Who paid
receiver
Who received
amount
Transferred amount
totalAmount
Total debited
commissionAmount
Fee, if shown on receipt
vatAmount
VAT, if shown on receipt
date
Payment date and time
reason
Payment reason or remark, when available
creditedAccount
Credited account, when available
status
VERIFIED on success

Start verifying payments today

Free account. No card required. API access after choosing a plan.