<img src="assets/logo.png" width="140">
ExPesa :dollar: :pound: :yen: :euro:
Payment Library For Most Public Payment API's in Kenya and hopefully Africa. Let us get this :moneybag:
Table of contents
Features
- [x] Mpesa
- [x] Mpesa Express (STK)
 - [x] STK Transaction Validation
 - [x] B2C
 - [x] B2B
 - [x] C2B
 - [x] Reversal
 - [x] Transaction Status
 - [x] Account Balance
 
 - [ ] JengaWS(Equity)
- [ ] Send Money
 - [ ] Receive Payments
 - [ ] Buy Goods, Pay Bills, Get Airtime
 - [ ] Credit
 - [ ] Reg Tech: KYC, AML, & CDD API
 - [ ] Account Services
 
 - [ ] Paypal
 - [ ] Card
 
Installation
If available in Hex, the package can be installed
by adding ex_pesa to your list of dependencies in mix.exs:
def deps do
  [
    {:ex_pesa, "~> 0.1.1"}
  ]
endConfiguration
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_pesa,
    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_pesa.
Quick Examples
Mpesa Express (STK)
  iex> ExPesa.Mpesa.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
<img src="https://contributors-img.firebaseapp.com/image?repo=beamkenya/ex_pesa" />Licence
ExPesa is released under MIT License