Phoenix(Elixir) wrapper for chpter API implimentatio for Mpesa Payments in Kenya.
The package can be installed
by adding chpter to your list of dependencies in mix.exs:
def deps do
[
{:chpter, "~> 0.1.2"}
]
endRun mix deps.get to fetch from Hex
This is broken down into two parts , Payments and Payouts.
This is further broken down into two parts, Initiation and Checking Transaction Status.
There is a function called initiate_payment that takes in the following parameters:
api_key- Your Chpter API keyphone_number- The phone number to send the payment request toname- The name of the person to send the payment request toemail- The email of the person to send the payment request toamount- The amount to be paidcallback_url- The callback url to be used by Chpter to send the payment request response totransaction_reference- The reference to be used for the payment request
iex> Chpter.initiate_payment(
"pk_4aff02227456f6b499820c2621ae181c9e35666d25865575fef47622265dcbb9",
"254740769596",
"Michael Munavu",
"michaelmunavu83@gmail.com",
1,
"Nairobi",
"https://720a-102-135-173-116.ngrok-free.app/api/transactions",
"transaction_123456"
)There is a function called check_for_payment that takes in the following parameters:
api_endpoint- The Chpter API endpoint where all the transactions are storedtransaction_reference- The reference to be used for the payment request
iex> Chpter.check_for_payment(
"123456",
"https://api.chpter.co/v1/transactions",
)This is the function for making payouts to your customers. Customers can withdraw money from the Chpter wallet to their Mpesa accounts.
This function takes the following parameters:
name- The name of the person to send the payment request toemail- The email of the person to send the payment request tophone_number- The phone number to send the payment request toamount- The amount to be paid as an integercallback_url- The callback url to be used by Chpter to send the payment request response topayout_reference- The reference to be used for the payment requestapi_key- Your Chpter API key
Replace the payout_reference with the reference to be used for the payment request
and the callback_url with the url that chpter will send the response to .
A successful response will be as follows:
{
"message": "Success",
"success": true,
"status": 200,
"amount": 100,
"currency": "KES",
"payout_reference": "ABCD123",
}A failed response will be as follows:
{
"message": "Payout failed contact support@chpter.co",
"success": false,
"status": 200,
"payout_reference": "ABCD123",
}Replace the api_key with your Chpter API key for the account you want to withdraw from . The amount is an integer and has to be a minimum of 20 KES .
iex> Chpter.withdraw(
"Michael Munavu",
"michaelmunavu83@gmail.com",
"254740769596",
25,
"https://720a-102-135-173-116.ngrok-free.app/api/transactions",
"ABCD123",
"pk_4aff02227456f6b499820c2621ae181c9e35666d25865575fef47622265dcbb9"
)Medium Article Github Repository
Medium Article Github Repository
Chpter is released under MIT License