Verify Checkout Docs

A checkout built for verified transfers

The hosted page displays your business name and logo, the available merchant-owned receiving accounts, payment instructions, and the form for a transaction reference.

Customer journey

  1. Choose an available provider when more than one payment option is returned.
  2. Enter an amount for a variable deposit, or review the fixed amount.
  3. Send money directly to the displayed merchant receiving account.
  4. Submit the payment reference for verification.
  5. Wait for verification, then continue to the merchant's registered return URL.

Supported providers are Telebirr, M-PESA, Commercial Bank of Ethiopia, Bank of Abyssinia, CBE Birr, Dashen Bank, Awash Bank, Siinqee Bank, and Kaafi eBirr. Only the active accounts selected for a deposit appear on that checkout.

Amounts and expiry

A fixed deposit locks the requested amount. A variable deposit asks the customer for an amount within the checkout's enforced limits. Checkout links expire 60 minutes after creation; create a new deposit rather than reusing an expired link.

  1. Step 1:

    awaiting_transfer

    The customer has not submitted a valid reference.
    In progress
  2. Step 2:

    verification_pending

    Verify.et is checking the reference.
    In progress
  3. Step 3:

    succeeded

    The API reports a verified deposit.
    Terminal · credit
  4. Step 4:

    failed · expired

    The merchant must not credit the customer.
    Terminal · stop
  5. Step 5:

    review_required

    The merchant waits for a final operational decision.
    Terminal · hold

What you should not build

Keep payment input on hosted checkout

Do not reproduce receiving-account routing, collect references in your own form, expose API keys, infer success from the browser redirect, or attempt to verify a provider response yourself. Redirect to the returned URL and trust the deposit API state.

Treat the checkout token as customer-facing but sensitive: do not publish it or reuse it for another order. Your backend should store the deposit ID; it never needs to parse the token from checkout_url.

On this page

No Headings