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
| Parameter | Type |
|---|---|
config | SnippeConfig |
Returns
SnippePaymentProvider
Overrides
BasePaymentProvider.constructorProperties
| Property | Modifier | Type | Default value | Description | Overrides | Defined in |
|---|---|---|---|---|---|---|
name | readonly | ProviderName | 'snippe' | Unique provider identifier. | BasePaymentProvider.name | providers/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
| Parameter | Type |
|---|---|
reference | string |
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
| Parameter | Type |
|---|---|
_orderId | string |
Returns
Promise<CancelOrderResult>
Throws
PesaUnsupportedError — if the provider does not support cancellation.
Inherited from
BasePaymentProvider.cancelOrdercreateCheckoutSession()
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
| Parameter | Type |
|---|---|
params | { amount: number; description?: string; expiresIn?: number; metadata?: Record<string, unknown>; redirectUrl?: string; } |
params.amount | number |
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
| Parameter | Type |
|---|---|
payload | CreateOrderPayload |
Returns
Promise<OrderResult>
Overrides
BasePaymentProvider.createOrderdisburse()
disburse(payload): Promise<DisburseResult>;Defined in: providers/snippe/src/snippe.ts:405
B2C / wallet-out disbursement.
The SDK calls validateDisbursePayload() before this.
Parameters
| Parameter | Type |
|---|---|
payload | DisbursePayload |
Returns
Promise<DisburseResult>
Overrides
BasePaymentProvider.disbursegetBalance()
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.getBalancegetCheckoutSession()
getCheckoutSession(reference): Promise<SnippeCheckoutSession>;Defined in: providers/snippe/src/snippe.ts:636
Fetch a checkout session by reference.
Parameters
| Parameter | Type |
|---|---|
reference | string |
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
| Parameter | Type |
|---|---|
phoneOrAccount | string |
Returns
Promise<NameLookupResult>
Throws
PesaUnsupportedError — if the provider does not support name lookup.
Overrides
BasePaymentProvider.getNameLookupgetPaymentStatus()
getPaymentStatus(orderId): Promise<PaymentStatus>;Defined in: providers/snippe/src/snippe.ts:321
Poll or fetch the current payment status for an order.
Parameters
| Parameter | Type |
|---|---|
orderId | string |
Returns
Promise<PaymentStatus>
Overrides
BasePaymentProvider.getPaymentStatushandleWebhook()
handleWebhook(rawBody, headers): Promise<PaymentEvent>;Defined in: providers/snippe/src/snippe.ts:334
Parse + verify an incoming webhook.
The provider must:
- Verify its own cryptographic signature (HMAC, checksum, etc.)
- Parse the raw body into structured data
- Return a normalized PaymentEvent
The SDK handles UUID assignment, event persistence, plugin hooks, and user-registered handler emission after this method returns.
Parameters
| Parameter | Type |
|---|---|
rawBody | string | Buffer<ArrayBufferLike> |
headers | Record<string, string> |
Returns
Promise<PaymentEvent>
Overrides
BasePaymentProvider.handleWebhooklistCheckoutSessions()
listCheckoutSessions(params?): Promise<SnippeCheckoutSession[]>;Defined in: providers/snippe/src/snippe.ts:644
List checkout sessions (paginated).
Parameters
| Parameter | Type |
|---|---|
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
| Parameter | Type |
|---|---|
params | ListOrdersParams & { paymentType?: string; q?: string; status?: string; } |
Returns
Promise<ListOrdersResult>
Throws
PesaUnsupportedError — if the provider does not support listing orders.
Overrides
BasePaymentProvider.listOrderspreviewDisburse()
previewDisburse(payload): Promise<PreviewResult>;Defined in: providers/snippe/src/snippe.ts:565
Preview / dry-run a disbursement before committing.
Parameters
| Parameter | Type |
|---|---|
payload | DisbursePayload |
Returns
Promise<PreviewResult>
Throws
PesaUnsupportedError — if the provider does not support preview.
Overrides
BasePaymentProvider.previewDisbursepreviewOrder()?
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
| Parameter | Type |
|---|---|
_payload | CreateOrderPayload |
Returns
Promise<PreviewResult>
Throws
PesaUnsupportedError — if the provider does not support preview.
Inherited from
BasePaymentProvider.previewOrderrefund()
refund(orderId, _amount?): Promise<RefundResult>;Defined in: providers/snippe/src/snippe.ts:579
Refund a completed payment.
Parameters
| Parameter | Type |
|---|---|
orderId | string |
_amount? | number |
Returns
Promise<RefundResult>
Throws
PesaUnsupportedError — if the provider does not support refunds.
Overrides
BasePaymentProvider.refundretriggerPush()
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
| Parameter | Type |
|---|---|
reference | string |
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