Skip to content

davykiash/pesaPi

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PesaPI

PesaPI is an unofficial open source API for mobile money systems, released under the BSD(lite) license.
The system currently support:

  • Kenya: Mpesa paybill accounts
  • Kenya: Mpesa private accounts
  • Kenya: Yu private accounts (experimental)
  • Ghana: Airtel private accounts (experimental)
  • Rwanda: MNT private accounts (experimental)

The API supports both PUSH and PULL versions. The PHP version of the API is generally the most mature and recomended at this point - the system is build using Mysql and Curl. Please direct all questions to the public mailing-list "pesaPi" on Google-groups: http://groups.google.com/group/pesapi

Short example

For a short usage example please see: http://www.youtube.com/gifair

Current status

The current system should be considered as beta version - at least one commercial solution is using it as its payment gateway. However it is not recomended that you deploy the system without having a developer available to support the setup.

Version 0.1.0 was recently released and is contains a major rework of the internal structures of PesaPi - be alert that things that worked previously may not be fully working yet - as detailed testing is ongoing.

Currently we are looking for people to provide copies of the SMS messages they are getting from various payment systems.

System design overview

  • Supports both push and pull notifications.
  • Does synchroization between local and server database.
  • Transaction data are available even when main server is down.
  • Super easy to utilize for integrators.
  • Fast response on historical data.
  • Keep the load on servers as low as possible.
  • Hopefully more reliable than other APIs.

API Overview

The PesaPi class contains several static methods, these methods are the main interface.

  • availableBalance(time) -- returns the balance at a given point in time
  • locateByReceipt(receipt) -- returns a payment or null for the given receipt number
  • locateByPhone(phone, from, until) -- returns an array of payments from a particular phone
  • locateByName(name, from, until) -- returns an array of payments from a particular client name
  • locateByAccount(account, from, until) -- returns an array of payments from a particular account-no
  • locateByTimeInterval(from, until) -- returns an array of all payments within a given time interval

As an alternative you can ask PesaPi to call a your on your site when a new transaction is received (push mechanics).

Way forward

The following is a highlevel "todo" list for the project

  • Getting the code to release/production quality.
  • Getting more developers onboard.
  • Add support for more payment systems.

About

API for (mobile) commercial accounts

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published