Payments

Initialize a Payment

Create a payment session and receive a hosted checkout URL to redirect your customer.

Initialize a Payment

POST /v1/transactions/initialize

Creates a payment session and returns a hosted checkout URL. Redirect your customer to checkoutUrl to complete the payment.

Use sk_test_… for sandbox, sk_live_… for production. The mode is inferred from the key — no separate config needed.


Request

curl https://api.epayet.dev/v1/transactions/initialize \
  -X POST \
  -H "Authorization: Bearer sk_live_your_key_here" \
  -H "Content-Type: application/json" \
  -H "x-idempotency-key: order_123" \
  -d '{
    "amount": "250.00",
    "currencyCode": "ETB",
    "customerPhone": "+251911234567",
    "merchantReference": "order_123",
    "returnUrl": "https://yourstore.com/order/123/complete"
  }'

Response

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

Headers

Prop

Type


Body

Prop

Type


Response

Prop

Type


Errors

StatusDescription
400Invalid amount value or unrecognized currencyCode.
401Missing or invalid API key.
404No payment source found for your account — contact support.
429Rate limit exceeded.

Next: Verify a Payment — confirm completion before fulfilling an order.

On this page