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

ParameterType
configSelcomConfig

Returns

SelcomPaymentProvider

Overrides

BasePaymentProvider.constructor

Properties

PropertyModifierTypeDefault valueDescriptionOverridesDefined in
namereadonlyProviderName'selcom'Unique provider identifier.BasePaymentProvider.nameproviders/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

ParameterType
orderIdstring

Returns

Promise<{ cancelled: boolean; message?: string; orderId: string; }>

Throws

PesaUnsupportedError — if the provider does not support cancellation.

Overrides

BasePaymentProvider.cancelOrder

createOrder()

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

ParameterType
payloadCreateOrderPayload

Returns

Promise<OrderResult>

Overrides

BasePaymentProvider.createOrder

disburse()

disburse(payload): Promise<DisburseResult>;

Defined in: providers/selcom/src/selcom.ts:306

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/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.getBalance

getNameLookup()

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

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/selcom/src/selcom.ts:292

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/selcom/src/selcom.ts:413

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

listOrders()

listOrders(params): Promise<ListOrdersResult>;

Defined in: providers/selcom/src/selcom.ts:500

List payment orders for a date range.

Parameters

ParameterType
paramsListOrdersParams

Returns

Promise<ListOrdersResult>

Throws

PesaUnsupportedError — if the provider does not support listing orders.

Overrides

BasePaymentProvider.listOrders

previewDisburse()?

optional previewDisburse(_payload): Promise<PreviewResult>;

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

Preview / dry-run a disbursement before committing.

Parameters

ParameterType
_payloadDisbursePayload

Returns

Promise<PreviewResult>

Throws

PesaUnsupportedError — if the provider does not support preview.

Inherited from

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()?

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

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

Refund a completed payment.

Parameters

ParameterType
_orderIdstring
_amount?number

Returns

Promise<RefundResult>

Throws

PesaUnsupportedError — if the provider does not support refunds.

Inherited from

BasePaymentProvider.refund

validateCredentials()

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

On this page