Musoni System REST API Reference (1.49.0)

Download OpenAPI specification:Download

Disclaimer

We are working towards documenting our APIs using the OpenAPI 3+ specification.

This documentation is BETA and subject to change.

Note: Older API documentation remains available from Legacy API Documentation for areas not covered in this OpenApi documentation.

Note: Usage of the API requires a user-specific api-key which can be requested via the Musoni Service Desk.

Musoni is a secure, multi-tenanted microfinance platform.

The goal of the Musoni API is to empower developers to build apps on top of the Musoni Platform.

The API is organized around REST and is designed to have:

  • predictable, resource-oriented URLs
  • to use HTTP response codes to indicate API errors
  • to use built-in HTTP features, like HTTP authentication and HTTP verbs, which can be understood by off-the-shelf HTTP clients.

JSON is returned in all responses from the API, including errors.

Authentication

An API capability that allows applications to peform authentication with platform using username password credentials.

On success API will return details that support ability to call platform APIs using their supported security mechanism: HTTP Basic Authentication

Authenticate Credentials

Authenticates username password credentials.

If multi-factor authentication is enabled then a secondary security token will be requested once username, password are verified.

Authorizations:
(TenantIdentifierKeyMusoniApiKey)
query Parameters
username
string
Deprecated
Example: username=johnsmith

The username to authenticate with.

password
string
Deprecated
Example: password=myfav0uritePassw0rd

The password to use with username for authentication.

Request Body schema: application/json
username
string

The username to authenticate with.

password
string

The password to authenticate with.

Responses

Request samples

Content type
application/json
{
  • "username": "johnsmith",
  • "password": "myfav0uritePassw0rd"
}

Response samples

Content type
application/json
{
  • "username": "johnsmith",
  • "userId": 1,
  • "base64EncodedAuthenticationKey": "vbnsdGVzdHVzZXItODIyaTN0OnRlc3R1cABC909877adfa=",
  • "authenticated": true,
  • "officeId": 1,
  • "officeName": "Head Office",
  • "staffId": 1,
  • "staffDisplayName": "John Smith",
  • "roles": [
    ],
  • "permissions": [
    ],
  • "shouldRenewPassword": false,
  • "renewPasswordOnNextLogin": false,
  • "isSelfServiceUser": false,
  • "clients": [
    ]
}

Multi-Factor Authentication

An API capability to support registration and use of multi-factor authentication (MFA) on users accounts.

Note: MFA cannot be enabled on Client Users (users where isSelfServiceUser = true)

Register for MFA

Registers the user account of user making request for MFA.

This involves auto generating a secret and proving a QR code back that end user can use to register with a device.

Note: MFA cannot be enabled on Client Users (users where isSelfServiceUser = true)

Authorizations:
(musoniBasicAuthTenantIdentifierKeyMusoniApiKey)

Responses

Response samples

Content type
application/json
{
  • "email": "johnsmith@example.com",
  • "username": "johnsmith",
  • "mfaSecret": "AAJ33I4IOUCAWGXNFPHVOFSWGTYI4UTZ",
  • "qrCodeImageDataUri": "string"
}

Validation MFA Registration

Validates a provided mfaToken against the users MFA setup.

Two successful validation requests with different mfaTokens are required in order to complete MFA registration.

Note: MFA cannot be enabled on Client Users (users where isSelfServiceUser = true)

