diff --git a/APIFolder/api.htm b/APIFolder/api.htm index 118f02a8b..7d2fa28ce 100644 --- a/APIFolder/api.htm +++ b/APIFolder/api.htm @@ -92,8 +92,6 @@ - - @@ -2422,7 +2420,7 @@ Request Body:

Configuration

-

Application related configuration like being able to select what currencies are permitted for use within the MFI.

+

Application related configuration like being able to select the currencies permitted for use within the MFI.

@@ -2430,124 +2428,70 @@ Request Body:

Retrieve Currency Configuration

-

Returns the list of selectedCurrencies that are allowed within the MFI and the list of currencies that are currently not selected.

-

Example Request: - https://localhost:8443/mifosng-provider/api/v1/configurations/currency -

+

Returns the list of currencies permitted for use AND the list of currencies not selected (but available for selection).

+

Example Requests:

+ https://localhost:8443/mifosng-provider/api/v1/configurations/currency?pretty=true +
+ https://localhost:8443/mifosng-provider/api/v1/configurations/currency?pretty=true&fields=selectedCurrencyOptions
GET https://thedomainname/api/v1/configurations/currency - -{ - "selectedCurrencyOptions": [ - { - "code": "KES", - "name": "Kenyan Shilling", - "decimalPlaces": 2, - "displaySymbol": "KSh", - "nameCode": "currency.KES", - "displayLabel": "Kenyan Shilling (KSh)" - }, - { - "code": "BND", - "name": "Brunei Dollar", - "decimalPlaces": 2, - "displaySymbol": "BND", - "nameCode": "currency.BND", - "displayLabel": "Brunei Dollar (BND)" - }, - { - "code": "LBP", - "name": "Lebanese Pound", - "decimalPlaces": 2, - "displaySymbol": "L£", - "nameCode": "currency.LBP", - "displayLabel": "Lebanese Pound (L£)" - }, - { - "code": "GHC", - "name": "Ghana Cedi", - "decimalPlaces": 2, - "displaySymbol": "GHC", - "nameCode": "currency.GHC", - "displayLabel": "Ghana Cedi (GHC)" - }, - { - "code": "USD", - "name": "US Dollar", - "decimalPlaces": 2, - "displaySymbol": "$", - "nameCode": "currency.USD", - "displayLabel": "US Dollar ($)" - }, - { - "code": "XOF", - "name": "CFA Franc BCEAO", - "decimalPlaces": 0, - "displaySymbol": "CFA", - "nameCode": "currency.XOF", - "displayLabel": "CFA Franc BCEAO (CFA)" - } - ], - "currencyOptions": [ - { - "code": "AED", - "name": "UAE Dirham", - "decimalPlaces": 2, - "displaySymbol": null, - "nameCode": "currency.AED", - "displayLabel": "UAE Dirham [AED]" - }, - { - "code": "AFN", - "name": "Afghanistan Afghani", - "decimalPlaces": 2, - "displaySymbol": null, - "nameCode": "currency.AFN", - "displayLabel": "Afghanistan Afghani [AFN]" - }, - ... - ... - { - "code": "ZMK", - "name": "Zambian Kwacha", - "decimalPlaces": 2, - "displaySymbol": null, - "nameCode": "currency.ZMK", - "displayLabel": "Zambian Kwacha [ZMK]" - }, - { - "code": "ZWD", - "name": "Zimbabwe Dollar", - "decimalPlaces": 2, - "displaySymbol": null, - "nameCode": "currency.ZWD", - "displayLabel": "Zimbabwe Dollar [ZWD]" - } - ] +{ + "selectedCurrencyOptions" : [ { + "code" : "XOF", + "name" : "CFA Franc BCEAO", + "decimalPlaces" : 0, + "displaySymbol" : "CFA", + "nameCode" : "currency.XOF", + "displayLabel" : "CFA Franc BCEAO (CFA)" + }, { + "code" : "ETB", + "name" : "Ethiopian Birr", + "decimalPlaces" : 2, + "displaySymbol" : null, + "nameCode" : "currency.ETB", + "displayLabel" : "Ethiopian Birr [ETB]" + } ], + "currencyOptions" : [ { + "code" : "AED", + "name" : "UAE Dirham", + "decimalPlaces" : 2, + "displaySymbol" : null, + "nameCode" : "currency.AED", + "displayLabel" : "UAE Dirham [AED]" + }, { + "code" : "AFN", + "name" : "Afghanistan Afghani", + "decimalPlaces" : 2, + "displaySymbol" : null, + "nameCode" : "currency.AFN", + "displayLabel" : "Afghanistan Afghani [AFN]" + }, ... + ] }
-   +  

Update Currency Configuration

-

Update list of selectedCurrencies that are allowed within the MFI and the list of currencies that are currently not selected.

-

Example Request: - https://localhost:8443/mifosng-provider/api/v1/configurations/currency -

+

Updates the list of currencies permitted for use.

-
- PUT https://thedomainname/api/v1/configurations/currency - +
+ PUT https://thedomainname/api/v1/configurations/currency + PUT https://localhost:8443/mifosng-provider/api/v1/configurations/currency +Content-Type: application/json +Request Body: { -"selectedItems": ["USD", "GBP"] + "currencies": ["USD", "GBP","XOF","ETB"] } - + + Question Outstanding +
-
+
  @@ -2995,215 +2939,6 @@ Content-Type: application/xml - -   -
-
-

User account details

-

An API capability to allowed client applications expose functionality for users to update their account details and password.

-
-
- -   -
-
-

Retrieve current users account details

-

Will return user account details.

-

Example Request: - https://localhost:8443/mifosng-provider/api/v1/useraccounts/current -

-
-
- GET https://thedomainname/api/v1/useraccounts/current -GET https://localhost:8443/mifosng-provider/api/v1/useraccounts/current - -{ - "id": 1, - "orgId": 1, - "officeId": 1, - "officeName": "Demo MFI Head Office", - "username": "mifos", - "firstname": "App hello", - "lastname": "Administrator", - "email": "demomfi@mifos.org", - "allowedOffices": [ - { - "id": 1, - "name": "Demo MFI Head Office", - "externalId": "1", - "openingDate": "2009-01-01", - "hierarchy": ".", - "parentName": null, - "parentId": 0, - "allowedParents": [] - }, - { - "id": 2, - "name": "sub branch 1", - "externalId": "2", - "openingDate": "2012-01-02", - "hierarchy": ".2.", - "parentName": "Demo MFI Head Office", - "parentId": 1, - "allowedParents": [] - } - ], - "availableRoles": [ - { - "id": 2, - "orgId": 1, - "name": "Field officer", - "description": "A field officer role allows the user to add client and loans and view reports but nothing else.", - "availablePermissions": [], - "selectedPermissions": [] - }, - { - "id": 3, - "orgId": 1, - "name": "Data Entry (Portfolio only)", - "description": "This role allows a user full permissions around client and loan functionality but nothing else.", - "availablePermissions": [], - "selectedPermissions": [] - }, - { - "id": 4, - "orgId": 1, - "name": "Credit Committe Member", - "description": "This role allows a user to approve reject or withdraw loans (with reporting).", - "availablePermissions": [], - "selectedPermissions": [] - }, - { - "id": 5, - "orgId": 1, - "name": "Manager", - "description": "This role allows a manager to do anything related to portfolio management and also view all reports.", - "availablePermissions": [], - "selectedPermissions": [] - } - ], - "selectedRoles": [ - { - "id": 1, - "orgId": 1, - "name": "Super user", - "description": "This role provides all application permissions.", - "availablePermissions": [], - "selectedPermissions": [ - { - "id": 1, - "orgId": 1, - "name": "User administration ALL", - "description": "An application user will have permission to execute all tasks related to user administration.", - "code": "USER_ADMINISTRATION_SUPER_USER_ROLE", - "groupType": 1 - }, - { - "id": 4, - "orgId": 1, - "name": "Reporting ALL", - "description": "An application user will have permission to execute and view all reports.", - "code": "REPORTING_SUPER_USER_ROLE", - "groupType": 4 - }, - { - "id": 3, - "orgId": 1, - "name": "Portfolio management ALL", - "description": "An application user will have permission to execute all tasks related to portfolio management.", - "code": "PORTFOLIO_MANAGEMENT_SUPER_USER_ROLE", - "groupType": 3 - }, - { - "id": 2, - "orgId": 1, - "name": "Organisation adminsitration ALL", - "description": "An application user will have permission to execute all tasks related to organisation administration.", - "code": "ORGANISATION_ADMINISTRATION_SUPER_USER_ROLE", - "groupType": 2 - } - ] - } - ] -} - -
-
- -   -
-
-

Update current users account details

-

Will update user account details.

-
-
- PUT https://thedomainname/api/v1/useraccounts/current -PUT https://localhost:8443/mifosng-provider/api/v1/useraccounts/current -Content-Type: application/json -Request body: -{ - "officeId": 1, - "username": "mifos", - "firstname": "App hello", - "lastname": "Administrator", - "email": "demomfi@mifos.org", - "selectedItems": ["1"] -} - - -{ - "entityId": 1 -} - -
-
- - -   -
-
-

Retrieve change password template details

-

Will details for change of password screen.

-

Example Request: - https://localhost:8443/mifosng-provider/api/v1/useraccounts/current/password/template -

-
-
- GET https://thedomainname/api/v1/useraccounts/current/password/template -GET https://localhost:8443/mifosng-provider/api/v1/useraccounts/current/password/template - -{ - "password": null, - "passwordrepeat": null -} - -
-
- -   -
-
-

Update current users password

-

Will update users password.

-
-
- PUT https://thedomainname/api/v1/useraccounts/current/password -PUT https://localhost:8443/mifosng-provider/api/v1/useraccounts/current/password -Content-Type: application/json -Request body: -{ - "password": "demo", - "passwordrepeat": "demo" -} - - -{ - "entityId": 1 -} - -
-
-  
@@ -3985,8 +3720,6 @@ Request body:
- - diff --git a/APIFolder/apiPREV.htm b/APIFolder/apiPREV.htm new file mode 100644 index 000000000..118f02a8b --- /dev/null +++ b/APIFolder/apiPREV.htm @@ -0,0 +1,4012 @@ + + + + + + Mifos X API Documentation + + + + +
+
+ + +
+

Core

+
+
+
RESOURCES
POST
create/update
GET
read
PUT
simple update
DELETE
delete
AUTHENTICATION/v1/authenticationVerify Authentication
USER ACCOUNT/v1/useraccounts/currentRetrieve Current Users' Account DetailsUpdate Current Users' Account Details
/v1/useraccounts/current/passwordUpdate Current Users' Password
USER/v1/usersCreate a UserList Users
/v1/users/{userId}Retrieve a UserUpdate a UserDelete a User
ROLE/v1/rolesCreate a New RoleList Roles
REPORT/v1/reportsList Reports
/v1/reports/{reportName}Run a Report
AUTHENTICATION/v1/authenticationVerify Authentication
USER ACCOUNT/v1/useraccounts/currentRetrieve Current Users' Account DetailsUpdate Current Users' Account Details
/v1/useraccounts/current/passwordUpdate Current Users' Password
USER/v1/usersCreate a UserList Users
/v1/users/{userId}Retrieve a UserUpdate a UserDelete a User
ROLE/v1/rolesCreate a New RoleList Roles
+ + + + + + + + + + + + + + + +
RESOURCES
POST
create/update
GET
read
PUT
simple update
DELETE
delete
CLIENT/v1/clientsCreate a ClientList Clients
/v1/clients/{clientId}Retrieve a ClientUpdate a Client
/v1/clients/{clientId}/loansRetrieve a Client's Loan Account Summary
/v1/clients/{clientId}/notesAdd a Client NoteRetrieve a Client's Notes
/v1/clients/{clientId}/notes/{noteId}Retrieve a Client NoteUpdate a Client Note
LOAN/v1/loansCreate a New Loan/Submit a Loan Application
/v1/loans/{loanId}Approve, Disburse, Reject a Loan or Withdraw a Loan ApplicationRetrieve a LoanDelete a Loan
/v1/loans/{loanId}/undoUndo Loan Approval or Disbursal
/v1/loans/{loanId}/transactionsMake a Repayment / Loan Waiver
/v1/loans/{loanId}/transactions/{transactionId}Retrieve a Repayment or Waiver DetailsAdjust a Repayment or Waiver
OFFICE/v1/officesCreate an OfficeList Offices
/v1/offices/{officeId}Retrieve an OfficeUpdate an Office
LOAN PRODUCT/v1/loanproductsCreate a Loan ProductList Loan Products
/v1/loanproducts/{productId}Retrieve a Loan ProductUpdate a Loan Product
+ + + +
+

Configuration

+
+
+ + + +
RESOURCES
POST
create/update
GET
read
PUT
simple update
DELETE
delete
CONFIGURATION/v1/configurations/currencyRetrieve Currency ConfigurationUpdate Currency Configuration
+
+
+
+
+

Additional Fields

+
+
+ + + + +
RESOURCES
POST
create/update
GET
read
PUT
simple update
DELETE
delete
ADDITIONAL FIELDS/v1/additionalfieldsList Additional Fields Sets
/v1/additionalfields/{Type}/{Set}/{id}Update Additional FieldsRetrieve Additional Fields
+
+
+
+
+

Report

+
+
+ + + + +
RESOURCES
POST
create/update
GET
read
PUT
simple update
DELETE
delete
REPORT/v1/reportsList Reports
/v1/reports/{reportName}Run a Report
+
+
+
+
+

User Related

+
+
+ + + + + + + + + + +
RESOURCES
POST
create/update
GET
read
PUT
simple update
DELETE
delete
AUTHENTICATION/v1/authenticationVerify Authentication
USER ACCOUNT/v1/useraccounts/currentRetrieve Current Users' Account DetailsUpdate Current Users' Account Details
/v1/useraccounts/current/passwordUpdate Current Users' Password
USER/v1/usersCreate a UserList Users
/v1/users/{userId}Retrieve a UserUpdate a UserDelete a User
ROLE/v1/rolesCreate a New RoleList Roles
/v1/roles/{roleId}Retrieve a RoleUpdate a Role
PERMISSION/v1/permissionsList Application Permissions
+
+
+
+
+

Convenience

