Quick Start

Set up your environment and make your first API call in minutes.

Quick Start

The ePay Business API lets you initialize payment sessions, track transaction status, and receive webhook notifications — all with a single API key.


Prerequisites

  • An ePay merchant account (open one here)
  • An API key from your dashboard under Developers → API Keys

Authentication

All requests must include your secret key in the Authorization header:

Authorization: Bearer sk_live_your_key_here

Your key prefix sets the mode automatically — sk_live_… targets live payments, sk_test_… targets the sandbox. You don't configure the mode separately.


Base URL

https://api.epayet.dev/v1

All endpoints below are relative to this base URL.


Your first payment

Initialize a session, redirect the customer, then check the result.

Create a payment session

curl https://api.epayet.dev/v1/transactions/initialize \
  -X POST \
  -H "Authorization: Bearer sk_test_your_key_here" \
  -H "Content-Type: application/json" \
  -H "x-idempotency-key: order_001" \
  -d '{
    "amount": "250.00",
    "currencyCode": "ETB",
    "customerPhone": "+251911234567",
    "merchantReference": "order_001"
  }'

Redirect the customer

The response contains a checkoutUrl and a reference to track the payment.

{
  "reference": "PAB12CD3420260813",
  "checkoutUrl": "https://checkout.e-pay.et/pay/PAB12CD3420260813",
  "status": "success",
  "expiresAt": "2026-08-13T12:30:00.000Z"
}

Redirect your customer to checkoutUrl. Save the reference — you'll use it to check status and reconcile.

Check the result

Poll for status or wait for a webhook event.

curl https://api.epayet.dev/v1/transactions/PAB12CD3420260813 \
  -H "Authorization: Bearer sk_test_your_key_here"
{
  "reference": "PAB12CD3420260813",
  "merchantReference": "order_001",
  "status": "completed",
  "amount": "250.00",
  "currencyCode": "ETB",
  "paidAt": "2026-08-13T11:47:00.000Z",
  "createdAt": "2026-08-13T11:30:00.000Z"
}

Test mode

Use your sk_test_… key to run sandbox payments without moving real money. Test mode is identical to live — same endpoints, same response shapes, same webhook events.

Never use your live key in development or CI. Keep secret keys out of version control.

See Test Accounts for magic phone numbers that trigger specific outcomes in the sandbox.


Next steps

On this page