Hosted checkout and wallet push
Send buyers to a hosted page, or push an EcoCash prompt straight to their phone.
One API for EcoCash, OneMoney, InnBucks, ZimSwitch, cards and PayPal. Register in one request, test with fake money, and go live with licence keys, subscriptions and refunds built in.
Payment rails
Zimbabwean wallets, cards, PayPal and eleven crypto rails. The providers endpoint always says what is live today.
What you get
Send buyers to a hosted page, or push an EcoCash prompt straight to their phone.
Signed entitlements, licence keys by email, device activation and recovery. Your app verifies offline.
Recurring plans, buy now pay later on cards, and a clear past-due period before access ends.
Full and partial refunds through the provider, with who did it and why on record.
A test key beside your live key, a simulator, and time travel to watch a renewal happen.
skill.md, OpenAPI, an MCP server and WebMCP tools, so an AI can set up checkout for you.
How it works
One request returns a live key and a test key. Free plan, working immediately.
Create a checkout and get a hosted URL, or push a wallet prompt to a phone.
A signed webhook or a poll confirms the money. The licence key is emailed automatically.
For developers
Every example in the documentation runs against the sandbox with a test key first, so you can break things safely.
# 1. register: a live key and a test key, shown once
curl -sX POST https://wavepay.t3ratech.co.zw/v2/register \
-H 'content-type: application/json' \
-d '{"name":"My App","ownerEmail":"you@example.com"}'
# 2. sell: returns a hosted checkout URL
curl -sX POST https://wavepay.t3ratech.co.zw/v2/checkouts \
-H 'x-wavepay-service-key: mk_test_…' \
-H 'idempotency-key: order-1001' \
-d '{"productId":"my-app","planId":"pro","provider":"paynow","email":"buyer@example.com"}'# any MCP client: https://wavepay.t3ratech.co.zw/mcp
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {
"name": "wavepay_checkout",
"arguments": { "productId": "my-app", "planId": "pro",
"provider": "paynow", "email": "buyer@example.com" } } }
# tools: wavepay_register, wavepay_providers, wavepay_pricing,
# wavepay_checkout, wavepay_checkout_status, wavepay_subscribe …const res = await fetch("https://wavepay.t3ratech.co.zw/v2/checkouts", {
method: "POST",
headers: {
"content-type": "application/json",
"x-wavepay-service-key": process.env.WAVEPAY_KEY,
"idempotency-key": crypto.randomUUID(),
},
body: JSON.stringify({ productId: "my-app", planId: "pro",
provider: "paypal", email: "buyer@example.com" }),
});
const { checkoutUrl, reference } = await res.json();Pricing
A plan for the software, plus a small percentage that falls as your volume grows. Provider fees are paid to the provider at cost.
$0 forever
25 payments per 30 days
$49 per month
500 payments per 30 days included
$499 per month
2,500 payments per 30 days included
Questions
EcoCash, OneMoney, InnBucks, Telecash, O'mari and ZimSwitch through Paynow; Visa, Mastercard and PayPal; and crypto on eleven rails (Bitcoin, Ethereum, Solana, BNB, Litecoin, Dogecoin, Tron, USDT, USDC). 2Checkout is built and switches on when the provider approves our account.
Only after your plan's included payments, and the percentage falls as your volume grows (from 2% down to 0.4%, with a small minimum per payment). Provider fees are paid to the provider at cost with no WavePay markup.
Yes. Registration gives you a test key that uses a simulator. It never reaches a provider and never counts against your plan.
When a payment settles, WavePay emails a licence key, and your app can verify the signed entitlement offline.
Yes. Point it at skill.md, the OpenAPI document or the MCP server. An agent can register, price, check out and reconcile without a browser.
Guides
EcoCash, OneMoney, InnBucks, Telecash, O'mari, ZimSwitch, Visa, Mastercard, PayPal
FAQ, Subscriptions, Buy now, pay later (BNPL), Test mode, Guides
Register in one request. No card, no call.