+
+
+ + + + + + + + + + +
RESOURCES
GET
read
/v1/clients/templateRetrieve Client Details Template
/v1/loans/templateRetrieve Loan Details Template
/v1/loans/{loanId}/transactions/templateRetrieve Loan Repayment/Loan Waiver Template
/v1/offices/templateRetrieve Office Details Template
/v1/loanproducts/templateRetrieve Loan Product Details Template
/v1/useraccounts/current/password/templateRetrieve change password template
/v1/users/templateRetrieve new user template
/v1/roles/templateRetrieve new role template
+
+
+
+ + +
+   +
+
+

Mifos X API Documentation

+

+ The Mifos X API is organized around + REST. + Our API is designed to have predictable, resource-oriented + URLs, to use HTTP response codes to indicate API errors, and + to use built-in HTTP features, like HTTP authentication and + HTTP verbs, which can be understood by off-the-shelf HTTP + clients. JSON will be + returned in all responses from the API, including errors. +

+

+ Much of the presentation ideas here have been taken from the very good API reference (https://stripe.com/docs/api) +

+
+ +
+ +   +
+
+

Authentication Overview

+

+ JPW: Keith, this needs to change to whatever is right after authentication has been added. Don't know if you will go with keys or passwords (I assume passwords)... but can you fix it so we have one user or one user per role that doesn't need a password or always has a password of 'password' so we can let ppl do stuff from the browser and/or REST plugins? We can talk about this. +

+

+ STRIPE content: You authenticate to the Mifos X API by providing one of + your API keys in the request. You can manage your API + keys from your + account. + You can have multiple API keys + active at one time. Your API keys carry many + privileges, so be sure to keep them secret! +

+ +

+ Authentication to the API occurs via + + HTTP Basic Auth. Provide your API key as the basic + auth username. You do not need to provide a password. +

+ +

+ All API requests must be made + over HTTPS. + Calls made over plain HTTP will fail. You must + authenticate for all requests. +

+
+
+ curl https://api.stripe.com/api/v1/charges \ + -u vtUQeOtUnYr7PGCLQ96Ul4zqpDUO4sOE: + +

+ JPW: We'll update this after... + curl uses the -u flag to pass basic auth + credentials (adding a colon after your API key will prevent + it from asking you for a password). + + A sample test API key has been provided in all + the examples on the page, so you can test out any example right away. + +

+
+
+ +   +
+
+

Errors

+

JPW:Need to update this + Stripe uses conventional HTTP response codes to indicate + success or failure of an API request. In general, + codes in the 2xx range indicate success, codes in the + 4xx range indicate an error that resulted from the + provided information (e.g. a required parameter was + missing, a charge failed, etc.), and codes in the 5xx + range indicate an error with Stripe's servers. +

+ +

+ Not all errors map cleanly onto HTTP response codes, + however. When a request is valid but does not complete + successfully (e.g. a card is declined), we return a 402 + error code. +

+ + +

+ All errors return JSON with a type (one of card_error, invalid_request_error, + or api_error) and message describing the particular problem. +

+ +
Attributes
+
+
type
+
+
The type of error returned (card_error, invalid_request_error, api_error) + Card errors are the most common type of error you should expect to handle. + They result when the user enters a card that can't be charged for some reason. + Invalid request errors arise when your request has invalid parameters. API + errors cover any other type of problem (e.g. a temporary problem with Stripe's servers) + and should turn up only very infrequently.
+ +
message
+
+
A user-friendly message describing the error
+ +
code
+
optional
+
For card errors, additional information + about the user-friendly message to display for this error (e.g. "Your + card was declined.")
+ +
param
+
optional
+
The parameter the error relates to if the + error is parameter-specific. You can use this to display a message near + the correct form field, for example.
+
+
+
+
HTTP Status Code Summary
+
    +
  • 200 OK - Everything worked as expected.
  • +
  • 400 Bad Request - Often missing a required parameter.
  • +
  • 401 Unauthorized - No valid API key provided.
  • +
  • 402 Request Failed - Parameters were valid but request failed.
  • +
  • 404 Not Found - The requested item doesn't exist.
  • +
  • 500, 502, 503, 504 Server errors - something went wrong on Stripe's end.
  • +
+
+ +
+
Errors
+ Invalid Request Errors + Type: invalid_request_error + + API Errors + Type: api_error + + Card Errors + Type: card_error + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CodeDetails
invalid_numberThe card number is invalid
incorrect_numberThe card number is incorrect
invalid_expiry_monthThe card's expiration month is invalid
invalid_expiry_yearThe card's expiration year is invalid
invalid_cvcThe card's security code is invalid
expired_cardThe card has expired
invalid_amountAn invalid amount was entered
incorrect_cvcThe card's security code is incorrect
card_declinedThe card was declined.
missingThere is no card on a customer that is being charged.
duplicate_transactionA transaction with identical amount and credit card information was submitted very recently.
processing_errorAn error occurred while processing the card.
+
+
+ + + +   +
+
+

Clients

+

Clients ...

+
+
+ +
+
+
Attributes
+
+
+ id +
+
+ string jpw ipsum as an example of showing the (at least important) columns +
+
+ amount +
+
blah +
+
blah
+
+ card +
+
+
+
+ +   +
+
+

List Clients

+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/clients +

+
+
+ GET https://thedomainname/api/v1/clients +{ + "clients": [ + { + "organisationId": 1, + "organisationName": "Demo MFI", + "officeId": 2, + "officeName": "sub branch 1", + "id": 14, + "firstname": "Patrick", + "lastname": "Asare-Frimpong", + "displayName": "Patrick Asare-Frimpong", + "externalId": null, + "joinedDate": "2012-04-18", + "allowedOffices": [], + "maxJoinedOnOffsetFromToday": -34 + }, + ... + ... + { + "organisationId": 1, + "organisationName": "Demo MFI", + "officeId": 1, + "officeName": "Demo MFI Head Office", + "id": 17, + "firstname": "Fred", + "lastname": "Ziffle", + "displayName": "Fred Ziffle", + "externalId": null, + "joinedDate": "2012-04-21", + "allowedOffices": [], + "maxJoinedOnOffsetFromToday": -31 + } + ] +} + +
+
+ + +   +
+
+

Retrieve Client Details Template

+

Returns a template that contains the client fields and allowed value lists. This helps build a maintenance User Interface.

+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/clients/template +

+
+
+ GET https://thedomainname/api/v1/clients/template +{ + "organisationId": 1, + "organisationName": null, + "officeId": 1, + "officeName": null, + "id": -1, + "firstname": "", + "lastname": "", + "displayName": "", + "externalId": null, + "joinedDate": "2012-05-22", + "allowedOffices": [ + { + "id": 1, + "name": "Demo MFI Head Office", + "externalId": "1", + "openingDate": "2009-01-01", + "hierarchy": ".", + "parentName": null, + "parentId": 0, + "allowedParents": [] + }, + { + "id": 2, + "name": "sub branch 1", + "externalId": "2", + "openingDate": "2012-01-02", + "hierarchy": ".2.", + "parentName": "Demo MFI Head Office", + "parentId": 1, + "allowedParents": [] + } + ], + "maxJoinedOnOffsetFromToday": 0 +} + +
+
+ + +   +
+
+

Retrieve a Client

+

Returns client fields. It also returns allowed value lists which help build a maintenance User Interface. +

+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/clients/1 +

+
+
+ GET https://thedomainname/api/v1/clients/{clientId} +{ + "organisationId": 1, + "organisationName": "Demo MFI", + "officeId": 1, + "officeName": "Demo MFI Head Office", + "id": 1, + "firstname": "Patrick", + "lastname": "O'Meara", + "displayName": "Patrick O'Meara", + "externalId": null, + "joinedDate": "2009-01-04", + "allowedOffices": [], + "maxJoinedOnOffsetFromToday": -1234 +} + +
+
+ +  +
+
+

Create a Client

+
+
+ POST https://thedomainname/api/v1/clients +https://localhost:8443/mifosng-provider/api/v1/clients +Content-Type: application/json +Request Body: +{ + "officeId": 1, + "firstname": "Firstname", + "lastname": "Surname", + "externalId": null, + "dateFormat": "dd MMMM yyyy", + "joiningDateFormatted": "04 March 2009" +} + +{ "entityId": 2} +
+
+ +  +
+
+

Update a Client

+
+
+ PUT https://thedomainname/api/v1/clients/1 +PUT https://localhost:8443/mifosng-provider/api/v1/clients/1 +Content-Type: application/json +Request Body: +{ + "officeId": 1, + "firstname": "Firstname", + "lastname": "Surname", + "externalId": null, + "dateFormat": "dd MMMM yyyy", + "joiningDateFormatted": "04 March 2009" +} + +{ "entityId": 2} +
+
+ +  +
+
+

Retrieve a Client's Loan Account Summary

+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/clients/1/loans +

+
+
+ GET https://thedomainname/api/v1/clients/{clientId}/loans +{ + "pendingApprovalLoans": [], + "awaitingDisbursalLoans": [ + { + "id": 17, + "externalId": null, + "loanProductId": 1, + "loanProductName": "Agricultural Loan", + "loanStatusId": 200, + "pendingApproval": false, + "waitingForDisbursal": true, + "open": false, + "closed": false, + "lifeCycleStatusText": "Approved", + "lifeCycleStatusDate": null + } + ], + "openLoans": [], + "closedLoans": [ + { + "id": 1, + "externalId": null, + "loanProductId": 1, + "loanProductName": "Agricultural Loan", + "loanStatusId": 600, + "pendingApproval": false, + "waitingForDisbursal": false, + "open": false, + "closed": true, + "lifeCycleStatusText": "Closed", + "lifeCycleStatusDate": null + } + ], + "anyLoanCount": 2, + "pendingApprovalLoanCount": 0, + "awaitingDisbursalLoanCount": 1, + "activeLoanCount": 0, + "closedLoanCount": 1 +} + +
+
+ + +  +
+
+

Retrieve a Client's Notes

+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/clients/2/notes +

+
+
+ GET https://thedomainname/api/v1/clients/{clientId}/notes +{ + "notes": [ + { + "id": 20, + "clientId": 2, + "loanId": 0, + "loanTransactionId": 0, + "noteTypeId": 100, + "note": "This is an extra note!", + "createdById": 2, + "createdByUsername": "super1", + "createdOn": "2012-04-22T13:50:25.000+01:00", + "updatedById": 2, + "updatedByUsername": "super1", + "updatedOn": "2012-04-22T13:50:25.000+01:00" + }, + { + "id": 16, + "clientId": 2, + "loanId": 0, + "loanTransactionId": 0, + "noteTypeId": 100, + "note": "loan only 1/2 amount expected\r\nyes", + "createdById": 2, + "createdByUsername": "super1", + "createdOn": "2012-04-18T15:15:04.000+01:00", + "updatedById": 2, + "updatedByUsername": "super1", + "updatedOn": "2012-04-23T09:38:13.000+01:00" + } + ] +} + +
+
+ +  +
+
+

Add a Client Note

+
+
+ POST https://thedomainname/api/v1/clients/{clientId}/notes + POST https://localhost:8443/mifosng-provider/api/v1/clients/1/notes +Content-Type: application/json +Request Body: +{ +"note": "a note about the client" +} + +{ "entityId": 40} +
+
+ +  +
+
+

Retrieve a Client Note

+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/clients/1/notes/40 +

+
+
+ GET https://thedomainname/api/v1/clients/{clientId}/notes/{noteId} + { + "id": 40, + "clientId": 2, + "loanId": 0, + "loanTransactionId": 0, + "noteTypeId": 100, + "note": "a note about the client", + "createdById": 1, + "createdByUsername": "mifos", + "createdOn": "2012-05-22T21:40:05.000+01:00", + "updatedById": 1, + "updatedByUsername": "mifos", + "updatedOn": "2012-05-22T21:40:05.000+01:00" +} + +
+
+ +  +
+
+

Update a Client Note

+
+
+ PUT https://thedomainname/api/v1/clients/{clientId}/notes/{noteId} +PUT https://localhost:8443/mifosng-provider/api/v1/clients/1/notes/40 +Content-Type: application/json +Request Body: +{ +"note": "an updated note about the client" +} + + {"entityId": 40} +
+
+ + + +   +
+
+

Loans

+

Loan stuff. +

+
+
+ +
+
+
Attributes
+
+
+ id +
+
+ string jpw ipsum as an example of showing the (at least important) columns +
+
+ amount +
+
blah +
+
blah
+
+ card +
+
+
+
+ +  +
+
+

Retrieve Loan Details Template

+

Returns a template that contains client and loan product fields and allowed value lists. This helps build a maintenance User Interface. +

+
Arguments
+
+
clientId
+
Integer
+
The 'id' of the Client
+
productId
+
Integer
+
The 'id' of the Loan Product
+
+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/loans/template?clientId=1&productId=1 +

