Skip to content

MICHAELMUNAVU83/chpter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:

  • api_key - Your Chpter API key
  • phone_number - The phone number to send the payment request to
  • name - The name of the person to send the payment request to
  • email - The email of the person to send the payment request to
  • amount - The amount to be paid
  • callback_url - The callback url to be used by Chpter to send the payment request response to
  • transaction_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"

      )

2. Checking Transaction Status

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 stored
  • transaction_reference - The reference to be used for the payment request
 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:

  • name - The name of the person to send the payment request to
  • email - The email of the person to send the payment request to
  • phone_number - The phone number to send the payment request to
  • amount - The amount to be paid as an integer
  • callback_url - The callback url to be used by Chpter to send the payment request response to
  • payout_reference - The reference to be used for the payment request
  • api_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"
      )

Creating A Callback url endpoint to use with chpter in elixir

Medium Article Github Repository

Implimenting Chpter in your Phoenix LiveView Article and Repository.

Medium Article Github Repository

Hex Documentation

Hex Docs

Author

Michael Munavu

License

Chpter is released under MIT License



About

Chpter Elixir

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages