Merchant API
Payments, refunds, payouts, onboarding and webhooks through one REST surface, scoped per merchant.
A ready-to-deploy payments platform: mobile money and cards, subscriptions, split payments and KYC, with merchant and processor dashboards.
Payments, refunds, payouts, onboarding and webhooks through one REST surface, scoped per merchant.
Portfolio, KYC, pricing plans and acquirer routing for your operations team.
A branded portal for transactions, payouts, disputes and reporting.
Plans, proration, metered usage, invoicing and payment recovery.
Rules engine, review queues and chargeback workflows.
Reconciliation, split funding and scheduled payouts — to every merchant, in every currency you support.
thetasdk
•••• 4242
Domains, dashboards, emails, receipts and cards — all carry your name, never ours.
A production-grade TypeScript monorepo — licensed to you, forked by you, deployed wherever your compliance team says, and shipped under your name.
The merchant dashboard and the processor console as two Next.js apps sharing one themeable UI kit. Restyle once, rebrand everywhere.
Gateway, payments, KYC, billing and ledger as separate NestJS modules — replace one without touching the rest.
One onboarding flow for personal and business customers — document capture, sanctions screening and a manual review queue, with vendor adapters you plug your own providers into.
Unit, integration and end-to-end suites ship with the code, so every change you make is checked against the flows that matter.
Every public route is fuzzed against the OpenAPI spec, so the API behaves exactly as documented, including on the inputs nobody thought to try.
Push-to-approve payments on the wallets your customers already carry. Customers approve with their PIN, right on their phone.
Card payments with 3-D Secure, tokenization and saved cards, routed to the acquirer you choose.
A drop-in checkout your merchants embed or redirect to, themed with your brand and built to keep card data off their servers.
@PaymentAdapter('ecocash') export class EcoCashAdapter implements PaymentProvider { async authorize(req: AuthorizeRequest) { … } async capture(id: string) { … } async refund(id: string, amount: Money) { … } async handleWebhook(event: ProviderEvent) { … } }
Every method is an adapter behind one interface. Add a wallet, swap an acquirer or connect a new provider without touching checkout, ledger or dashboards.
ecocashmobile walletonemoneymobile walletcard-acquirercards[your-provider]write your ownMobile money needs the customer present to approve. So renewals arrive as a push prompt on their phone — and if they miss it, a quick payment link follows. Cards still renew quietly in the background.
Split a single payment between a merchant and its sub-merchants — each share recorded in the ledger and settled to its own payout account.
Explore the full stack in a sandbox, then deploy it on your infrastructure, under your brand, with the source in your hands.