+
+
+ GET https://thedomainname/api/v1/loans/template + +{ + "organisationId": 1, + "organisationName": "Demo MFI", + "clientId": 1, + "clientName": "Patrick O'Meara", + "productId": 1, + "productName": "Agricultural Loan", + "allowedProducts": [ + { + "id": 1, + "name": "Agricultural Loan", + "description": "An agricultural loan given to farmers to help buy crop, stock and machinery. With an arrears tolerance setting of 1,000 CFA, loans are not marked as 'in arrears' or 'in bad standing' if the amount outstanding is less than this. Interest rate is described using monthly percentage rate (MPR) even though the loan typically lasts a year and requires one repayment (typically at time when farmer sells crop)", + "principalMoney": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 100000, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "100000 CFA" + }, + "interestRatePerPeriod": 1.75, + "interestRatePeriod": 2, + "annualInterestRate": 21, + "interestMethod": 0, + "interestRateCalculatedInPeriod": 1, + "numberOfInterestFreePeriods": 0, + "repaidEvery": 12, + "repaymentPeriodFrequency": 2, + "numberOfRepayments": 1, + "amortizationMethod": 1, + "inArrearsTolerance": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 1000, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "1000 CFA" + }, + "createdOn": "2012-04-12T00:00:00.000+01:00", + "lastModifedOn": "2012-04-12T00:00:00.000+01:00", + "possibleCurrencies": [], + "possibleAmortizationOptions": [], + "possibleInterestOptions": [], + "possibleInterestRateCalculatedInPeriodOptions": [], + "repaymentFrequencyOptions": [], + "interestFrequencyOptions": [], + "interestRebateAllowed": false, + "flexible": false + }, + { + "id": 2, + "name": "Brunei Loan", + "description": null, + "principalMoney": { + "currencyCode": "BND", + "currencyDigitsAfterDecimal": 2, + "amount": 76000, + "defaultName": "Brunei Dollar", + "nameCode": "currency.BND", + "displaySymbol": "BND", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "76000.00 BND" + }, + "interestRatePerPeriod": 6, + "interestRatePeriod": 2, + "annualInterestRate": 72, + "interestMethod": 0, + "interestRateCalculatedInPeriod": 1, + "numberOfInterestFreePeriods": 0, + "repaidEvery": 1, + "repaymentPeriodFrequency": 1, + "numberOfRepayments": 10, + "amortizationMethod": 1, + "inArrearsTolerance": { + "currencyCode": "BND", + "currencyDigitsAfterDecimal": 2, + "amount": 50, + "defaultName": "Brunei Dollar", + "nameCode": "currency.BND", + "displaySymbol": "BND", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "50.00 BND" + }, + "createdOn": "2012-04-16T00:00:00.000+01:00", + "lastModifedOn": "2012-04-16T00:00:00.000+01:00", + "possibleCurrencies": [], + "possibleAmortizationOptions": [], + "possibleInterestOptions": [], + "possibleInterestRateCalculatedInPeriodOptions": [], + "repaymentFrequencyOptions": [], + "interestFrequencyOptions": [], + "interestRebateAllowed": false, + "flexible": false + }, + { + "id": 3, + "name": "IL Loan", + "description": null, + "principalMoney": { + "currencyCode": "USD", + "currencyDigitsAfterDecimal": 2, + "amount": 5000, + "defaultName": "US Dollar", + "nameCode": "currency.USD", + "displaySymbol": "$", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "5000.00 $" + }, + "interestRatePerPeriod": 15.6, + "interestRatePeriod": 3, + "annualInterestRate": 15.6, + "interestMethod": 1, + "interestRateCalculatedInPeriod": 1, + "numberOfInterestFreePeriods": 0, + "repaidEvery": 1, + "repaymentPeriodFrequency": 2, + "numberOfRepayments": 12, + "amortizationMethod": 1, + "inArrearsTolerance": { + "currencyCode": "USD", + "currencyDigitsAfterDecimal": 2, + "amount": 0, + "defaultName": "US Dollar", + "nameCode": "currency.USD", + "displaySymbol": "$", + "zero": true, + "greaterThanZero": false, + "displaySymbolValue": "0.00 $" + }, + "createdOn": "2012-04-18T00:00:00.000+01:00", + "lastModifedOn": "2012-04-18T00:00:00.000+01:00", + "possibleCurrencies": [], + "possibleAmortizationOptions": [], + "possibleInterestOptions": [], + "possibleInterestRateCalculatedInPeriodOptions": [], + "repaymentFrequencyOptions": [], + "interestFrequencyOptions": [], + "interestRebateAllowed": false, + "flexible": false + }, + { + "id": 4, + "name": "IBL Mabeshte", + "description": "Individual loan", + "principalMoney": { + "currencyCode": "KES", + "currencyDigitsAfterDecimal": 2, + "amount": 5000, + "defaultName": "Kenyan Shilling", + "nameCode": "currency.KES", + "displaySymbol": "KSh", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "5000.00 KSh" + }, + "interestRatePerPeriod": 2, + "interestRatePeriod": 2, + "annualInterestRate": 24, + "interestMethod": 1, + "interestRateCalculatedInPeriod": 1, + "numberOfInterestFreePeriods": 0, + "repaidEvery": 12, + "repaymentPeriodFrequency": 2, + "numberOfRepayments": 12, + "amortizationMethod": 1, + "inArrearsTolerance": { + "currencyCode": "KES", + "currencyDigitsAfterDecimal": 2, + "amount": 0, + "defaultName": "Kenyan Shilling", + "nameCode": "currency.KES", + "displaySymbol": "KSh", + "zero": true, + "greaterThanZero": false, + "displaySymbolValue": "0.00 KSh" + }, + "createdOn": "2012-04-21T00:00:00.000+01:00", + "lastModifedOn": "2012-04-21T00:00:00.000+01:00", + "possibleCurrencies": [], + "possibleAmortizationOptions": [], + "possibleInterestOptions": [], + "possibleInterestRateCalculatedInPeriodOptions": [], + "repaymentFrequencyOptions": [], + "interestFrequencyOptions": [], + "interestRebateAllowed": false, + "flexible": false + }, + { + "id": 5, + "name": "Salary Loan", + "description": "Loan for salaried workers", + "principalMoney": { + "currencyCode": "GHC", + "currencyDigitsAfterDecimal": 2, + "amount": 500, + "defaultName": "Ghana Cedi", + "nameCode": "currency.GHC", + "displaySymbol": "GHC", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "500.00 GHC" + }, + "interestRatePerPeriod": 3.5, + "interestRatePeriod": 2, + "annualInterestRate": 42, + "interestMethod": 1, + "interestRateCalculatedInPeriod": 1, + "numberOfInterestFreePeriods": 0, + "repaidEvery": 1, + "repaymentPeriodFrequency": 2, + "numberOfRepayments": 12, + "amortizationMethod": 1, + "inArrearsTolerance": { + "currencyCode": "GHC", + "currencyDigitsAfterDecimal": 2, + "amount": 0, + "defaultName": "Ghana Cedi", + "nameCode": "currency.GHC", + "displaySymbol": "GHC", + "zero": true, + "greaterThanZero": false, + "displaySymbolValue": "0.00 GHC" + }, + "createdOn": "2012-04-24T00:00:00.000+01:00", + "lastModifedOn": "2012-04-24T00:00:00.000+01:00", + "possibleCurrencies": [], + "possibleAmortizationOptions": [], + "possibleInterestOptions": [], + "possibleInterestRateCalculatedInPeriodOptions": [], + "repaymentFrequencyOptions": [], + "interestFrequencyOptions": [], + "interestRebateAllowed": false, + "flexible": false + }, + { + "id": 6, + "name": "daily-declining-balance", + "description": "an example loan product based on description for daily declining balance as given by Hugo technologies.", + "principalMoney": { + "currencyCode": "USD", + "currencyDigitsAfterDecimal": 2, + "amount": 100000, + "defaultName": "US Dollar", + "nameCode": "currency.USD", + "displaySymbol": "$", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "100000.00 $" + }, + "interestRatePerPeriod": 2, + "interestRatePeriod": 2, + "annualInterestRate": 24, + "interestMethod": 0, + "interestRateCalculatedInPeriod": 0, + "numberOfInterestFreePeriods": 0, + "repaidEvery": 1, + "repaymentPeriodFrequency": 2, + "numberOfRepayments": 12, + "amortizationMethod": 1, + "inArrearsTolerance": { + "currencyCode": "USD", + "currencyDigitsAfterDecimal": 2, + "amount": 0, + "defaultName": "US Dollar", + "nameCode": "currency.USD", + "displaySymbol": "$", + "zero": true, + "greaterThanZero": false, + "displaySymbolValue": "0.00 $" + }, + "createdOn": "2012-05-01T00:00:00.000+01:00", + "lastModifedOn": "2012-05-01T00:00:00.000+01:00", + "possibleCurrencies": [], + "possibleAmortizationOptions": [], + "possibleInterestOptions": [], + "possibleInterestRateCalculatedInPeriodOptions": [], + "repaymentFrequencyOptions": [], + "interestFrequencyOptions": [], + "interestRebateAllowed": false, + "flexible": false + }, + { + "id": 7, + "name": "New kind of Loan", + "description": "A description not exceeding 500 characters.", + "principalMoney": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 100000, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "100000 CFA" + }, + "interestRatePerPeriod": 1.75, + "interestRatePeriod": 2, + "annualInterestRate": 21, + "interestMethod": 0, + "interestRateCalculatedInPeriod": 1, + "numberOfInterestFreePeriods": 0, + "repaidEvery": 1, + "repaymentPeriodFrequency": 2, + "numberOfRepayments": 1, + "amortizationMethod": 1, + "inArrearsTolerance": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 1000, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "1000 CFA" + }, + "createdOn": "2012-05-21T00:00:00.000+01:00", + "lastModifedOn": "2012-05-21T00:00:00.000+01:00", + "possibleCurrencies": [], + "possibleAmortizationOptions": [], + "possibleInterestOptions": [], + "possibleInterestRateCalculatedInPeriodOptions": [], + "repaymentFrequencyOptions": [], + "interestFrequencyOptions": [], + "interestRebateAllowed": false, + "flexible": false + } + ], + "dateFormat": null, + "submittedOnDateFormatted": null, + "submittedOnDate": null, + "submittedOnNote": "", + "expectedDisbursementDateFormatted": null, + "expectedDisbursementDate": "2012-05-22", + "repaymentsStartingFromDateFormatted": null, + "repaymentsStartingFromDate": null, + "interestCalculatedFromDateFormatted": null, + "interestCalculatedFromDate": null, + "repaymentSchedule": null, + "selectedProduct": { + "id": 1, + "name": "Agricultural Loan", + "description": "An agricultural loan given to farmers to help buy crop, stock and machinery. With an arrears tolerance setting of 1,000 CFA, loans are not marked as 'in arrears' or 'in bad standing' if the amount outstanding is less than this. Interest rate is described using monthly percentage rate (MPR) even though the loan typically lasts a year and requires one repayment (typically at time when farmer sells crop)", + "principalMoney": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 100000, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "100000 CFA" + }, + "interestRatePerPeriod": 1.75, + "interestRatePeriod": 2, + "annualInterestRate": 21, + "interestMethod": 0, + "interestRateCalculatedInPeriod": 1, + "numberOfInterestFreePeriods": 0, + "repaidEvery": 12, + "repaymentPeriodFrequency": 2, + "numberOfRepayments": 1, + "amortizationMethod": 1, + "inArrearsTolerance": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 1000, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "1000 CFA" + }, + "createdOn": "2012-04-12T00:00:00.000+01:00", + "lastModifedOn": "2012-04-12T00:00:00.000+01:00", + "possibleCurrencies": [ + { + "code": "GBP", + "name": "Pound Sterling", + "decimalPlaces": 2, + "displaySymbol": null, + "nameCode": "currency.GBP", + "displayLabel": "Pound Sterling [GBP]" + }, + { + "code": "USD", + "name": "US Dollar", + "decimalPlaces": 2, + "displaySymbol": "$", + "nameCode": "currency.USD", + "displayLabel": "US Dollar ($)" + } + ], + "possibleAmortizationOptions": [ + { + "id": 1, + "value": "Equal installments" + }, + { + "id": 0, + "value": "Equal principle payments" + } + ], + "possibleInterestOptions": [ + { + "id": 0, + "value": "Declining Balance" + }, + { + "id": 1, + "value": "Flat" + } + ], + "possibleInterestRateCalculatedInPeriodOptions": [ + { + "id": 0, + "value": "Daily" + }, + { + "id": 1, + "value": "Same as repayment period" + } + ], + "repaymentFrequencyOptions": [ + { + "id": 0, + "value": "Days" + }, + { + "id": 1, + "value": "Weeks" + }, + { + "id": 2, + "value": "Months" + } + ], + "interestFrequencyOptions": [ + { + "id": 2, + "value": "Per month" + }, + { + "id": 3, + "value": "Per year" + } + ], + } +} + +
+
+ +  +
+
+

Retrieve a Loan

+

Returns loan fields. +

+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/loans/1 +

+
+
+ GET https://thedomainname/api/v1/loans/{loanId} + { + "open": false, + "openWithRepaymentMade": false, + "closed": true, + "interestRebateOutstanding": false, + "pendingApproval": false, + "waitingForDisbursal": false, + "lifeCycleStatusText": "Closed", + "lifeCycleStatusDate": "2009-11-13", + "id": 1, + "externalId": null, + "loanProductName": "Agricultural Loan", + "submittedOnDate": "2009-01-05", + "approvedOnDate": "2009-01-08", + "expectedDisbursementDate": "2009-01-15", + "actualDisbursementDate": "2009-01-15", + "undoDisbursalAllowed": false, + "expectedFirstRepaymentOnDate": null, + "interestCalculatedFromDate": null, + "closedOnDate": "2009-11-13", + "expectedMaturityDate": "2009-11-15", + "principal": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 100000, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "100000 CFA" + }, + "interestRatePerYear": 21, + "interestRatePerPeriod": 1.75, + "interestPeriodFrequencyType": 2, + "interestPeriodFrequencyText": "MONTHS", + "interestMethodType": 0, + "interestMethodText": "DECLINING_BALANCE", + "amortizationMethodValue": 1, + "amortizationMethodText": "EQUAL_INSTALLMENTS", + "numberOfRepayments": 1, + "repaymentFrequencyNumber": 10, + "repaymentFrequencyTypeEnumOrdinal": 2, + "repaymentFrequencyTypeText": "MONTHS", + "interestRebateOwed": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 0, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": true, + "greaterThanZero": false, + "displaySymbolValue": "0 CFA" + }, + "loanData": { + "repaymentSchedule": { + "periods": [ + { + "period": 1, + "date": "2009-11-15", + "disbursed": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 0, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": true, + "greaterThanZero": false, + "displaySymbolValue": "0 CFA" + }, + "principal": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 100000, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "100000 CFA" + }, + "principalPaid": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 100000, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "100000 CFA" + }, + "principalOutstanding": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 0, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": true, + "greaterThanZero": false, + "displaySymbolValue": "0 CFA" + }, + "interest": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 17500, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "17500 CFA" + }, + "interestPaid": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 17500, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "17500 CFA" + }, + "interestOutstanding": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 0, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": true, + "greaterThanZero": false, + "displaySymbolValue": "0 CFA" + }, + "total": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 117500, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "117500 CFA" + }, + "totalPaid": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 117500, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "117500 CFA" + }, + "totalOutstanding": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 0, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": true, + "greaterThanZero": false, + "displaySymbolValue": "0 CFA" + }, + "totalWaived": null, + "totalArrears": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 0, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": true, + "greaterThanZero": false, + "displaySymbolValue": "0 CFA" + }, + "arrearsFrom": null, + "arrearsTo": null, + "paidInFullOn": "2009-11-13", + "lastAffectingPaymentOn": "2009-11-13", + "fullyPaid": true + } + ] + }, + "summary": { + "originalPrincipal": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 100000, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "100000 CFA" + }, + "originalInterest": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 17500, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "17500 CFA" + }, + "originalTotal": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 117500, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "117500 CFA" + }, + "principalPaid": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 100000, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "100000 CFA" + }, + "principalOutstanding": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 0, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": true, + "greaterThanZero": false, + "displaySymbolValue": "0 CFA" + }, + "interestPaid": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 17500, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "17500 CFA" + }, + "interestOutstanding": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 0, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": true, + "greaterThanZero": false, + "displaySymbolValue": "0 CFA" + }, + "totalPaid": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 117500, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "117500 CFA" + }, + "totalOutstanding": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 0, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": true, + "greaterThanZero": false, + "displaySymbolValue": "0 CFA" + }, + "totalInArrears": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 0, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": true, + "greaterThanZero": false, + "displaySymbolValue": "0 CFA" + }, + "totalWaived": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 0, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": true, + "greaterThanZero": false, + "displaySymbolValue": "0 CFA" + } + }, + "loanRepayments": [ + { + "id": 2, + "date": "2009-11-13", + "principal": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 100000, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "100000 CFA" + }, + "interest": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 17500, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "17500 CFA" + }, + "total": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 117500, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "117500 CFA" + }, + "totalWaived": null, + "overpaid": null, + "transactionOffsetFromToday": -921 + } + ] + }, + "arrearsTolerance": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 1000, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "1000 CFA" + }, + "waiveAllowed": false, + "makeRepaymentAllowed": false, + "rejectAllowed": false, + "withdrawnByApplicantAllowed": false, + "undoApprovalAllowed": false, + "disbursalAllowed": false, + "anyActionOnLoanAllowed": false, + "maxSubmittedOnOffsetFromToday": -1233, + "maxApprovedOnOffsetFromToday": -1230, + "maxDisbursedOnOffsetFromToday": -1223, + "actualLoanTermInDays": 302, + "actualLoanTermInMonths": 9, + "loanTermInDays": 304, + "loanTermInMonths": 10 +} + +
+
+ +  +
+
+

