Logo Lanfrica

borapesa/pesa

Domain:

digital infrastructure

Record type:

software
Creator:
bor
Host:
A unified, open-source payments SDK for Tanzania. # Bora Pesa A unified, open-source payments SDK for Tanzania. ## What is Bora Pesa? Bora Pesa is a TypeScript SDK that gives you a single, consistent interface for integrating with all major Tanzanian payment providers — Selcom, AzamPay, ClickPesa, DPO, and Pesapal. Swap providers with a one-line config change. No per-provider boilerplate. ```ts import { createPesa } from '@borapesa/pesa' import { SelcomPaymentProvider } from '@borapesa/selcom' export const pesa = createPesa({ provider: new SelcomPaymentProvider({ apiKey: process.env.SELCOM_API_KEY!, apiSecret: process.env.SELCOM_API_SECRET!, vendor: process.env.SELCOM_VENDOR!, pin: process.env.SELCOM_PIN!, }), }) const order = await pesa.createOrder({ amount: 15000, // TZS 15,000 currency: 'TZS', reference: 'order_abc123', customer: { name: 'Juma Ali', phone: '255712345678' }, }) ``` ## Design Principles - **Provider-agnostic** — swap providers without changing application code - **TypeScript-first** — fully typed, zero `any` in public APIs - **Zero-config defaults** — SQLite event store, BogusProvider for local dev - **Universal HTTP** — `pesa.mountWebhook` is a standard fetch handler; mount on any server with zero framework-specific code - **Server-only** — all provider API calls happen server-side; no credentials ever reach the browser - **Tanzania-first** — TZS only, MSISDN-centric, Swahili-aware error messages in roadmap ## Packages | Package | Description | | --------------------- | ------------------------------------------------- | | `@borapesa/pesa` | Core — types, factory, event store, BogusProvider | | `@borapesa/selcom` | Selcom provider adapter | | `@borapesa/azampay` | AzamPay provider adapter | | `@borapesa/clickpesa` | ClickPesa provider adapter | | `@borapesa/snippe` | Snippe provider adapter | | `@borapesa/dpo` …