One API. Get paid by every South African bank.

Bucala is a payment platform built for South Africa. One integration, with the request formats, objects and webhooks developers already know, connects you to South African bank rails: PayShap, EFT and DebiCheck first, with cards to follow.

Bucala is in development. The sandbox uses simulated banks, and no real money moves yet.

R150.00 by PayShap. The payer approves the payment in their own banking app, and the money settles in seconds.

How a payment moves

Every step is a clear API object and a signed event your system can act on.

  1. You create a PaymentIntent

    Send the amount in cents and the payment method, such as za_payshap. Bucala returns a PaymentIntent with its status and the next step.

  2. The payer approves in their banking app

    With PayShap Request, the payer approves the payment where they already bank. Your checkout shows a short "check your banking app" screen.

  3. The bank confirms and the ledger records it

    The PaymentIntent moves to succeeded, and a balanced double-entry record is written. Your webhook receives a signed payment_intent.succeeded event.

  4. Funds become available

    A balance transaction tracks the money from pending to available, on a schedule you can see.

  5. You pay out

    Send available funds to any South African bank account by PayShap in seconds, or by EFT the next day. Bucala checks the account with the bank before any money moves.

Payment methods

One integration for the ways South Africans pay. "In the sandbox" means you can build and test against it today with simulated banks.

Payment methods and their status
MethodWhat it doesStatus
PayShap RequestThe payer approves a payment request in their banking app.In the sandbox
PayShap payoutsPay a supplier, seller or customer to their ShapID in seconds.In the sandbox
RefundsRefund a PayShap payment in full or in part, straight back to the payer.In the sandbox
EFT payoutsNext-day payouts to any bank account, checked with the bank first.In the sandbox
DebiCheckDebit orders the customer approves in their banking app, for subscriptions, insurance and loans.In the sandbox
Bank pay-by-bankCapitec Pay, Absa Pay and Nedbank Direct, inside each bank's own app.Planned
Cards and walletsVisa, Mastercard, Apple Pay and Google Pay, with 3-D Secure.Planned
QR and cashSnapScan, Zapper and cash at the till for customers without cards.Planned

Who Bucala is for

Online businesses and software companies

Integrate once with a modern payments API and add South African bank payments, without building to each bank separately.

Businesses that collect every month

Insurers, lenders, gyms, schools and landlords need debit orders that customers authorise, and fast money when a collection fails.

Platforms and marketplaces

Take payments for many sellers and pay each of them out, with Bucala holding the funds as the licensed payment provider.

Built so money is never lost

A payment provider is only as good as its books. These rules are in the code and in the database.

Every cent in a double-entry ledger
Each entry balances to zero, and records are never changed or deleted. Corrections are new entries.
No double payments
Requests are idempotent, and Bucala asks the bank for a payment's status before it ever retries.
Signed webhooks
Every event is signed with HMAC-SHA256 so you can check it came from Bucala, and failed deliveries retry for three days.
Hosted in South Africa
Personal and payment data stays in South African data centres, in line with POPIA.
Security standards
Bucala is being built for PCI DSS Level 1 certification before card payments go live.

Pricing

Simple, published prices with no setup or monthly fees. These are proposed prices; final prices will be published before launch.

Proposed prices, excluding VAT
MethodProposed price (excluding VAT)
PayShap and PayShap RequestR2.50 per payment
Pay-by-bank1.5%, capped at R25 per payment
Local cards2.7% + R1
Next-day EFT payoutsFree
Instant payoutsA small flat fee per payout

South Africa first, then Namibia

Bucala plans a Namibian gateway on the same API, so a business that trades in both countries can use one integration and one dashboard, with rand and Namibian dollar accounts kept separate.

Try the sandbox

The sandbox runs on simulated South African banks. Use a test ShapID such as 0820000001@capitec to see a payment succeed, or 0820000002@capitec to see the payer decline it.

curl -u "$BUCALA_KEY:" https://api.bucala.co.za/v1/payment_intents \
  -d amount=15000 -d currency=zar \
  -d "bucala_payer_shap_id=0820000001@capitec" \
  -d confirm=true

To get sandbox access or talk about your payments, email hello@bucala.co.za.