Mono/ Decide Integration Guide

Mono/ Decide Integration Guide

This feature focuses on quickly integrating the mono widget on your application without going through the hassle of signing up for, maintaining a mono account, and fetching transactions.

This allows your customers to log in to their bank accounts via the mono widget, give authorization then we will pull the customers' transaction data and provide you with a Decide bank statement analysis for the customer.

To set up, the steps are as follows:

Mono/Decide Widget Integration Set up Guide

Step 1: Register a merchant on the Indicina Mono account by creating an app.

Creating an app will immediately auto-generate public and secret keys.

Step 2: Configure the public key and secret key on admin.

Step 3: Send the public key to the merchant.

The merchant will use this public key to generate an access token which will help the merchants when integrating the widget.

Step 4: Mono Connect Guide
At this step, we will be connecting to the mono connect widget from within the merchant’s application so that you can link the bank accounts with Mono from within the merchant’s application.

Below are the different SDK guides to help you set up the widget.

Step 5: The end-user picks their institution and completes the authorization flow.

Step 6: When successful enrolment occurs, Mono Connect passes back a code which you then use to retrieve the account id for that particular user.

 

API Documentation

After completing the mono connect flow, an accountId (that identifies the authenticated account) will be returned to your application.
Using the returned accountId we can now make an API call to Decide

The Content-Type Header

The content-type header MUST be application/json.

Content-Type: application/json

Endpoint

POST {BASE_URL}/client/bsp/mono

Request Body

The request the accounted as well as some transaction filters

{ "customer": { "id": "5f171a530295e231abca1153" }, "startDate": "01-11-2020", "endDate": "01-12-2020", "request_type": "score" }

 

Response
If successful you will receive a response with the format

{ "data": { "behaviouralAnalysis": { "accountSweep": "No", "gamblingRate": 0.0, "inflowOutflowRate": "Positive Cash Flow", "loanAmount": 0.0, "loanInflowRate": 0.0, "loanRepaymentInflowRate": 0.0, "loanRepayments": 0.0, "topIncomingTransferAccount": "Kudabank Com", "topTransferRecipientAccount": "Oladipupo" }, "cashFlowAnalysis": { "accountActivity": 1.0, "averageBalance": 96925.31, "averageCredits": 97465.33, "averageDebits": 12580.44, "closingBalance": 4894.64, "firstDay": "2020-06-17", "lastDay": "2020-09-14", "monthPeriod": "June - September", "netAverageMonthlyEarnings": 1369432.54, "noOfMonths": 4, "totalCreditTurnover": 1369432.54, "totalDebitTurnover": 1380699.92, "yearInStatement": "2020" }, "incomeAnalysis": { "averageOtherIncome": 0, "averageSalary": 374385.22, "confidenceIntervalonSalaryDetection": 0.67, "expectedSalaryDay": 24, "lastSalaryDate": "2020-08-24", "medianIncome": 374385.33, "numberOtherIncomePayments": 0, "numberSalaryPayments": 3, "salaryEarner": "Yes", "salaryFrequency": "1" }, "spendAnalysis": { "airtime": 0.0, "atmWithdrawalsSpend": 0.0, "averageRecurringExpense": 0.0, "bankCharges": 0.0, "bills": 0.0, "cableTv": 0.0, "clubsAndBars": 0.0, "gambling": 0.0, "hasRecurringExpense": "No", "internationalTransactionsSpend": 0.0, "posSpend": 0.0, "religiousGiving": 0.0, "spendOnTransfers": 0.0, "totalExpenses": 1380699.92, "ussdTransactions": 0.0, "utilitiesAndInternet": 0.0, "webSpend": 0.0 }, "transactionPatternAnalysis": { "MAWWZeroBalanceInAccount": {}, "NODWBalanceLess5000": 22, "highestMAWOCredit": { "month": "June", "week_of_month": 4 }, "highestMAWODebit": { "month": "June", "week_of_month": 4 }, "lastDateOfCredit": "2020-09-14", "lastDateOfDebit": "2020-09-14", "mostFrequentBalanceRange": "100,000 - 500,000", "mostFrequentTransactionRange": "< 10,000", "recurringExpense": {}, "transactionsBetween100000And500000": 6, "transactionsBetween10000And100000": 33, "transactionsGreater500000": 0, "transactionsLess10000": 91 } }, "status": "success" }