Create a New Loan/Submit a Loan Application

+
Arguments
+
+
command
+
String Optional, case-insensitive
+
The default action is to Submit a New Loan Application. If the value is 'calculateLoanSchedule' then a new loan entry is created without entering the loan life cycle.
+
+
+
+ POST https://thedomainname/api/v1/loans + https://localhost:8443/mifosng-provider/api/v1/loans + + + Content-Type: application/json + Request Body: + new json here + + {"entityId": 2} + +
+
+ +   +
+
+

Approve, Disburse, Reject a Loan or Withdraw a Loan Application

+
Arguments
+
+
command
+
String Mandatory? what happens if command wrong, , case-insensitive
+
'approve' : Approve Loan
+
'disburse' : Disburse Loan
+
'reject' : Reject Loan
+
'withdrewbyclient' : Client Withdrew Loan Application
+
+
+
+ POST https://thedomainname/api/v1/loans/{loanId} + https://localhost:8443/mifosng-provider/api/v1/loans/1?command=approve + + + Content-Type: application/json + Request Body: + new json here + + { + "entityId": 2 +} + +
+
+   +
+
+

Delete a Loan

+
+
+ DELETE https://thedomainname/api/v1/loans/{loanId} + https://localhost:8443/mifosng-provider/api/v1/loans/1 + + + Content-Type: application/json + Request Body: + new json here + + { + "entityId": 2 +} + +
+
+   +
+
+

Undo Loan Approval/ Undo Loan Disbursal

+
+
command
+
String Mandatory? what happens if command wrong, , case-insensitive
+
'undoapproval' : Undo Loan Approval
+
'undodisbursal' : Undo Loan Disbursal
+
+
+
+ POST https://thedomainname/api/v1/loans/{loanId}/undo + https://localhost:8443/mifosng-provider/api/v1/loans/1/undo + + + Content-Type: application/json + Request Body: + new json here + + { + "entityId": 2 +} + +
+
+ + +   +
+
+

Retrieve Loan Repayment/Loan Waiver Template

+

Returns a template to help with entering loan repayments and waivers. +

+
Arguments
+
+
type
+
String Optional, case-insensitive
+
The default action is to return details for Repayment of a loan. If the value is 'waiver' then details relevant to Waiving a loan amount are returned.
+
+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/loans/1/transactions/template?type=waiver" +

+
+
+ GET https://thedomainname/api/v1/loans/{loanId}/transactions/template" + to be done + +
+
+   +
+
+

Make a Repayment / Loan Waiver

+
+
type
+
String Optional, case-insensitive
+
The default action is to make a Loan Repayment. If the value is 'waiver' then a Loan Waiver is made.
+
+
+
+ POST https://thedomainname/api/v1/loans/{loanId}/transactions + https://localhost:8443/mifosng-provider/api/v1/loans/1/transactions + + + Content-Type: application/json + Request Body: + new json here + + { + "entityId": 2 +} + +
+
+ +   +
+
+

Retrieve a Repayment or Waiver Details

+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/loans/1/transactions/1 +

+
+
+ GET https://thedomainname/api/v1/loans/{loanId}/transactions/{transactionId} + + +
+
+   +
+
+

Adjust a Repayment or Waiver

+
+
+ PUT https://thedomainname/api/v1/loans/{loanId}/transactions/{transactionId} + https://localhost:8443/mifosng-provider/api/v1/loans/1/transactions/1 + + + Content-Type: application/json + Request Body: + new json here + + { + "entityId": 2 +} + +
+
+ + + +   +
+
+

Offices

+

Offices are used to model an MFIs structure. A hierarchial representation of offices is supported. + There will always be at least one office (which represents the MFI or an MFIs head office). + All subsequent offices added must have a parent office.

+
+
+ +   +
+ +
+ GET https://thedomainname/api/v1/offices +[ { + "id" : 1, + "name" : "Demo MFI Head Office", + "externalId" : "1", + "openingDate" : [ 2009, 1, 1 ], + "hierarchy" : ".", + "parentName" : null, + "parentId" : null +}, { + "id" : 2, + "name" : "B1", + "externalId" : null, + "openingDate" : [ 2012, 4, 1 ], + "hierarchy" : ".2.", + "parentName" : "Demo MFI Head Office", + "parentId" : 1 +}, { + "id" : 3, + "name" : "B2", + "externalId" : null, + "openingDate" : [ 2012, 4, 4 ], + "hierarchy" : ".3.", + "parentName" : "Demo MFI Head Office", + "parentId" : 1 +} ] + +
+
+ +   +
+
+

Retrieve Office Details Template

+

Returns a template that contains the office fields and allowed value lists. This is a convienence when building user intereface screens for client applications. +

+

Example Request: + + https://localhost:8443/mifosng-provider/api/v1/offices/template + +

+
+
+ GET https://thedomainname/api/v1/offices/template + +{ + "id": null, + "name": null, + "externalId": null, + "openingDate": "2012-05-21", + "hierarchy": null, + "parentName": null, + "parentId": null, + "allowedParents": [ + { + "id": 1, + "name": "Demo MFI Head Office", + "externalId": "1", + "openingDate": "2009-01-01", + "hierarchy": ".", + "parentName": null, + "parentId": 0, + "allowedParents": [] + }, + { + "id": 2, + "name": "sub branch 1", + "externalId": "2", + "openingDate": "2012-01-02", + "hierarchy": ".2.", + "parentName": "Demo MFI Head Office", + "parentId": 1, + "allowedParents": [] + }, + { + "id": 3, + "name": "sub branch 2", + "externalId": "3", + "openingDate": "2012-03-01", + "hierarchy": ".3.", + "parentName": "Demo MFI Head Office", + "parentId": 1, + "allowedParents": [] + }, + { + "id": 4, + "name": "sub branch 3", + "externalId": null, + "openingDate": "2012-04-17", + "hierarchy": ".4.", + "parentName": "Demo MFI Head Office", + "parentId": 1, + "allowedParents": [] + } + ] +} + +
+
+ +   +
+
+

Retrieve Office

+

Returns an office details if it exists.

+

Example Request: + + https://localhost:8443/mifosng-provider/api/v1/offices/1 + +

+
+
+ GET https://thedomainname/api/v1/offices/1 + +{ + "id": 1, + "name": "Demo MFI Head Office", + "externalId": "1", + "openingDate": "2009-01-01", + "hierarchy": ".", + "parentName": null, + "parentId": 0, + "allowedParents": [] +} + +
+
+ +   +
+
+

Create Office

+

Create an office.

+

Example Request: + + https://localhost:8443/mifosng-provider/api/v1/offices + +

+
+
+ POST https://thedomainname/api/v1/offices +POST https://localhost:8443/mifosng-provider/api/v1/offices +Content-Type: application/json +Request Body: +{ + "name": "Demo branch 9", + "externalId": "9", + "dateFormat": "dd MMMM yyyy", + "openingDateFormatted": "01 September 2011", + "parentId": 1 +} + + +{ + "entityId": 9 +} + +
+
+ +   +
+
+

Update Office

+

Update office details.

+

Example Request: + + https://localhost:8443/mifosng-provider/api/v1/offices/1 + +

+
+
+ PUT https://thedomainname/api/v1/offices/1 +PUT https://localhost:8443/mifosng-provider/api/v1/offices/1 +Content-Type: application/json +Request Body: +{ + "name": "Demo branch 9 changed", + "externalId": "11", + "dateFormat": "dd MMMM yyyy", + "openingDateFormatted": "05 September 2011", + "parentId": 1 +} + + +{ + "entityId": 9 +} + +
+
+ + + + + +   +
+
+

Loan Products

+

A Loan product is a template that is used when creating a loan. Much of the template definition can be changed during loan creation. +

+
+
+ +   +
+
+

List Loan Products

+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/loanproducts +

+
+
+ GET https://thedomainname/api/v1/loanproducts + { + "products": [ + { + "id": 1, + "name": "Agricultural Loan", + "description": "An agricultural loan given to farmers to help buy crop, stock and machinery. With an arrears tolerance setting of 1,000 CFA, loans are not marked as 'in arrears' or 'in bad standing' if the amount outstanding is less than this. Interest rate is described using monthly percentage rate (MPR) even though the loan typically lasts a year and requires one repayment (typically at time when farmer sells crop)", + "principalMoney": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 100000, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "100000 CFA" + }, + "interestRatePerPeriod": 1.75, + "interestRatePeriod": 2, + "annualInterestRate": 21, + "interestMethod": 0, + "interestRateCalculatedInPeriod": 0, + "numberOfInterestFreePeriods": 0, + "repaidEvery": 12, + "repaymentPeriodFrequency": 2, + "numberOfRepayments": 1, + "amortizationMethod": 1, + "inArrearsTolerance": { + "currencyCode": "XOF", + "currencyDigitsAfterDecimal": 0, + "amount": 1000, + "defaultName": "CFA Franc BCEAO", + "nameCode": "currency.XOF", + "displaySymbol": "CFA", + "zero": false, + "greaterThanZero": true, + "displaySymbolValue": "1000 CFA" + }, + "createdOn": "2012-04-12T00:00:00.000+10:00", + "lastModifedOn": "2012-04-12T00:00:00.000+10:00", + "possibleCurrencies": [], + "possibleAmortizationOptions": [], + "possibleInterestOptions": [], + "possibleInterestRateCalculatedInPeriodOptions": [], + "repaymentFrequencyOptions": [], + "interestFrequencyOptions": [], + "interestRebateAllowed": false, + "flexible": false + } + ] + } + +
+
+ +   +
+
+

Retrieve Loan Product Details Template

+

Returns a template that contains the loan product fields and allowed value lists. This helps build a maintenance User Interface. +

+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/loanproducts/template +

+
+
+ GET https://thedomainname/api/v1/loanproducts/template +{ +"id": null, +"name": null, +"description": null, +"principalMoney": { +"currencyCode": "XOF", +"currencyDigitsAfterDecimal": 0, +"amount": 0, +"defaultName": "CFA Franc BCEAO", +"nameCode": "currency.XOF", +"displaySymbol": "CFA", +"zero": true, +"greaterThanZero": false, +"displaySymbolValue": "0 CFA" +}, +"interestRatePerPeriod": 0, +"interestRatePeriod": 2, +"annualInterestRate": 0, +"interestMethod": 0, +"interestRateCalculatedInPeriod": 1, +"numberOfInterestFreePeriods": 0, +"repaidEvery": 1, +"repaymentPeriodFrequency": 2, +"numberOfRepayments": 0, +"amortizationMethod": 1, +"inArrearsTolerance": { +"currencyCode": "XOF", +"currencyDigitsAfterDecimal": 0, +"amount": 0, +"defaultName": "CFA Franc BCEAO", +"nameCode": "currency.XOF", +"displaySymbol": "CFA", +"zero": true, +"greaterThanZero": false, +"displaySymbolValue": "0 CFA" +}, +"createdOn": null, +"lastModifedOn": null, +"possibleCurrencies": [ +{ +"code": "XOF", +"name": "CFA Franc BCEAO", +"decimalPlaces": 0, +"displaySymbol": "CFA", +"nameCode": "currency.XOF", +"displayLabel": "CFA Franc BCEAO (CFA)" +}, +{ +"code": "ETB", +"name": "Ethiopian Birr", +"decimalPlaces": 2, +"displaySymbol": null, +"nameCode": "currency.ETB", +"displayLabel": "Ethiopian Birr [ETB]" +} +], +"possibleAmortizationOptions": [ +{ +"id": 1, +"value": "Equal installments" +}, +{ +"id": 0, +"value": "Equal principle payments" +} +], +"possibleInterestOptions": [ +{ +"id": 0, +"value": "Declining Balance" +}, +{ +"id": 1, +"value": "Flat" +} +], +"possibleInterestRateCalculatedInPeriodOptions": [ +{ +"id": 0, +"value": "Daily" +}, +{ +"id": 1, +"value": "Same as repayment period" +} +], +"repaymentFrequencyOptions": [ +{ +"id": 0, +"value": "Days" +}, +{ +"id": 1, +"value": "Weeks" +}, +{ +"id": 2, +"value": "Months" +} +], +"interestFrequencyOptions": [ +{ +"id": 2, +"value": "Per month" +}, +{ +"id": 3, +"value": "Per year" +} +], +"interestRebateAllowed": false, +"flexible": false +} + +
+
+ +   +
+
+

