Skip to main content

List Channels

The List Channels endpoint allows you to retrieve all available payment channels supported by JPay. Use this to display channel options to users or to validate channel codes before initiating transactions.

Endpoint

GET /channels

Authentication

Required: Yes (Bearer Token)

Authorization: Bearer YOUR_ACCESS_TOKEN

Request

Query Parameters

ParameterTypeRequiredDefaultDescription
typestringNo-Filter by channel type: bank, mobile_money, or internal
active_onlybooleanNotrueOnly return active channels
pageintegerNo1Page number for pagination
page_sizeintegerNo100Number of items per page

Example Request

curl -X GET "https://sandbox.api.jpay.africa/api/v1/channels?type=bank&page=1&page_size=100" \
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." \
-H "Content-Type: application/json"

Response

Success Response (200 OK)

{
"items": [
{
"code": 0,
"name": "JPay",
"type": "internal",
"type_display": "Internal",
"is_active": true
},
{
"code": 1,
"name": "KCB",
"type": "bank",
"type_display": "Bank",
"is_active": true
},
{
"code": 7,
"name": "NCBA",
"type": "bank",
"type_display": "Bank",
"is_active": true
},
{
"code": 68,
"name": "Equity Bank",
"type": "bank",
"type_display": "Bank",
"is_active": true
},
{
"code": 63902,
"name": "MPesa",
"type": "mobile_money",
"type_display": "Mobile Money",
"is_active": true
},
{
"code": 63903,
"name": "AirtelMoney",
"type": "mobile_money",
"type_display": "Mobile Money",
"is_active": true
},
{
"code": 63907,
"name": "T-Kash",
"type": "mobile_money",
"type_display": "Mobile Money",
"is_active": true
}
],
"pagination": {
"count": 40,
"page": 1,
"page_size": 100,
"total_pages": 1
}
}

Response Fields

FieldTypeDescription
itemsarrayList of channel objects
paginationobjectPagination information

Channel Object

FieldTypeDescription
codeintegerUnique channel code used in transactions
namestringHuman-readable channel name
typestringChannel type: mobile_money, bank, or internal
type_displaystringDisplay-friendly channel type: "Mobile Money", "Bank", or "Internal"
is_activebooleanWhether the channel is currently active

Pagination Object

FieldTypeDescription
countintegerTotal number of channels matching the filters
pageintegerCurrent page number
page_sizeintegerNumber of items per page
total_pagesintegerTotal number of pages

Status Codes

CodeStatusDescription
200SuccessChannels retrieved successfully
401UnauthorizedInvalid or expired token
500Server ErrorInternal server error

Error Responses

401 Unauthorized

{
"detail": "Invalid or expired token"
}

Examples

curl -X GET "https://sandbox.api.jpay.africa/api/v1/channels?page=1&page_size=100" \
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." \
-H "Content-Type: application/json"

Channel Types

Mobile Money Channels

Mobile money channels are used for payments to/from mobile wallets. These are the most common payment method in Kenya.

CodeNameDescription
63902MPesaSafaricom's mobile money service
63903AirtelMoneyAirtel Kenya's mobile money service
63907T-KashTelkom Kenya's mobile money service
info

Collections only support mobile money channels. When initiating a collection, you must use a mobile money channel or let the system auto-infer based on the phone carrier.

Bank Channels

Bank channels are used for payouts to bank accounts.

CodeNameDescription
01KCBKenya Commercial Bank
02Standard Chartered Bank KEStandard Chartered Bank Kenya
03Absa BankAbsa Bank Kenya (formerly Barclays)
07NCBANCBA Bank Kenya
10Prime BankPrime Bank Kenya
11Cooperative BankCo-operative Bank of Kenya
12National BankNational Bank of Kenya
14M-OrientalM-Oriental Bank
16CitibankCitibank Kenya
18Middle East BankMiddle East Bank Kenya
19Bank of AfricaBank of Africa Kenya
23Consolidated BankConsolidated Bank of Kenya
25Credit BankCredit Bank Kenya
31Stanbic BankStanbic Bank Kenya
35ABC BankAfrican Banking Corporation
36Choice Microfinance BankChoice Microfinance Bank
43Eco BankEcobank Kenya
50Paramount Universal BankParamount Universal Bank
51Kingdom BankKingdom Bank Kenya
53Guaranty BankGuaranty Trust Bank Kenya
54Victoria Commercial BankVictoria Commercial Bank
55Guardian BankGuardian Bank Kenya
57I&M BankI&M Bank Kenya
61HFC BankHFC Bank Kenya
63DTBDiamond Trust Bank Kenya
65Mayfair BankMayfair Bank Kenya
66Sidian BankSidian Bank Kenya
68Equity BankEquity Bank Kenya
70Family BankFamily Bank Kenya
72Gulf African BankGulf African Bank
74First Community BankFirst Community Bank
75DIB BankDubai Islamic Bank Kenya
76UBAUnited Bank for Africa Kenya
78KWFT BankKenya Women Finance Trust Bank
89Stima SaccoStima Deposit Taking Sacco
info

Payouts support both mobile money and bank channels. When paying to a bank account, you must specify the bank channel code.

Internal Channels

Internal channels are used for transferring funds between JPay merchant accounts.

CodeNameDescription
00JPayInternal transfers between JPay merchant accounts
info

Internal channels are used exclusively for moving funds between JPay merchant accounts. These are not available for external collections or payouts.

Auto-Inference for Phone Numbers

When initiating a transaction with a phone number and no channel specified, JPay automatically infers the channel based on the phone carrier:

Phone PrefixCarrierAuto-Selected Channel
+2547xxSafaricomM-Pesa (63902)
+2541xxSafaricomM-Pesa (63902)
+25473xAirtelAirtel Money (63903)
+25478xAirtelAirtel Money (63903)
+25477xTelkomT-Kash (63907)
tip

Best Practice: For phone number transactions, you can omit the channel field and let JPay auto-detect the appropriate mobile money channel. This ensures customers always use the correct channel for their carrier.

Important Notes

danger

Channel Availability:

  • Channels may be temporarily disabled for maintenance
  • Always check the is_active field before using a channel
  • Some channels may have transaction limits or restrictions
tip

Integration Tips:

  • Cache the channel list to reduce API calls
  • Implement fallback handling if a channel becomes unavailable
  • Display user-friendly channel names (use name field, not code)

Next Steps