Function: createPesa()
function createPesa(config): PesaInstance;Defined in: packages/pesa/src/pesa.ts:225
The single entry point for the entire Bora Pesa SDK.
Parameters
| Parameter | Type | Description |
|---|---|---|
config | PesaConfig | — only provider is required. Everything else has sensible defaults (SQLite event store, no plugins, webhook secret from BORAPESA_WEBHOOK_SECRET environment variable). |
Returns
Since
0.1.0
Returns a fully configured PesaInstance with provider logic, plugin pipeline, and event store wired together.
Example
Production setup with Selcom
import { createPesa } from '@borapesa/pesa';
import { SelcomPaymentProvider } from '@borapesa/selcom';
import { retryPlugin, loggingPlugin } from '@borapesa/pesa/plugins';
const pesa = createPesa({
provider: new SelcomPaymentProvider({
apiKey: process.env.SELCOM_API_KEY!,
apiSecret: process.env.SELCOM_API_SECRET!,
vendor: process.env.SELCOM_VENDOR!,
env: 'live',
}),
plugins: [
retryPlugin({ maxAttempts: 3, backoff: 'exponential' }),
loggingPlugin({ level: 'info' }),
],
});Local development with BogusProvider
import { createPesa } from '@borapesa/pesa';
import { BogusPaymentProvider } from '@borapesa/pesa/testing';
const pesa = createPesa({
provider: new BogusPaymentProvider({
defaultBehavior: 'success',
delay: 200,
}),
});Throws
PesaProviderError — if the provider config is invalid or unreachable.
PesaValidationError — if required config fields are missing.