callCash()by riverrr
Get early access
Open as .md

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.

TypeScript
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_ and cc_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#