Retrieve a Loan Product

+

Returns loan product fields. It also returns allowed value lists which help build a maintenance User Interface. + JPW - includes validation values (might be ok or option), enum? +

+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/loanproducts/1 +

+
+
+ GET https://thedomainname/api/v1/loanproducts/{productId} +{ +"id": 1, +"name": "Agricultural Loan", +"description": "An agricultural loan given to farmers to help buy crop, stock and machinery. With an arrears tolerance setting of 1,000 CFA, loans are not marked as 'in arrears' or 'in bad standing' if the amount outstanding is less than this. Interest rate is described using monthly percentage rate (MPR) even though the loan typically lasts a year and requires one repayment (typically at time when farmer sells crop)", +"principalMoney": { +"currencyCode": "XOF", +"currencyDigitsAfterDecimal": 0, +"amount": 100000, +"defaultName": "CFA Franc BCEAO", +"nameCode": "currency.XOF", +"displaySymbol": "CFA", +"zero": false, +"greaterThanZero": true, +"displaySymbolValue": "100000 CFA" +}, +"interestRatePerPeriod": 1.75, +"interestRatePeriod": 2, +"annualInterestRate": 21, +"interestMethod": 0, +"interestRateCalculatedInPeriod": 0, +"numberOfInterestFreePeriods": 0, +"repaidEvery": 12, +"repaymentPeriodFrequency": 2, +"numberOfRepayments": 1, +"amortizationMethod": 1, +"inArrearsTolerance": { +"currencyCode": "XOF", +"currencyDigitsAfterDecimal": 0, +"amount": 1000, +"defaultName": "CFA Franc BCEAO", +"nameCode": "currency.XOF", +"displaySymbol": "CFA", +"zero": false, +"greaterThanZero": true, +"displaySymbolValue": "1000 CFA" +}, +"createdOn": "2012-04-12T00:00:00.000+10:00", +"lastModifedOn": "2012-04-12T00:00:00.000+10:00", +"possibleCurrencies": [ +{ +"code": "XOF", +"name": "CFA Franc BCEAO", +"decimalPlaces": 0, +"displaySymbol": "CFA", +"nameCode": "currency.XOF", +"displayLabel": "CFA Franc BCEAO (CFA)" +}, +{ +"code": "ETB", +"name": "Ethiopian Birr", +"decimalPlaces": 2, +"displaySymbol": null, +"nameCode": "currency.ETB", +"displayLabel": "Ethiopian Birr [ETB]" +} +], +"possibleAmortizationOptions": [ +{ +"id": 1, +"value": "Equal installments" +}, +{ +"id": 0, +"value": "Equal principle payments" +} +], +"possibleInterestOptions": [ +{ +"id": 0, +"value": "Declining Balance" +}, +{ +"id": 1, +"value": "Flat" +} +], +"possibleInterestRateCalculatedInPeriodOptions": [ +{ +"id": 0, +"value": "Daily" +}, +{ +"id": 1, +"value": "Same as repayment period" +} +], +"repaymentFrequencyOptions": [ +{ +"id": 0, +"value": "Days" +}, +{ +"id": 1, +"value": "Weeks" +}, +{ +"id": 2, +"value": "Months" +} +], +"interestFrequencyOptions": [ +{ +"id": 2, +"value": "Per month" +}, +{ +"id": 3, +"value": "Per year" +} +], +"interestRebateAllowed": false, +"flexible": false +} + +
+
+ +   +
+
+

Create a Loan Product

+
+
+ POST https://thedomainname/api/v1/loanproducts +https://localhost:8443/mifosng-provider/api/v1/loanproducts +Content-Type: application/json +Request Body: +{ + "name": "New kind of Loan", + "description": "A description not exceeding 500 characters.", + "currencyCode": "XOF", + "digitsAfterDecimal": 0, + "principal": 100000, + "inArrearsToleranceAmount": 1000, + "numberOfRepayments": 1, + "repaymentEvery": 1, + "repaymentFrequency": 2, + "amortizationMethod": 1, + "interestRatePerPeriod": 1.75, + "interestRateFrequencyMethod": 2, + "interestCalculationPeriodMethod": 1, + "interestMethod": 0 +} + +
+
+ +   +
+
+

Update a Loan Product

+
+
+ POST https://thedomainname/api/v1/loanproducts/{loanId} +https://localhost:8443/mifosng-provider/api/v1/loanproducts/1 +Content-Type: application/json +Request Body: +{ + "name": "New kind of Loan updated", + "description": "An updated description not exceeding 500 characters.", + "currencyCode": "XOF", + "digitsAfterDecimal": 0, + "principal": 100000, + "inArrearsToleranceAmount": 1000, + "numberOfRepayments": 1, + "repaymentEvery": 1, + "repaymentFrequency": 2, + "amortizationMethod": 1, + "interestRatePerPeriod": 1.75, + "interestRateFrequencyMethod": 2, + "interestCalculationPeriodMethod": 1, + "interestMethod": 0 +} + +
+
+ + + +   +
+
+

Configuration

+

Application related configuration like being able to select what currencies are permitted for use within the MFI.

+
+
+ +   +
+
+

Retrieve Currency Configuration

+

Returns the list of selectedCurrencies that are allowed within the MFI and the list of currencies that are currently not selected.

+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/configurations/currency +

+
+
+ GET https://thedomainname/api/v1/configurations/currency + +{ + "selectedCurrencyOptions": [ + { + "code": "KES", + "name": "Kenyan Shilling", + "decimalPlaces": 2, + "displaySymbol": "KSh", + "nameCode": "currency.KES", + "displayLabel": "Kenyan Shilling (KSh)" + }, + { + "code": "BND", + "name": "Brunei Dollar", + "decimalPlaces": 2, + "displaySymbol": "BND", + "nameCode": "currency.BND", + "displayLabel": "Brunei Dollar (BND)" + }, + { + "code": "LBP", + "name": "Lebanese Pound", + "decimalPlaces": 2, + "displaySymbol": "L£", + "nameCode": "currency.LBP", + "displayLabel": "Lebanese Pound (L£)" + }, + { + "code": "GHC", + "name": "Ghana Cedi", + "decimalPlaces": 2, + "displaySymbol": "GHC", + "nameCode": "currency.GHC", + "displayLabel": "Ghana Cedi (GHC)" + }, + { + "code": "USD", + "name": "US Dollar", + "decimalPlaces": 2, + "displaySymbol": "$", + "nameCode": "currency.USD", + "displayLabel": "US Dollar ($)" + }, + { + "code": "XOF", + "name": "CFA Franc BCEAO", + "decimalPlaces": 0, + "displaySymbol": "CFA", + "nameCode": "currency.XOF", + "displayLabel": "CFA Franc BCEAO (CFA)" + } + ], + "currencyOptions": [ + { + "code": "AED", + "name": "UAE Dirham", + "decimalPlaces": 2, + "displaySymbol": null, + "nameCode": "currency.AED", + "displayLabel": "UAE Dirham [AED]" + }, + { + "code": "AFN", + "name": "Afghanistan Afghani", + "decimalPlaces": 2, + "displaySymbol": null, + "nameCode": "currency.AFN", + "displayLabel": "Afghanistan Afghani [AFN]" + }, + ... + ... + { + "code": "ZMK", + "name": "Zambian Kwacha", + "decimalPlaces": 2, + "displaySymbol": null, + "nameCode": "currency.ZMK", + "displayLabel": "Zambian Kwacha [ZMK]" + }, + { + "code": "ZWD", + "name": "Zimbabwe Dollar", + "decimalPlaces": 2, + "displaySymbol": null, + "nameCode": "currency.ZWD", + "displayLabel": "Zimbabwe Dollar [ZWD]" + } + ] +} + +
+
+ +   +
+
+

Update Currency Configuration

+

Update list of selectedCurrencies that are allowed within the MFI and the list of currencies that are currently not selected.

+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/configurations/currency +

+
+
+ PUT https://thedomainname/api/v1/configurations/currency + +{ +"selectedItems": ["USD", "GBP"] +} + +
+
+ + +   +
+
+

Additional Fields

+

+ In Mifos X, any number of "Sets" of "Additional Fields" can be configured for a Mifos X database table ("Type"). +

+

For example, portfolio_client is the database table that holds client data. Typically, MFI's want more client related fields than is provided by Mifos X out-of-the-box. + The MFI might add a Set called "Additional Info" containing some fields that are typically input when creating a client. They might then add another Set called "Highly Improbable Info" containing some fields that are only input in exceptional circumstances. +

+

+ The additional fields resource allows you to retrieve and update any Additional Fields data that has been configured in Mifos X. +

+

+ The Mifos X Individual Lending client application uses a JQuery plugin called stretchydata which, itself, uses this additional fields resource to provide a pretty flexible additional fields User Interface (UI). Put a link to an example here. +

+
+
+ + +   +
+
+

List Additional Fields Sets

+

+ Lists the Sets of additional fields have been defined in Mifos X. +

+ +
Arguments
+
+
type
+
optional
+
The Additional Fields Type (Mifos X database table) to restrict the output to
+
+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/additionalfields?type=portfolio_client +

+
+
+ GET https://thedomainname/api/v1/additionalfields + { + "additionalFieldsSets": [ + { + "id": 1, + "name": "Additional Information", + "type": "portfolio_client" + }, + { + "id": 9, + "name": "Highly Improbable Info", + "type": "portfolio_client" + } + ] + } + +
+
+ + +   +
+
+

Retrieve Additional Fields

+

+ Returns the Set of Additional Fields data for the ID provided. The ID is the id field of the Type table e.g. portfolio_client might have an id value of 4. The output is a JSON formatted "Generic Resultset". The Generic Resultset contains Column Heading as well as Data information. The Column Heading information may include allowed values (columnValues array). +

+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/additionalfields/portfolio_client/Additional Information/2 +

+
+
+ GET https://thedomainname/api/v1/additionalfields/{type}/{set}/{id} + { + "columnHeaders": [ + { + "columnName": "Ethnic Group", + "columnType": "String", + "columnLength": 50, + "columnDisplayType": "List", + "columnValues": [ + "Bedouin", + "Berber", + "Italian", + "Miknasa", + "Mrazig", + "Other", + "Unknown" + ] + }, + { + "columnName": "Ethnic Group Other", + "columnType": "String", + "columnLength": 50, + "columnDisplayType": null, + "columnValues": [] + }, + { + "columnName": "Household Location", + "columnType": "String", + "columnLength": 50, + "columnDisplayType": "List", + "columnValues": [ + "East Sikkim", + "North Sikkim", + "South Sikkim", + "West Sikkim", + "Other" + ] + }, + { + "columnName": "Household Location Other", + "columnType": "String", + "columnLength": 50, + "columnDisplayType": null, + "columnValues": [] + }, + { + "columnName": "Religion", + "columnType": "String", + "columnLength": 50, + "columnDisplayType": "List", + "columnValues": [ + "Protestant", + "Catholic", + "Muslim", + "Animist", + "Atheist", + "Other", + "Unknown" + ] + }, + { + "columnName": "Religion Other", + "columnType": "String", + "columnLength": 50, + "columnDisplayType": null, + "columnValues": [] + }, + { + "columnName": "Knowledge of Person", + "columnType": "String", + "columnLength": 50, + "columnDisplayType": "List", + "columnValues": [ + "Staff member", + "Spouse of staff member", + "Son/daughter of staff member", + "Friend of staff member", + "Not known by any staff member", + "Other" + ] + }, + { + "columnName": "Gender", + "columnType": "String", + "columnLength": 10, + "columnDisplayType": "List", + "columnValues": [ + "Female", + "Male" + ] + }, + { + "columnName": "Whois", + "columnType": "Text", + "columnLength": 0, + "columnDisplayType": null, + "columnValues": [] + } + ], + "data": [ + { + "row": [ + "Berber", + null, + "East Sikkim", + null, + "Animist", + "jjjjjjj", + "Son/daughter of staff member", + "Female", + "its\r\nme of\r\ncourse\r\nyes\r\nend and the end of it all" + ] + } + ] + } + +
+
+   +
+
+

Update Additional Fields

+

+ Updates (or creates) the Set of Additional Fields data for the ID provided. The ID is the id field of the Type table e.g. portfolio_client might have an id value of 4. +

+
+
+ POST https://thedomainname/api/v1/additionalfields/{type}/{set}/{id} + https://localhost:8443/mifosng-provider/api/v1/additionalfields/portfolio_client/Additional Information/2 + + + Content-Type: application/json + Request Body: + { + "Ethnic_Group":"Berber", + "Ethnic_Group_Other":"", + "Household_Location":"East Sikkim", + "Household_Location_Other":"", + "Religion":"Animist", + "Religion_Other":"jjjjjjj", + "Knowledge_of_Person":"Son/daughter of staff member", + "Gender":"Female", + "Whois":"its\r\nme of\r\ncourse\r\nyes\r\nend and the end of it all" + } + + { + "entityId": 2 + } + +
+
+ + + + + + + +   +
+
+

Reports

+

+ The reports resource allows you to run and receive output from pre-defined Mifos X reports. The default output is a JSON formatted "Generic Resultset". The Generic Resultset contains Column Heading as well as Data information. However, you can export to CSV format by simply adding "&exportCSV=true" to the end of your URI. +

+

+ If Pentaho reports have been pre-defined, they can also be run through this resource. Pentaho reports can return HTML, PDF or CSV formats. +

+ +

Add examples showing links to client listing report producing json, then csv, then a pentaho report producing html, pdf, csv

+

+ The Mifos X Individual Lending client application uses a JQuery plugin called stretchyreporting which, itself, uses this reports resource to provide a pretty flexible reporting User Interface (UI). Put a link to an example here. +

+
+
+ + + +   +
+
+

List Reports

+

+ Lists all reports and their parameters. If a report has more than one parameter it will be listed the same number of times as it has parameters. +

+ +
Arguments
+
+
exportCSV
+
optional, The only valid value is 'true'. If any other value is provided the argument will be ignored
+
Output will be delivered as a CSV file instead of JSON.
+
+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/reports +

