Quick Access
SmartPesa | Under The Hood
page-template,page-template-full_width,page-template-full_width-php,page,page-id-15590,ajax_fade,page_not_loaded,,side_menu_slide_from_right,qode-child-theme-ver-1.0.0,qode-theme-ver-10.1.2,wpb-js-composer js-comp-ver-5.1,vc_responsive

Under The Hood

Scalable engine powering smart transactions.

Single Integrated Open Platform

  • Cloud

    • Deploy spGateway in Cloud deployment for faster transaction processing
    • No hardware vendor
    • Out-of-the-box mPOS acquiring
    • Pre-configured for all card schemes

  • On Premise

    • Run spGateway on your own servers on-premises to manage all merchants and terminals
    • Deploy on own hardware
    • Turn-key deployment
    • Full control over TMS and transactions

  • SDK Integration

    • SDKs to embed payments in phones, tablets, point-of-sales, kiosks and vending machines
    • Android, iOS, and Windows
    • Comprehensive documentation
    • Ready-for-use with all schemes

  • White Label

    • White-label solution tailored for quicker go-to-market under your own brand without the risks
    • Chip-and-pin and EMV certified
    • Promote your own brand
    • Reduce risk and delays

Multi-device Support

Range of devices to suit every use case; from fast card acquiring (pesaPOD) to smart agent terminals (pesaPOS). Use our SDKs to embed payments in phones, tablets, point-of-sales, kiosks and vending machines.

  • EMV chip, magnetic stripe, and contactless (NFC)
  • EMV L1 & L2 and PBOC L1 & L2 certified
  • PCI PTS 3.1 or later
  • Bluetooth, standalone, and USB modes
  • Over the Air (OTA) firmware updating
  • Over the Air (OTA) key injection
  • All day battery with standard USB charging
  • Thermal printing; standalone or embedded
  • Works on Android, iOS, and Windows

SmartPesa works with leading terminal manufacturers including bbpos, PAX, SunMi and works closely with FIME for EMV L2 and scheme certification (ADVT/CDET, MTIP, JCB TIC, UnionPay, and local proprietary card schemes)

SunMi P1 EMV Termainl
SunMi P2 Lite EMV Terminal

Flexible Back-End Integration

ISO 8583 Switch

Connect to any ISO8583 switch including S1 Postilion, ACI Base24, FIS IST, jPOS, Interblocks


Process payments through any NAC (in ASCII or BCD) including HyperCom, S2M, IntelliNAC

Web Services

Transact with custom Web Services APIs and XML interfaces including UBA TAMS 3 and Finacle

Platform Extensions

Mobile Wallets

Deploy own Wallet and integrate with 3rd party providers including WeChat Pay and Alipay and MasterPass QR

3rd Party Payment APIs

Connect to 3rd party payment APIs of closed loop systems, telco services (incl. USSD and SMS), and remittance providers.

Painless Operation

Over The Air Update

Update encryption keys and firmware remotely to all devices

Remote Configuration

Apply BIN, AID, CAPK, and terminal configurations in real-time

Granular Control

Grant permission and enable features at down to a merchant level

Dynamic Terminal Allocation

Flexible and dynamic terminal assignment to avoid onboarding delays

Centralized Data

All merchant, terminal and transaction data stored in on central location

Access To Data

Merchants can easily access their transaction history and export reports

State of the Art Security

HSM Encryption

Peace of mind with FIPS 140-2 certified protection for all transaction processing. Superior security with key management and encryption by Thales payShield 900 HSM and SafeNet Luna EFT II.


Point-to-point encryption (P2PE) ensuring transactions are securely encrypted in hardware, and processed by HSM. Adopting best best-of-breed industry standards for data protection.


PCI DSS compliant platform adhering to all mandates of access control, key storage and data masking to pass all audit requirements.

SDK and API Examples

// Setting up transaction parameters
SmartPesa.TransactionParam param = SmartPesa.TransactionParam.newBuilder()
        .terminal(terminal) //terminal selected by user scanTerminal
        .amount(new BigDecimal("1000.00"))

// Get an instance of Service Manager.
ServiceManager sm = ServiceManager.get(context);

// Start the transaction with the specified parameters and callback.
sm.performTransaction(param, transactionCallback);
// Create transaction parameter object.
var param = SmartPesaSdk.TransactionParam

// Get an instance of ServiceManager.
var manager = ServiceManager.GetInstance();

// Starts the transaction with the specified parameters and callback.
manager.PerformTransaction(param, transactionCallback);
// Start the transaction with the specified parameters.
SmartPesaSDK.sharedInstance().startTransaction(forAmount: amount
    , cashBackAmount: 0.00
    , forDeviceType: PESA_POD_2
    , from: DEFAULT
    , to: DEFAULT
    , params: nil
    , delegate: self)
Want to learn more about SmartPesa?