Authorizations:
(musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
query Parameters
mfaToken
required
string
Example: mfaToken=149087

The code provided by the device where mfa account was setup.

Typically configured to return a six digit pin but can be different.

Responses

Response samples

Content type
application/json
{
  • "isValid": true,
  • "mfa": {
    }
}

Verify MFA Code

Validates a MFA code (mfaToken) against the users MFA setup.

Note: MFA cannot be enabled on Client Users (users where isSelfServiceUser = true)

Authorizations:
(musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
query Parameters
mfaToken
required
string
Example: mfaToken=149087

The code provided by the device where mfa account was setup.

Typically configured to return a six digit pin but can be different.

Responses

Response samples

Content type
application/json
{
  • "isValid": true,
  • "mfa": {
    }
}

Group

Groups are used to provide a distinctive banking distribution channel used in microfinances throughout the world.
The Group is an administrative unit. It can contain as few as 5 people or as many as 40 depending on how its used.

Different styles of group lending

  • Joint-Liability Group
  • Grameen Model (Center-Group),
  • Self-Help Groups,
  • Village/Communal Banks

List groups

List all Groups

See The Data Filter API for better approach for search/filter.

Authorizations:
(musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
query Parameters
paged
string

Defaults to false. If set to true then results will be paginated.

offset
integer
Default: 0
Examples:

    sets the offset for pagination, used in combination with limit

    limit
    integer
    Default: 200
    Examples:

      Sets the limit of records returned, if not provided the limit will be 200, if a higher limit than 2500 is provided limit will be restricted at 2500, pagination should be used to retrieve subsequent pages of data.

      search
      string

      Performs a partial matching search across the follow properties of Group to see if they contain the search term:

      • display_name
      • account_no
      • external_id
      orderBy
      string
      Deprecated
      Enum: "id" "external_id" "display_name"

      Deprecated and not used. Use sortBy instead.

      sortOrder
      string
      Deprecated

      Deprecated and not used. Use sortBy instead.

      sortBy
      string

      Expects a valid SQL fragment that used in order by section of SQL statement.

      e.g.
      g.account_no DESC
      g.display_name DESC

      officeId
      integer

      The id of an office. Used to restrict to the set of groups associated with this offices hierarchy (office + sub-offices).

      underHierarchy
      string
      Example: underHierarchy=.14.

      if provided only groups that exist on or under the office hierarchy provided will be returned.

      This parameter overrides any data-scoping that is performed against the current users office hierarchy allowing the user to fetch groups not in their office hierarchy.

      Note: Do not place single or double quotes around the value.

      staffId
      integer

      The id of an staff (loanofficer). Used to restrict to the set of groups associated with the staff.

      name
      string

      Use name of groups to restrict results using exact match.

      externalId
      string

      Use externalId of groups to restrict results using exact match.

      status
      integer
      Enum: 100 300 600 700
      Examples:

        Used to restrict the search to groups whoose status (code) matches the status code provided.

        modifiedSinceTimestamp
        integer
        Examples:

          Should be passed as a UNIX Timestamp.

          When provided only groups that have been created or updated since the provided timestamp are returned.

          Groups will be marked as modified whenever there is any modification to the group.

          This parameter can be used in integrations to fetch changed data since a last fetch, timestamps will be treated as UTC and returned as UTC.

          orphansOnly
          string
          Deprecated

          Deprecated. To be removed.

          Set to true to list groups which are not associated to any center or parent group.

          Center or parents groups are not support on musoni system applications.

          sqlSearch
          string
          Deprecated

          Deprecated. Use other parameters such as search or See The Data Filter API for better approach for search/filter.

          Expects a valid SQL fragment that used in where section of SQL statement.

          e.g.
          display_name like '%K%'
          g.account_no like '0033-%'

          Responses

          Response samples

          Content type
          application/json
          [
          • {
            }
          ]

          Create new Group

          The supported schema for creating groups.

          name, openingDate, parentId are required.
          locale is required when dealing with numbers or dates
          dateFormat is required when dealing with dates

          Authorizations:
          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
          Request Body schema: application/json
          name
          required
          string

          The name of the group.

          officeId
          required
          integer <int64>

          The id of the office that the group is associated with.

          active
          required
          boolean

          A boolean to indicate if this group should be created in active state. if true, activationDate needs to be supplied.

          activationDate
          string

          The opening date in a date format supported by Joda Time.

          submittedOnDate
          string

          The date this group application was submitted in a date format supported by Joda Time.

          If provided when creating the group and the group is set to active, the submittedOnDate is set to be the same as the activationDate.

          accountNo
          string

          A unique account no. which identifies this group.

          If not provided on creation of the group, it is automatically generated based on the Account Number Format setup. (see Account Number Format and Configuration)

          externalId
          string

          A place to put an external reference for this group e.g. The ID another system uses for it. If provided, it must be unique.

          If not provided on creation of the group, it is automatically generated based on the Account Number Format setup. (see Account Number Format and Configuration)

          clientMembers
          Array of integers

          An array of integers that represent client ids. The clients provided must exist in the same office as group office.

          There is also configurable rules around the min and max number of clients that are allowed when forming a group from existing clients.

          locale
          string

          The locale to use when interpreting number and date fields in the request.

          dateFormat
          string

          The date format to use when interpreting date fields in the request. Must be suported by Joda Time.

          Responses

          Request samples

          Content type
          application/json
          {
          • "name": "name",
          • "officeId": 1,
          • "active": false,
          • "activationDate": "01 July 2007",
          • "submittedOnDate": "01 July 2007",
          • "accountNo": "0001-0001",
          • "externalId": "ABC-0001",
          • "clientMembers": [
            ],
          • "locale": "en",
          • "dateFormat": "dd MMMM yyyy"
          }

          Response samples

          Content type
          application/json
          {
          • "resourceId": 12
          }

          Find a Group by Id

          Find a Group by Id

          Authorizations:
          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
          path Parameters
          id
          required
          integer <int64>
          Example: 1

          The unique identifer of a group.

          Responses

          Response samples

          Content type
          application/json
          [
          • {
            }
          ]

          Update existing group

          TODO (but never with brackets around it again...)

          Authorizations:
          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
          path Parameters
          id
          required
          integer <int64>
          Example: 1

          The unique identifer of a group.

          Request Body schema: application/json

          Update existing group

          name
          required
          string

          The name of the group.

          officeId
          required
          integer <int64>

          The id of the office that the group is associated with.

          active
          required
          boolean

          A boolean to indicate if this group should be created in active state. if true, activationDate needs to be supplied.

          activationDate
          string

          The opening date in a date format supported by Joda Time.

          submittedOnDate
          string

          The date this group application was submitted in a date format supported by Joda Time.

          If provided when creating the group and the group is set to active, the submittedOnDate is set to be the same as the activationDate.

          accountNo
          string

          A unique account no. which identifies this group.

          If not provided on creation of the group, it is automatically generated based on the Account Number Format setup. (see Account Number Format and Configuration)

          externalId
          string

          A place to put an external reference for this group e.g. The ID another system uses for it. If provided, it must be unique.

          If not provided on creation of the group, it is automatically generated based on the Account Number Format setup. (see Account Number Format and Configuration)

          clientMembers
          Array of integers

          An array of integers that represent client ids. The clients provided must exist in the same office as group office.

          There is also configurable rules around the min and max number of clients that are allowed when forming a group from existing clients.

          locale
          string

          The locale to use when interpreting number and date fields in the request.

          dateFormat
          string

          The date format to use when interpreting date fields in the request. Must be suported by Joda Time.

          Responses

          Request samples

          Content type
          application/json
          {
          • "name": "name",
          • "officeId": 1,
          • "active": false,
          • "activationDate": "01 July 2007",
          • "submittedOnDate": "01 July 2007",
          • "accountNo": "0001-0001",
          • "externalId": "ABC-0001",
          • "clientMembers": [
            ],
          • "locale": "en",
          • "dateFormat": "dd MMMM yyyy"
          }

          Response samples

          Content type
          application/json
          {
          • "resourceId": 1,
          • "changes": { }
          }

          Transfer Group

          Allows transfer of group to new office

          Authorizations:
          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
          path Parameters
          id
          required
          integer <int64>
          Example: 1

          The unique identifer of a group.

          query Parameters
          command
          required
          string
          Default: "transferGroup"
          Example: command=transferGroup

          Command to indicate transfer of group

          Request Body schema: application/json
          destinationOfficeId
          required
          integer <int64>

          The id of the office this group is to be associated with after the transfer.

          It cannot be the same officeId as the group has already.

          Note: The user making the request must have visibility of the source and destination office.

          staffId
          integer <int64>

          The id of the staff member you wish the group and/or client members to be associated with after the transfer.

          Note: The staffId must belong to the destinationOfficeId.

          Note: The user making the request must have visibility of the source and destination office.

          note
          string

          A note related to the requested transfer.

          Responses

          Request samples

          Content type
          application/json
          {
          • "destinationOfficeId": 1,
          • "staffId": 1,
          • "note": "description related to transfer."
          }

          Response samples

          Content type
          application/json
          {
          • "commandId": 400,
          • "resourceId": 12,
          • "rollbackTransaction": false
          }

          Clients

          Clients are people and businesses that have applied (or may apply) to an MFI for loans.

          List Clients

          List all Clients.

          See The Data Filter API for better approach to search/filter.

          Authorizations:
          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
          query Parameters
          offset
          integer
          Default: 0
          Examples:

            sets the offset for pagination, used in combination with limit

            limit
            integer
            Default: 200
            Examples:

              Sets the limit of records returned, if not provided the limit will be 200, if a higher limit than 2500 is provided limit will be restricted at 2500, pagination should be used to retrieve subsequent pages of data.

              search
              string

              Performs a partial matching search across the following properties of Client to see if they contain the search term:

              • account_no
              • external_id
              • firstname
              • middlename
              • lastname
              • display_name
              • Group display_name
              orderBy
              string
              Enum: "id" "external_id" "display_name"

              The SQL,Database name of the field

              sortOrder
              string

              DESC or ASC

              officeId
              integer

              The id of an office. Used to restrict to set of clients associated with the office.

              staffId
              integer

              The id of a staff member. Used to restrict to set of clients associated with the staff member.

              externalId
              string

              The externalId of a client. Used to restrict to set of clients where external id is like provided value. e.g. ABC-123% will find all clients that have externalId starting with ABC-123

              displayName
              string

              The display name of a client. Used to restrict to set of clients where display name is like provided value. e.g. john will find all clients that have display name with text 'john'

              firstname
              string

              The first name of a client. Used to restrict to set of clients where first name is like provided value. e.g. john will find all clients that have first name with text 'john'

              lastname
              string

              The last name of a client. Used to restrict to set of clients where last name is like provided value. e.g. smith will find all clients that have last name with text 'smith'

              hierarchy
              string

              The textual representation of the office hierarchy of a client.

              Used to restrict to set of clients where their office hierarchy is like provided value. e.g. '.2' will find all clients that have hierarchy starting with '.2'

              modifiedSinceTimestamp
              integer
              Examples:

                Should be passed as a UNIX Timestamp.

                When provided only clients that have been created or updated since the provided timestamp are returned.

                Clients will be marked as modified whenever there is any modification to the client.

                This parameter can be used in integrations to fetch changed data since a last fetch, timestamps will be treated as UTC and returned as UTC.

                orphansOnly
                boolean

                Use orphansOnly as true to list clients which are not associated to any group/parent.

                sqlSearch
                string
                Deprecated

                Deprecated. Use other parameters such as search or See The Data Filter API for better approach for search/filter.

                A valid sql fragment that will work with backend query for this api.

                If staffInOfficeHierarchy is false, and when supplied it will be used in the backend SQL Query where clause to restrict set of staff return.

                Responses

                Response samples

                Content type
                application/json
                [
                • {
                  }
                ]

                Create new Client

                The supported schema for creating a new client.

                officeId is mandatory when creating a client
                fullname or any of firstname, middlename, lastname must be provided as name for client
                active must be provided when creating a client, if true its possible client creation will fail if it is a member of a group and breaks group rules.
                dateFormat and locale are required even with no date fields at present. \

                Authorizations:
                (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                Request Body schema: application/json
                officeId
                required
                integer <int64>

                The id of the office this client is associated with.

                firstname
                string

                Facility to break up name into parts suitable for humans.

                middlename
                string

                Facility to break up name into parts suitable for humans.

                lastname
                string

                Facility to break up name into parts suitable for humans.

                fullname
                string

                Facility to set name of a client or business that doesn't suit the firstname,middlename,lastname structure.

                locale
                required
                string

                The locale to use when interpreting number and date fields in the request.

                dateFormat
                required
                string

                The date format to use when interpreting date fields in the request. Must be suported by Joda Time.

                active
                required
                boolean
                Default: false

                Indicates if this client should be created in active state on creation (status=300). If false, the client is created in a pending state (status=100).

                Defaults to false if omitted.

                activationDate
                string

                The date the client account was activated.
                This is only used when active is true and the account goes straight into active state on creation.
                It must be provided in a date format supported by Joda Time and described by dateFormat parameter.

                groupId
                integer <int64>

                The id of the group this client is associated with.

                staffId
                integer <int64>

                The id of the staff member dealing with the client office.
                The staff member is not specifically the loan officer.

                isStaff
                boolean

                Indicates if this client is a staff member also.

                genderId
                integer <int64>

                The id of the code value related to the code gender (see Code and Code Values)

                clientTypeId
                integer <int64>

                The id of the code value related to the code ClientType (see Code and Code Values)

                clientClassificationId
                integer <int64>

                The id of the code value related to the code ClientClassification (see Code and Code Values)

                savingsProductId
                integer <int64>

                The id of the default overdraft savings account product this client is associated with.

                legalFormId
                integer
                Enum: 1 2

                An integer representing the legal form of the client. 1 for Person, 2 for Entity If provided and set to 2 (for Entity) then

                tagIds
                Array of strings

                Tags are a way of classifying a client (see Tags for more details.)

                accountNo
                string

                If provided, its value is set as account no. for client account. Otherwise an auto generated account no. is put in place based on the configured strategy. (see Configuration: Account Number Format)

                If provided, it must be unique.

                externalId
                string

                A place to put an external reference for this resource e.g. The ID another system uses for it. If provided, it must be unique.

                dateOfBirth
                string

                The clients date of birth in a date format supported by Joda Time.

                mobileNo
                string

                Contact Details: The mobile telephone number of staff member. If provided it must be unique. This mobile number maybe be used by SMS or Mobile Money functionality.

                mobileNoSecondary
                string

                Contact Details; The secondary mobile telephone number of staff member.

                emailAddress
                string

                Contact Details; The clients email address

                submittedOnDate
                string

                The date the client application was submitted.
                If not provided, this date will default to the systems today date.
                It must be provided in a date format supported by Joda Time and described by dateFormat parameter.

                object (ClientNonPersonRequestModel)

                Business client related fields that are used when a client is created with legalFormId=2

                Array of objects

                Responses

                Request samples

                Content type
                application/json
                {
                • "officeId": 1,
                • "firstname": "John",
                • "middlename": "John",
                • "lastname": "Doe",
                • "fullname": "James Michael Patrick Anderson or ElectricBikes Ltd.",
                • "locale": "en",
                • "dateFormat": "dd MMMM yyyy",
                • "active": false,
                • "activationDate": "01 July 2007",
                • "groupId": 1,
                • "staffId": 1,
                • "isStaff": false,
                • "genderId": 218,
                • "clientTypeId": 0,
                • "clientClassificationId": 0,
                • "savingsProductId": 1,
                • "legalFormId": 1,
                • "tagIds": [
                  ],
                • "accountNo": "000-0001",
                • "externalId": "CLIENT-0001",
                • "dateOfBirth": "01 July 1970",
                • "mobileNo": "+353 78 90987877",
                • "mobileNoSecondary": "+353 78 90987000",
                • "emailAddress": "testmeout@musoni.eu",
                • "submittedOnDate": "01 July 2007",
                • "clientNonPersonDetails": {
                  },
                • "address": [
                  ]
                }

                Response samples

                Content type
                application/json
                {
                • "resourceId": 12
                }

                Find a client by id

                Find a client by id

                Authorizations:
                (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                path Parameters
                id
                required
                integer <int64>
                Example: 1

                The unique identifer of a client.

                query Parameters
                template
                boolean
                Default: false
                Example: template=false

                if true, returns all active staff in office hierarchy that are above the provided officeId.

                staffInSelectedOfficeOnly
                boolean
                Default: false
                Example: staffInSelectedOfficeOnly=false

                'Only relevant if template is true.

                If true, returns all active staff in office hierarchy associated with this client.'

                associations
                string
                Enum: "all" "clientGuarantees" "identifiers"

                Indications what additional details to bring back from areas associated with client

                Responses

                Response samples

                Content type
                application/json
                [
                • {
                  }
                ]

                Transfer Client

                Allows transfer of client to new office or group or both.

                Authorizations:
                (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                path Parameters
                id
                required
                integer <int64>
                Example: 1

                The unique identifer of a client.

                query Parameters
                command
                required
                string
                Default: "proposeAndAcceptTransfer"
                Example: command=proposeAndAcceptTransfer

                Command to indicate transfer of client

                Request Body schema: application/json
                destinationOfficeId
                required
                integer <int64>

                The id of the office this client is to be associated with after the transfer.

                It can be the same officeId as the client has in which case this transfer will not be an office transfer but a group transfer to group in same office.

                Note: The user making the request must have visibility of the source and destination office.

                destinationGroupId
                integer <int64>

                The id of the group this client is to be associated with after the transfer.

                Optional but if this transfer is not to another branch, then this becomes required.

                Note: The destinationGroupId must belong to the destinationOfficeId.

                Note: The user making the request must have visibility of the source and destination office.

                staffId
                integer <int64>

                The id of the staff member you wish the client and/or group to be associated with after the transfer.

                Note: The staffId must belong to the destinationOfficeId.

                Note: The user making the request must have visibility of the source and destination office.

                note
                string

                A note related to the requested transfer.

                Responses

                Request samples

                Content type
                application/json
                {
                • "destinationOfficeId": 1,
                • "destinationGroupId": 1,
                • "staffId": 1,
                • "note": "description related to transfer."
                }

                Response samples

                Content type
                application/json
                {
                • "commandId": 400,
                • "resourceId": 12,
                • "rollbackTransaction": false
                }

                Client Identifiers

                List Client Identifiers

                List all identifiers belonging to client.

                Authorizations:
                (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                path Parameters
                id
                required
                integer <int64>
                Example: 1

                The unique identifer of a client.

                Responses

                Response samples

                Content type
                application/json
                [
                • {
                  }
                ]

                Add Client Identifier to Client

                Creates a new client identifier and associates it with the client.

                Authorizations:
                (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                path Parameters
                id
                required
                integer <int64>
                Example: 1

                The unique identifer of a client.

                Request Body schema: application/json
                identifierTypeId
                integer <integer64>

                The id of an existing Client Identifer Type.

                documentKey
                string [ 1 .. 50 ] characters

                A value that together with the identifierTypeId provides a unique indentifier.

                description
                string [ 1 .. 500 ] characters

                A description of identifier type.

                status
                string
                Enum: "Active" "Inactive"

                A status of this identifier.

                Responses

                Request samples

                Content type
                application/json
                {
                • "identifierTypeId": 23,
                • "documentKey": "Passport",
                • "description": "Passport identity",
                • "status": "Active"
                }

                Response samples

                Content type
                application/json
                {
                • "resourceId": 12
                }

                Find Client Identifier By Id

                Find Client Identifier By Id

                Authorizations:
                (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                path Parameters
                id
                required
                integer <int64>
                Example: 1

                The unique identifer of a client.

                id
                required
                integer <int64>
                Example: 1

                The unique identifer of a client identifier.

                Responses

                Response samples

                Content type
                application/json
                {
                • "id": 23,
                • "clientId": 23,
                • "identifierType": {
                  },
                • "documentKey": "0001-000ABC",
                • "description": "Passport identity",
                • "status": "clientIdentifierStatus.active",
                • "validationPolicyExpression": "^.{1,12}$",
                • "validationPolicyCode": "national_id_countryname_validator"
                }

                Update an existing Client Identifier

                Update an existing Client Identifier

                Authorizations:
                (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                path Parameters
                id
                required
                integer <int64>
                Example: 1

                The unique identifer of a client.

                id
                required
                integer <int64>
                Example: 1

                The unique identifer of a client identifier.

                Request Body schema: application/json

                Update an existing Client Identifier

                identifierTypeId
                integer <integer64>

                The id of an existing Client Identifer Type.

                documentKey
                string [ 1 .. 50 ] characters

                A value that together with the identifierTypeId provides a unique indentifier.

                description
                string [ 1 .. 500 ] characters

                A description of identifier type.

                status
                string
                Enum: "Active" "Inactive"

                A status of this identifier.

                Responses

                Request samples

                Content type
                application/json
                {
                • "identifierTypeId": 23,
                • "documentKey": "Passport",
                • "description": "Passport identity",
                • "status": "Active"
                }

                Response samples

                Content type
                application/json
                {
                • "resourceId": 1,
                • "changes": { }
                }

                Delete an existing Client Identifier

                Delete an existing Client Identifier

                The deletion is a hard delete removing the client identifer entry and association with client.

                Authorizations:
                (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                path Parameters
                id
                required
                integer <int64>
                Example: 1

                The unique identifer of a client.

                id
                required
                integer <int64>
                Example: 1

                The unique identifer of a client identifier.

                Responses

                Response samples

                Content type
                application/json
                {
                • "resourceId": 1
                }

                Client Identifier Validation Policy

                List Validation Polices

                List all validation polices.

                Authorizations:
                (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)

                Responses

                Response samples

                Content type
                application/json
                [
                • {
                  }
                ]

                Create Validation Policy

                Creates new validation policy.

                Authorizations:
                (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                Request Body schema: application/json
                expressionValue
                required
                string [ 1 .. 255 ] characters

                A regular expression that is used as validation policy.

                validationType
                required
                string [ 1 .. 255 ] characters

                A unique name or code associated with this validation policy.

                description
                required
                string [ 1 .. 255 ] characters

                A description of what the regex validates.

                Responses

                Request samples

                Content type
                application/json
                {
                • "expressionValue": "^.{1,12}$",
                • "validationType": "national_id_countryname_validator",
                • "description": "1 character and not more that 12 characters long."
                }

                Response samples

                Content type
                application/json
                {
                • "resourceId": 12
                }

                Find Validation Policy By Id

                Find Validation Policy By Id

                Authorizations:
                (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                path Parameters
                id
                required
                integer <int64>
                Example: 1

                The unique identifer of a client identifier validation policy.

                Responses

                Response samples

                Content type
                application/json
                {
                • "id": 23,
                • "regex": "^.{1,12}$",
                • "description": "1 character and not more that 12 characters long.",
                • "code": "national_id_countryname_validator"
                }

                Update an existing Validation Policy

                Update an existing Validation Policy

                Authorizations:
                (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                path Parameters
                id
                required
                integer <int64>
                Example: 1

                The unique identifer of a client identifier validation policy.

                Request Body schema: application/json

                Update existing validation policy

                expressionValue
                string [ 1 .. 255 ] characters

                A regular expression that is used as validation policy.

                validationType
                string [ 1 .. 255 ] characters

                A unique name or code associated with this valiation policy.

                description
                string [ 1 .. 255 ] characters

                A description of what the regex validates.

                Responses

                Request samples

                Content type
                application/json
                {
                • "expressionValue": "^.{1,12}$",
                • "validationType": "national_id_countryname_validator",
                • "description": "1 character and not more that 12 characters long."
                }

                Response samples

                Content type
                application/json
                {
                • "resourceId": 1
                }

                Delete an existing Validation Policy

                Delete an existing Validation Policy

                The deletion is a hard delete fully removing the entry.

                Authorizations:
                (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                path Parameters
                id
                required
                integer <int64>
                Example: 1

                The unique identifer of a client identifier validation policy.

                Responses

                Response samples

                Content type
                application/json
                {
                • "resourceId": 1
                }

                Client Identifier Type

                List Client Identifier Types

                List all client identifier types.

                Authorizations:
                (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)

                Responses

                Response samples

                Content type
                application/json
                [
                • {
                  }
                ]

                Create Client Identifier Type

                Creates new client identifier type.

                Authorizations:
                (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                Request Body schema: application/json
                name
                string [ 1 .. 100 ] characters

                A unique name that identifies the type of identity this represents.

                description
                string [ 1 .. 500 ] characters

                A description of identifier type.

                validationPolicy
                integer <integer64>

                Unique id representing the validation policy.

                deleted
                boolean

                Indicates if identifier type is deleted

                mandatory
                boolean

                Indicates if identifier type is mandatory

                default
                boolean

                Indicates if identifier type is default

                Responses

                Request samples

                Content type
                application/json
                {
                • "name": "Passport",
                • "description": "Passport identity",
                • "validationPolicy": 23,
                • "deleted": false,
                • "mandatory": false,
                • "default": false
                }

                Response samples

                Content type
                application/json
                {
                • "resourceId": 12
                }

                Find Client Identifier Type By Id

                Find Client Identifier Type By Id

                Authorizations:
                (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                path Parameters
                id
                required
                integer <int64>
                Example: 1

                The unique identifer of a client identifier type.

                Responses

                Response samples

                Content type
                application/json
                {
                • "id": 23,
                • "name": "Passport",
                • "description": "Passport identity",
                • "validationPolicy": {
                  },
                • "deleted": false,
                • "mandatory": false,
                • "default": false
                }

                Update an existing Client Identifier Type

                Update an existing Client Identifier Type

                Authorizations:
                (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                path Parameters
                id
                required
                integer <int64>
                Example: 1

                The unique identifer of a client identifier type.

                Request Body schema: application/json

                Update existing Client Identifier Type

                name
                string [ 1 .. 100 ] characters

                A unique name that identifies the type of identity this represents.

                description
                string [ 1 .. 500 ] characters

                A description of identifier type.

                validationPolicy
                integer <integer64>

                Unique id representing the validation policy.

                mandatory
                boolean

                Indicates if identifier type is mandatory

                default
                boolean

                Indicates if identifier type is default

                Responses

                Request samples

                Content type
                application/json
                {
                • "name": "Passport",
                • "description": "Passport identity",
                • "validationPolicy": 23,
                • "mandatory": false,
                • "default": false
                }

                Response samples

                Content type
                application/json
                {
                • "resourceId": 1
                }

                Delete an existing Client Identifier Type

                Delete an existing Client Identifier Type

                The deletion is a soft delete marking the entry as deleted.

                Authorizations:
                (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                path Parameters
                id
                required
                integer <int64>
                Example: 1

                The unique identifer of a client identifier type.

                Responses

                Response samples

                Content type
                application/json
                {
                • "resourceId": 1
                }

                Blacklist

                Blacklisting enables the ability to blacklist a client using different client identifiers e.g (National ID number).

                The system will then block the creation of any client, savings account or loan account where any of these identifers are used.

                List Blacklist Entries

                List all blacklist entries.

                A blacklist entry is made up of documentType and documentKey.

                The documentType relates to a Client Identifier Type setup and the documentKey is the value of it e.g. National ID and National ID number or Passport and Passport number.

                The blacklist is used by account creation and approval APIs to verify the related client or account is not blacklisted.

                Authorizations:
                (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                query Parameters
                offset
                integer
                Default: 0
                Examples:

                  sets the offset for pagination, used in combination with limit

                  limit
                  integer
                  Default: 200
                  Examples:

                    Sets the limit of records returned, if not provided the limit will be 200, if a higher limit than 2500 is provided limit will be restricted at 2500, pagination should be used to retrieve subsequent pages of data.

                    orderBy
                    string

                    Expects a valid SQL fragment that is used in order by section of SQL statement.

                    e.g.
                    bl.document_type_id
                    bl.document_key

                    sortOrder
                    enum - ASC - DESC

                    Used with orderyBy to sort the results in the specified direction.

                    If orderyBy is not provided this parameter is ignored.

                    Responses

                    Response samples

                    Content type
                    application/json
                    {
                    • "totalFilteredRecords": 52,
                    • "pageItems": [
                      ]
                    }

                    Create new Blacklist entry

                    Adds an new entry to blacklist.

                    A blacklist entry is made up of documentTypeId and documentKey.

                    The documentTypeId relates to a Client Identifier Type setup and the documentKey is the value of it e.g. National ID and National ID number or Passport and Passport number.

                    The blacklist is used by account creation and approval APIs to verify the related client or account is not blacklisted.

                    Authorizations:
                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                    Request Body schema: application/json
                    documentTypeId
                    required
                    integer <int64>

                    The id of the client identifier type being used.

                    documentKey
                    required
                    string [ 1 .. 50 ] characters

                    A value associated with the documentTypeId selected.

                    The system will use this documentTypeId, documentKey pair when assessing if any accounts should be blocked.

                    note
                    string [ 1 .. 500 ] characters

                    A more detailed note or description in relation to this blacklist entry.

                    submittedOnDate
                    string

                    The date this blacklist entry was submitted in a date format supported by Joda Time.

                    If omitted when creating the blacklist entry, the date defaults to todays date.

                    locale
                    string

                    The locale to use when interpreting number and date fields in the request.

                    dateFormat
                    string

                    The date format to use when interpreting date fields in the request. Must be suported by Joda Time.

                    Responses

                    Request samples

                    Content type
                    application/json
                    {
                    • "documentTypeId": 10,
                    • "documentKey": "ABC-09878",
                    • "note": "Blacklisted due to loan default.",
                    • "submittedOnDate": "01 July 2007",
                    • "locale": "en",
                    • "dateFormat": "dd MMMM yyyy"
                    }

                    Response samples

                    Content type
                    application/json
                    {
                    • "resourceId": 12
                    }

                    Find a Blacklist entry by Id

                    Find a Blacklist entry by Id

                    Authorizations:
                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                    path Parameters
                    id
                    required
                    integer <int64>
                    Example: 1

                    The unique identifer of a blacklist entry.

                    Responses

                    Response samples

                    Content type
                    application/json
                    [
                    • {
                      }
                    ]

                    Update an existing blacklist entry

                    Update an existing blacklist entry.

                    Authorizations:
                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                    path Parameters
                    id
                    required
                    integer <int64>
                    Example: 1

                    The unique identifer of a blacklist entry.

                    Request Body schema: application/json

                    Update existing blacklist entry

                    documentTypeId
                    integer <int64>

                    The id of the client identifier type being used.

                    documentKey
                    string [ 1 .. 50 ] characters

                    A value associated with the documentTypeId selected.

                    The system will use this documentTypeId, documentKey pair when assessing if any accounts should be blocked.

                    note
                    string [ 1 .. 500 ] characters

                    A more detailed note or description in relation to this blacklist entry.

                    Responses

                    Request samples

                    Content type
                    application/json
                    {
                    • "documentTypeId": 10,
                    • "documentKey": "ABC-09878",
                    • "note": "Blacklisted due to loan default."
                    }

                    Response samples

                    Content type
                    application/json
                    {
                    • "resourceId": 1
                    }

                    Delete an existing blacklist entry

                    Delete an existing blacklist entry.

                    The deletion is a soft delete, marking the entry as not active.

                    Authorizations:
                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                    path Parameters
                    id
                    required
                    integer <int64>
                    Example: 1

                    The unique identifer of a blacklist entry.

                    Responses

                    Response samples

                    Content type
                    application/json
                    {
                    • "resourceId": 1
                    }

                    Blacklist A Client

                    Blacklist an existing Client.

                    The process takes the Client Identifier Types associated with the existing client and adds them to the blacklist.

                    This has the effect of blacklisting the client.

                    Authorizations:
                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                    path Parameters
                    clientId
                    required
                    integer <int64>
                    Example: 1

                    The unique identifer of a client.

                    Responses

                    Response samples

                    Content type
                    application/json
                    {
                    • "clientId": 1
                    }

                    Credit Bureaus

                    The creditbureaus api allows access to creditbureau data stored in Musoni through pre-integrated CRB providers.

                    List Credit Bureaus

                    List all Credit Bureaus

                    Authorizations:
                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                    query Parameters
                    creditbureauIdentifier
                    string

                    looks up a creditbureau by identifier, eg mcix/metropol etc.

                    Responses

                    Response samples

                    Content type
                    application/json
                    [
                    • {
                      }
                    ]

                    Find Credit Bureau by Id

                    Find Credit Bureau member by id

                    Authorizations:
                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                    path Parameters
                    id
                    required
                    integer <int64>
                    Example: 1

                    The unique identifer of the selected resource.

                    Responses

                    Response samples

                    Content type
                    application/json
                    [
                    • {
                      }
                    ]

                    List Reference Requests for a credit bureau

                    List Credit reference requests for Credit bureau, without parameters will only return 200 results. This endpoint will return all requests, including failed requests

                    Authorizations:
                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                    query Parameters
                    clientId
                    string

                    Looks up credit reference requests for a specific clientId

                    loanId
                    string

                    Looks up credit reference requests for a specific loanId

                    Responses

                    Response samples

                    Content type
                    application/json
                    [
                    • {
                      }
                    ]

                    Find Credit Reference request by Id

                    Find Reference request by Id

                    Authorizations:
                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                    path Parameters
                    bureauId
                    required
                    integer <int64>
                    Example: 1

                    The id of the bureau being used

                    referenceRequestId
                    required
                    integer <int64>
                    Example: 1

                    The unique identifer of the selected resource.

                    Responses

                    Response samples

                    Content type
                    application/json
                    [
                    • {
                      }
                    ]

                    List Reference Responses for a credit bureau

                    List succesfully completed Credit reference responses for Credit bureau, without parameters will only return 200 results. This endpoint will not return any failed requests

                    Authorizations:
                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                    query Parameters
                    clientId
                    string

                    Looks up credit reference requests for a specific clientId

                    loanId
                    string

                    Looks up credit reference requests for a specific loanId

                    Responses

                    Response samples

                    Content type
                    application/json
                    [
                    • {
                      }
                    ]

                    Loan Product

                    Create New Loan Product

                    The supported schema for creating a new loan product.

                    Authorizations:
                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                    Request Body schema: application/json
                    locale
                    required
                    string

                    The locale to use when interpreting number and date fields in the request.

                    dateFormat
                    required
                    string

                    The date format to use when interpreting date fields in the request. Must be suported by Joda Time.

                    name
                    required
                    string [ 1 .. 100 ] characters

                    The full name of the loan product.

                    shortName
                    required
                    string = 4 characters

                    The short name of the loan product.

                    An abbreviated version of the name, used in reports or menus where space is limited.

                    description
                    string <= 500 characters

                    A description to provide users with more information about the product.

                    productGroupId
                    integer <integer64>

                    The id of associated product group.

                    fundId
                    integer <integer64>

                    The id of associated fund source.

                    The original source of your funds (for example a grant).

                    loanIncomeTaxGroupId
                    integer <integer64>

                    The id of associated TaxGroup to be used for tax on loan income.

                    If provided, it means that loan accounts created against this product will support tax on their income.

                    Only supported when the Periodic Accruals accounting is configured accountingRule=3.

                    if provided, interestTaxOnLoanAccountId should also be supplied so Tax on Interest can be booked against it.

                    currencyCode
                    required
                    string <= 3 characters

                    Relates to the the currency of the loan product. A three character identifer of currency this loan product uses.

                    digitsAfterDecimal
                    required
                    integer

                    Relates to the the currency of the loan product. The number of digits after decimal to be supported on the currency.

                    inMultiplesOf
                    integer

                    Relates to the the currency of the loan product. Relevant for currencies where digitsAfterDecimal is zero. This will round the monetary amount to the nearest multiple.

                    installmentAmountInMultiplesOf
                    required
                    integer

                    Relates to the loan repayment schedule.

                    This will round the monetary amount of an installment to the nearest multiple.

                    Must be greater than or equal to inMultiplesOf and if greater than it, a multiple of inMultiplesOf.

                    principal
                    number <decimal>

                    The principal is the default amount that can be shown to users by when creating a new loan via forms.

                    Can be used with minPrincipal and maxPrincipal to put bounds on the size of loans that use this product.

                    minPrincipal
                    number <decimal>

                    The minimum size of any loan under this loan product.

                    See also principal and maxPrincipal.

                    maxPrincipal
                    number <decimal>

                    The maximum size of any loan under this loan product.

                    See also principal and minPrincipal.

                    numberOfRepayments
                    required
                    integer

                    The numberOfRepayments is the default number of installments that is shown to users when creating a new loan via forms.

                    Can be used with minNumberOfRepayments and maxNumberOfRepayments to put bounds on the number of installments allowed in loans that use this product.

                    minNumberOfRepayments
                    integer

                    The minNumberOfRepayments is the minimum number of installments allowed in loans that use this product.

                    See also numberOfRepayments and maxNumberOfRepayments.

                    maxNumberOfRepayments
                    integer

                    The maxNumberOfRepayments is the maximum number of installments allowed in loans that use this product.

                    See also numberOfRepayments and minNumberOfRepayments.

                    repaymentEvery
                    required
                    integer

                    Used together with repaymentFrequencyType to indicate the length of time between installments.

                    repaymentFrequencyType
                    required
                    integer
                    Enum: 0 1 2 3

                    Used together with repaymentEvery to indicate the length of time between installments.

                    Supported options are: 0=Days 1=Weeks 2=Months 3=Years

                    isLinkedToFloatingInterestRates
                    boolean
                    Default: false

                    A boolean that indicates if the product is using the "floating" interest rates concept or not.

                    if false, interestRatePerPeriod, interestRateFrequencyType and minInterestRatePerPeriod, maxInterestRatePerPeriod are applicable.

                    if true, floatingRatesId, interestRateDifferential, minDifferentialLendingRate, maxDifferentialLendingRate, defaultDifferentialLendingRate and isFloatingInterestRateCalculationAllowed are applicable.

                    interestRatePerPeriod
                    number <decimal>

                    The default interest rate shown to user that create loans via forms.

                    Can be used with minInterestRatePerPeriod and maxInterestRatePerPeriod to put bounds on the interest rate allowed in loans that use this product.

                    Used with interestRateFrequencyType to describe the interest rate.

                    Mandatory if isLinkedToFloatingInterestRates is false.

                    minInterestRatePerPeriod
                    number <decimal>

                    The minimum interest rate allowed in loans that use this product.

                    See also interestRatePerPeriod and maxInterestRatePerPeriod.

                    maxInterestRatePerPeriod
                    number <decimal>

                    The maximum interest rate allowed in loans that use this product.

                    See also interestRatePerPeriod and minInterestRatePerPeriod.

                    interestRateFrequencyType
                    integer
                    Enum: 2 3

                    Used together with interestRatePerPeriod to indicate the length of time the interest is applicable to.

                    Supported options are: 2=Months 3=Years

                    Mandatory if isLinkedToFloatingInterestRates is false.

                    floatingRatesId
                    integer <integer64>

                    The id on a floating rate entry on the system.

                    interestRateDifferential
                    number <decimal>

                    The difference between the base rate and this loan products floating interest rate.

                    minDifferentialLendingRate
                    number <decimal>

                    The min allowed difference between the base rate and this loan products floating interest rate.

                    maxDifferentialLendingRate
                    number <decimal>

                    The max allowed difference between the base rate and this loan products floating interest rate.

                    defaultDifferentialLendingRate
                    number <decimal>

                    The default difference between the base rate and this loan products floating interest rate.

                    isFloatingInterestRateCalculationAllowed
                    boolean
                    Default: false

                    A boolean that indicates if floating interest rate caclulation is allowed.

                    repayPrincipalEvery
                    integer

                    Related to Multiple Balloon Repayments concept. If provided and greater than zero, used to force principal to be paid every [repayPrincipalEvery] installments.

                    repayInterestEvery
                    integer

                    Related to Multiple Balloon Repayments concept.If provided and greater than zero, used to force interest to be paid every [repayInterestEvery] installments.

                    firstRepaymentOffsetPeriod
                    integer

                    firstRepaymentOffsetPeriod is used with repaymentFrequencyType to configure the offset of the first repayment date from the disbursement date.

                    For example, if the repaymentFrequencyType is months, the disbursement date is set to the 5th of September, and the value 3 is entered, then the first repayment date will become 5th of December.

                    See also repaymentFrequencyType.

                    allowVariableInstallments
                    boolean
                    Default: false

                    Use 'allowVariableInstallments' if you wish to be able to change the repayment schedule.

                    Example - if minimumGap = 1, maximumGap = 10 and installment 1 due date = 01-06-2019,
                    then installment 2 due date must be between 01-06-2019 and 11-06-2019

                    If true, then minimumGap, maximumGap are mandatory

                    minimumGap
                    integer

                    Mandatory if allowVariableInstallments is true, used to indicate the minimum number of days the adjusted repayment schedule can be away from original.

                    maximumGap
                    integer

                    Mandatory if allowVariableInstallments is true, used to indicate the maximum number of days the adjusted repayment schedule can be away from original.

                    graceOnPrincipalPayment
                    integer

                    If populated, indicates the number of installments you wish your grace period on principal payments to be.

                    graceOnInterestPayment
                    integer

                    If populated, indicates the number of installments you wish your grace period on interest payments to be.

                    graceOnInterestCharged
                    integer

                    If populated, indicates the number of installments you wish there to be no interest charged / calculated for.

                    graceOnPrincipalAndInterestPayment
                    boolean
                    Default: false

                    Related to attribute overrides for loans. see allowAttributeOverrides

                    graceOnArrearsAgeing
                    boolean
                    Default: false

                    Related to attribute overrides for loans. see allowAttributeOverrides

                    inArrearsTolerance
                    number <decimal>
                    Deprecated

                    Deprecated from 1.45. No longer used.

                    standingInstruction
                    boolean
                    Deprecated
                    Default: false

                    Deprecated. if passed as direct parameter not processed or used. Related to attribute overrides for loans. see allowAttributeOverrides

                    allowAdditionalCharges
                    boolean
                    Deprecated
                    Default: true

                    If false, when adding or editing loans with this product users will not be allowed to add additional charges to the loan.

                    Deprecated. if passed as direct parameter not processed or used. Related to attribute overrides for loans. see allowAttributeOverrides

                    canUseForTopup
                    boolean
                    Default: false

                    if true, a new loan of this product type is allowed to top-up an existing loan of the client.

                    interestType
                    required
                    integer
                    Enum: 0 1

                    Relates to the Interest Calculation.

                    Dictates how the the interest is calculated for the loan schedule.

                    Supported options are: 0=Declining Balance 1=Flat

                    Flat Interest loans charge equal interest amounts on each loan instalment, based on the original loan principal.

                    Declining Balance loans calculate the interest amount on each instalment based upon the outstanding balance of the loan (therefore the interest amount charged on each instalment reduces as the loan is repaid).

                    isInterestRecalculationEnabled
                    boolean
                    Default: false

                    Mandatory and only applicable if interestType = 0 (Declining Balance).

                    Used to denote whether interest recalculation is enabled or disabled. When a client falls into arrears, additional interest will be recalculated.

                    On declining balance loans interest is always calculated across the new loan term.

                    allowPartialPeriodInterestCalcualtion
                    boolean
                    Default: false

                    Only Applicable if interestCalculationPeriodType = 1 (Same as Repayment Period)

                    recalculateInterestOnArrears
                    boolean
                    Default: false

                    Only Applicable if isInterestRecalculationEnabled = 1 determines if interest will be recalculated on arrears.

                    interestRecalculationCompoundingMethod
                    integer
                    Enum: 0 1 2 3

                    Mandatory and only applicable if isInterestRecalculationEnabled is true.

                    Only supported if interestCalculationPeriodType is Daily and allowPartialPeriodInterestCalcualtion is true Or if interestCalculationPeriodType is not Daily and allowPartialPeriodInterestCalcualtion is false

                    Supported options are: 0=None 1=Interest 2=Fee 3=Interest and Fee

                    When a client falls into arrears, additional interest is calculated.

                    Use this setting to determine whether the new interest amount is calculated on fees, interest or fees & interest.

                    rescheduleStrategyMethod
                    integer
                    Enum: 1 2 3

                    Mandatory and only applicable if isInterestRecalculationEnabled is true.

                    Supported options are: 1=Reschedule next repayments 2=Reduce number of installements 3=Reduce installment amount (Reduce EMI Amount)

                    Select 2="Reduce number of installments" if you wish the loan to finish earlier in the case of early repayments

                    Select 3="Reduce installment amount" if you wish the interest due on future installments to be reduced in the case of early repayments.

                    recalculationRestFrequencyType
                    integer
                    Enum: 1 2 3 4

                    Mandatory and only applicable if isInterestRecalculationEnabled is true.

                    Supported options are: 1=Same as repayment period 2=Daily 3=Weekly 4=Monthly

                    Use 2=Daily if you wish interest to be calculated on the outstanding loan balance from the previous day. Use 3=weekly for the previous week Use 4=monthly for the previous month.

                    Using 0=Same as Repayment period will use the repayment frequency of the loan itself.

                    recalculationRestFrequencyInterval
                    integer

                    Optional and only applicable if isInterestRecalculationEnabled is true and recalculationRestFrequencyType not 1=Same as repayment period

                    Not supported through Musoni UI #TODO review if needed

                    recalculationRestFrequencyNthDayType
                    integer

                    Optional and only applicable if isInterestRecalculationEnabled is true and recalculationRestFrequencyType not 1=Same as repayment period

                    Not supported through Musoni UI #TODO review if needed

                    recalculationRestFrequencyDayOfWeekType
                    integer

                    Optional and only applicable if isInterestRecalculationEnabled is true and recalculationRestFrequencyType not 1=Same as repayment period

                    Not supported through Musoni UI #TODO review if needed

                    recalculationRestFrequencyOnDayType
                    integer

                    Optional and only applicable if isInterestRecalculationEnabled is true and recalculationRestFrequencyType not 1=Same as repayment period

                    Not supported through Musoni UI #TODO review if needed

                    recalculationCompoundingFrequencyInterval
                    integer

                    Optional and only applicable if isInterestRecalculationEnabled is true and interestRecalculationCompoundingMethod not 0=None

                    Not supported through Musoni UI #TODO review if needed

                    recalculationCompoundingFrequencyNthDayType
                    integer

                    Optional and only applicable if isInterestRecalculationEnabled is true and interestRecalculationCompoundingMethod not 0=None

                    Not supported through Musoni UI #TODO review if needed

                    recalculationCompoundingFrequencyDayOfWeekType
                    integer

                    Optional and only applicable if isInterestRecalculationEnabled is true and interestRecalculationCompoundingMethod not 0=None

                    Not supported through Musoni UI #TODO review if needed

                    recalculationCompoundingFrequencyOnDayType
                    integer

                    Optional and only applicable if isInterestRecalculationEnabled is true and interestRecalculationCompoundingMethod not 0=None

                    Not supported through Musoni UI #TODO review if needed

                    isArrearsBasedOnOriginalSchedule
                    boolean

                    Optional and only applicable if isInterestRecalculationEnabled is true.

                    Not supported through Musoni UI #TODO review if needed

                    isCompoundingToBePostedAsTransaction
                    boolean

                    Optional and only applicable if isInterestRecalculationEnabled is true.

                    Not supported through Musoni UI #TODO review if needed

                    preClosureInterestCalculationStrategy
                    integer
                    Enum: 1 2

                    Optional and only applicable if isInterestRecalculationEnabled is true.

                    Supported options are: 1=TILL_PRE_CLOSURE_DATE 2=TILL_REST_FREQUENCY_DATE

                    When a customer pays off a loan ahead of schedule and not on the due date of the installment, \n this option controls whether the interest is calculated on the date of the transaction, \n or uses interest as per the end date of the current installment.

                    inDuplum
                    boolean

                    Optional and only applicable if isInterestRecalculationEnabled is true.

                    if true, the system will stop calculating additional (penalty) interest on loans in arrears once the total interest, fees and penalties outstanding is the same as the outstanding principal.

                    This only applies to interest recalculation loans.

                    amortizationType
                    required
                    integer
                    Enum: 0 1

                    Relates to the the repayment schedule.

                    Dictates how the the loan is amortized over the loan schedule.

                    Supported options are: 0=Equal Principal 1=Equal Installments

                    Mandatory and only relevant if interestType=0 (Declining Balance).

                    Selecting 0=Equal Principal ensures that the principal of the loan installment remains the same through the loan term (with the interest and installment size therefore declining).

                    Selecting 1=Equal Installments ensures the principal is adjusted to ensure equal installment sizes.

                    interestCalculationPeriodType
                    required
                    integer
                    Default: 1
                    Enum: 0 1

                    Relates to the the repayment schedule.

                    Dictates how the the interest is calculated for the loan schedule.

                    Supported options are: 0=Daily 1=Same as repayment period

                    Defaults to 1="Same as Repayment Period". This ensures that all loans of the same loan term have the same interest amount charged over the course of the loan.

                    Selecting 0=Daily means that the interest amount charged on a loan product will vary slightly based on the number of days in the months over which the loan term runs.

                    daysInYearType
                    required
                    integer
                    Enum: 1 360 364 365

                    An enumeration that indicates the number of days in year to be used.

                    This determines whether the daily interest rate is calculated by dividing the ‘Nominal Annual Interest Rate’ by 360, or 365.

                    Supported options are: 1=Actual 360=360 364=364 365=365

                    daysInMonthType
                    required
                    integer
                    Enum: 1 30

                    An enumeration that indicates the number of days in month to be used.

                    Specifies the number of days in a Month, used to calculate partial periods for monthly loans.

                    Supported options are: 1=Actual 30=30

                    transactionProcessingStrategyId
                    required
                    integer
                    Enum: 1 5 6

                    An id of the transaction or payment processing strategy to be used when payments are made against loan.

                    This relates to functionality that is also known as Payment Application Logic.

                    A number of out of the box approaches exist and custom approaches can be added if required.

                    Determines the order in which Interest, Principal, Penalties and Fees are paid off when repayments are made.

                    Supported options are: 1=Stanard (Penalties, Fees, Interest, Principal order) 5=Principal, Interest, Penalties, Fees Order 6=Interest, Principal, Penalties, Fees Order

                    includeInBorrowerCycle
                    boolean
                    Default: false

                    Used to denote whether the loans should include in loan cycle counter or not.

                    holdGuaranteeFunds
                    boolean
                    Default: false

                    If true, a guarantor will not be able to withdraw funds linked as a guarantee to the loan until the loan is repaid.

                    if true, see mandatoryGuarantee.

                    mandatoryGuarantee
                    number <decimal>

                    Mandatory and only applicable if holdGuaranteeFunds is true.

                    This is the percentage of the loan that has to be guaranteed before the loan can be created.

                    minimumGuaranteeFromOwnFunds
                    number <decimal>

                    This is the minimum percentage that has to be guaranteed from the client's own savings, rather than the savings of other guarantors.

                    minimumGuaranteeFromGuarantor
                    number <decimal>

                    This is the minimum percentage that any other guarantors have to guarantee for the loan to be created.

                    splitInterestAmongGuarantors
                    boolean
                    Default: false

                    Mandatory and only applicable if holdGuaranteeFunds is true.

                    If true, then when the loan is fully repaid, the interest from the loan will be paid into each guarantor's savings account in proportion to the percentage of the loan they guaranteed.

                    canAutoAllocateOverpayments
                    boolean
                    Default: false

                    If true then if the loan is overpaid, the overpaid amount will be automatically transferred to the linked savings account.

                    If there is no linked savings account, the overpaid amount has to be transferred manually. This will also apply to already active accounts.

                    autoDisburse
                    boolean
                    Default: false

                    If true, newly created loans will automatically be approved and disbursed.

                    paymentTypeId
                    integer
                    Value: 1

                    Mandatory if autoDisburse is true.

                    checkNumber
                    string <= 45 characters

                    Optional and only applicable if autoDisburse is true

                    receiptNumber
                    string <= 45 characters

                    Mandatory if autoDisburse is true.

                    restrictSavingsProductId
                    integer <integer64>

                    The id of an existing savings product.

                    Linked savings account will then be required to be associated with this selected savings product.

                    requiresLinkedSavingsAccount
                    boolean

                    Used to indicate if a linked savings account is required or not.

                    requiresMandatorySavings
                    boolean

                    Optional and only applicable if requiresLinkedSavingsAccount is true.

                    mandatorySavingsMethod
                    string
                    Enum: "UPFRONT" "SPREAD"

                    Mandatory and only applicable if requiresMandatorySavings is true.

                    mandatorySavingsPercentage
                    number <decimal>

                    Mandatory and only applicable if requiresMandatorySavings is true.

                    object
                    accountingRule
                    integer
                    Enum: 1 2 3 4

                    Indicates what type of accounting is enabled for this loan product.

                    Supported options are: 1=None 2=Cash Based Accounting 3=Accrual Periodic 4=Accrual Upfront

                    fundSourceAccountId
                    integer <integer64>

                    The id of a GL Account

                    loanPortfolioAccountId
                    integer <integer64>

                    The id of a GL Account

                    transfersInSuspenseAccountId
                    integer <integer64>

                    The id of a GL Account

                    interestOnLoanAccountId
                    integer <integer64>

                    The id of a GL Account

                    incomeFromFeeAccountId
                    integer <integer64>

                    The id of a GL Account

                    incomeFromPenaltyAccountId
                    integer <integer64>

                    The id of a GL Account

                    incomeFromRecoveryAccountId
                    integer <integer64>

                    The id of a GL Account

                    writeOffAccountId
                    integer <integer64>

                    The id of a GL Account

                    overpaymentLiabilityAccountId
                    integer <integer64>

                    The id of a GL Account

                    receivableInterestAccountId
                    integer <integer64>

                    The id of a GL Account

                    receivableFeeAccountId
                    integer <integer64>

                    The id of a GL Account

                    receivablePenaltyAccountId
                    integer <integer64>

                    The id of a GL Account

                    interestWriteOffAccountId
                    integer <integer64>

                    The id of a GL Account

                    feeWriteOffAccountId
                    integer <integer64>

                    The id of a GL Account

                    penaltyWriteOffAccountId
                    integer <integer64>

                    The id of a GL Account

                    suspendedInterestIncomeAccountId
                    integer <integer64>

                    The id of a GL Account

                    interestTaxOnLoanAccountId
                    integer <integer64>

                    The id of a GL account.

                    This GL account is used to book tax on interest when the tax feature is setup for loans and Periodic Accrual accounting is used.

                    Responses

                    Request samples

                    Content type
                    application/json
                    {
                    • "locale": "en",
                    • "dateFormat": "dd MMMM yyyy",
                    • "name": "Green Loans 1",
                    • "shortName": "Green Loans 1",
                    • "description": "12.5% Declining Balance",
                    • "productGroupId": 1,
                    • "fundId": 1,
                    • "loanIncomeTaxGroupId": 1,
                    • "currencyCode": "KES",
                    • "digitsAfterDecimal": 0,
                    • "inMultiplesOf": 1,
                    • "installmentAmountInMultiplesOf": 1,
                    • "principal": 1000.5,
                    • "minPrincipal": 100,
                    • "maxPrincipal": 100,
                    • "numberOfRepayments": 1,
                    • "minNumberOfRepayments": 1,
                    • "maxNumberOfRepayments": 1,
                    • "repaymentEvery": 1,
                    • "repaymentFrequencyType": 2,
                    • "isLinkedToFloatingInterestRates": false,
                    • "interestRatePerPeriod": 10.5,
                    • "minInterestRatePerPeriod": 10.5,
                    • "maxInterestRatePerPeriod": 10.5,
                    • "interestRateFrequencyType": 2,
                    • "floatingRatesId": 1,
                    • "interestRateDifferential": 2.5,
                    • "minDifferentialLendingRate": 1,
                    • "maxDifferentialLendingRate": 4,
                    • "defaultDifferentialLendingRate": 2.5,
                    • "isFloatingInterestRateCalculationAllowed": false,
                    • "repayPrincipalEvery": 1,
                    • "repayInterestEvery": 1,
                    • "firstRepaymentOffsetPeriod": 1,
                    • "allowVariableInstallments": false,
                    • "minimumGap": 1,
                    • "maximumGap": 1,
                    • "graceOnPrincipalPayment": 1,
                    • "graceOnInterestPayment": 1,
                    • "graceOnInterestCharged": 1,
                    • "graceOnPrincipalAndInterestPayment": false,
                    • "graceOnArrearsAgeing": false,
                    • "inArrearsTolerance": 0,
                    • "standingInstruction": false,
                    • "allowAdditionalCharges": false,
                    • "canUseForTopup": false,
                    • "interestType": 0,
                    • "isInterestRecalculationEnabled": false,
                    • "allowPartialPeriodInterestCalcualtion": false,
                    • "recalculateInterestOnArrears": false,
                    • "interestRecalculationCompoundingMethod": 1,
                    • "rescheduleStrategyMethod": 1,
                    • "recalculationRestFrequencyType": 1,
                    • "recalculationRestFrequencyInterval": 1,
                    • "recalculationRestFrequencyNthDayType": 1,
                    • "recalculationRestFrequencyDayOfWeekType": 1,
                    • "recalculationRestFrequencyOnDayType": 1,
                    • "recalculationCompoundingFrequencyInterval": 1,
                    • "recalculationCompoundingFrequencyNthDayType": 1,
                    • "recalculationCompoundingFrequencyDayOfWeekType": 1,
                    • "recalculationCompoundingFrequencyOnDayType": 1,
                    • "isArrearsBasedOnOriginalSchedule": false,
                    • "isCompoundingToBePostedAsTransaction": false,
                    • "preClosureInterestCalculationStrategy": 1,
                    • "inDuplum": false,
                    • "amortizationType": 1,
                    • "interestCalculationPeriodType": 1,
                    • "daysInYearType": 1,
                    • "daysInMonthType": 1,
                    • "transactionProcessingStrategyId": 1,
                    • "includeInBorrowerCycle": false,
                    • "holdGuaranteeFunds": false,
                    • "mandatoryGuarantee": 0,
                    • "minimumGuaranteeFromOwnFunds": 0,
                    • "minimumGuaranteeFromGuarantor": 0,
                    • "splitInterestAmongGuarantors": false,
                    • "canAutoAllocateOverpayments": false,
                    • "autoDisburse": false,
                    • "paymentTypeId": 1,
                    • "checkNumber": 1,
                    • "receiptNumber": 1,
                    • "restrictSavingsProductId": 1,
                    • "requiresLinkedSavingsAccount": false,
                    • "requiresMandatorySavings": false,
                    • "mandatorySavingsMethod": "UPFRONT",
                    • "mandatorySavingsPercentage": 0,
                    • "allowAttributeOverrides": {
                      },
                    • "accountingRule": 2,
                    • "fundSourceAccountId": 0,
                    • "loanPortfolioAccountId": 0,
                    • "transfersInSuspenseAccountId": 0,
                    • "interestOnLoanAccountId": 0,
                    • "incomeFromFeeAccountId": 0,
                    • "incomeFromPenaltyAccountId": 0,
                    • "incomeFromRecoveryAccountId": 0,
                    • "writeOffAccountId": 0,
                    • "overpaymentLiabilityAccountId": 0,
                    • "receivableInterestAccountId": 0,
                    • "receivableFeeAccountId": 0,
                    • "receivablePenaltyAccountId": 0,
                    • "interestWriteOffAccountId": 0,
                    • "feeWriteOffAccountId": 0,
                    • "penaltyWriteOffAccountId": 0,
                    • "suspendedInterestIncomeAccountId": 0,
                    • "interestTaxOnLoanAccountId": 0
                    }

                    Response samples

                    Content type
                    application/json
                    {
                    • "resourceId": 12
                    }

                    Activate Loan Product

                    Activates a closed loan product.

                    Authorizations:
                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                    path Parameters
                    id
                    required
                    integer <int64>
                    Example: 1

                    The unique identifer of a Loan Product.

                    query Parameters
                    command
                    required
                    string
                    Example: command=activate

                    The activate command.

                    Request Body schema: application/json
                    any or null

                    Responses

                    Request samples

                    Content type
                    application/json
                    null

                    Response samples

                    Content type
                    application/json
                    {
                    • "resourceId": 12,
                    • "changes": {
                      }
                    }

                    Close Loan Product

                    Closes an active loan product.

                    Authorizations:
                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                    path Parameters
                    id
                    required
                    integer <int64>
                    Example: 1

                    The unique identifer of a Loan Product.

                    query Parameters
                    command
                    required
                    string
                    Example: command=close

                    The close command.

                    Request Body schema: application/json
                    any or null

                    Responses

                    Request samples

                    Content type
                    application/json
                    null

                    Response samples

                    Content type
                    application/json
                    {
                    • "resourceId": 12,
                    • "changes": {
                      }
                    }

                    Loans

                    List Loans

                    List all Loans

                    See The Data Filter API for better approach to search/filter.

                    Authorizations:
                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                    query Parameters
                    offset
                    integer
                    Default: 0
                    Examples:

                      sets the offset for pagination, used in combination with limit

                      limit
                      integer
                      Default: 200
                      Examples:

                        Sets the limit of records returned, if not provided the limit will be 200, if a higher limit than 2500 is provided limit will be restricted at 2500, pagination should be used to retrieve subsequent pages of data.

                        search
                        string
                        Example: search=John Doe

                        Searches (matching around) across:

                        • Group name
                        • Staff name
                        • Client name
                        • Loan product name
                        • Loan account number
                        • Outstanding loan amount (if search is a number)
                        • Loan principal Disbursed (if search is a number)
                        • Disbursement date (if search is a date)
                        officeId
                        integer

                        The id of an office. Used to restrict to set of staff associated with the office.

                        externalId
                        string
                        Example: externalId=L00001

                        if provided only loans with this exact externalId will be returned

                        staffId
                        integer

                        id of a staff/loanofficer, if provided will only return the loans linked to this staff id

                        groupId
                        integer

                        id of a staff/loanofficer, if provided will only return the loans linked to this staff id

                        underHierarchy
                        string
                        Example: underHierarchy=.2.3

                        if provided only loans that exist under the hierarchy provided will be return (office + child offices)

                        orderBy
                        string
                        Enum: "id" "loan_status_id" "submittedon_date" "disbursedon_date" "expectedmaturedon_date" "firstrepaymenton_date" "principal_amount"

                        The database field name that you wish to order the list of loans by.

                        sortOrder
                        string
                        Enum: "ASC" "DESC"

                        Used with orderBy parameter, this indicates the sorting order of the attribute mentioned in orderBy. This parameter is ignored unless orderBy is provided also.

                        accountNo
                        string
                        Example: accountNo=L00001

                        if provided only loans with this exact accountNo will be returned

                        skipRowCount
                        boolean
                        Default: false
                        Example: skipRowCount=false

                        if true, does not return rowcount, improving search speed.

                        disbursementFromDate
                        string
                        Example: disbursementFromDate=2020-01-01

                        Allows to only return a subset of loans based on disbursement date, should be provided in format "yyyy-MM-dd"

                        disbursementToDate
                        string
                        Example: disbursementToDate=2021-01-01

                        Allows to only return a subset of loans based on disbursement date, should be provided in format "yyyy-MM-dd"

                        clientOfficeName
                        string
                        Example: clientOfficeName=Head office

                        Only returns loans that are part of an exact office name.

                        modifiedSinceTimestamp
                        integer
                        Examples:

                          Should be passed as a UNIX Timestamp.

                          When provided only loans that have been created or updated since the provided timestamp are returned.

                          Loans will be marked as modified whenever there is any modification to the loan, the underlying schedule, transactions, charges etc.

                          This parameter can be used in integrations to fetch changed data since a last fetch, timestamps will be treated as UTC and returned as UTC.

                          sqlSearch
                          string
                          Deprecated

                          Deprecated. Use other parameters such as search or See The Data Filter API for better approach for search/filter.

                          A valid sql fragment that will work with backend query for this api.

                          Responses

                          Response samples

                          Content type
                          application/json
                          [
                          • {
                            }
                          ]

                          Create New Loan or Calculate Loan Schedule

                          Create new Loan or use command=calculateLoanSchedule to calculate a repayment schedule using loan terms.

                          Authorizations:
                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                          Request Body schema: application/json
                          loanType
                          required
                          string
                          Enum: "individual" "group" "jlg"

                          This fields indicates the type of loan that is being applied for.

                          Three types of loans are supported at present:

                          • individual - (loans where a single person or business applies for loan)
                          • group (loans where several persons group together to receive loan)
                          • jlg (loans where several persons group together and are jointly liable for entire loan)
                          productId
                          required
                          integer <integer64>

                          The id of associated loan product.

                          clientId
                          integer <integer64>

                          The id of an existing client this loan is for.

                          Mandatory when loanType=individual.

                          Impact on repayment schedule:

                          If reschedule-repayments-on-holidays configuration is enabled. The clientId is used to pick up the office associated with the existing client and determine what holidays are applicable.

                          groupId
                          integer <integer64>

                          The id of an existing group this loan is for.

                          Mandatory when loanType=group or loanType=jlg.

                          Impact on repayment schedule:

                          If reschedule-repayments-on-holidays configuration is enabled. The groupUd is used to pick up the office associated with the existing group and determine what holidays are applicable.

                          calendarId
                          integer <integer64>

                          The id of a calendar entry.

                          Applicable only to JLG loans and where configuration is enabled for meetings-mandatory-for-jlg-loans.

                          syncDisbursementWithMeeting
                          boolean

                          A boolean indicating if disbursement date should be fall in with the groups meeting date.

                          Applicable only to JLG loans and where configuration is enabled for meetings-mandatory-for-jlg-loans.

                          principal
                          required
                          number <decimal>

                          The principal is the amount of the loan that is to be disbursed.

                          loanTermFrequency
                          required
                          integer

                          Used together with loanTermFrequencyType to indicate the term of the loan.

                          loanTermFrequencyType
                          required
                          integer
                          Enum: 0 1 2 3

                          Used together with loanTermFrequency to indicate the term of the loan.

                          Supported options are: 0=Days 1=Weeks 2=Months 3=Years

                          numberOfRepayments
                          required
                          integer

                          The numberOfRepayments is the number of installments for this loan.

                          repaymentEvery
                          required
                          integer

                          Used together with repaymentFrequencyType to indicate the length of time between installments.

                          repaymentFrequencyType
                          required
                          integer
                          Enum: 0 1 2 3

                          Used together with repaymentEvery to indicate the length of time between installments.

                          Supported options are: 0=Days 1=Weeks 2=Months 3=Years

                          When months option is selected two futher fields are relevant and can be optionally provided; repaymentFrequencyNthDayType and repaymentFrequencyDayOfWeekType

                          repaymentFrequencyNthDayType
                          integer
                          Enum: 1 2 3 4 -1

                          Used together with repaymentFrequencyDayOfWeekType to indicate on what frequency the repayment should be made.

                          It supports frequencies like: First Monday (of the month).

                          Only applicable when repaymentFrequencyType=2.

                          Supported options are: 1=First 2=Second 3=Third 4=Fourth

                          repaymentFrequencyDayOfWeekType
                          integer
                          Enum: 1 2 3 4 5 6 7

                          Used together with repaymentFrequencyNthDayType to indicate on what frequency the repayment should be made.

                          It supports frequencies like: First Monday (of the month).

                          Only applicable when repaymentFrequencyType=2.

                          Supported options are: 1=Monday 2=Tuesday 3=Wednesday 4=Thursday 5=Friday 6=Saturday 7=Sunday

                          interestType
                          required
                          integer
                          Enum: 0 1

                          Relates to the Interest Calculation.

                          Dictates how the interest is calculated for the loan schedule.

                          Supported options are: 0=Declining Balance 1=Flat

                          Flat Interest loans charge equal interest amounts on each loan instalment, based on the original loan principal.

                          Declining Balance loans calculate the interest amount on each instalment based upon the outstanding balance of the loan (the interest amount charged on each instalment reduces as the loan is repaid).

                          interestCalculationPeriodType
                          required
                          integer
                          Default: 1
                          Enum: 0 1

                          Relates to the repayment schedule.

                          Dictates how the interest is calculated for the loan schedule.

                          Supported options are: 0=Daily 1=Same as repayment period

                          Defaults to 1="Same as Repayment Period". This ensures that all loans of the same loan term have the same interest amount charged over the course of the loan.

                          Selecting 0=Daily means that the interest amount charged on a loan product will vary slightly based on the number of days in the months over which the loan term runs.

                          interestRatePerPeriod
                          required
                          number <decimal>

                          The interest rate per selected period type.

                          Used with interestRateFrequencyType to describe the interest rate.

                          interestRateFrequencyType
                          integer
                          Deprecated
                          Enum: 2 3

                          Used together with interestRatePerPeriod to indicate the length of time the interest is applicable to.

                          Supported options are: 2=Months 3=Years

                          If omitted, the loan inherits this property from its Loan Product. if provided, it overrides any property that is set in Loan Product.

                          amortizationType
                          required
                          integer
                          Enum: 0 1

                          Relates to the the repayment schedule.

                          Dictates how a declining balance loan is amortized over the loan schedule.

                          Supported options are: 0=Equal Principal 1=Equal Installments

                          Mandatory and only relevant if interestType=0 (Declining Balance).

                          Selecting 0=Equal Principal ensures that the principal of the loan installment remains the same through the loan term (with the interest and installment size therefore declining).

                          Selecting 1=Equal Installments ensures the principal is adjusted to ensure equal installment sizes.

                          transactionProcessingStrategyId
                          required
                          integer
                          Enum: 1 5 6

                          An id of the transaction processing strategy to be used when repayments or other transactions are made against loan.

                          This relates to functionality that is also referred to elsewhere in documentation as Payment Application Logic.

                          A number of out of the box approaches exist and custom approaches can be added if required.

                          The key responsiblity of the strategy is to determines the order in which Interest, Principal, Penalties and Fees are paid off when repayments are made.

                          Supported options are: 1=Standard (Penalties, Fees, Interest, Principal order) 5=Principal, Interest, Penalties, Fees Order 6=Interest, Principal, Penalties, Fees Order

                          expectedDisbursementDate
                          required
                          string

                          The proposed disbursement date for the loan.

                          Provided as a string and used together with dateFormat.

                          submittedOnDate
                          required
                          string

                          The date on which the loan application was submitted for approval.

                          Provided as a string and used together with dateFormat.

                          locale
                          required
                          string

                          The locale to use when interpreting number and date fields in the request.

                          dateFormat
                          required
                          string

                          The date format to use when interpreting date fields in the request. Must be suported by Joda Time.

                          submittedOnNote
                          string <= 500 characters

                          A note provided along with submittedOnDate.

                          repaymentsStartingFromDate
                          string

                          Related to Loan Schedule Generation algorithm.

                          When provided, the loan schedule is generated using this date as the first repayment date due date.

                          see also loan product setting minimumDaysBetweenDisbursalAndFirstRepayment.

                          Provided as a string and used together with dateFormat.

                          graceOnPrincipalPayment
                          integer

                          Related to Loan Schedule Generation algorithm.

                          If populated, indicates the number of installments you wish your grace period on principal payments to be.

                          e.g 1 means that the first installment of the loan schedule will have no principal due.

                          graceOnInterestPayment
                          integer

                          Related to Loan Schedule Generation algorithm.

                          If populated, indicates the number of installments you wish your grace period on interest payments to be.

                          e.g 1 means that the first installment of the loan schedule will have no interest due.

                          graceOnInterestCharged
                          integer

                          Related to Loan Schedule Generation algorithm.

                          If populated, indicates the number of installments you wish there to be no interest charged / calculated for.

                          e.g 1 means that interest will only begin being calculated based on the principal outstanding from installment two.

                          fundId
                          integer <integer64>

                          The id of associated fund source.

                          The original source of your funds (for example a grant).

                          loanOfficerId
                          integer <integer64>

                          The id of associated staff member that is a loan officer.

                          loanPurposeId
                          integer <integer64>

                          The id of a code value that relates to the loan purpose code (see Code and Code Values).

                          linkAccountId
                          integer <integer64>

                          The id of an existing savings account.

                          Linked savings account will then be required to be associated with the selected client and also any product restriction setup on loan product.

                          Array of objects

                          Ability to add multiple loan charges to the loan in one at time of creation.

                          Applicable only when the loan product is configured to allow this. see allowAttributeOverrides on loan product.

                          Array of objects

                          Ability to add multiple loan collateral entries to the loan at time of creation.

                          accountNo
                          string <= 20 characters

                          A unique account no. which identifies the account for this loan.

                          If not provided on creation, it is automatically generated based on the Account Number Format setup. (see Account Number Format and Configuration)

                          externalId
                          string <= 100 characters

                          A place to put an external reference for this loan e.g. The ID another system uses for it. If provided, it must be unique.

                          allowPartialPeriodInterestCalcualtion
                          boolean
                          Default: false

                          Only Applicable if interestCalculationPeriodType = 1 (Same as Repayment Period)

                          createStandingInstructionAtDisbursement
                          boolean
                          Default: false

                          A boolean indicating if a standing instruction should be created on disbursement for the repayments.

                          Applicable only when the loan product is configured to allow this. see allowAttributeOverrides on loan product.

                          interestChargedFromDate
                          string
                          Deprecated

                          The date from which interest is to be calculated from.

                          Provided as a string and used together with dateFormat.

                          When the loan is disbursed, there is an option on disbusrsement known as syncInterestChargedFromDateWithActualDisbursementDate which will set the date to be the same as the actual disbursement date.

                          Global confiruation related to this field:

                          • interest-charged-from-date-same-as-disbursal-date

                          Responses

                          Request samples

                          Content type
                          application/json
                          {
                          • "loanType": "individual",
                          • "productId": 1,
                          • "clientId": 1,
                          • "groupId": 1,
                          • "calendarId": 1,
                          • "syncDisbursementWithMeeting": false,
                          • "principal": 1000.5,
                          • "loanTermFrequency": 1,
                          • "loanTermFrequencyType": 2,
                          • "numberOfRepayments": 1,
                          • "repaymentEvery": 1,
                          • "repaymentFrequencyType": 2,
                          • "repaymentFrequencyNthDayType": 1,
                          • "repaymentFrequencyDayOfWeekType": 1,
                          • "interestType": 0,
                          • "interestCalculationPeriodType": 1,
                          • "interestRatePerPeriod": 10.5,
                          • "interestRateFrequencyType": 2,
                          • "amortizationType": 1,
                          • "transactionProcessingStrategyId": 1,
                          • "expectedDisbursementDate": "16-11-2020",
                          • "submittedOnDate": "16-11-2020",
                          • "locale": "en",
                          • "dateFormat": "dd MMMM yyyy",
                          • "submittedOnNote": "Loan application completed and submitted for approval by manager.",
                          • "repaymentsStartingFromDate": "16-11-2020",
                          • "graceOnPrincipalPayment": 1,
                          • "graceOnInterestPayment": 1,
                          • "graceOnInterestCharged": 0,
                          • "fundId": 1,
                          • "loanOfficerId": 1,
                          • "loanPurposeId": 1,
                          • "linkAccountId": 1,
                          • "charges": [
                            ],
                          • "collateral": [
                            ],
                          • "accountNo": "0001-0001",
                          • "externalId": "ABC-0001",
                          • "allowPartialPeriodInterestCalcualtion": false,
                          • "createStandingInstructionAtDisbursement": false,
                          • "interestChargedFromDate": "16-11-2020"
                          }

                          Response samples

                          Content type
                          application/json
                          {
                          • "resourceId": 12
                          }

                          Search Loans By State

                          Search for loans by state

                          The response returned is dynamic and based upon loans metadata (See Loan Metadata ) and responseParameters provided in the API request.

                          Authorizations:
                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                          query Parameters
                          offset
                          integer
                          Default: 0
                          Examples:

                            sets the offset for pagination, used in combination with limit

                            limit
                            integer
                            Default: 200
                            Examples:

                              Sets the limit of records returned, if not provided or if higher than 200 limit will be 200

                              Request Body schema: application/json
                              stateName
                              required
                              string

                              Used to find loans that match this state name exactly. The state name should match one of the states defined in the state machine.

                              officeId
                              integer

                              Used in addition to stateName to refine the loan search based on selected office.

                              loanOfficerId
                              integer

                              Used in addition to stateName to refine the loan search based on selected loan officer.

                              required
                              Array of objects

                              Specifies which fields the search should return.

                              Array of objects

                              Specifies how the search results should be sorted.

                              Responses

                              Request samples

                              Content type
                              application/json
                              {
                              • "stateName": "SUBMITTED_AND_PENDING_APPROVAL",
                              • "officeId": 24,
                              • "loanOfficerId": 24,
                              • "responseParameters": [
                                ],
                              • "sortByParameters": [
                                ]
                              }

                              Response samples

                              Content type
                              application/json
                              {
                              • "totalFilteredRecords": 52,
                              • "pageItems": [
                                ]
                              }

                              Find Loan by Id

                              Find a Loan by Id

                              Authorizations:
                              (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                              path Parameters
                              id
                              required
                              integer <int64>
                              Example: 1

                              The unique identifer of a Loan.

                              query Parameters
                              staffInSelectedOfficeOnly
                              boolean
                              Default: false

                              loan officers of the loan office.

                              transactionLimit
                              integer <int32>
                              Example: transactionLimit=10

                              number of loan transactions to be returned

                              associations
                              string
                              Enum: "all" "repaymentSchedule" "futureSchedule" "originalSchedule" "transactions" "charges" "guarantors" "collateral" "notes" "linkedAccount" "multiDisburseDetails" "creditChecks" "loanHistoryOfficer" "prepayLoan" "standingInstructions" "meeting" "groupMemberAllocation"
                              Example: associations=all

                              associated entity to be return

                              Responses

                              Response samples

                              Content type
                              application/json
                              [
                              • {
                                }
                              ]

                              Command on Loan

                              Authorizations:
                              (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                              path Parameters
                              id
                              required
                              integer <int64>
                              Example: 1

                              The unique identifer of a Loan.

                              query Parameters
                              command
                              required
                              string
                              Enum: "reject" "undoreject" "withdrawnByApplicant" "undowithdraw" "approve" "undoapprove" "disburse" "disburseToSavings" "undodisbursal"
                              Example: command=approve

                              The name of the command being performed on the loan.

                              Request Body schema: application/json
                              Any of
                              locale
                              required
                              string

                              The locale to use when interpreting number and date fields in the request.

                              dateFormat
                              required
                              string

                              The date format to use when interpreting date fields in the request. Must be suported by Joda Time.

                              withdrawnOnDate
                              required
                              string

                              The date on which the loan application was withdrawn.

                              Provided as a string and used together with dateFormat.

                              note
                              string <= 1000 characters

                              An optional comment or note in relation to this command.

                              Responses

                              Request samples

                              Content type
                              application/json
                              Example
                              {
                              • "locale": "en",
                              • "dateFormat": "dd MMMM yyyy",
                              • "withdrawnOnDate": "16-11-2020",
                              • "note": "A short note in relation to this."
                              }

                              Response samples

                              Content type
                              application/json
                              {
                              • "resourceId": 12
                              }

                              Command on Loan Transaction

                              Set of commands that creates or alters a loan transaction which in turn can alter the state of a loan, e.g. make repayment, loan write off, interest waiver, loan prepayment, recovery payment

                              Authorizations:
                              (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                              path Parameters
                              id
                              required
                              integer <int64>
                              Example: 1

                              The unique identifer of a Loan.

                              query Parameters
                              command
                              required
                              string
                              Enum: "repayment" "waiveinterest" "writeoff" "undowriteoff" "prepayLoan" "recoverypayment" "refundoverpayment"
                              Example: command=repayment

                              The name of the command being performed on the loan transaction.

                              Request Body schema: application/json
                              Any of
                              locale
                              required
                              string

                              The locale to use when interpreting number and date fields in the request.

                              dateFormat
                              required
                              string

                              The date format to use when interpreting date fields in the request. Must be suported by Joda Time.

                              transactionDate
                              required
                              string

                              The date on which the repayment was made.

                              Provided as a string and used together with dateFormat.

                              transactionAmount
                              required
                              number <decimal>

                              The amount of money repaid.

                              note
                              string <= 1000 characters

                              An optional comment or note in relation to this command.

                              paymentTypeId
                              required
                              integer <integer64>

                              The id of an existing PaymentType.

                              accountNumber
                              string <= 50 characters

                              An account number related to payment

                              checkNumber
                              string <= 50 characters

                              The check number related to payment

                              routingCode
                              string <= 50 characters

                              The routing code related to payment

                              receiptNumber
                              required
                              string <= 50 characters

                              The receipt number related to payment

                              bankNumber
                              string <= 50 characters

                              The bank number related to payment

                              Responses

                              Request samples

                              Content type
                              application/json
                              {
                              • "locale": "en",
                              • "dateFormat": "dd MMMM yyyy",
                              • "transactionDate": "14 May 2013",
                              • "transactionAmount": 5.5,
                              • "note": "A short note in relation to this.",
                              • "paymentTypeId": 1,
                              • "accountNumber": "ACC000001",
                              • "checkNumber": "CHK000001",
                              • "routingCode": "RO-ABC001",
                              • "receiptNumber": "RPT-ABC-001",
                              • "bankNumber": "CB001"
                              }

                              Response samples

                              Content type
                              application/json
                              {
                              • "officeId": 1,
                              • "clientId": 1,
                              • "loanId": 1,
                              • "resourceId": 12,
                              • "changes": { }
                              }

                              Credit Bureaus

                              The creditbureaus api allows access to creditbureau data stored in Musoni through pre-integrated CRB providers.

                              List Credit Bureaus

                              List all Credit Bureaus

                              Authorizations:
                              (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                              query Parameters
                              creditbureauIdentifier
                              string

                              looks up a creditbureau by identifier, eg mcix/metropol etc.

                              Responses

                              Response samples

                              Content type
                              application/json
                              [
                              • {
                                }
                              ]

                              Find Credit Bureau by Id

                              Find Credit Bureau member by id

                              Authorizations:
                              (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                              path Parameters
                              id
                              required
                              integer <int64>
                              Example: 1

                              The unique identifer of the selected resource.

                              Responses

                              Response samples

                              Content type
                              application/json
                              [
                              • {
                                }
                              ]

                              List Reference Requests for a credit bureau

                              List Credit reference requests for Credit bureau, without parameters will only return 200 results. This endpoint will return all requests, including failed requests

                              Authorizations:
                              (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                              query Parameters
                              clientId
                              string

                              Looks up credit reference requests for a specific clientId

                              loanId
                              string

                              Looks up credit reference requests for a specific loanId

                              Responses

                              Response samples

                              Content type
                              application/json
                              [
                              • {
                                }
                              ]

                              Find Credit Reference request by Id

                              Find Reference request by Id

                              Authorizations:
                              (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                              path Parameters
                              bureauId
                              required
                              integer <int64>
                              Example: 1

                              The id of the bureau being used

                              referenceRequestId
                              required
                              integer <int64>
                              Example: 1

                              The unique identifer of the selected resource.

                              Responses

                              Response samples

                              Content type
                              application/json
                              [
                              • {
                                }
                              ]

                              List Reference Responses for a credit bureau

                              List succesfully completed Credit reference responses for Credit bureau, without parameters will only return 200 results. This endpoint will not return any failed requests

                              Authorizations:
                              (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                              query Parameters
                              clientId
                              string

                              Looks up credit reference requests for a specific clientId

                              loanId
                              string

                              Looks up credit reference requests for a specific loanId

                              Responses

                              Response samples

                              Content type
                              application/json
                              [
                              • {
                                }
                              ]

                              Savings Product

                              Savings accounts support features that allow the accounts to be used as typical savings accounts or as every day accounts like current/checking accounts:

                              • Application process: for group or individual clients
                              • Transactions: Ability to deposit and withdraw from account
                              • Charges: fees or penalties can be setup
                              • Accounting: cash based accounting for transactions on account
                              • Interest
                                • Rates: can be described via interest rate charts or as simple APR
                                • Calculation
                                • Posting
                                • Witholding Tax (applied to interest postings)
                                • Transfer of interest to seperate linked account
                              • States
                                • Dormancy
                                • Escheat
                              • Support for restrictions around:
                                • Minimum opening balance
                                • Minimum balance
                                • Lock-in

                              Create Savings Product

                              Supports creation of new product offerings related to savings.

                              Authorizations:
                              (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                              Request Body schema: application/json
                              locale
                              required
                              string

                              The locale to use when interpreting number and date fields in the request.

                              name
                              required
                              string [ 1 .. 100 ] characters

                              The full name of the product.

                              shortName
                              required
                              string = 4 characters

                              The short name of the product.

                              An abbreviated version of the name, used in reports or menus where space is limited.

                              description
                              required
                              string <= 500 characters

                              A description to provide users with more information about the product.

                              currencyCode
                              required
                              string <= 3 characters

                              A three character identifer of currency. The currency of the product.

                              digitsAfterDecimal
                              required
                              integer

                              Relates to the the currency of the product. The number of digits after decimal to be supported on the currency.

                              inMultiplesOf
                              integer

                              Relates to the the currency of the product. Relevant for currencies where digitsAfterDecimal is zero. This will round the monetary amount to the nearest multiple.

                              productGroupId
                              integer <integer64>

                              The id of associated product group.

                              nominalAnnualInterestRate
                              required
                              decimal

                              Simple way of describing the interest rate as a nominal APR to use for interest calculation e.g. 5% Per annum

                              If not suitable for product it can be set to zero and interestRateCharts can be used to create an interest rate chart that will decide the rate.

                              Array of objects (SavingsInterestRateChartWithNoSlabs)
                              interestPostingPeriodType
                              required
                              integer
                              Enum: 4 5 6 7

                              Part of interest calculation settings.

                              Indicates how often interest is to be posted to the account.

                              Supported options are: 4=Monthly 5=Quarterly 6=Bi-Annualy 7=Annual

                              interestCompoundingPeriodType
                              required
                              integer
                              Enum: 4 5 6 7

                              Part of interest calculation settings.

                              Indicates how often interest is to be compounded.

                              Supported options are: 1=Daily 4=Monthly 5=Quarterly 6=Bi-Annualy 7=Annual

                              interestCalculationType
                              required
                              integer
                              Enum: 1 2

                              Part of interest calculation settings.

                              There are two methods to calculate the interest on a savings account: 1=Daily Balance 2=Average Balance

                              interestCalculationDaysInYearType
                              required
                              integer
                              Enum: 360 365

                              Part of interest calculation settings.

                              Supported options are: 1=360 2=365

                              minBalanceForInterestCalculation
                              decimal

                              Part of interest calculation settings.

                              The mimimum balance of the savings account for interest calculation to be permitted.

                              withHoldTax
                              boolean
                              Default: false

                              A boolean that indicates if withholding tax is configured.

                              if true interest posted to accounts of this product with have a withholding tax applied based on amount of interest posted.

                              The withholding tax is shown as an additional transaction on the account.

                              taxGroupId
                              integer <integer64>

                              The id of associated tax group.

                              Required if withHoldTax is set to true.

                              lockinPeriodFrequency
                              integer

                              If provided, used along with lockinPeriodFrequencyType to indicate the length of time after opening that the account is 'locked' and withdrawals of any amount are not permitted e.g. 2 Months

                              lockinPeriodFrequencyType
                              integer
                              Enum: 0 1 2 3

                              If provided, used along with lockinPeriodFrequency to indicate the length of time after opening that the account is 'locked' and withdrawals of any amount are not permitted e.g. 2 Months

                              Supported options are: 0=Days 1=Weeks 2=Months 3=Years

                              minRequiredOpeningBalance
                              decimal

                              Related to account activation.

                              Specifies the mimimum balance that savings accounts of this product must have upon activation.

                              When the account is activated, it will auto create a deposit transaction for the minRequiredOpeningBalance.

                              enforceMinRequiredBalance
                              boolean
                              Default: false

                              Indicates that minRequiredBalance is verified on savings accounts of this product.

                              Used together with minRequiredBalance to describe the minimum allowed balance of this product.

                              if enabled, then attempts to withdraw amounts that result in the account balance falling below minRequiredBalance will not be permitted.

                              minRequiredBalance
                              decimal

                              Mandatory if enforceMinRequiredBalance is true.

                              Specifies the mimimum balance that savings accounts of this product must have whilst active.

                              if enforceMinRequiredBalance enabled, then attempts to withdraw amounts that result in the account balance falling below minRequiredBalance will not be permitted.

                              allowOverdraft
                              boolean
                              Default: false

                              Indicates if an overdraft facility is be allowed on savings accounts of this product.

                              overdraftLimit
                              decimal

                              Mandatory if allowOverdraft is true.

                              Specifies the maximum amount of overdraft that savings accounts of this product can have.

                              nominalAnnualInterestRateOverdraft
                              decimal

                              Interest rate as a nominal APR to use for interest calculation when account is in overdraft e.g. 20% Per annum

                              minOverdraftForInterestCalculation
                              decimal

                              Applicable if allowOverdraft is true.

                              If provided, indicates how much into an overdraft before interest is calculated against the overdraft.

                              isDormancyTrackingActive
                              boolean
                              Default: false

                              Indicates if accounts of this product should support movement to dormant status by end of day scheduled jobs.

                              daysToInactive
                              number <integer>

                              Mandatory if isDormancyTrackingActive is true.

                              If provided, indicates how many days before the account should be considered inactive.

                              daysToDormancy
                              number <integer>

                              Mandatory if isDormancyTrackingActive is true.

                              If provided, indicates how many days before the account should be considered dormant.

                              daysToEscheat
                              number <integer>

                              Mandatory if isDormancyTrackingActive is true.

                              If provided, indicates how many days before the account should be considered escheat.

                              calculateInterestDuringDormancy
                              boolean
                              Default: false

                              Mandatory if isDormancyTrackingActive is true.

                              Indicates if interest should be calculated for accounts that are marked as dormant.

                              stopInterestIfDormant
                              boolean
                              Deprecated
                              Default: false

                              Duplicate of calculateInterestDuringDormancy.

                              Applicable if isDormancyTrackingActive is true.

                              Indicates if interest should be calculated for accounts that are marked as dormant.

                              enableWithdrawalNotice
                              boolean
                              Default: false

                              Indicates if notice is required for withdrawals.

                              noticePeriod
                              number <integer>

                              Mandatory if enableWithdrawalNotice is true.

                              If provided, indicates how many days notice required prior to withdrawal.

                              validationPeriod
                              number <integer>

                              Mandatory if enableWithdrawalNotice is true.

                              If provided, indicates how many days ???.

                              withdrawalFeeForTransfers
                              boolean
                              Deprecated
                              Default: false

                              Indicates if fee applied for withdrawals.

                              feeAmount
                              decimal
                              Deprecated

                              Used as an annual fee.

                              monthDayFormat
                              string
                              Deprecated

                              Joda time compatile date format for day-month used by feeOnMonthDay.

                              feeOnMonthDay
                              string
                              Deprecated

                              describe day and month of annual fee feeAmount using monthDayFormat.

                              charges
                              Array of arrays

                              The set of charge definitions applicable to this product.

                              minimumNegativeBalance
                              decimal

                              Must be less than zero.

                              TBC

                              maximumPositiveBalance
                              decimal

                              Must be greater than zero.

                              TBC

                              accountingRule
                              required
                              integer
                              Enum: 1 2

                              Indicates what type of accounting is enabled for this product.

                              Supported options are: 1=None 2=Cash Based Accounting

                              savingsControlAccountId
                              integer <integer64>

                              The id of a GL Account

                              savingsReferenceAccountId
                              integer <integer64>

                              The id of a GL Account

                              transfersInSuspenseAccountId
                              integer <integer64>

                              The id of a GL Account

                              interestOnSavingsAccountId
                              integer <integer64>

                              The id of a GL Account

                              incomeFromFeeAccountId
                              integer <integer64>

                              The id of a GL Account

                              incomeFromPenaltyAccountId
                              integer <integer64>

                              The id of a GL Account

                              overdraftPortfolioControlId
                              integer <integer64>

                              The id of a GL Account. Applicabe if allowOverdraft enabled.

                              incomeFromInterestId
                              integer <integer64>

                              The id of a GL Account.

                              writeOffAccountId
                              integer <integer64>

                              The id of a GL Account.

                              escheatLiabilityId
                              integer <integer64>

                              The id of a GL Account. Applicabe if isDormancyTrackingActive enabled.

                              incomeFromSmallPositiveBalanceId
                              integer <integer64>

                              The id of a GL Account. Applicabe if minimumNegativeBalance is set.

                              expenseFromSmallNegativeBalanceId
                              integer <integer64>

                              The id of a GL Account. Applicabe if maximumPositiveBalance is set.

                              Array of objects
                              Array of objects
                              Array of objects

                              Responses

                              Request samples

                              Content type
                              application/json
                              {
                              • "locale": "en",
                              • "name": "6 month Deposit",
                              • "shortName": "FT01",
                              • "description": "6 month fixed deposit with monthly compounding",
                              • "currencyCode": "KES",
                              • "digitsAfterDecimal": 0,
                              • "inMultiplesOf": 1,
                              • "productGroupId": 1,
                              • "nominalAnnualInterestRate": 12.5,
                              • "interestRateCharts": [
                                ],
                              • "interestPostingPeriodType": 4,
                              • "interestCompoundingPeriodType": 4,
                              • "interestCalculationType": 1,
                              • "interestCalculationDaysInYearType": 1,
                              • "minBalanceForInterestCalculation": 1,
                              • "withHoldTax": false,
                              • "taxGroupId": 1,
                              • "lockinPeriodFrequency": 2,
                              • "lockinPeriodFrequencyType": 2,
                              • "minRequiredOpeningBalance": 500.5,
                              • "enforceMinRequiredBalance": false,
                              • "minRequiredBalance": 500.5,
                              • "allowOverdraft": false,
                              • "overdraftLimit": 1000,
                              • "nominalAnnualInterestRateOverdraft": 20,
                              • "minOverdraftForInterestCalculation": 10,
                              • "isDormancyTrackingActive": false,
                              • "daysToInactive": 90,
                              • "daysToDormancy": 120,
                              • "daysToEscheat": 120,
                              • "calculateInterestDuringDormancy": false,
                              • "stopInterestIfDormant": false,
                              • "enableWithdrawalNotice": false,
                              • "noticePeriod": 1,
                              • "validationPeriod": 1,
                              • "withdrawalFeeForTransfers": false,
                              • "feeAmount": 10,
                              • "monthDayFormat": "dd-MM",
                              • "feeOnMonthDay": "01-04",
                              • "charges": [ ],
                              • "minimumNegativeBalance": -3.5,
                              • "maximumPositiveBalance": 2.2,
                              • "accountingRule": 2,
                              • "savingsControlAccountId": 0,
                              • "savingsReferenceAccountId": 0,
                              • "transfersInSuspenseAccountId": 0,
                              • "interestOnSavingsAccountId": 0,
                              • "incomeFromFeeAccountId": 0,
                              • "incomeFromPenaltyAccountId": 0,
                              • "overdraftPortfolioControlId": 0,
                              • "incomeFromInterestId": 0,
                              • "writeOffAccountId": 0,
                              • "escheatLiabilityId": 0,
                              • "incomeFromSmallPositiveBalanceId": 0,
                              • "expenseFromSmallNegativeBalanceId": 0,
                              • "paymentChannelToFundSourceMappings": [
                                ],
                              • "feeToIncomeAccountMappings": [
                                ],
                              • "penaltyToIncomeAccountMappings": [
                                ]
                              }

                              Response samples

                              Content type
                              application/json
                              {
                              • "resourceId": 12
                              }

                              Activate Savings Product

                              Activates closed savings product

                              Authorizations:
                              (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                              path Parameters
                              id
                              required
                              integer <int64>
                              Example: 1

                              The unique identifer of a Savings Product.

                              query Parameters
                              command
                              required
                              string
                              Example: command=activate

                              The activate command.

                              Request Body schema: application/json
                              any or null

                              Responses

                              Request samples

                              Content type
                              application/json
                              null

                              Response samples

                              Content type
                              application/json
                              {
                              • "resourceId": 12,
                              • "changes": {
                                }
                              }

                              Close Savings Product

                              Close an active savings product

                              Authorizations:
                              (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                              path Parameters
                              id
                              required
                              integer <int64>
                              Example: 1

                              The unique identifer of a Savings Product.

                              query Parameters
                              command
                              required
                              string
                              Example: command=close

                              The close command.

                              Request Body schema: application/json
                              any or null

                              Responses

                              Request samples

                              Content type
                              application/json
                              null

                              Response samples

                              Content type
                              application/json
                              {
                              • "resourceId": 12,
                              • "changes": {
                                }
                              }

                              Savings Account

                              Create new Savings Account

                              Used to create a new Savings Account

                              Authorizations:
                              (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                              Request Body schema: application/json

                              Savings Accounts can be associated with a client or group but not both. The model is the same for client and group except for the clientId and groupId fields.

                              Any of
                              locale
                              required
                              string

                              The locale to use when interpreting number and date fields in the request.

                              dateFormat
                              required
                              string

                              The date format to use when interpreting date fields in the request. Must be suported by Joda Time.

                              clientId
                              required
                              integer <integer64>

                              The id of an existing client this account is for.

                              productId
                              required
                              integer <integer64>

                              The id of associated product.

                              submittedOnDate
                              required
                              string <date>

                              The date that the account application was submited.

                              fieldOfficerId
                              integer <integer64>

                              The id of associated staff member that is a field officer.

                              externalId
                              string <= 100 characters

                              A place to put an external reference for this account e.g. The ID another system uses for it. If provided, it must be unique.

                              nominalAnnualInterestRate
                              integer <number>
                              interestCompoundingPeriodType
                              integer
                              interestPostingPeriodType
                              integer
                              interestCalculationType
                              integer
                              interestCalculationDaysInYearType
                              integer <number>
                              minRequiredOpeningBalance
                              number <decimal>
                              lockinPeriodFrequency
                              integer
                              lockinPeriodFrequencyType
                              integer
                              charges
                              Array of arrays

                              Responses

                              Request samples

                              Content type
                              application/json
                              Example
                              {
                              • "locale": "en",
                              • "dateFormat": "dd MMMM yyyy",
                              • "clientId": 1,
                              • "productId": 1,
                              • "submittedOnDate": "2022-12-01T00:00:00.000Z",
                              • "fieldOfficerId": 1,
                              • "externalId": "ABC-0001",
                              • "nominalAnnualInterestRate": 2,
                              • "interestCompoundingPeriodType": 1,
                              • "interestPostingPeriodType": 4,
                              • "interestCalculationType": 1,
                              • "interestCalculationDaysInYearType": 360,
                              • "minRequiredOpeningBalance": 1000,
                              • "lockinPeriodFrequency": 2,
                              • "lockinPeriodFrequencyType": 0,
                              • "charges": [
                                ]
                              }

                              Response samples

                              Content type
                              application/json
                              {
                              • "resourceId": 12
                              }

                              List Savings Accounts

                              List Savings Accounts

                              See The Data Filter API for better approach for search/filter.

                              Authorizations:
                              (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                              query Parameters
                              offset
                              integer
                              Default: 0
                              Examples:

                                sets the offset for pagination, used in combination with limit

                                limit
                                integer
                                Default: 200
                                Examples:

                                  Sets the limit of records returned, if not provided the limit will be 200, if a higher limit than 2500 is provided limit will be restricted at 2500, pagination should be used to retrieve subsequent pages of data.

                                  search
                                  string
                                  Example: search=John Doe

                                  'Searches (matching around) across:

                                  • Group name
                                  • Staff name
                                  • Client name
                                  • savings account number '
                                  officeId
                                  integer

                                  The id of an office. Used to restrict to set of savings associated with the office.

                                  externalId
                                  string
                                  Example: externalId=S00001

                                  if provided only savings with this exact externalId will be returned

                                  staffId
                                  integer

                                  id of a staff/savingsofficer, if provided will only return the savings linked to this staff id

                                  groupId
                                  integer

                                  id of a group the savings belongs to, if provided will only return the savings linked to this group id

                                  underHierarchy
                                  string
                                  Example: underHierarchy=.2.3

                                  if provided only savings that exist under the hierarchy provided will be return (office + child offices)

                                  orderBy
                                  string
                                  Enum: "id" "submittedon_date" "office_id" "account_no"

                                  The database field name that you wish to order the list of savings by.

                                  sortOrder
                                  string
                                  Enum: "ASC" "DESC"

                                  Used with orderBy parameter, this indicates the sorting order of the attribute mentioned in orderBy. This parameter is ignored unless orderBy is provided also.

                                  skipRowCount
                                  boolean
                                  Default: false
                                  Example: skipRowCount=false

                                  if true, does not return rowcount, improving search speed.

                                  modifiedSinceTimestamp
                                  integer
                                  Examples:

                                    Should be passed as a UNIX Timestamp.

                                    When provided only savings accounts that have been created or updated since the provided timestamp are returned.

                                    Savings accounts will be marked as modified whenever there is any modification to the savings account, its transactions, charges etc.

                                    This parameter can be used in integrations to fetch changed data since a last fetch, timestamps will be treated as UTC and returned as UTC.

                                    sqlSearch
                                    string
                                    Deprecated

                                    Deprecated. Use other parameters such as search or See The Data Filter API for better approach for search/filter.

                                    A valid sql fragment that will work with backend query for this api.

                                    Responses

                                    Response samples

                                    Content type
                                    application/json
                                    [
                                    • {
                                      }
                                    ]

                                    Find Savings by Id

                                    Find a savings account by Id

                                    Authorizations:
                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                    path Parameters
                                    accountId
                                    required
                                    integer <int64>
                                    Example: 1

                                    The unique identifer of a Savings Account.

                                    query Parameters
                                    staffInSelectedOfficeOnly
                                    boolean
                                    Default: false

                                    loan officers of the office where the savingsaccount is registered.

                                    chargeStatus
                                    string
                                    Default: "all"
                                    Enum: "all" "active" "inactive"
                                    Example: chargeStatus=all

                                    filter savings to be return by account status

                                    associations
                                    string
                                    Enum: "all" "withdrawalNotices" "charges" "linkedAccounts" "transactions" "standingInstructions" "loanhistoryofficer"
                                    Example: associations=all

                                    associated entity to be return

                                    Responses

                                    Response samples

                                    Content type
                                    application/json
                                    [
                                    • {
                                      }
                                    ]

                                    Enable/Disable deposit lock

                                    Used to enable or disable deposit lock on a savings account

                                    Authorizations:
                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                    path Parameters
                                    accountId
                                    required
                                    integer <int64>
                                    Example: 1

                                    The unique identifer of a Savings Account.

                                    Request Body schema: application/json
                                    depositLock
                                    boolean

                                    Enable (true) or disable (false) deposit lock setting

                                    Responses

                                    Request samples

                                    Content type
                                    application/json
                                    {
                                    • "depositLock": true
                                    }

                                    Response samples

                                    Content type
                                    application/json
                                    {
                                    • "resourceId": 12
                                    }

                                    Enable/Disable withdrawal lock

                                    Used to enable or disable withdrawal lock on a savings account

                                    Authorizations:
                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                    path Parameters
                                    accountId
                                    required
                                    integer <int64>
                                    Example: 1

                                    The unique identifer of a Savings Account.

                                    Request Body schema: application/json
                                    depositLock
                                    boolean

                                    Enable (true) or disable (false) withdrawal lock setting

                                    Responses

                                    Request samples

                                    Content type
                                    application/json
                                    {
                                    • "depositLock": false
                                    }

                                    Response samples

                                    Content type
                                    application/json
                                    {
                                    • "resourceId": 12
                                    }

                                    List Savings Account Locks

                                    List all Savings account Locks by savings account id

                                    Authorizations:
                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                    path Parameters
                                    accountId
                                    required
                                    integer <int64>
                                    Example: 1

                                    The unique identifer of a Savings Account.

                                    Responses

                                    Response samples

                                    Content type
                                    application/json
                                    [
                                    • {
                                      }
                                    ]

                                    Add Lock to Savings Account

                                    Used to add a new lock to the savings account.

                                    Authorizations:
                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                    path Parameters
                                    accountId
                                    required
                                    integer <int64>
                                    Example: 1

                                    The unique identifer of a Savings Account.

                                    Request Body schema: application/json
                                    locale
                                    required
                                    string

                                    The locale to use when interpreting number and date fields in the request.

                                    dateFormat
                                    required
                                    string

                                    The date format to use when interpreting date fields in the request. Must be suported by Joda Time.

                                    note
                                    string <= 1000 characters

                                    An optional comment or note in relation to this command.

                                    onHoldAmount
                                    decimal

                                    Amount to hold on the savings account to prevent withdrawal

                                    startDate
                                    string <date>

                                    The date the lock on the savings account is effective from (inclusive)

                                    endDate
                                    string <date>

                                    The date when the lock on the savings account will be released optional (inclusive)

                                    Responses

                                    Request samples

                                    Content type
                                    application/json
                                    {
                                    • "locale": "en",
                                    • "dateFormat": "dd MMMM yyyy",
                                    • "note": "A short note in relation to this.",
                                    • "onHoldAmount": 200,
                                    • "startDate": "2022-01-20T00:00:00.000Z",
                                    • "endDate": "2024-01-20T00:00:00.000Z"
                                    }

                                    Response samples

                                    Content type
                                    application/json
                                    {
                                    • "resourceId": 12
                                    }

                                    Get Savings Account Lock by id

                                    Used to get a Savings Account Lock

                                    Authorizations:
                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                    path Parameters
                                    accountId
                                    required
                                    integer <int64>
                                    Example: 1

                                    The unique identifer of a Savings Account.

                                    id
                                    required
                                    integer <int64>
                                    Example: 1

                                    The unique identifer of a lock.

                                    Responses

                                    Response samples

                                    Content type
                                    application/json
                                    { }

                                    Update a Lock

                                    Used to update existing lock

                                    Authorizations:
                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                    path Parameters
                                    accountId
                                    required
                                    integer <int64>
                                    Example: 1

                                    The unique identifer of a Savings Account.

                                    id
                                    required
                                    integer <int64>
                                    Example: 1

                                    The unique identifer of a lock.

                                    Request Body schema: application/json
                                    locale
                                    required
                                    string

                                    The locale to use when interpreting number and date fields in the request.

                                    dateFormat
                                    required
                                    string

                                    The date format to use when interpreting date fields in the request. Must be suported by Joda Time.

                                    onHoldAmount
                                    decimal

                                    Amount to hold on the savings account to prevent withdrawal

                                    startDate
                                    string <date>

                                    The date the lock on the savings account is effective from (inclusive)

                                    endDate
                                    string <date>

                                    The date when the lock on the savings account will be released optional (inclusive)

                                    Responses

                                    Request samples

                                    Content type
                                    application/json
                                    {
                                    • "locale": "en",
                                    • "dateFormat": "dd MMMM yyyy",
                                    • "onHoldAmount": 200,
                                    • "startDate": "2022-01-20T00:00:00.000Z",
                                    • "endDate": "2024-01-20T00:00:00.000Z"
                                    }

                                    Response samples

                                    Content type
                                    application/json
                                    {
                                    • "resourceId": 12
                                    }

                                    Release a lock

                                    Used to release lock on a savings account

                                    Authorizations:
                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                    path Parameters
                                    accountId
                                    required
                                    integer <int64>
                                    Example: 1

                                    The unique identifer of a Savings Account.

                                    id
                                    required
                                    integer <int64>
                                    Example: 1

                                    The unique identifer of a lock.

                                    Responses

                                    Response samples

                                    Content type
                                    application/json
                                    {
                                    • "resourceId": 12
                                    }

                                    Delete a lock

                                    Used to delete a lock on a savings account.

                                    Authorizations:
                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                    path Parameters
                                    accountId
                                    required
                                    integer <int64>
                                    Example: 1

                                    The unique identifer of a Savings Account.

                                    id
                                    required
                                    integer <int64>
                                    Example: 1

                                    The unique identifer of a lock.

                                    Responses

                                    Response samples

                                    Content type
                                    application/json
                                    {
                                    • "resourceId": 12
                                    }

                                    FTD Product

                                    Fixed Term Deposit are specialised savings accounts and support the following features:

                                    • Charges: fees or penalties can be setup
                                    • Accounting: cash based accounting for transactions on account
                                    • Deposit amount and term ranges
                                    • Term lock-in
                                    • Pre-Closure: support for pre-closure with or without penalty
                                    • Auto Renewal: configure to auto renew on Maturity
                                    • Interest Rates: can be described via multi-slab charts or as simple APR
                                    • Interest Calculation
                                    • Interest Posting and Witholding Tax
                                    • Transfer of interest to seperate linked account

                                    Create New Fixed Term Deposit Product

                                    The supported schema for creating a new fixed term deposit product.

                                    Authorizations:
                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                    Request Body schema: application/json
                                    locale
                                    required
                                    string

                                    The locale to use when interpreting number and date fields in the request.

                                    name
                                    required
                                    string [ 1 .. 100 ] characters

                                    The full name of the product.

                                    shortName
                                    required
                                    string = 4 characters

                                    The short name of the product.

                                    An abbreviated version of the name, used in reports or menus where space is limited.

                                    description
                                    required
                                    string <= 500 characters

                                    A description to provide users with more information about the product.

                                    currencyCode
                                    required
                                    string <= 3 characters

                                    Relates to the the currency of the product. A three character identifer of currency this product uses.

                                    digitsAfterDecimal
                                    required
                                    integer

                                    Relates to the the currency of the product. The number of digits after decimal to be supported on the currency.

                                    inMultiplesOf
                                    integer

                                    Relates to the the currency of the product. Relevant for currencies where digitsAfterDecimal is zero. This will round the monetary amount to the nearest multiple.

                                    productGroupId
                                    integer <integer64>

                                    The id of associated product group.

                                    minDepositAmount
                                    number <decimal>

                                    The minimum size of any deposit under this product.

                                    See also depositAmount and maxDepositAmount.

                                    maxDepositAmount
                                    number <decimal>

                                    The maximum size of any deposit under this product.

                                    See also depositAmount and minDepositAmount.

                                    depositAmount
                                    required
                                    number <decimal>

                                    Is the default amount that can be shown to users by when creating a new account using this product.

                                    Its value must be within the range defined by minDepositAmount and maxDepositAmount.

                                    minDepositTerm
                                    required
                                    number <integer>

                                    Used together with minDepositTermTypeId to describe the minimum term of any account under this product. e.g 6 months

                                    minDepositTermTypeId
                                    integer
                                    Enum: 0 1 2 3

                                    The type of term period being described. e.g 6 months

                                    Supported options are: 0=Days 1=Weeks 2=Months 3=Years

                                    maxDepositTerm
                                    number <integer>

                                    Used together with maxDepositTermTypeId to describe the maximum term of any account under this product. e.g 12 months

                                    maxDepositTermTypeId
                                    integer
                                    Enum: 0 1 2 3

                                    The type of term period being described. e.g 6 months

                                    Supported options are: 0=Days 1=Weeks 2=Months 3=Years

                                    inMultiplesOfDepositTerm
                                    number <integer>

                                    Used together with inMultiplesOfDepositTermTypeId to describe the multiples of deposit term supported. e.g 2 months

                                    inMultiplesOfDepositTermTypeId
                                    integer
                                    Enum: 0 1 2 3

                                    The type of term period being described. e.g 2 months

                                    Supported options are: 0=Days 1=Weeks 2=Months 3=Years

                                    interestPostingPeriodType
                                    required
                                    integer
                                    Enum: 4 5 6 7

                                    Part of interest calculation settings.

                                    Indicates how often interest is to be posted to the account.

                                    Supported options are: 4=Monthly 5=Quarterly 6=Bi-Annualy 7=Annual

                                    interestCompoundingPeriodType
                                    required
                                    integer
                                    Enum: 4 5 6 7

                                    Part of interest calculation settings.

                                    Indicates how often interest is to be compounded.

                                    Supported options are: 1=Daily 4=Monthly 5=Quarterly 6=Bi-Annualy 7=Annual

                                    interestCalculationType
                                    required
                                    integer
                                    Enum: 1 2

                                    Part of interest calculation settings.

                                    There are two methods to calculate the interest on a savings account: 1=Daily Balance 2=Average Balance

                                    interestCalculationDaysInYearType
                                    required
                                    integer
                                    Enum: 360 365

                                    Part of interest calculation settings.

                                    Supported options are: 1=360 2=365

                                    lockinPeriodFrequency
                                    integer

                                    If provided, used along with lockinPeriodFrequencyType to indicate the length of time that the fixed deposit account is 'locked in' and premature closure is not allowed. e.g. 2 Months

                                    lockinPeriodFrequencyType
                                    integer
                                    Enum: 0 1 2 3

                                    If provided, used along with lockinPeriodFrequency to indicate the length of time that the fixed deposit account is 'locked in' and premature closure is not allowed. e.g. 2 Months

                                    Supported options are: 0=Days 1=Weeks 2=Months 3=Years

                                    Array of objects (SavingsInterestRateChart)
                                    withHoldTax
                                    boolean
                                    Default: false

                                    A boolean that indicates if withholding tax is configured.

                                    if true interest posted to accounts of this product with have a withholding tax applied based on amount of interest posted.

                                    The withholding tax is shown as an additional transaction on the account.

                                    taxGroupId
                                    integer <integer64>

                                    The id of associated tax group.

                                    Required if withHoldTax is set to true.

                                    autoRenewOnClosure
                                    boolean
                                    Default: false

                                    A boolean that indicates if accounts of this product should be renewed upon reaching maturity.

                                    Fixed Term Deposit accounts are moved are checked by end of day process that is scheduled to run every night.

                                    preClosurePenalApplicable
                                    boolean
                                    Default: false

                                    A boolean that indicates if penalty is to be applied on pre-closure of accounts of this product.

                                    preClosurePenalInterest
                                    decimal
                                    Deprecated

                                    The interest rate to use in case of pre-closure e.g. 5% Per annum

                                    preClosurePenalInterestOnTypeId
                                    integer
                                    Deprecated
                                    Enum: 1 2

                                    Indicates how the preClosurePenalInterest is to be applied.

                                    Supported options are: 1=Whole Term 2=Until Premature Withdrawal

                                    charges
                                    Array of arrays

                                    The set of charge definitions applicable to this product.

                                    accountingRule
                                    required
                                    integer
                                    Enum: 1 2

                                    Indicates what type of accounting is enabled for this product.

                                    Supported options are: 1=None 2=Cash Based Accounting

                                    savingsControlAccountId
                                    integer <integer64>

                                    The id of a GL Account

                                    savingsReferenceAccountId
                                    integer <integer64>

                                    The id of a GL Account

                                    transfersInSuspenseAccountId
                                    integer <integer64>

                                    The id of a GL Account

                                    interestOnSavingsAccountId
                                    integer <integer64>

                                    The id of a GL Account

                                    incomeFromFeeAccountId
                                    integer <integer64>

                                    The id of a GL Account

                                    incomeFromPenaltyAccountId
                                    integer <integer64>

                                    The id of a GL Account

                                    Array of objects
                                    Array of objects
                                    Array of objects

                                    Responses

                                    Request samples

                                    Content type
                                    application/json
                                    {
                                    • "locale": "en",
                                    • "name": "6 month Deposit",
                                    • "shortName": "FT01",
                                    • "description": "6 month fixed deposit with monthly compounding",
                                    • "currencyCode": "KES",
                                    • "digitsAfterDecimal": 0,
                                    • "inMultiplesOf": 1,
                                    • "productGroupId": 1,
                                    • "minDepositAmount": 1000,
                                    • "maxDepositAmount": 5000,
                                    • "depositAmount": 1000,
                                    • "minDepositTerm": 6,
                                    • "minDepositTermTypeId": 2,
                                    • "maxDepositTerm": 12,
                                    • "maxDepositTermTypeId": 2,
                                    • "inMultiplesOfDepositTerm": 2,
                                    • "inMultiplesOfDepositTermTypeId": 2,
                                    • "interestPostingPeriodType": 4,
                                    • "interestCompoundingPeriodType": 4,
                                    • "interestCalculationType": 1,
                                    • "interestCalculationDaysInYearType": 1,
                                    • "lockinPeriodFrequency": 2,
                                    • "lockinPeriodFrequencyType": 2,
                                    • "charts": [
                                      ],
                                    • "withHoldTax": false,
                                    • "taxGroupId": 1,
                                    • "autoRenewOnClosure": false,
                                    • "preClosurePenalApplicable": false,
                                    • "preClosurePenalInterest": 5,
                                    • "preClosurePenalInterestOnTypeId": 2,
                                    • "charges": [ ],
                                    • "accountingRule": 2,
                                    • "savingsControlAccountId": 0,
                                    • "savingsReferenceAccountId": 0,
                                    • "transfersInSuspenseAccountId": 0,
                                    • "interestOnSavingsAccountId": 0,
                                    • "incomeFromFeeAccountId": 0,
                                    • "incomeFromPenaltyAccountId": 0,
                                    • "paymentChannelToFundSourceMappings": [
                                      ],
                                    • "feeToIncomeAccountMappings": [
                                      ],
                                    • "penaltyToIncomeAccountMappings": [
                                      ]
                                    }

                                    Response samples

                                    Content type
                                    application/json
                                    {
                                    • "resourceId": 12
                                    }

                                    Find Product by Id

                                    Find a fixed term deposit product by id

                                    Authorizations:
                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                    path Parameters
                                    id
                                    required
                                    integer <int64>
                                    Example: 1

                                    The unique identifer of a fixed term deposit product.

                                    Responses

                                    Response samples

                                    Content type
                                    application/json
                                    [
                                    • {
                                      }
                                    ]

                                    FTD Account

                                    Create New Fixed Term Deposit Account

                                    The supported schema for creating a new fixed term deposit account.

                                    Authorizations:
                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                    Request Body schema: application/json
                                    locale
                                    required
                                    string

                                    The locale to use when interpreting number and date fields in the request.

                                    dateFormat
                                    required
                                    string

                                    The date format to use when interpreting date fields in the request. Must be suported by Joda Time.

                                    productId
                                    required
                                    integer <integer64>

                                    The id of associated product.

                                    clientId
                                    required
                                    integer <integer64>

                                    The id of an existing client this account is for.

                                    groupId
                                    integer <integer64>

                                    The id of an existing group this account is for.

                                    fieldOfficerId
                                    integer <integer64>

                                    The id of associated staff member that is a field officer.

                                    externalId
                                    string <= 100 characters

                                    A place to put an external reference for this account e.g. The ID another system uses for it. If provided, it must be unique.

                                    submittedOnDate
                                    required
                                    string <date>

                                    The date that the account application was submited.

                                    depositAmount
                                    required
                                    number <decimal>

                                    Is the amount deposited when setting up the account.

                                    Its value must be within the range defined by minDepositAmount and maxDepositAmount on the associated product.

                                    depositPeriod
                                    required
                                    number <integer>

                                    Used together with depositPeriodFrequencyId to describe the length of the fixed term e.g 6 months

                                    depositPeriodFrequencyId
                                    required
                                    integer
                                    Enum: 0 1 2 3

                                    The type of term period being described. e.g 6 months

                                    Supported options are: 0=Days 1=Weeks 2=Months 3=Years

                                    interestPostingPeriodType
                                    integer
                                    Enum: 4 5 6 7

                                    Part of interest calculation settings.

                                    Indicates how often interest is to be posted to the account.

                                    If provided it overrides the setting on the product, otherwise the account inherits from the product.

                                    Supported options are: 4=Monthly 5=Quarterly 6=Bi-Annualy 7=Annual

                                    interestCompoundingPeriodType
                                    integer
                                    Enum: 4 5 6 7

                                    Part of interest calculation settings.

                                    Indicates how often interest is to be compounded.

                                    If provided it overrides the setting on the product, otherwise the account inherits from the product.

                                    Supported options are: 1=Daily 4=Monthly 5=Quarterly 6=Bi-Annualy 7=Annual

                                    interestCalculationType
                                    integer
                                    Enum: 1 2

                                    Part of interest calculation settings.

                                    If provided it overrides the setting on the product, otherwise the account inherits from the product.

                                    There are two methods to calculate the interest on a savings account: 1=Daily Balance 2=Average Balance

                                    interestCalculationDaysInYearType
                                    integer
                                    Enum: 360 365

                                    Part of interest calculation settings.

                                    If provided it overrides the setting on the product, otherwise the account inherits from the product.

                                    Supported options are: 1=360 2=365

                                    lockinPeriodFrequency
                                    integer

                                    If provided, used along with lockinPeriodFrequencyType to indicate the length of time that the fixed deposit account is 'locked in' and premature closure is not allowed. e.g. 2 Months

                                    If provided it overrides the setting on the product, otherwise the account inherits from the product.

                                    lockinPeriodFrequencyType
                                    integer
                                    Enum: 0 1 2 3

                                    If provided, used along with lockinPeriodFrequency to indicate the length of time that the fixed deposit account is 'locked in' and premature closure is not allowed. e.g. 2 Months

                                    If provided it overrides the setting on the product, otherwise the account inherits from the product.

                                    Supported options are: 0=Days 1=Weeks 2=Months 3=Years

                                    chartId
                                    integer

                                    The id of an existing interest rate chart associated with product.

                                    If omitted, then an applicable interest rate chart will be looked for on the associated product based on the submittedOnDate.

                                    autoRenewOnClosure
                                    boolean
                                    Default: false

                                    A boolean that indicates if accounts of this product should be renewed upon reaching maturity.

                                    preClosurePenalApplicable
                                    boolean
                                    Default: false

                                    A boolean that indicates if penalty is to be applied on pre-closure of accounts of this product.

                                    preClosurePenalInterest
                                    decimal

                                    The interest rate to use in case of pre-closure e.g. 5% Per annum

                                    preClosurePenalInterestOnTypeId
                                    integer
                                    Enum: 1 2

                                    Indicates how the preClosurePenalInterest is to be applied.

                                    Supported options are: 1=Whole Term 2=Until Premature Withdrawal

                                    charges
                                    Array of arrays

                                    The set of charge definitions applicable to this account.

                                    Responses

                                    Request samples

                                    Content type
                                    application/json
                                    {
                                    • "locale": "en",
                                    • "dateFormat": "dd MMMM yyyy",
                                    • "productId": 1,
                                    • "clientId": 1,
                                    • "groupId": 1,
                                    • "fieldOfficerId": 1,
                                    • "externalId": "ABC-0001",
                                    • "submittedOnDate": "2022-12-01T00:00:00.000Z",
                                    • "depositAmount": 1000,
                                    • "depositPeriod": 6,
                                    • "depositPeriodFrequencyId": 2,
                                    • "interestPostingPeriodType": 4,
                                    • "interestCompoundingPeriodType": 4,
                                    • "interestCalculationType": 1,
                                    • "interestCalculationDaysInYearType": 1,
                                    • "lockinPeriodFrequency": 2,
                                    • "lockinPeriodFrequencyType": 2,
                                    • "chartId": 0,
                                    • "autoRenewOnClosure": false,
                                    • "preClosurePenalApplicable": false,
                                    • "preClosurePenalInterest": 5,
                                    • "preClosurePenalInterestOnTypeId": 2,
                                    • "charges": [ ]
                                    }

                                    Response samples

                                    Content type
                                    application/json
                                    {
                                    • "resourceId": 12
                                    }

                                    Share Product

                                    List Share Product

                                    List all Share Products

                                    Authorizations:
                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)

                                    Responses

                                    Response samples

                                    Content type
                                    application/json
                                    [
                                    • {
                                      }
                                    ]

                                    Create new Share Product

                                    Musoni allows for the creation of multiple share products.

                                    Whilst many will only need one share product, some organisations will require multiple types of share accounts (e.g. common shares, preferred shares)

                                    Authorizations:
                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                    Request Body schema: application/json
                                    name
                                    required
                                    string <= 200 characters

                                    The name of the product.

                                    shortName
                                    required
                                    string <= 4 characters

                                    A short name of the product that can be used on reports.

                                    description
                                    required
                                    string

                                    A description to provide users with more information about the product.

                                    externalId
                                    string <= 100 characters

                                    A place to put an external reference for this resource e.g. The ID another system uses for it. If provided, it must be unique.

                                    locale
                                    required
                                    string

                                    The locale to use when interpreting number and date fields in the request.

                                    currencyCode
                                    required
                                    string <= 3 characters

                                    Relates to the the currency of the share product. A three character identifer of currency this shares product uses.

                                    digitsAfterDecimal
                                    required
                                    integer

                                    Relates to the the currency of the share product. The number of digits after decimal to be supported on the currency.

                                    inMultiplesOf
                                    integer

                                    Relates to the the currency of the share product. Relevant for currencies where digitsAfterDecimal is zero. This will round the monetary amount to the nearest multiple.

                                    totalShares
                                    required
                                    number <integer64>

                                    The total number of shares available for this product.

                                    sharesIssued
                                    required
                                    number <integer64>

                                    The total number of shares that is allowed to be issued to client share accounts.

                                    unitPrice
                                    required
                                    number <decimal>

                                    The price of each share at the time of product creation.

                                    minimumShares
                                    number <integer64>

                                    The minimum number of shares a client is allowed to purchase when setting up share account.

                                    nominalShares
                                    required
                                    number <integer64>

                                    The suggested default number of shares to set when purchasing shares.

                                    maximumShares
                                    number <integer64>

                                    The maximum number of shares that a client share account is allowed to have any given point in time.

                                    allowDividendCalculationForInactiveClients
                                    boolean
                                    Default: false

                                    Related to dividend calculation.

                                    Indicates if share accounts closed within the dividend period should be taken into account when calculating the dividend.

                                    minimumActivePeriodForDividends
                                    number <integer32>

                                    Related to dividend calculation.

                                    The minimum number of days a share purchase transaction must exist for before being included in dividend calculation.

                                    This parameter is used together with minimumActivePeriodFrequencyType to indicate this length of time. e.g 5 Days

                                    minimumActivePeriodFrequencyType
                                    integer
                                    Value: 0

                                    The period frequency type e.g Days At present only the period type Days (0=Days) is only supported.

                                    The minimum number of days a share purchase transaction must exist for before being included in dividend calculation.

                                    This parameter is used together with minimumActivePeriodForDividends to indicate this length of time.

                                    lockinPeriodFrequency
                                    number <integer32>

                                    The lock-in period is the minimum amount of time that a member is required to own the shares before they can redeem the shares.

                                    This parameter is used together with lockinPeriodFrequencyType to indicate this length of time.

                                    lockinPeriodFrequencyType
                                    integer
                                    Enum: 0 1 2 3

                                    The lock-in period frequency type e.g Days Supported options are: 0=Days 1=Weeks 2=Months 3=Years

                                    The lock-in period is the minimum amount of time that a member is required to own the shares before they can redeem the shares.

                                    This parameter is used together with lockinPeriodFrequencyType to indicate this length of time.

                                    accountingRule
                                    required
                                    integer
                                    Enum: 1 2

                                    Indicates whether Cash Based Accounting should be used with Shares or not.

                                    Supported options are: 1=None 2=Cash Based Accounting

                                    shareReferenceId
                                    number <integer64>

                                    The unique id of a General Ledger account. Mandatory if accountingRule=2.

                                    shareSuspenseId
                                    number <integer64>

                                    The unique id of a General Ledger account. Mandatory if accountingRule=2.

                                    incomeFromFeeAccountId
                                    number <integer64>

                                    The unique id of a General Ledger account. Mandatory if accountingRule=2.

                                    shareEquityId
                                    number <integer64>

                                    The unique id of a General Ledger account. Mandatory if accountingRule=2.

                                    Array of objects
                                    Array of objects

                                    Responses

                                    Request samples

                                    Content type
                                    application/json
                                    {
                                    • "name": "SACCO Shares Product",
                                    • "shortName": "PR01",
                                    • "description": "Annual Dividend Shares",
                                    • "externalId": "SHP-0001",
                                    • "locale": "en",
                                    • "currencyCode": "KES",
                                    • "digitsAfterDecimal": 2,
                                    • "inMultiplesOf": 10,
                                    • "totalShares": "1,000,000",
                                    • "sharesIssued": "300,000",
                                    • "unitPrice": 1,
                                    • "minimumShares": 100,
                                    • "nominalShares": 100,
                                    • "maximumShares": 1000,
                                    • "allowDividendCalculationForInactiveClients": false,
                                    • "minimumActivePeriodForDividends": 10,
                                    • "minimumActivePeriodFrequencyType": 0,
                                    • "lockinPeriodFrequency": 3,
                                    • "lockinPeriodFrequencyType": 2,
                                    • "accountingRule": 2,
                                    • "shareReferenceId": 1,
                                    • "shareSuspenseId": 2,
                                    • "incomeFromFeeAccountId": 3,
                                    • "shareEquityId": 4,
                                    • "chargesSelected": [
                                      ],
                                    • "marketPricePeriods": [
                                      ]
                                    }

                                    Response samples

                                    Content type
                                    application/json
                                    {
                                    • "resourceId": 12
                                    }

                                    Query for Share Product template

                                    Query for Share Product template to support forms on share product behaviour.

                                    Authorizations:
                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)

                                    Responses

                                    Response samples

                                    Content type
                                    application/json
                                    [
                                    • { }
                                    ]

                                    Find Share Product by Id

                                    Find share product by id

                                    Authorizations:
                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                    path Parameters
                                    id
                                    required
                                    integer <int64>
                                    Example: 1

                                    The unique identifer of a share product.

                                    Responses

                                    Response samples

                                    Content type
                                    application/json
                                    {
                                    • "id": 4709,
                                    • "name": "SACCO Shares Product",
                                    • "shortName": "Doe",
                                    • "description": "Annual Dividend Shares",
                                    • "externalId": "SHP-0001",
                                    • "currency": {
                                      },
                                    • "totalShares": "1,000,000",
                                    • "sharesIssued": "300,000",
                                    • "unitPrice": 1,
                                    • "shareCapital": 1000.5,
                                    • "minimumShares": 100,
                                    • "nominalShares": 100,
                                    • "maximumShares": 1000,
                                    • "allowDividendCalculationForInactiveClients": false,
                                    • "minimumActivePeriod": 10,
                                    • "minimumActivePeriodForDividendsTypeEnum": 0,
                                    • "lockinPeriod": 3,
                                    • "lockPeriodTypeEnum": {
                                      },
                                    • "accountingRule": {
                                      },
                                    • "accountingMappings": {
                                      },
                                    • "charges": [ ],
                                    • "marketPrice": [
                                      ]
                                    }

                                    Update existing share product.

                                    Update existing share product.

                                    Authorizations:
                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                    path Parameters
                                    id
                                    required
                                    integer <int64>
                                    Example: 1

                                    The unique identifer of a share product.

                                    Request Body schema: application/json

                                    Update exisiting share product

                                    name
                                    string <= 200 characters

                                    The name of the product.

                                    shortName
                                    string <= 4 characters

                                    A short name of the product that can be used on reports.

                                    description
                                    string

                                    A description to provide users with more information about the product.

                                    externalId
                                    string <= 100 characters

                                    A place to put an external reference for this resource e.g. The ID another system uses for it. If provided, it must be unique.

                                    locale
                                    string

                                    The locale to use when interpreting number and date fields in the request.

                                    currencyCode
                                    string <= 3 characters

                                    Relates to the the currency of the share product. A three character identifer of currency this shares product uses.

                                    digitsAfterDecimal
                                    integer

                                    Relates to the the currency of the share product. The number of digits after decimal to be supported on the currency.

                                    inMultiplesOf
                                    integer

                                    Relates to the the currency of the share product. Relevant for currencies where digitsAfterDecimal is zero. This will round the monetary amount to the nearest multiple.

                                    totalShares
                                    number <integer64>

                                    The total number of shares available for this product.

                                    sharesIssued
                                    number <integer64>

                                    The total number of shares allowed to be issued at this point in time.

                                    unitPrice
                                    number <decimal>

                                    The price of each share at the time of product creation.

                                    minimumShares
                                    number <integer64>

                                    The minimum number of shares allowed per client.

                                    nominalShares
                                    number <integer64>

                                    The default number of shares allowed per client.

                                    maximumShares
                                    number <integer64>

                                    The maximum number of shares allowed per client.

                                    allowDividendCalculationForInactiveClients
                                    boolean
                                    Default: false

                                    Indicates if inactive clients should be taken into account when calculating dividend

                                    minimumActivePeriodForDividends
                                    number <integer32>

                                    The minimum amount of time that a member must own shares before they are eligible for dividend payments.

                                    This parameter is used together with minimumActivePeriodFrequencyType to indicate this length of time.

                                    minimumActivePeriodFrequencyType
                                    integer
                                    Value: 0

                                    The period frequency type e.g Days At present only the period type Days (0=Days) is only supported.

                                    The minimum amount of time that a member must own shares before they are eligible for dividend payments.

                                    This parameter is used together with minimumActivePeriodForDividends to indicate this length of time.

                                    lockinPeriodFrequency
                                    number <integer32>

                                    The lock-in period is the minimum amount of time that a member is required to own the shares before they can transfer or redeem the shares.

                                    This parameter is used together with lockinPeriodFrequencyType to indicate this length of time.

                                    lockinPeriodFrequencyType
                                    integer
                                    Enum: 0 1 2 3

                                    The lock-in period frequency type e.g Days Supported options are: 0=Days 1=Weeks 2=Months 3=Years

                                    The lock-in period is the minimum amount of time that a member is required to own the shares before they can transfer or redeem the shares.

                                    This parameter is used together with lockinPeriodFrequencyType to indicate this length of time.

                                    accountingRule
                                    integer
                                    Enum: 1 2

                                    Indicates whether Cash Based Accounting should be used with Shares or not.

                                    Supported options are: 1=None 2=Cash Based Accounting

                                    shareReferenceId
                                    number <integer64>

                                    The unique id of a General Ledger account. Mandatory if accountingRule=2.

                                    shareSuspenseId
                                    number <integer64>

                                    The unique id of a General Ledger account. Mandatory if accountingRule=2.

                                    incomeFromFeeAccountId
                                    number <integer64>

                                    The unique id of a General Ledger account. Mandatory if accountingRule=2.

                                    shareEquityId
                                    number <integer64>

                                    The unique id of a General Ledger account. Mandatory if accountingRule=2.

                                    Array of objects
                                    Array of objects

                                    Responses

                                    Request samples

                                    Content type
                                    application/json
                                    {
                                    • "name": "SACCO Shares Product",
                                    • "shortName": "Doe",
                                    • "description": "Annual Dividend Shares",
                                    • "externalId": "SHP-0001",
                                    • "locale": "en",
                                    • "currencyCode": "KES",
                                    • "digitsAfterDecimal": 2,
                                    • "inMultiplesOf": 10,
                                    • "totalShares": "1,000,000",
                                    • "sharesIssued": "300,000",
                                    • "unitPrice": 1,
                                    • "minimumShares": 100,
                                    • "nominalShares": 100,
                                    • "maximumShares": 1000,
                                    • "allowDividendCalculationForInactiveClients": false,
                                    • "minimumActivePeriodForDividends": 10,
                                    • "minimumActivePeriodFrequencyType": 0,
                                    • "lockinPeriodFrequency": 3,
                                    • "lockinPeriodFrequencyType": 2,
                                    • "accountingRule": 2,
                                    • "shareReferenceId": 1,
                                    • "shareSuspenseId": 2,
                                    • "incomeFromFeeAccountId": 3,
                                    • "shareEquityId": 4,
                                    • "chargesSelected": [
                                      ],
                                    • "marketPricePeriods": [
                                      ]
                                    }

                                    Response samples

                                    Content type
                                    application/json
                                    {
                                    • "resourceId": 1,
                                    • "changes": { }
                                    }

                                    Share Product Dividend

                                    List Share Product Dividend Periods

                                    List all Share Product Dividend Periods

                                    Authorizations:
                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                    path Parameters
                                    id
                                    required
                                    integer <int64>
                                    Example: 1

                                    The unique identifer of a share product.

                                    query Parameters
                                    offset
                                    required
                                    integer <int32> >= 0
                                    Default: 0
                                    Example: offset=0

                                    Pagination related. The starting record value.

                                    limit
                                    required
                                    integer <int32> [ 10 .. 200 ]
                                    Default: 10
                                    Example: limit=10

                                    Pagination related. The page size of results to be returned.

                                    orderBy
                                    string
                                    Example: orderBy=accountNo

                                    Used to sort the response by the selected field.

                                    The name provided is an sql complian field name that exists on resources underlying database table: see m_share_product_dividend_pay_out

                                    sortOrder
                                    string
                                    Enum: "ASC" "DESC"
                                    Example: sortOrder=ASC

                                    Used together with the orderBy field to sort the response by the selected field. If orderBy is not provided then this parameter is ignored.

                                    status
                                    integer <int32>
                                    Enum: 100 200

                                    Restrict response to tasks with status matching this value. 100=INITIATED, 300=APPROVED

                                    Responses

                                    Response samples

                                    Content type
                                    application/json
                                    {
                                    • "totalFilteredRecords": 52,
                                    • "pageItems": [
                                      ]
                                    }

                                    Create new Share Product Dividend Period

                                    On creation the dividend payout details at share product and account level will be automatically calculated based on the dividend amount and periods provided.

                                    Authorizations:
                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                    path Parameters
                                    id
                                    required
                                    integer <int64>
                                    Example: 1

                                    The unique identifer of a share product.

                                    Request Body schema: application/json
                                    locale
                                    required
                                    string

                                    The locale to use when interpreting number and date fields in the request.

                                    dateFormat
                                    required
                                    string

                                    The date format to use when interpreting date fields in the request. Must be suported by Joda Time.

                                    dividendAmount
                                    required
                                    number <decimal>

                                    The full declared dividend amount for the period.

                                    dividendPeriodStartDate
                                    required
                                    string <date>

                                    The start date the dividend period; structured as an array of date parts including year, month, day.

                                    dividendPeriodEndDate
                                    required
                                    string <date>

                                    The end date the dividend period; structured as an array of date parts including year, month, day.

                                    Responses

                                    Request samples

                                    Content type
                                    application/json
                                    {
                                    • "locale": "en",
                                    • "dateFormat": "dd MMMM yyyy",
                                    • "dividendAmount": 1000.5,
                                    • "dividendPeriodStartDate": "2019-08-24",
                                    • "dividendPeriodEndDate": "2019-08-24"
                                    }

                                    Response samples

                                    Content type
                                    application/json
                                    {
                                    • "resourceId": 12
                                    }

                                    List Share Account Dividend Details by Period Id

                                    List Share Account Dividend Details by Period Id

                                    Authorizations:
                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                    path Parameters
                                    id
                                    required
                                    integer <int64>
                                    Example: 1

                                    The unique identifer of a share product.

                                    dividendId
                                    required
                                    integer <int64>
                                    Example: 1

                                    The unique identifer of a share product dividend period.

                                    Responses

                                    Response samples

                                    Content type
                                    application/json
                                    {
                                    • "id": 104,
                                    • "accountData": {
                                      },
                                    • "amount": 1000.5,
                                    • "status": {
                                      }
                                    }

                                    Approve existing share product dividend period

                                    On creation of the dividend payout details are calculated for the period provided.

                                    This API approves these details making them eligible for dividends to be posted to each individul client savings account.

                                    The posting of dividends to the clients savings account happens in a scheduled job (typically an overnight process).

                                    Authorizations:
                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                    path Parameters
                                    id
                                    required
                                    integer <int64>
                                    Example: 1

                                    The unique identifer of a share product.

                                    dividendId
                                    required
                                    integer <int64>
                                    Example: 1

                                    The unique identifer of a share product dividend period.

                                    Responses

                                    Response samples

                                    Content type
                                    application/json
                                    {
                                    • "resourceId": 1,
                                    • "changes": { }
                                    }

                                    Delete share product dividend period

                                    On creation of the dividend payout details are calculated for the period provided.

                                    These details can be deleted so long as the dividend period is not in an approved state.

                                    Authorizations:
                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                    path Parameters
                                    id
                                    required
                                    integer <int64>
                                    Example: 1

                                    The unique identifer of a share product.

                                    dividendId
                                    required
                                    integer <int64>
                                    Example: 1

                                    The unique identifer of a share product dividend period.

                                    Responses

                                    Response samples

                                    Content type
                                    application/json
                                    {
                                    • "resourceId": 1,
                                    • "changes": { }
                                    }

                                    Share Account

                                    List Share Accounts

                                    List all Share Accounts

                                    Authorizations:
                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                    query Parameters
                                    offset
                                    integer
                                    Default: 0
                                    Examples:

                                      sets the offset for pagination, used in combination with limit

                                      limit
                                      integer
                                      Default: 200
                                      Examples:

                                        Sets the limit of records returned, if not provided the limit will be 200, if a higher limit than 2500 is provided limit will be restricted at 2500, pagination should be used to retrieve subsequent pages of data.

                                        officeId
                                        integer

                                        The id of an office. Used to restrict to set of accounts associated with the office.

                                        staffId
                                        integer

                                        The id of a staff. If provided will only return the accounts linked to this staff member.

                                        search
                                        string
                                        Example: search=John Doe

                                        Searches (matching around) across:

                                        • Staff name
                                        • Client name
                                        • account number
                                        status
                                        integer
                                        Default: 300
                                        Enum: 100 200 300 500 600
                                        Examples:

                                          Used to restrict the search to share accounts whoose status (code) matches the status code provided.

                                          sortBy
                                          string

                                          Expects a valid SQL fragment that used in order by section of SQL statement.

                                          e.g.
                                          g.account_no DESC
                                          g.submitted_date DESC

                                          modifiedSinceTimestamp
                                          integer
                                          Examples:

                                            Should be passed as a UNIX Timestamp.

                                            When provided only share accounts that have been created or updated since the provided timestamp are returned.

                                            Shares accounts will be marked as modified whenever there is any modification to the share account, transactions etc.

                                            This parameter can be used in integrations to fetch changed data since a last fetch, timestamps will be treated as UTC and returned as UTC.

                                            Responses

                                            Response samples

                                            Content type
                                            application/json
                                            [
                                            • {
                                              }
                                            ]

                                            Create new Share Account

                                            When a new share account is created, a purchase transaction is automatically created.

                                            The fields related to the purchase transaction are:

                                            • applicationDate
                                            • requestedShares
                                            • purchaseFromLinkedSavingsAccount
                                            Authorizations:
                                            (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                            Request Body schema: application/json
                                            clientId
                                            required
                                            integer

                                            The id of the client this share account is associated with.

                                            productId
                                            required
                                            integer

                                            The id of the share product this share account is associated with.

                                            savingsAccountId
                                            required
                                            integer

                                            The id of the savings account this share account is associated with.

                                            Array of objects
                                            locale
                                            required
                                            string

                                            The locale to use when interpreting number and date fields in the request.

                                            dateFormat
                                            required
                                            string

                                            The date format to use when interpreting date fields in the request. Must be suported by Joda Time.

                                            submittedDate
                                            required
                                            string <date>

                                            The date that the share account application was submited.

                                            applicationDate
                                            required
                                            string <date>

                                            The date used as the transaction date of initial purchase transaction that occurs on share account creation.

                                            requestedShares
                                            required
                                            number

                                            The number of shares to be purchased as part of initial purchase transaction that occurs on share account creation.

                                            purchaseFromLinkedSavingsAccount
                                            boolean
                                            Default: false

                                            A boolean that indicates if money is taken from the linked savings account or not for the initial purchase transaction that occurs on share account creation.

                                            minimumActivePeriod
                                            number <integer32>

                                            The minimum amount of time that a member must own shares before they are eligible for dividend payments.

                                            This parameter is used together with minimumActivePeriodFrequencyType to indicate this length of time.

                                            minimumActivePeriodFrequencyType
                                            integer
                                            Value: 0

                                            The period frequency type e.g Days At present only the period type Days (0=Days) is only supported.

                                            The minimum amount of time that a member must own shares before they are eligible for dividend payments.

                                            This parameter is used together with minimumActivePeriodForDividends to indicate this length of time.

                                            lockinPeriodFrequency
                                            number <integer32>

                                            The lock-in period is the minimum amount of time that a member is required to own the shares before they can transfer or redeem the shares.

                                            This parameter is used together with lockinPeriodFrequencyType to indicate this length of time.

                                            lockinPeriodFrequencyType
                                            integer
                                            Enum: 0 1 2 3

                                            The lock-in period frequency type e.g Days Supported options are: 0=Days 1=Weeks 2=Months 3=Years

                                            The lock-in period is the minimum amount of time that a member is required to own the shares before they can transfer or redeem the shares.

                                            This parameter is used together with lockinPeriodFrequencyType to indicate this length of time.

                                            allowDividendCalculationForInactiveClients
                                            boolean
                                            Default: false

                                            Indicates if inactive clients should be taken into account when calculating dividend

                                            Responses

                                            Request samples

                                            Content type
                                            application/json
                                            {
                                            • "clientId": 1,
                                            • "productId": 1,
                                            • "savingsAccountId": 1,
                                            • "charges": [ ],
                                            • "locale": "en",
                                            • "dateFormat": "dd MMMM yyyy",
                                            • "submittedDate": "2020-01-15T00:00:00.000Z",
                                            • "applicationDate": "2020-01-15T00:00:00.000Z",
                                            • "requestedShares": 3,
                                            • "purchaseFromLinkedSavingsAccount": false,
                                            • "minimumActivePeriod": 10,
                                            • "minimumActivePeriodFrequencyType": 0,
                                            • "lockinPeriodFrequency": 3,
                                            • "lockinPeriodFrequencyType": 2,
                                            • "allowDividendCalculationForInactiveClients": false
                                            }

                                            Response samples

                                            Content type
                                            application/json
                                            {
                                            • "resourceId": 12
                                            }

                                            Standing Instructions

                                            Standing instructions (aka standing orders) refer to instructions an account holder ("the payer") gives to his or her financial institute to pay a set amount at regular intervals to another's ("the payee's") account.

                                            At present the following scenarios support standing instructions:

                                            • Account Transfer from savings account to savings account
                                            • Loan Repayment from savings account to loan Account
                                            • Share repurchase from savings account to share account

                                            List Standing Instructions

                                            List all Standing Instructions

                                            Authorizations:
                                            (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                            query Parameters
                                            offset
                                            integer
                                            Default: 0
                                            Examples:

                                              sets the offset for pagination, used in combination with limit

                                              limit
                                              integer
                                              Default: 200
                                              Examples:

                                                Sets the limit of records returned, if not provided the limit will be 200, if a higher limit than 2500 is provided limit will be restricted at 2500, pagination should be used to retrieve subsequent pages of data.

                                                orderBy
                                                string

                                                The database field name that you wish to order the list of standing instructions by.

                                                It must also include the alias used in the generated query:

                                                • atsi.id (id)
                                                • atsi.name (name)
                                                • atsi.priority (priority)
                                                • atsi.status (status)
                                                • atsi.instruction_type (instructionType)
                                                • atsi.amount (amount)
                                                • atsi.valid_from (validFrom)
                                                • atsi.valid_till (validTill)
                                                • atsi.recurrence_type (recurrenceType)
                                                • atsi.recurrence_frequency (recurrenceFrequency)
                                                • atsi.recurrence_interval (recurrenceInterval)
                                                • atsi.recurrence_on_day (recurrenceOnDay)
                                                • atsi.recurrence_on_month (recurrenceOnMonth)
                                                • atsi.maximum_iterations (maximumIteration)
                                                • atd.id (accountDetailId)
                                                • atd.transfer_type (transferType)
                                                • fromoff.id (fromOfficeId)
                                                • fromoff.name (fromOfficeName)
                                                • tooff.id (toOfficeId)
                                                • tooff.name (toOfficeName)
                                                • fromclient.id (fromClientId)
                                                • fromclient.display_name (fromClientName)
                                                • fromgroup.id (fromGroupId)
                                                • fromgroup.display_name (fromGroupName)
                                                • toclient.id (toClientId)
                                                • toclient.display_name (toClientName)
                                                • togroup.id (toGroupId)
                                                • togroup.display_name (toGroupName)
                                                • fromsavacc.id (fromSavingsAccountId)
                                                • fromsavacc.account_no (fromSavingsAccountNo)
                                                • fromsp.id (fromProductId)
                                                • fromsp.name (fromProductName)
                                                • fromloanacc.id (fromLoanAccountId)
                                                • fromloanacc.account_no (fromLoanAccountNo)
                                                • fromlp.id (fromLoanProductId)
                                                • fromlp.name (fromLoanProductName)
                                                • tosavacc.id (toSavingsAccountId)
                                                • tosavacc.account_no (toSavingsAccountNo)
                                                • tosp.id (toProductId)
                                                • tosp.name (toProductName)
                                                • toloanacc.id (toLoanAccountId)
                                                • toloanacc.account_no (toLoanAccountNo)
                                                • toshareacc.id (toShareAccountId)
                                                • toshareacc.account_no (toShareAccountNo)
                                                • toshp.id (toShareProductId)
                                                • toshp.name (toShareProductName)
                                                • tolp.id (toLoanProductId)
                                                • tolp.name (toLoanProductName)
                                                sortOrder
                                                string
                                                Enum: "ASC" "DESC"
                                                • ASC - Ascending, from A to Z
                                                • DESC - Descending, from Z to A

                                                Used with orderBy parameter, this indicates the sorting order of the attribute mentioned in orderBy.

                                                This parameter is ignored unless orderBy is provided also.

                                                transferType
                                                integer
                                                Enum: 1 2 3 4 5
                                                Examples:

                                                  Used to restrict the search to standing instructions that match the transferType provided.

                                                  Options include:

                                                  • 1 = Account Transfer
                                                  • 2 = Loan Repayment
                                                  • 3 = Charge Payment
                                                  • 4 = Interest Transfer
                                                  • 5 = Share Purchase
                                                  clientId
                                                  integer

                                                  The id of a client. Used to restrict to set of standing instructions where the from account is associated with the client.

                                                  clientName
                                                  integer

                                                  The name of a client. Used to restrict to set of standing instructions where the from account has a client that has a name that exactly matches.

                                                  groupId
                                                  integer

                                                  The id of a group. Used to restrict to set of standing instructions where the from account is associated with the group.

                                                  groupName
                                                  integer

                                                  The name of a group. Used to restrict to set of standing instructions where the from account has a group that has a name that exactly matches.

                                                  fromAccountType
                                                  integer
                                                  Enum: 1 2 6
                                                  Examples:

                                                    The account type of the account refered to by fromAccountId.

                                                    This parameter is required if fromAccountId is provided.

                                                    Used to restrict the search to standing instructions that match the transferType provided.

                                                    Options include:

                                                    • 1 = Loan Account
                                                    • 2 = Savings Account
                                                    • 6 = Shares Account
                                                    fromAccountId
                                                    integer

                                                    The id of an account. Used to restrict to set of standing instructions where the from account matches.

                                                    This parameter is required if fromAccountType is provided.

                                                    Responses

                                                    Response samples

                                                    Content type
                                                    application/json
                                                    {
                                                    • "totalFilteredRecords": 52,
                                                    • "pageItems": [
                                                      ]
                                                    }

                                                    Create new Standing Instruction

                                                    Ability to create new instruction for transfer of monetary funds from one account to another.

                                                    Authorizations:
                                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                    Request Body schema: application/json
                                                    name
                                                    required
                                                    string [ 1 .. 250 ] characters

                                                    A unique name assigned to identify the standing instruction.

                                                    transferType
                                                    required
                                                    integer
                                                    Enum: 1 2 3 4 5

                                                    The id of a transfer type enumeration.

                                                    Options include:

                                                    • 1 = Account Transfer
                                                    • 2 = Loan Repayment
                                                    • 3 = Charge Payment
                                                    • 4 = Interest Transfer
                                                    • 5 = Share Purchase
                                                    priority
                                                    required
                                                    integer
                                                    Enum: 1 2 3 4

                                                    The id of a priority enumeration.

                                                    Options include:

                                                    • 1 = Ugent
                                                    • 2 = High
                                                    • 3 = Medium
                                                    • 4 = Low
                                                    status
                                                    required
                                                    integer
                                                    Enum: 1 2 3

                                                    The id of a status enumeration.

                                                    Options include:

                                                    • 1 = Active
                                                    • 2 = Disabled
                                                    • 3 = Deleted
                                                    instructionType
                                                    required
                                                    integer
                                                    Enum: 1 2

                                                    The id of a instruction type enumeration.

                                                    Options include:

                                                    • 1 = Fixed
                                                    • 2 = Dues
                                                    amount
                                                    number <decimal>

                                                    The amount of the standing instruction.

                                                    Mandatory if instructionType=1 (Fixed)

                                                    validFrom
                                                    required
                                                    string <date>

                                                    The date the standing instruction is in effect from.

                                                    validTo
                                                    string <date>

                                                    The date the standing instruction is no longer in effect.

                                                    locale
                                                    required
                                                    string

                                                    The locale to use when interpreting number and date fields in the request.

                                                    dateFormat
                                                    required
                                                    string

                                                    The date format to use when interpreting date fields in the request. Must be suported by Joda Time.

                                                    recurrenceType
                                                    required
                                                    integer
                                                    Enum: 1 2

                                                    Options include:

                                                    • 1 = Periodic
                                                    • 2 = As Per Dues
                                                    recurrenceFrequency
                                                    number <integer32>
                                                    Enum: 0 1 2 3

                                                    Used with recurrenceInterval and recurrenceFrequency to describe the recurrence pattern of the standing instruction.

                                                    Mandatory if recurrenceType=1 (Periodic)

                                                    Example Values:

                                                    • 0=Days
                                                    • 1=Weeks
                                                    • 2=Months
                                                    • 3=Years
                                                    recurrenceInterval
                                                    number <integer>

                                                    Used in combination with recurrenceType to describe the interval at which the standing instruction is executed. e.g every 1 Month(s)

                                                    Mandatory if recurrenceType=1 (Periodic)

                                                    recurrenceOnMonthDay
                                                    Array of arrays

                                                    If recurrenceFrequency is Months, is used to indicates the day of the month the instruction is scheduled to be executed on.

                                                    Used in combination with recurrenceInterval and recurrenceType to describe the interval at which the standing instruction is executed. e.g every 1 Month(s) on 4th.

                                                    fromOfficeId
                                                    integer <integer64>

                                                    An id representing the office from which the transfer is made.

                                                    toOfficeId
                                                    integer <integer64>

                                                    An id representing the office to which the transfer is going to.

                                                    fromGroupId
                                                    integer <integer64>

                                                    An id representing the group from which the transfer is made.

                                                    toGroupId
                                                    integer <integer64>

                                                    An id representing the group to which the transfer is going to.

                                                    fromClientId
                                                    integer <integer64>

                                                    An id representing the client from which the transfer is made.

                                                    toClientId
                                                    integer <integer64>

                                                    An id representing the client to which the transfer is going to.

                                                    fromAccountType
                                                    integer
                                                    Enum: 1 2 6

                                                    An integer representing the account type from which the transfer is made.

                                                    Account types:

                                                    • 1 = Loan Account
                                                    • 2 = Savings Account
                                                    • 6 = Shares Account
                                                    fromAccountId
                                                    integer <integer64>

                                                    An id representing the account from which the transfer is made. Used together with fromAccountType to describe the account.

                                                    toAccountType
                                                    integer
                                                    Enum: 1 2 6

                                                    An integer representing the account type from which the transfer is made.

                                                    Account types:

                                                    • 1 = Loan Account
                                                    • 2 = Savings Account
                                                    • 6 = Shares Account
                                                    toAccountId
                                                    integer <integer64>

                                                    An id representing the account to which the transfer is going to. Used together with toAccountType to describe the account.

                                                    Responses

                                                    Request samples

                                                    Content type
                                                    application/json
                                                    {
                                                    • "name": "string",
                                                    • "transferType": 2,
                                                    • "priority": 2,
                                                    • "status": 1,
                                                    • "instructionType": 2,
                                                    • "amount": 5000,
                                                    • "validFrom": "2020-01-15T00:00:00.000Z",
                                                    • "validTo": "2020-01-15T00:00:00.000Z",
                                                    • "locale": "en",
                                                    • "dateFormat": "dd MMMM yyyy",
                                                    • "recurrenceType": 2,
                                                    • "recurrenceFrequency": 2,
                                                    • "recurrenceInterval": 12,
                                                    • "recurrenceOnMonthDay": "02 April",
                                                    • "fromOfficeId": 2,
                                                    • "toOfficeId": 2,
                                                    • "fromGroupId": 2,
                                                    • "toGroupId": 2,
                                                    • "fromClientId": 2,
                                                    • "toClientId": 2,
                                                    • "fromAccountType": 2,
                                                    • "fromAccountId": 2,
                                                    • "toAccountType": 2,
                                                    • "toAccountId": 2
                                                    }

                                                    Response samples

                                                    Content type
                                                    application/json
                                                    {
                                                    • "resourceId": 12
                                                    }

                                                    Find by Id

                                                    Find standing instruction by id

                                                    Authorizations:
                                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                    path Parameters
                                                    id
                                                    required
                                                    integer <int64>
                                                    Example: 1

                                                    The unique identifer of a standing instruction.

                                                    Responses

                                                    Response samples

                                                    Content type
                                                    application/json
                                                    {
                                                    • "id": 4709,
                                                    • "accountDetailId": 4709,
                                                    • "name": "Regular Repayment",
                                                    • "fromOffice": {
                                                      },
                                                    • "fromClient": {
                                                      },
                                                    • "fromGroup": {
                                                      },
                                                    • "fromAccountType": {
                                                      },
                                                    • "fromAccount": {
                                                      },
                                                    • "toOffice": {
                                                      },
                                                    • "toClient": {
                                                      },
                                                    • "toGroup": {
                                                      },
                                                    • "toAccountType": {
                                                      },
                                                    • "toAccount": {
                                                      },
                                                    • "transferType": {
                                                      },
                                                    • "priority": {
                                                      },
                                                    • "instructionType": {
                                                      },
                                                    • "status": {
                                                      },
                                                    • "amount": 5000,
                                                    • "validFrom": [
                                                      ],
                                                    • "validTo": [
                                                      ],
                                                    • "recurrenceType": {
                                                      },
                                                    • "recurrenceFrequency": {
                                                      },
                                                    • "recurrenceInterval": 12,
                                                    • "recurrenceOnMonthDay": [
                                                      ]
                                                    }

                                                    Update or Delete standing instruction.

                                                    Update or Delete existing standing instruction.

                                                    Use command=delete to mark the standing instruction as deleted. This is a soft delete and only changes the status to deleted (also updates name to indicate its deleted.) No request body is required when marking the standing instruction as deleted.

                                                    Use command=update to update the standing instruction. An update expects a request body and at least one parameter that should be updated.

                                                    Authorizations:
                                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                    path Parameters
                                                    id
                                                    required
                                                    integer <int64>
                                                    Example: 1

                                                    The unique identifer of a standing instruction.

                                                    query Parameters
                                                    command
                                                    required
                                                    string
                                                    Enum: "update" "delete"
                                                    Example: command=update

                                                    The name of the command being performed.

                                                    Request Body schema: application/json

                                                    Update or delete exisiting standing instruction.

                                                    Any of
                                                    name
                                                    string [ 1 .. 250 ] characters

                                                    A unique name assigned to identify the standing instruction.

                                                    transferType
                                                    integer
                                                    Enum: 1 2 3 4 5

                                                    The id of a transfer type enumeration.

                                                    Options include:

                                                    • 1 = Account Transfer
                                                    • 2 = Loan Repayment
                                                    • 3 = Charge Payment
                                                    • 4 = Interest Transfer
                                                    • 5 = Share Purchase
                                                    priority
                                                    integer
                                                    Enum: 1 2 3 4

                                                    The id of a priority enumeration.

                                                    Options include:

                                                    • 1 = Ugent
                                                    • 2 = High
                                                    • 3 = Medium
                                                    • 4 = Low
                                                    status
                                                    integer
                                                    Enum: 1 2 3

                                                    The id of a status enumeration.

                                                    Options include:

                                                    • 1 = Active
                                                    • 2 = Disabled
                                                    • 3 = Deleted
                                                    instructionType
                                                    integer
                                                    Enum: 1 2

                                                    The id of a instruction type enumeration.

                                                    Options include:

                                                    • 1 = Fixed
                                                    • 2 = Dues
                                                    amount
                                                    number <decimal>

                                                    The amount of the standing instruction.

                                                    Mandatory if instructionType=1 (Fixed)

                                                    validFrom
                                                    string <date>

                                                    The date the standing instruction is in effect from.

                                                    validTo
                                                    string <date>

                                                    The date the standing instruction is no longer in effect.

                                                    locale
                                                    string

                                                    The locale to use when interpreting number and date fields in the request.

                                                    dateFormat
                                                    string

                                                    The date format to use when interpreting date fields in the request. Must be suported by Joda Time.

                                                    recurrenceType
                                                    integer
                                                    Enum: 1 2

                                                    Options include:

                                                    • 1 = Periodic
                                                    • 2 = As Per Dues
                                                    recurrenceFrequency
                                                    number <integer32>
                                                    Enum: 0 1 2 3

                                                    Used with recurrenceInterval and recurrenceFrequency to describe the recurrence pattern of the standing instruction.

                                                    Mandatory if recurrenceType=1 (Periodic)

                                                    Example Values:

                                                    • 0=Days
                                                    • 1=Weeks
                                                    • 2=Months
                                                    • 3=Years
                                                    recurrenceInterval
                                                    number <integer>

                                                    Used in combination with recurrenceType to describe the interval at which the standing instruction is executed. e.g every 1 Month(s)

                                                    Mandatory if recurrenceType=1 (Periodic)

                                                    recurrenceOnMonthDay
                                                    Array of arrays

                                                    If recurrenceFrequency is Months, is used to indicates the day of the month the instruction is scheduled to be executed on.

                                                    Used in combination with recurrenceInterval and recurrenceType to describe the interval at which the standing instruction is executed. e.g every 1 Month(s) on 4th.

                                                    fromOfficeId
                                                    integer <integer64>

                                                    An id representing the office from which the transfer is made.

                                                    toOfficeId
                                                    integer <integer64>

                                                    An id representing the office to which the transfer is going to.

                                                    fromGroupId
                                                    integer <integer64>

                                                    An id representing the group from which the transfer is made.

                                                    toGroupId
                                                    integer <integer64>

                                                    An id representing the group to which the transfer is going to.

                                                    fromClientId
                                                    integer <integer64>

                                                    An id representing the client from which the transfer is made.

                                                    toClientId
                                                    integer <integer64>

                                                    An id representing the client to which the transfer is going to.

                                                    fromAccountType
                                                    integer
                                                    Enum: 1 2 6

                                                    An integer representing the account type from which the transfer is made.

                                                    Account types:

                                                    • 1 = Loan Account
                                                    • 2 = Savings Account
                                                    • 6 = Shares Account
                                                    fromAccountId
                                                    integer <integer64>

                                                    An id representing the account from which the transfer is made. Used together with fromAccountType to describe the account.

                                                    toAccountType
                                                    integer
                                                    Enum: 1 2 6

                                                    An integer representing the account type from which the transfer is made.

                                                    Account types:

                                                    • 1 = Loan Account
                                                    • 2 = Savings Account
                                                    • 6 = Shares Account
                                                    toAccountId
                                                    integer <integer64>

                                                    An id representing the account to which the transfer is going to. Used together with toAccountType to describe the account.

                                                    Responses

                                                    Request samples

                                                    Content type
                                                    application/json
                                                    {
                                                    • "name": "string",
                                                    • "transferType": 2,
                                                    • "priority": 2,
                                                    • "status": 1,
                                                    • "instructionType": 2,
                                                    • "amount": 5000,
                                                    • "validFrom": "2020-01-15T00:00:00.000Z",
                                                    • "validTo": "2020-01-15T00:00:00.000Z",
                                                    • "locale": "en",
                                                    • "dateFormat": "dd MMMM yyyy",
                                                    • "recurrenceType": 2,
                                                    • "recurrenceFrequency": 2,
                                                    • "recurrenceInterval": 12,
                                                    • "recurrenceOnMonthDay": "02 April",
                                                    • "fromOfficeId": 2,
                                                    • "toOfficeId": 2,
                                                    • "fromGroupId": 2,
                                                    • "toGroupId": 2,
                                                    • "fromClientId": 2,
                                                    • "toClientId": 2,
                                                    • "fromAccountType": 2,
                                                    • "fromAccountId": 2,
                                                    • "toAccountType": 2,
                                                    • "toAccountId": 2
                                                    }

                                                    Response samples

                                                    Content type
                                                    application/json
                                                    {
                                                    • "resourceId": 1,
                                                    • "changes": { }
                                                    }

                                                    Office

                                                    Offices are used to model an MFIs structure. A hierarchical 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.

                                                    List Offices

                                                    List all Offices

                                                    Authorizations:
                                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                    query Parameters
                                                    includeAllOffices
                                                    boolean
                                                    Default: false
                                                    Example: includeAllOffices=false

                                                    Allows the user to get back the full hierarchy of offices regardless of what office they are associated with in the organisation.

                                                    orderBy
                                                    string
                                                    Enum: "id" "parent_id" "hierarchy" "external_id" "name" "opening_date"

                                                    The database field name that you wish to order the list of offices by.

                                                    sortOrder
                                                    string
                                                    Enum: "ASC" "DESC"

                                                    Used with orderBy parameter, this indicates the sorting order of the attribute mentioned in orderBy. This parameter is ignored unless orderBy is provided also.

                                                    Responses

                                                    Response samples

                                                    Content type
                                                    application/json
                                                    [
                                                    • {
                                                      }
                                                    ]

                                                    Create new Office

                                                    The supported schema for creating offices. name, openingDate, parentId are required.
                                                    locale is required when dealing with numbers or dates
                                                    dateFormat is required when dealing with dates

                                                    Authorizations:
                                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                    Request Body schema: application/json
                                                    name
                                                    required
                                                    string

                                                    The name of the office.

                                                    externalId
                                                    string

                                                    A place to put an external reference for this office e.g. The ID another system uses for it. If provided, it must be unique.

                                                    locale
                                                    required
                                                    string

                                                    The locale to use when interpreting number and date fields in the request.

                                                    dateFormat
                                                    required
                                                    string

                                                    The date format to use when interpreting date fields in the request. Must be suported by Joda Time.

                                                    openingDate
                                                    required
                                                    string

                                                    The opening date in a date format supported by Joda Time.

                                                    parentId
                                                    required
                                                    integer <int64>

                                                    The id of the office that will be above this office in the office hierarchy.

                                                    Responses

                                                    Request samples

                                                    Content type
                                                    application/json
                                                    {
                                                    • "name": "name",
                                                    • "externalId": "ABC-0001",
                                                    • "locale": "en",
                                                    • "dateFormat": "dd MMMM yyyy",
                                                    • "openingDate": "01 July 2007",
                                                    • "parentId": 1
                                                    }

                                                    Response samples

                                                    Content type
                                                    application/json
                                                    {
                                                    • "resourceId": 12
                                                    }

                                                    Find Office by Id

                                                    Find an Office by Id

                                                    Authorizations:
                                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                    path Parameters
                                                    id
                                                    required
                                                    integer <int64>
                                                    Example: 1

                                                    The unique identifer of an office.

                                                    Responses

                                                    Response samples

                                                    Content type
                                                    application/json
                                                    [
                                                    • {
                                                      }
                                                    ]

                                                    Update existing office

                                                    The supported schema for office updates. name, externalId, openingDate and parentId can be updated in isolation or together.

                                                    locale is required when dealing with numbers or dates
                                                    dateFormat is required when dealing with dates

                                                    Authorizations:
                                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                    path Parameters
                                                    id
                                                    required
                                                    integer <int64>
                                                    Example: 1

                                                    The unique identifer of an office.

                                                    Request Body schema: application/json

                                                    Update exisitng office

                                                    name
                                                    string

                                                    The name of the office.

                                                    externalId
                                                    string

                                                    A place to put an external reference for this office e.g. The ID another system uses for it. If provided, it must be unique.

                                                    locale
                                                    string

                                                    The locale to use when interpreting number and date fields in the request.

                                                    dateFormat
                                                    string

                                                    The date format to use when interpreting date fields in the request. Must be suported by Joda Time.

                                                    openingDate
                                                    string

                                                    The opening date in a date format supported by Joda Time.

                                                    parentId
                                                    integer <int64>

                                                    The id of the office that will be above this office in the office hierarchy.

                                                    Responses

                                                    Request samples

                                                    Content type
                                                    application/json
                                                    {
                                                    • "name": "name",
                                                    • "externalId": "ABC-0001",
                                                    • "locale": "en",
                                                    • "dateFormat": "dd MMMM yyyy",
                                                    • "openingDate": "01 July 2007",
                                                    • "parentId": 1
                                                    }

                                                    Response samples

                                                    Content type
                                                    application/json
                                                    {
                                                    • "resourceId": 1,
                                                    • "changes": { }
                                                    }

                                                    Template

                                                    This is a convenience api.
                                                    It can be useful when building maintenance user interface screens for client applications.

                                                    It returns fields with default values and dropdown list values.

                                                    Authorizations:
                                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                    path Parameters
                                                    id
                                                    required
                                                    integer <int64>
                                                    Example: 1

                                                    The unique identifer of an office.

                                                    Responses

                                                    Staff

                                                    Allows you to model staff members. At present the key role of significance is whether this staff member is a loan officer or not.

                                                    List Staff

                                                    List all Staff

                                                    Authorizations:
                                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                    query Parameters
                                                    officeId
                                                    integer

                                                    The id of an office. Used to restrict to set of staff associated with the office.

                                                    staffInOfficeHierarchy
                                                    boolean
                                                    Default: false
                                                    Example: staffInOfficeHierarchy=false

                                                    if true, returns all active staff in office hierarchy that are above the provided officeId.

                                                    loanOfficersOnly
                                                    boolean
                                                    Default: false
                                                    Example: loanOfficersOnly=false

                                                    if true, restricts response to staff that are set as loan officers.

                                                    status
                                                    string
                                                    Default: "active"
                                                    Enum: "active" "inactive" "all"
                                                    Example: status=active

                                                    if staffInOfficeHierarchy is false, status is used to restrict set of staff returned based on whether they are active or not.

                                                    sqlSearch
                                                    string
                                                    Deprecated

                                                    Deprecated. Use other parameters or See The Data Filter API for better approach for search/filter.

                                                    A valid sql fragment that will work with backend query for this api.

                                                    If staffInOfficeHierarchy is false, and when supplied it will be used in the backend SQL Query where clause to restrict set of staff return.

                                                    Responses

                                                    Response samples

                                                    Content type
                                                    application/json
                                                    [
                                                    • {
                                                      }
                                                    ]

                                                    Create new Staff member

                                                    The supported schema for creating staff. officeId, firstName, lastName and joiningDate are required.

                                                    locale is required when dealing with numbers or dates
                                                    dateFormat is required when dealing with dates

                                                    Authorizations:
                                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                    Request Body schema: application/json
                                                    officeId
                                                    required
                                                    integer <int64>

                                                    The id of the office this staff member is associated with.

                                                    firstname
                                                    required
                                                    string

                                                    The first name of the staff member.

                                                    lastname
                                                    required
                                                    string

                                                    The last name of the staff member.

                                                    locale
                                                    required
                                                    string

                                                    The locale to use when interpreting number and date fields in the request.

                                                    dateFormat
                                                    required
                                                    string

                                                    The date format to use when interpreting date fields in the request. Must be suported by Joda Time.

                                                    joiningDate
                                                    required
                                                    string

                                                    The joining date in a date format supported by Joda Time.

                                                    mobileNo
                                                    string

                                                    The mobile telephone number of staff memeber.

                                                    externalId
                                                    string

                                                    A place to put an external reference for this resource e.g. The ID another system uses for it. If provided, it must be unique.

                                                    isLoanOfficer
                                                    boolean

                                                    Indicates if this staff member is a loan officer or not. Defaults to false if omitted.

                                                    isActive
                                                    boolean
                                                    Default: true

                                                    Indicates if this staff member active. Defaults to true if omitted.

                                                    Responses

                                                    Request samples

                                                    Content type
                                                    application/json
                                                    {
                                                    • "officeId": 1,
                                                    • "firstname": "John",
                                                    • "lastname": "Doe",
                                                    • "locale": "en",
                                                    • "dateFormat": "dd MMMM yyyy",
                                                    • "joiningDate": "01 July 2007",
                                                    • "mobileNo": "+353 78 90987877",
                                                    • "externalId": "STAFF-0001",
                                                    • "isLoanOfficer": true,
                                                    • "isActive": true
                                                    }

                                                    Response samples

                                                    Content type
                                                    application/json
                                                    {
                                                    • "resourceId": 12
                                                    }

                                                    Find Staff by Id

                                                    Find staff member by id

                                                    Authorizations:
                                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)

                                                    Responses

                                                    Response samples

                                                    Content type
                                                    application/json
                                                    [
                                                    • {
                                                      }
                                                    ]

                                                    Update existing staff

                                                    The supported schema for staff updates. officeId, firstName, lastName, joiningDate, externalId, mobileNo, isLoanOfficer, isActive can be updated in isolation or together.

                                                    locale is required when dealing with numbers or dates
                                                    dateFormat is required when dealing with dates

                                                    Authorizations:
                                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                    path Parameters
                                                    id
                                                    required
                                                    integer <int64>
                                                    Example: 1

                                                    The unique identifer of a staff member.

                                                    Request Body schema: application/json

                                                    Update exisitng staff member

                                                    officeId
                                                    integer <int64>

                                                    The id of the office this staff member is associated with.

                                                    firstname
                                                    string

                                                    The first name of the staff member.

                                                    lastname
                                                    string

                                                    The last name of the staff member.

                                                    locale
                                                    string

                                                    The locale to use when interpreting number and date fields in the request.

                                                    dateFormat
                                                    string

                                                    The date format to use when interpreting date fields in the request. Must be suported by Joda Time.

                                                    joiningDate
                                                    string

                                                    The joining date in a date format supported by Joda Time.

                                                    mobileNo
                                                    string

                                                    The mobile telephone number of staff memeber.

                                                    externalId
                                                    string

                                                    A place to put an external reference for this resource e.g. The ID another system uses for it. If provided, it must be unique.

                                                    isLoanOfficer
                                                    boolean

                                                    Indicates if this staff member is a loan officer or not. Defaults to false if omitted.

                                                    isActive
                                                    boolean
                                                    Default: true

                                                    Indicates if this staff member active. Defaults to true if omitted.

                                                    Responses

                                                    Request samples

                                                    Content type
                                                    application/json
                                                    {
                                                    • "officeId": 1,
                                                    • "firstname": "John",
                                                    • "lastname": "Doe",
                                                    • "locale": "en",
                                                    • "dateFormat": "dd MMMM yyyy",
                                                    • "joiningDate": "01 July 2007",
                                                    • "mobileNo": "+353 78 90987877",
                                                    • "externalId": "STAFF-0001",
                                                    • "isLoanOfficer": true,
                                                    • "isActive": true
                                                    }

                                                    Response samples

                                                    Content type
                                                    application/json
                                                    {
                                                    • "resourceId": 1,
                                                    • "changes": { }
                                                    }

                                                    Tasks - General

                                                    List Tasks

                                                    List paged response of tasks matching filter criteria.

                                                    The API is scoped by user permissions setup:

                                                    • A user with READ_TASK_ADMIN permission is allowed to search tasks assigned / createdby other users so long as in its office hierarchy.
                                                    • A user with READ_TASK permission is allowed to search tasks either assigned or created by them so long as in office hierarchy.
                                                    • A user with no task permissions is allowed to view tasks where they are the created by user (and the assigned to user if used in search).

                                                    See The Data Filter API for better approach for search/filter.

                                                    Authorizations:
                                                    (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                    query Parameters
                                                    offset
                                                    integer
                                                    Default: 0
                                                    Examples:

                                                      sets the offset for pagination, used in combination with limit

                                                      limit
                                                      integer
                                                      Default: 200
                                                      Examples:

                                                        Sets the limit of records returned, if not provided the limit will be 200, if a higher limit than 2500 is provided limit will be restricted at 2500, pagination should be used to retrieve subsequent pages of data.

                                                        clientId
                                                        integer <int32> >= 1
                                                        Default: null

                                                        Restrict response to tasks with client id matching this value.

                                                        groupId
                                                        integer <int32> >= 1
                                                        Default: null

                                                        Restrict response to tasks with group id matching this value.

                                                        modifiedSinceTimestamp
                                                        integer <int64>
                                                        Examples:

                                                          Should be passed as a UNIX Timestamp.

                                                          When provided only tasks that have been created or updated since the provided timestamp are returned.

                                                          Whenever a task is modified its last modified date and time in UTC is captured.

                                                          This parameter can be used in integrations to fetch changed data since a last fetch, timestamps will be treated as UTC and returned as UTC.

                                                          statusId
                                                          integer <int32> >= 1
                                                          Default: null

                                                          Restrict response to tasks with status matching this value.

                                                          priorityId
                                                          integer <int32> >= 1
                                                          Default: null

                                                          Restrict response to tasks with priority matching this value.

                                                          completed
                                                          boolean
                                                          Default: null

                                                          Restrict response to tasks whose completed attribute match this value.

                                                          taskAssignedToUserId
                                                          integer <int32> >= 1
                                                          Default: null

                                                          Restrict response to tasks assigned to users matching this value.

                                                          taskCreatedByUserId
                                                          integer <int32> >= 1
                                                          Default: null

                                                          Restrict response to tasks created by users matching this value.

                                                          dueDateFrom
                                                          string
                                                          Default: null
                                                          Example: dueDateFrom=2001-12-25T00:00:00.000Z

                                                          This parameter must also be used with dueDateTo to provide range otherwise it is ignored.

                                                          Restrict response to tasks where due date is in range dueDateFrom to dueDateTo.

                                                          The date can be in ISO format yyyy-MM-dd or in the format specified by dateFormat parameter

                                                          dueDateTo
                                                          string
                                                          Default: null

                                                          This parameter must also be used with dueDateFrom to provide range otherwise it is ignored.

                                                          Restrict response to tasks where due date is in range dueDateFrom to dueDateTo.

                                                          The date can be in ISO format yyyy-MM-dd or in the format specified by dateFormat parameter

                                                          createdDateFrom
                                                          string
                                                          Default: null

                                                          This parameter must also be used with createdDateTo to provide range otherwise it is ignored.

                                                          Restrict response to tasks where its created date is in range createdDateFrom to createdDateTo.

                                                          The date can be in ISO format yyyy-MM-dd or in the format specified by dateFormat parameter

                                                          createdDateTo
                                                          string
                                                          Default: null

                                                          This parameter must also be used with createdDateFrom to provide range otherwise it is ignored.

                                                          Restrict response to tasks where its created date is in range createdDateFrom to createdDateTo.

                                                          The date can be in ISO format yyyy-MM-dd or in the format specified by dateFormat parameter

                                                          completedOnDateFrom
                                                          string
                                                          Default: null

                                                          This parameter must also be used with completedOnDateTo to provide range otherwise it is ignored.

                                                          Restrict response to tasks where its completed on date is in range completedOnDateFrom to completedOnDateTo.

                                                          The date can be in ISO format yyyy-MM-dd or in the format specified by dateFormat parameter

                                                          completedOnDateTo
                                                          string
                                                          Default: null

                                                          This parameter must also be used with completedOnDateFrom to provide range otherwise it is ignored.

                                                          Restrict response to tasks where its completed on date is in range completedOnDateFrom to completedOnDateTo.

                                                          The date can be in ISO format yyyy-MM-dd or in the format specified by dateFormat parameter

                                                          dateFormat
                                                          string
                                                          Default: null

                                                          If provided, then it will be used in formatting date parameters, else the date parameters must be in ISO format yyyy-MM-dd

                                                          orderBy
                                                          string
                                                          Enum: "dueDate" "createdDate" "completedOnDate"

                                                          The api parameter name of field you wish to order by.

                                                          sortOrder
                                                          string
                                                          Enum: "ASC" "DESC"

                                                          Used with orderBy parameter, this indicates the sorting order of the attribute mentioned in orderBy. This parameter is ignored unless orderBy is provided also.

                                                          Responses

                                                          Response samples

                                                          Content type
                                                          application/json
                                                          {
                                                          • "totalFilteredRecords": 52,
                                                          • "pageItems": [
                                                            ]
                                                          }

                                                          Create new Task

                                                          Used to create a new Task.

                                                          Authorizations:
                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                          Request Body schema: application/json

                                                          Tasks can be associated with a client or group but not both. The model is the same for client and group except for the clientId and groupId fields.

                                                          Any of
                                                          clientId
                                                          required
                                                          integer <int64>

                                                          The id of the client on platform that this task is associated with.

                                                          summary
                                                          required
                                                          string

                                                          A summary of the tasks purpose.

                                                          assignedToUserId
                                                          required
                                                          integer <int64>

                                                          The id of the user in the platform that you wish to assign against this task.

                                                          statusId
                                                          required
                                                          integer <int64>

                                                          The status to create the task in

                                                          priorityId
                                                          required
                                                          integer <int64>

                                                          The priority to create the task in

                                                          dueDate
                                                          string

                                                          The date on that this task is due to be completed by.

                                                          Provided as a string and used together with dateFormat.

                                                          description
                                                          string

                                                          A full description of the task.

                                                          completed
                                                          boolean
                                                          Default: false

                                                          A boolean indicating if this task is completed or not.

                                                          locale
                                                          string

                                                          The locale to use when interpreting number and date fields in the request.

                                                          dateFormat
                                                          string

                                                          The date format to use when interpreting date fields in the request. Must be suported by Joda Time.

                                                          Responses

                                                          Request samples

                                                          Content type
                                                          application/json
                                                          Example
                                                          {
                                                          • "clientId": 1,
                                                          • "summary": "Task for Kenneth",
                                                          • "assignedToUserId": 1,
                                                          • "statusId": 1,
                                                          • "priorityId": 1,
                                                          • "dueDate": "2021-07-21T00:00:00.000Z",
                                                          • "description": "Task for Kenneth to check new loan.",
                                                          • "completed": false,
                                                          • "locale": "en",
                                                          • "dateFormat": "yyyy-MM-dd"
                                                          }

                                                          Response samples

                                                          Content type
                                                          application/json
                                                          {
                                                          • "resourceId": 12
                                                          }

                                                          Tasks - Existing

                                                          Find a task by id

                                                          Find a task by id.

                                                          Authorizations:
                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                          path Parameters
                                                          id
                                                          required
                                                          integer <int64>
                                                          Example: 1

                                                          The unique identifer of a task.

                                                          Responses

                                                          Response samples

                                                          Content type
                                                          application/json
                                                          {
                                                          • "id": 4709,
                                                          • "assignedTo": "username",
                                                          • "assignedToUserId": 24,
                                                          • "assignedToDisplayName": "username",
                                                          • "createdBy": "username",
                                                          • "createdByUserId": 24,
                                                          • "createdByDisplayName": "username",
                                                          • "summary": "Loan abc, contact customer",
                                                          • "description": "Please follow the following checklist...",
                                                          • "clientId": 14,
                                                          • "client": "John Doe",
                                                          • "groupId": 1,
                                                          • "group": "Rural Group 1",
                                                          • "status": "Follow up",
                                                          • "priority": "P1",
                                                          • "createdOnDate": "Dec 15, 2020 12:00:00 AM",
                                                          • "dueDate": "Dec 19, 2020 12:00:00 AM",
                                                          • "completed": false,
                                                          • "deleted": false,
                                                          • "completedOnDate": "Dec 15, 2020 12:00:00 AM",
                                                          • "originChannel": "my-api-integration",
                                                          • "auditData": {
                                                            }
                                                          }

                                                          Update a task by id.

                                                          Any attribute of the Task model can be updated in isolation.

                                                          Authorizations:
                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                          path Parameters
                                                          id
                                                          required
                                                          integer <int64>
                                                          Example: 1

                                                          The unique identifer of a task.

                                                          Request Body schema: application/json

                                                          Update existing Task

                                                          assignedToUserId
                                                          integer <int64>

                                                          The id of the user in the platform that you wish to assign against this task.

                                                          description
                                                          string

                                                          A full description of the task.

                                                          summary
                                                          string

                                                          A summary of the tasks purpose.

                                                          statusId
                                                          integer <int64>

                                                          The status to create the task in

                                                          priorityId
                                                          integer <int64>

                                                          The priority to create the task in

                                                          dueDate
                                                          string

                                                          The date in ISO Date format that this task is due to be completed by.

                                                          clientId
                                                          integer <int64>

                                                          The id of the client on platform that this task is associated with.

                                                          groupId
                                                          integer <int64>

                                                          The id of the group on platform that this task is associated with.

                                                          Responses

                                                          Request samples

                                                          Content type
                                                          application/json
                                                          {
                                                          • "assignedToUserId": 1,
                                                          • "description": "Task for Kenneth to check new loan.",
                                                          • "summary": "Task for Kenneth",
                                                          • "statusId": 1,
                                                          • "priorityId": 1,
                                                          • "dueDate": "2021-07-21",
                                                          • "clientId": 1,
                                                          • "groupId": 1
                                                          }

                                                          Response samples

                                                          Content type
                                                          application/json
                                                          {
                                                          • "resourceId": 1,
                                                          • "changes": { }
                                                          }

                                                          Delete task by id.

                                                          Deletion of tasks are soft and the record is retained but marked as deleted.

                                                          Authorizations:
                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                          path Parameters
                                                          id
                                                          required
                                                          integer <int64>
                                                          Example: 1

                                                          The unique identifer of a task.

                                                          Responses

                                                          Response samples

                                                          Content type
                                                          application/json
                                                          {
                                                          • "resourceId": 1,
                                                          • "changes": { }
                                                          }

                                                          Command on Task

                                                          All state changing Non-CRUD behaviour related to Tasks are catered for through this path and the use of a query parameter named command to determine which behaviour you wish to execute.

                                                          Authorizations:
                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                          path Parameters
                                                          id
                                                          required
                                                          integer <int64>
                                                          Example: 1

                                                          The unique identifer of a task.

                                                          query Parameters
                                                          command
                                                          string
                                                          Enum: "taskcompleted" "undotaskcompletion"
                                                          Example: command=taskcompleted

                                                          The name of the command indicating which behaviour to perform on the resource.

                                                          Request Body schema: application/json
                                                          Any of
                                                          object (TaskCommandCompleteModel)

                                                          Completing a task moves it into a completed state and ensures required fields are populated.

                                                          Used when command query parameter is set to taskcompleted.

                                                          Responses

                                                          Request samples

                                                          Content type
                                                          application/json
                                                          Example
                                                          { }

                                                          Response samples

                                                          Content type
                                                          application/json
                                                          {
                                                          • "resourceId": 1,
                                                          • "changes": { }
                                                          }

                                                          General Ledger Account

                                                          General ledger accounts (GL Accounts) represent an individual account within an organizations Chart Of Accounts (COA).

                                                          They are assigned a name and unique number by which they can be identified.
                                                          All transactions relating to a company's assets, liabilities, equity, income or expense are recorded against these accounts.

                                                          List GL Accounts

                                                          List all GL Accounts

                                                          Authorizations:
                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                          query Parameters
                                                          type
                                                          string
                                                          Enum: 1 2 3 4 5
                                                          Example: type=1

                                                          This is a filter parameter. It limits the response to GL accounts whoose type field matches the provided value.

                                                          This parameter can be combined with any of filter parameters.

                                                          searchParam
                                                          string
                                                          Example: searchParam=1001

                                                          This is a filter parameter. It limits the response to GL accounts whoose searchParam field matches the provided value.

                                                          This parameter can be combined with any of filter parameters.

                                                          usage
                                                          string
                                                          Enum: 1 2
                                                          Example: usage=1

                                                          This is a filter parameter. It limits the response to GL accounts whoose usage field matches the provided value.

                                                          This parameter can be combined with any of filter parameters.

                                                          manualEntriesAllowed
                                                          boolean
                                                          Example: manualEntriesAllowed=false

                                                          This is a filter parameter. It limits the response to GL accounts whoose manualEntriesAllowed field matches the provided value.

                                                          This parameter can be combined with any of filter parameters.

                                                          disabled
                                                          boolean
                                                          Example: disabled=false

                                                          This is a filter parameter. It limits the response to GL accounts whoose disabled field matches the provided value.

                                                          This parameter can be combined with any of filter parameters.

                                                          reconciliationEnabled
                                                          boolean
                                                          Example: reconciliationEnabled=false

                                                          This is a filter parameter. It limits the response to GL accounts whoose reconciliationEnabled field matches the provided value.

                                                          This parameter can be combined with any of filter parameters.

                                                          fetchRunningBalance
                                                          boolean
                                                          Example: fetchRunningBalance=false

                                                          if true, the response will include an addtional field called organizationRunningBalance.

                                                          fetchUnreconciledBalance
                                                          boolean
                                                          Example: fetchUnreconciledBalance=false

                                                          if true, the response will include an addtional field called unReconciledBalance. This value will be zero for gl accounts that have reconciliation_enabled=0

                                                          Responses

                                                          Response samples

                                                          Content type
                                                          application/json
                                                          [
                                                          • {
                                                            }
                                                          ]

                                                          Create new GL Account

                                                          The supported schmea when creating a new general ledger account (GL Account).

                                                          Authorizations:
                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                          Request Body schema: application/json
                                                          name
                                                          required
                                                          string

                                                          The name of the GL account

                                                          glCode
                                                          required
                                                          string

                                                          The ledger code associated with the Account. These codes are mandatory and unique

                                                          type
                                                          required
                                                          integer
                                                          Enum: 1 2 3 4 5

                                                          Classifies the account into one of the following Types:

                                                          1=Asset: represent the different types of economic resources owned or controlled by business, common examples of Asset accounts are cash, cash in bank, building, inventory, prepaid rent, goodwill, accounts receivable
                                                          2=Liability: represent the different types of economic obligations by a business, such as accounts payable, bank loan, bonds payable
                                                          3=Equity: represent the residual equity of a business (after deducting from Assets all the liabilities) including Retained Earnings and Appropriations
                                                          4=Income: represent the company's gross earnings and common examples include Interest Income, Sales and Service revenue
                                                          5=Expense: represent the company's expenditures to enable itself to operate. Common examples are electricity and water, rentals, depreciation, doubtful accounts, insurance. \

                                                          usage
                                                          required
                                                          integer
                                                          Enum: 1 2

                                                          Indicates if this ledger is a Header or Detail ledger account.

                                                          1=Detail: "Detail" accounts may have transactions logged against them
                                                          2=Header: "Header" accounts specify the title of a group of accounts. They are used only for grouping together detail accounts that have a similar purpose; that is, detail accounts are assigned to specific header accounts

                                                          manualEntriesAllowed
                                                          required
                                                          boolean

                                                          Indicates if manual entries can be made against this account using the Journals API.

                                                          parentId
                                                          integer <integer64>

                                                          To assign a another GL account as the parent of this GL account.

                                                          disabled
                                                          boolean
                                                          Default: false

                                                          Indicates whether an account is disabled or not.

                                                          reconciliationEnabled
                                                          boolean
                                                          Default: false

                                                          Indicates if reconcillation is allowed to be calculated for this account

                                                          tagId
                                                          string

                                                          A code value related to GL accounts used for tagging the account heads, based on GLAccount types.

                                                          description
                                                          string

                                                          Human understandable description for the general ledger account

                                                          externalId
                                                          string

                                                          A place to put an external reference for this resource e.g. The ID another system uses for it. If provided, it must be unique.

                                                          Responses

                                                          Request samples

                                                          Content type
                                                          application/json
                                                          {
                                                          • "name": "Cash on Hand",
                                                          • "glCode": "ASS0001",
                                                          • "type": 1,
                                                          • "usage": 1,
                                                          • "manualEntriesAllowed": false,
                                                          • "parentId": null,
                                                          • "disabled": false,
                                                          • "reconciliationEnabled": false,
                                                          • "tagId": "SomeCodeValue",
                                                          • "description": "Some text explaining the GL account.",
                                                          • "externalId": "XGL-1-00-00-00"
                                                          }

                                                          Response samples

                                                          Content type
                                                          application/json
                                                          {
                                                          • "resourceId": 12
                                                          }

                                                          Find GL Account by Id

                                                          Find GL Account by id

                                                          Authorizations:
                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                          path Parameters
                                                          id
                                                          required
                                                          integer <int64>
                                                          Example: 1

                                                          The unique identifer of a general ledger account (GL Account).

                                                          Responses

                                                          Response samples

                                                          Content type
                                                          application/json
                                                          [
                                                          • {
                                                            }
                                                          ]

                                                          Delete GL Account by Id

                                                          A General Ledger Account can only be deleted if:

                                                          • its a DETAIL account with no transactions have been logged (either manually or by the portfolio products)
                                                          • OR its a Header account with no child gl accounts
                                                          Authorizations:
                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                          path Parameters
                                                          id
                                                          required
                                                          integer <int64>
                                                          Example: 1

                                                          The unique identifer of a general ledger account (GL Account).

                                                          Responses

                                                          Response samples

                                                          Content type
                                                          application/json
                                                          {
                                                          • "resourceId": 0
                                                          }

                                                          Update existing GL Account

                                                          Update ...

                                                          Authorizations:
                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                          path Parameters
                                                          id
                                                          required
                                                          integer <int64>
                                                          Example: 1

                                                          The unique identifer of a general ledger account (GL Account).

                                                          Request Body schema: application/json

                                                          Update exisitng GL account

                                                          name
                                                          string

                                                          The name of the GL account

                                                          glCode
                                                          string

                                                          The ledger code associated with the Account. These codes are mandatory and unique

                                                          type
                                                          integer
                                                          Enum: 1 2 3 4 5

                                                          Classifies the account into one of the following Types:

                                                          1=Asset: represent the different types of economic resources owned or controlled by business, common examples of Asset accounts are cash, cash in bank, building, inventory, prepaid rent, goodwill, accounts receivable
                                                          2=Liability: represent the different types of economic obligations by a business, such as accounts payable, bank loan, bonds payable
                                                          3=Equity: represent the residual equity of a business (after deducting from Assets all the liabilities) including Retained Earnings and Appropriations
                                                          4=Income: represent the company's gross earnings and common examples include Interest Income, Sales and Service revenue
                                                          5=Expense: represent the company's expenditures to enable itself to operate. Common examples are electricity and water, rentals, depreciation, doubtful accounts, insurance. \

                                                          usage
                                                          integer
                                                          Enum: 1 2

                                                          Indicates if this ledger is a Header or Detail ledger account.

                                                          1=Detail: "Detail" accounts may have transactions logged against them
                                                          2=Header: "Header" accounts specify the title of a group of accounts. They are used only for grouping together detail accounts that have a similar purpose; that is, detail accounts are assigned to specific header accounts

                                                          manualEntriesAllowed
                                                          boolean

                                                          Indicates if manual entries can be made against this account using the Journals API.

                                                          parentId
                                                          integer <integer64>

                                                          To assign a another GL account as the parent of this GL account.

                                                          disabled
                                                          boolean
                                                          Default: false

                                                          Indicates whether an account is disabled or not.

                                                          reconciliationEnabled
                                                          boolean
                                                          Default: false

                                                          Indicates if reconcillation is allowed to be calculated for this account

                                                          tagId
                                                          string

                                                          A code value related to GL accounts used for tagging the account heads, based on GLAccount types.

                                                          description
                                                          string

                                                          Human understandable description for the general ledger account

                                                          externalId
                                                          string

                                                          A place to put an external reference for this resource e.g. The ID another system uses for it. If provided, it must be unique.

                                                          Responses

                                                          Request samples

                                                          Content type
                                                          application/json
                                                          {
                                                          • "name": "Cash on hand",
                                                          • "glCode": "ASS0001",
                                                          • "type": 1,
                                                          • "usage": 1,
                                                          • "manualEntriesAllowed": false,
                                                          • "parentId": null,
                                                          • "disabled": false,
                                                          • "reconciliationEnabled": false,
                                                          • "tagId": "SomeCodeValue",
                                                          • "description": "Some text explaining the GL account.",
                                                          • "externalId": "XGL-1-00-00-00"
                                                          }

                                                          Response samples

                                                          Content type
                                                          application/json
                                                          {
                                                          • "resourceId": 1,
                                                          • "changes": { }
                                                          }

                                                          Financial Activity Accounts

                                                          Organization Level Financial Activities like Asset and Liability Transfer can be mapped to GL Account. Integrated accounting takes these accounts into consideration when an Account transfer is made between a savings to loan/savings account and vice-versa

                                                          List Financial Activity Accounts

                                                          List all Financial Activity Accounts

                                                          Authorizations:
                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)

                                                          Responses

                                                          Response samples

                                                          Content type
                                                          application/json
                                                          [
                                                          • {
                                                            }
                                                          ]

                                                          Create new Financial Activity Account

                                                          The supported schmea when creating a new Financial Activity Account.

                                                          Authorizations:
                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                          Request Body schema: application/json
                                                          financialActivityId
                                                          required
                                                          Integer
                                                          Enum: 100 101 102 103 200 201 300 600

                                                          The ID of the relevant financial activity account that needs to be linked.

                                                          glAccountId
                                                          required
                                                          Integer

                                                          The internal id of the glaccount that needs to be linked.

                                                          Responses

                                                          Request samples

                                                          Content type
                                                          application/json
                                                          {
                                                          • "financialActivityId": 100,
                                                          • "glAccountId": 101
                                                          }

                                                          Response samples

                                                          Content type
                                                          application/json
                                                          {
                                                          • "resourceId": 12
                                                          }

                                                          Accounting Exports

                                                          Accounting exports are custom defined export formats towards 3rd party accounting systems such as SQL Accounting, SUN6, Sage and others.

                                                          List Accounting Exports

                                                          List all Accounting Exports

                                                          Authorizations:
                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)

                                                          Responses

                                                          Response samples

                                                          Content type
                                                          application/json
                                                          []

                                                          Find Accounting Exports by Id

                                                          Find Accounting Exports by id

                                                          Authorizations:
                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                          path Parameters
                                                          id
                                                          required
                                                          integer <int64>
                                                          Example: 1

                                                          The unique identifer of an Accounting Export File.

                                                          Responses

                                                          Response samples

                                                          Content type
                                                          application/json
                                                          []

                                                          Generate a reconciliation Data Export for the given accounting Export Id

                                                          Generate Dataexport for the Expoert Id

                                                          Authorizations:
                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                          path Parameters
                                                          id
                                                          required
                                                          integer <int64>
                                                          Example: 1

                                                          The unique identifer of an Accounting Export File.

                                                          Responses

                                                          Response samples

                                                          Content type
                                                          application/json
                                                          {
                                                          • "resourceId": 12
                                                          }

                                                          Regenerate the output file for the given accounting Export Id

                                                          Regenerate file for the Expoert Id

                                                          Authorizations:
                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                          path Parameters
                                                          id
                                                          required
                                                          integer <int64>
                                                          Example: 1

                                                          The unique identifer of an Accounting Export File.

                                                          Responses

                                                          Response samples

                                                          Content type
                                                          application/json
                                                          {
                                                          • "resourceId": 12
                                                          }

                                                          Batches

                                                          Batch API calls are used to group together API calls in one request, creating hierarchy, passing on paramaters and with (optional) rollback capabilities if any of the nested calls fails.

                                                          Submit batch API request

                                                          Batching allows a consumer to pass instructions for several operations in a single HTTP request. A consumer can also specify dependencies between related operations. Once all operations have been completed, a consolidated response will be passed back and the HTTP connection will be closed.

                                                          The Batch API takes in an array of logical HTTP requests represented as JSON arrays - each request has a requestId (the id of a request used to specify the sequence and as a dependency between requests), a method (corresponding to HTTP method GET/PUT/POST/DELETE etc.), a relativeUrl (the portion of the URL after https://example.org/api/v2/), optional headers array (corresponding to HTTP headers), optional reference parameter if a request is dependent on another request and an optional body (for POST and PUT requests). The Batch API returns an array of logical HTTP responses represented as JSON arrays - each response has a requestId, a status code, an optional headers array and an optional body (which is a JSON encoded string).

                                                          Batch API uses Json Path to handle dependent parameters. For example, if request '2' is referencing request '1' and in the "body" or in "relativeUrl" of request '2', there is a dependent parameter (which will look like "$.parameter_name"), then Batch API will internally substitute this dependent parameter from the response body of request '1'.

                                                          Batch calls are currently supported for the following API calls:

                                                          NB: If any API call where batching is preferred is missing from this list, please report this to the Musoni Service Desk.

                                                          Authorizations:
                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                          path Parameters
                                                          enclosingTransaction
                                                          boolean

                                                          Whether to enclose the transaction as one and therefore rollback on failure or not

                                                          Request Body schema: application/json
                                                          Array
                                                          requestId
                                                          integer

                                                          Relative request ordering, requests will be executed in this order and output paramaters from previous requests (eg entityId or loanId) will be available in subsequent calls.

                                                          relativeUrl
                                                          string

                                                          Relative URL to the API to call in this request, including any URL params (?command=repayment)

                                                          method
                                                          enum
                                                          Enum: "GET" "POST" "PUT" "DELETE"

                                                          The HTTP Verb for the request

                                                          headers
                                                          Array of arrays

                                                          Specifying additional headers, such as content type etc.

                                                          body
                                                          string

                                                          Escaped JSON command to be passed

                                                          Responses

                                                          Request samples

                                                          Content type
                                                          application/json
                                                          [
                                                          • {
                                                            }
                                                          ]

                                                          Response samples

                                                          Content type
                                                          application/json
                                                          {
                                                          • "resourceId": 12
                                                          }

                                                          Data Filters

                                                          The Data Filter API supports the ability to produce filtered views of a modelled entity (Metadata Model).

                                                          These filtered views are highly customisable through rules expression support, multi-sort and ability to define the fields included in response.

                                                          The filter definition can then be saved and executed on demand.

                                                          See The Metadata API for listing of models supported.

                                                          List Data Filters

                                                          List all Data Filters across all metadata models (metadataModelType).

                                                          This API scopes the response based on the user making the request and returns only filters where the user is the owner.

                                                          Authorizations:
                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                          query Parameters
                                                          offset
                                                          integer
                                                          Default: 0
                                                          Examples:

                                                            sets the offset for pagination, used in combination with limit

                                                            limit
                                                            integer
                                                            Default: 200
                                                            Examples:

                                                              Sets the limit of records returned, if not provided the limit will be 200, if a higher limit than 2500 is provided limit will be restricted at 2500, pagination should be used to retrieve subsequent pages of data.

                                                              Responses

                                                              Response samples

                                                              Content type
                                                              application/json
                                                              {
                                                              • "totalFilteredRecords": 52,
                                                              • "pageItems": [
                                                                ]
                                                              }

                                                              List Data Filters By Metadata Model Type

                                                              Lists all Data Filters by metadata model type.

                                                              This API scopes the response based on the user making the request and returns only filters where the user is the owner.

                                                              Authorizations:
                                                              (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                              path Parameters
                                                              metadataModelType
                                                              required
                                                              string
                                                              Enum: "clients" "groups" "loans" "savingsaccounts" "shares"
                                                              Example: groups

                                                              An enum that describes the metadata model that is to be associated with the filter.

                                                              query Parameters
                                                              offset
                                                              integer
                                                              Default: 0
                                                              Examples:

                                                                sets the offset for pagination, used in combination with limit

                                                                limit
                                                                integer
                                                                Default: 200
                                                                Examples:

                                                                  Sets the limit of records returned, if not provided the limit will be 200, if a higher limit than 2500 is provided limit will be restricted at 2500, pagination should be used to retrieve subsequent pages of data.

                                                                  Responses

                                                                  Response samples

                                                                  Content type
                                                                  application/json
                                                                  {
                                                                  • "totalFilteredRecords": 52,
                                                                  • "pageItems": [
                                                                    ]
                                                                  }

                                                                  Create Data Filter

                                                                  This API supports creation of new filters.

                                                                  Authorizations:
                                                                  (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                  path Parameters
                                                                  metadataModelType
                                                                  required
                                                                  string
                                                                  Enum: "clients" "groups" "loans" "savingsaccounts" "shares"
                                                                  Example: groups

                                                                  An enum that describes the metadata model that is to be associated with the filter.

                                                                  Request Body schema: application/json
                                                                  name
                                                                  required
                                                                  string [ 1 .. 100 ] characters

                                                                  The name of the filter

                                                                  description
                                                                  string

                                                                  A description to provide users with more information about the filter.

                                                                  required
                                                                  object

                                                                  A valid filter rule expression as generated by QueryBuilder

                                                                  required
                                                                  Array of objects
                                                                  Array of objects

                                                                  Responses

                                                                  Request samples

                                                                  Content type
                                                                  application/json
                                                                  {
                                                                  • "name": "All Loans Pending",
                                                                  • "description": "This filter shows all loans that are pending approval and also are above $1,000.",
                                                                  • "filterRulesExpression": {
                                                                    },
                                                                  • "responseParameters": [
                                                                    ],
                                                                  • "sortByParameters": [
                                                                    ]
                                                                  }

                                                                  Response samples

                                                                  Content type
                                                                  application/json
                                                                  {
                                                                  • "resourceId": 12
                                                                  }

                                                                  Run Data Filter (Ad hoc)

                                                                  Executes the data filter and returns the response.

                                                                  The response returned is dynamic and based upon the metadataModelType and responseParameters provided in the API request.

                                                                  Authorizations:
                                                                  (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                  path Parameters
                                                                  metadataModelType
                                                                  required
                                                                  string
                                                                  Enum: "clients" "groups" "loans" "savingsaccounts" "shares"
                                                                  Example: groups

                                                                  An enum that describes the metadata model that is to be associated with the filter.

                                                                  query Parameters
                                                                  offset
                                                                  integer
                                                                  Default: 0
                                                                  Examples:

                                                                    sets the offset for pagination, used in combination with limit

                                                                    limit
                                                                    integer
                                                                    Default: 200
                                                                    Examples:

                                                                      Sets the limit of records returned, if not provided the limit will be 200, if a higher limit than 2500 is provided limit will be restricted at 2500, pagination should be used to retrieve subsequent pages of data.

                                                                      Request Body schema: application/json
                                                                      required
                                                                      object

                                                                      A valid filter rule expression as generated by QueryBuilder

                                                                      required
                                                                      Array of objects
                                                                      Array of objects

                                                                      Responses

                                                                      Request samples

                                                                      Content type
                                                                      application/json
                                                                      {
                                                                      • "filterRulesExpression": {
                                                                        },
                                                                      • "responseParameters": [
                                                                        ],
                                                                      • "sortByParameters": [
                                                                        ]
                                                                      }

                                                                      Response samples

                                                                      Content type
                                                                      application/json
                                                                      {
                                                                      • "totalFilteredRecords": 52,
                                                                      • "pageItems": [
                                                                        ]
                                                                      }

                                                                      Find existing Data Filter

                                                                      Find a Data Filter by id

                                                                      Returns all the details of the Data Filter. The user making the request must also be the filter owner.

                                                                      Authorizations:
                                                                      (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                      path Parameters
                                                                      metadataModelType
                                                                      required
                                                                      string
                                                                      Enum: "clients" "groups" "loans" "savingsaccounts" "shares"
                                                                      Example: groups

                                                                      An enum that describes the metadata model that is to be associated with the filter.

                                                                      id
                                                                      required
                                                                      integer <int64>
                                                                      Example: 1

                                                                      The unique identifer of a Data Filter.

                                                                      Responses

                                                                      Response samples

                                                                      Content type
                                                                      application/json
                                                                      {
                                                                      • "id": 4709,
                                                                      • "name": "Branch Office X - All loans in arrears",
                                                                      • "description": "This filter shows all loans belonging to branch office X that are in arrears.",
                                                                      • "owner": {
                                                                        },
                                                                      • "metadataModelType": {
                                                                        },
                                                                      • "filterRulesExpression": {
                                                                        },
                                                                      • "responseParameters": [
                                                                        ],
                                                                      • "sortByParameters": [
                                                                        ],
                                                                      • "auditData": {
                                                                        }
                                                                      }

                                                                      Update existing Data Filter

                                                                      Any attribute of the Data Filter can be updated in isolation.

                                                                      Authorizations:
                                                                      (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                      path Parameters
                                                                      metadataModelType
                                                                      required
                                                                      string
                                                                      Enum: "clients" "groups" "loans" "savingsaccounts" "shares"
                                                                      Example: groups

                                                                      An enum that describes the metadata model that is to be associated with the filter.

                                                                      id
                                                                      required
                                                                      integer <int64>
                                                                      Example: 1

                                                                      The unique identifer of a Data Filter.

                                                                      Request Body schema: application/json
                                                                      name
                                                                      string [ 1 .. 100 ] characters

                                                                      The name of the filter

                                                                      description
                                                                      string

                                                                      A description to provide users with more information about the filter.

                                                                      object

                                                                      A valid filter rule expression as generated by QueryBuilder

                                                                      Array of objects
                                                                      Array of objects

                                                                      Responses

                                                                      Request samples

                                                                      Content type
                                                                      application/json
                                                                      {
                                                                      • "name": "All Loans Pending",
                                                                      • "description": "This filter shows all loans that are pending approval and also are above $1,000.",
                                                                      • "filterRulesExpression": {
                                                                        },
                                                                      • "responseParameters": [
                                                                        ],
                                                                      • "sortByParameters": [
                                                                        ]
                                                                      }

                                                                      Response samples

                                                                      Content type
                                                                      application/json
                                                                      {
                                                                      • "resourceId": 1,
                                                                      • "changes": { }
                                                                      }

                                                                      Delete existing Data Filter

                                                                      A user may only delete data filters where they are the owner. The deletion is hard and not recoverable by the end user.

                                                                      Authorizations:
                                                                      (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                      path Parameters
                                                                      metadataModelType
                                                                      required
                                                                      string
                                                                      Enum: "clients" "groups" "loans" "savingsaccounts" "shares"
                                                                      Example: groups

                                                                      An enum that describes the metadata model that is to be associated with the filter.

                                                                      id
                                                                      required
                                                                      integer <int64>
                                                                      Example: 1

                                                                      The unique identifer of a Data Filter.

                                                                      Responses

                                                                      Response samples

                                                                      Content type
                                                                      application/json
                                                                      {
                                                                      • "resourceId": 112
                                                                      }

                                                                      Run an existing Data Filter

                                                                      Executes the data filter and returns the response.

                                                                      The response returned is dynamic and based upon the metadataModelType and responseParameters of the saved filter.

                                                                      Authorizations:
                                                                      (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                      path Parameters
                                                                      metadataModelType
                                                                      required
                                                                      string
                                                                      Enum: "clients" "groups" "loans" "savingsaccounts" "shares"
                                                                      Example: groups

                                                                      An enum that describes the metadata model that is to be associated with the filter.

                                                                      id
                                                                      required
                                                                      integer <int64>
                                                                      Example: 1

                                                                      The unique identifer of a Data Filter.

                                                                      query Parameters
                                                                      offset
                                                                      integer
                                                                      Default: 0
                                                                      Examples:

                                                                        sets the offset for pagination, used in combination with limit

                                                                        limit
                                                                        integer
                                                                        Default: 200
                                                                        Examples:

                                                                          Sets the limit of records returned, if not provided the limit will be 200, if a higher limit than 2500 is provided limit will be restricted at 2500, pagination should be used to retrieve subsequent pages of data.

                                                                          Responses

                                                                          Response samples

                                                                          Content type
                                                                          application/json
                                                                          {
                                                                          • "totalFilteredRecords": 52,
                                                                          • "pageItems": [
                                                                            ]
                                                                          }

                                                                          Data Exports

                                                                          Data Exports are used to generate exports of data from tables linked to a specified base entity

                                                                          List Data Exports

                                                                          List all Data Exports

                                                                          Authorizations:
                                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)

                                                                          Responses

                                                                          Response samples

                                                                          Content type
                                                                          application/json
                                                                          [
                                                                          • {
                                                                            }
                                                                          ]

                                                                          Create new Data Export

                                                                          The supported schema for creating data exports.

                                                                          name, baseEntityName are required.
                                                                          locale is required when dealing with numbers or dates
                                                                          dateFormat is required when dealing with dates

                                                                          Authorizations:
                                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                          Request Body schema: application/json
                                                                          name
                                                                          required
                                                                          string [ 1 .. 100 ] characters

                                                                          The name of the Data Export

                                                                          baseEntityName
                                                                          required
                                                                          string
                                                                          Enum: "loan" "client" "group" "savings_account" "loan_transaction" "savings_account_transaction" "loan_repayment_schedule" "group_loan_member_allocation" "share_account" "standing_instruction" "loan_charge" "savings_account_charge" "share_account_charge" "journal_entry" "client_transfer" "mobile_money" "office" "task" "savings_product" "product_loan" "share_account_dividend" "share_account_transaction"

                                                                          The identifier of the base entity for the Data Export

                                                                          object

                                                                          A valid filter rule expression as generated by QueryBuilder

                                                                          datatables
                                                                          Array of strings

                                                                          An array datatable names to be included in the data export.

                                                                          columns
                                                                          Array of strings[ items [ 1 .. 200 ] characters ]

                                                                          The name of the fields to be selected for the data export

                                                                          version
                                                                          required
                                                                          string
                                                                          Value: "v2"

                                                                          The identifier of the version of the Data Export implementation. Only "v2" is currently supported.

                                                                          Responses

                                                                          Request samples

                                                                          Content type
                                                                          application/json
                                                                          {
                                                                          • "name": "End of Month Account Report",
                                                                          • "baseEntityName": "loan",
                                                                          • "filters": {
                                                                            },
                                                                          • "datatables": [
                                                                            ],
                                                                          • "columns": [
                                                                            ],
                                                                          • "version": "v2"
                                                                          }

                                                                          Response samples

                                                                          Content type
                                                                          application/json
                                                                          {
                                                                          • "resourceId": 12
                                                                          }

                                                                          Find a Data Export by id

                                                                          Retrieves a Data Export entity by id

                                                                          Authorizations:
                                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                          path Parameters
                                                                          id
                                                                          required
                                                                          integer <int64>
                                                                          Example: 1

                                                                          The unique identifer of a data export.

                                                                          Responses

                                                                          Response samples

                                                                          Content type
                                                                          application/json
                                                                          {
                                                                          • "id": 4709,
                                                                          • "name": "Loan Data Export",
                                                                          • "baseEntityName": "loan",
                                                                          • "userRequestMap": {
                                                                            },
                                                                          • "filename": "Loan_Data_Export_20211213091716",
                                                                          • "fileDownloadCount": 1,
                                                                          • "timeline": {
                                                                            },
                                                                          • "editable": true
                                                                          }

                                                                          Update existing Data Export

                                                                          The supported schema for data export updates. name, baseEntityName, filters, datatables, columns and version can be updated in isolation or together.

                                                                          locale is required when dealing with numbers or dates
                                                                          dateFormat is required when dealing with dates

                                                                          Authorizations:
                                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                          path Parameters
                                                                          id
                                                                          required
                                                                          integer <int64>
                                                                          Example: 1

                                                                          The unique identifer of a data export.

                                                                          Request Body schema: application/json

                                                                          Update exisitng data export

                                                                          name
                                                                          string [ 1 .. 100 ] characters

                                                                          The name of the Data Export

                                                                          baseEntityName
                                                                          string
                                                                          Enum: "loan" "client" "group" "savings_account" "loan_transaction" "savings_account_transaction" "loan_repayment_schedule" "group_loan_member_allocation" "share_account" "standing_instruction" "loan_charge" "savings_account_charge" "share_account_charge" "journal_entry" "client_transfer" "mobile_money" "office" "task" "savings_product" "product_loan" "share_account_dividend" "share_account_transaction"

                                                                          The identifier of the base entity for the Data Export

                                                                          object

                                                                          A valid filter rule expression as generated by QueryBuilder

                                                                          datatables
                                                                          Array of strings

                                                                          An array datatable names to be included in the data export.

                                                                          columns
                                                                          Array of strings[ items [ 1 .. 200 ] characters ]

                                                                          The name of the fields to be selected for the data export

                                                                          version
                                                                          string
                                                                          Value: "v2"

                                                                          The identifier of the version of the Data Export implementation. Only "v2" is currently supported.

                                                                          Responses

                                                                          Request samples

                                                                          Content type
                                                                          application/json
                                                                          {
                                                                          • "name": "End of Month Account Report",
                                                                          • "baseEntityName": "loan",
                                                                          • "filters": {
                                                                            },
                                                                          • "datatables": [
                                                                            ],
                                                                          • "columns": [
                                                                            ],
                                                                          • "version": "v2"
                                                                          }

                                                                          Response samples

                                                                          Content type
                                                                          application/json
                                                                          {
                                                                          • "resourceId": 1,
                                                                          • "changes": { }
                                                                          }

                                                                          Get Data Export template

                                                                          This is a convenience api.
                                                                          It can be useful when building maintenance user interface screens for data export creation/update.

                                                                          It returns fields with default values and dropdown list values.

                                                                          Authorizations:
                                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                          path Parameters
                                                                          baseEntityName
                                                                          required
                                                                          string
                                                                          Enum: "loan" "client" "group" "savings_account" "loan_transaction" "savings_account_transaction" "loan_repayment_schedule" "group_loan_member_allocation" "share_account" "standing_instruction" "loan_charge" "savings_account_charge" "share_account_charge" "journal_entry" "client_transfer" "mobile_money" "office" "task" "savings_product" "product_loan" "share_account_dividend" "share_account_transaction"
                                                                          Example: loan

                                                                          An enum that describes the metadata model that is to be associated with the data export.

                                                                          Responses

                                                                          Response samples

                                                                          Content type
                                                                          application/json
                                                                          {
                                                                          • "entityName": "loan",
                                                                          • "tableName": "m_loan",
                                                                          • "datatables": [
                                                                            ],
                                                                          • "columns": [
                                                                            ]
                                                                          }

                                                                          Download Data Export

                                                                          Downloads Data Export file in specified file format.

                                                                          Authorizations:
                                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                          query Parameters
                                                                          fileFormat
                                                                          required
                                                                          string
                                                                          Enum: "csv" "xls" "xml"
                                                                          Example: fileFormat=csv

                                                                          The format of the file to be generated for the Data Export

                                                                          Responses

                                                                          Response samples

                                                                          Content type
                                                                          application/octet-stream
                                                                          {file}

                                                                          Request Data Export (Queue)

                                                                          Adds request to generate a data export file to a processing queue.

                                                                          Authorizations:
                                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                          query Parameters
                                                                          exportId
                                                                          required
                                                                          string

                                                                          The id of the data export whose file needs to be generated

                                                                          fileFormat
                                                                          required
                                                                          string
                                                                          Example: fileFormat=csv

                                                                          Expected output of the file to be generated

                                                                          Responses

                                                                          Response samples

                                                                          Content type
                                                                          text/plain
                                                                          1

                                                                          Find queued Data Export by id

                                                                          Retrieves a Data Export Queue by id

                                                                          Authorizations:
                                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)

                                                                          Responses

                                                                          Response samples

                                                                          Content type
                                                                          application/json
                                                                          {
                                                                          • "preparedDataExportId": 4709,
                                                                          • "exportId": 345,
                                                                          • "name": "Loan Data Export",
                                                                          • "createOn": "12-01-2022 10:14:20",
                                                                          • "finishedOn": "12-01-2022 10:15:20",
                                                                          • "status": "IN_PROGRESS",
                                                                          • "exportType": "PDF",
                                                                          • "expiredOn": "19-01-2022 10:14:20",
                                                                          • "daysBeforeExpiration": 7,
                                                                          • "documentId": 500,
                                                                          • "createdByUsername": "musoni",
                                                                          • "baseEntity": "loan",
                                                                          • "runType": "manual",
                                                                          • "scheduledDataExportId": 200
                                                                          }

                                                                          Document Templates

                                                                          Document templates can be used to generate customised documents as loan contracts, repayment schedules etc.

                                                                          Document templates use Mustache templates with various handlebars helper extensions to allow more advanced operations.

                                                                          List all Document templates

                                                                          List all Document templates

                                                                          Authorizations:
                                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                          query Parameters
                                                                          entityId
                                                                          integer <int32>
                                                                          Default: -1

                                                                          Restrict response to entities matching this value, valid entries are | - 0 - Client - 1 - Loan - 3 - savingsaccounts - 4 - Fixed term deposit account - 6 - Group - 7 - Shares - 8 - Share transactions - 9 - Loan transactions - 10 - Savings transactions

                                                                          Responses

                                                                          Response samples

                                                                          Content type
                                                                          application/json
                                                                          [
                                                                          • {
                                                                            }
                                                                          ]

                                                                          Find a document template by id

                                                                          Find a document template by id.

                                                                          Authorizations:
                                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                          path Parameters
                                                                          id
                                                                          required
                                                                          integer <int64>
                                                                          Example: 1

                                                                          The unique identifer of a document template.

                                                                          Responses

                                                                          Response samples

                                                                          Content type
                                                                          application/json
                                                                          {
                                                                          • "id": 1,
                                                                          • "name": "Loan Contract",
                                                                          • "entity": "client",
                                                                          • "type": "document",
                                                                          • "text": "<h1>Loan Schedule</h1>\r\n{{#or (eq loan.status.value \"Submitted and pending approval\") (eq loan.status.value \"Approved\")}}\r\n",
                                                                          • "mappers": [
                                                                            ],
                                                                          • "paperSize": "A4",
                                                                          • "isSystemDefined": false
                                                                          }

                                                                          Generate the document with markers replaced.

                                                                          Compiles Document template mappers and parse document template text replacing markers by mapped values

                                                                          Authorizations:
                                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                          path Parameters
                                                                          id
                                                                          required
                                                                          integer <int64>
                                                                          Example: 1

                                                                          The unique identifer of a document template.

                                                                          Request Body schema: application/json
                                                                          Any of
                                                                          locale
                                                                          required
                                                                          string

                                                                          The locale to use when interpreting number and date fields in the request.

                                                                          dateFormat
                                                                          required
                                                                          string

                                                                          The date format to use when interpreting date fields in the request. Must be suported by Joda Time.

                                                                          clientId
                                                                          required
                                                                          integer

                                                                          A valid id for a customer.

                                                                          tenantIdentifier
                                                                          string <= 30 characters

                                                                          The identifier of the tenant running the template.

                                                                          tenantUrl
                                                                          string <= 30 characters

                                                                          The external FQDN of the customers environment, used for referring to logo's etc.

                                                                          Responses

                                                                          Request samples

                                                                          Content type
                                                                          application/json
                                                                          Example
                                                                          {}

                                                                          Response samples

                                                                          Content type
                                                                          text/html
                                                                          <html><head>...</head><body>...</body></html>

                                                                          Hypermedia - Resources

                                                                          List Resources

                                                                          Lists all resources that have hypermedia support for REST.

                                                                          Authorizations:
                                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)

                                                                          Responses

                                                                          Response samples

                                                                          Content type
                                                                          application/json
                                                                          {
                                                                          • "totalFilteredRecords": 4,
                                                                          • "pageItems": [
                                                                            ]
                                                                          }

                                                                          Find Resource By Name

                                                                          Find resource by name returning the full hypermedia describing resource.

                                                                          Authorizations:
                                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                          path Parameters
                                                                          resourceName
                                                                          required
                                                                          string
                                                                          Example: tasks

                                                                          The name of a resource on the platform that supports hypermedia

                                                                          Responses

                                                                          Response samples

                                                                          Content type
                                                                          application/json
                                                                          {
                                                                          • "resource": "tasks",
                                                                          • "permitted": true,
                                                                          • "hypermediaApi": {
                                                                            },
                                                                          • "commands": [
                                                                            ],
                                                                          • "queries": [
                                                                            ]
                                                                          }

                                                                          Hypermedia - APIs

                                                                          List APIs

                                                                          Lists all APIs that have hypermedia support for REST.

                                                                          Authorizations:
                                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)

                                                                          Responses

                                                                          Response samples

                                                                          Content type
                                                                          application/json
                                                                          {
                                                                          • "totalFilteredRecords": 4,
                                                                          • "pageItems": [
                                                                            ]
                                                                          }

                                                                          Find API by Name

                                                                          Find one API by name.

                                                                          Authorizations:
                                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                          path Parameters
                                                                          apiName
                                                                          required
                                                                          string
                                                                          Example: createNewTask

                                                                          The name of a api on the platform that supports hypermedia

                                                                          Responses

                                                                          Response samples

                                                                          Content type
                                                                          application/json
                                                                          {
                                                                          • "totalFilteredRecords": 4,
                                                                          • "pageItems": [
                                                                            ]
                                                                          }

                                                                          Metadata

                                                                          List Metadata Models

                                                                          Lists all metadata models supported.

                                                                          Authorizations:
                                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)

                                                                          Responses

                                                                          Response samples

                                                                          Content type
                                                                          application/json
                                                                          {
                                                                          • "totalFilteredRecords": 4,
                                                                          • "pageItems": [
                                                                            ]
                                                                          }

                                                                          Find Metadata Model

                                                                          Retrieves the details of the metadata model using the path parameter metadataModelType.

                                                                          Authorizations:
                                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                          path Parameters
                                                                          metadataModelType
                                                                          required
                                                                          string
                                                                          Enum: "clients" "groups" "loans" "savingsaccounts" "shares"
                                                                          Example: groups

                                                                          An enum that describes the metadata model that is to be associated with the filter.

                                                                          Responses

                                                                          Response samples

                                                                          Content type
                                                                          application/json
                                                                          {
                                                                          • "metadata": {
                                                                            }
                                                                          }

                                                                          Metadata For Clients

                                                                          This API returns the metadata for the clients model.

                                                                          Application developers can use this to help buid forms and components.

                                                                          Authorizations:
                                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                          path Parameters
                                                                          metadataModelType
                                                                          required
                                                                          string
                                                                          Example: clients

                                                                          Responses

                                                                          Response samples

                                                                          Content type
                                                                          application/json
                                                                          {
                                                                          • "metadata": {
                                                                            }
                                                                          }

                                                                          Metadata For Groups

                                                                          This API returns the metadata for the groups model.

                                                                          Application developers can use this to help buid forms and components.

                                                                          Authorizations:
                                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                          path Parameters
                                                                          metadataModelType
                                                                          required
                                                                          string
                                                                          Example: groups

                                                                          Responses

                                                                          Response samples

                                                                          Content type
                                                                          application/json
                                                                          {
                                                                          • "metadata": {
                                                                            }
                                                                          }

                                                                          Metadata For Loans

                                                                          This API returns the metadata for the loans model.

                                                                          Application developers can use this to help buid forms and components.

                                                                          Authorizations:
                                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                          path Parameters
                                                                          metadataModelType
                                                                          required
                                                                          string
                                                                          Example: loans

                                                                          Responses

                                                                          Response samples

                                                                          Content type
                                                                          application/json
                                                                          {
                                                                          • "metadata": {
                                                                            }
                                                                          }

                                                                          Metadata For Savings Accounts

                                                                          This API returns the metadata for the savingsaccounts model.

                                                                          Application developers can use this to help buid forms and components.

                                                                          Authorizations:
                                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                          path Parameters
                                                                          metadataModelType
                                                                          required
                                                                          string
                                                                          Example: savingsaccounts

                                                                          Responses

                                                                          Response samples

                                                                          Content type
                                                                          application/json
                                                                          {
                                                                          • "metadata": {
                                                                            }
                                                                          }

                                                                          Metadata For Tasks

                                                                          This API returns the metadata for the tasks model.

                                                                          Application developers can use this to help buid forms and components.

                                                                          Authorizations:
                                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                          path Parameters
                                                                          metadataModelType
                                                                          required
                                                                          string
                                                                          Example: tasks

                                                                          Responses

                                                                          Response samples

                                                                          Content type
                                                                          application/json
                                                                          {
                                                                          • "metadata": {
                                                                            }
                                                                          }

                                                                          Lookup

                                                                          Lookup by Metadata and Parameter Name

                                                                          Lists all the lookup options that are available for the specified metadataModelType and apiParameterName.

                                                                          Authorizations:
                                                                          (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                          path Parameters
                                                                          metadataModelType
                                                                          required
                                                                          string
                                                                          Enum: "clients" "groups" "loans" "savingsaccounts" "shares"
                                                                          Example: groups

                                                                          An enum that describes the metadata model that is to be associated with the filter.

                                                                          apiParameterName
                                                                          required
                                                                          string
                                                                          Example: apiParameterName

                                                                          The name of an parameter on a metadata model.

                                                                          query Parameters
                                                                          offset
                                                                          integer
                                                                          Default: 0
                                                                          Examples:

                                                                            sets the offset for pagination, used in combination with limit

                                                                            limit
                                                                            integer
                                                                            Default: 200
                                                                            Examples:

                                                                              Sets the limit of records returned, if not provided the limit will be 200, if a higher limit than 2500 is provided limit will be restricted at 2500, pagination should be used to retrieve subsequent pages of data.

                                                                              searchTerm
                                                                              string
                                                                              Examples:
                                                                              • -
                                                                              • -
                                                                              • -

                                                                              When provided the lookup is restricted to to entries that match the search term provided.

                                                                              Responses

                                                                              Response samples

                                                                              Content type
                                                                              application/json
                                                                              {
                                                                              • "totalFilteredRecords": 200,
                                                                              • "pageItems": [
                                                                                ]
                                                                              }

                                                                              Lookup By Relationship Name

                                                                              Lists all the lookup options that are available for the specified relationship.

                                                                              Authorizations:
                                                                              (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                              path Parameters
                                                                              relationshipName
                                                                              required
                                                                              string
                                                                              Example: relationshipName

                                                                              The name of a relationsip.

                                                                              query Parameters
                                                                              offset
                                                                              integer
                                                                              Default: 0
                                                                              Examples:

                                                                                sets the offset for pagination, used in combination with limit

                                                                                limit
                                                                                integer
                                                                                Default: 200
                                                                                Examples:

                                                                                  Sets the limit of records returned, if not provided the limit will be 200, if a higher limit than 2500 is provided limit will be restricted at 2500, pagination should be used to retrieve subsequent pages of data.

                                                                                  searchTerm
                                                                                  string
                                                                                  Examples:
                                                                                  • -
                                                                                  • -
                                                                                  • -

                                                                                  When provided the lookup is restricted to to entries that match the search term provided.

                                                                                  Responses

                                                                                  Response samples

                                                                                  Content type
                                                                                  application/json
                                                                                  {
                                                                                  • "totalFilteredRecords": 200,
                                                                                  • "pageItems": [
                                                                                    ]
                                                                                  }

                                                                                  Search

                                                                                  Search API allows scoped search across portfolio resources such as clients, groups, loans and savings.

                                                                                  Search

                                                                                  Search API allows scoped search across portfolio resources:

                                                                                  It searches key fields of each resource for search term provided.

                                                                                  Client:

                                                                                  • Display Name
                                                                                  • Account Number
                                                                                  • External ID

                                                                                  Group:

                                                                                  • Name
                                                                                  • Account Number
                                                                                  • External Id

                                                                                  Client Identifiers:

                                                                                  • Document Key

                                                                                  Loan:

                                                                                  • Account Number
                                                                                  Authorizations:
                                                                                  (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                                  query Parameters
                                                                                  query
                                                                                  required
                                                                                  String

                                                                                  The search term to be searched for across scoped resources.

                                                                                  resource
                                                                                  string
                                                                                  Enum: "clients" "clientidentifiers" "groups" "loans" "savings" "ftd" "shares"

                                                                                  Scoped resources on which search can be performed.

                                                                                  If there is no resource parameter passed then search will be performed on all scoped resources.

                                                                                  Resources can be combined through a comma seperated list to include multiple resources e.g resource=clients,groups

                                                                                  exactMatch
                                                                                  boolean
                                                                                  Default: false
                                                                                  Example: exactMatch=false

                                                                                  If there is no exactMatch parameter passed or set to false, then search will perform partial match search across scoped resources.

                                                                                  If set to true will only return exactly matching results.

                                                                                  Useful when searching a specific accountId or client phonenumber.

                                                                                  limit
                                                                                  Integer
                                                                                  Default: 500

                                                                                  Limits the number of search results returned. If not set defaults to 500 results.

                                                                                  Responses

                                                                                  Response samples

                                                                                  Content type
                                                                                  application/json
                                                                                  [
                                                                                  • {
                                                                                    }
                                                                                  ]

                                                                                  Jobs

                                                                                  Jobs refers to a set of backend tasks that are performed and controlled by the Platform.

                                                                                  At any point, you can view the list of jobs scheduled to run along with other details specific to each job.

                                                                                  List All Jobs

                                                                                  Returns all jobs configured with the scheduler.

                                                                                  Permission: READ_SCHEDULER

                                                                                  Authorizations:
                                                                                  (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)

                                                                                  Responses

                                                                                  Response samples

                                                                                  Content type
                                                                                  application/json
                                                                                  [
                                                                                  • {
                                                                                    }
                                                                                  ]

                                                                                  Find Job By Id

                                                                                  Returns details of the job

                                                                                  Permission: READ_SCHEDULER

                                                                                  Authorizations:
                                                                                  (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                                  path Parameters
                                                                                  id
                                                                                  required
                                                                                  integer <int64>
                                                                                  Example: 1

                                                                                  The unique identifer of a job.

                                                                                  Responses

                                                                                  Response samples

                                                                                  Content type
                                                                                  application/json
                                                                                  {
                                                                                  • "jobId": 4709,
                                                                                  • "displayName": "Update loan Summary",
                                                                                  • "nextRunTime": "Oct 13, 2023 9:00:00 PM",
                                                                                  • "cronExpression": "0 0 22 1/1 * ? *",
                                                                                  • "active": true,
                                                                                  • "currentlyRunning": true,
                                                                                  • "lastRunHistory": {
                                                                                    }
                                                                                  }

                                                                                  Execute Job

                                                                                  Manually execute the job

                                                                                  Authorizations:
                                                                                  (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                                  path Parameters
                                                                                  id
                                                                                  required
                                                                                  integer <int64>
                                                                                  Example: 1

                                                                                  The unique identifer of a job.

                                                                                  query Parameters
                                                                                  command
                                                                                  required
                                                                                  string
                                                                                  Default: "executeJob"
                                                                                  Example: command=executeJob

                                                                                  The executeJob command.

                                                                                  Responses

                                                                                  Response samples

                                                                                  Content type
                                                                                  application/json
                                                                                  {
                                                                                  • "timestamp": 521630352275443,
                                                                                  • "status": 401,
                                                                                  • "error": "Unauthorized",
                                                                                  • "message": "Full authentication is required to access this resource",
                                                                                  • "path": "/api/v1/{resourceName}"
                                                                                  }

                                                                                  List Job Execution History

                                                                                  Returns the history of job executions for a specific job.

                                                                                  Permission: READ_SCHEDULER

                                                                                  Authorizations:
                                                                                  (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                                  path Parameters
                                                                                  id
                                                                                  required
                                                                                  integer <int64>
                                                                                  Example: 1

                                                                                  The unique identifer of a job.

                                                                                  query Parameters
                                                                                  offset
                                                                                  integer
                                                                                  Default: 0
                                                                                  Examples:

                                                                                    sets the offset for pagination, used in combination with limit

                                                                                    limit
                                                                                    integer
                                                                                    Default: 200
                                                                                    Examples:

                                                                                      Sets the limit of records returned, if not provided the limit will be 200, if a higher limit than 2500 is provided limit will be restricted at 2500, pagination should be used to retrieve subsequent pages of data.

                                                                                      orderBy
                                                                                      string
                                                                                      Enum: "id" "job_id" "version" "start_time" "end_time" "status" "trigger_type" "error_message" "error_log"

                                                                                      The SQL,Database name of the field

                                                                                      sortOrder
                                                                                      string

                                                                                      DESC or ASC

                                                                                      Responses

                                                                                      Response samples

                                                                                      Content type
                                                                                      application/json
                                                                                      [
                                                                                      • {
                                                                                        }
                                                                                      ]

                                                                                      Users

                                                                                      An API capability to support administration of application users.

                                                                                      User accounts are setup so people or processes can authenticate before using APIs.

                                                                                      Users are associated with an office in the organisation. The platform data-scoping feature will limit what users can see and do based on their assigned office.

                                                                                      Users can be associated with a staff e.g loan officers

                                                                                      For self-service functionality users can be associated with a client allowing that user to login and view their account details.

                                                                                      List Users

                                                                                      Returns all non-deleted users.

                                                                                      Permission: READ_USER

                                                                                      Authorizations:
                                                                                      (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)

                                                                                      Responses

                                                                                      Response samples

                                                                                      Content type
                                                                                      application/json
                                                                                      [
                                                                                      • {
                                                                                        }
                                                                                      ]

                                                                                      Create new User.

                                                                                      Creates a new user account.

                                                                                      Permission: CREATE_USER

                                                                                      Authorizations:
                                                                                      (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                                      Request Body schema: application/json
                                                                                      username
                                                                                      required
                                                                                      string

                                                                                      The username of the user.

                                                                                      firstname
                                                                                      required
                                                                                      string

                                                                                      The first name of the user.

                                                                                      lastname
                                                                                      required
                                                                                      string

                                                                                      The last name of the user.

                                                                                      email
                                                                                      string

                                                                                      The email of the user.

                                                                                      officeId
                                                                                      required
                                                                                      integer <int64>

                                                                                      The id of the office this user is associated with.

                                                                                      staffId
                                                                                      integer <int64>

                                                                                      The id of the staff member this user is associated with. A staff member can only be associated with one user.

                                                                                      roles
                                                                                      required
                                                                                      Array of integers

                                                                                      An array of id's that indicate the roles that are to be assigned to this user.

                                                                                      sendPasswordToEmail
                                                                                      required
                                                                                      boolean
                                                                                      Default: false

                                                                                      If true, the password generated for the user will be emailed to the users provided email.

                                                                                      passwordNeverExpires
                                                                                      boolean
                                                                                      Default: false

                                                                                      If true, the password will never expire for this user account.

                                                                                      renewPasswordOnNextLogin
                                                                                      boolean
                                                                                      Default: true

                                                                                      If true, the user will be requested to change their password on next login.

                                                                                      password
                                                                                      string

                                                                                      The clear text password for the user account. see also repeatPassword.

                                                                                      repeatPassword
                                                                                      string

                                                                                      The clear text password for the user account repeated. see also password.

                                                                                      isEnabled
                                                                                      boolean
                                                                                      Default: true

                                                                                      Indicates if the user account is enabled or not.

                                                                                      isSelfServiceUser
                                                                                      boolean
                                                                                      Default: false

                                                                                      Indicates if the user account is a "self service" account meaning that this user account is associated with a client.

                                                                                      The client will be able to login using this account to check their details and perform self-service actions.

                                                                                      sendPasswordToSelfServiceClients
                                                                                      boolean
                                                                                      Default: false

                                                                                      If isSelfServiceUser is true, indicates if the password generated for the user will be emailed to the users provided email.

                                                                                      clients
                                                                                      Array of integers

                                                                                      If isSelfServiceUser is true, An array of id's that indicate the client(s) that are to be assigned to this self-service user account.

                                                                                      Responses

                                                                                      Request samples

                                                                                      Content type
                                                                                      application/json
                                                                                      {
                                                                                      • "username": "johnsmith123",
                                                                                      • "firstname": "John",
                                                                                      • "lastname": "Smith",
                                                                                      • "email": "johnsmith@example.com",
                                                                                      • "officeId": 1,
                                                                                      • "staffId": 1,
                                                                                      • "roles": [
                                                                                        ],
                                                                                      • "sendPasswordToEmail": false,
                                                                                      • "passwordNeverExpires": false,
                                                                                      • "renewPasswordOnNextLogin": true,
                                                                                      • "password": "mYFav4our1tPassw0rd",
                                                                                      • "repeatPassword": "mYFav4our1tPassw0rd",
                                                                                      • "isEnabled": true,
                                                                                      • "isSelfServiceUser": false,
                                                                                      • "sendPasswordToSelfServiceClients": false,
                                                                                      • "clients": [
                                                                                        ]
                                                                                      }

                                                                                      Response samples

                                                                                      Content type
                                                                                      application/json
                                                                                      {
                                                                                      • "resourceId": 12
                                                                                      }

                                                                                      Find User by Id

                                                                                      Find User by id

                                                                                      Authorizations:
                                                                                      (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                                      path Parameters
                                                                                      id
                                                                                      required
                                                                                      integer <int64>
                                                                                      Example: 1

                                                                                      The unique identifer of a user.

                                                                                      Responses

                                                                                      Response samples

                                                                                      Content type
                                                                                      application/json
                                                                                      [
                                                                                      • {
                                                                                        }
                                                                                      ]

                                                                                      Update existing User

                                                                                      Support ability to update details of user account.

                                                                                      Note: When updating a password you must provide the repeatPassword parameter also.

                                                                                      Authorizations:
                                                                                      (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                                      path Parameters
                                                                                      id
                                                                                      required
                                                                                      integer <int64>
                                                                                      Example: 1

                                                                                      The unique identifer of a user.

                                                                                      Request Body schema: application/json

                                                                                      Update exisitng user

                                                                                      username
                                                                                      required
                                                                                      string

                                                                                      The username of the user.

                                                                                      firstname
                                                                                      required
                                                                                      string

                                                                                      The first name of the user.

                                                                                      lastname
                                                                                      required
                                                                                      string

                                                                                      The last name of the user.

                                                                                      email
                                                                                      string

                                                                                      The email of the user.

                                                                                      officeId
                                                                                      required
                                                                                      integer <int64>

                                                                                      The id of the office this user is associated with.

                                                                                      staffId
                                                                                      integer <int64>

                                                                                      The id of the staff member this user is associated with. A staff member can only be associated with one user.

                                                                                      roles
                                                                                      required
                                                                                      Array of integers

                                                                                      An array of id's that indicate the roles that are to be assigned to this user.

                                                                                      sendPasswordToEmail
                                                                                      required
                                                                                      boolean
                                                                                      Default: false

                                                                                      If true, the password generated for the user will be emailed to the users provided email.

                                                                                      passwordNeverExpires
                                                                                      boolean
                                                                                      Default: false

                                                                                      If true, the password will never expire for this user account.

                                                                                      renewPasswordOnNextLogin
                                                                                      boolean
                                                                                      Default: true

                                                                                      If true, the user will be requested to change their password on next login.

                                                                                      password
                                                                                      string

                                                                                      The clear text password for the user account. see also repeatPassword.

                                                                                      repeatPassword
                                                                                      string

                                                                                      The clear text password for the user account repeated. see also password.

                                                                                      isEnabled
                                                                                      boolean
                                                                                      Default: true

                                                                                      Indicates if the user account is enabled or not.

                                                                                      isSelfServiceUser
                                                                                      boolean
                                                                                      Default: false

                                                                                      Indicates if the user account is a "self service" account meaning that this user account is associated with a client.

                                                                                      The client will be able to login using this account to check their details and perform self-service actions.

                                                                                      sendPasswordToSelfServiceClients
                                                                                      boolean
                                                                                      Default: false

                                                                                      If isSelfServiceUser is true, indicates if the password generated for the user will be emailed to the users provided email.

                                                                                      clients
                                                                                      Array of integers

                                                                                      If isSelfServiceUser is true, An array of id's that indicate the client(s) that are to be assigned to this self-service user account.

                                                                                      lockUser
                                                                                      boolean
                                                                                      Default: true

                                                                                      Used to lock or unlock an user account on update.

                                                                                      Responses

                                                                                      Request samples

                                                                                      Content type
                                                                                      application/json
                                                                                      {
                                                                                      • "username": "johnsmith123",
                                                                                      • "firstname": "John",
                                                                                      • "lastname": "Smith",
                                                                                      • "email": "johnsmith@example.com",
                                                                                      • "officeId": 1,
                                                                                      • "staffId": 1,
                                                                                      • "roles": [
                                                                                        ],
                                                                                      • "sendPasswordToEmail": false,
                                                                                      • "passwordNeverExpires": false,
                                                                                      • "renewPasswordOnNextLogin": true,
                                                                                      • "password": "mYFav4our1tPassw0rd",
                                                                                      • "repeatPassword": "mYFav4our1tPassw0rd",
                                                                                      • "isEnabled": true,
                                                                                      • "isSelfServiceUser": false,
                                                                                      • "sendPasswordToSelfServiceClients": false,
                                                                                      • "clients": [
                                                                                        ],
                                                                                      • "lockUser": true
                                                                                      }

                                                                                      Response samples

                                                                                      Content type
                                                                                      application/json
                                                                                      {
                                                                                      • "resourceId": 1,
                                                                                      • "changes": { }
                                                                                      }

                                                                                      Command on User

                                                                                      Supports multi-factor authentication (MFA) related commands on a user.

                                                                                      Note: MFA cannot be enabled on Client Users (users where isSelfServiceUser = true)

                                                                                      Authorizations:
                                                                                      (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                                      path Parameters
                                                                                      id
                                                                                      required
                                                                                      integer <int64>
                                                                                      Example: 1

                                                                                      The unique identifer of a user.

                                                                                      query Parameters
                                                                                      command
                                                                                      required
                                                                                      string
                                                                                      Enum: "enable-mfa" "disable-mfa" "expire-mfa" "reset-mfa"
                                                                                      Example: command=disable

                                                                                      The name of the command being performed.

                                                                                      Responses

                                                                                      Response samples

                                                                                      Content type
                                                                                      application/json
                                                                                      {
                                                                                      • "resourceId": 1,
                                                                                      • "changes": { }
                                                                                      }

                                                                                      Delete existing User

                                                                                      Performs a soft delete of the user.

                                                                                      Any requests to find this user or operate on the user will result in a 404 not found as the resource no longer exists.

                                                                                      Authorizations:
                                                                                      (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                                      path Parameters
                                                                                      id
                                                                                      required
                                                                                      integer <int64>
                                                                                      Example: 1

                                                                                      The unique identifer of a user.

                                                                                      Responses

                                                                                      Response samples

                                                                                      Content type
                                                                                      application/json
                                                                                      {
                                                                                      • "resourceId": 1,
                                                                                      • "changes": { }
                                                                                      }

                                                                                      Roles

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

                                                                                      Roles group together permissions. They are typically defined based on a persons role in a organisation or based on the functional access required.

                                                                                      List Roles

                                                                                      List all Roles

                                                                                      Authorizations:
                                                                                      (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                                      query Parameters
                                                                                      activeRoleOnly
                                                                                      boolean
                                                                                      Default: true
                                                                                      Example: activeRoleOnly=true

                                                                                      if true, returns all active roles

                                                                                      Responses

                                                                                      Response samples

                                                                                      Content type
                                                                                      application/json
                                                                                      [
                                                                                      • {
                                                                                        }
                                                                                      ]

                                                                                      Create new Role

                                                                                      Creates a new role which can then be updated with permissions.

                                                                                      Authorizations:
                                                                                      (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                                      Request Body schema: application/json
                                                                                      name
                                                                                      required
                                                                                      string

                                                                                      The name of the role

                                                                                      description
                                                                                      required
                                                                                      string

                                                                                      A more extensive description of the role.

                                                                                      Responses

                                                                                      Request samples

                                                                                      Content type
                                                                                      application/json
                                                                                      {
                                                                                      • "name": "My Role",
                                                                                      • "description": "A more extensive description of the role"
                                                                                      }

                                                                                      Response samples

                                                                                      Content type
                                                                                      application/json
                                                                                      {
                                                                                      • "resourceId": 12
                                                                                      }

                                                                                      Find Role by Id

                                                                                      Find Role member by id

                                                                                      Authorizations:
                                                                                      (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                                      path Parameters
                                                                                      id
                                                                                      required
                                                                                      integer <int64>
                                                                                      Example: 1

                                                                                      The unique identifer of a role.

                                                                                      Responses

                                                                                      Response samples

                                                                                      Content type
                                                                                      application/json
                                                                                      [
                                                                                      • {
                                                                                        }
                                                                                      ]

                                                                                      Update existing Role

                                                                                      Supports the ability to update role details.

                                                                                      Authorizations:
                                                                                      (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                                      path Parameters
                                                                                      id
                                                                                      required
                                                                                      integer <int64>
                                                                                      Example: 1

                                                                                      The unique identifer of a role.

                                                                                      Request Body schema: application/json

                                                                                      Update exisitng Role

                                                                                      name
                                                                                      required
                                                                                      string

                                                                                      The name of the role

                                                                                      description
                                                                                      required
                                                                                      string

                                                                                      A more extensive description of the role.

                                                                                      Responses

                                                                                      Request samples

                                                                                      Content type
                                                                                      application/json
                                                                                      {
                                                                                      • "name": "My Role",
                                                                                      • "description": "A more extensive description of the role"
                                                                                      }

                                                                                      Response samples

                                                                                      Content type
                                                                                      application/json
                                                                                      {
                                                                                      • "resourceId": 1,
                                                                                      • "changes": { }
                                                                                      }

                                                                                      Command on Role

                                                                                      Supports enable and disable commands on a role

                                                                                      Authorizations:
                                                                                      (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                                      path Parameters
                                                                                      id
                                                                                      required
                                                                                      integer <int64>
                                                                                      Example: 1

                                                                                      The unique identifer of a role.

                                                                                      query Parameters
                                                                                      command
                                                                                      required
                                                                                      string
                                                                                      Enum: "disable" "enable"
                                                                                      Example: command=disable

                                                                                      The name of the command being performed.

                                                                                      Responses

                                                                                      Response samples

                                                                                      Content type
                                                                                      application/json
                                                                                      {
                                                                                      • "resourceId": 1,
                                                                                      • "changes": { }
                                                                                      }

                                                                                      Delete existing Role

                                                                                      Will perform hard delete of the role unless it is associated with any users.

                                                                                      Authorizations:
                                                                                      (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                                      path Parameters
                                                                                      id
                                                                                      required
                                                                                      integer <int64>
                                                                                      Example: 1

                                                                                      The unique identifer of a role.

                                                                                      Responses

                                                                                      Response samples

                                                                                      Content type
                                                                                      application/json
                                                                                      {
                                                                                      • "resourceId": 1,
                                                                                      • "changes": { }
                                                                                      }

                                                                                      List Role Permissions

                                                                                      List permissions assocatied with role

                                                                                      Authorizations:
                                                                                      (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                                      path Parameters
                                                                                      id
                                                                                      required
                                                                                      integer <int64>
                                                                                      Example: 1

                                                                                      The unique identifer of a role.

                                                                                      Responses

                                                                                      Response samples

                                                                                      Content type
                                                                                      application/json
                                                                                      [
                                                                                      • {
                                                                                        }
                                                                                      ]

                                                                                      Update Role Permission

                                                                                      The ability to be able to update what permissions are associated with this role.

                                                                                      Authorizations:
                                                                                      (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                                      path Parameters
                                                                                      id
                                                                                      required
                                                                                      integer <int64>
                                                                                      Example: 1

                                                                                      The unique identifer of a role.

                                                                                      Request Body schema: application/json

                                                                                      Update role permissions

                                                                                      permissions
                                                                                      required
                                                                                      object

                                                                                      A map where the key is a valid permission code and the value is an array with two entries.

                                                                                      The first entry of the array indicates if permission is enabled or not.

                                                                                      The second entry is an id of a product grouping.

                                                                                      Responses

                                                                                      Request samples

                                                                                      Content type
                                                                                      application/json
                                                                                      {
                                                                                      • "permissions": {
                                                                                        }
                                                                                      }

                                                                                      Response samples

                                                                                      Content type
                                                                                      application/json
                                                                                      {
                                                                                      • "resourceId": 1,
                                                                                      • "changes": { }
                                                                                      }

                                                                                      Permissions

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

                                                                                      Permissions come pre-installed as they are directly related to APIs. In order to be authorized to call an API a user must have its associated permission.

                                                                                      Note: We do not directly expose APIs for creation or deletion of permissions.

                                                                                      The update of a permissions is only in place to support the enabling or disabling of Maker-Checker functionality for command related (state changing) APIs.

                                                                                      List Permissions

                                                                                      If makerCheckerable=false or not supplied then a list of permissions is returned. The selected attribute is always true in this case.

                                                                                      If makerCheckerable=true then returns all permissions that can be enabled for maker-checker (which excludes read permissions or special permissions). The selected attribute shows whether the permission is enabled for Maker-Checker.

                                                                                      Note: Each Musoni transaction is associated with a permission.

                                                                                      Authorizations:
                                                                                      (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                                      query Parameters
                                                                                      makerCheckerable
                                                                                      boolean
                                                                                      Default: false
                                                                                      Example: makerCheckerable=false

                                                                                      boolean to indicate what way to list permissions

                                                                                      Responses

                                                                                      Response samples

                                                                                      Content type
                                                                                      application/json
                                                                                      [
                                                                                      • {
                                                                                        }
                                                                                      ]

                                                                                      Enable/Disable Maker-Checker Permissions

                                                                                      Allows permissions to be updated to enable/disable maker-checker for them.

                                                                                      Authorizations:
                                                                                      (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                                      Request Body schema: application/json

                                                                                      Allows permissions to be updated to enable/disable maker-checker for them.

                                                                                      permissions
                                                                                      required
                                                                                      object

                                                                                      A map where the key is a valid permission code and the value a boolean

                                                                                      Responses

                                                                                      Request samples

                                                                                      Content type
                                                                                      application/json
                                                                                      {
                                                                                      • "permissions": {
                                                                                        }
                                                                                      }

                                                                                      Response samples

                                                                                      Content type
                                                                                      application/json
                                                                                      {
                                                                                      • "resourceId": 1,
                                                                                      • "changes": { }
                                                                                      }

                                                                                      Password Preferences

                                                                                      This API enables management of password policy for user administration.

                                                                                      There is no Musoni functionality for creating a validation policy. The validation policies come pre-installed.

                                                                                      Validation policies may be updated

                                                                                      Find active validation policy.

                                                                                      Lists all the active system validation policies.

                                                                                      Authorizations:
                                                                                      (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)

                                                                                      Responses

                                                                                      Response samples

                                                                                      Content type
                                                                                      application/json
                                                                                      {
                                                                                      • "id": 4709,
                                                                                      • "description": "Password must be at least 1 character and not more that 50 characters long",
                                                                                      • "active": true,
                                                                                      • "activeSelfservice": true,
                                                                                      • "key": "simple",
                                                                                      • "regex": "^.{1,50}$"
                                                                                      }

                                                                                      Update active validation policy

                                                                                      The ability to update the selected active validation policy for user accounts.

                                                                                      Authorizations:
                                                                                      (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)
                                                                                      Request Body schema: application/json
                                                                                      validationPolicyId
                                                                                      required
                                                                                      int64

                                                                                      The id of the validation policy which you wish to set as the active policy.

                                                                                      isSelfService
                                                                                      boolean
                                                                                      Default: false

                                                                                      If true, this updated will be for self-services users valiation policy.

                                                                                      Responses

                                                                                      Request samples

                                                                                      Content type
                                                                                      application/json
                                                                                      {
                                                                                      • "validationPolicyId": 1234,
                                                                                      • "isSelfService": false
                                                                                      }

                                                                                      Response samples

                                                                                      Content type
                                                                                      application/json
                                                                                      {
                                                                                      • "resourceId": 1,
                                                                                      • "changes": { }
                                                                                      }

                                                                                      Find all validation policies.

                                                                                      Lists all system validation policies.

                                                                                      Authorizations:
                                                                                      (musoniBasicAuthTenantIdentifierKeyMusoniApiKey)

                                                                                      Responses

                                                                                      Response samples

                                                                                      Content type
                                                                                      application/json
                                                                                      [
                                                                                      • {
                                                                                        }
                                                                                      ]