+
+
+ GET https://thedomainname/api/v1/reports + { + "columnHeaders": [ + { + "columnName": "report_id", + "columnType": "INT", + "columnLength": null, + "columnDisplayType": null, + "columnValues": [] + }, + { + "columnName": "report_name", + "columnType": "VARCHAR", + "columnLength": null, + "columnDisplayType": null, + "columnValues": [] + }, + { + "columnName": "report_type", + "columnType": "VARCHAR", + "columnLength": null, + "columnDisplayType": null, + "columnValues": [] + }, + ... more "columnHeaders" entries + ], + "data": [ + { + "row": [ + "29", + "Client Listing", + "Table", + null, + null, + "5", + null, + "selectOfficeId" + ] + }, + { + "row": [ + "42", + "Client Listing - Additional and Unlikely", + "Table", + null, + null, + "5", + null, + "selectOfficeId" + ] + }, + { + "row": [ + "30", + "Client Loans Listing", + "Table", + null, + null, + "5", + null, + "selectOfficeId" + ] + }, + ... more "Row" entries + ] + } +
+
+ + + +   +
+
+

Running a Report

+

+ Runs a report and returns the report output. +

+
Arguments
+
+
R_'parameter names' ...
+
optional, No defaults
+
The number and names of the parameters depend on the specific report and how it has been configured. R_officeId is an example parameter name.
+
Note: the prefix R_ stands for Reporting
+
parameterType
+
optional, The only valid value is 'true'. If any other value is provided the argument will be ignored
+
Determines whether the request looks in the list of reports or the list of parameters for its data.
+
exportCSV
+
optional, The only valid value is 'true'. If any other value is provided the argument will be ignored
+
Output will be delivered as a CSV file instead of JSON. Doesn't apply to Pentaho reports.
+
+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/reports/Client%20Listing?R_officeId=1 +

+
+
+ GET https://thedomainname/api/v1/reports/{reportName} + { + "columnHeaders": [ + { + "columnName": "Office/Branch", + "columnType": "VARCHAR", + "columnLength": null, + "columnDisplayType": null, + "columnValues": [] + }, + { + "columnName": "Name", + "columnType": "VARCHAR", + "columnLength": null, + "columnDisplayType": null, + "columnValues": [] + }, + { + "columnName": "Joining Date", + "columnType": "DATE", + "columnLength": null, + "columnDisplayType": null, + "columnValues": [] + } + ], + "data": [ + { + "row": [ + "Demo MFI Head Office", + "O'Meara, Patrick", + "2009-01-04" + ] + }, + { + "row": [ + "Demo MFI Head Office", + "O'Meara, Dennis", + "2009-01-04" + ] + }, + { + "row": [ + "Demo MFI Head Office", + "Smith, John", + "2009-01-11" + ] + }, + ... more "row" entries + ] + } +
+
+ + +   +
+
+

Authentication

+

An API capability to allowed client applications verify authentication details.

+
+
+ +   +
+
+

Verify authentication

+

Verifies that the credentials provided successfully authenticate and returns the set of permissions allowed by that user.

+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/authentication?username=super1&password=demo +

+
+
+ POST https://thedomainname/api/v1/authentication?username=super1&password=demo +POST https://localhost:8443/mifosng-provider/api/v1/authentication?username=super1&password=demo +Content-Type: application/xml + + + +
+
+ + +   +
+
+

User account details

+

An API capability to allowed client applications expose functionality for users to update their account details and password.

+
+
+ +   +
+
+

Retrieve current users account details

+

Will return user account details.

+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/useraccounts/current +

+
+
+ GET https://thedomainname/api/v1/useraccounts/current +GET https://localhost:8443/mifosng-provider/api/v1/useraccounts/current + +{ + "id": 1, + "orgId": 1, + "officeId": 1, + "officeName": "Demo MFI Head Office", + "username": "mifos", + "firstname": "App hello", + "lastname": "Administrator", + "email": "demomfi@mifos.org", + "allowedOffices": [ + { + "id": 1, + "name": "Demo MFI Head Office", + "externalId": "1", + "openingDate": "2009-01-01", + "hierarchy": ".", + "parentName": null, + "parentId": 0, + "allowedParents": [] + }, + { + "id": 2, + "name": "sub branch 1", + "externalId": "2", + "openingDate": "2012-01-02", + "hierarchy": ".2.", + "parentName": "Demo MFI Head Office", + "parentId": 1, + "allowedParents": [] + } + ], + "availableRoles": [ + { + "id": 2, + "orgId": 1, + "name": "Field officer", + "description": "A field officer role allows the user to add client and loans and view reports but nothing else.", + "availablePermissions": [], + "selectedPermissions": [] + }, + { + "id": 3, + "orgId": 1, + "name": "Data Entry (Portfolio only)", + "description": "This role allows a user full permissions around client and loan functionality but nothing else.", + "availablePermissions": [], + "selectedPermissions": [] + }, + { + "id": 4, + "orgId": 1, + "name": "Credit Committe Member", + "description": "This role allows a user to approve reject or withdraw loans (with reporting).", + "availablePermissions": [], + "selectedPermissions": [] + }, + { + "id": 5, + "orgId": 1, + "name": "Manager", + "description": "This role allows a manager to do anything related to portfolio management and also view all reports.", + "availablePermissions": [], + "selectedPermissions": [] + } + ], + "selectedRoles": [ + { + "id": 1, + "orgId": 1, + "name": "Super user", + "description": "This role provides all application permissions.", + "availablePermissions": [], + "selectedPermissions": [ + { + "id": 1, + "orgId": 1, + "name": "User administration ALL", + "description": "An application user will have permission to execute all tasks related to user administration.", + "code": "USER_ADMINISTRATION_SUPER_USER_ROLE", + "groupType": 1 + }, + { + "id": 4, + "orgId": 1, + "name": "Reporting ALL", + "description": "An application user will have permission to execute and view all reports.", + "code": "REPORTING_SUPER_USER_ROLE", + "groupType": 4 + }, + { + "id": 3, + "orgId": 1, + "name": "Portfolio management ALL", + "description": "An application user will have permission to execute all tasks related to portfolio management.", + "code": "PORTFOLIO_MANAGEMENT_SUPER_USER_ROLE", + "groupType": 3 + }, + { + "id": 2, + "orgId": 1, + "name": "Organisation adminsitration ALL", + "description": "An application user will have permission to execute all tasks related to organisation administration.", + "code": "ORGANISATION_ADMINISTRATION_SUPER_USER_ROLE", + "groupType": 2 + } + ] + } + ] +} + +
+
+ +   +
+
+

Update current users account details

+

Will update user account details.

+
+
+ PUT https://thedomainname/api/v1/useraccounts/current +PUT https://localhost:8443/mifosng-provider/api/v1/useraccounts/current +Content-Type: application/json +Request body: +{ + "officeId": 1, + "username": "mifos", + "firstname": "App hello", + "lastname": "Administrator", + "email": "demomfi@mifos.org", + "selectedItems": ["1"] +} + + +{ + "entityId": 1 +} + +
+
+ + +   +
+
+

Retrieve change password template details

+

Will details for change of password screen.

+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/useraccounts/current/password/template +

+
+
+ GET https://thedomainname/api/v1/useraccounts/current/password/template +GET https://localhost:8443/mifosng-provider/api/v1/useraccounts/current/password/template + +{ + "password": null, + "passwordrepeat": null +} + +
+
+ +   +
+
+

Update current users password

+

Will update users password.

+
+
+ PUT https://thedomainname/api/v1/useraccounts/current/password +PUT https://localhost:8443/mifosng-provider/api/v1/useraccounts/current/password +Content-Type: application/json +Request body: +{ + "password": "demo", + "passwordrepeat": "demo" +} + + +{ + "entityId": 1 +} + +
+
+ + +   +
+
+

Users

+

An API capability to support user administration.

+
+
+ +   +
+
+

Retrieve list of users

+

Returns all users.

+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/users +

+
+
+ GET https://thedomainname/api/v1/users +GET https://localhost:8443/mifosng-provider/api/v1/users + +{ + "users": [ + { + "id": 1, + "orgId": 1, + "officeId": 1, + "officeName": "Demo MFI Head Office", + "username": "mifos", + "firstname": "App hello", + "lastname": "Administrator", + "email": "demomfi@mifos.org", + "allowedOffices": [], + "availableRoles": [], + "selectedRoles": [] + }, + { + "id": 2, + "orgId": 1, + "officeId": 1, + "officeName": "Demo MFI Head Office", + "username": "super1", + "firstname": "super", + "lastname": "user", + "email": "fake@email.com", + "allowedOffices": [], + "availableRoles": [], + "selectedRoles": [] + } + ] +} + +
+
+ +   +
+
+

Retrieve new user template details

+

Returns details for new user screen

+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/users/template +

+
+
+ GET https://thedomainname/api/v1/users/template +GET https://localhost:8443/mifosng-provider/api/v1/users/template + +{ + "id": null, + "orgId": null, + "officeId": null, + "officeName": null, + "username": null, + "firstname": null, + "lastname": null, + "email": null, + "allowedOffices": [ + { + "id": 1, + "name": "Demo MFI Head Office", + "externalId": "1", + "openingDate": "2009-01-01", + "hierarchy": ".", + "parentName": null, + "parentId": 0, + "allowedParents": [] + }, + { + "id": 2, + "name": "sub branch 1", + "externalId": "2", + "openingDate": "2012-01-02", + "hierarchy": ".2.", + "parentName": "Demo MFI Head Office", + "parentId": 1, + "allowedParents": [] + } + ], + "availableRoles": [ + { + "id": 1, + "orgId": 1, + "name": "Super user", + "description": "This role provides all application permissions.", + "availablePermissions": [], + "selectedPermissions": [] + }, + { + "id": 2, + "orgId": 1, + "name": "Field officer", + "description": "A field officer role allows the user to add client and loans and view reports but nothing else.", + "availablePermissions": [], + "selectedPermissions": [] + } + ], + "selectedRoles": [] +} + +
+
+ +   +
+
+

Retrieve existing user details

+

Returns details for existing application user

+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/users/1 +

+
+
+ GET https://thedomainname/api/v1/users/1 +GET https://localhost:8443/mifosng-provider/api/v1/users/1 + +{ + "id": 1, + "orgId": 1, + "officeId": 1, + "officeName": "Demo MFI Head Office", + "username": "mifos", + "firstname": "App hello", + "lastname": "Administrator", + "email": "demomfi@mifos.org", + "allowedOffices": [ + { + "id": 1, + "name": "Demo MFI Head Office", + "externalId": "1", + "openingDate": "2009-01-01", + "hierarchy": ".", + "parentName": null, + "parentId": 0, + "allowedParents": [] + }, + { + "id": 2, + "name": "sub branch 1", + "externalId": "2", + "openingDate": "2012-01-02", + "hierarchy": ".2.", + "parentName": "Demo MFI Head Office", + "parentId": 1, + "allowedParents": [] + } + ], + "availableRoles": [ + { + "id": 2, + "orgId": 1, + "name": "Field officer", + "description": "A field officer role allows the user to add client and loans and view reports but nothing else.", + "availablePermissions": [], + "selectedPermissions": [] + } + ], + "selectedRoles": [ + { + "id": 1, + "orgId": 1, + "name": "Super user", + "description": "This role provides all application permissions.", + "availablePermissions": [], + "selectedPermissions": [ + { + "id": 1, + "orgId": 1, + "name": "User administration ALL", + "description": "An application user will have permission to execute all tasks related to user administration.", + "code": "USER_ADMINISTRATION_SUPER_USER_ROLE", + "groupType": 1 + }, + { + "id": 4, + "orgId": 1, + "name": "Reporting ALL", + "description": "An application user will have permission to execute and view all reports.", + "code": "REPORTING_SUPER_USER_ROLE", + "groupType": 4 + }, + { + "id": 3, + "orgId": 1, + "name": "Portfolio management ALL", + "description": "An application user will have permission to execute all tasks related to portfolio management.", + "code": "PORTFOLIO_MANAGEMENT_SUPER_USER_ROLE", + "groupType": 3 + }, + { + "id": 2, + "orgId": 1, + "name": "Organisation adminsitration ALL", + "description": "An application user will have permission to execute all tasks related to organisation administration.", + "code": "ORGANISATION_ADMINISTRATION_SUPER_USER_ROLE", + "groupType": 2 + } + ] + } + ] +} + +
+
+ + +   +
+
+

Create new user

+

Adds new application user to the platform.

+
+
+ POST https://thedomainname/api/v1/users +POST https://localhost:8443/mifosng-provider/api/v1/users +Content-Type: application/json +Request body: +{ + "officeId": 1, + "username": "newuser1", + "firstname": "Test", + "lastname": "User", + "email": "demomfi@mifos.org", + "selectedItems": ["1"] +} + + +{ + "entityId": 11 +} + +
+
+ +   +
+
+

Update existing user

+

Update details of an existing application user.

+
+
+ PUT https://thedomainname/api/v1/users/11 +PUT https://localhost:8443/mifosng-provider/api/v1/users/11 +Content-Type: application/json +Request body: +{ + "officeId": 1, + "username": "newuser123", + "firstname": "Test", + "lastname": "User", + "email": "demomfi@mifos.org", + "selectedItems": ["1"] +} + + +{ + "entityId": 11 +} + +
+
+ +   +
+
+

Delete existing user

+

Delete reference to application user on platform.

+
+
+ DELETE https://thedomainname/api/v1/users/11 +DELETE https://localhost:8443/mifosng-provider/api/v1/users/11 +Content-Type: application/json + + +{ + "entityId": 11 +} + +
+
+ + + + +   +
+
+

Roles

+

An API capability to support management of application roles for user administration.

+
+
+ +   +
+
+

Retrieve list of roles

+

Returns all roles.

+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/roles +

