Introduction
callCash is one client for South African payments. You call one function, and it talks to Yoco or Netcash for you, checks every payment with the gateway before you hear about it, and hands your code the same event shape whichever gateway took the money.
import { callCash } from "callcash";
const payment = await callCash({ amount: 250, reference: "order_1042" });callCash never holds money. Your customer pays your gateway, and your gateway pays your bank, exactly as it does today.
What works today#
The callcash package, version 0.1.0. It runs inside your own server, on your own Yoco and Netcash accounts. There is no callCash server in the path.
- Yoco (cards) and Netcash Pay Now (cards, instant EFT, bank EFT, cash at a shop, vouchers).
- A built-in test gateway that needs no account and moves no money.
- Payments, refunds, verified webhooks, exactly-once events, routing and failover between your gateways.
What is planned#
- A hosted callCash API with
cc_test_andcc_live_keys. The API page describes it. It is not built yet. - A hosted checkout page with your name and colours.
- Ozow, Peach Payments, iKhokha, PayFast and Paystack.
- PHP and Python packages.
Before you go live#
The SDK passes its own tests against stand-in gateways, but it has not yet run against the real Yoco or Netcash. We are proving it inside our own apps first. Read Status for exactly what is verified, what is assumed and what is not built.
Where to go next#
- Quickstart: a test payment in a few lines, no account.
- Install: it is not on npm yet, so this matters.
- Yoco and Netcash: connect your real accounts.
- Use with AI agents: Claude Code, Codex, Cursor and Gemini CLI.