Coming soon. Steadi Pay is not live yet. Accounts are for sandbox testing only, and no real payments can be made.

Docs

Get a paid checkout working

Create a sandbox account, take a test key, start a hosted checkout, then confirm the payment with a webhook or a verify call. Money never lands with Steadi Pay.

What you are integrating

Your app sends the customer to a Steadi Pay checkout page. They pick Airtel Money, TNM Mpamba, a bank transfer or a card. Steadi Pay routes the payment to the merchant's own provider account and tells you when it is paid.

  • MWK only. Send amounts in kwacha (for example 15000 or 15000.50). We store integer tambala. Never send a floating-point number.
  • Never send card numbers, CVVs or PINs to this API.
  • Never mark an order paid until Steadi Pay confirms it.

1. Create a sandbox account

Sign up at steadipay.ltd/signup. You get sandbox keys immediately. Steadi Pay is not live yet, so live mode is not open. When it opens, it needs a paid sandbox payment, a failed sandbox payment, and an approved account. See Go live.

2. Create a checkout session

Call POST /v1/checkout_sessions with a test key. Amounts are kwacha: 15,000 is MWK 15,000.

curl -X POST https://api.steadipay.ltd/v1/checkout_sessions \
  -H "Authorization: Bearer sk_test_..." \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": "15000",
    "currency": "MWK",
    "merchant_reference": "ORDER-1",
    "return_url": "https://your.app/orders/1/return"
  }'

You get a checkout_url. Redirect the customer there. Full request and response fields are on Checkout.

3. Confirm the payment

Do not trust the return URL alone. Confirm in one of these ways:

Fulfil the order only when status is Paid.

Base URLs

UseURL
APIhttps://api.steadipay.ltd/v1
Hosted checkouthttps://pay.steadipay.ltd
Merchant portalhttps://app.steadipay.ltd
These docshttps://docs.steadipay.ltd
OpenAPIhttps://api.steadipay.ltd/v1/docs

Read next