+
+
+ GET https://thedomainname/api/v1/roles +GET https://localhost:8443/mifosng-provider/api/v1/roles + +{ + "roles": [ + { + "id": 1, + "orgId": 1, + "name": "Super user", + "description": "This role provides all application permissions.", + "availablePermissions": [], + "selectedPermissions": [] + }, + { + "id": 2, + "orgId": 1, + "name": "Field officer", + "description": "A field officer role allows the user to add client and loans and view reports but nothing else.", + "availablePermissions": [], + "selectedPermissions": [] + }, + { + "id": 3, + "orgId": 1, + "name": "Data Entry (Portfolio only)", + "description": "This role allows a user full permissions around client and loan functionality but nothing else.", + "availablePermissions": [], + "selectedPermissions": [] + }, + { + "id": 4, + "orgId": 1, + "name": "Credit Committe Member", + "description": "This role allows a user to approve reject or withdraw loans (with reporting).", + "availablePermissions": [], + "selectedPermissions": [] + }, + { + "id": 5, + "orgId": 1, + "name": "Manager", + "description": "This role allows a manager to do anything related to portfolio management and also view all reports.", + "availablePermissions": [], + "selectedPermissions": [] + }, + { + "id": 6, + "orgId": 1, + "name": "new role test", + "description": "test new role description...", + "availablePermissions": [], + "selectedPermissions": [] + }, + { + "id": 7, + "orgId": 1, + "name": "new", + "description": "test", + "availablePermissions": [], + "selectedPermissions": [] + } + ] +} + +
+
+ +   +
+
+

Retrieve new role template details

+

Returns details for new role screen

+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/roles/template +

+
+
+ GET https://thedomainname/api/v1/roles/template +GET https://localhost:8443/mifosng-provider/api/v1/roles/template + +{ + "id": null, + "orgId": null, + "name": null, + "description": null, + "availablePermissions": [ + { + "id": 1, + "orgId": 1, + "name": "User administration ALL", + "description": "An application user will have permission to execute all tasks related to user administration.", + "code": "USER_ADMINISTRATION_SUPER_USER_ROLE", + "groupType": 1 + }, + { + "id": 2, + "orgId": 1, + "name": "Organisation adminsitration ALL", + "description": "An application user will have permission to execute all tasks related to organisation administration.", + "code": "ORGANISATION_ADMINISTRATION_SUPER_USER_ROLE", + "groupType": 2 + }, + ... + ... + { + "id": 20, + "orgId": 1, + "name": "Can add a new client.", + "description": "Allows an application user to add a new client.", + "code": "CAN_ENROLL_NEW_CLIENT_ROLE", + "groupType": 3 + } + ], + "selectedPermissions": [] +} + +
+
+ +   +
+
+

Retrieve existing role details

+

Returns details for existing application role

+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/roles/1 +

+
+
+ GET https://thedomainname/api/v1/roles/1 +GET https://localhost:8443/mifosng-provider/api/v1/roles/1 + +{ + "id": 1, + "orgId": 1, + "name": "Super user", + "description": "This role provides all application permissions.", + "availablePermissions": [ + { + "id": 5, + "orgId": 1, + "name": "Can submit new loan application", + "description": "Allows an application user to sumit new loan application.", + "code": "CAN_SUBMIT_NEW_LOAN_APPLICATION_ROLE", + "groupType": 3 + }, + ... + ... + { + "id": 19, + "orgId": 1, + "name": "Can enter a repayment against a loan in the past", + "description": "Allows an application user to enter a repayment on the loan where the repayment date is in the past.", + "code": "CAN_MAKE_LOAN_REPAYMENT_IN_THE_PAST_ROLE", + "groupType": 3 + }, + { + "id": 20, + "orgId": 1, + "name": "Can add a new client.", + "description": "Allows an application user to add a new client.", + "code": "CAN_ENROLL_NEW_CLIENT_ROLE", + "groupType": 3 + } + ], + "selectedPermissions": [ + { + "id": 1, + "orgId": 1, + "name": "User administration ALL", + "description": "An application user will have permission to execute all tasks related to user administration.", + "code": "USER_ADMINISTRATION_SUPER_USER_ROLE", + "groupType": 1 + }, + ... + ... + { + "id": 2, + "orgId": 1, + "name": "Organisation adminsitration ALL", + "description": "An application user will have permission to execute all tasks related to organisation administration.", + "code": "ORGANISATION_ADMINISTRATION_SUPER_USER_ROLE", + "groupType": 2 + } + ] +} + +
+
+ +   +
+
+

Create new role

+

Adds new application role to the platform.

+
+
+ POST https://thedomainname/api/v1/roles +POST https://localhost:8443/mifosng-provider/api/v1/roles +Content-Type: application/json +Request body: +{ + "name": "Some role name", + "description": "A description outlining the purpose of this role in relation to the application.", + "selectedItems": ["1", "2", "3"] +} + +{ + "entityId": 8 +} + +
+
+ +   +
+
+

Update existing role

+

Update details of an existing application role.

+
+
+ PUT https://thedomainname/api/v1/roles/8 +PUT https://localhost:8443/mifosng-provider/api/v1/roles/8 +Content-Type: application/json +Request body: +{ + "name": "Some role name update", + "description": "A description outlining the purpose of this role in relation to the application. [updated]", + "selectedItems": ["1", "2", "3", "4", "5"] +} + +{ + "entityId": 8 +} + +
+
+ + + +   +
+
+

Permissions

+

An API capability to support management of application permissions for user administration.

+
+
+ +   +
+
+

Retrieve list of permissions

+

Returns all permissions.

+

Example Request: + https://localhost:8443/mifosng-provider/api/v1/permissions +

+
+
+ GET https://thedomainname/api/v1/permissions +GET https://localhost:8443/mifosng-provider/api/v1/permissions + +{ + "permissions": [ + { + "id": 1, + "orgId": 1, + "name": "User administration ALL", + "description": "An application user will have permission to execute all tasks related to user administration.", + "code": "USER_ADMINISTRATION_SUPER_USER_ROLE", + "groupType": 1 + }, + { + "id": 2, + "orgId": 1, + "name": "Organisation adminsitration ALL", + "description": "An application user will have permission to execute all tasks related to organisation administration.", + "code": "ORGANISATION_ADMINISTRATION_SUPER_USER_ROLE", + "groupType": 2 + }, + { + "id": 3, + "orgId": 1, + "name": "Portfolio management ALL", + "description": "An application user will have permission to execute all tasks related to portfolio management.", + "code": "PORTFOLIO_MANAGEMENT_SUPER_USER_ROLE", + "groupType": 3 + }, + { + "id": 4, + "orgId": 1, + "name": "Reporting ALL", + "description": "An application user will have permission to execute and view all reports.", + "code": "REPORTING_SUPER_USER_ROLE", + "groupType": 4 + }, + { + "id": 5, + "orgId": 1, + "name": "Can submit new loan application", + "description": "Allows an application user to sumit new loan application.", + "code": "CAN_SUBMIT_NEW_LOAN_APPLICATION_ROLE", + "groupType": 3 + }, + { + "id": 6, + "orgId": 1, + "name": "Can submit historic loan application", + "description": "Allows an application user to sumit new loan application where the submitted on date is in the past.", + "code": "CAN_SUBMIT_HISTORIC_LOAN_APPLICATION_ROLE", + "groupType": 3 + }, + { + "id": 7, + "orgId": 1, + "name": "Can approve loan application", + "description": "Allows an application user to approve a loan application.", + "code": "CAN_APPROVE_LOAN_ROLE", + "groupType": 3 + }, + { + "id": 8, + "orgId": 1, + "name": "Can approve loan application in the past", + "description": "Allows an application user to approve a loan application where the approval date is in the past.", + "code": "CAN_APPROVE_LOAN_IN_THE_PAST_ROLE", + "groupType": 3 + }, + { + "id": 9, + "orgId": 1, + "name": "Can reject loan application", + "description": "Allows an application user to reject a loan application.", + "code": "CAN_REJECT_LOAN_ROLE", + "groupType": 3 + }, + { + "id": 10, + "orgId": 1, + "name": "Can reject loan application in the past", + "description": "Allows an application user to reject a loan application where the rejected date is in the past.", + "code": "CAN_REJECT_LOAN_IN_THE_PAST_ROLE", + "groupType": 3 + }, + { + "id": 11, + "orgId": 1, + "name": "Can withdraw loan application", + "description": "Allows an application user to mark loan application as withdrawn by client.", + "code": "CAN_WITHDRAW_LOAN_ROLE", + "groupType": 3 + }, + { + "id": 12, + "orgId": 1, + "name": "Can withdraw loan application in the past", + "description": "Allows an application user to mark loan application as withdrawn by client where the withdran on date is in the past.", + "code": "CAN_WITHDRAW_LOAN_IN_THE_PAST_ROLE", + "groupType": 3 + }, + { + "id": 13, + "orgId": 1, + "name": "Can delete submitted loan application", + "description": "Allows an application user to complete delete the loan application if it is submitted but not approved.", + "code": "CAN_DELETE_LOAN_THAT_IS_SUBMITTED_AND_NOT_APPROVED", + "groupType": 3 + }, + { + "id": 14, + "orgId": 1, + "name": "Can undo loan approval", + "description": "Allows an application user to undo a loan approval.", + "code": "CAN_UNDO_LOAN_APPROVAL_ROLE", + "groupType": 3 + }, + { + "id": 15, + "orgId": 1, + "name": "Can disburse loan", + "description": "Allows an application user to disburse a loan application.", + "code": "CAN_DISBURSE_LOAN_ROLE", + "groupType": 3 + }, + { + "id": 16, + "orgId": 1, + "name": "Can disburse loan in the past", + "description": "Allows an application user to disburse a loan where the disbursement date is in the past.", + "code": "CAN_DISBURSE_LOAN_IN_THE_PAST_ROLE", + "groupType": 3 + }, + { + "id": 17, + "orgId": 1, + "name": "Can undo loan disbursal", + "description": "Allows an application user to undo a loan disbursal if not payments already made.", + "code": "CAN_UNDO_LOAN_DISBURSAL_ROLE", + "groupType": 3 + }, + { + "id": 18, + "orgId": 1, + "name": "Can enter a repayment against a loan", + "description": "Allows an application user to enter a repayment on the loan.", + "code": "CAN_MAKE_LOAN_REPAYMENT_LOAN_ROLE", + "groupType": 3 + }, + { + "id": 19, + "orgId": 1, + "name": "Can enter a repayment against a loan in the past", + "description": "Allows an application user to enter a repayment on the loan where the repayment date is in the past.", + "code": "CAN_MAKE_LOAN_REPAYMENT_IN_THE_PAST_ROLE", + "groupType": 3 + }, + { + "id": 20, + "orgId": 1, + "name": "Can add a new client.", + "description": "Allows an application user to add a new client.", + "code": "CAN_ENROLL_NEW_CLIENT_ROLE", + "groupType": 3 + } + ] +} + +
+
+ +
+ + +   +


+
+

Full API Matrix

API Endpoint:

