Chpter

Phoenix(Elixir) wrapper for chpter API implimentatio for Mpesa Payments in Kenya.

Installation

The package can be installed by adding chpter to your list of dependencies in mix.exs:

def deps do
  [
    {:chpter, "~> 0.1.2"}
  ]
end

Run mix deps.get to fetch from Hex

Usage

This is broken down into two parts , Payments and Payouts.

Payments

This is further broken down into two parts, Initiation and Checking Transaction Status.

1. Initiation

There is a function called initiate_payment that takes in the following parameters:

 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"

      )

2. Checking Transaction Status

There is a function called check_for_payment that takes in the following parameters:

 iex> Chpter.check_for_payment(
  "123456",
         "https://api.chpter.co/v1/transactions",
         )

Payouts

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:

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"
      )

Creating A Callback url endpoint to use with chpter in elixir

Medium ArticleGithub Repository

Implimenting Chpter in your Phoenix LiveView Article and Repository.

Medium ArticleGithub Repository

Hex Documentation

Hex Docs

Author

Michael Munavu

License

Chpter is released under MIT License