Bonaventure OgetoBy Bonaventure Ogeto|

Payment Methods Available on Paystack in South Africa

Paystack in South Africa supports card payments (Visa, Mastercard) with 3D Secure authentication and bank transfers via EFT. South Africa has the highest card penetration in Africa, making cards the primary payment channel. EFT serves B2B and higher-value transactions.

Payment Channels in South Africa

South Africa's payment channel mix is different from every other Paystack market. Cards dominate. Mobile money is not a factor. EFT handles the bank transfer segment.

  • Cards (Visa, Mastercard): The primary channel. High penetration, 3D Secure authentication, familiar to consumers. South African banks issue millions of debit and credit cards.
  • EFT (Electronic Funds Transfer): Bank-to-bank transfers. Used heavily for B2B transactions, utility payments, and higher-value consumer purchases.
// Card-first checkout for South Africa
var response = await fetch('https://api.paystack.co/transaction/initialize', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer ' + process.env.PAYSTACK_SECRET_KEY,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    email: 'customer@example.co.za',
    amount: 49900, // 499 ZAR in cents
    currency: 'ZAR',
    channels: ['card'],
    reference: 'za_' + Date.now(),
  }),
});

Card Payments and 3D Secure

Card payments are the backbone of online commerce in South Africa. The five major banks (Standard Bank, FNB, ABSA, Nedbank, Capitec) have issued millions of Visa and Mastercard debit cards, and most South Africans are comfortable paying with cards online.

3D Secure (3DS) authentication:

Every South African card transaction goes through 3D Secure verification. After the customer enters their card details, they are redirected to their bank's 3DS page to verify the transaction. The verification method depends on the bank:

  • Standard Bank: OTP via SMS or banking app approval
  • FNB: Banking app push notification or OTP
  • ABSA: OTP or USSD confirmation
  • Nedbank: OTP via SMS or email
  • Capitec: Banking app approval

You cannot control which 3DS method the bank uses. Your job is to handle the redirect flow correctly and provide clear messaging to the customer:

// After initializing the transaction, redirect to the authorization URL
// The customer completes 3DS and is redirected back to your callback URL

app.get('/payment/callback', async function(req, res) {
  var reference = req.query.reference;

  // Verify the transaction server-side
  var verifyResponse = await fetch(
    'https://api.paystack.co/transaction/verify/' + reference,
    {
      headers: {
        Authorization: 'Bearer ' + process.env.PAYSTACK_SECRET_KEY,
      },
    }
  );

  var data = await verifyResponse.json();

  if (data.data.status === 'success') {
    // Payment verified. Show success page.
    res.redirect('/order/success?ref=' + reference);
  } else {
    // Payment failed or pending. Show appropriate message.
    res.redirect('/order/failed?ref=' + reference);
  }
});

3DS drop-off mitigation:

  • Tell customers they will need to verify with their bank before they enter card details
  • Set a reasonable timeout (60+ seconds) for the 3DS step
  • If the customer abandons 3DS, send a follow-up email with a link to retry
  • Track 3DS completion rates by bank to identify problematic flows

EFT (Electronic Funds Transfer)

EFT is South Africa's bank transfer system. It allows customers to transfer money directly from their bank account. EFT is deeply embedded in South African business culture and is the standard for B2B payments, rent, and large purchases.

How EFT works on Paystack:

  1. Customer selects bank transfer at checkout
  2. Paystack generates transfer details (account number, bank, reference)
  3. Customer logs into their internet banking or banking app and initiates the transfer
  4. The payment is confirmed once the transfer clears
  5. Paystack sends a webhook confirming the payment

EFT considerations:

  • EFT is not instant. Interbank transfers in South Africa can take time to clear. Same-bank transfers may be faster.
  • The customer needs to switch to their banking app to complete the transfer. This adds friction but is familiar for South African users.
  • For time-sensitive transactions, cards are better. For large B2B payments, EFT is often preferred.
  • Ensure your system handles the asynchronous nature of EFT payments. Do not grant value until the webhook confirms payment.

Channel Strategy for South Africa

South Africa is the one Paystack market where cards should always be your primary channel. Here is how to think about channel selection:

E-commerce (B2C): Cards first, EFT as a secondary option. Most South African consumers will pay with their Visa or Mastercard debit card.

SaaS subscriptions: Cards only. Authorization reuse makes recurring billing smooth. South Africa's high card penetration means you are not excluding a large segment.

B2B invoicing: EFT first, cards second. Businesses prefer EFT for accounting purposes and larger transaction amounts.

