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_hereYour 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/v1All 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
- Initialize a Payment — full request and response reference
- Webhooks — receive payment events without polling
- Verify a Payment — confirm completion before fulfilling an order