https://thedomainname/api
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RESOURCES
POST
create/update
GET
read
PUT
simple update
DELETE
delete
CLIENT/v1/clientsCreate a ClientList Clients
/v1/clients/{clientId}Retrieve a ClientUpdate a Client
/v1/clients/{clientId}/loansRetrieve a Client's Loan Account Summary
/v1/clients/{clientId}/notesAdd a Client NoteRetrieve a Client's Notes
/v1/clients/{clientId}/notes/{noteId}Retrieve a Client NoteUpdate a Client Note
LOAN/v1/loansCreate a New Loan/Submit a Loan Application
/v1/loans/{loanId}Approve, Disburse, Reject a Loan or Withdraw a Loan ApplicationRetrieve a LoanDelete a Loan
/v1/loans/{loanId}/undoUndo Loan Approval or Disbursal
/v1/loans/{loanId}/transactionsMake a Repayment / Loan Waiver
/v1/loans/{loanId}/transactions/{transactionId}Retrieve a Repayment or Waiver DetailsAdjust a Repayment or Waiver
OFFICE/v1/officesCreate an OfficeList Offices
/v1/offices/{officeId}Retrieve an OfficeUpdate an Office
LOAN PRODUCT/v1/loanproductsCreate a Loan ProductList Loan Products
/v1/loanproducts/{productId}Retrieve a Loan ProductUpdate a Loan Product
CONFIGURATION/v1/configurations/currencyRetrieve Currency ConfigurationUpdate Currency Configuration
ADDITIONAL FIELDS/v1/additionalfieldsList Additional Fields Sets
/v1/additionalfields/{Type}/{Set}/{id}Update Additional FieldsRetrieve Additional Fields
REPORT/v1/reportsList Reports
/v1/reports/{reportName}Run a Report
AUTHENTICATION/v1/authenticationVerify Authentication
USER ACCOUNT/v1/useraccounts/currentRetrieve Current Users' Account DetailsUpdate Current Users' Account Details
/v1/useraccounts/current/passwordUpdate Current Users' Password
USER/v1/usersCreate a UserList Users
/v1/users/{userId}Retrieve a UserUpdate a UserDelete a User
ROLE/v1/rolesCreate a New RoleList Roles
/v1/roles/{roleId}Retrieve a RoleUpdate a Role
PERMISSION/v1/permissionsList Application Permissions
+
+ + + + + + + + + + +
CONVENIENCE RESOURCES
GET
read
/v1/clients/templateRetrieve Client Details Template
/v1/loans/templateRetrieve Loan Details Template
/v1/loans/{loanId}/transactions/templateRetrieve Loan Repayment/Loan Waiver Template
/v1/offices/templateRetrieve Office Details Template
/v1/loanproducts/templateRetrieve Loan Product Details Template
/v1/useraccounts/current/password/templateRetrieve change password template
/v1/users/templateRetrieve new user template
/v1/roles/templateRetrieve new role template
+
+ + + + \ No newline at end of file diff --git a/APIFolder/apidocsPREV.css b/APIFolder/apidocsPREV.css new file mode 100644 index 000000000..a5aff1972 --- /dev/null +++ b/APIFolder/apidocsPREV.css @@ -0,0 +1,670 @@ +.tocMatrix { + font-size: 85%; +} +.fullMatrixOuter { + margin-right: 20px; + margin-left: 20px; + margin-bottom: 20px; +} + +.matrixHeading { + font-family: Helvetica, Arial, sans-serif; + border-collapse:collapse; + border:3px solid #6eb4db; + width:100%; +} + +.matrixHeading td +{ + //padding:3px 7px 2px 7px; + + padding-right:5px; + + vertical-align:text-top; +} +.matrixHeading tr.alt +{ + color:#000; + background-color: rgb(240, 240, 255); +} + + +.matrixHeadingBG { + background-color: #6eb4db; +} + +.matrixHeadingVerbs { + color: white; + font-weight: bold; + font-size: 125% +} + +.matrixHeadingCommands { + color: rgb(240, 240, 255); +} + + + +html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,tdjpw{margin:0;padding:0;}tablejpw{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup{vertical-align:text-top;}sub{vertical-align:text-bottom;}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}input,textarea,select{*font-size:100%;}legend{color:#000;} + +a img { outline: none; border: 0; } +h1 { font-size: 180%; font-weight: bold; } +h2 { font-size: 165%; font-weight: bold; } +h3 { font-size: 145%; font-weight: bold; } +h4 { font-size: 120%; font-weight: bold; } +h5 { font-size: 120%; font-weight: bold; } +h6 { font-size: 110%; font-weight: bold; } +h1, h2, h3, h4, h5, h6 { margin: 0 0 0.5em 0; line-height: 1.2em; } +p { margin: 1em 0; } +em {font-style: italic;} + +html { + background-color: rgb(240, 240, 255); +} + +body { + padding: 0; margin: 0; + font-family: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif; + font-size: 15px; + line-height: 22px; + min-width: 1000px; + background-color: gray; + border-top: 15px solid black; +} + +#flybar { + font-size: 14px; + line-height: 20px; +} + +.method-example h1, .method-example h2, .method-example h3, .method-example h4, .method-example h5, .method-example h6, #flybar, .footer { + font-family: Helvetica, Arial, sans-serif; +} + +.method-example code { + font-family: Monaco, Consolas, "Lucida Console", monospace; + font-size: 12px; + line-height: 18px; +} + +#flybar { + position: fixed; + z-index: 100; + height: 40px; + min-width: 745px; + left: 0; right: 0; top: 0; + padding-left: 200px; + background: #eee; + background: -webkit-gradient(linear, left top, left bottom, from(#f8f8f8), to(#dadada)); + background: -moz-linear-gradient(top, #f8f8f8, #dadada); + border-top: 3px solid black; + border-bottom: 1px solid #888; + -webkit-box-shadow: 0 3px 5px rgba(0,0,0,0.1); + -moz-box-shadow: 0 3px 5px rgba(0,0,0,0.1); + box-shadow: 0 3px 5px rgba(0,0,0,0.1); +} + +#nav-logo { + display: block; + height: 30px; + position: absolute; + top: 10px; + left: 20px; + font-weight: bold; + color: black; + font-size: 16px; + text-decoration: none; + +} + +.flybar-button { + text-align: center; + text-transform: uppercase; + font-size: 12px; + padding: 0 1em; + line-height: 40px; + border-right: 1px solid transparent; + border-left: 1px solid transparent; + text-decoration: none; + font-weight: bold; + color: black; +} + +.flybar-nav { + display: block; + float: left; + width: 150px; + position: relative; +} + +.flybar-language { + display: block; + float: left; + position: relative; +} + +.flybar-language .flybar-button { + float: left; + clear: none; + border-right: 1px solid transparent; + border-left: 1px solid transparent; + min-width: 80px; + margin-left: -1px; +} + +.flybar-menu { + display: none; + position: absolute; + top: 41px; + + width: 850px; + background-color: rgba(249, 249, 249, 0.99); + border: 1px solid rgb(187, 187, 187); + border-top: 0; + padding: 1em; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + -webkit-box-shadow: 0 3px 5px rgba(0,0,0,0.1); + -moz-box-shadow: 0 3px 5px rgba(0,0,0,0.1); + box-shadow: 0 3px 5px rgba(0,0,0,0.1); +} + +.flybar-menu-overview { + display: none; + position: absolute; + top: 41px; + + width: 300px; + background-color: rgba(249, 249, 249, 0.99); + border: 1px solid rgb(187, 187, 187); + border-top: 0; + padding: 1em; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + -webkit-box-shadow: 0 3px 5px rgba(0,0,0,0.1); + -moz-box-shadow: 0 3px 5px rgba(0,0,0,0.1); + box-shadow: 0 3px 5px rgba(0,0,0,0.1); +} + +.flybar-menu-convenience { + display: none; + position: absolute; + top: 41px; + + width: 575px; + background-color: rgba(249, 249, 249, 0.99); + border: 1px solid rgb(187, 187, 187); + border-top: 0; + padding: 1em; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + -webkit-box-shadow: 0 3px 5px rgba(0,0,0,0.1); + -moz-box-shadow: 0 3px 5px rgba(0,0,0,0.1); + box-shadow: 0 3px 5px rgba(0,0,0,0.1); +} + +#toc-menu1 { + position:absolute; + left:-150px; +} + +#toc-menu2 { + position:absolute; + left:-300px; +} + +#toc-menu3 { + position:absolute; + left:-450px; +} + +#toc-menu4 { + position:absolute; + left:-600px; +} + +#toc-menu5 { + position:absolute; + left:-450px; +} + +#language-menu { + left: -25px; +} + +#language-menu li { + display: inline-block; + margin-right: 25px; +} + +.flybar-menu h3, .flybar-menu-overview h3, .flybar-menu-convenience h3 { + text-transform: uppercase; + font-size: 100%; +} + +.flybar-menu h4, .flybar-menu-overview h4, .flybar-menu-convenience h4 { + text-transform: uppercase; + font-size: 90%; + color: rgb(155, 155, 155); + margin: 0.5em 0 0.5em 0; +} + +.flybar-menu ul, .flybar-menu-overview ul, .flybar-menu-convenience ul { + margin: 0 0 1em 1em; +} + +.flybar-nav:hover .flybar-menu, .flybar-nav:hover .flybar-menu-overview, .flybar-nav:hover .flybar-menu-convenience, +.flybar-nav.active .flybar-menu, .flybar-nav.active .flybar-menu-overview, .flybar-nav.active .flybar-menu-convenience{ + display: block; +} + +.flybar-button:hover, +.flybar-button.active, +.flybar-nav:hover .flybar-button, +.flybar-nav.active .flybar-button { + background: #eee; + background: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#f8f8f8)); + background: -moz-linear-gradient(top, #eee, #f8f8f8); + border-left: 1px solid rgb(187, 187, 187); + border-right: 1px solid rgb(187, 187, 187); +} + +.flybar-nav:hover .flybar-menu, .flybar-nav:hover .flybar-menu-overview, .flybar-nav:hover .flybar-menu-convenience, +.flybar-button.active { + margin-right: -1px; +} + +.flybar-nav:hover .flybar-button, +.flybar-nav.active .flybar-button { + height: 51px; + color: #000; + background: -webkit-gradient(linear, left top, left bottom, from(#e5e5e5), to(#fff)); + background: -moz-linear-gradient(top, #e5e5e5, #fff); +} + +.toc-column1 { + width: 200px; +} + +.toc-column2 { + width: 235px; +} + +.toc-column3 { + width: 200px; +} + +.toc-column1, .toc-column2, .toc-column3, .toc-column4, .toc-column5, .toc-column6 { + float: left; +} + +.toc-section { + width: 235px; + font-size: 90%; +} + +code { + white-space: pre; + white-space: -o-pre-wrap; + white-space: -moz-pre-wrap; + white-space: pre-wrap; + display: block; + margin: 1em 0; + line-height: 1.5em; +} + +.method-section { + clear: left; + padding: 1em 0; + padding-top: 60px; + margin-left: -580px; +} + +.method-section:after { + visibility: hidden; + display: block; + font-size: 0; + content: " "; + clear: both; + height: 0; +} + +.method-description { + width: 540px; + float: left; + padding-right: 20px; + color: black; +} + +.method-description p { +} + +h1 { + text-transform: uppercase; +} + +.method-description h4 { + /*font-family: monospace;*/ +} + +.method-description h5 { + font-size: 110%; + color: rgb(155, 155, 155); + text-transform: uppercase; + clear: both; + padding: 0.5em 0; +} + +.method-example { + margin-left: 560px; + padding-left: 20px; + min-width: 380px; +} + +.method-example code { + white-space: pre; + white-space: -o-pre-wrap; + white-space: -moz-pre-wrap; + white-space: pre-wrap; +} + +.method-example { + color: rgb(105, 105, 125); +} + +.method-example p { + font-style: italic; + color: rgb(105, 105, 105); +} + +.method-error:before { + content: "EXAMPLE ERROR"; + color: rgb(155, 155, 185); + display: block; +} + +.method-declaration:before { + content: "DEFINITION"; + color: rgb(155, 155, 185); + display: block; +} + +.method-request:before { + content: "EXAMPLE REQUEST"; + color: rgb(155, 155, 185); + display: block; +} + +.method-response:before { + content: "EXAMPLE RESPONSE"; + color: rgb(155, 155, 185); + display: block; +} + +.expected-result:before { + content: "RESULT"; + color: rgb(155, 155, 185); + display: block; +} + +.method-response, .method-error { + font-size: 90%; +} + +.method-example li { + font-family: monospace; + color: black; +} + +.method-example ul { + margin: 1em 0; +} + +.method-example table { + font-family: monospace; + color: black; +} + +.method-example td { + padding-right: 20px; + padding-bottom: 5px; + vertical-align: top; +} +.method-example table th { + font-weight: bold; +} + +.method-example code { + color: black; +} + +.prompt:after { + content: '$ '; + color: gray; + display: block; +} + +.prompt.curl:after { content: '$ '; } +.prompt.ruby:after { content: '>> ' } +.prompt.python:after { content: '>>> ' } +.prompt.php:after { content: 'php > ' } +.prompt.java:after { content: '' } + +.method-name { + font-family: monospace; + font-weight: bold; +} + +.notification-request:before { + content: "EXAMPLE NOTIFICATION"; + color: rgb(155, 155, 185); + display: block; +} + +.notification-event:before { + content: "EVENT"; + color: rgb(155, 155, 185); + display: block; +} + + +#page-wrapper { + background-color: white; + color: black; +} + +#main-content-wrapper { + background-color: rgb(240, 240, 255); + + margin-left: 579px; + padding: 0 20px 40px 20px; + border-left: 1px solid rgb(229, 229, 238); +} + +#api-summary-example { + margin-top: 48px; +} + +.argument-list { + font-size: 90%; + line-height: 1.5em; +} + +.argument-list dl { + font-size: 95%; + padding: 1em 0; + line-height: 1.5em; +} + +.argument-list:after { + visibility: hidden; + display: block; + font-size: 0; + content: " "; + clear: both; + height: 0; +} + +.argument-list dl:after { + visibility: hidden; + display: block; + font-size: 0; + content: " "; + clear: both; + height: 0; +} + +.argument-list dt { + clear:both; + width:34%; + float:left; + text-align:right; + font-weight: bold; + margin-top: 8px; +} + +.event-types.argument-list dt { + width: 48%; +} + +.event-types.argument-list dd { + width: 48%; +} + +.argument-list dt:after { + content: ":"; +} + +.argument-list dd { + float:right; + width: 65%; +} + +.argument-list dl dd { + width: 65%; +} + +.argument-list dt + dd { + margin-top: 8px; + font-weight: bold; +} + +.argument-list dd dl dd dl { + width: 95%; +} + +.argument-list dd dl dd dl dd { + width: 65%; +} +.argument-list dd dl dd dl dt { + width:31%; +} + +.argument-list dd span { + font-style: italic; + font-weight: normal; +} + +.old-syle-anchor {display:block;height:0;width:0;} +strong { font-weight: bold; } + +.footer { + position: fixed; + bottom: 0; + height: 30px; + + border-top: 1px solid #ccc; + background: #eee; + background: -webkit-gradient(linear, left top, left bottom, from(#f8f8f8), to(#dadada)); + background: -moz-linear-gradient(top, #f8f8f8, #dadada); + + width: 100%; + opacity: 0.95; + font-size: 13px; +} + +.footer input[type="text"] { + height: 14px; + padding: 3px; + border: 1px solid #aaa; + border-radius: 4px; +} + +.suggestion-box { + float: right; + padding-top: 3px; + padding-right: 10px; +} + +.footer input[type="submit"]:hover { + background: -webkit-gradient( + linear, + center top, + center bottom, + from(#fefefe), + to(#dbdbdb), + color-stop(80%, #eeeeee), + color-stop(0%, #eeeeee) + ); + background: -moz-linear-gradient( + top, + #fff, + #fff + ); +} + +.footer input[type="submit"]:active { + background: -webkit-gradient( + linear, + center top, + center bottom, + from(#c0c0c0), + to(#fefefe), + color-stop(0%, #e1e1e1), + color-stop(30%, #eeeeee), + color-stop(80%, #fff) + ); + background: -moz-linear-gradient( + top, + #c0c0c0, + #fefefe + ); + + border: 1px solid #a3a3a3; +} + +.footer input[type="submit"] { + height: 22px; + padding: 3px; + font-size: 13px; + + font-family: "proxima-nova-1","proxima-nova-2", Helvetica, Arial, sans-serif; + color: #454545; + text-shadow: 0px 1px 0px #fff; + text-align: center; + + border: 1px solid #aaa; + background: -webkit-gradient( + linear, + center top, + center bottom, + from(#fefefe), + to(#dbdbdb), + color-stop(50%, #eeeeee) + ); + background: -moz-linear-gradient( + top, + #fefefe, + #dbdbdb + ); + + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + -webkit-background-clip: padding-box; + -webkit-backface-visibility: hidden; +} + +.stripe-version { + float: left; +} diff --git a/APIFolder/docUpdateComments.txt b/APIFolder/docUpdateComments.txt new file mode 100644 index 000000000..330bf4ce1 --- /dev/null +++ b/APIFolder/docUpdateComments.txt @@ -0,0 +1,13 @@ +\loan\?\transactions\id get exception if loan doesn't match id.... should loan be taken out here? +template for waiver/repayment... is it same for both? no type needed? +new loan template ... is it 2 templates... one to pick product... and 2nd to return default properties in selected product + + +Configuration +If you put a new currency config in and it deletes a currently in using { "selectedItems": ["USD", "GBP","XOF","ETB"] } then an exception report is returned +Works fine using currencies (updated docs).... +also should this be a POST? +and should it return just an ok and empty set rather than empty notSelectedCurrencies and currencies +should update only select currencies and not allow notSelectedCurrencies? + +