-
Notifications
You must be signed in to change notification settings - Fork 48
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.
There are a number of environment variables that we must cater to. Some of the variables are global, while others are product specific.
- Base URL (Sandbox or Production URL)
- Platform Environment (Sandbox or Production)
- 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.
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.
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