Functional requirements and use cases

The main idea of the Outbound SMS feature is to provide MifosX the ability to send SMS to clients, loan officers and others for various events and announcements -- like pending disbursement, pending payments, task list, monthly cash summary, etc.

m-Banking technology has become one of the most familiar banking features throughout the world.
Considering m-Commerce and m-Banking perspective for MifosX, a Push Pull services offering SMS (Short Messaging Service) based m-Banking system has been proposed which is able to provide several essential banking services only by sending SMS to bank server from any remote location.

This push-pull services specified system facilitates MifosX users by carrying out real time m-Banking utilities by categorizing services into five major on the basis of their homogeneity. They are Broadcast, Scheduling, Event, Inquiry and m-Commerce services. The proposed system not only brings banking transaction in hand’s grip but also makes it easier, robust and flexible with highest security.

 

#

User Story Title

User Story Description

Priority

Notes

1

POC for open source project available for SMS based messaging

Currently few open source projects provide capabilities for SMS based inbound and outbound messaging.  We need to do POC for two such frameworks 1. RapidSMS 2. Frontline SMS

These frameworks can be used for baseline instead of building from scratch.

1

 

More details and gitcode can be found in below links.

http://www.frontlinesms.com/technologies/frontlinesms-overview/

https://www.rapidsms.org/

2

Provide a Simple SMS sending capability based on user roles

Provide the ability to send any text sms via a simple dialog box in Client screen. Load officer or Admin person based on role will be able to send SMS to particular user or group of users. User need to be registered user.

 
  • Basic assumption is user has cell phone with basic SMS capabilities. User needs to use registration service to agree terms and conditions also validate cell phone number.

3.

User registration service

User need to register cell phone to use SMS service, this service will provide UserID and PIN as response.

 
  • E.g
  • Get User ID
  • Send SMS <MBSREG >to 90000222
  • You will get a User ID and default MPIN.

4.

Acceptance of Terms and Conditions of the Service

While the above steps complete the registration process, a customer will be able to do Financial and Non Financial transactions , only after he conveys his acceptance to the Terms and Conditions of the Service

 
  • E.g  To convey the acceptance of Terms and Conditions, a customer needs to send the
  • following text message to 900xxxxxxx :
  • <Saccept><UserId><Mpin>.
  • The customer is enabled to do Financial and non financial transactions only after the above message is sent. If
  • the customer has not conveyed the acceptance of Terms & Conditions, he will receive a message “Please send
  • <SACCEPT> <userID> <MPIN> before using any service” as a response for any request made.

5.

SMS transactional services

Following three core services,

  • Enquiry of balance in the account
  • Mini Statement – last five transactions
  • Transfer of Funds –From one account to another
    • E.g
    • Balance Enquiry
    • For enquiring the balance in the account, send following SMS to 92XXXXXXXXX:
    • <Sbal><UserId><Mpin>
    • You will get a message that shows the balance, un-cleared balance and the hold value for the account.
    • Mini statement
    • For receiving a mini statement of the account, send following SMS to 92XXXXXXXXXX:
    • <Smin><UserId><Mpin>
    • You will get a message showing the last five transactions in the account
  

6.

Identify Automatic System Notification SMS Events

We need to identify some system events and scenarios which we would like to have integrated via SMS notification. As I understand, there would be 3 types of SMS notifications: 

  • Manual - triggered by someone from within MifosX. Like sending an SMS to a client with some message. 
  • Event based - triggered by system whenever certain events occur. Like a loan is approved or rejected, etc.
  • Schedule based - triggered periodically, running as a batch job.. maybe integrated with the Spring Scheduler framework. For instance of checking on disbursements to be done today, and send sms in morning to all loan officers. 

TBD

 To start with following SMS alert can be configured based on events.

This need flexible framework to add events.

 

Checking:

Check(s) Cleared Alerts when a specific check clears the account

Daily Balance Alert Alerts the balance at the end of day processing

Deposit Notice Alerts when a deposit is posted

Deposit(s) :

Presentments Alerts when deposits are memo posted

Low Balance Alert Alerts when your balance is equal to or below an amount you set

Loan:

Loan approval Alert when loan is approved

Payment Due Alerts when a payment is due

Payment Notice Alerts when a payment is made

Payment Past Due Alerts when a payment is past due

7.

SMS Notification Configuration Screen

 Need to create a configuration screen where all SMS based notification configurations can be done. This will contain the following:

  • SMS Gateway Plugin choice + Gateway Plugin configurations/credentials
  • Which system events should be enabled for auto-send (from list 5 above)
  • What would be the template message for each type of system event (or maybe for now, we hardcode this in code, and expose templates later when the need arises) The problem around hardcoding the SMS message for system events is that we need to send messages in different languages to different roles. Like Loan Officer may want SMS in English, while Clients may want it in Swahili, or Hindi, etc. So - it would just make sense to give the ability to enter the SMS template message right now.
  • Ability to see the SMS notification queue.

TBD