Mixed-market product (SA + Nigeria): Offer all channels in both markets but adjust defaults. In SA, cards first. In Nigeria, bank transfer (DVA) and cards.

// South Africa channel selection
function getSAChannels(useCase) {
  if (useCase === 'subscription') {
    return ['card'];
  }
  if (useCase === 'b2b_invoice') {
    return ['bank_transfer', 'card'];
  }
  // Default: consumer purchase
  return ['card', 'bank_transfer'];
}

Recurring Billing in South Africa

South Africa is one of the best Paystack markets for recurring billing because card penetration is high and authorization reuse works reliably.

After the first successful card payment, store the authorization code and reuse it for future charges:

// First payment: customer enters card details and completes 3DS
// Store the authorization from the successful transaction

// Subsequent charges: use the stored authorization
var response = await fetch('https://api.paystack.co/transaction/charge_authorization', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer ' + process.env.PAYSTACK_SECRET_KEY,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    authorization_code: customer.paystackAuthCode,
    email: customer.email,
    amount: 29900, // 299 ZAR monthly subscription
    currency: 'ZAR',
    reference: 'sub_' + customer.id + '_' + Date.now(),
  }),
});

var data = await response.json();
if (data.data.status === 'success') {
  // Subscription renewed
} else {
  // Card declined. Notify customer to update payment method.
}

Handling card expiry and decline:

  • Cards expire. Track the expiry date from the authorization object and warn customers before their card expires.
  • If a recurring charge is declined, do not immediately cancel the subscription. Retry after 24-48 hours and notify the customer to update their card.
  • Provide a self-service page where customers can update their payment card without contacting support.

Testing Payment Channels in South Africa

Test both card and EFT flows before going live:

Card testing:

  • Use Paystack test cards to simulate successful and failed payments
  • Verify the 3DS redirect flow works correctly
  • Test with different failure scenarios (declined, insufficient funds, expired)
  • Test authorization reuse for recurring billing

EFT testing:

  • In test mode, EFT payments auto-complete
  • Verify webhook handling for bank transfer confirmations
  • Test the UX for showing transfer details to the customer

After launch, monitor these metrics:

  • 3DS completion rate by bank
  • Card decline rate by bank and card brand
  • EFT completion time (how long between transfer initiation and confirmation)
  • Channel preference (what percentage of customers choose card vs EFT)

Master South African Payment Integration

South Africa's card-dominant market requires a different approach from other African markets. Strong 3DS handling, reliable recurring billing, and clean EFT flows are the foundations of a good South African payment integration.

The McTaba bootcamp covers payment integration across African markets, including South Africa's unique card-first landscape.

Create a free McTaba account

Key Takeaways

  • Cards (Visa, Mastercard) are the primary payment channel in South Africa. Unlike other African markets, cards should be your default checkout option.
  • 3D Secure is standard for South African card transactions. Every card payment goes through bank verification.
  • EFT (Electronic Funds Transfer) is the bank transfer method. It is widely used for B2B and higher-value consumer transactions.
  • South Africa does not have a dominant mobile money system like M-Pesa or MoMo. Card and EFT cover the majority of online payments.
  • South African banks include Standard Bank, FNB, ABSA, Nedbank, and Capitec. Each has slightly different 3DS flows.
  • For recurring billing, card authorization reuse works well in South Africa due to high card penetration.

Frequently Asked Questions

What is the primary payment method in South Africa on Paystack?
Cards (Visa and Mastercard) are the primary payment method in South Africa. The country has the highest card penetration in Africa, and most consumers are comfortable with online card payments.
Does Paystack support mobile money in South Africa?
South Africa does not have a dominant mobile money system like M-Pesa or MTN MoMo. Paystack in South Africa focuses on card payments and EFT bank transfers.
How does 3D Secure work for South African Paystack payments?
Every South African card transaction goes through 3D Secure verification. After entering card details, the customer verifies with their bank via OTP, banking app approval, or USSD. The verification method depends on the issuing bank.
What is EFT on Paystack in South Africa?
EFT (Electronic Funds Transfer) is a bank-to-bank transfer method. The customer transfers from their bank account using internet banking or a banking app. EFT is commonly used for B2B payments and higher-value transactions in South Africa.

Ready to build real-world apps?

Join the McTaba Labs full-stack marathon (4 months full-time · 6 months part-time). Learn M-Pesa, USSD, and WhatsApp engineering while shipping 8 production apps.

Apply to the McTaba Marathon