SW SwiftWallet
Base URL https://swiftwallet.co.ke/v3

Payment channels

The paybills, tills, bank settlements and wallet channel that STK collections land in.

GET /v3/channels List channels Try it

Your channels, optionally filtered.

Scope: account_api

Parameters

FieldInTypeRequiredDescription
id query integer no One channel.
Range 1 – …
channel_type query string no "till" is accepted as an alias of till_number.
One of: paybill, till_number, bank_settlement, wallet

Request

curl -X GET "https://swiftwallet.co.ke/v3/channels?id=…" \
  -H "Authorization: Bearer $SWIFTWALLET_API_KEY" \
  -H "Accept: application/json"

Response fields

success total channels[].id channels[].channel_name channels[].channel_type channels[].account_number channels[].paybill_number channels[].bank_id channels[].account_name channels[].is_default channels[].is_active channels[].is_suspended channels[].kyc_required channels[].kyc_status channels[].wallet_activated channels[].created_at

POST /v3/channels Add, update, toggle or delete a channel

One endpoint, selected by action. The dashboard Payment Channels page does the same.

Scope: account_api

Parameters

FieldInTypeRequiredDescription
action body string yes Operation.
One of: add, update, toggle, delete, activate_wallet
channel_id body integer unless action is add Your channel id.
Range 1 – …
channel_name body string when action is add Max 100.
channel_type body string when action is add Wallet channels cannot be created here. "till" is an alias of till_number.
One of: paybill, till_number, bank_settlement
account_number body string no Max 30.
paybill_number body string no Max 10.
bank_id body integer no Bank for bank_settlement.
Range 1 – …
account_name body string no Max 150.
is_default body boolean no Make this the default STK channel.
is_active body boolean when action is toggle New active state.

Request

curl -X POST "https://swiftwallet.co.ke/v3/channels" \
  -H "Authorization: Bearer $SWIFTWALLET_API_KEY" \
  -H "Accept: application/json"

Response fields

success message channel activation_fee_charged (activate_wallet) wallet_balances (activate_wallet)

activate_wallet charges the activation fee and only works with a live key. Until it runs, wallet-channel requests return 403 WALLET_ACTIVATION_REQUIRED.