Bora PesaBora Pesa

Class: SnippePaymentProvider

Defined in: providers/snippe/src/snippe.ts:123

Extends

  • BasePaymentProvider

Constructors

Constructor

new SnippePaymentProvider(config): SnippePaymentProvider;

Defined in: providers/snippe/src/snippe.ts:128

Parameters

ParameterType
configSnippeConfig

Returns

SnippePaymentProvider

Overrides

BasePaymentProvider.constructor

Properties

PropertyModifierTypeDefault valueDescriptionOverridesDefined in
namereadonlyProviderName'snippe'Unique provider identifier.BasePaymentProvider.nameproviders/snippe/src/snippe.ts:124

Methods

cancelCheckoutSession()

cancelCheckoutSession(reference): Promise<SnippeCheckoutSession>;

Defined in: providers/snippe/src/snippe.ts:660

Cancel a pending or active checkout session.

Parameters

ParameterType
referencestring

Returns

Promise<SnippeCheckoutSession>


cancelOrder()?

optional cancelOrder(_orderId): Promise<CancelOrderResult>;

Defined in: packages/pesa/dist/providers/base.d.ts:100

Cancel a pending or in-progress order.

Parameters

ParameterType
_orderIdstring

Returns

Promise<CancelOrderResult>

Throws

PesaUnsupportedError — if the provider does not support cancellation.

Inherited from

BasePaymentProvider.cancelOrder

createCheckoutSession()

createCheckoutSession(params): Promise<SnippeCheckoutSession>;

Defined in: providers/snippe/src/snippe.ts:610

Create a hosted checkout session.

Returns a checkoutUrl for embedding and a paymentLinkUrl for sharing via SMS / WhatsApp. The session expires after expiresIn seconds (default 3600).

Parameters

ParameterType
params{ amount: number; description?: string; expiresIn?: number; metadata?: Record<string, unknown>; redirectUrl?: string; }
params.amountnumber
params.description?string
params.expiresIn?number
params.metadata?Record<string, unknown>
params.redirectUrl?string

Returns

Promise<SnippeCheckoutSession>


createOrder()

createOrder(payload): Promise<OrderResult>;

Defined in: providers/snippe/src/snippe.ts:276

Initiate a checkout / USSD push / redirect.

The SDK calls validateCreateOrderPayload() before this, so you can assume amount > 0, reference is non-empty, and customer.phone is in MSISDN format.

Parameters

ParameterType
payloadCreateOrderPayload

Returns

Promise<OrderResult>

Overrides

BasePaymentProvider.createOrder

disburse()

disburse(payload): Promise<DisburseResult>;

Defined in: providers/snippe/src/snippe.ts:405

B2C / wallet-out disbursement.

The SDK calls validateDisbursePayload() before this.

Parameters

ParameterType
payloadDisbursePayload

Returns

Promise<DisburseResult>

Overrides

BasePaymentProvider.disburse

getBalance()

getBalance(): Promise<BalanceResult>;

Defined in: providers/snippe/src/snippe.ts:447

Retrieve available balances across all active currencies.

Useful for dashboards, pre-disbursement checks, and wallet health monitoring. Returns per-currency balance entries with raw provider data for advanced use.

Returns

Promise<BalanceResult>

{ balances: [...] } with per-currency entries.

Throws

PesaUnsupportedError — if the provider does not expose balance data.

Since

0.2.0

Overrides

BasePaymentProvider.getBalance

getCheckoutSession()

getCheckoutSession(reference): Promise<SnippeCheckoutSession>;

Defined in: providers/snippe/src/snippe.ts:636

Fetch a checkout session by reference.

Parameters

ParameterType
referencestring

Returns

Promise<SnippeCheckoutSession>


getNameLookup()

getNameLookup(phoneOrAccount): Promise<NameLookupResult>;

Defined in: providers/snippe/src/snippe.ts:538

Resolve the account holder name for a phone or account number.

Useful for verifying recipient identity before disbursing.

Parameters

ParameterType
phoneOrAccountstring

