Class: SelcomPaymentProvider
Defined in: providers/selcom/src/selcom.ts:70
Extends
BasePaymentProvider
Constructors
Constructor
new SelcomPaymentProvider(config): SelcomPaymentProvider;Defined in: providers/selcom/src/selcom.ts:78
Parameters
| Parameter | Type |
|---|---|
config | SelcomConfig |
Returns
SelcomPaymentProvider
Overrides
BasePaymentProvider.constructorProperties
| Property | Modifier | Type | Default value | Description | Overrides | Defined in |
|---|---|---|---|---|---|---|
name | readonly | ProviderName | 'selcom' | Unique provider identifier. | BasePaymentProvider.name | providers/selcom/src/selcom.ts:71 |
Methods
cancelOrder()
cancelOrder(orderId): Promise<{
cancelled: boolean;
message?: string;
orderId: string;
}>;Defined in: providers/selcom/src/selcom.ts:486
Cancel a pending or in-progress order.
Parameters
| Parameter | Type |
|---|---|
orderId | string |
Returns
Promise<{
cancelled: boolean;
message?: string;
orderId: string;
}>
Throws
PesaUnsupportedError — if the provider does not support cancellation.
Overrides
BasePaymentProvider.cancelOrdercreateOrder()
createOrder(payload): Promise<OrderResult>;Defined in: providers/selcom/src/selcom.ts:226
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/selcom/src/selcom.ts:306
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/selcom/src/selcom.ts:530
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.getBalancegetNameLookup()
getNameLookup(phoneOrAccount): Promise<NameLookupResult>;Defined in: providers/selcom/src/selcom.ts:551
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/selcom/src/selcom.ts:292
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/selcom/src/selcom.ts:413
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.handleWebhooklistOrders()
listOrders(params): Promise<ListOrdersResult>;Defined in: providers/selcom/src/selcom.ts:500
List payment orders for a date range.
Parameters
| Parameter | Type |
|---|---|
params | ListOrdersParams |
Returns
Promise<ListOrdersResult>
Throws
PesaUnsupportedError — if the provider does not support listing orders.
Overrides
BasePaymentProvider.listOrderspreviewDisburse()?
optional previewDisburse(_payload): Promise<PreviewResult>;Defined in: packages/pesa/dist/providers/base.d.ts:139
Preview / dry-run a disbursement before committing.
Parameters
| Parameter | Type |
|---|---|
_payload | DisbursePayload |
Returns
Promise<PreviewResult>
Throws
PesaUnsupportedError — if the provider does not support preview.
Inherited from
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()?
optional refund(_orderId, _amount?): Promise<RefundResult>;Defined in: packages/pesa/dist/providers/base.d.ts:94
Refund a completed payment.
Parameters
| Parameter | Type |
|---|---|
_orderId | string |
_amount? | number |
Returns
Promise<RefundResult>
Throws
PesaUnsupportedError — if the provider does not support refunds.
Inherited from
BasePaymentProvider.refundvalidateCredentials()
validateCredentials(): Promise<{
message?: string;
valid: boolean;
}>;Defined in: providers/selcom/src/selcom.ts:572
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