GitHunt
BE

beamkenya/ex_mpesa

Daraja API(Mpesa) Payment Library for Elixir

Actions Status Hex.pm Hex.pm Coverage Status

ExMpesa

Payment Library For Most Mpesa(Daraja) Payment API's in Kenya. Let us get this ๐Ÿ’ฐ

Table of contents

Features

  • STK Transaction Validation
  • B2C
  • B2B
  • C2B
  • Reversal
  • Transaction Status
  • Account Balance

Installation

If available in Hex, the package can be installed
by adding ex_mpesa to your list of dependencies in mix.exs:

def deps do
  [
    {:ex_mpesa, "~> 0.1.0"}
  ]
end

Configuration

Create a copy of config/dev.exs or config/prod.exs from config/dev.sample.exs
Use the sandbox key to true when you are using sandbox credentials, chnage to false when going to :prod

Mpesa (Daraja)

Mpesa Daraja API link: https://developer.safaricom.co.ke

Add below config to dev.exs / prod.exs files
This asumes you have a clear understanding of how Daraja API works.

You can also refer to this Safaricom Daraja API Tutorial: https://peternjeru.co.ke/safdaraja/ui/ by Peter Njeru

config :ex_mpesa,
    consumer_key: "72yw1nun6g1QQPPgOsAObCGSfuimGO7b",
    consumer_secret: "vRzZiD5RllMLIdLD",
    mpesa_short_code: "174379",
    mpesa_passkey: "bfb279f9aa9bdbcf158e97dd71a467cd2e0c893059b10f78e6b72ada1ed2c919",
    mpesa_callback_url: "http://91eb0af5.ngrok.io/api/payment/callback"

Documentation

The docs can be found at https://hexdocs.pm/ex_mpesa.

Quick Examples

Mpesa Express (STK)

  iex> ExMpesa.Stk.request(%{amount: 10, phone: "254724540000", reference: "reference", description: "description"})
      {:ok,
        %{
        "CheckoutRequestID" => "ws_CO_010320202011179845",
        "CustomerMessage" => "Success. Request accepted for processing",
        "MerchantRequestID" => "25558-10595705-4",
        "ResponseCode" => "0",
        "ResponseDescription" => "Success. Request accepted for processing"
        }}

Contribution

If you'd like to contribute, start by searching through the issues and pull requests to see whether someone else has raised a similar idea or question.
If you don't see your idea listed, Open an issue.

Check the Contribution guide on how to contribute.

Contributors

Auto-populated from:
contributors-img

Licence

ExPesa is released under MIT License

license