Payment Library For Most Public Payment API's in Kenya and hopefully Africa. Let us get this 💰
If you intend to use just one Payment Library included below, there are some which exists as separately, you can check them out before proceeding;
- Mpesa
- Mpesa Express (STK)
- STK Transaction Validation
- B2C
- B2B
- C2B
- Reversal
- Transaction Status
- Account Balance
- JengaWS(Equity)
- Send Money
- Send Money Queries
- Receive Money
- Receive Money Queries
- Buy Goods, Pay Bills, Get Airtime
- Airtime
- Reg Tech: KYC, AML, & CDD API
- Account Services
- Forex Rates
- Paypal
- Card
- iPay
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"}
]
end
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 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"
]
Jenga API link: https://developer.jengaapi.io
Add below config to dev.exs / prod.exs files.
This asumes you have a clear understanding of how Jenga API works.
Read more about how the token is generted here: https://developer.jengaapi.io/docs/developer-quickstart .
The private_key
is used to generate the signature
. READ More: https://developer.jengaapi.io/docs/generating-signatures .
config :ex_pesa,
jenga: [
api_key: "=======API KEY HERE ========",
username: "=====USERNAME HERE=====",
password: "=======PASSWORD HERE =======",
private_key: "=======PRIVATE KEY HERE ======="
]
The docs can be found at https://hexdocs.pm/ex_pesa.
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"
}}
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.
Auto-populated from: contributors-img
ExPesa is released under MIT License