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

Operate

Deploy

How a 389 app talks to production Steadi Pay, and how operators run the Steadi Pay stack next to 389 Konvene.

Integrate an app into production

  1. Create the merchant (self-serve or super admin) and finish go-live.
  2. Store STEADIPAY_SECRET_KEY and the webhook secret on the app server. Never commit them.
  3. Base URL https://api.steadipay.ltd. Checkout opens https://pay.steadipay.ltd.
  4. Create sessions on the server. Redirect the customer. Fulfil only after a verified webhook or verify.
  5. Use a unique Idempotency-Key per new session or refund.
STEADIPAY_API=https://api.steadipay.ltd
STEADIPAY_SECRET_KEY=sk_live_...
STEADIPAY_WEBHOOK_SECRET=whsec_...

Domains

HostRole
steadipay.ltdMarketing and merchant sign-up
app.steadipay.ltdMerchant portal and admin
api.steadipay.ltdAPI and provider callbacks
pay.steadipay.ltdHosted checkout
docs.steadipay.ltdThis documentation
status.steadipay.ltdStatus page

Provider callbacks use https://api.steadipay.ltd/v1. Do not point them at Konvene or at the marketing host.

Run Steadi Pay on the VPS

Steadi Pay is its own git clone and Docker Compose project. It must not share Konvene's Postgres or ports 80, 443 or 8080. Host Caddy proxies Steadi Pay to 127.0.0.1:8081.

First install

cd ~
git clone https://github.com/389agency/SteadiPay.git SteadiPay
cd SteadiPay
sudo bash deploy/install-vps.sh

Later updates

cd ~/SteadiPay
git pull
sudo bash deploy/update.sh

Checks after a deploy:

  • http://127.0.0.1:8081/healthz → nginx ok
  • https://api.steadipay.ltd/v1/health → {"ok":true}
  • https://docs.steadipay.ltd → these docs
  • https://app.steadipay.ltd/login → sign in

Staff TOTP: sudo bash ~/SteadiPay/deploy/print-totp.sh then add the secret in an authenticator app. Sign in at /login?staff=1. Password first, then the 6-digit code.

Do not

  • Put Steadi Pay inside the 389Xperience folder
  • Point DATABASE_URL at Konvene's database
  • Pool merchant funds or reuse a settlement account
  • Deduct a fee from a merchant payout
  • Mark a payment paid without provider confirmation