Returns

Promise<NameLookupResult>

Throws

PesaUnsupportedError — if the provider does not support name lookup.

Overrides

BasePaymentProvider.getNameLookup

getPaymentStatus()

getPaymentStatus(orderId): Promise<PaymentStatus>;

Defined in: providers/snippe/src/snippe.ts:321

Poll or fetch the current payment status for an order.

Parameters

ParameterType
orderIdstring

Returns

Promise<PaymentStatus>

Overrides

BasePaymentProvider.getPaymentStatus

handleWebhook()

handleWebhook(rawBody, headers): Promise<PaymentEvent>;

Defined in: providers/snippe/src/snippe.ts:334

Parse + verify an incoming webhook.

The provider must:

  1. Verify its own cryptographic signature (HMAC, checksum, etc.)
  2. Parse the raw body into structured data
  3. Return a normalized PaymentEvent

The SDK handles UUID assignment, event persistence, plugin hooks, and user-registered handler emission after this method returns.

Parameters

ParameterType
rawBodystring | Buffer<ArrayBufferLike>
headersRecord<string, string>

Returns

Promise<PaymentEvent>

Overrides

BasePaymentProvider.handleWebhook

listCheckoutSessions()

listCheckoutSessions(params?): Promise<SnippeCheckoutSession[]>;

Defined in: providers/snippe/src/snippe.ts:644

List checkout sessions (paginated).

Parameters

ParameterType
params?{ limit?: number; offset?: number; status?: string; }
params.limit?number
params.offset?number
params.status?string

Returns

Promise<SnippeCheckoutSession[]>


listOrders()

listOrders(params): Promise<ListOrdersResult>;

Defined in: providers/snippe/src/snippe.ts:457

List payment orders for a date range.

Parameters

ParameterType
paramsListOrdersParams & { paymentType?: string; q?: string; status?: string; }

Returns

Promise<ListOrdersResult>

Throws

PesaUnsupportedError — if the provider does not support listing orders.

Overrides

BasePaymentProvider.listOrders

previewDisburse()

previewDisburse(payload): Promise<PreviewResult>;

Defined in: providers/snippe/src/snippe.ts:565

Preview / dry-run a disbursement before committing.

Parameters

ParameterType
payloadDisbursePayload

Returns

Promise<PreviewResult>

Throws

PesaUnsupportedError — if the provider does not support preview.

Overrides

BasePaymentProvider.previewDisburse

previewOrder()?

optional previewOrder(_payload): Promise<PreviewResult>;

Defined in: packages/pesa/dist/providers/base.d.ts:133

Preview / dry-run a payment before committing.

Returns expected fees and validity without charging the customer.

Parameters

ParameterType
_payloadCreateOrderPayload

Returns

Promise<PreviewResult>

Throws

PesaUnsupportedError — if the provider does not support preview.

Inherited from

BasePaymentProvider.previewOrder

refund()

refund(orderId, _amount?): Promise<RefundResult>;

Defined in: providers/snippe/src/snippe.ts:579

Refund a completed payment.

Parameters

ParameterType
orderIdstring
_amount?number

Returns

Promise<RefundResult>

Throws

PesaUnsupportedError — if the provider does not support refunds.

Overrides

BasePaymentProvider.refund

retriggerPush()

retriggerPush(reference): Promise<OrderResult>;

Defined in: providers/snippe/src/snippe.ts:521

Re-send the USSD push prompt for a pending mobile payment. Returns the updated payment object.

Parameters

ParameterType
referencestring

Returns

Promise<OrderResult>


validateCredentials()

validateCredentials(): Promise<{
  message?: string;
  valid: boolean;
}>;

Defined in: providers/snippe/src/snippe.ts:503

Validate that a provider config works (health check).

Useful for startup checks or /health endpoints.

Returns

Promise<{ message?: string; valid: boolean; }>

{ valid: true } if credentials are correct.

Throws

PesaUnsupportedError — if the provider does not support validation.

Overrides

BasePaymentProvider.validateCredentials

On this page