# Bank Transfer
# EkonnectPay to Bank
As a EkonnectPay merchant, you can send money directly to local bank accounts. This is applicable in various use cases such as Salary Payments, Supplier Payments, etc.
Alt test Endpoint: https://api.sandbox.ekonnectpay.com/v1/bank/send-payment/# Request Parameters
| Field | Type | Description | Examples |
|---|---|---|---|
| Amount | Number | The amount of money being sent to the customer. | 30.00 |
| ExternalReference | Alpha-Numeric | A unique identifier of the transaction generated by the Merchant system. | "1234" |
| AccountNumber | String | The recipient bank account number. Send it as a string to preserve leading zeros. | "123456" |
| Channel | String | The payment channel. Use "Bank" for bank transfers. | "Bank" |
| BankName | Alpha-Numeric | The exact bank name from the Supported Banks table below. | "KCB" |
| Currency | Alpha-Numeric | The currency for the transaction. | "KES" |
| Reason | Alpha-Numeric | The reason for payment. | "Payment of transportation fee" |
| MerchantCode | Numeric | A unique number assigned through which payment is received | 1******2 |
| ResultsUrl | URL | This is the URL to be specified in your request that will be used to send notification upon processing of the payment request | "https://yourdomain.com/result_url" |
# Sample Request
curl --location --request POST 'https://api.sandbox.ekonnectpay.com/api/v1/bank/send-payment/' \
--header 'X-Region: ke' \
--header 'Authorization: Bearer MWU1NzI1YzhhN2Y1YTExMmU5ZWI4NGNlMDdjODc5' \
--header 'Content-Type: application/json' \
--data-raw '{
"ExternalReference": "202412231446",
"Amount": 30,
"AccountNumber": "01**********4",
"Channel": "Bank",
"BankName": "KCB",
"Currency": "KES",
"MerchantCode": "11111",
"Reason": "Salary payment",
"ResultsUrl": "https://yourdomain.com/api/webhook"
}'TIP
Alway include the X-Region header on all requests. The right X-Region can be found on the Supported Regions / Countries menu
# Response Parameters
| Field | Type | Description | Example |
|---|---|---|---|
| code | String | This is a status code for either success or failure of the transaction | "200.001" |
| TransactionID | String | An identifier for the transaction request returned by EkonnectPay upon successful request submission. This is generated by EkonnectPay API. | "PHY20ADFASFASFS" |
| OriginatorReference | String | An identifier for the transaction request from the merchant side. It is the input given as TransactionReference when sending B2C request. | "123344" |
# Response Sample
{
"code": "200.001",
"Status": "Active",
"TransactionID": "PHYADFADSFWADS",
"OriginatorReference": "4040359-0f8",
"ResponseDescription": "Transaction of 50 to 01**********4 is being processed"
}
# Results Response
| Field | Type | Description | Example |
|---|---|---|---|
| ReceiverPartyPublicName | String | This full name of the customer receiving the funds. | "John Kym Doe" |
| ResultCode | Numeric | The numeric status of the results, sent to the callback url 0 means success, while any other code indicates that an error occurred. | field |
| ResultDesc | String | This is a message from the API that gives the status of the request processing and usually maps to a specific result code value. | "The service request is processed successfully" |
| TransactionID | String | This is a unique EkonnectPay transaction ID for every payment request. Same value is sent to the customer over SMS upon successful processing. | PR52 |
| TransactionReceipt | String | This is a unique transaction ID dependent on the channel for every payment request. Same value is sent to the customer over SMS upon successful processing. | QTD6ADFSAs |
| TransactionAmount | Number | This is the amount that was transacted. It is usually returned under the ResultParameter array. | "10.00" |
| OriginatorReference | Decimal | A unique identifier of the transaction generated by the Merchant system. | "254******77" |
| TransactionCompletedDateTime | String | This is the date and time that the transaction completed EkonnectPay. | "20220305103101" |
| AccountAvailableFunds | Decimal | This is the available balance after the transaction. | 564.00 |
# Sample Result Response
{
"ResultType": 0,
"ResultDesc": "The service request is processed successfully.",
"Originator": "PW_TEST_01",
"TransactionID": "PHY0A0AE3JF2",
"TransactionAmount": "50.00",
"TransactionReceipt": "QKR3S0JA9H",
"AccountAvailableFunds": "5.00",
"ReceiverPartyPublicName": "21234",
"TransactionCompletedDateTime": "2022-11-27 14:37:49.690634+00:00"
}
# Query Transaction Status
This enables you to directly query the transaction status using the TransactionIDs
Test Endpoint:
https://api.sandbox.ekonnectpay.com/api/v1/bank/transaction-query/# Request Parameters
| Request Parameters | Field Description | Example |
|---|---|---|
| TransactionReference | A transaction reference for the target transaction | PHYD5AD5ASDF5 |
# Request Sample
curl --location --request GET 'https://api.sandbox.ekonnectpay.com/api/v1/bank/transaction-query/' \
--header 'X-Region: ke' \
--data-raw '{
"TransactionReference": "PHYD5AD5ASDF5"
}'# Response Sample
{
"Reference": "PHYD5AD5ASDF5",
"PhoneNumber": "2547xx000xxx",
"Receipt": "QTD5AD5ASDF5",
"Amount": "5000",
"Charge": "45",
"ResultDesc": "Transaction processed successfully",
"ResultCode": "0"
}
# Response Parameters
| Response Parameters | Field Type Description |
|---|---|
| Reference | The EkonnectPay internal reference for the transaction |
| PhoneNumber | The receiving phone number |
| Receipt | MNO receipt |
| Amount | Amount sent out in the transaction |
| Charge | Amount charged to facilitate the transaction |
| ResultDesc | A sentense describing whether the transaction filed or succeeded |
| ResultCode | A code representation of the results .e.g. 0 |
# Supported Banks
# Kenya
The following bank names and codes are configured for Kenya bank transfers, including Stima Sacco.
For /api/v1/bank/send-payment/, set Channel to "Bank" and use the exact Bank Name below as BankName. For example, to send to KCB, use "BankName": "KCB" and provide the recipient bank account number in AccountNumber.
The Bank Code column is a reference for integrations that require a bank code; this endpoint uses BankName. Keep codes as strings to preserve leading zeros, such as "01".
| Bank Name | Bank Code |
|---|---|
| KCB | 01 |
| Standard Chartered Bank KE | 02 |
| Absa Bank | 03 |
| NCBA | 07 |
| Prime Bank | 10 |
| Cooperative Bank | 11 |
| National Bank | 12 |
| M-Oriental | 14 |
| Citibank | 16 |
| Middle East Bank | 18 |
| Bank of Africa | 19 |
| Consolidated Bank | 23 |
| Credit Bank | 25 |
| Stanbic Bank | 31 |
| ABC Bank | 35 |
| Choice Microfinance Bank | 36 |
| Eco Bank | 43 |
| Paramount Universal Bank | 50 |
| Kingdom Bank | 51 |
| Guaranty Bank | 53 |
| Victoria Commercial Bank | 54 |
| Guardian Bank | 55 |
| I&M Bank | 57 |
| HFC Bank | 61 |
| DTB | 63 |
| Mayfair Bank | 65 |
| Sidian Bank | 66 |
| Equity Bank | 68 |
| Family Bank | 70 |
| Gulf African Bank | 72 |
| First Community Bank | 74 |
| DIB Bank | 75 |
| UBA | 76 |
| KWFT Bank | 78 |
| Stima Sacco | 89 |