Skip to content

Roadmap

Ray Besiga edited this page Jan 17, 2019 · 1 revision

Overall Roadmap

In order to best determine how to go about building the libraries that will be built for the MTN MoMo API developer ecosystem, there is a need to ascertain the base requirements for all the libraries. From the onset, it is clear that the API products work dependent on the ability of the developer to select and subscribe to specific products.

Environment Variables

There are a number of environment variables that we must cater to. Some of the variables are global, while others are product specific.

Global

  • Base URL (Sandbox or Production URL)
  • Platform Environment (Sandbox or Production)

Product Specific

  • Subscription Key (Primary or Secondary)
  • User ID
  • User/API Secret

The User ID and API Secret are generated using the Product Subscription Key. There will be a need to cater to these variables while ensuring that we enforce security for developer credentials. The best approach is yet to be determined.

Products

The libraries must be able to support the following API products:

  • Collections
  • Disbursements
  • Remittances

As such, the libraries will need to cater to the specific APIs used by each of the products

Collections

  • /requesttopay
  • /accountholder/{accountHolderIdType}/{accountHolderId}/active
  • /account/balance

Disbursements

  • /transfer
  • /accountholder/{accountHolderIdType}/{accountHolderId}/active
  • /account/balance

Remittances

  • /transfer
  • /accountholder/{accountHolderIdType}/{accountHolderId}/active
  • /account/balance

From the list, it is almost obvious that the two most useful APIs are requesttopay for inbound transactions and transfer for outbound transactions.

Validation

There is a need to figure out how to best handle errors. At the moment, we need to figure how to:

  • Determine error specificity
  • Handle response codes for the different errors
  • Not let the API hang or throw generic errors (need to talk to Ericsson**)

Under consideration is a need to add assertions or linters so as to determine how best to enforce validation.

Issues specific to the Node library

  • TravisCI integration
  • Handling global and product specific variables
  • Support ability to determine account status /accountholder/{accountHolderIdType}/{accountHolderId}/active
  • Support ability to determine account balance /account/balance
  • Support ability to request payment /requesttopay
  • Support ability to send payment /transfer
Clone this wiki locally