diff --git a/fineract-provider/build.gradle b/fineract-provider/build.gradle index 8781857cd..ad069b78a 100644 --- a/fineract-provider/build.gradle +++ b/fineract-provider/build.gradle @@ -43,9 +43,12 @@ buildscript { classpath 'com.radcortez.gradle:openjpa-gradle-plugin:3.1.0' classpath 'gradle.plugin.org.nosphere.apache:creadur-rat-gradle:0.2.2' classpath "com.github.spotbugs:spotbugs-gradle-plugin:2.0.1" - //Use Guava version 23+ as a workaround to spotbug intergration. + //Use Guava version 23+ as a workaround to spotbug intergration. // See: https://github.com/spotbugs/spotbugs-gradle-plugin/issues/128#issuecomment-535864882 - classpath 'com.google.guava:guava:28.1-jre' + classpath 'com.google.guava:guava:28.1-jre' + + classpath "io.swagger.core.v3:swagger-gradle-plugin:2.0.8" + classpath "gradle.plugin.org.hidetake:gradle-swagger-generator-plugin:2.18.1" } } @@ -59,6 +62,8 @@ apply plugin: 'eclipse' apply plugin: 'idea' apply plugin: 'com.bmuschko.tomcat' apply plugin: 'project-report' +apply plugin: 'java' +apply plugin: "org.hidetake.swagger.generator" apply plugin: 'java-library' apply plugin: 'openjpa' apply plugin: "com.github.spotbugs" @@ -69,7 +74,7 @@ dependencyManagement { imports { mavenBom 'org.springframework:spring-framework-bom:5.1.10.RELEASE' } - + dependencies { dependency 'org.springframework.security.oauth:spring-security-oauth2:2.3.6.RELEASE' dependency 'org.apache.openjpa:openjpa:3.1.0' @@ -207,6 +212,7 @@ rat { '**/docs/system-architecture/**/*.xml', '**/bootstrap-3.0.0/assets/application.js', '**/system-architecture/js/plugins.js', + '**/docs/interoperation/specification/json/*.json', //Apache License '**/bootstrap-3.0.0/assets/less.js', @@ -529,3 +535,30 @@ tasks.withType(SpotBugsTask) { reports.html.enabled = true reportLevel = "high" } + +// This is to save json file at build time +resolve { + outputFileName = 'response.json' + outputFormat = 'JSON' + prettyPrint = 'TRUE' + classpath = sourceSets.main.runtimeClasspath + resourcePackages = ['org.apache.fineract'] + outputPath = '/src/main/resources/swagger-ui/response.json' +} + +//This is for code and swagger UI generation +dependencies { + swaggerCodegen 'io.swagger:swagger-codegen-cli:2.4.2' // Swagger Codegen V2 + swaggerCodegen 'io.swagger.codegen.v3:swagger-codegen-cli:3.0.5' // or Swagger Codegen V3 + swaggerCodegen 'org.openapitools:openapi-generator-cli:3.3.4' // or OpenAPI Generator + swaggerUI 'org.webjars:swagger-ui:3.10.0' +} + +swaggerSources { + fineract { + inputFile = file('src/main/resources/swagger-ui/response.json') + code { + language = 'java' + } + } +} diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/accrual/api/AccrualAccountingApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/accrual/api/AccrualAccountingApiResource.java index 9b60aae66..76e5a0c42 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/accrual/api/AccrualAccountingApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/accrual/api/AccrualAccountingApiResource.java @@ -40,9 +40,8 @@ import org.springframework.stereotype.Component; @Scope("singleton") @Api(tags = {"Periodic Accrual Accounting"}) @SwaggerDefinition(tags = { - @Tag(name = "Periodic Accrual Accounting", description = "Periodic Accrual is to accrue the loan income till the specific date or till batch job scheduled time.\n\n") + @Tag(name = "Periodic Accrual Accounting", description = "Periodic Accrual is to accrue the loan income till the specific date or till batch job scheduled time.\n") }) - public class AccrualAccountingApiResource { private final PortfolioCommandSourceWritePlatformService commandsSourceWritePlatformService; diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/closure/api/GLClosuresApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/closure/api/GLClosuresApiResource.java index 6b7ba6028..404a9ec87 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/closure/api/GLClosuresApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/closure/api/GLClosuresApiResource.java @@ -57,9 +57,8 @@ import org.springframework.stereotype.Component; @Scope("singleton") @Api(tags = {"Accounting Closure"}) @SwaggerDefinition(tags = { - @Tag(name = "Accounting Closure", description = "An accounting closure indicates that no more journal entries may be logged (or reversed) in the system, either manually or via the portfolio with an entry date prior to the defined closure date\\n\" + \"\\n\" + \"Field Descriptions\\n\" + \"closingDate\\n\" + \"The date for which the accounting closure is defined\\n\" + \"officeId\\n\" + \"The identifer of the branch for which accounting has been closed\\n\" + \"comments\\n\" + \"Description associated with an Accounting closure") + @Tag(name = "Accounting Closure", description = "An accounting closure indicates that no more journal entries may be logged (or reversed) in the system, either manually or via the portfolio with an entry date prior to the defined closure date\n" + "\n" + "Field Descriptions\n" + "closingDate\n" + "The date for which the accounting closure is defined\n" + "officeId\n" + "The identifer of the branch for which accounting has been closed\n" + "comments\n" + "Description associated with an Accounting closure") }) - public class GLClosuresApiResource { private static final Set RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList("id", "officeId", "officeName", diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/financialactivityaccount/api/FinancialActivityAccountsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/financialactivityaccount/api/FinancialActivityAccountsApiResource.java index 4efd8c59c..6538fdc13 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/financialactivityaccount/api/FinancialActivityAccountsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/financialactivityaccount/api/FinancialActivityAccountsApiResource.java @@ -53,9 +53,8 @@ import org.springframework.stereotype.Component; @Scope("singleton") @Api(tags = {"Mapping Financial Activities to Accounts"}) @SwaggerDefinition(tags = { - @Tag(name = "Mapping Financial Activities to Accounts", description = "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\\n\" + \"\\n\" +\"\\nField Descriptions\\n\" +\"financialActivityId\\n\" +\"The identifier of the Financial Activity\\n\" +\"glAccountId\\n\" +\"The identifier of a GL Account ( Ledger Account) which shall be used as the default account for the selected Financial Activity") + @Tag(name = "Mapping Financial Activities to Accounts", description = "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\n" + "\n" + "Field Descriptions\n" + "financialActivityId\n" + "The identifier of the Financial Activity\n" + "glAccountId\n" + "The identifier of a GL Account ( Ledger Account) which shall be used as the default account for the selected Financial Activity") }) - public class FinancialActivityAccountsApiResource { private final FinancialActivityAccountReadPlatformService financialActivityAccountReadPlatformService; diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/glaccount/api/GLAccountsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/glaccount/api/GLAccountsApiResource.java index 3f4fa4209..e5669f3f3 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/glaccount/api/GLAccountsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/glaccount/api/GLAccountsApiResource.java @@ -72,9 +72,8 @@ import org.springframework.stereotype.Component; @Scope("singleton") @Api(tags = {"General Ledger Account"}) @SwaggerDefinition(tags = { - @Tag(name = "General Ledger Account", description = "Ledger accounts represent an Individual account within an Organizations Chart Of Accounts(COA) and are assigned a name and unique number by which they can be identified. \\n\" + \"All transactions relating to a company's assets, liabilities, owners' equity, revenue and expenses are recorded against these accounts") + @Tag(name = "General Ledger Account", description = "Ledger accounts represent an Individual account within an Organizations Chart Of Accounts(COA) and are assigned a name and unique number by which they can be identified. \n" + "All transactions relating to a company's assets, liabilities, owners' equity, revenue and expenses are recorded against these accounts") }) - public class GLAccountsApiResource { private static final Set RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList("id", "name", "parentId", "glCode", diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/api/JournalEntriesApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/api/JournalEntriesApiResource.java index 25d1d1cda..4f721bdb5 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/api/JournalEntriesApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/api/JournalEntriesApiResource.java @@ -70,9 +70,8 @@ import org.springframework.stereotype.Component; @Scope("singleton") @Api(tags = {"Journal Entries"}) @SwaggerDefinition(tags = { - @Tag(name = "Journal Entries", description = "A journal entry refers to the logging of transactions against general ledger accounts. A journal entry may consist of several line items, each of which is either a \\\"debit\\\" or a \\\"credit\\\". The total amount of the debits must equal the total amount of the credits or the journal entry is said to be \\\"unbalanced\\\" \\n\" + \"\\n\" + \"A journal entry directly changes the account balances on the general ledger") + @Tag(name = "Journal Entries", description = "A journal entry refers to the logging of transactions against general ledger accounts. A journal entry may consist of several line items, each of which is either a \"debit\" or a \"credit\". The total amount of the debits must equal the total amount of the credits or the journal entry is said to be \"unbalanced\" \n" + "\n" + "A journal entry directly changes the account balances on the general ledger") }) - public class JournalEntriesApiResource { private static final Set RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList("id", "officeId", "officeName", diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/api/ProvisioningEntriesApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/api/ProvisioningEntriesApiResource.java index 4ce5bc88b..e5bd31168 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/api/ProvisioningEntriesApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/api/ProvisioningEntriesApiResource.java @@ -58,9 +58,8 @@ import java.util.Set; @Scope("singleton") @Api(tags = {"Provisioning Entries"}) @SwaggerDefinition(tags = { - @Tag(name = "Provisioning Entries", description = "This defines the Provisioning Entries for all active loan products\\n\" + \"\\n\" + \"Field Descriptions\\n\" + \"date\\n\" + \"Date on which day provisioning entries should be created\\n\" + \"createjournalentries\\n\" + \"Boolean variable whether to add journal entries for generated provisioning entries\\n") + @Tag(name = "Provisioning Entries", description = "This defines the Provisioning Entries for all active loan products\n" + "\n" + "Field Descriptions\n" + "date\n" + "Date on which day provisioning entries should be created\n" + "createjournalentries\n" + "Boolean variable whether to add journal entries for generated provisioning entries\n") }) - public class ProvisioningEntriesApiResource { private final PlatformSecurityContext platformSecurityContext; diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/rule/api/AccountingRuleApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/rule/api/AccountingRuleApiResource.java index 1daefdcba..388b02c3c 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/rule/api/AccountingRuleApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/rule/api/AccountingRuleApiResource.java @@ -69,9 +69,8 @@ import org.springframework.stereotype.Component; @Scope("singleton") @Api(tags = {"Accounting Rules"}) @SwaggerDefinition(tags = { - @Tag(name = "Accounting Rules", description = "It is typical scenario in MFI's that non accountants pass journal entries on a regular basis. For Ex: A branch office might deposit their entire cash at hand to their Bank account at the end of a working day. The branch office users might not understand enough of accounting to figure out which account needs to get credited and which account needs to be debited to represent this transaction.\\n\" + \"\\n\" + \"Enter accounting rules, an abstraction on top of manual Journal entires for enabling simpler data entry. An accounting rule can define any of the following abstractions\\n\" + \"\\n\" + \"A Simple journal entry where both the credit and debit account have been preselected\\n\" + \"A Simple journal entry where either credit or debit accounts have been limited to a pre-selected list of accounts (Ex: Debit account should be one of \\\"Bank of America\\\" of \\\"JP Morgan\\\" and credit account should be \\\"Cash\\\")\\n\" + \"A Compound journal entry where multiple debits and / or multiple credits may be made amongst a set of preselected list of accounts (Ex: Credit account should be either \\\"Bank Of America\\\" or \\\"Cash\\\" and debit account can be \\\"Employee Salary\\\" and/or \\\"Miscellenous Expenses\\\")\\n\" + \"An accounting rule can also be optionally associated with a branch, so that only a particular Branch's users have access to the rule") + @Tag(name = "Accounting Rules", description = "It is typical scenario in MFI's that non accountants pass journal entries on a regular basis. For Ex: A branch office might deposit their entire cash at hand to their Bank account at the end of a working day. The branch office users might not understand enough of accounting to figure out which account needs to get credited and which account needs to be debited to represent this transaction.\n" + "\n" + "Enter accounting rules, an abstraction on top of manual Journal entires for enabling simpler data entry. An accounting rule can define any of the following abstractions\n" + "\n" + "A Simple journal entry where both the credit and debit account have been preselected\n" + "A Simple journal entry where either credit or debit accounts have been limited to a pre-selected list of accounts (Ex: Debit account should be one of \"Bank of America\" of \"JP Morgan\" and credit account should be \"Cash\")\n" + "A Compound journal entry where multiple debits and / or multiple credits may be made amongst a set of preselected list of accounts (Ex: Credit account should be either \"Bank Of America\" or \"Cash\" and debit account can be \"Employee Salary\" and/or \"Miscellenous Expenses\")\n" + "An accounting rule can also be optionally associated with a branch, so that only a particular Branch's users have access to the rule") }) - public class AccountingRuleApiResource { private static final Set RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList("id", "officeId", "officeName", diff --git a/fineract-provider/src/main/java/org/apache/fineract/adhocquery/api/AdHocApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/adhocquery/api/AdHocApiResource.java index 75380f14d..09e018740 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/adhocquery/api/AdHocApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/adhocquery/api/AdHocApiResource.java @@ -35,6 +35,7 @@ import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.UriInfo; +import io.swagger.annotations.*; import org.apache.commons.lang.StringUtils; import org.apache.fineract.adhocquery.data.AdHocData; import org.apache.fineract.adhocquery.service.AdHocReadPlatformService; @@ -53,6 +54,10 @@ import org.springframework.stereotype.Component; @Path("/adhocquery") @Component @Scope("singleton") +@Api(tags = {"AdhocQuery Api"}) +@SwaggerDefinition(tags = { + @Tag(name = "AdhocQuery Api", description = "") +}) public class AdHocApiResource { /** @@ -117,7 +122,7 @@ public class AdHocApiResource { @Path("{adHocId}") @Consumes({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON }) - public String retrieveAdHocQuery(@PathParam("adHocId") final Long adHocId, @Context final UriInfo uriInfo) { + public String retrieveAdHocQuery(@PathParam("adHocId") @ApiParam(value = "adHocId") final Long adHocId, @Context final UriInfo uriInfo) { this.context.authenticatedUser(); @@ -131,7 +136,7 @@ public class AdHocApiResource { @Path("{adHocId}") @Consumes({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON }) - public String update(@PathParam("adHocId") final Long adHocId, final String apiRequestBodyAsJson) { + public String update(@PathParam("adHocId") @ApiParam(value = "adHocId") final Long adHocId, final String apiRequestBodyAsJson) { final CommandWrapper commandRequest = new CommandWrapperBuilder() // .updateAdHoc(adHocId) // @@ -152,7 +157,7 @@ public class AdHocApiResource { @Path("{adHocId}") @Consumes({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON }) - public String deleteAdHocQuery(@PathParam("adHocId") final Long adHocId) { + public String deleteAdHocQuery(@PathParam("adHocId") @ApiParam(value = "adHocId") final Long adHocId) { final CommandWrapper commandRequest = new CommandWrapperBuilder() // .deleteAdHoc(adHocId) // diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/api/BatchApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/batch/api/BatchApiResource.java index 2c9760326..c8e6800a2 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/api/BatchApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/api/BatchApiResource.java @@ -62,16 +62,15 @@ import org.springframework.stereotype.Component; @Scope("singleton") @Api(tags = {"Batch API"}) @SwaggerDefinition(tags = { - @Tag(name = "Batch API", description = "The Apache Fineract Batch API enables a consumer to access significant amounts of data in a single call or to make changes to several objects at once. 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.\\n\" + \"\\n\" + \"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).\\n\" + \"\\n\" + \"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'.\\n\" + \"\\n\" + \"Batch API is able to handle deeply nested dependent requests as well nested parameters. As shown in the example, requests are dependent on each other as, 1<--2<--6, i.e a nested dependency, where request '6' is not directly dependent on request '1' but still it is one of the nested child of request '1'. In the same way Batch API could handle a deeply nested dependent value, such as {..[..{..,$.parameter_name,..}..]}.") + @Tag(name = "Batch API", description = "The Apache Fineract Batch API enables a consumer to access significant amounts of data in a single call or to make changes to several objects at once. 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.\n" + "\n" + "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).\n" + "\n" + "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'.\n" + "\n" + "Batch API is able to handle deeply nested dependent requests as well nested parameters. As shown in the example, requests are dependent on each other as, 1<--2<--6, i.e a nested dependency, where request '6' is not directly dependent on request '1' but still it is one of the nested child of request '1'. In the same way Batch API could handle a deeply nested dependent value, such as {..[..{..,$.parameter_name,..}..]}.") }) - public class BatchApiResource { private final PlatformSecurityContext context; private final ToApiJsonSerializer toApiJsonSerializer; private final BatchApiService service; private final BatchRequestJsonHelper batchRequestJsonHelper; - + /** * Constructs a 'BatchApiService' with context, toApiJsonSerializer, service * and batchRequestJsonHelper. diff --git a/fineract-provider/src/main/java/org/apache/fineract/commands/api/AuditsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/commands/api/AuditsApiResource.java index 4db43e7c9..459db932c 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/commands/api/AuditsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/commands/api/AuditsApiResource.java @@ -52,7 +52,10 @@ import org.springframework.stereotype.Component; @Path("/audits") @Component @Scope("singleton") -@Api(value = "Audits",description = "Every non-read Mifos API request is audited. A fully processed request can not be changed or deleted. See maker checker api for situations where an audit is not fully processed.\n" + "\n" + "Permissions: To search and look at audit entries a user needs to be attached to a role that has one of the ALL_FUNCTIONS, ALL_FUNCTIONS_READ or READ_AUDIT permissions.\n" + "\n" + "Data Scope: A user can only see audits that are within their data scope. However, 'head office' users can see all audits including those that aren't office/branch related e.g. Loan Product changes.") +@Api(tags = {"Audits"}) +@SwaggerDefinition(tags = { + @Tag(name = "Audits", description = "Every non-read Mifos API request is audited. A fully processed request can not be changed or deleted. See maker checker api for situations where an audit is not fully processed.\n" + "\n" + "Permissions: To search and look at audit entries a user needs to be attached to a role that has one of the ALL_FUNCTIONS, ALL_FUNCTIONS_READ or READ_AUDIT permissions.\n" + "\n" + "Data Scope: A user can only see audits that are within their data scope. However, 'head office' users can see all audits including those that aren't office/branch related e.g. Loan Product changes.\")") +}) public class AuditsApiResource { private final Set RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList("id", "actionName", "entityName", "resourceId", diff --git a/fineract-provider/src/main/java/org/apache/fineract/commands/api/MakercheckersApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/commands/api/MakercheckersApiResource.java index 6916266c9..b9ca47720 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/commands/api/MakercheckersApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/commands/api/MakercheckersApiResource.java @@ -54,7 +54,10 @@ import org.springframework.stereotype.Component; @Path("/makercheckers") @Component @Scope("singleton") -@Api(value = "Maker Checker (or 4-eye) functionality") +@Api(tags = {"Maker Checker (or 4-eye) functionality"}) +@SwaggerDefinition(tags = { + @Tag(name = "Maker Checker (or 4-eye) functionality") +}) public class MakercheckersApiResource { private final Set RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList("id", "actionName", "entityName", "resourceId", diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/api/AccountNumberFormatsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/api/AccountNumberFormatsApiResource.java index df17186e7..c7294af8e 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/api/AccountNumberFormatsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/api/AccountNumberFormatsApiResource.java @@ -55,7 +55,10 @@ import org.springframework.stereotype.Component; @Path(AccountNumberFormatConstants.resourceRelativeURL) @Component @Scope("singleton") -@Api(value = "Account number format", description = "Account number preferences are used to describe custom formats for account numbers associated with Customer, Loan and Savings accounts." ) +@Api(tags = {"Account number format"}) +@SwaggerDefinition(tags = { + @Tag(name = "Account number format", description = "Account number preferences are used to describe custom formats for account numbers associated with Customer, Loan and Savings accounts." ) +}) public class AccountNumberFormatsApiResource { private final PlatformSecurityContext context; diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/cache/api/CacheApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/cache/api/CacheApiResource.java index 982b50df4..e0ec0b85c 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/cache/api/CacheApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/cache/api/CacheApiResource.java @@ -53,7 +53,10 @@ import org.springframework.stereotype.Component; @Produces({ MediaType.APPLICATION_JSON }) @Component @Scope("singleton") -@Api(value = "Cache", description = "The following settings are possible for cache:\n" + "\n" + "No Caching: caching turned off\n" + "Single node: caching on for single instance deployments of platorm (works for multiple tenants but only one tomcat)\n" + "By default caching is set to No Caching. Switching between caches results in the cache been clear e.g. from Single node to No cache and back again would clear down the single node cache.") +@Api(tags = {"Cache"}) +@SwaggerDefinition(tags = { + @Tag(name = "Cache", description = "The following settings are possible for cache:\n" + "\n" + "No Caching: caching turned off\n" + "Single node: caching on for single instance deployments of platorm (works for multiple tenants but only one tomcat)\n" + "By default caching is set to No Caching. Switching between caches results in the cache been clear e.g. from Single node to No cache and back again would clear down the single node cache.") +}) public class CacheApiResource { private final Set RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList("id")); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/codes/api/CodeValuesApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/codes/api/CodeValuesApiResource.java index 060e1dfe4..b7e03a568 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/codes/api/CodeValuesApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/codes/api/CodeValuesApiResource.java @@ -55,7 +55,10 @@ import org.springframework.stereotype.Component; @Path("/codes/{codeId}/codevalues") @Component @Scope("singleton") -@Api(value = "Code Values", description = "Code and code values: Codes represent a specific category of data, their code values are a specific instance of that category.\n" + "\n" + "Codes are mostly system defined which means the code itself comes out of the box and cannot be modified however its code values can be. e.g. 'Customer Identifier', it defaults to a code value of 'Passport' but could be 'Drivers License, National Id' etc") +@Api(tags = {"Code Values"}) +@SwaggerDefinition(tags = { + @Tag(name = "Code Values", description = "Code and code values: Codes represent a specific category of data, their code values are a specific instance of that category.\n" + "\n" + "Codes are mostly system defined which means the code itself comes out of the box and cannot be modified however its code values can be. e.g. 'Customer Identifier', it defaults to a code value of 'Passport' but could be 'Drivers License, National Id' etc") +}) public class CodeValuesApiResource { /** diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/codes/api/CodesApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/codes/api/CodesApiResource.java index b53c22ede..446942d4d 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/codes/api/CodesApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/codes/api/CodesApiResource.java @@ -53,7 +53,10 @@ import org.springframework.stereotype.Component; @Path("/codes") @Component @Scope("singleton") -@Api(value = "Codes", description = "Code and code values: Codes represent a specific category of data, their code values are a specific instance of that category.\n" + "\n" + "Codes are mostly system defined which means the code itself comes out of the box and cannot be modified however its code values can be. e.g. 'Customer Identifier', it defaults to a code value of 'Passport' but could be 'Drivers License, National Id' etc") +@Api(tags = {"Codes"}) +@SwaggerDefinition(tags = { + @Tag(name = "Codes", description = "Code and code values: Codes represent a specific category of data, their code values are a specific instance of that category.\n" + "\n" + "Codes are mostly system defined which means the code itself comes out of the box and cannot be modified however its code values can be. e.g. 'Customer Identifier', it defaults to a code value of 'Passport' but could be 'Drivers License, National Id' etc") +}) public class CodesApiResource { /** diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/configuration/api/ExternalServicesConfigurationApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/configuration/api/ExternalServicesConfigurationApiResource.java index 32449d477..d02eb8a0e 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/configuration/api/ExternalServicesConfigurationApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/configuration/api/ExternalServicesConfigurationApiResource.java @@ -48,7 +48,10 @@ import org.springframework.stereotype.Component; @Path("/externalservice") @Component @Scope("singleton") -@Api(value = "External Services", description = "External Services Configuration related to set of supported configurations for third party services like Amazon S3 and SMTP:\n" + "\n" + "S3 (Amazon S3):\n" + "s3_access_key -\n" + "s3_bucket_name -\n" + "s3_secret_key -\n" + "\n" + "\n" + "SMTP (Email Service):\n" + "username -\n" + "password -\n" + "host -\n" + "port -\n" + "useTLS -") +@Api(tags = {"External Services"}) +@SwaggerDefinition(tags = { + @Tag(name = "External Services", description = "External Services Configuration related to set of supported configurations for third party services like Amazon S3 and SMTP:\n" + "\n" + "S3 (Amazon S3):\n" + "s3_access_key -\n" + "s3_bucket_name -\n" + "s3_secret_key -\n" + "\n" + "\n" + "SMTP (Email Service):\n" + "username -\n" + "password -\n" + "host -\n" + "port -\n" + "useTLS -") +}) public class ExternalServicesConfigurationApiResource { private final PlatformSecurityContext context; diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/configuration/api/GlobalConfigurationApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/configuration/api/GlobalConfigurationApiResource.java index fd9bb91c9..5f7710356 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/configuration/api/GlobalConfigurationApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/configuration/api/GlobalConfigurationApiResource.java @@ -46,7 +46,10 @@ import org.springframework.stereotype.Component; @Path("/configurations") @Component @Scope("singleton") -@Api(value = "Global Configuration", description = "Global configuration related to set of supported enable/disable configurations:\n" + "\n" + "maker-checker - defaults to false - if true turns on maker-checker functionality\n" + "reschedule-future-repayments - defaults to false - if true reschedules repayemnts which falls on a non-working day to configured repayment rescheduling rule\n" + "allow-transactions-on-non_workingday - defaults to false - if true allows transactions on non-working days\n" + "reschedule-repayments-on-holidays - defaults to false - if true reschedules repayemnts which falls on a non-working day to defined reschedule date\n" + "allow-transactions-on-holiday - defaults to false - if true allows transactions on holidays\n" + "savings-interest-posting-current-period-end - Set it at the database level before any savings interest is posted. When set as false(default), interest will be posted on the first date of next period. If set as true, interest will be posted on last date of current period. There is no difference in the interest amount posted.\n" + "financial-year-beginning-month - Set it at the database level before any savings interest is posted. Allowed values 1 - 12 (January - December). Interest posting periods are evaluated based on this configuration.\n" + "meetings-mandatory-for-jlg-loans - if set to true, enforces all JLG loans to follow a meeting schedule belonging to either the parent group or Center.") +@Api(tags = {"Global Configuration"}) +@SwaggerDefinition(tags = { + @Tag(name = "Global Configuration", description = "Global configuration related to set of supported enable/disable configurations:\n" + "\n" + "maker-checker - defaults to false - if true turns on maker-checker functionality\n" + "reschedule-future-repayments - defaults to false - if true reschedules repayemnts which falls on a non-working day to configured repayment rescheduling rule\n" + "allow-transactions-on-non_workingday - defaults to false - if true allows transactions on non-working days\n" + "reschedule-repayments-on-holidays - defaults to false - if true reschedules repayemnts which falls on a non-working day to defined reschedule date\n" + "allow-transactions-on-holiday - defaults to false - if true allows transactions on holidays\n" + "savings-interest-posting-current-period-end - Set it at the database level before any savings interest is posted. When set as false(default), interest will be posted on the first date of next period. If set as true, interest will be posted on last date of current period. There is no difference in the interest amount posted.\n" + "financial-year-beginning-month - Set it at the database level before any savings interest is posted. Allowed values 1 - 12 (January - December). Interest posting periods are evaluated based on this configuration.\n" + "meetings-mandatory-for-jlg-loans - if set to true, enforces all JLG loans to follow a meeting schedule belonging to either the parent group or Center.") +}) public class GlobalConfigurationApiResource { private final Set RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList("globalConfiguration")); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/DatatablesApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/DatatablesApiResource.java index 33bfe1787..700246455 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/DatatablesApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/DatatablesApiResource.java @@ -56,7 +56,10 @@ import org.springframework.stereotype.Component; @Path("/datatables") @Component @Scope("singleton") -@Api(value = "Data Tables", description = "The datatables API allows you to plug-in your own tables (MySql) that have a relationship to a Apache Fineract core table. For example, you might want to add some extra client fields and record information about each of the clients' family members. Via the API you can create, read, update and delete entries for each 'plugged-in' table. The API checks for permission and for 'data scoping' (only data within the users' office hierarchy can be managed by the user).\n" + "\n" + "The Apache Fineract Reference App uses a JQuery plug-in called stretchydatatables (which in turn uses this datatables resource) to provide a pretty flexible CRUD (Create, Read, Update, Delete) User Interface.") +@Api(tags = {"Data Tables"}) +@SwaggerDefinition(tags = { + @Tag(name = "Data Tables", description = "The datatables API allows you to plug-in your own tables (MySql) that have a relationship to a Apache Fineract core table. For example, you might want to add some extra client fields and record information about each of the clients' family members. Via the API you can create, read, update and delete entries for each 'plugged-in' table. The API checks for permission and for 'data scoping' (only data within the users' office hierarchy can be managed by the user).\n" + "\n" + "The Apache Fineract Reference App uses a JQuery plug-in called stretchydatatables (which in turn uses this datatables resource) to provide a pretty flexible CRUD (Create, Read, Update, Delete) User Interface.") +}) public class DatatablesApiResource { private final PlatformSecurityContext context; diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/EntityDatatableChecksApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/EntityDatatableChecksApiResource.java index 0ae09b0f5..652d557cb 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/EntityDatatableChecksApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/EntityDatatableChecksApiResource.java @@ -53,7 +53,10 @@ import org.springframework.stereotype.Component; @Path("/entityDatatableChecks") @Component @Scope("singleton") -@Api(value = "Entity-Datatable Checks", description = "This defines Entity-Datatable Check.") +@Api(tags = {"Entity Datatable Check"}) +@SwaggerDefinition(tags = { + @Tag(name = "Entity Data Table", description = "This defines Entity-Datatable Check.") +}) public class EntityDatatableChecksApiResource { private final PlatformSecurityContext context; diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/ReportsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/ReportsApiResource.java index 88df3a3c0..3aea91d8a 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/ReportsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/ReportsApiResource.java @@ -53,7 +53,10 @@ import org.springframework.stereotype.Component; @Path("/reports") @Component @Scope("singleton") -@Api(value = "Reports", description = "Non-core reports can be added, updated and deleted.") +@Api(tags = {"Reports"}) +@SwaggerDefinition(tags = { + @Tag(name = "Reports", description = "Non-core reports can be added, updated and deleted.") +}) public class ReportsApiResource { private final Set RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList("id", "reportName", "reportType", "reportSubType", diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/RunreportsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/RunreportsApiResource.java index d202c03e5..8de37ef77 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/RunreportsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/RunreportsApiResource.java @@ -58,7 +58,10 @@ import org.springframework.stereotype.Component; @Path("/runreports") @Component @Scope("singleton") -@Api(value = "Run Reports", description = "") +@Api(tags = {"Run Reports"}) +@SwaggerDefinition(tags = { + @Tag(name = "Run Reports", description = "") +}) public class RunreportsApiResource { private final PlatformSecurityContext context; diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/documentmanagement/api/DocumentManagementApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/documentmanagement/api/DocumentManagementApiResource.java index b937cd8c1..eda557315 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/documentmanagement/api/DocumentManagementApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/documentmanagement/api/DocumentManagementApiResource.java @@ -61,7 +61,10 @@ import com.sun.jersey.multipart.FormDataParam; @Path("{entityType}/{entityId}/documents") @Component @Scope("singleton") -@Api(value = "Documents", description = "Multiple Documents (a combination of a name, description and a file) may be attached to different Entities like Clients, Groups, Staff, Loans, Savings and Client Identifiers in the system\n" + "\n" + "Note: The currently allowed Entities are\n" + "\n" + "Clients: URL Pattern as clients\n" + "Staff: URL Pattern as staff\n" + "Loans: URL Pattern as loans\n" + "Savings: URL Pattern as savings\n" + "Client Identifiers: URL Pattern as client_identifiers\n" + "Groups: URL Pattern as groups") +@Api(tags = {"Documents"}) +@SwaggerDefinition(tags = { + @Tag(name = "Documents", description = "Multiple Documents (a combination of a name, description and a file) may be attached to different Entities like Clients, Groups, Staff, Loans, Savings and Client Identifiers in the system\n" + "\n" + "Note: The currently allowed Entities are\n" + "\n" + "Clients: URL Pattern as clients\n" + "Staff: URL Pattern as staff\n" + "Loans: URL Pattern as loans\n" + "Savings: URL Pattern as savings\n" + "Client Identifiers: URL Pattern as client_identifiers\n" + "Groups: URL Pattern as groups") +}) public class DocumentManagementApiResource { private final Set RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList("id", "parentEntityType", "parentEntityId", diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/hooks/api/HookApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/hooks/api/HookApiResource.java index 21a6753ec..0712a915c 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/hooks/api/HookApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/hooks/api/HookApiResource.java @@ -55,7 +55,10 @@ import org.springframework.stereotype.Component; @Produces({ MediaType.APPLICATION_JSON }) @Component @Scope("singleton") -@Api(value = "Hooks", description = "Hooks are a mechanism to trigger custom code on the occurence of events.") +@Api(tags = {"Hooks"}) +@SwaggerDefinition(tags = { + @Tag(name = "Hooks", description = "Hooks are a mechanism to trigger custom code on the occurence of events. ") +}) public class HookApiResource { private final PlatformSecurityContext context; diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/api/SchedulerApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/api/SchedulerApiResource.java index 6962f2762..f0aa198f4 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/api/SchedulerApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/api/SchedulerApiResource.java @@ -44,7 +44,10 @@ import org.springframework.stereotype.Component; @Path("/scheduler") @Component -@Api(value = "Scheduler", description = "") +@Api(tags = {"Scheduler"}) +@SwaggerDefinition(tags = { + @Tag(name = "Scheduler", description = "") +}) public class SchedulerApiResource { private final PlatformSecurityContext context; diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/api/SchedulerJobApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/api/SchedulerJobApiResource.java index 46e41e99b..bab631b45 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/api/SchedulerJobApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/api/SchedulerJobApiResource.java @@ -58,7 +58,10 @@ import org.springframework.stereotype.Component; @Consumes({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON }) @Component -@Api(value = "MIFOSX-BATCH JOBS", description = "Batch jobs (also known as cron jobs on Unix-based systems) are a series of back-end jobs executed on a computer at a particular time defined in job's cron expression.\n" + "\n" + "At any point, you can view the list of batch jobs scheduled to run along with other details specific to each job. Manually you can execute the jobs at any point of time.\n" + "\n" + "The scheduler status can be either \"Active\" or \"Standby\". If the scheduler status is Active, it indicates that all batch jobs are running/ will run as per the specified schedule.If the scheduler status is Standby, it will ensure all scheduled batch runs are suspended.") +@Api(tags = {"MIFOSX-BATCH JOBS"}) +@SwaggerDefinition(tags = { + @Tag(name = "MIFOSX-BATCH JOBS", description = "Batch jobs (also known as cron jobs on Unix-based systems) are a series of back-end jobs executed on a computer at a particular time defined in job's cron expression.\n\n At any point, you can view the list of batch jobs scheduled to run along with other details specific to each job. Manually you can execute the jobs at any point of time.\n\n The scheduler status can be either \"Active\" or \"Standby\". If the scheduler status is Active, it indicates that all batch jobs are running/ will run as per the specified schedule.If the scheduler status is Standby, it will ensure all scheduled batch runs are suspended.") +}) public class SchedulerJobApiResource { private final SchedulerJobRunnerReadService schedulerJobRunnerReadService; diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/reportmailingjob/api/ReportMailingJobApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/reportmailingjob/api/ReportMailingJobApiResource.java index f121626e7..89d45a62c 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/reportmailingjob/api/ReportMailingJobApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/reportmailingjob/api/ReportMailingJobApiResource.java @@ -52,7 +52,10 @@ import org.springframework.stereotype.Component; @Path("/" + ReportMailingJobConstants.REPORT_MAILING_JOB_RESOURCE_NAME) @Component @Scope("singleton") -@Api(value = "Report Mailing Jobs", description = "This resource allows you to create a scheduled job that runs a report and sents it by email to specified email addresses.\n" + "\n" + "The scheduled job can be configured to run once or on a regular basis (once a day, twice a week, etc).") +@Api(tags = {"Report Mailing Jobs"}) +@SwaggerDefinition(tags = { + @Tag(name = "Report Mailing Jobs", description = "This resource allows you to create a scheduled job that runs a report and sents it by email to specified email addresses.\n\nThe scheduled job can be configured to run once or on a regular basis (once a day, twice a week, etc)") +}) public class ReportMailingJobApiResource { private final PlatformSecurityContext platformSecurityContext; diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/reportmailingjob/api/ReportMailingJobRunHistoryApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/reportmailingjob/api/ReportMailingJobRunHistoryApiResource.java index 30ebc73c7..d58e28acf 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/reportmailingjob/api/ReportMailingJobRunHistoryApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/reportmailingjob/api/ReportMailingJobRunHistoryApiResource.java @@ -43,8 +43,10 @@ import org.springframework.stereotype.Component; @Path("/" + ReportMailingJobConstants.REPORT_MAILING_JOB_RUN_HISTORY_RESOURCE_NAME) @Component -@Scope("singleton") -@Api(value = "List Report Mailing Job History", description = "") +@Api(tags = {"List Report Mailing Job History"}) +@SwaggerDefinition(tags = { + @Tag(name = "List Report Mailing Job History", description = "") +}) public class ReportMailingJobRunHistoryApiResource { private final PlatformSecurityContext platformSecurityContext; diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/api/AuthenticationApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/api/AuthenticationApiResource.java index b88110c19..71d493299 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/api/AuthenticationApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/api/AuthenticationApiResource.java @@ -18,7 +18,6 @@ */ package org.apache.fineract.infrastructure.security.api; -import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Collection; @@ -28,7 +27,6 @@ import javax.ws.rs.Consumes; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import io.swagger.annotations.*; @@ -59,7 +57,10 @@ import com.sun.jersey.core.util.Base64; @Scope("singleton") @Profile("basicauth") @Path("/authentication") -@Api(value = "Authentication HTTP Basic", description = "An API capability that allows client applications to verify authentication details using HTTP Basic Authentication.") +@Api(tags = {"Authentication HTTP Basic"}) +@SwaggerDefinition(tags = { + @Tag(name = "Authentication HTTP Basic", description = "An API capability that allows client applications to verify authentication details using HTTP Basic Authentication.") +}) public class AuthenticationApiResource { public static class AuthenticateRequest { diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/api/UserDetailsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/api/UserDetailsApiResource.java index 91aaea0b3..5e5cf8738 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/api/UserDetailsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/api/UserDetailsApiResource.java @@ -54,7 +54,10 @@ import org.springframework.stereotype.Component; @Component @Profile("oauth") @Scope("singleton") -@Api(value = "Fetch authenticated user details", description = "") +@Api(tags = {"Fetch authenticated user details"}) +@SwaggerDefinition(tags = { + @Tag(name = "Fetch authenticated user details", description = "") +}) public class UserDetailsApiResource { private final ResourceServerTokenServices tokenServices; diff --git a/fineract-provider/src/main/java/org/apache/fineract/mix/api/MixReportApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/mix/api/MixReportApiResource.java index 09f6520ba..ad809ed7f 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/mix/api/MixReportApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/mix/api/MixReportApiResource.java @@ -33,11 +33,15 @@ import org.apache.fineract.mix.service.XBRLResultService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; +import io.swagger.annotations.*; @Path("/mixreport") @Component @Scope("singleton") -@Api(value = "Mix Report", description = "") +@Api(tags = {"Mix Report"}) +@SwaggerDefinition(tags = { + @Tag(name = "Mix Report", description = "") +}) public class MixReportApiResource { private final XBRLResultService xbrlResultService; diff --git a/fineract-provider/src/main/java/org/apache/fineract/mix/api/MixTaxonomyApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/mix/api/MixTaxonomyApiResource.java index 9210f7155..9fa3f6936 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/mix/api/MixTaxonomyApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/mix/api/MixTaxonomyApiResource.java @@ -41,11 +41,15 @@ import org.apache.fineract.mix.service.MixTaxonomyReadPlatformService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; +import io.swagger.annotations.*; @Path("/mixtaxonomy") @Component @Scope("singleton") -@Api(value = "Mix Taxonomy", description = "") +@Api(tags = {"Mix Taxonomy"}) +@SwaggerDefinition(tags = { + @Tag(name = "Mix Taxonomy", description = "") +}) public class MixTaxonomyApiResource { private final Set RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList("taxonomyId", "name", "namespace", "dimension", diff --git a/fineract-provider/src/main/java/org/apache/fineract/mix/api/MixTaxonomyMappingApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/mix/api/MixTaxonomyMappingApiResource.java index 2b55eda01..6b043288e 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/mix/api/MixTaxonomyMappingApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/mix/api/MixTaxonomyMappingApiResource.java @@ -31,7 +31,9 @@ import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.UriInfo; + import io.swagger.annotations.Api; +import io.swagger.annotations.*; import org.apache.fineract.commands.domain.CommandWrapper; import org.apache.fineract.commands.service.CommandWrapperBuilder; import org.apache.fineract.commands.service.PortfolioCommandSourceWritePlatformService; @@ -49,7 +51,10 @@ import org.springframework.stereotype.Component; @Path("/mixmapping") @Component @Scope("singleton") -@Api(value = "Mix Mapping") +@Api(tags = {"Mix Mapping "}) +@SwaggerDefinition(tags = { + @Tag(name = "Mix Mapping", description = "") +}) public class MixTaxonomyMappingApiResource { private final Set RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList("identifier", "config")); diff --git a/fineract-provider/src/main/java/org/apache/fineract/notification/api/NotificationApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/notification/api/NotificationApiResource.java index 065d7cbb7..367ad732a 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/notification/api/NotificationApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/notification/api/NotificationApiResource.java @@ -30,6 +30,7 @@ import org.apache.fineract.notification.service.NotificationReadPlatformService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; +import io.swagger.annotations.*; import javax.ws.rs.*; import javax.ws.rs.core.Context; @@ -39,6 +40,10 @@ import javax.ws.rs.core.UriInfo; @Path("/notifications") @Component @Scope("singleton") +@Api(tags = {"Notification"}) +@SwaggerDefinition(tags = { + @Tag(name = "Notification", description = "") +}) public class NotificationApiResource { private final PlatformSecurityContext context; diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/holiday/api/HolidaysApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/holiday/api/HolidaysApiResource.java index 1fc32ac9e..3762229b1 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/organisation/holiday/api/HolidaysApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/holiday/api/HolidaysApiResource.java @@ -58,7 +58,10 @@ import org.springframework.stereotype.Component; @Path("/holidays") @Component @Scope("singleton") -@Api(value = "Holidays", description = "Some MFI's span large regions where different branch offices might observe different holidays. They need the ability to define holidays for specific branch offices and be able to set the repayment rule to follow during those holidays.\n" + "\n" + "The reschedule of repayments to repaymentsRescheduledTo date during defined holidays is turned on/off by enabling/disabling reschedule-repayments-on-holidays in Global configurations.\n" + "\n" + "Allow Repayment transactions on a defined holidays is turned on/off by enabling/disabling allow-transactions-on-holiday in Global configurations.") +@Api(tags = {"Holidays"}) +@SwaggerDefinition(tags = { + @Tag(name = "Holidays", description = "Some MFI's span large regions where different branch offices might observe different holidays. They need the ability to define holidays for specific branch offices and be able to set the repayment rule to follow during those holidays.\n" + "\n" + "The reschedule of repayments to repaymentsRescheduledTo date during defined holidays is turned on/off by enabling/disabling reschedule-repayments-on-holidays in Global configurations.\n" + "\n" + "Allow Repayment transactions on a defined holidays is turned on/off by enabling/disabling allow-transactions-on-holiday in Global configurations.") +}) public class HolidaysApiResource { private final DefaultToApiJsonSerializer toApiJsonSerializer; diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/monetary/api/CurrenciesApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/monetary/api/CurrenciesApiResource.java index 31152e1f8..80b78b8a4 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/organisation/monetary/api/CurrenciesApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/monetary/api/CurrenciesApiResource.java @@ -49,7 +49,10 @@ import org.springframework.stereotype.Component; @Path("/currencies") @Component @Scope("singleton") -@Api(value = "Currency", description = "Application related configuration around viewing/updating the currencies permitted for use within the MFI.") +@Api(tags = {"Currency"}) +@SwaggerDefinition(tags = { + @Tag(name = "Currency", description = "Application related configuration around viewing/updating the currencies permitted for use within the MFI.") +}) public class CurrenciesApiResource { private final Set RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList("selectedCurrencyOptions", "currencyOptions")); diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/office/api/OfficesApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/office/api/OfficesApiResource.java index 983889b2a..4184d0ba2 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/organisation/office/api/OfficesApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/office/api/OfficesApiResource.java @@ -62,7 +62,10 @@ import org.springframework.stereotype.Component; @Path("/offices") @Component @Scope("singleton") -@Api(value = "Offices", description = "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.") +@Api(tags = {"Offices"}) +@SwaggerDefinition(tags = { + @Tag(name = "Offices", description = "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.") +}) public class OfficesApiResource { /** diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/api/ProvisioningCategoryApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/api/ProvisioningCategoryApiResource.java index ceec605a6..1d4e5f4de 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/api/ProvisioningCategoryApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/api/ProvisioningCategoryApiResource.java @@ -33,6 +33,7 @@ import javax.ws.rs.core.MediaType; import javax.ws.rs.core.UriInfo; import io.swagger.annotations.Api; +import io.swagger.annotations.*; import org.apache.fineract.commands.domain.CommandWrapper; import org.apache.fineract.commands.service.CommandWrapperBuilder; import org.apache.fineract.commands.service.PortfolioCommandSourceWritePlatformService; @@ -50,7 +51,10 @@ import org.springframework.stereotype.Component; @Path("/provisioningcategory") @Component @Scope("singleton") -@Api(value = "Provisioning Category", description = "") +@Api(tags = {"Provisioning Category"}) +@SwaggerDefinition(tags = { + @Tag(name = "Provisioning Category", description = "") +}) public class ProvisioningCategoryApiResource { private final PlatformSecurityContext platformSecurityContext; diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/api/ProvisioningCriteriaApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/api/ProvisioningCriteriaApiResource.java index f5c5aae5b..d56b42ebb 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/api/ProvisioningCriteriaApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/api/ProvisioningCriteriaApiResource.java @@ -54,7 +54,10 @@ import org.springframework.stereotype.Component; @Path("/provisioningcriteria") @Component @Scope("singleton") -@Api(value = "Provisioning Criteria", description = "This defines the Provisioning Criteria") +@Api(tags = {"Provisioning Criteria"}) +@SwaggerDefinition(tags = { + @Tag(name = "Provisioning Criteria", description = "This defines the Provisioning Criteria") +}) public class ProvisioningCriteriaApiResource { private final PlatformSecurityContext platformSecurityContext; diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/staff/api/StaffApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/staff/api/StaffApiResource.java index fb0e4e20e..d3f45296a 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/organisation/staff/api/StaffApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/staff/api/StaffApiResource.java @@ -63,7 +63,10 @@ import org.springframework.stereotype.Component; @Path("/staff") @Component @Scope("singleton") -@Api(value = "Staff", description = "Allows you to model staff members. At present the key role of significance is whether this staff member is a loan officer or not.") +@Api(tags = {"Staff"}) +@SwaggerDefinition(tags = { + @Tag(name = "Staff", description = "Allows you to model staff members. At present the key role of significance is whether this staff member is a loan officer or not.") +}) public class StaffApiResource { /** diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/api/CashierApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/api/CashierApiResource.java index 08437227c..1999beb2a 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/api/CashierApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/api/CashierApiResource.java @@ -29,6 +29,7 @@ import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import io.swagger.annotations.Api; +import io.swagger.annotations.*; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; @@ -44,7 +45,10 @@ import org.springframework.stereotype.Component; @Path("cashiers") @Component @Scope("singleton") -@Api(value = "cashiers", description = "") +@Api(tags = {"Cashiers"}) +@SwaggerDefinition(tags = { + @Tag(name = "Cashiers", description = "") +}) public class CashierApiResource { private final DefaultToApiJsonSerializer jsonSerializer; diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/api/TellerApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/api/TellerApiResource.java index 2298700a2..3b5d0d499 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/api/TellerApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/api/TellerApiResource.java @@ -58,7 +58,10 @@ import org.springframework.stereotype.Component; @Path("tellers") @Component @Scope("singleton") -@Api(value = "Teller Cash Management", description = "Teller cash management which will allow an organization to manage their cash transactions at branches or head office more effectively.") +@Api(tags = {"Teller Cash Management"}) +@SwaggerDefinition(tags = { + @Tag(name = "Teller Cash Management", description = "Teller cash management which will allow an organization to manage their cash transactions at branches or head office more effectively.") +}) public class TellerApiResource { private final PlatformSecurityContext securityContext; diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/api/TellerJournalApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/api/TellerJournalApiResource.java index e9c5ecd7c..0c9546d37 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/api/TellerJournalApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/api/TellerJournalApiResource.java @@ -28,6 +28,7 @@ import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import io.swagger.annotations.Api; +import io.swagger.annotations.*; import org.apache.fineract.infrastructure.core.serialization.DefaultToApiJsonSerializer; import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext; import org.apache.fineract.organisation.teller.data.TellerData; @@ -41,7 +42,10 @@ import org.springframework.stereotype.Component; @Path("cashiersjournal") @Component @Scope("singleton") -@Api(value = "cashiersjournal", description = "") +@Api(tags = {"Cashier Journals"}) +@SwaggerDefinition(tags = { + @Tag(name = "Cashier Journals", description = "") +}) public class TellerJournalApiResource { private final PlatformSecurityContext securityContext; diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/workingdays/api/WorkingDaysApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/workingdays/api/WorkingDaysApiResource.java index 1d4aa1673..595551722 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/organisation/workingdays/api/WorkingDaysApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/workingdays/api/WorkingDaysApiResource.java @@ -45,7 +45,10 @@ import org.springframework.stereotype.Component; @Path("/workingdays") @Component @Scope("singleton") -@Api(value = "Working days", description = "The days of the week that are workdays.\n" + "\n" + "Rescheduling of repayments when it falls on a non-working is turned on /off by enable/disable reschedule-future-repayments parameter in Global configurations.\n" + "\n" + "Allow transactions on non-working days is configurable by enabling/disbaling the allow-transactions-on-non_workingday parameter in Global configurations.") +@Api(tags = {"Working days"}) +@SwaggerDefinition(tags = { + @Tag(name = "Working days", description = "The days of the week that are workdays.\n" + "\n" + "Rescheduling of repayments when it falls on a non-working is turned on /off by enable/disable reschedule-future-repayments parameter in Global configurations\n" + "\n" + "Allow transactions on non-working days is configurable by enabling/disbaling the allow-transactions-on-non_workingday parameter in Global configurations.") +}) public class WorkingDaysApiResource { private final DefaultToApiJsonSerializer toApiJsonSerializer; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/api/AccountTransfersApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/api/AccountTransfersApiResource.java index 12556664b..2481ad756 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/api/AccountTransfersApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/api/AccountTransfersApiResource.java @@ -43,7 +43,10 @@ import javax.ws.rs.core.UriInfo; @Path("/accounttransfers") @Component @Scope("singleton") -@Api(value = "Account Transfers", description = "Ability to be able to transfer monetary funds from one account to another.\n\n" + "\n\n" + "Note: At present only savings account to savings account transfers are supported.") +@Api(tags = {"Account Transfers"}) +@SwaggerDefinition(tags = { + @Tag(name = "Account Transfers", description = "Ability to be able to transfer monetary funds from one account to another.\n\nNote: At present only savings account to savings account transfers are supported.") +}) public class AccountTransfersApiResource { private final PlatformSecurityContext context; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/api/StandingInstructionApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/api/StandingInstructionApiResource.java index a525c665d..4577ac4d2 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/api/StandingInstructionApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/api/StandingInstructionApiResource.java @@ -52,7 +52,10 @@ import java.util.Set; @Path("/standinginstructions") @Component @Scope("singleton") -@Api(value = "Standing Instructions", description = "Standing instructions (or standing orders) refer to instructions a bank account holder (\"the payer\") gives to his or her bank to pay a set amount at regular intervals to another's (\"the payee's\") account.\n" + "\n" + "Note: At present only savings account to savings account and savings account to Loan account transfers are permitted.") +@Api(tags = {"Standing Instructions"}) +@SwaggerDefinition(tags = { + @Tag(name = "Standing Instructions", description = "Standing instructions (or standing orders) refer to instructions a bank account holder (\"the payer\") gives to his or her bank to pay a set amount at regular intervals to another's (\"the payee's\") account.\n" + "\n" + "Note: At present only savings account to savings account and savings account to Loan account transfers are permitted.") +}) public class StandingInstructionApiResource { private final PlatformSecurityContext context; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/api/StandingInstructionHistoryApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/api/StandingInstructionHistoryApiResource.java index a5e9867f0..17894710c 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/api/StandingInstructionHistoryApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/api/StandingInstructionHistoryApiResource.java @@ -42,7 +42,10 @@ import java.util.Date; @Path("/standinginstructionrunhistory") @Component @Scope("singleton") -@Api(value = "Standing Instructions History", description = "The list capability of history can support pagination and sorting.") +@Api(tags = {"Standing Instructions History"}) +@SwaggerDefinition(tags = { + @Tag(name = "Standing Instructions History", description = "The list capability of history can support pagination and sorting.") +}) public class StandingInstructionHistoryApiResource { private final PlatformSecurityContext context; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/accounts/api/AccountsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/accounts/api/AccountsApiResource.java index 36b467eb6..f1ab2e814 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/accounts/api/AccountsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/accounts/api/AccountsApiResource.java @@ -63,7 +63,10 @@ import java.io.InputStream; @Path("/accounts/{type}") @Component @Scope("singleton") -@Api(value = "Share Account", description = "Share accounts are instances of a praticular share product created for an individual. An application process around the creation of accounts is also supported.") +@Api(tags = {"Share Account"}) +@SwaggerDefinition(tags = { + @Tag(name = "Share Account", description = "Share accounts are instances of a praticular share product created for an individual. An application process around the creation of accounts is also supported.") +}) public class AccountsApiResource { private final ApplicationContext applicationContext ; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/address/api/EntityFieldConfigurationApiResources.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/address/api/EntityFieldConfigurationApiResources.java index 830557340..e36b9a4a5 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/address/api/EntityFieldConfigurationApiResources.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/address/api/EntityFieldConfigurationApiResources.java @@ -43,7 +43,10 @@ import java.util.Set; @Path("/fieldconfiguration/{entity}") @Component @Scope("singleton") -@Api(value = "Entity Field Configuration", description = "Entity Field configuration API is a generic and extensible \n" + "wherein various entities and subentities can be related.\n" + "Also it gives the user an ability to enable/disable fields,\n" + "add regular expression for validation") +@Api(tags = {"Entity Field Configuration"}) +@SwaggerDefinition(tags = { + @Tag(name = "Entity Field Configuration", description = "Entity Field configuration API is a generic and extensible \n" + "wherein various entities and subentities can be related.\n" + "Also it gives the user an ability to enable/disable fields,\n" + "add regular expression for validation") +}) public class EntityFieldConfigurationApiResources { private final Set RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList("clientAddressId", "client_id", diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/api/ChargesApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/api/ChargesApiResource.java index 3b115ad4f..f05a309cd 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/api/ChargesApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/api/ChargesApiResource.java @@ -45,7 +45,10 @@ import java.util.Set; @Path("/charges") @Component @Scope("singleton") -@Api(value = "Charges", description = "Its typical for MFIs to add extra costs for their financial products. These are typically Fees or Penalties.\n" + "\n" + "A Charge on fineract platform is what we use to model both Fees and Penalties.\n" + "\n" + "At present we support defining charges for use with Client accounts and both loan and saving products.") +@Api(tags = {"Charges"}) +@SwaggerDefinition(tags = { + @Tag(name = "Charges", description = "Its typical for MFIs to add extra costs for their financial products. These are typically Fees or Penalties.\n" + "\n" + "A Charge on fineract platform is what we use to model both Fees and Penalties.\n" + "\n" + "At present we support defining charges for use with Client accounts and both loan and saving products.") +}) public class ChargesApiResource { private final Set CHARGES_DATA_PARAMETERS = new HashSet<>(Arrays.asList("id", "name", "amount", "currency", "penalty", "active", diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientAddressApiResources.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientAddressApiResources.java index b0f675363..51a46dab3 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientAddressApiResources.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientAddressApiResources.java @@ -45,7 +45,10 @@ import java.util.Set; @Path("/client") @Component @Scope("singleton") -@Api(value = "Clients Address", description = "Address module is an optional module and can be configured into the system by using GlobalConfiguration setting: enable-address. In order to activate Address module, we need to enable the configuration, enable-address by setting its value to true.") +@Api(tags = {"Clients Address"}) +@SwaggerDefinition(tags = { + @Tag(name = "Clients Address", description = "Address module is an optional module and can be configured into the system by using GlobalConfiguration setting: enable-address. In order to activate Address module, we need to enable the configuration, enable-address by setting its value to true.") +}) public class ClientAddressApiResources { private final Set RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList("addressId", "street", "addressLine1", "addressLine2", "addressLine3", "townVillage", "city", "countyDistrict", "stateProvinceId", diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientChargesApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientChargesApiResource.java index 4ccf4f2cd..1360a589a 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientChargesApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientChargesApiResource.java @@ -52,7 +52,10 @@ import java.util.Set; @Path("/clients/{clientId}/charges") @Component -@Api(value = "Client Charges", description = "It is typical for MFI's to directly associate charges with an implicit Client account. These can be either fees or penalties\n" + "\n" + "Client Charges are client specific instances of Charges. Refer Charges for documentation of the various properties of a charge, Only additional properties ( specific to the context of a Charge being associated with a Client account) are described here") +@Api(tags = {"Client Charges"}) +@SwaggerDefinition(tags = { + @Tag(name = "Client Charges", description = "It is typical for MFI's to directly associate charges with an implicit Client account. These can be either fees or penalties\n" + "\n" + "Client Charges are client specific instances of Charges. Refer Charges for documentation of the various properties of a charge, Only additional properties ( specific to the context of a Charge being associated with a Client account) are described here") +}) public class ClientChargesApiResource { private final PlatformSecurityContext context; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientIdentifiersApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientIdentifiersApiResource.java index cb28f5789..efde6b3d6 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientIdentifiersApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientIdentifiersApiResource.java @@ -50,7 +50,10 @@ import java.util.Set; @Path("/clients/{clientId}/identifiers") @Component @Scope("singleton") -@Api(value = "Client Identifier", description = "Client Identifiers refer to documents that are used to uniquely identify a customer\n" + "Ex: Drivers License, Passport, Ration card etc ") +@Api(tags = {"Client Identifier"}) +@SwaggerDefinition(tags = { + @Tag(name = "Client Identifier", description = "Client Identifiers refer to documents that are used to uniquely identify a customer\n" + "Ex: Drivers License, Passport, Ration card etc ") +}) public class ClientIdentifiersApiResource { private static final Set CLIENT_IDENTIFIER_DATA_PARAMETERS = new HashSet<>(Arrays.asList("id", "clientId", diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientTransactionsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientTransactionsApiResource.java index 196cb5afa..0cbddf24e 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientTransactionsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientTransactionsApiResource.java @@ -43,7 +43,10 @@ import javax.ws.rs.core.UriInfo; @Path("/clients/{clientId}/transactions") @Component -@Api(value = "Client Transaction", description = "Client Transactions refer to transactions made directly againt a Client's internal account. Currently, these transactions are only created as a result of charge payments/waivers. You are allowed to undo a transaction, however you cannot explicitly create one. ") +@Api(tags = {"Client Transaction"}) +@SwaggerDefinition(tags = { + @Tag(name = "Client Transaction", description = "Client Transactions refer to transactions made directly againt a Client's internal account. Currently, these transactions are only created as a result of charge payments/waivers. You are allowed to undo a transaction, however you cannot explicitly create one. ") +}) public class ClientTransactionsApiResource { private final PlatformSecurityContext context; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientsApiResource.java index e7616d24d..65d09dbe5 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientsApiResource.java @@ -75,7 +75,10 @@ import com.sun.jersey.multipart.FormDataParam; @Path("/clients") @Component @Scope("singleton") -@Api(value = "Client", description = "Clients are people and businesses that have applied (or may apply) to an MFI for loans.\n" + "\n" + "Clients can be created in Pending or straight into Active state.") +@Api(tags = {"Client"}) +@SwaggerDefinition(tags = { + @Tag(name = "Client", description = "Clients are people and businesses that have applied (or may apply) to an MFI for loans.\n" + "\n" + "Clients can be created in Pending or straight into Active state.") +}) public class ClientsApiResource { private final PlatformSecurityContext context; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateral/api/CollateralsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateral/api/CollateralsApiResource.java index 9266dc191..c4e1741e4 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateral/api/CollateralsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateral/api/CollateralsApiResource.java @@ -44,7 +44,10 @@ import java.util.*; @Path("/loans/{loanId}/collaterals") @Component @Scope("singleton") -@Api(value = "Loan Collateral", description = "In lending agreements, collateral is a borrower's pledge of specific property to a lender, to secure repayment of a loan. The collateral serves as protection for a lender against a borrower's default - that is, any borrower failing to pay the principal and interest under the terms of a loan obligation. If a borrower does default on a loan (due to insolvency or other event), that borrower forfeits (gives up) the property pledged as collateral - and the lender then becomes the owner of the collateral") +@Api(tags = {"Loan Collateral"}) +@SwaggerDefinition(tags = { + @Tag(name = "Loan Collateral", description = "In lending agreements, collateral is a borrower's pledge of specific property to a lender, to secure repayment of a loan. The collateral serves as protection for a lender against a borrower's default - that is, any borrower failing to pay the principal and interest under the terms of a loan obligation. If a borrower does default on a loan (due to insolvency or other event), that borrower forfeits (gives up) the property pledged as collateral - and the lender then becomes the owner of the collateral") +}) public class CollateralsApiResource { private static final Set RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList("id", "type", "value", "description", diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/api/FloatingRatesApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/api/FloatingRatesApiResource.java index c9bdae783..ac24534a8 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/api/FloatingRatesApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/api/FloatingRatesApiResource.java @@ -45,7 +45,10 @@ import java.util.Set; @Path("/floatingrates") @Component @Scope("singleton") -@Api(value = "Floating Rates", description = "It lets you create, list, retrieve and upload the floating rates") +@Api(tags = {"Floating Rates"}) +@SwaggerDefinition(tags = { + @Tag(name = "Floating Rates", description = "It lets you create, list, retrieve and upload the floating rates") +}) public class FloatingRatesApiResource { private static final String RESOURCE_NAME = "FLOATINGRATE"; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/api/CentersApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/api/CentersApiResource.java index b133d5ceb..150980a84 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/api/CentersApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/api/CentersApiResource.java @@ -86,7 +86,10 @@ import org.springframework.stereotype.Component; @Path("/centers") @Component @Scope("singleton") -@Api(value = "Centers", description = "Centers along with Groups are used to provided a distinctive banking distribution channel used in microfinance. Its common in areas such as Southern Asia to use Centers and Group as administrative units in grameen style lending. Typically groups will contain one to five people and centers themselves will be made of anywhere between 2-10 groups.") +@Api(tags = {"Centers"}) +@SwaggerDefinition(tags = { + @Tag(name = "Centers", description = "Centers along with Groups are used to provided a distinctive banking distribution channel used in microfinance. Its common in areas such as Southern Asia to use Centers and Group as administrative units in grameen style lending. Typically groups will contain one to five people and centers themselves will be made of anywhere between 2-10 groups.") +}) public class CentersApiResource { private final PlatformSecurityContext context; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/api/GroupsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/api/GroupsApiResource.java index 9a8f32bb0..765fe83e9 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/api/GroupsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/api/GroupsApiResource.java @@ -94,7 +94,10 @@ import org.springframework.util.CollectionUtils; @Path("/groups") @Component @Scope("singleton") -@Api(value = "Groups", description = "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.\n\n" + "\n\n" + "Different styles of group lending - Joint-Liability Group, Grameen Model (Center-Group), Self-Help Groups, Village/Communal Banks)") +@Api(tags = {"Groups"}) +@SwaggerDefinition(tags = { + @Tag(name = "Groups", description = "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.\n" + "\n" + "Different styles of group lending - Joint-Liability Group, Grameen Model (Center-Group), Self-Help Groups, Village/Communal Banks)") +}) public class GroupsApiResource { private final PlatformSecurityContext context; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/api/InterestRateChartSlabsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/api/InterestRateChartSlabsApiResource.java index 364be3d2a..1d2bc4fca 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/api/InterestRateChartSlabsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/api/InterestRateChartSlabsApiResource.java @@ -48,7 +48,10 @@ import static org.apache.fineract.portfolio.interestratechart.InterestRateChartS @Path("/interestratecharts/{chartId}/chartslabs") @Component @Scope("singleton") -@Api(value = "Interest Rate Slab (A.K.A interest bands)", description = "The slabs a.k.a interest bands are associated with Interest Rate Chart. These bands allow to define different interest rates for different deposit term periods.") +@Api(tags = {"Interest Rate Slab (A.K.A interest bands)"}) +@SwaggerDefinition(tags = { + @Tag(name = "Interest Rate Slab (A.K.A interest bands)", description = "The slabs a.k.a interest bands are associated with Interest Rate Chart. These bands allow to define different interest rates for different deposit term periods.") +}) public class InterestRateChartSlabsApiResource { private final InterestRateChartSlabReadPlatformService interestRateChartSlabReadPlatformService; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/api/InterestRateChartsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/api/InterestRateChartsApiResource.java index ae19c3b11..8135f4ed9 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/api/InterestRateChartsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/api/InterestRateChartsApiResource.java @@ -49,7 +49,10 @@ import static org.apache.fineract.portfolio.interestratechart.InterestRateChartA @Path("/interestratecharts") @Component @Scope("singleton") -@Api(value = "Interest Rate Chart", description = "This defines an interest rate scheme that can be associated to a term deposit product. This will have a slab (band or range) of deposit periods and the associated interest rates applicable along with incentives for each band.") +@Api(tags = {"Interest Rate Chart"}) +@SwaggerDefinition(tags = { + @Tag(name = "Interest Rate Chart", description = "This defines an interest rate scheme that can be associated to a term deposit product. This will have a slab (band or range) of deposit periods and the associated interest rates applicable along with incentives for each band.") +}) public class InterestRateChartsApiResource { private final InterestRateChartReadPlatformService chartReadPlatformService; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoanChargesApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoanChargesApiResource.java index dce33108a..3e4dbfbb9 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoanChargesApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoanChargesApiResource.java @@ -51,7 +51,10 @@ import java.util.Set; @Path("/loans/{loanId}/charges") @Component @Scope("singleton") -@Api(value = "Loan Charges", description = "Its typical for MFIs to add extra costs for their loan products. They can be either Fees or Penalties.\n" + "\n" + "Loan Charges are instances of Charges and represent either fees and penalties for loan products. Refer Charges for documentation of the various properties of a charge, Only additional properties ( specific to the context of a Charge being associated with a Loan) are described here") +@Api(tags = {"Loan Charges"}) +@SwaggerDefinition(tags = { + @Tag(name = "Loan Charges", description = "Its typical for MFIs to add extra costs for their loan products. They can be either Fees or Penalties.\n" + "\n" + "Loan Charges are instances of Charges and represent either fees and penalties for loan products. Refer Charges for documentation of the various properties of a charge, Only additional properties ( specific to the context of a Charge being associated with a Loan) are described here") +}) public class LoanChargesApiResource { private final Set RESPONSE_DATA_PARAMETERS = new HashSet<>( diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoanScheduleApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoanScheduleApiResource.java index 207381265..0809a3bf7 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoanScheduleApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoanScheduleApiResource.java @@ -43,7 +43,10 @@ import java.util.HashSet; @Path("/loans/{loanId}/schedule") @Component @Scope("singleton") -@Api(value = "Loan Rescheduling", description = "Loan Term Variations provides the ability to change due dates, amounts and number of instalments before loan approval.") +@Api(tags = {"Loan Rescheduling"}) +@SwaggerDefinition(tags = { + @Tag(name = "Loan Rescheduling", description = "Loan Term Variations provides the ability to change due dates, amounts and number of instalments before loan approval.") +}) public class LoanScheduleApiResource { private final String resourceNameForPermissions = "LOAN"; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoanTransactionsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoanTransactionsApiResource.java index 6e45fd463..046242636 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoanTransactionsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoanTransactionsApiResource.java @@ -52,7 +52,10 @@ import java.util.Set; @Path("/loans/{loanId}/transactions") @Component @Scope("singleton") -@Api(value = "Loan Transactions", description = "Capabilities include loan repayment's, interest waivers and the ability to 'adjust' an existing transaction. An 'adjustment' of a transaction is really a 'reversal' of existing transaction followed by creation of a new transaction with the provided details.") +@Api(tags = {"Loan Transactions"}) +@SwaggerDefinition(tags = { + @Tag(name = "Loan Transactions", description = "Capabilities include loan repayment's, interest waivers and the ability to 'adjust' an existing transaction. An 'adjustment' of a transaction is really a 'reversal' of existing transaction followed by creation of a new transaction with the provided details.") +}) public class LoanTransactionsApiResource { private final Set RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList("id", "type", "date", "currency", "amount", diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoansApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoansApiResource.java index 2849b9a1a..3b8580bb6 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoansApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoansApiResource.java @@ -123,7 +123,105 @@ import org.springframework.util.CollectionUtils; @Path("/loans") @Component @Scope("singleton") -@Api(value = "Loans", description = "The API concept of loans models the loan application process and the loan contract/monitoring process.") +@Api(tags = {"Loans"}) +@SwaggerDefinition(tags = { + @Tag(name = "Loans", description = "The API concept of loans models the loan application process and the loan contract/monitoring process.\n" + + "\n" + + "Field Descriptions\n" + + "accountNo\n" + + "The account no. associated with this loan. Is auto generated if not provided at loan application creation time.\n" + + "externalId\n" + + "A place to put an external reference for this loan e.g. The ID another system uses.\n" + + "If provided, it must be unique.\n" + + "fundId\n" + + "Optional: For associating a loan with a given fund.\n" + + "loanOfficerId\n" + + "Optional: For associating a loan with a given staff member who is a loan officer.\n" + + "loanPurposeId\n" + + "Optional: For marking a loan with a given loan purpose option. Loan purposes are configurable and can be setup by system admin through code/code values screens.\n" + + "principal\n" + + "The loan amount to be disbursed to through loan.\n" + + "loanTermFrequency\n" + + "The length of loan term\n" + + "Used like: loanTermFrequency loanTermFrequencyType\n" + + "e.g. 12 Months\n" + + "loanTermFrequencyType\n" + + "The loan term period to use. Used like: loanTermFrequency loanTermFrequencyType\n" + + "e.g. 12 Months Example Values: 0=Days, 1=Weeks, 2=Months, 3=Years\n" + + "numberOfRepayments\n" + + "Number of installments to repay.\n" + + "Used like: numberOfRepayments Every repaymentEvery repaymentFrequencyType\n" + + "e.g. 10 (repayments) Every 12 Weeks\n" + + "repaymentEvery\n" + + "Used like: numberOfRepayments Every repaymentEvery repaymentFrequencyType\n" + + "e.g. 10 (repayments) Every 12 Weeks\n" + + "repaymentFrequencyType\n" + + "Used like: numberOfRepayments Every repaymentEvery repaymentFrequencyType\n" + + "e.g. 10 (repayments) Every 12 Weeks \n" + + "Example Values: 0=Days, 1=Weeks, 2=Months\n" + + "interestRatePerPeriod\n" + + "Interest Rate.\n" + + "Used like: interestRatePerPeriod % interestRateFrequencyType - interestType\n" + + "e.g. 12.0000% Per year - Declining Balance\n" + + "interestRateFrequencyType\n" + + "Used like: interestRatePerPeriod% interestRateFrequencyType - interestType\n" + + "e.g. 12.0000% Per year - Declining Balance \n" + + "Example Values: 2=Per month, 3=Per year\n" + + "graceOnPrincipalPayment\n" + + "Optional: Integer - represents the number of repayment periods that grace should apply to the principal component of a repayment period.\n" + + "graceOnInterestPayment\n" + + "Optional: Integer - represents the number of repayment periods that grace should apply to the interest component of a repayment period. Interest is still calculated but offset to later repayment periods.\n" + + "graceOnInterestCharged\n" + + "Optional: Integer - represents the number of repayment periods that should be interest-free.\n" + + "graceOnArrearsAgeing\n" + + "Optional: Integer - Used in Arrears calculation to only take into account loans that are more than graceOnArrearsAgeing days overdue.\n" + + "interestChargedFromDate\n" + + "Optional: Date - The date from with interest is to start being charged.\n" + + "expectedDisbursementDate\n" + + "The proposed disbursement date of the loan so a proposed repayment schedule can be provided.\n" + + "submittedOnDate\n" + + "The date the loan application was submitted by applicant.\n" + + "linkAccountId\n" + + "The Savings Account id for linking with loan account for payments.\n" + + "amortizationType\n" + + "Example Values: 0=Equal principle payments, 1=Equal installments\n" + + "interestType\n" + + "Used like: interestRatePerPeriod% interestRateFrequencyType - interestType\n" + + "e.g. 12.0000% Per year - Declining Balance \n" + + "Example Values: 0=Declining Balance, 1=Flat\n" + + "interestCalculationPeriodType\n" + + "Example Values: 0=Daily, 1=Same as repayment period\n" + + "allowPartialPeriodInterestCalcualtion\n" + + "This value will be supported along with interestCalculationPeriodType as Same as repayment period to calculate interest for partial periods. Example: Interest charged from is 5th of April , Principal is 10000 and interest is 1% per month then the interest will be (10000 * 1%)* (25/30) , it calculates for the month first then calculates exact periods between start date and end date(can be a decimal)\n" + + "inArrearsTolerance\n" + + "The amount that can be 'waived' at end of all loan payments because it is too small to worry about.\n" + + "This is also the tolerance amount assessed when determining if a loan is in arrears.\n" + + "transactionProcessingStrategyId\n" + + "An enumeration that indicates the type of transaction processing strategy to be used. This relates to functionality that is also known as Payment Application Logic.\n" + + "A number of out of the box approaches exist, some are custom to specific MFIs, some are more general and indicate the order in which payments are processed.\n" + + "\n" + + "Refer to the Payment Application Logic / Transaction Processing Strategy section in the appendix for more detailed overview of each available payment application logic provided out of the box.\n" + + "\n" + + "List of current approaches:\n" + + "1 = Mifos style (Similar to Old Mifos)\n" + + "2 = Heavensfamily (Custom MFI approach)\n" + + "3 = Creocore (Custom MFI approach)\n" + + "4 = RBI (India)\n" + + "5 = Principal Interest Penalties Fees Order\n" + + "6 = Interest Principal Penalties Fees Order\n" + + "7 = Early Payment Strategy\n" + + "loanType\n" + + "To represent different type of loans.\n" + + "At present there are three type of loans are supported. \n" + + "Available loan types:\n" + + "individual: Loan given to individual member\n" + + "group: Loan given to group as a whole\n" + + "jlg: Joint liability group loan given to members in a group on individual basis. JLG loan can be given to one or more members in a group.\n" + + "recalculationRestFrequencyDate\n" + + "Specifies rest frequency start date for interest recalculation. This date must be before or equal to disbursement date\n" + + "recalculationCompoundingFrequencyDate\n" + + "Specifies compounding frequency start date for interest recalculation. This date must be equal to disbursement date") +}) public class LoansApiResource { private final Set LOAN_DATA_PARAMETERS = new HashSet<>(Arrays.asList("id", "accountNo", "status", "externalId", "clientId", diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/api/LoanProductsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/api/LoanProductsApiResource.java index 9c68524f7..945d6508a 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/api/LoanProductsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/api/LoanProductsApiResource.java @@ -65,7 +65,10 @@ import java.util.*; @Path("/loanproducts") @Component @Scope("singleton") -@Api(value = "Loan Products", description = "A Loan product is a template that is used when creating a loan. Much of the template definition can be overridden during loan creation.") +@Api(tags = {"Loan Products"}) +@SwaggerDefinition(tags = { + @Tag(name = "Loan Products", description = "A Loan product is a template that is used when creating a loan. Much of the template definition can be overridden during loan creation.") +}) public class LoanProductsApiResource { private final Set LOAN_PRODUCT_DATA_PARAMETERS = new HashSet<>(Arrays.asList("id", "name", "shortName", "description", diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/api/NotesApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/api/NotesApiResource.java index f1b4a8128..9d8f44b76 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/api/NotesApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/api/NotesApiResource.java @@ -47,7 +47,10 @@ import java.util.Set; @Path("/{resourceType}/{resourceId}/notes") @Component @Scope("singleton") -@Api(value = "Notes", description = "Notes API allows to enter notes for supported resources.") +@Api(tags = {"Notes"}) +@SwaggerDefinition(tags = { + @Tag(name = "Notes", description = "Notes API allows to enter notes for supported resources.") +}) public class NotesApiResource { private final Set NOTE_DATA_PARAMETERS = new HashSet<>(Arrays.asList("id", "clientId", "groupId", "loanId", diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/paymenttype/api/PaymentTypeApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/paymenttype/api/PaymentTypeApiResource.java index af5e76446..697167519 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/paymenttype/api/PaymentTypeApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/paymenttype/api/PaymentTypeApiResource.java @@ -41,7 +41,10 @@ import java.util.Collection; @Path("/paymenttypes") @Component -@Api(value = "Payment Type", description = "This defines the payment type") +@Api(tags = {"Payment Type"}) +@SwaggerDefinition(tags = { + @Tag(name = "Payment Type", description = "This defines the payment type") +}) public class PaymentTypeApiResource { private final PlatformSecurityContext securityContext; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/FixedDepositAccountsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/FixedDepositAccountsApiResource.java index 8406c3f3e..f1ad367f2 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/FixedDepositAccountsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/FixedDepositAccountsApiResource.java @@ -83,7 +83,10 @@ import org.springframework.util.CollectionUtils; @Path("/fixeddepositaccounts") @Component @Scope("singleton") -@Api(value = "Fixed Deposit Account", description = "Fixed Deposit accounts are instances of a praticular fixed deposit product created. An application process around the creation of accounts is also supported.") +@Api(tags = {"Fixed Deposit Account"}) +@SwaggerDefinition(tags = { + @Tag(name = "Fixed Deposit Account", description = "Fixed Deposit accounts are instances of a praticular fixed deposit product created. An application process around the creation of accounts is also supported.") +}) public class FixedDepositAccountsApiResource { private final DepositAccountReadPlatformService depositAccountReadPlatformService; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/FixedDepositProductsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/FixedDepositProductsApiResource.java index cfd89e1d3..a5d5adc2b 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/FixedDepositProductsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/FixedDepositProductsApiResource.java @@ -69,7 +69,10 @@ import java.util.Map; @Path("/fixeddepositproducts") @Component @Scope("singleton") -@Api(value = "Fixed Deposit Product", description = "This is one of the advanced term deposit product offered by MFI's. The Fixed Deposit Products (aka FD) product offerings are modeled using this API.\n" + "\n" + "The FD products are deposit accounts which are held for a fixed term – like 1 year, 2 years etc.\n" + "\n" + "When creating fixed deposit accounts, the details from the fixed deposit product are used to auto fill details of the fixed deposit account application process.") +@Api(tags = {"Fixed Deposit Product"}) +@SwaggerDefinition(tags = { + @Tag(name = "Fixed Deposit Product", description = "This is one of the advanced term deposit product offered by MFI's. The Fixed Deposit Products (aka FD) product offerings are modeled using this API.\n" + "\n" + "The FD products are deposit accounts which are held for a fixed term – like 1 year, 2 years etc.\n" + "\n" + "When creating fixed deposit accounts, the details from the fixed deposit product are used to auto fill details of the fixed deposit account application process.") +}) public class FixedDepositProductsApiResource { private final DepositProductReadPlatformService depositProductReadPlatformService; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/RecurringDepositAccountTransactionsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/RecurringDepositAccountTransactionsApiResource.java index 91f3e5b4e..8c34bff7e 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/RecurringDepositAccountTransactionsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/RecurringDepositAccountTransactionsApiResource.java @@ -52,7 +52,10 @@ import java.util.Set; @Path("/recurringdepositaccounts/{recurringDepositAccountId}/transactions") @Component @Scope("singleton") -@Api(value = "Recurring Deposit Account Transactions", description = "Transactions possible on a recurring deposit account.") +@Api(tags = {"Recurring Deposit Account Transactions"}) +@SwaggerDefinition(tags = { + @Tag(name = "Recurring Deposit Account Transactions", description = "Transactions possible on a recurring deposit account.") +}) public class RecurringDepositAccountTransactionsApiResource { private final PlatformSecurityContext context; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/RecurringDepositAccountsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/RecurringDepositAccountsApiResource.java index f26692e3b..465889545 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/RecurringDepositAccountsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/RecurringDepositAccountsApiResource.java @@ -80,7 +80,10 @@ import org.springframework.util.CollectionUtils; @Path("/recurringdepositaccounts") @Component @Scope("singleton") -@Api(value = "Recurring Deposit Account", description = "Recurring Deposit accounts are instances of a praticular recurring deposit product created. An application process around the creation of accounts is also supported.") +@Api(tags = {"Recurring Deposit Account"}) +@SwaggerDefinition(tags = { + @Tag(name = "Recurring Deposit Account", description = "Recurring Deposit accounts are instances of a praticular recurring deposit product created. An application process around the creation of accounts is also supported.") +}) public class RecurringDepositAccountsApiResource { private final DepositAccountReadPlatformService depositAccountReadPlatformService; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/RecurringDepositProductsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/RecurringDepositProductsApiResource.java index ea475bb2c..8f21b5985 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/RecurringDepositProductsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/RecurringDepositProductsApiResource.java @@ -69,7 +69,10 @@ import java.util.Map; @Path("/recurringdepositproducts") @Component @Scope("singleton") -@Api(value = "Recurring Deposit Product", description = "Recurring Deposits are a special kind of Term Deposits offered by MFI's. The Recurring Deposit Products (aka RD) product offerings are modeled using this API.\n" + "\n" + "Recurring Deposits help people with regular incomes to deposit a fixed amount every month (specified recurring frequency) into their Recurring Deposit account.\n" + "\n" + "When creating recurring deposit accounts, the details from the recurring deposit product are used to auto fill details of the recurring deposit account application process.") +@Api(tags = {"Recurring Deposit Product"}) +@SwaggerDefinition(tags = { + @Tag(name = "Recurring Deposit Product", description = "Recurring Deposits are a special kind of Term Deposits offered by MFI's. The Recurring Deposit Products (aka RD) product offerings are modeled using this API.\n" + "\n" + "Recurring Deposits help people with regular incomes to deposit a fixed amount every month (specified recurring frequency) into their Recurring Deposit account.\n" + "\n" + "When creating recurring deposit accounts, the details from the recurring deposit product are used to auto fill details of the recurring deposit account application process.") +}) public class RecurringDepositProductsApiResource { private final DepositProductReadPlatformService depositProductReadPlatformService; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsAccountChargesApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsAccountChargesApiResource.java index 136d5fdf7..1a3b91688 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsAccountChargesApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsAccountChargesApiResource.java @@ -47,7 +47,10 @@ import static org.apache.fineract.portfolio.savings.SavingsApiConstants.*; @Path("/savingsaccounts/{savingsAccountId}/charges") @Component @Scope("singleton") -@Api(value = "Savings Charges", description = "Its typical for MFIs to add maintenance and operating charges. They can be either Fees or Penalties.\n" + "\n" + "Savings Charges are instances of Charges and represent either fees and penalties for savings products. Refer Charges for documentation of the various properties of a charge, Only additional properties ( specific to the context of a Charge being associated with a Savings account) are described here") +@Api(tags = {"Savings Charges"}) +@SwaggerDefinition(tags = { + @Tag(name = "Savings Charges", description = "Its typical for MFIs to add maintenance and operating charges. They can be either Fees or Penalties.\n" + "\n" + "Savings Charges are instances of Charges and represent either fees and penalties for savings products. Refer Charges for documentation of the various properties of a charge, Only additional properties ( specific to the context of a Charge being associated with a Savings account) are described here") +}) public class SavingsAccountChargesApiResource { private final PlatformSecurityContext context; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsAccountsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsAccountsApiResource.java index 9142244d5..5e206c6be 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsAccountsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsAccountsApiResource.java @@ -73,7 +73,10 @@ import org.springframework.util.CollectionUtils; @Path("/savingsaccounts") @Component @Scope("singleton") -@Api(value = "Savings Account", description = "Savings accounts are instances of a particular savings product created for an individual or group. An application process around the creation of accounts is also supported.") +@Api(tags = {"Savings Account"}) +@SwaggerDefinition(tags = { + @Tag(name = "Savings Account", description = "Savings accounts are instances of a particular savings product created for an individual or group. An application process around the creation of accounts is also supported.") +}) public class SavingsAccountsApiResource { private final SavingsAccountReadPlatformService savingsAccountReadPlatformService; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsProductsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsProductsApiResource.java index 7762d0920..27ecdca42 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsProductsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsProductsApiResource.java @@ -65,7 +65,10 @@ import java.util.Map; @Path("/savingsproducts") @Component @Scope("singleton") -@Api(value = "Savings Product", description = "An MFIs savings product offerings are modeled using this API.\n" + "\n" + "When creating savings accounts, the details from the savings product are used to auto fill details of the savings account application process.") +@Api(tags = {"Savings Product"}) +@SwaggerDefinition(tags = { + @Tag(name = "Savings Product", description = "An MFIs savings product offerings are modeled using this API." + "\n" + "When creating savings accounts, the details from the savings product are used to auto fill details of the savings account application process.") +}) public class SavingsProductsApiResource { private final SavingsProductReadPlatformService savingProductReadPlatformService; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/api/SearchApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/api/SearchApiResource.java index 41c1123c5..cb1d86ca5 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/api/SearchApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/api/SearchApiResource.java @@ -21,6 +21,7 @@ package org.apache.fineract.portfolio.search.api; import java.util.Collection; import java.util.Set; + import javax.ws.rs.Consumes; import javax.ws.rs.DefaultValue; import javax.ws.rs.GET; @@ -32,6 +33,7 @@ import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.UriInfo; +import io.swagger.annotations.*; import org.apache.fineract.infrastructure.core.api.ApiRequestParameterHelper; import org.apache.fineract.infrastructure.core.serialization.ApiRequestJsonSerializationSettings; import org.apache.fineract.infrastructure.core.serialization.ToApiJsonSerializer; @@ -49,6 +51,10 @@ import org.springframework.stereotype.Component; @Path("/search") @Component @Scope("singleton") +@Api(tags = {"Search API"}) +@SwaggerDefinition(tags = { + @Tag(name = "Search API", description = "Search API allows to search scoped resources clients, loans and groups on specified fields.") +}) public class SearchApiResource { private final Set searchResponseParameters = SEARCH_RESPONSE_PARAMETERS.getAllValues(); @@ -74,6 +80,8 @@ public class SearchApiResource { @Path("/template") @Consumes({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON }) + @ApiOperation(value = "Retrive Adhoc Search query template", httpMethod = "GET", notes = "Mandatory Fields\n" + "\n" + "search?query=000000001\n") + @ApiResponses({@ApiResponse(code = 200, message = "", response = SearchApiResourceSwagger.GetSearchResponse.class)}) public String retrieveAdHocSearchQueryTemplate(@Context final UriInfo uriInfo) { final AdHocSearchQueryData templateData = this.searchReadPlatformService.retrieveAdHocQueryTemplate(); @@ -85,8 +93,10 @@ public class SearchApiResource { @GET @Consumes({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON }) - public String searchData(@Context final UriInfo uriInfo, @QueryParam("query") final String query, - @QueryParam("resource") final String resource ,@DefaultValue("false") @QueryParam("exactMatch") Boolean exactMatch) { + @ApiOperation(value = "Search Resources", notes = "Example Requests:\n" + "\n" + "search?query=000000001\n" + "\n" + "\n" + "search?query=Petra&resource=clients,groups\n" + "\n" + "\n" + "search?query=Petra&resource=clients,groups&exactMatch=true") + @ApiResponses({@ApiResponse(code = 200, message = "", response = SearchApiResourceSwagger.GetSearchResponse.class)}) + public String searchData(@Context final UriInfo uriInfo, @QueryParam("query") @ApiParam(value = "query")final String query, + @QueryParam("resource") @ApiParam(value = "resource") final String resource ,@DefaultValue("false") @QueryParam("exactMatch") @ApiParam(value = "exactMatch") Boolean exactMatch) { final SearchConditions searchConditions = new SearchConditions(query, resource,exactMatch); @@ -100,6 +110,13 @@ public class SearchApiResource { @Path("/advance") @Consumes({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON }) + @ApiOperation(value = "Adhoc query search", notes = "AdHocQuery search has more search options, it is a POST request, it uses request body to send search parameters\n" + "\n" + "\n" + "Mandatory fields:" + "entities" + "\n" + "\n" + "Optional fields:" + "loanStatus, loanProducts, offices, loanDateOption, loanFromDate, loanToDate, \n" + + "includeOutStandingAmountPercentage, outStandingAmountPercentageCondition, \n" + + "minOutStandingAmountPercentage and maxOutStandingAmountPercentage OR outStandingAmountPercentage, \n" + + "includeOutstandingAmount, outstandingAmountCondition, \n" + + "minOutstandingAmount and maxOutstandingAmount OR outstandingAmount" ) + @ApiImplicitParams({@ApiImplicitParam(value = "body", required = true, paramType = "body", dataType = "body", format = "body", dataTypeClass = SearchApiResourceSwagger.PostAdhocQuerySearchRequest.class )}) + @ApiResponses({@ApiResponse(code = 200, message = "", response = SearchApiResourceSwagger.PostAdhocQuerySearchResponse.class)}) public String advancedSearch(@Context final UriInfo uriInfo, final String json) { final AdHocQuerySearchConditions searchConditions = this.fromApiJsonDeserializer.retrieveSearchConditions(json); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/api/SearchApiResourceSwagger.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/api/SearchApiResourceSwagger.java new file mode 100644 index 000000000..c1daa1fa4 --- /dev/null +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/api/SearchApiResourceSwagger.java @@ -0,0 +1,111 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.fineract.portfolio.search.api; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import org.apache.fineract.infrastructure.core.data.EnumOptionData; +import org.joda.time.LocalDate; +import java.util.Set; + +import java.util.List; + + + +/** + * Created by Kang Breder on 13/06/19. + */ +final class SearchApiResourceSwagger { + private SearchApiResourceSwagger() { + + } + + @ApiModel(value = "GetSearchResponse") + public static final class GetSearchResponse { + private GetSearchResponse() { + + } + + @ApiModelProperty(example = "1") + public Long entityId; + @ApiModelProperty(example = "000000001") + public Long entityAccountNo; + @ApiModelProperty(example = "ID_JKZGEXF") + public String entityExternalId; + @ApiModelProperty(example = "Group_Name_HVCU5") + public String entityName; + @ApiModelProperty(example = "GROUP") + public String entityType; + @ApiModelProperty(example = "1") + public Long parentId; + @ApiModelProperty(example = "Head Office") + public String parentName; + public EnumOptionData entityStatus; + } + + @ApiModel(value = "PostAdhocQuerySearchRequest") + public static final class PostAdhocQuerySearchRequest { + private PostAdhocQuerySearchRequest() { + + } + + + @ApiModelProperty(example = "en") + public String locale; + @ApiModelProperty(example = "dd MMMM yyyy") + public String dateFormat; + @ApiModelProperty(example = "approvalDate") + public String loanDateOption; + @ApiModelProperty(example = "2013-01-01") + public LocalDate loanFromDate; + @ApiModelProperty(example = "2014-01-27") + public LocalDate loanToDate; + @ApiModelProperty(example = "true") + public boolean includeOutStandingAmountPercentage; + @ApiModelProperty(example = "<=") + public String outStandingAmountPercentageCondition; + @ApiModelProperty(example = "80") + public Long outStandingAmountPercentage; + @ApiModelProperty(example = "true") + public boolean includeOutstandingAmount; + @ApiModelProperty(example = "between") + public String outstandingAmountCondition; + @ApiModelProperty(example = "100") + public Long minOutstandingAmount; + @ApiModelProperty(example = "10000") + public Long maxOutstandingAmount; + } + + @ApiModel(value = "PostAdhocQuerySearchResponse") + public static final class PostAdhocQuerySearchResponse { + private PostAdhocQuerySearchResponse() { + + } + + @ApiModelProperty(example = "HFC") + public String officeName; + @ApiModelProperty(example = "01 BC3M") + public String loanProductName; + @ApiModelProperty(example = " 5692.41") + public Long loanOutStanding; + @ApiModelProperty(example = "76.4") + public Long percentage; + } +} + diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/account/api/SelfAccountTransferApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/account/api/SelfAccountTransferApiResource.java index dad8da994..47819a886 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/account/api/SelfAccountTransferApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/account/api/SelfAccountTransferApiResource.java @@ -52,10 +52,15 @@ import org.joda.time.LocalDate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; +import io.swagger.annotations.*; @Path("/self/accounttransfers") @Component @Scope("singleton") +@Api(tags = {"Self Account Transfer"}) +@SwaggerDefinition(tags = { + @Tag(name = "Self Account transfer", description = "") +}) public class SelfAccountTransferApiResource { private final PlatformSecurityContext context; @@ -94,8 +99,11 @@ public class SelfAccountTransferApiResource { @Path("template") @Consumes({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON }) + @ApiOperation(value = "Retrieve Account Transfer Template", httpMethod = "GET", notes = "Returns list of loan/savings accounts that can be used for account transfer\n" + + "\n" + "\n" + "Example Requests:\n" + "\n" + "self/accounttransfers/template\n") + @ApiResponses({@ApiResponse(code = 200, message = "OK", responseContainer = "List", response = SelfAccountTransferApiResourceSwagger.GetAccountTransferTemplateResponse.class)}) public String template( - @DefaultValue("") @QueryParam("type") final String type, + @DefaultValue("") @QueryParam("type") @ApiParam("type") final String type, @Context final UriInfo uriInfo) { AppUser user = this.context.authenticatedUser(); @@ -120,8 +128,11 @@ public class SelfAccountTransferApiResource { @POST @Consumes({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON }) + @ApiOperation(value = "Create new Transfer", httpMethod = "POST", notes = "Ability to create new transfer of monetary funds from one account to another.\n" + + "\n" + "\n" + "Example Requests:\n" + "\n" + " self/accounttransfers/\n") + @ApiResponses({@ApiResponse(code = 200, message = "OK", responseContainer = "List", response = SelfAccountTransferApiResourceSwagger.PostNewTransferResponse.class)}) public String create( - @DefaultValue("") @QueryParam("type") final String type, + @DefaultValue("") @QueryParam("type") @ApiParam("type") final String type, final String apiRequestBodyAsJson) { Map params = this.dataValidator.validateCreate(type, apiRequestBodyAsJson); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/account/api/SelfAccountTransferApiResourceSwagger.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/account/api/SelfAccountTransferApiResourceSwagger.java new file mode 100644 index 000000000..152b1464d --- /dev/null +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/account/api/SelfAccountTransferApiResourceSwagger.java @@ -0,0 +1,143 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.fineract.portfolio.self.account.api; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.util.Set; + +/** + * Created by Kang Breder on 29/07/19. + */ + +final class SelfAccountTransferApiResourceSwagger { + private SelfAccountTransferApiResourceSwagger() { + } + + + @ApiModel(value = "GetAccountTransferTemplateResponse") + public final static class GetAccountTransferTemplateResponse { + private GetAccountTransferTemplateResponse() { + } + + final class GetAccountOptions { + private GetAccountOptions() { + } + + @ApiModelProperty(example = "2") + public Integer id; + @ApiModelProperty(example = "accountType.savings") + public String code; + @ApiModelProperty(example = "Savings Account") + public String value; + } + + public Set accountTypeOptions; + + final class GetFromAccountOptions { + private GetFromAccountOptions() { + } + + @ApiModelProperty(example = "2") + public Integer accountId; + @ApiModelProperty(example = "00000001") + public Integer accountNo; + public GetAccountTransferTemplateResponse.GetAccountOptions accountType; + @ApiModelProperty(example = "1") + public Integer clientId; + @ApiModelProperty(example = "ABC") + public String clientName; + @ApiModelProperty(example = "1") + public Integer officeId; + @ApiModelProperty(example = "HEAD OFFICE") + public String officeName; + + } + + public Set fromAccountTypeOptions; + + final class GetToAccountOptions { + private GetToAccountOptions() { + } + + @ApiModelProperty(example = "2") + public Integer accountId; + @ApiModelProperty(example = "00000001") + public Integer accountNo; + public GetAccountTransferTemplateResponse.GetAccountOptions accountType; + @ApiModelProperty(example = "1") + public Integer clientId; + @ApiModelProperty(example = "ABC") + public String clientName; + @ApiModelProperty(example = "1") + public Integer officeId; + @ApiModelProperty(example = "HEAD OFFICE") + public String officeName; + + } + + public Set toAccountTypeOptions; + } + + @ApiModel(value = "PostNewTransferRequest") + public final static class PostNewTransferRequest { + private PostNewTransferRequest() { + } + + @ApiModelProperty(example = "1") + public Integer fromOfficeId; + @ApiModelProperty(example = "1") + public Integer fromClientId; + @ApiModelProperty(example = "2") + public Integer fromAccountType; + @ApiModelProperty(example = "1") + public Integer fromAccountId; + @ApiModelProperty(example = "1") + public Integer toOfficeId; + @ApiModelProperty(example = "1") + public Integer toClientId; + @ApiModelProperty(example = "2") + public Integer toAccountType; + @ApiModelProperty(example = "2") + public Integer toAccountId; + @ApiModelProperty(example = "dd MMMM YYYY") + public String dateFormat; + @ApiModelProperty(example = "en") + public String locale; + @ApiModelProperty(example = "01 August 2011") + public String transferDate; + @ApiModelProperty(example = "112.45") + public Float transferAmount; + @ApiModelProperty(example = "A description of the transfer") + public String transferDescription; + + } + + @ApiModel(value = "PostNewTransferResponse") + public final static class PostNewTransferResponse { + private PostNewTransferResponse() { + } + + @ApiModelProperty(example = "1") + public Integer savingsId; + @ApiModelProperty(example = "1") + public Integer resourceId; + } +} \ No newline at end of file diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/account/api/SelfBeneficiariesTPTApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/account/api/SelfBeneficiariesTPTApiResource.java index 0990fe4c5..e43fdf43c 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/account/api/SelfBeneficiariesTPTApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/account/api/SelfBeneficiariesTPTApiResource.java @@ -48,7 +48,10 @@ import java.util.Set; @Path("/self/beneficiaries/tpt") @Component @Scope("singleton") -@Api(value = "Beneficiary Third Party Transfer", description = "") +@Api(tags = {"Self Third Party Transfer"}) +@SwaggerDefinition(tags = { + @Tag(name = "Self Third Party Transfer", description = "") +}) public class SelfBeneficiariesTPTApiResource { private final PlatformSecurityContext context; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/client/api/SelfClientsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/client/api/SelfClientsApiResource.java index c8a76a7a9..86e728620 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/client/api/SelfClientsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/client/api/SelfClientsApiResource.java @@ -57,7 +57,10 @@ import com.sun.jersey.multipart.FormDataParam; @Path("/self/clients") @Component @Scope("singleton") -@Api(value = "Self Client", description = "") +@Api(tags = {"Self Client"}) +@SwaggerDefinition(tags = { + @Tag(name = "Self Client", description = "") +}) public class SelfClientsApiResource { private final PlatformSecurityContext context; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/loanaccount/api/SelfLoansApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/loanaccount/api/SelfLoansApiResource.java index c773f8a39..936a2e99c 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/loanaccount/api/SelfLoansApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/loanaccount/api/SelfLoansApiResource.java @@ -47,7 +47,10 @@ import java.util.HashMap; @Path("/self/loans") @Component @Scope("singleton") -@Api(value = "Self Loans", description = "") +@Api(tags = {"Self Loans"}) +@SwaggerDefinition(tags = { + @Tag(name = "Self Loans", description = "") +}) public class SelfLoansApiResource { private final PlatformSecurityContext context; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/api/PocketApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/api/PocketApiResource.java index 1d39cc2b4..2952e182a 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/api/PocketApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/api/PocketApiResource.java @@ -40,10 +40,15 @@ import org.apache.fineract.portfolio.self.pockets.service.PocketAccountMappingRe import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; +import io.swagger.annotations.*; @Path("/self/pockets") @Component @Scope("singleton") +@Api(tags = {"Pocket"}) +@SwaggerDefinition(tags = { + @Tag(name = "Pocket", description = "") +}) public class PocketApiResource { private final PortfolioCommandSourceWritePlatformService commandsSourceWritePlatformService; @SuppressWarnings("rawtypes") @@ -63,7 +68,9 @@ public class PocketApiResource { @POST @Consumes({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON }) - public String handleCommands(@QueryParam("command") final String commandParam, @Context final UriInfo uriInfo, + @ApiOperation(value = "Link/delink accounts to/from pocket", httpMethod = "POST", notes = "Pockets behave as favourites. An user can link his/her Loan, Savings and Share accounts to pocket for faster access. In a similar way linked accounts can be delinked from the pocket.\n\n" + "Example Requests:\n" + "\n" + "self/pockets?command=linkAccounts\n" + "\n" + "self/pockets?command=delinkAccounts") + @ApiResponses({@ApiResponse(code = 200, message = "OK", response = PocketApiResourceSwagger.PostLinkDelinkAccountsToFromPocketResponse.class)}) + public String handleCommands(@QueryParam("command") @ApiParam(value = "command") final String commandParam, @Context final UriInfo uriInfo, final String apiRequestBodyAsJson) { final CommandWrapperBuilder builder = new CommandWrapperBuilder().withJson(apiRequestBodyAsJson); @@ -88,6 +95,8 @@ public class PocketApiResource { @GET @Consumes({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON }) + @ApiOperation(value = "Retrieve accounts linked to pocket", httpMethod = "GET", notes = "All linked loan\n\n" + "Example Requests:\n" + "\n" + "\n" + "self/pockets") + @ApiResponses({@ApiResponse(code = 200, message = "OK", response = PocketApiResourceSwagger.GetAccountsLinkedToPocketResponse.class)}) public String retrieveAll() { return this.toApiJsonSerializer.serialize(this.pocketAccountMappingReadPlatformService.retrieveAll()); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/api/PocketApiResourceSwagger.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/api/PocketApiResourceSwagger.java new file mode 100644 index 000000000..ee4e64409 --- /dev/null +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/api/PocketApiResourceSwagger.java @@ -0,0 +1,108 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.fineract.portfolio.self.pockets.api; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.util.Set; +import java.util.List; +import java.time.LocalDate; + +/** + * Created by Kang Breder on 07/08/19. + */ + +final class PocketApiResourceSwagger { + private PocketApiResourceSwagger() { + } + + @ApiModel(value = "PostLinkDelinkAccountsToFromPocketRequest") + public final static class PostLinkDelinkAccountsToFromPocketRequest { + private PostLinkDelinkAccountsToFromPocketRequest() { + } + final class GetPocketAccountDetail { + private GetPocketAccountDetail() { + } + + @ApiModelProperty(example = "11") + public Integer accountId; + @ApiModelProperty(example = "LOAN") + public String accountType; + } + public Set accountDetail; + } + + @ApiModel(value = "PostLinkDelinkAccountsToFromPocketResponse") + public final static class PostLinkDelinkAccountsToFromPocketResponse { + private PostLinkDelinkAccountsToFromPocketResponse() { + } + @ApiModelProperty(example = "6") + public Integer resourceId; + } + + @ApiModel(value = "GetAccountsLinkedToPocketResponse") + public final static class GetAccountsLinkedToPocketResponse { + private GetAccountsLinkedToPocketResponse() { + } + + final class GetPocketLoanAccounts { + private GetPocketLoanAccounts() { + } + + @ApiModelProperty(example = "6") + public Integer pocketId; + @ApiModelProperty(example = "11") + public Integer accountId; + @ApiModelProperty(example = "2") + public Integer accountType; + @ApiModelProperty(example = "000000011") + public Integer accountNumber; + @ApiModelProperty(example = "10") + public Integer id; + } + + final class GetPocketSavingAccounts { + private GetPocketSavingAccounts() { + } + + @ApiModelProperty(example = "6") + public Integer pocketId; + @ApiModelProperty(example = "2") + public Integer accountId; + @ApiModelProperty(example = "3") + public Integer accountType; + @ApiModelProperty(example = "000000002") + public Integer accountNumber; + @ApiModelProperty(example = "11") + public Integer id; + } + + final class GetPocketShareAccounts { + private GetPocketShareAccounts() { + } + + } + + public Set loanAccounts; + public Set savingAccounts; + public Set shareAccounts; + } +} + diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/products/api/SelfLoanProductsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/products/api/SelfLoanProductsApiResource.java index dece2df8c..3c8a44286 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/products/api/SelfLoanProductsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/products/api/SelfLoanProductsApiResource.java @@ -35,10 +35,144 @@ import org.apache.fineract.portfolio.self.client.service.AppuserClientMapperRead import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; +import io.swagger.annotations.*; @Path("/self/loanproducts") @Component @Scope("singleton") +@Api(tags = {"Self Loan Products"}) +@SwaggerDefinition(tags = { + @Tag(name = "Self Loan Products", description = "A Loan product is a template that is used when creating a loan. Much of the template definition can be overridden during loan creation.\n" + "\n" + + "Field Descriptions\n" + + "name\n" + + "Name associated with loan product on system.\n" + + "shortName\n" + + "Short name associated with a loan product. \n" + + "An abbreviated version of the name, used in reports or menus where space is limited, such as Collection Sheets.\n" + + "description\n" + + "For providing helpful description of product offering.\n" + + "fundId\n" + + "For associating a loan product with a given fund by default.\n" + + "includeInBorrowerCycle\n" + + "It is a flag, Used to denote whether the loans should include in loan cycle counter or not.\n" + + "useBorrowerCycle\n" + + "It is a flag, Used to denote whether the loans should depend on \n" + + "borrower loan cycle counter or not.\n" + + "currencyCode\n" + + "A three letter ISO code of currency.\n" + + "digitsAfterDecimal\n" + + "Override the currency default value for digitsAfterDecimal.\n" + + "inMultiplesOf\n" + + "Override the default value for rounding currency to multiples of value provided.\n" + + "installmentAmountInMultiplesOf\n" + + "Override the default value for rounding instalment amount to multiples of value provided.\n" + + "principal\n" + + "The loan amount to be disbursed to through loan.\n" + + "numberOfRepayments\n" + + "Number of installments to repay.\n" + + "Used like: numberOfRepayments Every repaymentEvery repaymentFrequencyType\n" + + "e.g. 10 (repayments) Every 12 Weeks\n" + + "repaymentEvery\n" + + "Used like: numberOfRepayments Every repaymentEvery repaymentFrequencyType\n" + + "e.g. 10 (repayments) Every 12 Weeks\n" + + "repaymentFrequencyType\n" + + "Used like: numberOfRepayments Every repaymentEvery repaymentFrequencyType\n" + + "e.g. 10 (repayments) Every 12 Weeks \n" + + "Example Values: 0=Days, 1=Weeks, 2=Months\n" + + "interestRatePerPeriod\n" + + "Interest Rate.\n" + + "Used like: interestRatePerPeriod % interestRateFrequencyType - interestType\n" + + "e.g. 12.0000% Per year - Declining Balance\n" + + "interestRateFrequencyType\n" + + "Used like: interestRatePerPeriod% interestRateFrequencyType - interestType\n" + + "e.g. 12.0000% Per year - Declining Balance \n" + + "Example Values: 2=Per month, 3=Per year\n" + + "amortizationType\n" + + "Example Values: 0=Equal principle payments, 1=Equal installments\n" + + "interestType\n" + + "Used like: interestRatePerPeriod% interestRateFrequencyType - interestType\n" + + "e.g. 12.0000% Per year - Declining Balance \n" + + "Example Values: 0=Declining Balance, 1=Flat\n" + + "interestCalculationPeriodType\n" + + "Example Values: 0=Daily, 1=Same as repayment period\n" + + "allowPartialPeriodInterestCalcualtion\n" + + "This value will be supported along with interestCalculationPeriodType as Same as repayment period to calculate interest for partial periods. Example: Interest charged from is 5th of April , Principal is 10000 and interest is 1% per month then the interest will be (10000 * 1%)* (25/30) , it calculates for the month first then calculates exact periods between start date and end date(can be a decimal)\n" + + "inArrearsTolerance\n" + + "The amount that can be 'waived' at end of all loan payments because it is too small to worry about.\n" + + "This is also the tolerance amount assessed when determining if a loan is in arrears.\n" + + "principalVariationsForBorrowerCycle,interestRateVariationsForBorrowerCycle,\n" + + "numberOfRepaymentVariationsForBorrowerCycle\n" + + "Variations for loan, based on borrower cycle number\n" + + "minimumDaysBetweenDisbursalAndFirstRepayment\n" + + "The minimum number of days allowed between a Loan disbursal and its first repayment.\n" + + "principalThresholdForLastInstalment\n" + + "Field represents percentage of current instalment principal amount for comparing against principal outstanding to add another repayment instalment. If the outstanding principal amount is less then calculated amount, remaining outstanding amount will be added to current instalment. Default value for multi disburse loan is 50% and non-multi disburse loan is 0%\n" + + "canDefineInstallmentAmount\n" + + "if provided as true, then fixed instalment amount can be provided from loan account.\n" + + "transactionProcessingStrategyId\n" + + "An enumeration that indicates the type of transaction processing strategy to be used. This relates to functionality that is also known as Payment Application Logic.\n" + + "A number of out of the box approaches exist, some are custom to specific MFIs, some are more general and indicate the order in which payments are processed.\n" + + "\n" + + "Refer to the Payment Application Logic / Transaction Processing Strategy section in the appendix for more detailed overview of each available payment application logic provided out of the box.\n" + + "\n" + + "List of current approaches:\n" + + "1 = Mifos style (Similar to Old Mifos)\n" + + "2 = Heavensfamily (Custom MFI approach)\n" + + "3 = Creocore (Custom MFI approach)\n" + + "4 = RBI (India)\n" + + "5 = Principal Interest Penalties Fees Order\n" + + "6 = Interest Principal Penalties Fees Order\n" + + "7 = Early Payment Strategy\n" + + "graceOnPrincipalPayment\n" + + "Optional: Integer - represents the number of repayment periods that grace should apply to the principal component of a repayment period.\n" + + "graceOnInterestPayment\n" + + "Optional: Integer - represents the number of repayment periods that grace should apply to the interest component of a repayment period. Interest is still calculated but offset to later repayment periods.\n" + + "graceOnInterestCharged\n" + + "Optional: Integer - represents the number of repayment periods that should be interest-free.\n" + + "graceOnArrearsAgeing\n" + + "Optional: Integer - Used in Arrears calculation to only take into account loans that are more than graceOnArrearsAgeing days overdue.\n" + + "overdueDaysForNPA\n" + + "Optional: Integer - represents the maximum number of days a Loan may be overdue before being classified as a NPA (non performing asset)\n" + + "accountMovesOutOfNPAOnlyOnArrearsCompletion\n" + + "Optional: Boolean - if provided as true, Loan Account moves out of NPA state only when all arrears are cleared\n" + + "accountingRule\n" + + "Specifies if accounting is enabled for the particular product and the type of the accounting rule to be used Example Values:1=NONE, 2=CASH_BASED, 3=ACCRUAL_PERIODIC, 4=ACCRUAL_UPFRONT\n" + + "isInterestRecalculationEnabled\n" + + "It is a flag, Used to denote whether interest recalculation is enabled or disabled for the particular product\n" + + "daysInYearType\n" + + "Specifies the number of days in a year. \n" + + "Example Values:1=ACTUAL(Actual number of days in year), 360=360 DAYS, 364=364 DAYS(52 WEEKS), 365=365 DAYS\n" + + "daysInMonthType\n" + + "Specifies the number of days in a month. \n" + + "Example Values:1=ACTUAL(Actual number of days in month), 30=30 DAYS\n" + + "interestRecalculationCompoundingMethod\n" + + "Specifies which amount portion should be added to principal for interest recalculation. \n" + + "Example Values:0=NONE(Only on principal), 1=INTEREST(Principal+Interest), 2=FEE(Principal+Fee), 3=FEE And INTEREST (Principal+Fee+Interest)\n" + + "rescheduleStrategyMethod\n" + + "Specifies what action should perform on loan repayment schedule for advance payments. \n" + + "Example Values:1=Reschedule next repayments, 2=Reduce number of installments, 3=Reduce EMI amount\n" + + "recalculationCompoundingFrequencyType\n" + + "Specifies effective date from which the compounding of interest or fee amounts will be considered in recalculation on late payment.\n" + + "Example Values:1=Same as repayment period, 2=Daily, 3=Weekly, 4=Monthly\n" + + "recalculationCompoundingFrequencyInterval\n" + + "Specifies compounding frequency interval for interest recalculation.\n" + + "recalculationCompoundingFrequencyDate\n" + + "Specifies compounding frequency start date for interest recalculation.\n" + + "recalculationRestFrequencyType\n" + + "Specifies effective date from which the late or advanced payment amounts will be considered in recalculation.\n" + + "Example Values:1=Same as repayment period, 2=Daily, 3=Weekly, 4=Monthly\n" + + "recalculationRestFrequencyInterval\n" + + "Specifies rest frequency interval for interest recalculation.\n" + + "recalculationRestFrequencyDate\n" + + "Specifies rest frequency start date for interest recalculation.\n" + + "preClosureInterestCalculationStrategy\n" + + "Specifies applicable days for interest calculation on pre closure of a loan.\n" + + "Example Values:1=Calculate till pre closure date, 2=Calculate till rest frequency date\n" + + "isArrearsBasedOnOriginalSchedule\n" + + "If Specified as true, arrears will be identified based on original schedule.\n" + + "allowAttributeOverrides\n" + + "Specifies if select attributes may be overridden for individual loan accounts.") +}) public class SelfLoanProductsApiResource { private final LoanProductsApiResource loanProductsApiResource; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/registration/api/SelfServiceRegistrationApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/registration/api/SelfServiceRegistrationApiResource.java index 64dcfa9be..832d15efe 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/registration/api/SelfServiceRegistrationApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/registration/api/SelfServiceRegistrationApiResource.java @@ -33,10 +33,15 @@ import org.apache.fineract.useradministration.domain.AppUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; +import io.swagger.annotations.*; @Path("/self/registration") @Component @Scope("singleton") +@Api(tags = {"Self Service Registration"}) +@SwaggerDefinition(tags = { + @Tag(name = "Self Service Registration", description = "") +}) public class SelfServiceRegistrationApiResource { private final SelfServiceRegistrationWritePlatformService selfServiceRegistrationWritePlatformService; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/runreport/SelfRunReportApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/runreport/SelfRunReportApiResource.java index 941aff04f..f0bfd8994 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/runreport/SelfRunReportApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/runreport/SelfRunReportApiResource.java @@ -33,10 +33,24 @@ import org.apache.fineract.infrastructure.security.service.PlatformSecurityConte import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; +import io.swagger.annotations.*; @Path("/self/runreports") @Component @Scope("singleton") +@Api(tags = {"Self Run Report "}) +@SwaggerDefinition(tags = { + @Tag(name = "Self Run Report", description = "This resource allows you to run and receive output from pre-defined Apache Fineract reports.\n" + + "\n" + + "The default output is a JSON formatted \"Generic Resultset\". The Generic Resultset contains Column Heading as well as Data information. However, you can export to CSV format by simply adding \"&exportCSV=true\" to the end of your URL.\n" + + "\n" + + "If Pentaho reports have been pre-defined, they can also be run through this resource. Pentaho reports can return HTML, PDF or CSV formats.\n" + + "\n" + + "The Apache Fineract reference application uses a JQuery plugin called stretchyreporting which, itself, uses this reports resource to provide a pretty flexible reporting User Interface (UI).\n" + + "\n" + + "ARGUMENTS\n" + + "R_'parameter names' ... optional, No defaults The number and names of the parameters depend on the specific report and how it has been configured. R_officeId is an example parameter name.Note: the prefix R_ stands for ReportinggenericResultSetoptional, defaults to true If 'true' an optimised JSON format is returned suitable for tabular display of data. If 'false' a simple JSON format is returned. parameterType optional, The only valid value is 'true'. If any other value is provided the argument will be ignored Determines whether the request looks in the list of reports or the list of parameters for its data. Doesn't apply to Pentaho reports.exportCSV optional, The only valid value is 'true'. If any other value is provided the argument will be ignored Output will be delivered as a CSV file instead of JSON. Doesn't apply to Pentaho reports.output-type optional, Defaults to HTML. Valid Values are HTML, XLS, XSLX, CSV and PDF for html, Excel, Excel 2007+, CSV and PDF formats respectively.Only applies to Pentaho reports.locale optional Any valid locale Ex: en_US, en_IN, fr_FR etcOnly applies to Pentaho reports.") +}) public class SelfRunReportApiResource { private final PlatformSecurityContext context; @@ -52,7 +66,10 @@ public class SelfRunReportApiResource { @Path("{reportName}") @Consumes({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON, "text/csv", "application/vnd.ms-excel", "application/pdf", "text/html" }) - public Response runReport(@PathParam("reportName") final String reportName, @Context final UriInfo uriInfo) { + @ApiOperation(value = "Running A Report", httpMethod = "GET", notes = "" + "Example Requests:\n" + "\n" + "\n" + "self/runreports/Client%20Details?R_officeId=1" + "\n" + "\n" + "\n" + + "self/runreports/Client%20Details?R_officeId=1&exportCSV=true") + @ApiResponses({@ApiResponse(code = 200, message = "OK", response = SelfRunReportApiResourceSwagger.GetRunReportResponse.class)}) + public Response runReport(@PathParam("reportName") @ApiParam(value = "reportName") final String reportName, @Context final UriInfo uriInfo) { this.context.authenticatedUser(); final boolean isSelfServiceUserReport = true; return this.runreportsApiResource.runReport(reportName, uriInfo, isSelfServiceUserReport); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/runreport/SelfRunReportApiResourceSwagger.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/runreport/SelfRunReportApiResourceSwagger.java new file mode 100644 index 000000000..b2eadbd55 --- /dev/null +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/runreport/SelfRunReportApiResourceSwagger.java @@ -0,0 +1,66 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.fineract.portfolio.self.runreport; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.util.Set; +import java.util.List; +import java.time.LocalDate; + + +/** + * Created by Kang Breder on 07/08/19. + */ + +final class SelfRunReportApiResourceSwagger { + private SelfRunReportApiResourceSwagger() { + } + @ApiModel(value = "GetRunReportResponse") + public final static class GetRunReportResponse { + private GetRunReportResponse() { + } + final class GetRunReportColumnHeaders { + private GetRunReportColumnHeaders() { + } + @ApiModelProperty(example = "Office/Branch") + public String columnName; + @ApiModelProperty(example = "VARCHAR") + public String columnType; + @ApiModelProperty(example = "false") + public Boolean isColumnNullable; + @ApiModelProperty(example = "false") + public Boolean isColumnPrimaryKey; + @ApiModelProperty(example = "[]") + public String columnValues; + + } + final class GetPocketData { + private GetPocketData() { + } + + @ApiModelProperty(example = "[\"Head Office\", \"000000001\", \"John Doe\" \"2017-03-04\", \"786YYH7\"") + public String row; + } + public Set columnHeaders; + public Set data; + + } + } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/savings/api/SelfSavingsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/savings/api/SelfSavingsApiResource.java index e92271421..34d1427ef 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/savings/api/SelfSavingsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/savings/api/SelfSavingsApiResource.java @@ -52,7 +52,10 @@ import org.springframework.stereotype.Component; @Path("/self/savingsaccounts") @Component @Scope("singleton") -@Api(value = "Self Savings Account", description = "") +@Api(tags = {"Self Savings Account"}) +@SwaggerDefinition(tags = { + @Tag(name = "Self Savings Account", description = "") +}) public class SelfSavingsApiResource { private final PlatformSecurityContext context; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/security/api/SelfAuthenticationApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/security/api/SelfAuthenticationApiResource.java index d1bd98abf..58e337890 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/security/api/SelfAuthenticationApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/security/api/SelfAuthenticationApiResource.java @@ -29,14 +29,15 @@ import javax.ws.rs.Consumes; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; @Component @Scope("singleton") @Profile("basicauth") @Path("/self/authentication") -@Api(value = "Self Authentication", description = "") +@SwaggerDefinition(tags = { + @Tag(name = "Self Authentication", description = "Authenticates the credentials provided and returns the set roles and permissions allowed") +}) public class SelfAuthenticationApiResource { private final AuthenticationApiResource authenticationApiResource; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/security/api/SelfUserApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/security/api/SelfUserApiResource.java index 2632c63cd..cd93daaad 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/security/api/SelfUserApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/security/api/SelfUserApiResource.java @@ -40,7 +40,10 @@ import java.util.Set; @Path("/self/user") @Component -@Api(value = "Self User", description = "") +@Api(tags = {"Self User"}) +@SwaggerDefinition(tags = { + @Tag(name = "Self User", description = "") +}) public class SelfUserApiResource { private final UsersApiResource usersApiResource; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/security/api/SelfUserDetailsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/security/api/SelfUserDetailsApiResource.java index 4d5ad19c6..e2158d365 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/security/api/SelfUserDetailsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/security/api/SelfUserDetailsApiResource.java @@ -35,7 +35,10 @@ import javax.ws.rs.core.MediaType; @Component @Profile("oauth") @Scope("singleton") -@Api(value = "Self User Details", description = "") +@Api(tags = {"Self User Details"}) +@SwaggerDefinition(tags = { + @Tag(name = "Self User Details", description = "") +}) public class SelfUserDetailsApiResource { private final UserDetailsApiResource userDetailsApiResource; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/shareaccounts/api/SelfShareAccountsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/shareaccounts/api/SelfShareAccountsApiResource.java index 11adb1121..fe47677ff 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/shareaccounts/api/SelfShareAccountsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/shareaccounts/api/SelfShareAccountsApiResource.java @@ -56,10 +56,16 @@ import org.apache.fineract.useradministration.domain.AppUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; +import io.swagger.annotations.*; + @Path("/self/shareaccounts") @Component @Scope("singleton") +@Api(tags = {"Self Share Accounts"}) +@SwaggerDefinition(tags = { + @Tag(name = "Self Share Accounts", description = "") +}) public class SelfShareAccountsApiResource { private final PlatformSecurityContext context; @@ -101,7 +107,12 @@ public class SelfShareAccountsApiResource { @Path("template") @Consumes({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON }) - public String template(@QueryParam("clientId") final Long clientId, @QueryParam("productId") final Long productId, + @ApiOperation(value = "Retrieve Share Account Template", httpMethod = "GET", notes = "This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of:\n" + + "Field Defaults\n" + "\n"+ + "Allowed Value Lists\n" + "\n"+ "\n"+ "Arguments\n"+ "\n"+ "clientId:Integer mandatory\n"+ "productId:Integer optionalIf entered, productId, productName and selectedProduct fields are returned.\n"+ "Example Requests:\n" + "\n" + "self/shareaccounts/template?clientId=14\n" + "\n" + + "self/shareaccounts/template?clientId=14&productId=3\n") + @ApiResponses({@ApiResponse(code = 200, message = "OK", responseContainer = "List", response = SelfShareAccountsApiResourceSwagger.GetShareAccountsClientIdProductIdResponse.class)}) + public String template(@QueryParam("clientId") @ApiParam("clientId") final Long clientId, @QueryParam("productId") @ApiParam("productId") final Long productId, @Context final UriInfo uriInfo) { validateAppuserClientsMapping(clientId); @@ -126,6 +137,8 @@ public class SelfShareAccountsApiResource { @POST @Consumes({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON }) + @ApiOperation(value = "Submit new share application", httpMethod = "POST", notes = "Mandatory fields:\n" + "\n" + "clientId, productId, submittedDate, savingsAccountId, requestedShares, applicationDate\n" + "\n" + "\n" + "Optional Fields\n" + "\n" + "accountNo, externalId\n" + "\n" + "\n" + "Inherited from Product (if not provided)\n" + "\n" + "minimumActivePeriod, minimumActivePeriodFrequencyType, lockinPeriodFrequency, lockinPeriodFrequencyType.") + @ApiResponses({@ApiResponse(code = 200, message = "OK", responseContainer = "List", response = SelfShareAccountsApiResourceSwagger.PostNewShareApplicationResponse.class)}) public String createAccount(final String apiRequestBodyAsJson) { HashMap attr = this.selfShareAccountsDataValidator .validateShareAccountApplication(apiRequestBodyAsJson); @@ -139,7 +152,11 @@ public class SelfShareAccountsApiResource { @Path("{accountId}") @Consumes({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON }) - public String retrieveShareAccount(@PathParam("accountId") final Long accountId, @Context final UriInfo uriInfo) { + /* + @ApiOperation(value = "Retrieve a share application/account", httpMethod = "GET", notes = "\n" + + "\n" + "\n" + "Example Requests:\n" + "\n" + "self/shareaccounts/12\n") + @ApiResponses({@ApiResponse(code = 200, message = "OK", responseContainer = "List", response SelfShareAccountsApiResourceSwagger.GetShareAccountResponse.class)})*/ + public String retrieveShareAccount(@PathParam("accountId") final Long accountId, @Context final UriInfo uriInfo) { validateAppuserShareAccountMapping(accountId); final boolean includeTemplate = false; AccountData accountData = this.readPlatformService.retrieveOne(accountId, includeTemplate); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/shareaccounts/api/SelfShareAccountsApiResourceSwagger.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/shareaccounts/api/SelfShareAccountsApiResourceSwagger.java new file mode 100644 index 000000000..9a2177f68 --- /dev/null +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/shareaccounts/api/SelfShareAccountsApiResourceSwagger.java @@ -0,0 +1,656 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.fineract.portfolio.self.shareaccounts.api; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.time.LocalDate; +import java.util.List; +import java.util.Set; + + +/** + * Created by Kang Breder on 05/08/19. + */ + +final class SelfShareAccountsApiResourceSwagger { + private SelfShareAccountsApiResourceSwagger(){ + + } + + @ApiModel(value = "GetShareAccountsClientIdResponse") + public final static class GetShareAccountsClientIdResponse { + private GetShareAccountsClientIdResponse() { + } + + final class GetShareAccountsProductOptions { + private GetShareAccountsProductOptions() { + } + + @ApiModelProperty(example = "3") + public Integer id; + @ApiModelProperty(example = "SP") + public String name; + @ApiModelProperty(example = "SP") + public String shortName; + @ApiModelProperty(example = "1000") + public Integer totalShares; + } + + final class GetShareAccountsChargeOptions { + private GetShareAccountsChargeOptions() { + } + + final class GetShareAccountsCurrency { + private GetShareAccountsCurrency() { + } + + @ApiModelProperty(example = "USD") + public String code; + @ApiModelProperty(example = "US Dollar") + public String name; + @ApiModelProperty(example = "2") + public Integer decimalPlaces; + @ApiModelProperty(example = "$") + public String displaySymbol; + @ApiModelProperty(example = "currency.USD") + public String nameCode; + @ApiModelProperty(example = "US Dollar ($)") + public String displayLabel; + + } + + final class GetShareAccountsChargeTimeType { + private GetShareAccountsChargeTimeType() { + } + + @ApiModelProperty(example = "14") + public Integer id; + @ApiModelProperty(example = "chargeTimeType.sharespurchase") + public String code; + @ApiModelProperty(example = "Share purchase") + public String value; + } + + final class GetShareAccountsChargeAppliesTo { + private GetShareAccountsChargeAppliesTo() { + } + + @ApiModelProperty(example = "4") + public Integer id; + @ApiModelProperty(example = "chargeAppliesTo.shares") + public String code; + @ApiModelProperty(example = "Shares") + public String value; + } + + final class GetShareAccountsChargeCalculationType { + private GetShareAccountsChargeCalculationType() { + } + + @ApiModelProperty(example = "1") + public Integer id; + @ApiModelProperty(example = "chargeCalculationType.flat") + public String code; + @ApiModelProperty(example = "Flat") + public String value; + } + + final class GetShareAccountsChargePaymentMode { + private GetShareAccountsChargePaymentMode() { + } + + @ApiModelProperty(example = "0") + public Integer id; + @ApiModelProperty(example = "chargepaymentmode.regular") + public String code; + @ApiModelProperty(example = "Regular") + public String value; + } + + @ApiModelProperty(example = "2") + public Integer id; + @ApiModelProperty(example = "Activation fee") + public String name; + @ApiModelProperty(example = "true") + public Boolean active; + @ApiModelProperty(example = "false") + public Boolean penalty; + public GetShareAccountsCurrency currency; + @ApiModelProperty(example = "2") + public Integer amount; + public GetShareAccountsChargeTimeType chargeTimeType; + public GetShareAccountsChargeAppliesTo chargeAppliesTo; + public GetShareAccountsChargeCalculationType calculationType; + public GetShareAccountsChargePaymentMode paymentMode; + + } + + @ApiModelProperty(example = "14") + public Integer clientId; + public Set productOptions; + public Set chargeOptions; + } + + @ApiModel(value = "GetShareAccountsClientIdProductIdResponse") + public final static class GetShareAccountsClientIdProductIdResponse { + private GetShareAccountsClientIdProductIdResponse() { + } + + final class GetClientIdProductIdProductOptions { + private GetClientIdProductIdProductOptions() { + } + + final class GetShareAccountsClientIdProductIdLockPeriodTypeEnum { + private GetShareAccountsClientIdProductIdLockPeriodTypeEnum() { + } + + @ApiModelProperty(example = "0") + public Integer id; + @ApiModelProperty(example = "shares.lockin.sharePeriodFrequencyType.days") + public String code; + @ApiModelProperty(example = "days") + public String value; + + } + + final class GetShareAccountsClientIdProductIdMinimumActivePeriodForDividendsTypeEnum { + private GetShareAccountsClientIdProductIdMinimumActivePeriodForDividendsTypeEnum() { + } + + @ApiModelProperty(example = "0") + public Integer id; + @ApiModelProperty(example = "shares.minimumactive.sharePeriodFrequencyType.days") + public String code; + @ApiModelProperty(example = "days") + public String value; + + } + + final class GetShareAccountsClientIdProductIdAccountingRule { + private GetShareAccountsClientIdProductIdAccountingRule() { + } + + @ApiModelProperty(example = "2") + public Integer id; + @ApiModelProperty(example = "accountingRuleType.cash") + public String code; + @ApiModelProperty(example = "CASH BASED") + public String value; + + } + + final class GetClientIdProductIdAccountingMappings { + private GetClientIdProductIdAccountingMappings() { + } + + final class GetShareAccountsShareReferenceId { + private GetShareAccountsShareReferenceId() { + } + + @ApiModelProperty(example = "32") + public Integer id; + @ApiModelProperty(example = "Cash in Hand") + public String name; + @ApiModelProperty(example = "20301") + public Integer glCode; + + } + + final class GetShareAccountsIncomeFromFeeAccountId { + private GetShareAccountsIncomeFromFeeAccountId() { + } + + @ApiModelProperty(example = "40") + public Integer id; + @ApiModelProperty(example = "Other Operating Income") + public String name; + @ApiModelProperty(example = "30105") + public Integer glCode; + + } + + final class GetShareAccountsShareEquityId { + private GetShareAccountsShareEquityId() { + } + + @ApiModelProperty(example = "56") + public Integer id; + @ApiModelProperty(example = "Share Equity") + public String name; + @ApiModelProperty(example = "00098") + public Integer glCode; + + } + + final class GetShareAccountsShareSuspenseId { + private GetShareAccountsShareSuspenseId() { + } + + @ApiModelProperty(example = "2") + public Integer id; + @ApiModelProperty(example = "Overpayment Liability") + public String name; + @ApiModelProperty(example = "10200") + public Integer glCode; + + } + + public GetShareAccountsShareReferenceId shareReferenceId; + public GetShareAccountsIncomeFromFeeAccountId incomeFromFeeAccountId; + public GetShareAccountsShareEquityId ShareEquityId; + public GetShareAccountsShareSuspenseId shareSuspenseId; + } + + final class GetClientIdProductIdMinimumActivePeriodFrequencyTypeOptions { + private GetClientIdProductIdMinimumActivePeriodFrequencyTypeOptions() { + } + + @ApiModelProperty(example = "0") + public Integer id; + @ApiModelProperty(example = "shares.lockin.sharePeriodFrequencyType.days") + public String code; + @ApiModelProperty(example = "Days") + public Integer value; + + } + + final class GetClientIdProductIdLockinPeriodFrequencyTypeOptions { + private GetClientIdProductIdLockinPeriodFrequencyTypeOptions() { + } + + @ApiModelProperty(example = "0") + public Integer id; + @ApiModelProperty(example = "shares.lockin.sharePeriodFrequencyType.days") + public String code; + @ApiModelProperty(example = "Days") + public Integer value; + + } + + final class GetAccountingMappingOptions { + private GetAccountingMappingOptions() { + } + + final class GetAccountingMappingLiabilityAccountOptions { + private GetAccountingMappingLiabilityAccountOptions() { + } + + final class GetLiabilityAccountType { + private GetLiabilityAccountType() { + } + + @ApiModelProperty(example = "2") + public Integer id; + @ApiModelProperty(example = "accountType.liability") + public String code; + @ApiModelProperty(example = "LIABILITY") + public Integer value; + + } + + final class GetLiabilityAccountUsage { + private GetLiabilityAccountUsage() { + } + + @ApiModelProperty(example = "1") + public Integer id; + @ApiModelProperty(example = "accountUsage.detail") + public String code; + @ApiModelProperty(example = "DETAIL") + public Integer value; + + } + + final class GetLiabilityAccountTagId { + private GetLiabilityAccountTagId() { + } + + @ApiModelProperty(example = "0") + public Integer id; + @ApiModelProperty(example = "false") + public Boolean active; + @ApiModelProperty(example = "false") + public Boolean mandatory; + + } + + @ApiModelProperty(example = "30") + public Integer id; + @ApiModelProperty(example = "Recurring Deposits") + public String name; + @ApiModelProperty(example = "1") + public Integer parentId; + @ApiModelProperty(example = "10104") + public Integer glCode; + @ApiModelProperty(example = "false") + public Boolean disabled; + @ApiModelProperty(example = "true") + public Boolean manualEntriesAllowed; + public GetLiabilityAccountType type; + public GetLiabilityAccountUsage usage; + @ApiModelProperty(example = " ....Recurring Deposits") + public String nameDecorated; + public GetLiabilityAccountTagId tagId; + + } + + final class GetAccountingMappingAssetAccountOptions { + private GetAccountingMappingAssetAccountOptions() { + } + + final class GetAssetAccountType { + private GetAssetAccountType() { + } + + @ApiModelProperty(example = "1") + public Integer id; + @ApiModelProperty(example = "accountType.asset") + public String code; + @ApiModelProperty(example = "ASSET") + public Integer value; + + } + + final class GetAssetAccountUsage { + private GetAssetAccountUsage() { + } + + @ApiModelProperty(example = "1") + public Integer id; + @ApiModelProperty(example = "accountUsage.detail") + public String code; + @ApiModelProperty(example = "DETAIL") + public Integer value; + + } + + final class GetAssetAccountTagId { + private GetAssetAccountTagId() { + } + + @ApiModelProperty(example = "0") + public Integer id; + @ApiModelProperty(example = "false") + public Boolean active; + @ApiModelProperty(example = "false") + public Boolean mandatory; + + } + + @ApiModelProperty(example = "31") + public Integer id; + @ApiModelProperty(example = "Furniture and Fixtures") + public String name; + @ApiModelProperty(example = "8") + public Integer parentId; + @ApiModelProperty(example = "20101") + public Integer glCode; + @ApiModelProperty(example = "false") + public Boolean disabled; + @ApiModelProperty(example = "true") + public Boolean manualEntriesAllowed; + public GetAssetAccountType type; + public GetAssetAccountUsage usage; + @ApiModelProperty(example = " ....Furniture and Fixtures") + public String nameDecorated; + public GetAssetAccountTagId tagId; + + } + + final class GetAccountingMappingIncomeAccountOptions { + private GetAccountingMappingIncomeAccountOptions() { + } + + final class GetIncomeAccountType { + private GetIncomeAccountType() { + } + + @ApiModelProperty(example = "4") + public Integer id; + @ApiModelProperty(example = "accountType.income") + public String code; + @ApiModelProperty(example = "INCOME") + public Integer value; + + } + + final class GetIncomeAccountUsage { + private GetIncomeAccountUsage() { + } + + @ApiModelProperty(example = "1") + public Integer id; + @ApiModelProperty(example = "accountUsage.detail") + public String code; + @ApiModelProperty(example = "DETAIL") + public Integer value; + + } + + final class GetIncomeAccountTagId { + private GetIncomeAccountTagId() { + } + + @ApiModelProperty(example = "0") + public Integer id; + @ApiModelProperty(example = "false") + public Boolean active; + @ApiModelProperty(example = "false") + public Boolean mandatory; + + } + + @ApiModelProperty(example = "54") + public Integer id; + @ApiModelProperty(example = "Loan Recovery (Temp)") + public String name; + @ApiModelProperty(example = "220002-Temp") + public Integer glCode; + @ApiModelProperty(example = "false") + public Boolean disabled; + @ApiModelProperty(example = "true") + public Boolean manualEntriesAllowed; + public GetIncomeAccountType type; + public GetIncomeAccountUsage usage; + @ApiModelProperty(example = "Temporary account to track income from Loan recovery") + public String Description; + @ApiModelProperty(example = "Loan Recovery (Temp)") + public String nameDecorated; + public GetIncomeAccountTagId tagId; + } + + final class GetShareAccountAccountingMappingEquityAccountOptions { + private GetShareAccountAccountingMappingEquityAccountOptions() { + } + + final class GetShareAccountsEquityAccountType { + private GetShareAccountsEquityAccountType() { + } + + @ApiModelProperty(example = "3") + public Integer id; + @ApiModelProperty(example = "accountType.equity") + public String code; + @ApiModelProperty(example = "EQUITY") + public Integer value; + + } + + final class GetShareAccountsEquityAccountUsage { + private GetShareAccountsEquityAccountUsage() { + } + + @ApiModelProperty(example = "1") + public Integer id; + @ApiModelProperty(example = "accountUsage.detail") + public String code; + @ApiModelProperty(example = "DETAIL") + public Integer value; + + } + + final class GetShareAccountsEquityAccountTagId { + private GetShareAccountsEquityAccountTagId() { + } + + @ApiModelProperty(example = "0") + public Integer id; + @ApiModelProperty(example = "false") + public Boolean active; + @ApiModelProperty(example = "false") + public Boolean mandatory; + + } + + @ApiModelProperty(example = "56") + public Integer id; + @ApiModelProperty(example = "Share Equity") + public String name; + @ApiModelProperty(example = "25") + public Integer parentId; + @ApiModelProperty(example = "00098") + public Integer glCode; + @ApiModelProperty(example = "false") + public Boolean disabled; + @ApiModelProperty(example = "true") + public Boolean manualEntriesAllowed; + public GetShareAccountsEquityAccountType type; + public GetShareAccountsEquityAccountUsage usage; + @ApiModelProperty(example = "....Share Equity") + public String nameDecorated; + public GetShareAccountsEquityAccountTagId tagId; + + } + + } + + @ApiModelProperty(example = "3") + public Integer id; + @ApiModelProperty(example = "SP") + public String name; + @ApiModelProperty(example = "SP") + public String shortName; + @ApiModelProperty(example = "SP1") + public String description; + public GetShareAccountsClientIdResponse.GetShareAccountsChargeOptions.GetShareAccountsCurrency currency; + @ApiModelProperty(example = "1000") + public Integer totalShares; + @ApiModelProperty(example = "900") + public Integer totalSharesIssued; + @ApiModelProperty(example = "1") + public Integer unitPrice; + @ApiModelProperty(example = "900") + public Integer shareCapital; + @ApiModelProperty(example = "8") + public Integer minimumShares; + @ApiModelProperty(example = "500") + public Integer norminalShares; + @ApiModelProperty(example = "500") + public Integer maximumShares; + @ApiModelProperty(example = "[]") + public String marketPrice; + @ApiModelProperty(example = "[]") + public String charges; + @ApiModelProperty(example = "False") + public Boolean allowDividendCalculationForInactiveClients; + @ApiModelProperty(example = "50") + public Integer lockinPeriod; + public GetShareAccountsClientIdProductIdLockPeriodTypeEnum lockinPeriodEnum; + @ApiModelProperty(example = "10") + public Integer minimumActivePeriod; + public GetShareAccountsClientIdProductIdMinimumActivePeriodForDividendsTypeEnum minimumActivePeriodForDividendsTypeEnum; + public GetShareAccountsClientIdProductIdAccountingRule accountingRule; + public GetClientIdProductIdAccountingMappings accountingMappings; + public GetShareAccountsClientIdResponse.GetShareAccountsChargeOptions.GetShareAccountsCurrency currencyOptions; + public GetShareAccountsClientIdResponse.GetShareAccountsChargeOptions chargeOptions; + public GetClientIdProductIdMinimumActivePeriodFrequencyTypeOptions minimumActivePeriodFrequencyTypeOptions; + public GetClientIdProductIdLockinPeriodFrequencyTypeOptions lockinPeriodFrequencyTypeOptions; + public GetAccountingMappingOptions accountingMappingOptions; + } + + final class GetClientIdProductIdChargeOptions { + private GetClientIdProductIdChargeOptions() { + } + + public GetShareAccountsClientIdResponse.GetShareAccountsChargeOptions chargeOptions; + } + + public Set productOptions; + public Set chargeOptions; + } + + @ApiModel(value = "PostNewShareApplicationRequest") + public final static class PostNewShareApplicationRequest { + private PostNewShareApplicationRequest() { + } + + final class GetShareAccountsCharges { + private GetShareAccountsCharges() { + } + + @ApiModelProperty(example = "2") + public Integer chargeId; + @ApiModelProperty(example = "2") + public Integer amount; + } + + @ApiModelProperty(example = "3") + public Integer productId; + @ApiModelProperty(example = "1") + public Integer unitPrice; + @ApiModelProperty(example = "500") + public Integer requestedShares; + @ApiModelProperty(example = "31 July 2018") + public String submittedDate; + @ApiModelProperty(example = "2") + public Integer savingsAccountId; + @ApiModelProperty(example = "31 July 2018") + public String applicationDate; + @ApiModelProperty(example = "en") + public String locale; + @ApiModelProperty(example = "dd MMMM YYYY") + public String dateFormat; + public GetShareAccountsCharges charges; + @ApiModelProperty(example = "14") + public Integer clientId; + } + + @ApiModel(value = "PostNewShareApplicationResponse") + public final static class PostNewShareApplicationResponse { + private PostNewShareApplicationResponse() { + } + + @ApiModelProperty(example = "12") + public Integer resourceId; + } +} + + + + + + + + + + + diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/spm/api/SelfScorecardApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/spm/api/SelfScorecardApiResource.java index b097e10b4..70ea371d1 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/spm/api/SelfScorecardApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/spm/api/SelfScorecardApiResource.java @@ -38,11 +38,16 @@ import org.apache.fineract.useradministration.domain.AppUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; +import io.swagger.annotations.*; import org.springframework.transaction.annotation.Transactional; @Path("/self/surveys/scorecards") @Component @Scope("singleton") +@Api(tags = {"Self Score Card"}) +@SwaggerDefinition(tags = { + @Tag(name = "Self Score Card", description = "") +}) public class SelfScorecardApiResource { private final PlatformSecurityContext context; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/spm/api/SelfSpmApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/spm/api/SelfSpmApiResource.java index 5e2f5003c..f576c0f98 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/spm/api/SelfSpmApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/spm/api/SelfSpmApiResource.java @@ -33,11 +33,16 @@ import org.apache.fineract.spm.data.SurveyData; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; +import io.swagger.annotations.*; import org.springframework.transaction.annotation.Transactional; @Path("/self/surveys") @Component @Scope("singleton") +@Api(tags = {"Self Spm"}) +@SwaggerDefinition(tags = { + @Tag(name = "Self Spm", description = "") +}) public class SelfSpmApiResource { private final PlatformSecurityContext securityContext; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/api/ShareDividendApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/api/ShareDividendApiResource.java index 41eba0e3a..829acb30b 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/api/ShareDividendApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/api/ShareDividendApiResource.java @@ -46,10 +46,15 @@ import org.apache.fineract.portfolio.shareproducts.service.ShareProductDividendR import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; +import io.swagger.annotations.*; @Path("/shareproduct/{productId}/dividend") @Component @Scope("singleton") +@Api(tags = {"Self Dividend"}) +@SwaggerDefinition(tags = { + @Tag(name = "Self Dividend", description = "") +}) public class ShareDividendApiResource { private final DefaultToApiJsonSerializer toApiJsonSerializer; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/api/TaxComponentApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/api/TaxComponentApiResource.java index d22cfa76d..5f2d35f26 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/api/TaxComponentApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/api/TaxComponentApiResource.java @@ -42,7 +42,10 @@ import java.util.Collection; @Path("/taxes/component") @Component @Scope("singleton") -@Api(value = "Tax Components", description = "This defines the Tax Components") +@Api(tags = {"Tax Components"}) +@SwaggerDefinition(tags = { + @Tag(name = "Tax Components", description = "This defines the Tax Components") +}) public class TaxComponentApiResource { private final String resourceNameForPermissions = "TAXCOMPONENT"; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/api/TaxGroupApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/api/TaxGroupApiResource.java index 5c66f74b6..c286cea1a 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/api/TaxGroupApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/api/TaxGroupApiResource.java @@ -42,7 +42,10 @@ import java.util.Collection; @Path("/taxes/group") @Component @Scope("singleton") -@Api(value = "Tax Group", description = "This defines the Tax Group") +@Api(tags = {"Tax Group"}) +@SwaggerDefinition(tags = { + @Tag(name = "Tax Group", description = "This defines the Tax Group") +}) public class TaxGroupApiResource { private final String resourceNameForPermissions = "TAXGROUP"; diff --git a/fineract-provider/src/main/java/org/apache/fineract/spm/api/LookupTableApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/spm/api/LookupTableApiResource.java index 59442273b..bb3589df4 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/spm/api/LookupTableApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/spm/api/LookupTableApiResource.java @@ -42,7 +42,10 @@ import java.util.List; @Path("/surveys/{surveyId}/lookuptables") @Component @Scope("singleton") -@Api(value = "SPM API - LookUp Table", description = "The Apache Fineract SPM API provides the ability to create custom surveys to collect social performance measurentment data or any additional questionnaire a financial institute want to collect.") +@Api(tags = {"SPM API - LookUp Table"}) +@SwaggerDefinition(tags = { + @Tag(name = "SPM API - LookUp Table", description = "The Apache Fineract SPM API provides the ability to create custom surveys to collect social performance measurentment data or any additional questionnaire a financial institute want to collect.") +}) public class LookupTableApiResource { private final PlatformSecurityContext securityContext; diff --git a/fineract-provider/src/main/java/org/apache/fineract/spm/api/ScorecardApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/spm/api/ScorecardApiResource.java index 8c62710c7..b6c5eb5f8 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/spm/api/ScorecardApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/spm/api/ScorecardApiResource.java @@ -48,7 +48,10 @@ import org.springframework.transaction.annotation.Transactional; @Path("/surveys/scorecards") @Component @Scope("singleton") -@Api(value = "SPM - Scorecards", description = " ") +@Api(tags = {"Score Card"}) +@SwaggerDefinition(tags = { + @Tag(name = "Score Card", description = "") +}) public class ScorecardApiResource { private final PlatformSecurityContext securityContext; diff --git a/fineract-provider/src/main/java/org/apache/fineract/spm/api/SpmApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/spm/api/SpmApiResource.java index 8b8244f6b..3fdf45822 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/spm/api/SpmApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/spm/api/SpmApiResource.java @@ -51,7 +51,10 @@ import com.google.gson.Gson; @Path("/surveys") @Component @Scope("singleton") -@Api(value = "SPM - Serveys", description = "") +@Api(tags = {"Spm-Surveys"}) +@SwaggerDefinition(tags = { + @Tag(name = "Spm-Surveys", description = "") +}) public class SpmApiResource { private final PlatformSecurityContext securityContext; diff --git a/fineract-provider/src/main/java/org/apache/fineract/template/api/TemplatesApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/template/api/TemplatesApiResource.java index 5dd799cef..9f2101549 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/template/api/TemplatesApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/template/api/TemplatesApiResource.java @@ -68,7 +68,10 @@ import org.springframework.stereotype.Component; @Produces({ MediaType.APPLICATION_JSON }) @Component @Scope("singleton") -@Api(value = "User Generated Documents", description = "User Generated Documents(alternatively, Templates) are used for end-user features such as custom user defined document generation (AKA UGD). They are based on {{ moustache }} templates. Think of them as a sort of built-in \"mail merge\" functionality.\n" + "\n" + "User Generated Documents (and other types of templates) can aggregate data from several Apache Fineract back-end API calls via mappers. Mappers can even access non-Apache Fineract REST services from other servers. UGDs can render such data in tables, show images, etc. TBD: Please have a look at some of the Example UGDs included in Apache Fineract (or the Wiki page, for now.).\n" + "\n" + "UGDs can be assigned to an entity like client or loan and be of a type like Document or SMS. The entity and type of a UGD is only there for the convenience of user agents (UIs), in order to know where to show UGDs for the user (i.e. which tab). The Template Engine back-end runner does not actually need this metadata.") +@Api(tags = {"User Generated Documents"}) +@SwaggerDefinition(tags = { + @Tag(name = "User Generated Documents", description = "User Generated Documents(alternatively, Templates) are used for end-user features such as custom user defined document generation (AKA UGD). They are based on {{ moustache }} templates. Think of them as a sort of built-in \"mail merge\" functionality.\n" + "\n" + "User Generated Documents (and other types of templates) can aggregate data from several Apache Fineract back-end API calls via mappers. Mappers can even access non-Apache Fineract REST services from other servers. UGDs can render such data in tables, show images, etc. TBD: Please have a look at some of the Example UGDs included in Apache Fineract (or the Wiki page, for now.).\n" + "\n" + "UGDs can be assigned to an entity like client or loan and be of a type like Document or SMS. The entity and type of a UGD is only there for the convenience of user agents (UIs), in order to know where to show UGDs for the user (i.e. which tab). The Template Engine back-end runner does not actually need this metadata.") +}) public class TemplatesApiResource { private final Set RESPONSE_TEMPLATES_DATA_PARAMETERS = new HashSet<>(Arrays.asList("id")); diff --git a/fineract-provider/src/main/java/org/apache/fineract/useradministration/api/PasswordPreferencesApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/useradministration/api/PasswordPreferencesApiResource.java index c0405d340..51bc76ded 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/useradministration/api/PasswordPreferencesApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/useradministration/api/PasswordPreferencesApiResource.java @@ -47,7 +47,10 @@ import org.springframework.stereotype.Component; @Path("/" + PasswordPreferencesApiConstants.RESOURCE_NAME) @Component @Scope("singleton") -@Api(value = "Password preferences", description = "This API enables management of password policy for user administration.\n" + "\n" + "There is no Apache Fineract functionality for creating a validation policy. The validation policies come pre-installed.\n" + "\n" + "Validation policies may be updated") +@Api(tags = {"Password preferences"}) +@SwaggerDefinition(tags = { + @Tag(name = "Password preferences", description = "This API enables management of password policy for user administration.\n" + "\n" + "There is no Apache Fineract functionality for creating a validation policy. The validation policies come pre-installed.\n" + "\n" + "Validation policies may be updated") +}) public class PasswordPreferencesApiResource { private final PlatformSecurityContext context; diff --git a/fineract-provider/src/main/java/org/apache/fineract/useradministration/api/PermissionsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/useradministration/api/PermissionsApiResource.java index 8b7502bcb..163ac422b 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/useradministration/api/PermissionsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/useradministration/api/PermissionsApiResource.java @@ -50,7 +50,10 @@ import org.springframework.stereotype.Component; @Path("/permissions") @Component @Scope("singleton") -@Api(value = "Permissions", description = "An API capability to support management of application permissions for user administration.\n" + "\n" + "There is no Apache Fineract functionality for creating or deleting permissions. Permissions come pre-installed.\n" + "\n" + "Permissions are not updated, except in the case of enabling or disabling non-read transactions for Maker Checker functionality") +@Api(tags = {"Permissions"}) +@SwaggerDefinition(tags = { + @Tag(name = "Permissions", description = "An API capability to support management of application permissions for user administration.\n" + "\n" + "There is no Apache Fineract functionality for creating or deleting permissions. Permissions come pre-installed.\n" + "\n" + "Permissions are not updated, except in the case of enabling or disabling non-read transactions for Maker Checker functionality") +}) public class PermissionsApiResource { private final Set RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList("grouping", "code", "entityName", "actionName", diff --git a/fineract-provider/src/main/java/org/apache/fineract/useradministration/api/RolesApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/useradministration/api/RolesApiResource.java index 34a0721d1..d3c6f30ad 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/useradministration/api/RolesApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/useradministration/api/RolesApiResource.java @@ -58,7 +58,10 @@ import org.springframework.stereotype.Component; @Path("/roles") @Component @Scope("singleton") -@Api(value = "Roles", description = "An API capability to support management of application roles for user administration.") +@Api(tags = {"Roles"}) +@SwaggerDefinition(tags = { + @Tag(name = "Roles", description = "An API capability to support management of application roles for user administration.") +}) public class RolesApiResource { /** diff --git a/fineract-provider/src/main/java/org/apache/fineract/useradministration/api/UsersApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/useradministration/api/UsersApiResource.java index 2a249ae3f..e17be2722 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/useradministration/api/UsersApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/useradministration/api/UsersApiResource.java @@ -56,7 +56,10 @@ import org.springframework.stereotype.Component; @Path("/users") @Component @Scope("singleton") -@Api(value = "Users", description = "An API capability to support administration of application users.") +@Api(tags = {"Users"}) +@SwaggerDefinition(tags = { + @Tag(name = "Users", description = "An API capability to support administration of application users.") +}) public class UsersApiResource { /** diff --git a/fineract-provider/src/main/resources/swagger-ui/response.json b/fineract-provider/src/main/resources/swagger-ui/response.json index f4f8d26b5..841c63b70 100644 --- a/fineract-provider/src/main/resources/swagger-ui/response.json +++ b/fineract-provider/src/main/resources/swagger-ui/response.json @@ -14,80 +14,420 @@ "tags": [ { "name": "Periodic Accrual Accounting", - "description": "Periodic Accrual is to accrue the loan income till the specific date or till batch job scheduled time.\n\n" + "description": "Periodic Accrual is to accrue the loan income till the specific date or till batch job scheduled time.\n" }, { "name": "Accounting Closure", - "description": "An accounting closure indicates that no more journal entries may be logged (or reversed) in the system, either manually or via the portfolio with an entry date prior to the defined closure date\\n\" + \"\\n\" + \"Field Descriptions\\n\" + \"closingDate\\n\" + \"The date for which the accounting closure is defined\\n\" + \"officeId\\n\" + \"The identifer of the branch for which accounting has been closed\\n\" + \"comments\\n\" + \"Description associated with an Accounting closure" + "description": "An accounting closure indicates that no more journal entries may be logged (or reversed) in the system, either manually or via the portfolio with an entry date prior to the defined closure date\n\nField Descriptions\nclosingDate\nThe date for which the accounting closure is defined\nofficeId\nThe identifer of the branch for which accounting has been closed\ncomments\nDescription associated with an Accounting closure" }, { "name": "Mapping Financial Activities to Accounts", - "description": "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\\n\" + \"\\n\" +\"\\nField Descriptions\\n\" +\"financialActivityId\\n\" +\"The identifier of the Financial Activity\\n\" +\"glAccountId\\n\" +\"The identifier of a GL Account ( Ledger Account) which shall be used as the default account for the selected Financial Activity" + "description": "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\n\nField Descriptions\nfinancialActivityId\nThe identifier of the Financial Activity\nglAccountId\nThe identifier of a GL Account ( Ledger Account) which shall be used as the default account for the selected Financial Activity" }, { "name": "General Ledger Account", - "description": "Ledger accounts represent an Individual account within an Organizations Chart Of Accounts(COA) and are assigned a name and unique number by which they can be identified. \\n\" + \"All transactions relating to a company's assets, liabilities, owners' equity, revenue and expenses are recorded against these accounts" + "description": "Ledger accounts represent an Individual account within an Organizations Chart Of Accounts(COA) and are assigned a name and unique number by which they can be identified. \nAll transactions relating to a company's assets, liabilities, owners' equity, revenue and expenses are recorded against these accounts" }, { "name": "Journal Entries", - "description": "A journal entry refers to the logging of transactions against general ledger accounts. A journal entry may consist of several line items, each of which is either a \\\"debit\\\" or a \\\"credit\\\". The total amount of the debits must equal the total amount of the credits or the journal entry is said to be \\\"unbalanced\\\" \\n\" + \"\\n\" + \"A journal entry directly changes the account balances on the general ledger" + "description": "A journal entry refers to the logging of transactions against general ledger accounts. A journal entry may consist of several line items, each of which is either a \"debit\" or a \"credit\". The total amount of the debits must equal the total amount of the credits or the journal entry is said to be \"unbalanced\" \n\nA journal entry directly changes the account balances on the general ledger" }, { "name": "Provisioning Entries", - "description": "This defines the Provisioning Entries for all active loan products\\n\" + \"\\n\" + \"Field Descriptions\\n\" + \"date\\n\" + \"Date on which day provisioning entries should be created\\n\" + \"createjournalentries\\n\" + \"Boolean variable whether to add journal entries for generated provisioning entries\\n" + "description": "This defines the Provisioning Entries for all active loan products\n\nField Descriptions\ndate\nDate on which day provisioning entries should be created\ncreatejournalentries\nBoolean variable whether to add journal entries for generated provisioning entries\n" }, { "name": "Accounting Rules", - "description": "It is typical scenario in MFI's that non accountants pass journal entries on a regular basis. For Ex: A branch office might deposit their entire cash at hand to their Bank account at the end of a working day. The branch office users might not understand enough of accounting to figure out which account needs to get credited and which account needs to be debited to represent this transaction.\\n\" + \"\\n\" + \"Enter accounting rules, an abstraction on top of manual Journal entires for enabling simpler data entry. An accounting rule can define any of the following abstractions\\n\" + \"\\n\" + \"A Simple journal entry where both the credit and debit account have been preselected\\n\" + \"A Simple journal entry where either credit or debit accounts have been limited to a pre-selected list of accounts (Ex: Debit account should be one of \\\"Bank of America\\\" of \\\"JP Morgan\\\" and credit account should be \\\"Cash\\\")\\n\" + \"A Compound journal entry where multiple debits and / or multiple credits may be made amongst a set of preselected list of accounts (Ex: Credit account should be either \\\"Bank Of America\\\" or \\\"Cash\\\" and debit account can be \\\"Employee Salary\\\" and/or \\\"Miscellenous Expenses\\\")\\n\" + \"An accounting rule can also be optionally associated with a branch, so that only a particular Branch's users have access to the rule" + "description": "It is typical scenario in MFI's that non accountants pass journal entries on a regular basis. For Ex: A branch office might deposit their entire cash at hand to their Bank account at the end of a working day. The branch office users might not understand enough of accounting to figure out which account needs to get credited and which account needs to be debited to represent this transaction.\n\nEnter accounting rules, an abstraction on top of manual Journal entires for enabling simpler data entry. An accounting rule can define any of the following abstractions\n\nA Simple journal entry where both the credit and debit account have been preselected\nA Simple journal entry where either credit or debit accounts have been limited to a pre-selected list of accounts (Ex: Debit account should be one of \"Bank of America\" of \"JP Morgan\" and credit account should be \"Cash\")\nA Compound journal entry where multiple debits and / or multiple credits may be made amongst a set of preselected list of accounts (Ex: Credit account should be either \"Bank Of America\" or \"Cash\" and debit account can be \"Employee Salary\" and/or \"Miscellenous Expenses\")\nAn accounting rule can also be optionally associated with a branch, so that only a particular Branch's users have access to the rule" + }, + { + "name": "AdhocQuery Api", + "description": "" }, { "name": "Batch API", - "description": "The Apache Fineract Batch API enables a consumer to access significant amounts of data in a single call or to make changes to several objects at once. 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.\\n\" + \"\\n\" + \"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).\\n\" + \"\\n\" + \"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'.\\n\" + \"\\n\" + \"Batch API is able to handle deeply nested dependent requests as well nested parameters. As shown in the example, requests are dependent on each other as, 1<--2<--6, i.e a nested dependency, where request '6' is not directly dependent on request '1' but still it is one of the nested child of request '1'. In the same way Batch API could handle a deeply nested dependent value, such as {..[..{..,$.parameter_name,..}..]}." + "description": "The Apache Fineract Batch API enables a consumer to access significant amounts of data in a single call or to make changes to several objects at once. 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.\n\nThe 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).\n\nBatch 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'.\n\nBatch API is able to handle deeply nested dependent requests as well nested parameters. As shown in the example, requests are dependent on each other as, 1<--2<--6, i.e a nested dependency, where request '6' is not directly dependent on request '1' but still it is one of the nested child of request '1'. In the same way Batch API could handle a deeply nested dependent value, such as {..[..{..,$.parameter_name,..}..]}." }, { - "name": "Audits" + "name": "Audits", + "description": "Every non-read Mifos API request is audited. A fully processed request can not be changed or deleted. See maker checker api for situations where an audit is not fully processed.\n\nPermissions: To search and look at audit entries a user needs to be attached to a role that has one of the ALL_FUNCTIONS, ALL_FUNCTIONS_READ or READ_AUDIT permissions.\n\nData Scope: A user can only see audits that are within their data scope. However, 'head office' users can see all audits including those that aren't office/branch related e.g. Loan Product changes.\")" }, { - "name": "Maker Checker (or 4-eye) functionality" + "name": "Maker Checker (or 4-eye) functionality", + "description": "" }, { - "name": "Account number format" + "name": "Account number format", + "description": "Account number preferences are used to describe custom formats for account numbers associated with Customer, Loan and Savings accounts." }, { - "name": "Cache" + "name": "Cache", + "description": "The following settings are possible for cache:\n\nNo Caching: caching turned off\nSingle node: caching on for single instance deployments of platorm (works for multiple tenants but only one tomcat)\nBy default caching is set to No Caching. Switching between caches results in the cache been clear e.g. from Single node to No cache and back again would clear down the single node cache." + }, + { + "name": "Code Values", + "description": "Code and code values: Codes represent a specific category of data, their code values are a specific instance of that category.\n\nCodes are mostly system defined which means the code itself comes out of the box and cannot be modified however its code values can be. e.g. 'Customer Identifier', it defaults to a code value of 'Passport' but could be 'Drivers License, National Id' etc" + }, + { + "name": "Codes", + "description": "Code and code values: Codes represent a specific category of data, their code values are a specific instance of that category.\n\nCodes are mostly system defined which means the code itself comes out of the box and cannot be modified however its code values can be. e.g. 'Customer Identifier', it defaults to a code value of 'Passport' but could be 'Drivers License, National Id' etc" + }, + { + "name": "External Services", + "description": "External Services Configuration related to set of supported configurations for third party services like Amazon S3 and SMTP:\n\nS3 (Amazon S3):\ns3_access_key -\ns3_bucket_name -\ns3_secret_key -\n\n\nSMTP (Email Service):\nusername -\npassword -\nhost -\nport -\nuseTLS -" + }, + { + "name": "Global Configuration", + "description": "Global configuration related to set of supported enable/disable configurations:\n\nmaker-checker - defaults to false - if true turns on maker-checker functionality\nreschedule-future-repayments - defaults to false - if true reschedules repayemnts which falls on a non-working day to configured repayment rescheduling rule\nallow-transactions-on-non_workingday - defaults to false - if true allows transactions on non-working days\nreschedule-repayments-on-holidays - defaults to false - if true reschedules repayemnts which falls on a non-working day to defined reschedule date\nallow-transactions-on-holiday - defaults to false - if true allows transactions on holidays\nsavings-interest-posting-current-period-end - Set it at the database level before any savings interest is posted. When set as false(default), interest will be posted on the first date of next period. If set as true, interest will be posted on last date of current period. There is no difference in the interest amount posted.\nfinancial-year-beginning-month - Set it at the database level before any savings interest is posted. Allowed values 1 - 12 (January - December). Interest posting periods are evaluated based on this configuration.\nmeetings-mandatory-for-jlg-loans - if set to true, enforces all JLG loans to follow a meeting schedule belonging to either the parent group or Center." + }, + { + "name": "Data Tables", + "description": "The datatables API allows you to plug-in your own tables (MySql) that have a relationship to a Apache Fineract core table. For example, you might want to add some extra client fields and record information about each of the clients' family members. Via the API you can create, read, update and delete entries for each 'plugged-in' table. The API checks for permission and for 'data scoping' (only data within the users' office hierarchy can be managed by the user).\n\nThe Apache Fineract Reference App uses a JQuery plug-in called stretchydatatables (which in turn uses this datatables resource) to provide a pretty flexible CRUD (Create, Read, Update, Delete) User Interface." + }, + { + "name": "Entity Data Table", + "description": "This defines Entity-Datatable Check." + }, + { + "name": "Reports", + "description": "Non-core reports can be added, updated and deleted." + }, + { + "name": "Run Reports", + "description": "" + }, + { + "name": "Documents", + "description": "Multiple Documents (a combination of a name, description and a file) may be attached to different Entities like Clients, Groups, Staff, Loans, Savings and Client Identifiers in the system\n\nNote: The currently allowed Entities are\n\nClients: URL Pattern as clients\nStaff: URL Pattern as staff\nLoans: URL Pattern as loans\nSavings: URL Pattern as savings\nClient Identifiers: URL Pattern as client_identifiers\nGroups: URL Pattern as groups" + }, + { + "name": "Hooks", + "description": "Hooks are a mechanism to trigger custom code on the occurence of events. " + }, + { + "name": "Scheduler", + "description": "" + }, + { + "name": "MIFOSX-BATCH JOBS", + "description": "Batch jobs (also known as cron jobs on Unix-based systems) are a series of back-end jobs executed on a computer at a particular time defined in job's cron expression.\n\n At any point, you can view the list of batch jobs scheduled to run along with other details specific to each job. Manually you can execute the jobs at any point of time.\n\n The scheduler status can be either \"Active\" or \"Standby\". If the scheduler status is Active, it indicates that all batch jobs are running/ will run as per the specified schedule.If the scheduler status is Standby, it will ensure all scheduled batch runs are suspended." + }, + { + "name": "Report Mailing Jobs", + "description": "This resource allows you to create a scheduled job that runs a report and sents it by email to specified email addresses.\n\nThe scheduled job can be configured to run once or on a regular basis (once a day, twice a week, etc)" + }, + { + "name": "List Report Mailing Job History", + "description": "" + }, + { + "name": "Authentication HTTP Basic", + "description": "An API capability that allows client applications to verify authentication details using HTTP Basic Authentication." + }, + { + "name": "Fetch authenticated user details", + "description": "" + }, + { + "name": "Mix Report", + "description": "" + }, + { + "name": "Mix Taxonomy", + "description": "" + }, + { + "name": "Mix Mapping", + "description": "" + }, + { + "name": "Notification", + "description": "" + }, + { + "name": "Holidays", + "description": "Some MFI's span large regions where different branch offices might observe different holidays. They need the ability to define holidays for specific branch offices and be able to set the repayment rule to follow during those holidays.\n\nThe reschedule of repayments to repaymentsRescheduledTo date during defined holidays is turned on/off by enabling/disabling reschedule-repayments-on-holidays in Global configurations.\n\nAllow Repayment transactions on a defined holidays is turned on/off by enabling/disabling allow-transactions-on-holiday in Global configurations." + }, + { + "name": "Currency", + "description": "Application related configuration around viewing/updating the currencies permitted for use within the MFI." + }, + { + "name": "Offices", + "description": "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." + }, + { + "name": "Provisioning Category", + "description": "" + }, + { + "name": "Provisioning Criteria", + "description": "This defines the Provisioning Criteria" + }, + { + "name": "Staff", + "description": "Allows you to model staff members. At present the key role of significance is whether this staff member is a loan officer or not." + }, + { + "name": "Cashiers", + "description": "" + }, + { + "name": "Teller Cash Management", + "description": "Teller cash management which will allow an organization to manage their cash transactions at branches or head office more effectively." + }, + { + "name": "Cashier Journals", + "description": "" + }, + { + "name": "Working days", + "description": "The days of the week that are workdays.\n\nRescheduling of repayments when it falls on a non-working is turned on /off by enable/disable reschedule-future-repayments parameter in Global configurations\n\nAllow transactions on non-working days is configurable by enabling/disbaling the allow-transactions-on-non_workingday parameter in Global configurations." + }, + { + "name": "Account Transfers", + "description": "Ability to be able to transfer monetary funds from one account to another.\n\nNote: At present only savings account to savings account transfers are supported." + }, + { + "name": "Standing Instructions", + "description": "Standing instructions (or standing orders) refer to instructions a bank account holder (\"the payer\") gives to his or her bank to pay a set amount at regular intervals to another's (\"the payee's\") account.\n\nNote: At present only savings account to savings account and savings account to Loan account transfers are permitted." + }, + { + "name": "Standing Instructions History", + "description": "The list capability of history can support pagination and sorting." + }, + { + "name": "Share Account", + "description": "Share accounts are instances of a praticular share product created for an individual. An application process around the creation of accounts is also supported." + }, + { + "name": "Entity Field Configuration", + "description": "Entity Field configuration API is a generic and extensible \nwherein various entities and subentities can be related.\nAlso it gives the user an ability to enable/disable fields,\nadd regular expression for validation" + }, + { + "name": "Charges", + "description": "Its typical for MFIs to add extra costs for their financial products. These are typically Fees or Penalties.\n\nA Charge on fineract platform is what we use to model both Fees and Penalties.\n\nAt present we support defining charges for use with Client accounts and both loan and saving products." + }, + { + "name": "Clients Address", + "description": "Address module is an optional module and can be configured into the system by using GlobalConfiguration setting: enable-address. In order to activate Address module, we need to enable the configuration, enable-address by setting its value to true." + }, + { + "name": "Client Charges", + "description": "It is typical for MFI's to directly associate charges with an implicit Client account. These can be either fees or penalties\n\nClient Charges are client specific instances of Charges. Refer Charges for documentation of the various properties of a charge, Only additional properties ( specific to the context of a Charge being associated with a Client account) are described here" + }, + { + "name": "Client Identifier", + "description": "Client Identifiers refer to documents that are used to uniquely identify a customer\nEx: Drivers License, Passport, Ration card etc " + }, + { + "name": "Client Transaction", + "description": "Client Transactions refer to transactions made directly againt a Client's internal account. Currently, these transactions are only created as a result of charge payments/waivers. You are allowed to undo a transaction, however you cannot explicitly create one. " + }, + { + "name": "Client", + "description": "Clients are people and businesses that have applied (or may apply) to an MFI for loans.\n\nClients can be created in Pending or straight into Active state." + }, + { + "name": "Loan Collateral", + "description": "In lending agreements, collateral is a borrower's pledge of specific property to a lender, to secure repayment of a loan. The collateral serves as protection for a lender against a borrower's default - that is, any borrower failing to pay the principal and interest under the terms of a loan obligation. If a borrower does default on a loan (due to insolvency or other event), that borrower forfeits (gives up) the property pledged as collateral - and the lender then becomes the owner of the collateral" + }, + { + "name": "Floating Rates", + "description": "It lets you create, list, retrieve and upload the floating rates" + }, + { + "name": "Centers", + "description": "Centers along with Groups are used to provided a distinctive banking distribution channel used in microfinance. Its common in areas such as Southern Asia to use Centers and Group as administrative units in grameen style lending. Typically groups will contain one to five people and centers themselves will be made of anywhere between 2-10 groups." + }, + { + "name": "Groups", + "description": "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.\n\nDifferent styles of group lending - Joint-Liability Group, Grameen Model (Center-Group), Self-Help Groups, Village/Communal Banks)" + }, + { + "name": "Interest Rate Slab (A.K.A interest bands)", + "description": "The slabs a.k.a interest bands are associated with Interest Rate Chart. These bands allow to define different interest rates for different deposit term periods." + }, + { + "name": "Interest Rate Chart", + "description": "This defines an interest rate scheme that can be associated to a term deposit product. This will have a slab (band or range) of deposit periods and the associated interest rates applicable along with incentives for each band." + }, + { + "name": "Loan Charges", + "description": "Its typical for MFIs to add extra costs for their loan products. They can be either Fees or Penalties.\n\nLoan Charges are instances of Charges and represent either fees and penalties for loan products. Refer Charges for documentation of the various properties of a charge, Only additional properties ( specific to the context of a Charge being associated with a Loan) are described here" + }, + { + "name": "Loan Rescheduling", + "description": "Loan Term Variations provides the ability to change due dates, amounts and number of instalments before loan approval." + }, + { + "name": "Loan Transactions", + "description": "Capabilities include loan repayment's, interest waivers and the ability to 'adjust' an existing transaction. An 'adjustment' of a transaction is really a 'reversal' of existing transaction followed by creation of a new transaction with the provided details." + }, + { + "name": "Loans", + "description": "The API concept of loans models the loan application process and the loan contract/monitoring process.\n\nField Descriptions\naccountNo\nThe account no. associated with this loan. Is auto generated if not provided at loan application creation time.\nexternalId\nA place to put an external reference for this loan e.g. The ID another system uses.\nIf provided, it must be unique.\nfundId\nOptional: For associating a loan with a given fund.\nloanOfficerId\nOptional: For associating a loan with a given staff member who is a loan officer.\nloanPurposeId\nOptional: For marking a loan with a given loan purpose option. Loan purposes are configurable and can be setup by system admin through code/code values screens.\nprincipal\nThe loan amount to be disbursed to through loan.\nloanTermFrequency\nThe length of loan term\nUsed like: loanTermFrequency loanTermFrequencyType\ne.g. 12 Months\nloanTermFrequencyType\nThe loan term period to use. Used like: loanTermFrequency loanTermFrequencyType\ne.g. 12 Months Example Values: 0=Days, 1=Weeks, 2=Months, 3=Years\nnumberOfRepayments\nNumber of installments to repay.\nUsed like: numberOfRepayments Every repaymentEvery repaymentFrequencyType\ne.g. 10 (repayments) Every 12 Weeks\nrepaymentEvery\nUsed like: numberOfRepayments Every repaymentEvery repaymentFrequencyType\ne.g. 10 (repayments) Every 12 Weeks\nrepaymentFrequencyType\nUsed like: numberOfRepayments Every repaymentEvery repaymentFrequencyType\ne.g. 10 (repayments) Every 12 Weeks \nExample Values: 0=Days, 1=Weeks, 2=Months\ninterestRatePerPeriod\nInterest Rate.\nUsed like: interestRatePerPeriod % interestRateFrequencyType - interestType\ne.g. 12.0000% Per year - Declining Balance\ninterestRateFrequencyType\nUsed like: interestRatePerPeriod% interestRateFrequencyType - interestType\ne.g. 12.0000% Per year - Declining Balance \nExample Values: 2=Per month, 3=Per year\ngraceOnPrincipalPayment\nOptional: Integer - represents the number of repayment periods that grace should apply to the principal component of a repayment period.\ngraceOnInterestPayment\nOptional: Integer - represents the number of repayment periods that grace should apply to the interest component of a repayment period. Interest is still calculated but offset to later repayment periods.\ngraceOnInterestCharged\nOptional: Integer - represents the number of repayment periods that should be interest-free.\ngraceOnArrearsAgeing\nOptional: Integer - Used in Arrears calculation to only take into account loans that are more than graceOnArrearsAgeing days overdue.\ninterestChargedFromDate\nOptional: Date - The date from with interest is to start being charged.\nexpectedDisbursementDate\nThe proposed disbursement date of the loan so a proposed repayment schedule can be provided.\nsubmittedOnDate\nThe date the loan application was submitted by applicant.\nlinkAccountId\nThe Savings Account id for linking with loan account for payments.\namortizationType\nExample Values: 0=Equal principle payments, 1=Equal installments\ninterestType\nUsed like: interestRatePerPeriod% interestRateFrequencyType - interestType\ne.g. 12.0000% Per year - Declining Balance \nExample Values: 0=Declining Balance, 1=Flat\ninterestCalculationPeriodType\nExample Values: 0=Daily, 1=Same as repayment period\nallowPartialPeriodInterestCalcualtion\nThis value will be supported along with interestCalculationPeriodType as Same as repayment period to calculate interest for partial periods. Example: Interest charged from is 5th of April , Principal is 10000 and interest is 1% per month then the interest will be (10000 * 1%)* (25/30) , it calculates for the month first then calculates exact periods between start date and end date(can be a decimal)\ninArrearsTolerance\nThe amount that can be 'waived' at end of all loan payments because it is too small to worry about.\nThis is also the tolerance amount assessed when determining if a loan is in arrears.\ntransactionProcessingStrategyId\nAn enumeration that indicates the type of transaction processing strategy to be used. This relates to functionality that is also known as Payment Application Logic.\nA number of out of the box approaches exist, some are custom to specific MFIs, some are more general and indicate the order in which payments are processed.\n\nRefer to the Payment Application Logic / Transaction Processing Strategy section in the appendix for more detailed overview of each available payment application logic provided out of the box.\n\nList of current approaches:\n1 = Mifos style (Similar to Old Mifos)\n2 = Heavensfamily (Custom MFI approach)\n3 = Creocore (Custom MFI approach)\n4 = RBI (India)\n5 = Principal Interest Penalties Fees Order\n6 = Interest Principal Penalties Fees Order\n7 = Early Payment Strategy\nloanType\nTo represent different type of loans.\nAt present there are three type of loans are supported. \nAvailable loan types:\nindividual: Loan given to individual member\ngroup: Loan given to group as a whole\njlg: Joint liability group loan given to members in a group on individual basis. JLG loan can be given to one or more members in a group.\nrecalculationRestFrequencyDate\nSpecifies rest frequency start date for interest recalculation. This date must be before or equal to disbursement date\nrecalculationCompoundingFrequencyDate\nSpecifies compounding frequency start date for interest recalculation. This date must be equal to disbursement date" + }, + { + "name": "Loan Products", + "description": "A Loan product is a template that is used when creating a loan. Much of the template definition can be overridden during loan creation." + }, + { + "name": "Notes", + "description": "Notes API allows to enter notes for supported resources." + }, + { + "name": "Payment Type", + "description": "This defines the payment type" + }, + { + "name": "Fixed Deposit Account", + "description": "Fixed Deposit accounts are instances of a praticular fixed deposit product created. An application process around the creation of accounts is also supported." + }, + { + "name": "Fixed Deposit Product", + "description": "This is one of the advanced term deposit product offered by MFI's. The Fixed Deposit Products (aka FD) product offerings are modeled using this API.\n\nThe FD products are deposit accounts which are held for a fixed term – like 1 year, 2 years etc.\n\nWhen creating fixed deposit accounts, the details from the fixed deposit product are used to auto fill details of the fixed deposit account application process." + }, + { + "name": "Recurring Deposit Account Transactions", + "description": "Transactions possible on a recurring deposit account." + }, + { + "name": "Recurring Deposit Account", + "description": "Recurring Deposit accounts are instances of a praticular recurring deposit product created. An application process around the creation of accounts is also supported." + }, + { + "name": "Recurring Deposit Product", + "description": "Recurring Deposits are a special kind of Term Deposits offered by MFI's. The Recurring Deposit Products (aka RD) product offerings are modeled using this API.\n\nRecurring Deposits help people with regular incomes to deposit a fixed amount every month (specified recurring frequency) into their Recurring Deposit account.\n\nWhen creating recurring deposit accounts, the details from the recurring deposit product are used to auto fill details of the recurring deposit account application process." + }, + { + "name": "Savings Charges", + "description": "Its typical for MFIs to add maintenance and operating charges. They can be either Fees or Penalties.\n\nSavings Charges are instances of Charges and represent either fees and penalties for savings products. Refer Charges for documentation of the various properties of a charge, Only additional properties ( specific to the context of a Charge being associated with a Savings account) are described here" + }, + { + "name": "Savings Account", + "description": "Savings accounts are instances of a particular savings product created for an individual or group. An application process around the creation of accounts is also supported." + }, + { + "name": "Savings Product", + "description": "An MFIs savings product offerings are modeled using this API.\nWhen creating savings accounts, the details from the savings product are used to auto fill details of the savings account application process." + }, + { + "name": "Search API", + "description": "Search API allows to search scoped resources clients, loans and groups on specified fields." + }, + { + "name": "Self Account transfer", + "description": "" + }, + { + "name": "Self Third Party Transfer", + "description": "" + }, + { + "name": "Self Client", + "description": "" + }, + { + "name": "Self Loans", + "description": "" + }, + { + "name": "Pocket", + "description": "" + }, + { + "name": "Self Loan Products", + "description": "A Loan product is a template that is used when creating a loan. Much of the template definition can be overridden during loan creation.\n\nField Descriptions\nname\nName associated with loan product on system.\nshortName\nShort name associated with a loan product. \nAn abbreviated version of the name, used in reports or menus where space is limited, such as Collection Sheets.\ndescription\nFor providing helpful description of product offering.\nfundId\nFor associating a loan product with a given fund by default.\nincludeInBorrowerCycle\nIt is a flag, Used to denote whether the loans should include in loan cycle counter or not.\nuseBorrowerCycle\nIt is a flag, Used to denote whether the loans should depend on \nborrower loan cycle counter or not.\ncurrencyCode\nA three letter ISO code of currency.\ndigitsAfterDecimal\nOverride the currency default value for digitsAfterDecimal.\ninMultiplesOf\nOverride the default value for rounding currency to multiples of value provided.\ninstallmentAmountInMultiplesOf\nOverride the default value for rounding instalment amount to multiples of value provided.\nprincipal\nThe loan amount to be disbursed to through loan.\nnumberOfRepayments\nNumber of installments to repay.\nUsed like: numberOfRepayments Every repaymentEvery repaymentFrequencyType\ne.g. 10 (repayments) Every 12 Weeks\nrepaymentEvery\nUsed like: numberOfRepayments Every repaymentEvery repaymentFrequencyType\ne.g. 10 (repayments) Every 12 Weeks\nrepaymentFrequencyType\nUsed like: numberOfRepayments Every repaymentEvery repaymentFrequencyType\ne.g. 10 (repayments) Every 12 Weeks \nExample Values: 0=Days, 1=Weeks, 2=Months\ninterestRatePerPeriod\nInterest Rate.\nUsed like: interestRatePerPeriod % interestRateFrequencyType - interestType\ne.g. 12.0000% Per year - Declining Balance\ninterestRateFrequencyType\nUsed like: interestRatePerPeriod% interestRateFrequencyType - interestType\ne.g. 12.0000% Per year - Declining Balance \nExample Values: 2=Per month, 3=Per year\namortizationType\nExample Values: 0=Equal principle payments, 1=Equal installments\ninterestType\nUsed like: interestRatePerPeriod% interestRateFrequencyType - interestType\ne.g. 12.0000% Per year - Declining Balance \nExample Values: 0=Declining Balance, 1=Flat\ninterestCalculationPeriodType\nExample Values: 0=Daily, 1=Same as repayment period\nallowPartialPeriodInterestCalcualtion\nThis value will be supported along with interestCalculationPeriodType as Same as repayment period to calculate interest for partial periods. Example: Interest charged from is 5th of April , Principal is 10000 and interest is 1% per month then the interest will be (10000 * 1%)* (25/30) , it calculates for the month first then calculates exact periods between start date and end date(can be a decimal)\ninArrearsTolerance\nThe amount that can be 'waived' at end of all loan payments because it is too small to worry about.\nThis is also the tolerance amount assessed when determining if a loan is in arrears.\nprincipalVariationsForBorrowerCycle,interestRateVariationsForBorrowerCycle,\nnumberOfRepaymentVariationsForBorrowerCycle\nVariations for loan, based on borrower cycle number\nminimumDaysBetweenDisbursalAndFirstRepayment\nThe minimum number of days allowed between a Loan disbursal and its first repayment.\nprincipalThresholdForLastInstalment\nField represents percentage of current instalment principal amount for comparing against principal outstanding to add another repayment instalment. If the outstanding principal amount is less then calculated amount, remaining outstanding amount will be added to current instalment. Default value for multi disburse loan is 50% and non-multi disburse loan is 0%\ncanDefineInstallmentAmount\nif provided as true, then fixed instalment amount can be provided from loan account.\ntransactionProcessingStrategyId\nAn enumeration that indicates the type of transaction processing strategy to be used. This relates to functionality that is also known as Payment Application Logic.\nA number of out of the box approaches exist, some are custom to specific MFIs, some are more general and indicate the order in which payments are processed.\n\nRefer to the Payment Application Logic / Transaction Processing Strategy section in the appendix for more detailed overview of each available payment application logic provided out of the box.\n\nList of current approaches:\n1 = Mifos style (Similar to Old Mifos)\n2 = Heavensfamily (Custom MFI approach)\n3 = Creocore (Custom MFI approach)\n4 = RBI (India)\n5 = Principal Interest Penalties Fees Order\n6 = Interest Principal Penalties Fees Order\n7 = Early Payment Strategy\ngraceOnPrincipalPayment\nOptional: Integer - represents the number of repayment periods that grace should apply to the principal component of a repayment period.\ngraceOnInterestPayment\nOptional: Integer - represents the number of repayment periods that grace should apply to the interest component of a repayment period. Interest is still calculated but offset to later repayment periods.\ngraceOnInterestCharged\nOptional: Integer - represents the number of repayment periods that should be interest-free.\ngraceOnArrearsAgeing\nOptional: Integer - Used in Arrears calculation to only take into account loans that are more than graceOnArrearsAgeing days overdue.\noverdueDaysForNPA\nOptional: Integer - represents the maximum number of days a Loan may be overdue before being classified as a NPA (non performing asset)\naccountMovesOutOfNPAOnlyOnArrearsCompletion\nOptional: Boolean - if provided as true, Loan Account moves out of NPA state only when all arrears are cleared\naccountingRule\nSpecifies if accounting is enabled for the particular product and the type of the accounting rule to be used Example Values:1=NONE, 2=CASH_BASED, 3=ACCRUAL_PERIODIC, 4=ACCRUAL_UPFRONT\nisInterestRecalculationEnabled\nIt is a flag, Used to denote whether interest recalculation is enabled or disabled for the particular product\ndaysInYearType\nSpecifies the number of days in a year. \nExample Values:1=ACTUAL(Actual number of days in year), 360=360 DAYS, 364=364 DAYS(52 WEEKS), 365=365 DAYS\ndaysInMonthType\nSpecifies the number of days in a month. \nExample Values:1=ACTUAL(Actual number of days in month), 30=30 DAYS\ninterestRecalculationCompoundingMethod\nSpecifies which amount portion should be added to principal for interest recalculation. \nExample Values:0=NONE(Only on principal), 1=INTEREST(Principal+Interest), 2=FEE(Principal+Fee), 3=FEE And INTEREST (Principal+Fee+Interest)\nrescheduleStrategyMethod\nSpecifies what action should perform on loan repayment schedule for advance payments. \nExample Values:1=Reschedule next repayments, 2=Reduce number of installments, 3=Reduce EMI amount\nrecalculationCompoundingFrequencyType\nSpecifies effective date from which the compounding of interest or fee amounts will be considered in recalculation on late payment.\nExample Values:1=Same as repayment period, 2=Daily, 3=Weekly, 4=Monthly\nrecalculationCompoundingFrequencyInterval\nSpecifies compounding frequency interval for interest recalculation.\nrecalculationCompoundingFrequencyDate\nSpecifies compounding frequency start date for interest recalculation.\nrecalculationRestFrequencyType\nSpecifies effective date from which the late or advanced payment amounts will be considered in recalculation.\nExample Values:1=Same as repayment period, 2=Daily, 3=Weekly, 4=Monthly\nrecalculationRestFrequencyInterval\nSpecifies rest frequency interval for interest recalculation.\nrecalculationRestFrequencyDate\nSpecifies rest frequency start date for interest recalculation.\npreClosureInterestCalculationStrategy\nSpecifies applicable days for interest calculation on pre closure of a loan.\nExample Values:1=Calculate till pre closure date, 2=Calculate till rest frequency date\nisArrearsBasedOnOriginalSchedule\nIf Specified as true, arrears will be identified based on original schedule.\nallowAttributeOverrides\nSpecifies if select attributes may be overridden for individual loan accounts." + }, + { + "name": "Self Service Registration", + "description": "" + }, + { + "name": "Self Run Report", + "description": "This resource allows you to run and receive output from pre-defined Apache Fineract reports.\n\nThe default output is a JSON formatted \"Generic Resultset\". The Generic Resultset contains Column Heading as well as Data information. However, you can export to CSV format by simply adding \"&exportCSV=true\" to the end of your URL.\n\nIf Pentaho reports have been pre-defined, they can also be run through this resource. Pentaho reports can return HTML, PDF or CSV formats.\n\nThe Apache Fineract reference application uses a JQuery plugin called stretchyreporting which, itself, uses this reports resource to provide a pretty flexible reporting User Interface (UI).\n\nARGUMENTS\nR_'parameter names' ... optional, No defaults The number and names of the parameters depend on the specific report and how it has been configured. R_officeId is an example parameter name.Note: the prefix R_ stands for ReportinggenericResultSetoptional, defaults to true If 'true' an optimised JSON format is returned suitable for tabular display of data. If 'false' a simple JSON format is returned. parameterType optional, The only valid value is 'true'. If any other value is provided the argument will be ignored Determines whether the request looks in the list of reports or the list of parameters for its data. Doesn't apply to Pentaho reports.exportCSV optional, The only valid value is 'true'. If any other value is provided the argument will be ignored Output will be delivered as a CSV file instead of JSON. Doesn't apply to Pentaho reports.output-type optional, Defaults to HTML. Valid Values are HTML, XLS, XSLX, CSV and PDF for html, Excel, Excel 2007+, CSV and PDF formats respectively.Only applies to Pentaho reports.locale optional Any valid locale Ex: en_US, en_IN, fr_FR etcOnly applies to Pentaho reports." + }, + { + "name": "Self Savings Account", + "description": "" + }, + { + "name": "Self Authentication", + "description": "Authenticates the credentials provided and returns the set roles and permissions allowed" + }, + { + "name": "Self User", + "description": "" + }, + { + "name": "Self User Details", + "description": "" + }, + { + "name": "Self Share Accounts", + "description": "" + }, + { + "name": "Self Score Card", + "description": "" + }, + { + "name": "Self Spm", + "description": "" + }, + { + "name": "Self Dividend", + "description": "" + }, + { + "name": "Tax Components", + "description": "This defines the Tax Components" + }, + { + "name": "Tax Group", + "description": "This defines the Tax Group" + }, + { + "name": "SPM API - LookUp Table", + "description": "The Apache Fineract SPM API provides the ability to create custom surveys to collect social performance measurentment data or any additional questionnaire a financial institute want to collect." + }, + { + "name": "Score Card", + "description": "" + }, + { + "name": "Spm-Surveys", + "description": "" + }, + { + "name": "User Generated Documents", + "description": "User Generated Documents(alternatively, Templates) are used for end-user features such as custom user defined document generation (AKA UGD). They are based on {{ moustache }} templates. Think of them as a sort of built-in \"mail merge\" functionality.\n\nUser Generated Documents (and other types of templates) can aggregate data from several Apache Fineract back-end API calls via mappers. Mappers can even access non-Apache Fineract REST services from other servers. UGDs can render such data in tables, show images, etc. TBD: Please have a look at some of the Example UGDs included in Apache Fineract (or the Wiki page, for now.).\n\nUGDs can be assigned to an entity like client or loan and be of a type like Document or SMS. The entity and type of a UGD is only there for the convenience of user agents (UIs), in order to know where to show UGDs for the user (i.e. which tab). The Template Engine back-end runner does not actually need this metadata." + }, + { + "name": "Password preferences", + "description": "This API enables management of password policy for user administration.\n\nThere is no Apache Fineract functionality for creating a validation policy. The validation policies come pre-installed.\n\nValidation policies may be updated" + }, + { + "name": "Permissions", + "description": "An API capability to support management of application permissions for user administration.\n\nThere is no Apache Fineract functionality for creating or deleting permissions. Permissions come pre-installed.\n\nPermissions are not updated, except in the case of enabling or disabling non-read transactions for Maker Checker functionality" + }, + { + "name": "Roles", + "description": "An API capability to support management of application roles for user administration." + }, + { + "name": "Users", + "description": "An API capability to support administration of application users." }, { "name": "SMS Campaigns" }, - { - "name": "Code Values" - }, - { - "name": "Codes" - }, - { - "name": "External Services" - }, - { - "name": "Global Configuration" - }, { "name": "CreditBureau Configuration" }, { - "name": "Data Tables" - }, - { - "name": "Entity-Datatable Checks" - }, - { - "name": "Reports" - }, - { - "name": "Run Reports" - }, - { - "name": "Documents" + "name": "Entity Datatable Check" }, { "name": "DomainNameapiv1{entity}{entityId}images" @@ -95,27 +435,6 @@ { "name": "DomainNameapiv1entitytoentitymapping" }, - { - "name": "Hooks" - }, - { - "name": "Scheduler" - }, - { - "name": "MIFOSX-BATCH JOBS" - }, - { - "name": "Report Mailing Jobs" - }, - { - "name": "List Report Mailing Job History" - }, - { - "name": "Authentication HTTP Basic" - }, - { - "name": "Fetch authenticated user details" - }, { "name": "SMS" }, @@ -129,202 +448,28 @@ "name": "Survey" }, { - "name": "Mix Report" + "name": "interoperation" }, { - "name": "Mix Taxonomy" - }, - { - "name": "Mix Mapping" - }, - { - "name": "Holidays" - }, - { - "name": "Currency" + "name": "Mix Mapping " }, { "name": "officetransactions" }, - { - "name": "Offices" - }, - { - "name": "Provisioning Category" - }, - { - "name": "Provisioning Criteria" - }, - { - "name": "Staff" - }, - { - "name": "cashiers" - }, - { - "name": "Teller Cash Management" - }, - { - "name": "cashiersjournal" - }, - { - "name": "Working days" - }, - { - "name": "Account Transfers" - }, - { - "name": "Standing Instructions" - }, - { - "name": "Standing Instructions History" - }, - { - "name": "Share Account" - }, - { - "name": "Entity Field Configuration" - }, - { - "name": "Charges" - }, - { - "name": "Clients Address" - }, - { - "name": "Client Charges" - }, - { - "name": "Client Identifier" - }, - { - "name": "Client Transaction" - }, - { - "name": "Client" - }, - { - "name": "Loan Collateral" - }, { "name": "Collection Sheet" }, - { - "name": "Floating Rates" - }, { "name": "Funds" }, - { - "name": "Centers" - }, - { - "name": "Groups" - }, - { - "name": "Interest Rate Slab (A.K.A interest bands)" - }, - { - "name": "Interest Rate Chart" - }, - { - "name": "Loan Charges" - }, - { - "name": "Loan Rescheduling" - }, - { - "name": "Loan Transactions" - }, - { - "name": "Loans" - }, - { - "name": "Loan Products" - }, - { - "name": "Notes" - }, - { - "name": "Payment Type" - }, { "name": "Products" }, { - "name": "Fixed Deposit Account" + "name": "Self Account Transfer" }, { - "name": "Fixed Deposit Product" - }, - { - "name": "Recurring Deposit Account Transactions" - }, - { - "name": "Recurring Deposit Account" - }, - { - "name": "Recurring Deposit Product" - }, - { - "name": "Savings Charges" - }, - { - "name": "Savings Account" - }, - { - "name": "Savings Product" - }, - { - "name": "Beneficiary Third Party Transfer" - }, - { - "name": "Self Client" - }, - { - "name": "Self Loans" - }, - { - "name": "Self Savings Account" - }, - { - "name": "Self Authentication" - }, - { - "name": "Self User" - }, - { - "name": "Self User Details" - }, - { - "name": "Tax Components" - }, - { - "name": "Tax Group" - }, - { - "name": "SPM API - LookUp Table" - }, - { - "name": "SPM - Scorecards" - }, - { - "name": "SPM - Serveys" - }, - { - "name": "User Generated Documents" - }, - { - "name": "Password preferences" - }, - { - "name": "Permissions" - }, - { - "name": "Roles" - }, - { - "name": "Users" + "name": "Self Run Report " } ], "schemes": [ @@ -732,14 +877,14 @@ } } }, - "/glaccounts/template": { + "/glaccounts/{glAccountId}": { "get": { "tags": [ "General Ledger Account" ], - "summary": "Retrieve GL Accounts Template", - "description": "This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of:\n\nField Defaults\nAllowed Value Lists\nExample Request:\n\nglaccounts/template\nglaccounts/template?type=1\n\ntype is optional and integer value from 1 to 5.\n\n1.Assets \n2.Liabilities \n3.Equity \n4.Income \n5.Expenses", - "operationId": "retrieveNewAccountDetails", + "summary": "Retrieve a General Ledger Account", + "description": "Example Requests:\n\nglaccounts/1\n\n\nglaccounts/1?template=true\n\n\nglaccounts/1?fields=name,glCode\n\n\nglaccounts/1?fetchRunningBalance=true", + "operationId": "retreiveAccount", "consumes": [ "application/json" ], @@ -748,19 +893,99 @@ ], "parameters": [ { - "name": "type", - "in": "query", - "description": "type", - "required": false, + "name": "glAccountId", + "in": "path", + "description": "glAccountId", + "required": true, "type": "integer", - "format": "int32" + "format": "int64" + }, + { + "name": "fetchRunningBalance", + "in": "query", + "description": "fetchRunningBalance", + "required": false, + "type": "boolean" } ], "responses": { "200": { "description": "", "schema": { - "$ref": "#/definitions/GetGLAccountsTemplateResponse" + "$ref": "#/definitions/GetGLAccountsResponse" + } + } + } + }, + "put": { + "tags": [ + "General Ledger Account" + ], + "summary": "Update an Accounting closure", + "description": "Once an accounting closure is created, only the comments associated with it may be edited\n\n", + "operationId": "updateGLAccount", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "glAccountId", + "in": "path", + "description": "glAccountId", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "in": "body", + "name": "body", + "description": "body", + "required": false, + "schema": { + "$ref": "#/definitions/PutGLAccountsRequest" + } + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/PutGLAccountsResponse" + } + } + } + }, + "delete": { + "tags": [ + "General Ledger Account" + ], + "summary": "Delete an accounting closure", + "description": "Note: Only the latest accounting closure associated with a branch may be deleted.", + "operationId": "deleteGLAccount", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "glAccountId", + "in": "path", + "description": "glAccountId", + "required": true, + "type": "integer", + "format": "int64" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/DeleteGLAccountsRequest" } } } @@ -872,14 +1097,14 @@ } } }, - "/glaccounts/{glAccountId}": { + "/glaccounts/template": { "get": { "tags": [ "General Ledger Account" ], - "summary": "Retrieve a General Ledger Account", - "description": "Example Requests:\n\nglaccounts/1\n\n\nglaccounts/1?template=true\n\n\nglaccounts/1?fields=name,glCode\n\n\nglaccounts/1?fetchRunningBalance=true", - "operationId": "retreiveAccount", + "summary": "Retrieve GL Accounts Template", + "description": "This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of:\n\nField Defaults\nAllowed Value Lists\nExample Request:\n\nglaccounts/template\nglaccounts/template?type=1\n\ntype is optional and integer value from 1 to 5.\n\n1.Assets \n2.Liabilities \n3.Equity \n4.Income \n5.Expenses", + "operationId": "retrieveNewAccountDetails", "consumes": [ "application/json" ], @@ -888,99 +1113,19 @@ ], "parameters": [ { - "name": "glAccountId", - "in": "path", - "description": "glAccountId", - "required": true, - "type": "integer", - "format": "int64" - }, - { - "name": "fetchRunningBalance", + "name": "type", "in": "query", - "description": "fetchRunningBalance", + "description": "type", "required": false, - "type": "boolean" - } - ], - "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/GetGLAccountsResponse" - } - } - } - }, - "put": { - "tags": [ - "General Ledger Account" - ], - "summary": "Update an Accounting closure", - "description": "Once an accounting closure is created, only the comments associated with it may be edited\n\n", - "operationId": "updateGLAccount", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "glAccountId", - "in": "path", - "description": "glAccountId", - "required": true, "type": "integer", - "format": "int64" - }, - { - "in": "body", - "name": "body", - "description": "body", - "required": false, - "schema": { - "$ref": "#/definitions/PutGLAccountsRequest" - } + "format": "int32" } ], "responses": { "200": { "description": "", "schema": { - "$ref": "#/definitions/PutGLAccountsResponse" - } - } - } - }, - "delete": { - "tags": [ - "General Ledger Account" - ], - "summary": "Delete an accounting closure", - "description": "Note: Only the latest accounting closure associated with a branch may be deleted.", - "operationId": "deleteGLAccount", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "glAccountId", - "in": "path", - "description": "glAccountId", - "required": true, - "type": "integer", - "format": "int64" - } - ], - "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/DeleteGLAccountsRequest" + "$ref": "#/definitions/GetGLAccountsTemplateResponse" } } } @@ -1497,72 +1642,6 @@ } } }, - "/provisioningentries/entries": { - "get": { - "tags": [ - "Provisioning Entries" - ], - "operationId": "retrieveProviioningEntries", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "entryId", - "in": "query", - "required": false, - "type": "integer", - "format": "int64" - }, - { - "name": "offset", - "in": "query", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "limit", - "in": "query", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "officeId", - "in": "query", - "required": false, - "type": "integer", - "format": "int64" - }, - { - "name": "productId", - "in": "query", - "required": false, - "type": "integer", - "format": "int64" - }, - { - "name": "categoryId", - "in": "query", - "required": false, - "type": "integer", - "format": "int64" - } - ], - "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/LoanProductProvisioningEntryData" - } - } - } - } - }, "/provisioningentries": { "get": { "tags": [ @@ -1723,6 +1802,72 @@ } } }, + "/provisioningentries/entries": { + "get": { + "tags": [ + "Provisioning Entries" + ], + "operationId": "retrieveProviioningEntries", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "entryId", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "offset", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "limit", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "officeId", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "productId", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "categoryId", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/LoanProductProvisioningEntryData" + } + } + } + } + }, "/accountingrules": { "get": { "tags": [ @@ -1916,6 +2061,188 @@ } } }, + "/adhocquery/{adHocId}": { + "get": { + "tags": [ + "AdhocQuery Api" + ], + "operationId": "retrieveAdHocQuery", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "adHocId", + "in": "path", + "description": "adHocId", + "required": true, + "type": "integer", + "format": "int64" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + }, + "put": { + "tags": [ + "AdhocQuery Api" + ], + "operationId": "update", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "adHocId", + "in": "path", + "description": "adHocId", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + }, + "delete": { + "tags": [ + "AdhocQuery Api" + ], + "operationId": "deleteAdHocQuery", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "adHocId", + "in": "path", + "description": "adHocId", + "required": true, + "type": "integer", + "format": "int64" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, + "/adhocquery": { + "get": { + "tags": [ + "AdhocQuery Api" + ], + "operationId": "retrieveAll", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + }, + "post": { + "tags": [ + "AdhocQuery Api" + ], + "operationId": "createAdHocQuery", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, + "/adhocquery/template": { + "get": { + "tags": [ + "AdhocQuery Api" + ], + "operationId": "template", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, "/batches": { "post": { "tags": [ @@ -2198,6 +2525,104 @@ } } }, + "/makercheckers/searchtemplate": { + "get": { + "tags": [ + "Maker Checker (or 4-eye) functionality" + ], + "summary": "Maker Checker Search Template", + "description": "This is a convenience resource. It can be useful when building a Checker Inbox UI. \"appUsers\" are data scoped to the office/branch the requestor is associated with. \"actionNames\" and \"entityNames\" returned are those that the requestor has Checker approval permissions for.\n\nExample Requests:\n\nmakercheckers/searchtemplate\nmakercheckers/searchtemplate?fields=entityNames", + "operationId": "retrieveAuditSearchTemplate", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/GetMakerCheckersSearchTemplateResponse" + } + } + } + } + }, + "/makercheckers/{auditId}": { + "post": { + "tags": [ + "Maker Checker (or 4-eye) functionality" + ], + "summary": "Approve Maker Checker Entry | Reject Maker Checker Entry", + "description": "", + "operationId": "approveMakerCheckerEntry", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "auditId", + "in": "path", + "description": "auditId", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "name": "command", + "in": "query", + "description": "command", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/PostMakerCheckersResponse" + } + } + } + }, + "delete": { + "tags": [ + "Maker Checker (or 4-eye) functionality" + ], + "summary": "Delete Maker Checker Entry", + "description": "", + "operationId": "deleteMakerCheckerEntry", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "auditId", + "in": "path", + "description": "auditId", + "required": true, + "type": "integer", + "format": "int64" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/PostMakerCheckersResponse" + } + } + } + } + }, "/makercheckers": { "get": { "tags": [ @@ -2311,129 +2736,6 @@ } } }, - "/makercheckers/{auditId}": { - "post": { - "tags": [ - "Maker Checker (or 4-eye) functionality" - ], - "summary": "Approve Maker Checker Entry | Reject Maker Checker Entry", - "description": "", - "operationId": "approveMakerCheckerEntry", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "auditId", - "in": "path", - "description": "auditId", - "required": true, - "type": "integer", - "format": "int64" - }, - { - "name": "command", - "in": "query", - "description": "command", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/PostMakerCheckersResponse" - } - } - } - }, - "delete": { - "tags": [ - "Maker Checker (or 4-eye) functionality" - ], - "summary": "Delete Maker Checker Entry", - "description": "", - "operationId": "deleteMakerCheckerEntry", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "auditId", - "in": "path", - "description": "auditId", - "required": true, - "type": "integer", - "format": "int64" - } - ], - "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/PostMakerCheckersResponse" - } - } - } - } - }, - "/makercheckers/searchtemplate": { - "get": { - "tags": [ - "Maker Checker (or 4-eye) functionality" - ], - "summary": "Maker Checker Search Template", - "description": "This is a convenience resource. It can be useful when building a Checker Inbox UI. \"appUsers\" are data scoped to the office/branch the requestor is associated with. \"actionNames\" and \"entityNames\" returned are those that the requestor has Checker approval permissions for.\n\nExample Requests:\n\nmakercheckers/searchtemplate\nmakercheckers/searchtemplate?fields=entityNames", - "operationId": "retrieveAuditSearchTemplate", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [], - "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/GetMakerCheckersSearchTemplateResponse" - } - } - } - } - }, - "/accountnumberformats/template": { - "get": { - "tags": [ - "Account number format" - ], - "summary": "Retrieve Account number format Template", - "description": "This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of:\n\nField Defaults\nAllowed Value Lists\n\nExample Request:\n\naccountnumberformats/template", - "operationId": "retrieveTemplate", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [], - "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/GetAccountNumberFormatsResponseTemplate" - } - } - } - } - }, "/accountnumberformats": { "get": { "tags": [ @@ -2602,6 +2904,31 @@ } } }, + "/accountnumberformats/template": { + "get": { + "tags": [ + "Account number format" + ], + "summary": "Retrieve Account number format Template", + "description": "This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of:\n\nField Defaults\nAllowed Value Lists\n\nExample Request:\n\naccountnumberformats/template", + "operationId": "retrieveTemplate", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/GetAccountNumberFormatsResponseTemplate" + } + } + } + } + }, "/caches": { "get": { "tags": [ @@ -2663,36 +2990,6 @@ } } }, - "/smscampaigns/{resourceId}": { - "get": { - "tags": [ - "SMS Campaigns" - ], - "summary": "Retrieve a SMS Campaign", - "description": "Example Requests:\n\nsmscampaigns/1\n", - "operationId": "retrieveCampaign", - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "resourceId", - "in": "path", - "required": true, - "type": "integer", - "format": "int64" - } - ], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "type": "string" - } - } - } - } - }, "/smscampaigns": { "get": { "tags": [ @@ -2885,6 +3182,36 @@ } } }, + "/smscampaigns/{resourceId}": { + "get": { + "tags": [ + "SMS Campaigns" + ], + "summary": "Retrieve a SMS Campaign", + "description": "Example Requests:\n\nsmscampaigns/1\n", + "operationId": "retrieveCampaign", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "resourceId", + "in": "path", + "required": true, + "type": "integer", + "format": "int64" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + } + } + } + } + }, "/smscampaigns/template": { "get": { "tags": [ @@ -2937,6 +3264,84 @@ } } }, + "/codes/{codeId}/codevalues": { + "get": { + "tags": [ + "Code Values" + ], + "summary": "List Code Values", + "description": "Returns the list of Code Values for a given Code\n\nExample Requests:\n\ncodes/1/codevalues", + "operationId": "retrieveAllCodeValues", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "codeId", + "in": "path", + "description": "codeId", + "required": true, + "type": "integer", + "format": "int64" + } + ], + "responses": { + "200": { + "description": "A List of Given response", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/GetCodeValuesDataResponse" + } + } + } + } + }, + "post": { + "tags": [ + "Code Values" + ], + "summary": "Create a Code Value", + "description": "", + "operationId": "createCodeValue", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "codeId", + "in": "path", + "description": "codeId", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "in": "body", + "name": "body", + "description": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PostCodeValuesDataRequest" + } + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/PostCodeValueDataResponse" + } + } + } + } + }, "/codes/{codeId}/codevalues/{codeValueId}": { "get": { "tags": [ @@ -3060,84 +3465,6 @@ } } }, - "/codes/{codeId}/codevalues": { - "get": { - "tags": [ - "Code Values" - ], - "summary": "List Code Values", - "description": "Returns the list of Code Values for a given Code\n\nExample Requests:\n\ncodes/1/codevalues", - "operationId": "retrieveAllCodeValues", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "codeId", - "in": "path", - "description": "codeId", - "required": true, - "type": "integer", - "format": "int64" - } - ], - "responses": { - "200": { - "description": "A List of Given response", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/GetCodeValuesDataResponse" - } - } - } - } - }, - "post": { - "tags": [ - "Code Values" - ], - "summary": "Create a Code Value", - "description": "", - "operationId": "createCodeValue", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "codeId", - "in": "path", - "description": "codeId", - "required": true, - "type": "integer", - "format": "int64" - }, - { - "in": "body", - "name": "body", - "description": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PostCodeValuesDataRequest" - } - } - ], - "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/PostCodeValueDataResponse" - } - } - } - } - }, "/codes": { "get": { "tags": [ @@ -3488,30 +3815,6 @@ } } }, - "/CreditBureauConfiguration/loanProduct": { - "get": { - "tags": [ - "CreditBureau Configuration" - ], - "operationId": "fetchLoanProducts", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "type": "string" - }, - "headers": {} - } - } - } - }, "/CreditBureauConfiguration/organisationCreditBureau": { "get": { "tags": [ @@ -3567,6 +3870,30 @@ } } }, + "/CreditBureauConfiguration/loanProduct": { + "get": { + "tags": [ + "CreditBureau Configuration" + ], + "operationId": "fetchLoanProducts", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, "/CreditBureauConfiguration/mappings": { "get": { "tags": [ @@ -3702,6 +4029,30 @@ } } }, + "/CreditBureauConfiguration": { + "get": { + "tags": [ + "CreditBureau Configuration" + ], + "operationId": "getCreditBureau", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, "/CreditBureauConfiguration/config/{organisationCreditBureauId}": { "get": { "tags": [ @@ -3734,26 +4085,71 @@ } } }, - "/CreditBureauConfiguration": { + "/datatables": { "get": { "tags": [ - "CreditBureau Configuration" + "Data Tables" ], - "operationId": "getCreditBureau", + "summary": "List Data Tables", + "description": "Lists registered data tables and the Apache Fineract Core application table they are registered to.\n\nARGUMENTS\n\napptable - optional\nThe Apache Fineract core application table.\n\nExample Requests:\n\ndatatables?apptable=m_client\n\n\ndatatables", + "operationId": "getDatatables", "consumes": [ "application/json" ], "produces": [ "application/json" ], - "parameters": [], + "parameters": [ + { + "name": "apptable", + "in": "query", + "description": "apptable", + "required": false, + "type": "string" + } + ], "responses": { "200": { - "description": "successful operation", + "description": "", "schema": { - "type": "string" - }, - "headers": {} + "type": "array", + "items": { + "$ref": "#/definitions/GetDataTablesResponse" + } + } + } + } + }, + "post": { + "tags": [ + "Data Tables" + ], + "summary": "Create Data Table", + "description": "Create a new data table and registers it with the Apache Fineract Core application table.\n\nField Descriptions\n\nMandatory - datatableName : \n\nThe name of the Data Table.\n\nMandatory - apptableName\n\nApplication table name. Must be one of the following:\n\nm_client\n\nm_group\n\nm_loan\n\nm_office\n\nm_saving_account\n\nm_product_loan\n\nm_savings_product\n\nMandatory - columns \nAn array of columns in the new Data Table.\n\nOptional - multiRow\n\nAllows to create multiple entries in the Data Table. Optional, defaults to false. If this property is not provided Data Table will allow only one entry.\n\nField Descriptions - columns\n\nMandatory - name\n\nName of the created column. Can contain only alphanumeric characters, underscores and spaces, but cannot start with a number. Cannot start or end with an underscore or space.\n\nMandatory - type\n\nColumn type. Must be one of the following:\n\nBoolean\n\nDate\n\nDateTime\n\nDecimal\n\nDropdown\n\n\nNumber\n\nString\n\nText\n\nMandatory [type = Dropdown] - code\n\nUsed in Code Value fields. Column name becomes: code_cd_name. Mandatory if using type Dropdown, otherwise an error is returned.\n\nOptional - mandatory\n\nDetermines whether this column must have a value in every entry. Optional, defaults to false.\n\nMandatory [type = String] - length\n\nLength of the text field. Mandatory if type String is used, otherwise an error is returned.", + "operationId": "createDatatable", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "description": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PostDataTablesRequest" + } + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/PostDataTablesResponse" + } } } } @@ -3840,14 +4236,136 @@ } } }, - "/datatables/{datatable}": { + "/datatables/{datatableName}": { + "put": { + "tags": [ + "Data Tables" + ], + "summary": "Update Data Table", + "description": "Modifies fields of a data table. If the apptableName parameter is passed, data table is deregistered and registered with the new application table.", + "operationId": "updateDatatable", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "datatableName", + "in": "path", + "description": "datatableName", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "description": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PutDataTablesRequest" + } + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/PutDataTablesResponse" + } + } + } + }, + "delete": { + "tags": [ + "Data Tables" + ], + "summary": "Delete Data Table", + "description": "Deletes a data table and deregisters it from the Apache Fineract Core application table.", + "operationId": "deleteDatatable", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "datatableName", + "in": "path", + "description": "datatableName", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/DeleteDataTablesResponse" + } + } + } + } + }, + "/datatables/{datatable}/{apptableId}/{datatableId}": { "get": { "tags": [ "Data Tables" ], - "summary": "Retrieve Data Table Details", - "description": "Lists a registered data table details and the Apache Fineract Core application table they are registered to.", - "operationId": "getDatatable", + "operationId": "getDatatableManyEntry", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "datatable", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "apptableId", + "in": "path", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "name": "datatableId", + "in": "path", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "name": "order", + "in": "query", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + }, + "put": { + "tags": [ + "Data Tables" + ], + "summary": "Update Entry in Data Table (One to Many)", + "description": "Updates the row (if it exists) of the data table.", + "operationId": "updateDatatableEntryOneToMany", "consumes": [ "application/json" ], @@ -3861,13 +4379,86 @@ "description": "datatable", "required": true, "type": "string" + }, + { + "name": "apptableId", + "in": "path", + "description": "apptableId", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "name": "datatableId", + "in": "path", + "description": "datatableId", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "in": "body", + "name": "body", + "description": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PutDataTablesAppTableIdDatatableIdRequest" + } } ], "responses": { "200": { "description": "", "schema": { - "$ref": "#/definitions/GetDataTablesResponse" + "$ref": "#/definitions/PutDataTablesAppTableIdDatatableIdResponse" + } + } + } + }, + "delete": { + "tags": [ + "Data Tables" + ], + "summary": "Delete Entry in Datatable (One to Many)", + "description": "Deletes the entry (if it exists) for data tables that are one to many with the application table.\n\n", + "operationId": "deleteDatatableEntries", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "datatable", + "in": "path", + "description": "datatable", + "required": true, + "type": "body", + "x-example": "{}" + }, + { + "name": "apptableId", + "in": "path", + "description": "apptableId", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "name": "datatableId", + "in": "path", + "description": "datatableId", + "required": true, + "type": "integer", + "format": "int64" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/DeleteDataTablesDatatableAppTableIdDatatableIdResponse" } } } @@ -4056,63 +4647,14 @@ } } }, - "/datatables/{datatable}/{apptableId}/{datatableId}": { + "/datatables/{datatable}": { "get": { "tags": [ "Data Tables" ], - "operationId": "getDatatableManyEntry", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "datatable", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "apptableId", - "in": "path", - "required": true, - "type": "integer", - "format": "int64" - }, - { - "name": "datatableId", - "in": "path", - "required": true, - "type": "integer", - "format": "int64" - }, - { - "name": "order", - "in": "query", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "type": "string" - }, - "headers": {} - } - } - }, - "put": { - "tags": [ - "Data Tables" - ], - "summary": "Update Entry in Data Table (One to Many)", - "description": "Updates the row (if it exists) of the data table.", - "operationId": "updateDatatableEntryOneToMany", + "summary": "Retrieve Data Table Details", + "description": "Lists a registered data table details and the Apache Fineract Core application table they are registered to.", + "operationId": "getDatatable", "consumes": [ "application/json" ], @@ -4126,207 +4668,25 @@ "description": "datatable", "required": true, "type": "string" - }, - { - "name": "apptableId", - "in": "path", - "description": "apptableId", - "required": true, - "type": "integer", - "format": "int64" - }, - { - "name": "datatableId", - "in": "path", - "description": "datatableId", - "required": true, - "type": "integer", - "format": "int64" - }, - { - "in": "body", - "name": "body", - "description": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PutDataTablesAppTableIdDatatableIdRequest" - } } ], "responses": { "200": { "description": "", "schema": { - "$ref": "#/definitions/PutDataTablesAppTableIdDatatableIdResponse" - } - } - } - }, - "delete": { - "tags": [ - "Data Tables" - ], - "summary": "Delete Entry in Datatable (One to Many)", - "description": "Deletes the entry (if it exists) for data tables that are one to many with the application table.\n\n", - "operationId": "deleteDatatableEntries", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "datatable", - "in": "path", - "description": "datatable", - "required": true, - "type": "body", - "x-example": "{}" - }, - { - "name": "apptableId", - "in": "path", - "description": "apptableId", - "required": true, - "type": "integer", - "format": "int64" - }, - { - "name": "datatableId", - "in": "path", - "description": "datatableId", - "required": true, - "type": "integer", - "format": "int64" - } - ], - "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/DeleteDataTablesDatatableAppTableIdDatatableIdResponse" + "$ref": "#/definitions/GetDataTablesResponse" } } } } }, - "/datatables": { - "get": { - "tags": [ - "Data Tables" - ], - "summary": "List Data Tables", - "description": "Lists registered data tables and the Apache Fineract Core application table they are registered to.\n\nARGUMENTS\n\napptable - optional\nThe Apache Fineract core application table.\n\nExample Requests:\n\ndatatables?apptable=m_client\n\n\ndatatables", - "operationId": "getDatatables", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "apptable", - "in": "query", - "description": "apptable", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/GetDataTablesResponse" - } - } - } - } - }, - "post": { - "tags": [ - "Data Tables" - ], - "summary": "Create Data Table", - "description": "Create a new data table and registers it with the Apache Fineract Core application table.\n\nField Descriptions\n\nMandatory - datatableName : \n\nThe name of the Data Table.\n\nMandatory - apptableName\n\nApplication table name. Must be one of the following:\n\nm_client\n\nm_group\n\nm_loan\n\nm_office\n\nm_saving_account\n\nm_product_loan\n\nm_savings_product\n\nMandatory - columns \nAn array of columns in the new Data Table.\n\nOptional - multiRow\n\nAllows to create multiple entries in the Data Table. Optional, defaults to false. If this property is not provided Data Table will allow only one entry.\n\nField Descriptions - columns\n\nMandatory - name\n\nName of the created column. Can contain only alphanumeric characters, underscores and spaces, but cannot start with a number. Cannot start or end with an underscore or space.\n\nMandatory - type\n\nColumn type. Must be one of the following:\n\nBoolean\n\nDate\n\nDateTime\n\nDecimal\n\nDropdown\n\n\nNumber\n\nString\n\nText\n\nMandatory [type = Dropdown] - code\n\nUsed in Code Value fields. Column name becomes: code_cd_name. Mandatory if using type Dropdown, otherwise an error is returned.\n\nOptional - mandatory\n\nDetermines whether this column must have a value in every entry. Optional, defaults to false.\n\nMandatory [type = String] - length\n\nLength of the text field. Mandatory if type String is used, otherwise an error is returned.", - "operationId": "createDatatable", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "description": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PostDataTablesRequest" - } - } - ], - "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/PostDataTablesResponse" - } - } - } - } - }, - "/datatables/{datatableName}": { - "put": { - "tags": [ - "Data Tables" - ], - "summary": "Update Data Table", - "description": "Modifies fields of a data table. If the apptableName parameter is passed, data table is deregistered and registered with the new application table.", - "operationId": "updateDatatable", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "datatableName", - "in": "path", - "description": "datatableName", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "body", - "description": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PutDataTablesRequest" - } - } - ], - "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/PutDataTablesResponse" - } - } - } - }, + "/entityDatatableChecks/{entityDatatableCheckId}": { "delete": { "tags": [ - "Data Tables" + "Entity Datatable Check" ], - "summary": "Delete Data Table", - "description": "Deletes a data table and deregisters it from the Apache Fineract Core application table.", + "summary": "Delete Entity-Datatable Checks", + "description": "Deletes an existing Entity-Datatable Check", "operationId": "deleteDatatable", "consumes": [ "application/json" @@ -4336,18 +4696,27 @@ ], "parameters": [ { - "name": "datatableName", + "name": "entityDatatableCheckId", "in": "path", - "description": "datatableName", + "description": "entityDatatableCheckId", "required": true, - "type": "string" + "type": "integer", + "format": "int64" + }, + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } } ], "responses": { "200": { "description": "", "schema": { - "$ref": "#/definitions/DeleteDataTablesResponse" + "$ref": "#/definitions/DeleteEntityDatatableChecksTemplateResponse" } } } @@ -4356,7 +4725,7 @@ "/entityDatatableChecks": { "get": { "tags": [ - "Entity-Datatable Checks" + "Entity Datatable Check" ], "summary": "List Entity-Datatable Checks", "description": "The list capability of Entity-Datatable Checks can support pagination.\n\nOPTIONAL ARGUMENTS\noffset Integer optional, defaults to 0 Indicates the result from which pagination startslimit Integer optional, defaults to 200 Restricts the size of results returned. To override the default and return all entries you must explicitly pass a non-positive integer value for limit e.g. limit=0, or limit=-1\nExample Request:\n\nentityDatatableChecks?offset=0&limit=15", @@ -4422,7 +4791,7 @@ }, "post": { "tags": [ - "Entity-Datatable Checks" + "Entity Datatable Check" ], "summary": "Create Entity-Datatable Checks", "description": "Mandatory Fields : \nentity, status, datatableName\n\nNon-Mandatory Fields : \nproductId", @@ -4454,52 +4823,10 @@ } } }, - "/entityDatatableChecks/{entityDatatableCheckId}": { - "delete": { - "tags": [ - "Entity-Datatable Checks" - ], - "summary": "Delete Entity-Datatable Checks", - "description": "Deletes an existing Entity-Datatable Check", - "operationId": "deleteDatatable", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "entityDatatableCheckId", - "in": "path", - "description": "entityDatatableCheckId", - "required": true, - "type": "integer", - "format": "int64" - }, - { - "in": "body", - "name": "body", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/DeleteEntityDatatableChecksTemplateResponse" - } - } - } - } - }, "/entityDatatableChecks/template": { "get": { "tags": [ - "Entity-Datatable Checks" + "Entity Datatable Check" ], "summary": "Retrieve Entity-Datatable Checks Template", "description": "This is a convenience resource useful for building maintenance user interface screens for Entity-Datatable Checks applications. The template data returned consists of:\n\nAllowed Value Lists\nExample Request:\n\nentityDatatableChecks/template", @@ -4521,61 +4848,6 @@ } } }, - "/reports": { - "get": { - "tags": [ - "Reports" - ], - "summary": "List Reports", - "description": "Lists all reports and their parameters.\n\nExample Request:\n\nreports", - "operationId": "retrieveReportList", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [], - "responses": { - "200": { - "description": "" - } - } - }, - "post": { - "tags": [ - "Reports" - ], - "summary": "Create a Report", - "description": "", - "operationId": "createReport", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "description": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PostRepostRequest" - } - } - ], - "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/PostReportsResponse" - } - } - } - } - }, "/reports/{id}": { "get": { "tags": [ @@ -4708,6 +4980,61 @@ } } }, + "/reports": { + "get": { + "tags": [ + "Reports" + ], + "summary": "List Reports", + "description": "Lists all reports and their parameters.\n\nExample Request:\n\nreports", + "operationId": "retrieveReportList", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "" + } + } + }, + "post": { + "tags": [ + "Reports" + ], + "summary": "Create a Report", + "description": "", + "operationId": "createReport", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "description": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PostRepostRequest" + } + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/PostReportsResponse" + } + } + } + } + }, "/runreports/{reportName}": { "get": { "tags": [ @@ -4753,6 +5080,164 @@ } } }, + "/{entityType}/{entityId}/documents/{documentId}/attachment": { + "get": { + "tags": [ + "Documents" + ], + "summary": "Retrieve Binary File associated with Document", + "description": "Request used to download the file associated with the document\n\nExample Requests:\n\nclients/1/documents/1/attachment\n\n\nloans/1/documents/1/attachment", + "operationId": "downloadFile", + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "name": "entityType", + "in": "path", + "description": "entityType", + "required": true, + "type": "string" + }, + { + "name": "entityId", + "in": "path", + "description": "entityId", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "name": "documentId", + "in": "path", + "description": "documentId", + "required": true, + "type": "integer", + "format": "int64" + } + ], + "responses": { + "200": { + "description": "Not Shown: The corresponding Binary file" + } + } + } + }, + "/{entityType}/{entityId}/documents": { + "get": { + "tags": [ + "Documents" + ], + "summary": "List documents", + "description": "Example Requests:\n\nclients/1/documents\n\nclient_identifiers/1/documents\n\nloans/1/documents?fields=name,description", + "operationId": "retreiveAllDocuments", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "entityType", + "in": "path", + "description": "entityType", + "required": true, + "type": "string" + }, + { + "name": "entityId", + "in": "path", + "description": "entityId", + "required": true, + "type": "integer", + "format": "int64" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/GetEntityTypeEntityIdDocumentsResponse" + } + } + } + } + }, + "post": { + "tags": [ + "Documents" + ], + "summary": "Create a Document", + "description": "Note: A document is created using a Multi-part form upload \n\nBody Parts\n\nname : \nName or summary of the document\n\ndescription : \nDescription of the document\n\nfile : \nThe file to be uploaded\n\nMandatory Fields : \nfile and description", + "operationId": "createDocument", + "consumes": [ + "multipart/form-data" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "entityType", + "in": "path", + "description": "entityType", + "required": true, + "type": "string" + }, + { + "name": "entityId", + "in": "path", + "description": "entityId", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "name": "Content-Length", + "in": "header", + "description": "Content-Length", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "file", + "in": "formData", + "description": "file", + "required": false, + "type": "file" + }, + { + "name": "name", + "in": "formData", + "description": "name", + "required": false, + "type": "string" + }, + { + "name": "description", + "in": "formData", + "description": "description", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Not Shown (multi-part form data)", + "schema": { + "$ref": "#/definitions/PostEntityTypeEntityIdDocumentsResponse" + } + } + } + } + }, "/{entityType}/{entityId}/documents/{documentId}": { "get": { "tags": [ @@ -4925,175 +5410,19 @@ } } }, - "/{entityType}/{entityId}/documents/{documentId}/attachment": { - "get": { - "tags": [ - "Documents" - ], - "summary": "Retrieve Binary File associated with Document", - "description": "Request used to download the file associated with the document\n\nExample Requests:\n\nclients/1/documents/1/attachment\n\n\nloans/1/documents/1/attachment", - "operationId": "downloadFile", - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "name": "entityType", - "in": "path", - "description": "entityType", - "required": true, - "type": "string" - }, - { - "name": "entityId", - "in": "path", - "description": "entityId", - "required": true, - "type": "integer", - "format": "int64" - }, - { - "name": "documentId", - "in": "path", - "description": "documentId", - "required": true, - "type": "integer", - "format": "int64" - } - ], - "responses": { - "200": { - "description": "Not Shown: The corresponding Binary file" - } - } - } - }, - "/{entityType}/{entityId}/documents": { - "get": { - "tags": [ - "Documents" - ], - "summary": "List documents", - "description": "Example Requests:\n\nclients/1/documents\n\nclient_identifiers/1/documents\n\nloans/1/documents?fields=name,description", - "operationId": "retreiveAllDocuments", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "entityType", - "in": "path", - "description": "entityType", - "required": true, - "type": "string" - }, - { - "name": "entityId", - "in": "path", - "description": "entityId", - "required": true, - "type": "integer", - "format": "int64" - } - ], - "responses": { - "200": { - "description": "", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/GetEntityTypeEntityIdDocumentsResponse" - } - } - } - } - }, - "post": { - "tags": [ - "Documents" - ], - "summary": "Create a Document", - "description": "Note: A document is created using a Multi-part form upload \n\nBody Parts\n\nname : \nName or summary of the document\n\ndescription : \nDescription of the document\n\nfile : \nThe file to be uploaded\n\nMandatory Fields : \nfile and description", - "operationId": "createDocument", - "consumes": [ - "multipart/form-data" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "entityType", - "in": "path", - "description": "entityType", - "required": true, - "type": "string" - }, - { - "name": "entityId", - "in": "path", - "description": "entityId", - "required": true, - "type": "integer", - "format": "int64" - }, - { - "name": "Content-Length", - "in": "header", - "description": "Content-Length", - "required": false, - "type": "integer", - "format": "int64" - }, - { - "name": "file", - "in": "formData", - "description": "file", - "required": false, - "type": "file" - }, - { - "name": "name", - "in": "formData", - "description": "name", - "required": false, - "type": "string" - }, - { - "name": "description", - "in": "formData", - "description": "description", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "Not Shown (multi-part form data)", - "schema": { - "$ref": "#/definitions/PostEntityTypeEntityIdDocumentsResponse" - } - } - } - } - }, "/{entity}/{entityId}/images": { "get": { "tags": [ "DomainNameapiv1{entity}{entityId}images" ], - "operationId": "downloadClientImage", + "operationId": "retrieveImage", "consumes": [ + "text/plain", + "text/html", "application/json" ], "produces": [ - "application/octet-stream" + "text/plain" ], "parameters": [ { @@ -5142,9 +5471,7 @@ ], "operationId": "addNewClientImage", "consumes": [ - "text/plain", - "text/html", - "application/json" + "multipart/form-data" ], "produces": [ "application/json" @@ -5164,12 +5491,17 @@ "format": "int64" }, { - "in": "body", - "name": "body", + "name": "Content-Length", + "in": "header", "required": false, - "schema": { - "type": "string" - } + "type": "integer", + "format": "int64" + }, + { + "name": "file", + "in": "formData", + "required": false, + "type": "file" } ], "responses": { @@ -5314,6 +5646,30 @@ } } }, + "/entitytoentitymapping": { + "get": { + "tags": [ + "DomainNameapiv1entitytoentitymapping" + ], + "operationId": "retrieveAll", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, "/entitytoentitymapping/{mapId}": { "get": { "tags": [ @@ -5414,30 +5770,6 @@ } } }, - "/entitytoentitymapping": { - "get": { - "tags": [ - "DomainNameapiv1entitytoentitymapping" - ], - "operationId": "retrieveAll", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "type": "string" - }, - "headers": {} - } - } - } - }, "/entitytoentitymapping/{relId}": { "post": { "tags": [ @@ -5722,6 +6054,70 @@ } } }, + "/jobs/{jobId}/runhistory": { + "get": { + "tags": [ + "MIFOSX-BATCH JOBS" + ], + "summary": "Retrieve Job Run History", + "description": "Example Requests:\n\njobs/5/runhistory?offset=0&limit=200", + "operationId": "retrieveHistory", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "jobId", + "in": "path", + "description": "jobId", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "name": "offset", + "in": "query", + "description": "offset", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "limit", + "in": "query", + "description": "limit", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "orderBy", + "in": "query", + "description": "orderBy", + "required": false, + "type": "string" + }, + { + "name": "sortOrder", + "in": "query", + "description": "sortOrder", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/GetJobsJobIDJobRunHistoryResponse" + } + } + } + } + }, "/jobs/{jobId}": { "get": { "tags": [ @@ -5830,14 +6226,42 @@ } } }, - "/jobs/{jobId}/runhistory": { + "/jobs": { "get": { "tags": [ "MIFOSX-BATCH JOBS" ], - "summary": "Retrieve Job Run History", - "description": "Example Requests:\n\njobs/5/runhistory?offset=0&limit=200", - "operationId": "retrieveHistory", + "summary": "Retrieve Scheduler Jobs", + "description": "Returns the list of jobs.\n\nExample Requests:\n\njobs", + "operationId": "retrieveAll", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/GetJobsResponse" + } + } + } + } + } + }, + "/reportmailingjobs": { + "get": { + "tags": [ + "Report Mailing Jobs" + ], + "summary": "List Report Mailing Jobs", + "description": "Example Requests:\n\nreportmailingjobs", + "operationId": "retrieveAllReportMailingJobs", "consumes": [ "application/json" ], @@ -5845,14 +6269,6 @@ "application/json" ], "parameters": [ - { - "name": "jobId", - "in": "path", - "description": "jobId", - "required": true, - "type": "integer", - "format": "int64" - }, { "name": "offset", "in": "query", @@ -5888,35 +6304,43 @@ "200": { "description": "", "schema": { - "$ref": "#/definitions/GetJobsJobIDJobRunHistoryResponse" + "type": "array", + "items": { + "$ref": "#/definitions/GetReportMailingJobsResponse" + } } } } - } - }, - "/jobs": { - "get": { + }, + "post": { "tags": [ - "MIFOSX-BATCH JOBS" + "Report Mailing Jobs" ], - "summary": "Retrieve Scheduler Jobs", - "description": "Returns the list of jobs.\n\nExample Requests:\n\njobs", - "operationId": "retrieveAll", + "summary": "Create a Report Mailing Job", + "description": "Mandatory Fields: name, startDateTime, stretchyReportId, emailRecipients, emailSubject, emailMessage, emailAttachmentFileFormatId, recurrence, isActive\n\nOptional Fields: description, stretchyReportParamMap", + "operationId": "createReportMailingJob", "consumes": [ "application/json" ], "produces": [ "application/json" ], - "parameters": [], + "parameters": [ + { + "in": "body", + "name": "body", + "description": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PostReportMailingJobsRequest" + } + } + ], "responses": { "200": { "description": "", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/GetJobsResponse" - } + "$ref": "#/definitions/PostReportMailingJobsResponse" } } } @@ -6038,98 +6462,6 @@ } } }, - "/reportmailingjobs": { - "get": { - "tags": [ - "Report Mailing Jobs" - ], - "summary": "List Report Mailing Jobs", - "description": "Example Requests:\n\nreportmailingjobs", - "operationId": "retrieveAllReportMailingJobs", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "offset", - "in": "query", - "description": "offset", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "limit", - "in": "query", - "description": "limit", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "orderBy", - "in": "query", - "description": "orderBy", - "required": false, - "type": "string" - }, - { - "name": "sortOrder", - "in": "query", - "description": "sortOrder", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/GetReportMailingJobsResponse" - } - } - } - } - }, - "post": { - "tags": [ - "Report Mailing Jobs" - ], - "summary": "Create a Report Mailing Job", - "description": "Mandatory Fields: name, startDateTime, stretchyReportId, emailRecipients, emailSubject, emailMessage, emailAttachmentFileFormatId, recurrence, isActive\n\nOptional Fields: description, stretchyReportParamMap", - "operationId": "createReportMailingJob", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "description": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PostReportMailingJobsRequest" - } - } - ], - "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/PostReportMailingJobsResponse" - } - } - } - } - }, "/reportmailingjobs/template": { "get": { "tags": [ @@ -6539,6 +6871,37 @@ } } }, + "/likelihood/{ppiName}": { + "get": { + "tags": [ + "Likelihood" + ], + "operationId": "retrieveAll", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "ppiName", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, "/likelihood/{ppiName}/{likelihoodId}": { "get": { "tags": [ @@ -6609,37 +6972,6 @@ } } }, - "/likelihood/{ppiName}": { - "get": { - "tags": [ - "Likelihood" - ], - "operationId": "retrieveAll", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "ppiName", - "in": "path", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "type": "string" - }, - "headers": {} - } - } - } - }, "/povertyLine/{ppiName}": { "get": { "tags": [ @@ -6709,150 +7041,6 @@ } } }, - "/survey": { - "get": { - "tags": [ - "Survey" - ], - "summary": "Retrieve surveys", - "description": "Retrieve surveys. This allows to retrieve the list of survey tables registered .", - "operationId": "retrieveSurveys", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [], - "responses": { - "200": { - "description": "", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/GetSurveyResponse" - } - } - } - } - } - }, - "/survey/{surveyName}": { - "get": { - "tags": [ - "Survey" - ], - "summary": "Retrieve survey", - "description": "Lists a registered survey table details and the Apache Fineract Core application table they are registered to.", - "operationId": "retrieveSurvey", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "surveyName", - "in": "path", - "description": "surveyName", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/GetSurveyResponse" - } - } - } - } - }, - "/survey/{surveyName}/{clientId}": { - "get": { - "tags": [ - "Survey" - ], - "operationId": "getClientSurveyOverview", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "surveyName", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "clientId", - "in": "path", - "required": true, - "type": "integer", - "format": "int64" - } - ], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "type": "string" - }, - "headers": {} - } - } - } - }, - "/survey/{surveyName}/{clientId}/{entryId}": { - "get": { - "tags": [ - "Survey" - ], - "operationId": "getSurveyEntry", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "surveyName", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "clientId", - "in": "path", - "required": true, - "type": "integer", - "format": "int64" - }, - { - "name": "entryId", - "in": "path", - "required": true, - "type": "integer", - "format": "int64" - } - ], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "type": "string" - }, - "headers": {} - } - } - } - }, "/survey/{surveyName}/{apptableId}": { "post": { "tags": [ @@ -6956,6 +7144,150 @@ } } }, + "/survey/{surveyName}/{clientId}": { + "get": { + "tags": [ + "Survey" + ], + "operationId": "getClientSurveyOverview", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "surveyName", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "clientId", + "in": "path", + "required": true, + "type": "integer", + "format": "int64" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, + "/survey/{surveyName}/{clientId}/{entryId}": { + "get": { + "tags": [ + "Survey" + ], + "operationId": "getSurveyEntry", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "surveyName", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "clientId", + "in": "path", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "name": "entryId", + "in": "path", + "required": true, + "type": "integer", + "format": "int64" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, + "/survey/{surveyName}": { + "get": { + "tags": [ + "Survey" + ], + "summary": "Retrieve survey", + "description": "Lists a registered survey table details and the Apache Fineract Core application table they are registered to.", + "operationId": "retrieveSurvey", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "surveyName", + "in": "path", + "description": "surveyName", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/GetSurveyResponse" + } + } + } + } + }, + "/survey": { + "get": { + "tags": [ + "Survey" + ], + "summary": "Retrieve surveys", + "description": "Retrieve surveys. This allows to retrieve the list of survey tables registered .", + "operationId": "retrieveSurveys", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/GetSurveyResponse" + } + } + } + } + } + }, "/survey/register/{surveyName}/{apptable}": { "put": { "tags": [ @@ -7001,6 +7333,738 @@ } } }, + "/interoperation/accounts/{accountId}": { + "get": { + "tags": [ + "interoperation" + ], + "summary": "Query Interoperation Account details", + "description": "", + "operationId": "getAccountDetails", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "accountId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InteropAccountData" + } + } + } + } + }, + "/interoperation/accounts/{accountId}/transactions": { + "get": { + "tags": [ + "interoperation" + ], + "summary": "Query transactions by Account Id", + "description": "", + "operationId": "getAccountTransactions", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "accountId", + "required": true, + "type": "string" + }, + { + "name": "debit", + "in": "query", + "description": "debit", + "required": false, + "type": "boolean", + "default": true + }, + { + "name": "credit", + "in": "query", + "description": "credit", + "required": false, + "type": "boolean", + "default": false + }, + { + "name": "fromBookingDateTime", + "in": "query", + "description": "fromBookingDateTime", + "required": false, + "type": "string" + }, + { + "name": "toBookingDateTime", + "in": "query", + "description": "toBookingDateTime", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InteropTransactionsData" + } + } + } + } + }, + "/interoperation/accounts/{accountId}/identifiers": { + "get": { + "tags": [ + "interoperation" + ], + "summary": "Query Interoperation secondary identifiers by Account Id", + "description": "", + "operationId": "getAccountIdentifiers", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "accountId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InteropIdentifiersResponseData" + } + } + } + } + }, + "/interoperation/parties/{idType}/{idValue}": { + "get": { + "tags": [ + "interoperation" + ], + "summary": "Query Interoperation Account by secondary identifier", + "description": "", + "operationId": "getAccountByIdentifier", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "idType", + "in": "path", + "description": "idType", + "required": true, + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ] + }, + { + "name": "idValue", + "in": "path", + "description": "idValue", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InteropIdentifierAccountResponseData" + } + } + } + }, + "post": { + "tags": [ + "interoperation" + ], + "summary": "Interoperation Identifier registration", + "description": "", + "operationId": "registerAccountIdentifier", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "idType", + "in": "path", + "description": "idType", + "required": true, + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ] + }, + { + "name": "idValue", + "in": "path", + "description": "idValue", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "description": "body", + "required": true, + "schema": { + "$ref": "#/definitions/InteropIdentifierRequestData" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InteropIdentifierAccountResponseData" + } + } + } + }, + "delete": { + "tags": [ + "interoperation" + ], + "summary": "Allow Interoperation Identifier registration", + "description": "", + "operationId": "deleteAccountIdentifier", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "idType", + "in": "path", + "description": "idType", + "required": true, + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ] + }, + { + "name": "idValue", + "in": "path", + "description": "idValue", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "description": "body", + "required": true, + "schema": { + "$ref": "#/definitions/InteropIdentifierRequestData" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InteropIdentifierAccountResponseData" + } + } + } + } + }, + "/interoperation/parties/{idType}/{idValue}/{subIdOrType}": { + "get": { + "tags": [ + "interoperation" + ], + "summary": "Query Interoperation Account by secondary identifier", + "description": "", + "operationId": "getAccountByIdentifier", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "idType", + "in": "path", + "description": "idType", + "required": true, + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ] + }, + { + "name": "idValue", + "in": "path", + "description": "idValue", + "required": true, + "type": "string" + }, + { + "name": "subIdOrType", + "in": "path", + "description": "subIdOrType", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InteropIdentifierAccountResponseData" + } + } + } + }, + "post": { + "tags": [ + "interoperation" + ], + "summary": "Interoperation Identifier registration", + "description": "", + "operationId": "registerAccountIdentifier", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "idType", + "in": "path", + "description": "idType", + "required": true, + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ] + }, + { + "name": "idValue", + "in": "path", + "description": "idValue", + "required": true, + "type": "string" + }, + { + "name": "subIdOrType", + "in": "path", + "description": "subIdOrType", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "description": "body", + "required": true, + "schema": { + "$ref": "#/definitions/InteropIdentifierRequestData" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InteropIdentifierAccountResponseData" + } + } + } + }, + "delete": { + "tags": [ + "interoperation" + ], + "summary": "Allow Interoperation Identifier registration", + "description": "", + "operationId": "deleteAccountIdentifier", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "idType", + "in": "path", + "description": "idType", + "required": true, + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ] + }, + { + "name": "idValue", + "in": "path", + "description": "idValue", + "required": true, + "type": "string" + }, + { + "name": "subIdOrType", + "in": "path", + "description": "subIdOrType", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "description": "body", + "required": true, + "schema": { + "$ref": "#/definitions/InteropIdentifierRequestData" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InteropIdentifierAccountResponseData" + } + } + } + } + }, + "/interoperation/transactions/{transactionCode}/requests/{requestCode}": { + "get": { + "tags": [ + "interoperation" + ], + "summary": "Query Interoperation Transaction Request", + "description": "", + "operationId": "getTransactionRequest", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "transactionCode", + "in": "path", + "description": "transactionCode", + "required": true, + "type": "string" + }, + { + "name": "requestCode", + "in": "path", + "description": "requestCode", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InteropTransactionRequestResponseData" + } + } + } + } + }, + "/interoperation/requests": { + "post": { + "tags": [ + "interoperation" + ], + "summary": "Allow Interoperation Transaction Request", + "description": "", + "operationId": "createTransactionRequest", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "description": "body", + "required": true, + "schema": { + "$ref": "#/definitions/InteropTransactionRequestData" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InteropTransactionRequestResponseData" + } + } + } + } + }, + "/interoperation/transactions/{transactionCode}/quotes/{quoteCode}": { + "get": { + "tags": [ + "interoperation" + ], + "summary": "Query Interoperation Quote", + "description": "", + "operationId": "getQuote", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "transactionCode", + "in": "path", + "description": "transactionCode", + "required": true, + "type": "string" + }, + { + "name": "quoteCode", + "in": "path", + "description": "quoteCode", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InteropQuoteResponseData" + } + } + } + } + }, + "/interoperation/quotes": { + "post": { + "tags": [ + "interoperation" + ], + "summary": "Calculate Interoperation Quote", + "description": "", + "operationId": "createQuote", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "description": "body", + "required": true, + "schema": { + "$ref": "#/definitions/InteropQuoteRequestData" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InteropQuoteResponseData" + } + } + } + } + }, + "/interoperation/transactions/{transactionCode}/transfers/{transferCode}": { + "get": { + "tags": [ + "interoperation" + ], + "summary": "Query Interoperation Transfer", + "description": "", + "operationId": "getTransfer", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "transactionCode", + "in": "path", + "description": "transactionCode", + "required": true, + "type": "string" + }, + { + "name": "transferCode", + "in": "path", + "description": "transferCode", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InteropTransferResponseData" + } + } + } + } + }, + "/interoperation/transfers": { + "post": { + "tags": [ + "interoperation" + ], + "summary": "Prepare Interoperation Transfer", + "description": "", + "operationId": "performTransfer", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "action", + "in": "query", + "description": "action", + "required": false, + "type": "string" + }, + { + "in": "body", + "name": "body", + "description": "body", + "required": true, + "schema": { + "$ref": "#/definitions/InteropTransferRequestData" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InteropTransferResponseData" + } + } + } + } + }, + "/interoperation/health": { + "get": { + "tags": [ + "interoperation" + ], + "summary": "Query Interoperation Health Request", + "description": "", + "operationId": "health", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK" + } + } + } + }, "/mixreport": { "get": { "tags": [ @@ -7070,7 +8134,7 @@ "/mixmapping": { "get": { "tags": [ - "Mix Mapping" + "Mix Mapping " ], "operationId": "retrieveTaxonomyMapping", "consumes": [ @@ -7092,7 +8156,7 @@ }, "put": { "tags": [ - "Mix Mapping" + "Mix Mapping " ], "operationId": "updateTaxonomyMapping", "consumes": [ @@ -7122,14 +8186,12 @@ } } }, - "/holidays": { + "/notifications": { "get": { "tags": [ - "Holidays" + "Notification" ], - "summary": "List Holidays", - "description": "Example Requests:\n\nholidays?officeId=1", - "operationId": "retrieveAllHolidays", + "operationId": "getAllNotifications", "consumes": [ "application/json" ], @@ -7138,94 +8200,53 @@ ], "parameters": [ { - "name": "officeId", + "name": "orderBy", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "limit", "in": "query", - "description": "officeId", "required": false, "type": "integer", - "format": "int64" + "format": "int32" }, { - "name": "fromDate", + "name": "offset", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "sortOrder", "in": "query", - "description": "fromDate", "required": false, "type": "string" }, { - "name": "toDate", + "name": "isRead", "in": "query", - "description": "toDate", "required": false, - "type": "string" - }, - { - "name": "locale", - "in": "query", - "description": "locale", - "required": false, - "type": "string" - }, - { - "name": "dateFormat", - "in": "query", - "description": "dateFormat", - "required": false, - "type": "string" + "type": "boolean" } ], "responses": { "200": { - "description": "", + "description": "successful operation", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/GetHolidaysResponse" - } - } + "type": "string" + }, + "headers": {} } } }, - "post": { + "put": { "tags": [ - "Holidays" + "Notification" ], - "summary": "Create a Holiday", - "description": "Mandatory Fields: name, description, fromDate, toDate, repaymentsRescheduledTo, offices", - "operationId": "createNewHoliday", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "description": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PostHolidaysRequest" - } - } - ], - "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/PostHolidaysResponse" - } - } - } - } - }, - "/holidays/template": { - "get": { - "tags": [ - "Holidays" - ], - "operationId": "retrieveRepaymentScheduleUpdationTyeOptions", + "operationId": "update", "consumes": [ "application/json" ], @@ -7234,12 +8255,8 @@ ], "parameters": [], "responses": { - "200": { - "description": "successful operation", - "schema": { - "type": "string" - }, - "headers": {} + "default": { + "description": "successful operation" } } } @@ -7399,6 +8416,128 @@ } } }, + "/holidays": { + "get": { + "tags": [ + "Holidays" + ], + "summary": "List Holidays", + "description": "Example Requests:\n\nholidays?officeId=1", + "operationId": "retrieveAllHolidays", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "officeId", + "in": "query", + "description": "officeId", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "fromDate", + "in": "query", + "description": "fromDate", + "required": false, + "type": "string" + }, + { + "name": "toDate", + "in": "query", + "description": "toDate", + "required": false, + "type": "string" + }, + { + "name": "locale", + "in": "query", + "description": "locale", + "required": false, + "type": "string" + }, + { + "name": "dateFormat", + "in": "query", + "description": "dateFormat", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/GetHolidaysResponse" + } + } + } + } + }, + "post": { + "tags": [ + "Holidays" + ], + "summary": "Create a Holiday", + "description": "Mandatory Fields: name, description, fromDate, toDate, repaymentsRescheduledTo, offices", + "operationId": "createNewHoliday", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "description": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PostHolidaysRequest" + } + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/PostHolidaysResponse" + } + } + } + } + }, + "/holidays/template": { + "get": { + "tags": [ + "Holidays" + ], + "operationId": "retrieveRepaymentScheduleUpdationTyeOptions", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, "/currencies": { "get": { "tags": [ @@ -7568,6 +8707,95 @@ } } }, + "/offices/template": { + "get": { + "tags": [ + "Offices" + ], + "summary": "Retrieve Office Details Template", + "description": "This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of:\n\nField Defaults\nAllowed Value Lists\nExample Request:\n\noffices/template", + "operationId": "retrieveOfficeTemplate", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/GetOfficesTemplateResponse" + } + } + } + } + }, + "/offices/downloadtemplate": { + "get": { + "tags": [ + "Offices" + ], + "operationId": "getOfficeTemplate", + "produces": [ + "application/vnd.ms-excel" + ], + "parameters": [ + { + "name": "dateFormat", + "in": "query", + "required": false, + "type": "string" + } + ], + "responses": { + "default": { + "description": "successful operation" + } + } + } + }, + "/offices/uploadtemplate": { + "post": { + "tags": [ + "Offices" + ], + "operationId": "postOfficeTemplate", + "consumes": [ + "multipart/form-data" + ], + "parameters": [ + { + "name": "file", + "in": "formData", + "required": false, + "type": "file" + }, + { + "name": "locale", + "in": "formData", + "required": false, + "type": "string" + }, + { + "name": "dateFormat", + "in": "formData", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, "/offices": { "get": { "tags": [ @@ -7727,150 +8955,6 @@ } } }, - "/offices/downloadtemplate": { - "get": { - "tags": [ - "Offices" - ], - "operationId": "getOfficeTemplate", - "produces": [ - "application/vnd.ms-excel" - ], - "parameters": [ - { - "name": "dateFormat", - "in": "query", - "required": false, - "type": "string" - } - ], - "responses": { - "default": { - "description": "successful operation" - } - } - } - }, - "/offices/uploadtemplate": { - "post": { - "tags": [ - "Offices" - ], - "operationId": "postOfficeTemplate", - "consumes": [ - "multipart/form-data" - ], - "parameters": [ - { - "name": "file", - "in": "formData", - "required": false, - "type": "file" - }, - { - "name": "locale", - "in": "formData", - "required": false, - "type": "string" - }, - { - "name": "dateFormat", - "in": "formData", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "type": "string" - }, - "headers": {} - } - } - } - }, - "/offices/template": { - "get": { - "tags": [ - "Offices" - ], - "summary": "Retrieve Office Details Template", - "description": "This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of:\n\nField Defaults\nAllowed Value Lists\nExample Request:\n\noffices/template", - "operationId": "retrieveOfficeTemplate", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [], - "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/GetOfficesTemplateResponse" - } - } - } - } - }, - "/provisioningcategory": { - "get": { - "tags": [ - "Provisioning Category" - ], - "operationId": "retrieveAll", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "type": "string" - }, - "headers": {} - } - } - }, - "post": { - "tags": [ - "Provisioning Category" - ], - "operationId": "createProvisioningCategory", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "type": "string" - }, - "headers": {} - } - } - } - }, "/provisioningcategory/{categoryId}": { "put": { "tags": [ @@ -7941,6 +9025,61 @@ } } }, + "/provisioningcategory": { + "get": { + "tags": [ + "Provisioning Category" + ], + "operationId": "retrieveAll", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + }, + "post": { + "tags": [ + "Provisioning Category" + ], + "operationId": "createProvisioningCategory", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, "/provisioningcriteria/{criteriaId}": { "get": { "tags": [ @@ -8380,7 +9519,7 @@ "/cashiers": { "get": { "tags": [ - "cashiers" + "Cashiers" ], "operationId": "getCashierData", "consumes": [ @@ -8430,167 +9569,6 @@ } } }, - "/tellers": { - "get": { - "tags": [ - "Teller Cash Management" - ], - "summary": "List all tellers", - "description": "Retrieves list tellers", - "operationId": "getTellerData", - "consumes": [ - "text/html", - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "officeId", - "in": "query", - "description": "officeId", - "required": false, - "type": "integer", - "format": "int64" - } - ], - "responses": { - "200": { - "description": "", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/GetTellersResponse" - } - } - } - } - }, - "post": { - "tags": [ - "Teller Cash Management" - ], - "summary": "Create teller", - "description": "Mandatory Fields\nTeller name, OfficeId, Description, Start Date, Status\nOptional Fields\nEnd Date", - "operationId": "createTeller", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "description": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PostTellersRequest" - } - } - ], - "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/PostTellersResponse" - } - } - } - } - }, - "/tellers/{tellerId}/cashiers": { - "get": { - "tags": [ - "Teller Cash Management" - ], - "summary": "List Cashiers", - "description": "", - "operationId": "getCashierData", - "consumes": [ - "text/html", - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "tellerId", - "in": "path", - "description": "tellerId", - "required": true, - "type": "integer", - "format": "int64" - }, - { - "name": "fromdate", - "in": "query", - "description": "fromdate", - "required": false, - "type": "string" - }, - { - "name": "todate", - "in": "query", - "description": "todate", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/GetTellersTellerIdCashiersResponse" - } - } - } - }, - "post": { - "tags": [ - "Teller Cash Management" - ], - "summary": "Create Cashiers", - "description": "Mandatory Fields: \nCashier/staff, Fromm Date, To Date, Full Day or From time and To time\n\n\n\nOptional Fields: \nDescription/Notes", - "operationId": "createCashier", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "tellerId", - "in": "path", - "description": "tellerId", - "required": true, - "type": "integer", - "format": "int64" - }, - { - "in": "body", - "name": "body", - "description": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PostTellersTellerIdCashiersRequest" - } - } - ], - "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/PostTellersTellerIdCashiersResponse" - } - } - } - } - }, "/tellers/{tellerId}": { "get": { "tags": [ @@ -8867,6 +9845,167 @@ } } }, + "/tellers/{tellerId}/cashiers": { + "get": { + "tags": [ + "Teller Cash Management" + ], + "summary": "List Cashiers", + "description": "", + "operationId": "getCashierData", + "consumes": [ + "text/html", + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "tellerId", + "in": "path", + "description": "tellerId", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "name": "fromdate", + "in": "query", + "description": "fromdate", + "required": false, + "type": "string" + }, + { + "name": "todate", + "in": "query", + "description": "todate", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/GetTellersTellerIdCashiersResponse" + } + } + } + }, + "post": { + "tags": [ + "Teller Cash Management" + ], + "summary": "Create Cashiers", + "description": "Mandatory Fields: \nCashier/staff, Fromm Date, To Date, Full Day or From time and To time\n\n\n\nOptional Fields: \nDescription/Notes", + "operationId": "createCashier", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "tellerId", + "in": "path", + "description": "tellerId", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "in": "body", + "name": "body", + "description": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PostTellersTellerIdCashiersRequest" + } + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/PostTellersTellerIdCashiersResponse" + } + } + } + } + }, + "/tellers": { + "get": { + "tags": [ + "Teller Cash Management" + ], + "summary": "List all tellers", + "description": "Retrieves list tellers", + "operationId": "getTellerData", + "consumes": [ + "text/html", + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "officeId", + "in": "query", + "description": "officeId", + "required": false, + "type": "integer", + "format": "int64" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/GetTellersResponse" + } + } + } + } + }, + "post": { + "tags": [ + "Teller Cash Management" + ], + "summary": "Create teller", + "description": "Mandatory Fields\nTeller name, OfficeId, Description, Start Date, Status\nOptional Fields\nEnd Date", + "operationId": "createTeller", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "description": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PostTellersRequest" + } + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/PostTellersResponse" + } + } + } + } + }, "/tellers/{tellerId}/cashiers/{cashierId}/allocate": { "post": { "tags": [ @@ -9310,7 +10449,7 @@ "/cashiersjournal": { "get": { "tags": [ - "cashiersjournal" + "Cashier Journals" ], "operationId": "getJournalData", "consumes": [ @@ -9360,31 +10499,6 @@ } } }, - "/workingdays/template": { - "get": { - "tags": [ - "Working days" - ], - "summary": "Working Days Template", - "description": "This is a convenience resource. It can be useful when building maintenance user interface screens for working days.\n\nExample Request:\n\nworkingdays/template", - "operationId": "template", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [], - "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/GetWorkingDaysTemplateResponse" - } - } - } - } - }, "/workingdays": { "get": { "tags": [ @@ -9446,6 +10560,31 @@ } } }, + "/workingdays/template": { + "get": { + "tags": [ + "Working days" + ], + "summary": "Working Days Template", + "description": "This is a convenience resource. It can be useful when building maintenance user interface screens for working days.\n\nExample Request:\n\nworkingdays/template", + "operationId": "template", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/GetWorkingDaysTemplateResponse" + } + } + } + } + }, "/accounttransfers/templateRefundByTransfer": { "get": { "tags": [ @@ -9571,96 +10710,6 @@ } } }, - "/accounttransfers/template": { - "get": { - "tags": [ - "Account Transfers" - ], - "summary": "Retrieve Account Transfer Template", - "description": "This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of:\n\n\n\nField Defaults\n\nAllowed Value Lists\n\nExample Requests:\n\n\n\naccounttransfers/template?fromAccountType=2&fromOfficeId=1\n\n\n\naccounttransfers/template?fromAccountType=2&fromOfficeId=1&fromClientId=1\n\n\n\naccounttransfers/template?fromClientId=1&fromAccountType=2&fromAccountId=1", - "operationId": "template", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "fromOfficeId", - "in": "query", - "description": "fromOfficeId", - "required": false, - "type": "integer", - "format": "int64" - }, - { - "name": "fromClientId", - "in": "query", - "description": "fromClientId", - "required": false, - "type": "integer", - "format": "int64" - }, - { - "name": "fromAccountId", - "in": "query", - "description": "fromAccountId", - "required": false, - "type": "integer", - "format": "int64" - }, - { - "name": "fromAccountType", - "in": "query", - "description": "fromAccountType", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "toOfficeId", - "in": "query", - "description": "toOfficeId", - "required": false, - "type": "integer", - "format": "int64" - }, - { - "name": "toClientId", - "in": "query", - "description": "toClientId", - "required": false, - "type": "integer", - "format": "int64" - }, - { - "name": "toAccountId", - "in": "query", - "description": "toAccountId", - "required": false, - "type": "integer", - "format": "int64" - }, - { - "name": "toAccountType", - "in": "query", - "description": "toAccountType", - "required": false, - "type": "integer", - "format": "int32" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/GetAccountTransfersTemplateResponse" - } - } - } - } - }, "/accounttransfers": { "get": { "tags": [ @@ -9806,13 +10855,13 @@ } } }, - "/standinginstructions/template": { + "/accounttransfers/template": { "get": { "tags": [ - "Standing Instructions" + "Account Transfers" ], - "summary": "Retrieve Standing Instruction Template", - "description": "This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of:\n\nField Defaults\nAllowed Value Lists\nExample Requests:\n\nstandinginstructions/template?fromAccountType=2&fromOfficeId=1\n\nstandinginstructions/template?fromAccountType=2&fromOfficeId=1&fromClientId=1&transferType=1\n\nstandinginstructions/template?fromClientId=1&fromAccountType=2&fromAccountId=1&transferType=1", + "summary": "Retrieve Account Transfer Template", + "description": "This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of:\n\n\n\nField Defaults\n\nAllowed Value Lists\n\nExample Requests:\n\n\n\naccounttransfers/template?fromAccountType=2&fromOfficeId=1\n\n\n\naccounttransfers/template?fromAccountType=2&fromOfficeId=1&fromClientId=1\n\n\n\naccounttransfers/template?fromClientId=1&fromAccountType=2&fromAccountId=1", "operationId": "template", "consumes": [ "application/json" @@ -9884,21 +10933,13 @@ "required": false, "type": "integer", "format": "int32" - }, - { - "name": "transferType", - "in": "query", - "description": "transferType", - "required": false, - "type": "integer", - "format": "int32" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/GetStandingInstructionsTemplateResponse" + "$ref": "#/definitions/GetAccountTransfersTemplateResponse" } } } @@ -10172,6 +11213,104 @@ } } }, + "/standinginstructions/template": { + "get": { + "tags": [ + "Standing Instructions" + ], + "summary": "Retrieve Standing Instruction Template", + "description": "This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of:\n\nField Defaults\nAllowed Value Lists\nExample Requests:\n\nstandinginstructions/template?fromAccountType=2&fromOfficeId=1\n\nstandinginstructions/template?fromAccountType=2&fromOfficeId=1&fromClientId=1&transferType=1\n\nstandinginstructions/template?fromClientId=1&fromAccountType=2&fromAccountId=1&transferType=1", + "operationId": "template", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "fromOfficeId", + "in": "query", + "description": "fromOfficeId", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "fromClientId", + "in": "query", + "description": "fromClientId", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "fromAccountId", + "in": "query", + "description": "fromAccountId", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "fromAccountType", + "in": "query", + "description": "fromAccountType", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "toOfficeId", + "in": "query", + "description": "toOfficeId", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "toClientId", + "in": "query", + "description": "toClientId", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "toAccountId", + "in": "query", + "description": "toAccountId", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "toAccountType", + "in": "query", + "description": "toAccountType", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "transferType", + "in": "query", + "description": "transferType", + "required": false, + "type": "integer", + "format": "int32" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GetStandingInstructionsTemplateResponse" + } + } + } + } + }, "/standinginstructionrunhistory": { "get": { "tags": [ @@ -10309,6 +11448,95 @@ } } }, + "/accounts/{type}": { + "get": { + "tags": [ + "Share Account" + ], + "summary": "List share applications/accounts", + "description": "Lists share applications/accounts\n\nExample Requests:\n\nshareaccount", + "operationId": "retrieveAllAccounts", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "type", + "in": "path", + "description": "type", + "required": true, + "type": "string" + }, + { + "name": "offset", + "in": "query", + "description": "offset", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "limit", + "in": "query", + "description": "limit", + "required": false, + "type": "integer", + "format": "int32" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GetAccountsTypeResponse" + } + } + } + }, + "post": { + "tags": [ + "Share Account" + ], + "summary": "Submit new share application", + "description": "Submits new share application\n\nMandatory Fields: clientId, productId, submittedDate, savingsAccountId, requestedShares, applicationDate\n\nOptional Fields: accountNo, externalId\n\nInherited from Product (if not provided): minimumActivePeriod, minimumActivePeriodFrequencyType, lockinPeriodFrequency, lockinPeriodFrequencyType", + "operationId": "createAccount", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "type", + "in": "path", + "description": "type", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "description": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PostAccountsTypeRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PostAccountsTypeResponse" + } + } + } + } + }, "/accounts/{type}/{accountId}": { "get": { "tags": [ @@ -10453,95 +11681,6 @@ } } }, - "/accounts/{type}": { - "get": { - "tags": [ - "Share Account" - ], - "summary": "List share applications/accounts", - "description": "Lists share applications/accounts\n\nExample Requests:\n\nshareaccount", - "operationId": "retrieveAllAccounts", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "type", - "in": "path", - "description": "type", - "required": true, - "type": "string" - }, - { - "name": "offset", - "in": "query", - "description": "offset", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "limit", - "in": "query", - "description": "limit", - "required": false, - "type": "integer", - "format": "int32" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/GetAccountsTypeResponse" - } - } - } - }, - "post": { - "tags": [ - "Share Account" - ], - "summary": "Submit new share application", - "description": "Submits new share application\n\nMandatory Fields: clientId, productId, submittedDate, savingsAccountId, requestedShares, applicationDate\n\nOptional Fields: accountNo, externalId\n\nInherited from Product (if not provided): minimumActivePeriod, minimumActivePeriodFrequencyType, lockinPeriodFrequency, lockinPeriodFrequencyType", - "operationId": "createAccount", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "type", - "in": "path", - "description": "type", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "body", - "description": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PostAccountsTypeRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PostAccountsTypeResponse" - } - } - } - } - }, "/accounts/{type}/downloadtemplate": { "get": { "tags": [ @@ -10698,67 +11837,6 @@ } } }, - "/charges": { - "get": { - "tags": [ - "Charges" - ], - "summary": "Retrieve Charges", - "description": "Returns the list of defined charges.\n\nExample Requests:\n\ncharges", - "operationId": "retrieveAllCharges", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/GetChargesResponse" - } - } - } - } - }, - "post": { - "tags": [ - "Charges" - ], - "summary": "Create/Define a Charge", - "description": "Define a new charge that can later be associated with loans and savings through their respective product definitions or directly on each account instance.", - "operationId": "createCharge", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "description": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PostChargesRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PostChargesResponse" - } - } - } - } - }, "/charges/{chargeId}": { "get": { "tags": [ @@ -10866,6 +11944,67 @@ } } }, + "/charges": { + "get": { + "tags": [ + "Charges" + ], + "summary": "Retrieve Charges", + "description": "Returns the list of defined charges.\n\nExample Requests:\n\ncharges", + "operationId": "retrieveAllCharges", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/GetChargesResponse" + } + } + } + } + }, + "post": { + "tags": [ + "Charges" + ], + "summary": "Create/Define a Charge", + "description": "Define a new charge that can later be associated with loans and savings through their respective product definitions or directly on each account instance.", + "operationId": "createCharge", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "description": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PostChargesRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PostChargesResponse" + } + } + } + } + }, "/charges/template": { "get": { "tags": [ @@ -11889,55 +13028,6 @@ } } }, - "/clients/template": { - "get": { - "tags": [ - "Client" - ], - "summary": "Retrieve Client Details Template", - "description": "This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of:\n\nField Defaults\nAllowed Value Lists\n\nExample Request:\n\nclients/template", - "operationId": "retrieveTemplate", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "officeId", - "in": "query", - "description": "officeId", - "required": false, - "type": "integer", - "format": "int64" - }, - { - "name": "commandParam", - "in": "query", - "description": "commandParam", - "required": false, - "type": "string" - }, - { - "name": "staffInSelectedOfficeOnly", - "in": "query", - "description": "staffInSelectedOfficeOnly", - "required": false, - "type": "boolean", - "default": false - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/GetClientsTemplateResponse" - } - } - } - } - }, "/clients": { "get": { "tags": [ @@ -12254,6 +13344,55 @@ } } }, + "/clients/template": { + "get": { + "tags": [ + "Client" + ], + "summary": "Retrieve Client Details Template", + "description": "This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of:\n\nField Defaults\nAllowed Value Lists\n\nExample Request:\n\nclients/template", + "operationId": "retrieveTemplate", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "officeId", + "in": "query", + "description": "officeId", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "commandParam", + "in": "query", + "description": "commandParam", + "required": false, + "type": "string" + }, + { + "name": "staffInSelectedOfficeOnly", + "in": "query", + "description": "staffInSelectedOfficeOnly", + "required": false, + "type": "boolean", + "default": false + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GetClientsTemplateResponse" + } + } + } + } + }, "/loans/{loanId}/collaterals/template": { "get": { "tags": [ @@ -12914,55 +14053,6 @@ } } }, - "/centers/template": { - "get": { - "tags": [ - "Centers" - ], - "summary": "Retrieve a Center Template", - "description": "Retrieves a Center Template\n\nExample Requests:\n\n\n\ncenters/template\n\n\n\ncenters/template?officeId=2", - "operationId": "retrieveTemplate", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "command", - "in": "query", - "description": "command", - "required": false, - "type": "string" - }, - { - "name": "officeId", - "in": "query", - "description": "officeId", - "required": false, - "type": "integer", - "format": "int64" - }, - { - "name": "staffInSelectedOfficeOnly", - "in": "query", - "description": "staffInSelectedOfficeOnly", - "required": false, - "type": "boolean", - "default": false - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/GetCentersTemplateResponse" - } - } - } - } - }, "/centers": { "get": { "tags": [ @@ -13287,6 +14377,55 @@ } } }, + "/centers/template": { + "get": { + "tags": [ + "Centers" + ], + "summary": "Retrieve a Center Template", + "description": "Retrieves a Center Template\n\nExample Requests:\n\n\n\ncenters/template\n\n\n\ncenters/template?officeId=2", + "operationId": "retrieveTemplate", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "command", + "in": "query", + "description": "command", + "required": false, + "type": "string" + }, + { + "name": "officeId", + "in": "query", + "description": "officeId", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "staffInSelectedOfficeOnly", + "in": "query", + "description": "staffInSelectedOfficeOnly", + "required": false, + "type": "boolean", + "default": false + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GetCentersTemplateResponse" + } + } + } + } + }, "/groups/{groupId}/command/unassign_staff": { "post": { "tags": [ @@ -13621,70 +14760,6 @@ } } }, - "/groups/template": { - "get": { - "tags": [ - "Groups" - ], - "summary": "Retrieve Group Template", - "description": "This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of:\n\n\n\nField Defaults\n\nAllowed Value Lists\n\nExample Requests:\n\n\n\ngroups/template\n\n\n\ngroups/template?officeId=2\n\n\n\ngroups/template?centerId=1\n\n\n\ngroups/template?centerId=1&staffInSelectedOfficeOnly=true", - "operationId": "retrieveTemplate", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "officeId", - "in": "query", - "description": "officeId", - "required": false, - "type": "integer", - "format": "int64" - }, - { - "name": "center", - "in": "query", - "description": "center", - "required": false, - "type": "boolean" - }, - { - "name": "centerId", - "in": "query", - "description": "centerId", - "required": false, - "type": "integer", - "format": "int64" - }, - { - "name": "command", - "in": "query", - "description": "command", - "required": false, - "type": "string" - }, - { - "name": "staffInSelectedOfficeOnly", - "in": "query", - "description": "staffInSelectedOfficeOnly", - "required": false, - "type": "boolean", - "default": false - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/GetGroupsTemplateResponse" - } - } - } - } - }, "/groups": { "get": { "tags": [ @@ -13832,26 +14907,66 @@ } } }, - "/interestratecharts/{chartId}/chartslabs/template": { + "/groups/template": { "get": { "tags": [ - "Interest Rate Slab (A.K.A interest bands)" + "Groups" ], - "operationId": "template", + "summary": "Retrieve Group Template", + "description": "This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of:\n\n\n\nField Defaults\n\nAllowed Value Lists\n\nExample Requests:\n\n\n\ngroups/template\n\n\n\ngroups/template?officeId=2\n\n\n\ngroups/template?centerId=1\n\n\n\ngroups/template?centerId=1&staffInSelectedOfficeOnly=true", + "operationId": "retrieveTemplate", "consumes": [ "application/json" ], "produces": [ "application/json" ], - "parameters": [], + "parameters": [ + { + "name": "officeId", + "in": "query", + "description": "officeId", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "center", + "in": "query", + "description": "center", + "required": false, + "type": "boolean" + }, + { + "name": "centerId", + "in": "query", + "description": "centerId", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "command", + "in": "query", + "description": "command", + "required": false, + "type": "string" + }, + { + "name": "staffInSelectedOfficeOnly", + "in": "query", + "description": "staffInSelectedOfficeOnly", + "required": false, + "type": "boolean", + "default": false + } + ], "responses": { "200": { - "description": "successful operation", + "description": "OK", "schema": { - "type": "string" - }, - "headers": {} + "$ref": "#/definitions/GetGroupsTemplateResponse" + } } } } @@ -14065,13 +15180,11 @@ } } }, - "/interestratecharts/template": { + "/interestratecharts/{chartId}/chartslabs/template": { "get": { "tags": [ - "Interest Rate Chart" + "Interest Rate Slab (A.K.A interest bands)" ], - "summary": "Retrieve Chart Details Template", - "description": "This is a convenience resource. It can be useful when building maintenance user interface screens for creating a chart. The template data returned consists of any or all of:\n\nField Defaults\nAllowed Value Lists\nExample Request:\n\ninterestratecharts/template", "operationId": "template", "consumes": [ "application/json" @@ -14082,10 +15195,11 @@ "parameters": [], "responses": { "200": { - "description": "OK", + "description": "successful operation", "schema": { - "$ref": "#/definitions/GetInterestRateChartsTemplateResponse" - } + "type": "string" + }, + "headers": {} } } } @@ -14267,86 +15381,26 @@ } } }, - "/loans/{loanId}/charges": { + "/interestratecharts/template": { "get": { "tags": [ - "Loan Charges" + "Interest Rate Chart" ], - "summary": "List Loan Charges", - "description": "It lists all the Loan Charges specific to a Loan \n\nExample Requests:\n\nloans/1/charges\n\n\nloans/1/charges?fields=name,amountOrPercentage", - "operationId": "retrieveAllLoanCharges", + "summary": "Retrieve Chart Details Template", + "description": "This is a convenience resource. It can be useful when building maintenance user interface screens for creating a chart. The template data returned consists of any or all of:\n\nField Defaults\nAllowed Value Lists\nExample Request:\n\ninterestratecharts/template", + "operationId": "template", "consumes": [ "application/json" ], "produces": [ "application/json" ], - "parameters": [ - { - "name": "loanId", - "in": "path", - "description": "loanId", - "required": true, - "type": "integer", - "format": "int64" - } - ], + "parameters": [], "responses": { "200": { "description": "OK", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/GetLoansLoanIdChargesChargeIdResponse" - } - } - } - } - }, - "post": { - "tags": [ - "Loan Charges" - ], - "summary": "Create a Loan Charge", - "description": "It Creates a Loan Charge", - "operationId": "executeLoanCharge", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "loanId", - "in": "path", - "description": "loanId", - "required": true, - "type": "integer", - "format": "int64" - }, - { - "name": "command", - "in": "query", - "description": "command", - "required": false, - "type": "string" - }, - { - "in": "body", - "name": "body", - "description": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PostLoansLoanIdChargesRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PostLoansLoanIdChargesResponse" + "$ref": "#/definitions/GetInterestRateChartsTemplateResponse" } } } @@ -14539,6 +15593,91 @@ } } }, + "/loans/{loanId}/charges": { + "get": { + "tags": [ + "Loan Charges" + ], + "summary": "List Loan Charges", + "description": "It lists all the Loan Charges specific to a Loan \n\nExample Requests:\n\nloans/1/charges\n\n\nloans/1/charges?fields=name,amountOrPercentage", + "operationId": "retrieveAllLoanCharges", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "loanId", + "in": "path", + "description": "loanId", + "required": true, + "type": "integer", + "format": "int64" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/GetLoansLoanIdChargesChargeIdResponse" + } + } + } + } + }, + "post": { + "tags": [ + "Loan Charges" + ], + "summary": "Create a Loan Charge", + "description": "It Creates a Loan Charge", + "operationId": "executeLoanCharge", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "loanId", + "in": "path", + "description": "loanId", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "name": "command", + "in": "query", + "description": "command", + "required": false, + "type": "string" + }, + { + "in": "body", + "name": "body", + "description": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PostLoansLoanIdChargesRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PostLoansLoanIdChargesResponse" + } + } + } + } + }, "/loans/{loanId}/charges/template": { "get": { "tags": [ @@ -14826,155 +15965,6 @@ } } }, - "/loans/downloadtemplate": { - "get": { - "tags": [ - "Loans" - ], - "operationId": "getLoansTemplate", - "produces": [ - "application/vnd.ms-excel" - ], - "parameters": [ - { - "name": "officeId", - "in": "query", - "required": false, - "type": "integer", - "format": "int64" - }, - { - "name": "staffId", - "in": "query", - "required": false, - "type": "integer", - "format": "int64" - }, - { - "name": "dateFormat", - "in": "query", - "required": false, - "type": "string" - } - ], - "responses": { - "default": { - "description": "successful operation" - } - } - } - }, - "/loans/repayments/downloadtemplate": { - "get": { - "tags": [ - "Loans" - ], - "operationId": "getLoanRepaymentTemplate", - "produces": [ - "application/vnd.ms-excel" - ], - "parameters": [ - { - "name": "officeId", - "in": "query", - "required": false, - "type": "integer", - "format": "int64" - }, - { - "name": "dateFormat", - "in": "query", - "required": false, - "type": "string" - } - ], - "responses": { - "default": { - "description": "successful operation" - } - } - } - }, - "/loans/uploadtemplate": { - "post": { - "tags": [ - "Loans" - ], - "operationId": "postLoanTemplate", - "consumes": [ - "multipart/form-data" - ], - "parameters": [ - { - "name": "file", - "in": "formData", - "required": false, - "type": "file" - }, - { - "name": "locale", - "in": "formData", - "required": false, - "type": "string" - }, - { - "name": "dateFormat", - "in": "formData", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "type": "string" - }, - "headers": {} - } - } - } - }, - "/loans/repayments/uploadtemplate": { - "post": { - "tags": [ - "Loans" - ], - "operationId": "postLoanRepaymentTemplate", - "consumes": [ - "multipart/form-data" - ], - "parameters": [ - { - "name": "file", - "in": "formData", - "required": false, - "type": "file" - }, - { - "name": "locale", - "in": "formData", - "required": false, - "type": "string" - }, - { - "name": "dateFormat", - "in": "formData", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "type": "string" - }, - "headers": {} - } - } - } - }, "/loans/{loanId}/template": { "get": { "tags": [ @@ -15015,123 +16005,6 @@ } } }, - "/loans": { - "get": { - "tags": [ - "Loans" - ], - "summary": "List Loans", - "description": "The list capability of loans can support pagination and sorting.\nExample Requests:\n\nloans\n\nloans?fields=accountNo\n\nloans?offset=10&limit=50\n\nloans?orderBy=accountNo&sortOrder=DESC", - "operationId": "retrieveAll", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "sqlSearch", - "in": "query", - "description": "sqlSearch", - "required": false, - "type": "string" - }, - { - "name": "externalId", - "in": "query", - "description": "externalId", - "required": false, - "type": "string" - }, - { - "name": "offset", - "in": "query", - "description": "offset", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "limit", - "in": "query", - "description": "limit", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "orderBy", - "in": "query", - "description": "orderBy", - "required": false, - "type": "string" - }, - { - "name": "sortOrder", - "in": "query", - "description": "sortOrder", - "required": false, - "type": "string" - }, - { - "name": "accountNo", - "in": "query", - "description": "accountNo", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/GetLoansResponse" - } - } - } - }, - "post": { - "tags": [ - "Loans" - ], - "summary": "Calculate loan repayment schedule | Submit a new Loan Application", - "description": "It calculates the loan repayment Schedule\nSubmits a new loan application\nMandatory Fields: clientId, productId, principal, loanTermFrequency, loanTermFrequencyType, loanType, numberOfRepayments, repaymentEvery, repaymentFrequencyType, interestRatePerPeriod, amortizationType, interestType, interestCalculationPeriodType, transactionProcessingStrategyId, expectedDisbursementDate, submittedOnDate, loanType\nOptional Fields: graceOnPrincipalPayment, graceOnInterestPayment, graceOnInterestCharged, linkAccountId, allowPartialPeriodInterestCalcualtion, fixedEmiAmount, maxOutstandingLoanBalance, disbursementData, graceOnArrearsAgeing, createStandingInstructionAtDisbursement (requires linkedAccountId if set to true)\nAdditional Mandatory Fields if interest recalculation is enabled for product and Rest frequency not same as repayment period: recalculationRestFrequencyDate\nAdditional Mandatory Fields if interest recalculation with interest/fee compounding is enabled for product and compounding frequency not same as repayment period: recalculationCompoundingFrequencyDate\nAdditional Mandatory Field if Entity-Datatable Check is enabled for the entity of type loan: datatables", - "operationId": "calculateLoanScheduleOrSubmitLoanApplication", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "command", - "in": "query", - "description": "command", - "required": false, - "type": "string" - }, - { - "in": "body", - "name": "body", - "description": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PostLoansRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PostLoansResponse" - } - } - } - } - }, "/loans/{loanId}": { "get": { "tags": [ @@ -15295,6 +16168,272 @@ } } }, + "/loans": { + "get": { + "tags": [ + "Loans" + ], + "summary": "List Loans", + "description": "The list capability of loans can support pagination and sorting.\nExample Requests:\n\nloans\n\nloans?fields=accountNo\n\nloans?offset=10&limit=50\n\nloans?orderBy=accountNo&sortOrder=DESC", + "operationId": "retrieveAll", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "sqlSearch", + "in": "query", + "description": "sqlSearch", + "required": false, + "type": "string" + }, + { + "name": "externalId", + "in": "query", + "description": "externalId", + "required": false, + "type": "string" + }, + { + "name": "offset", + "in": "query", + "description": "offset", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "limit", + "in": "query", + "description": "limit", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "orderBy", + "in": "query", + "description": "orderBy", + "required": false, + "type": "string" + }, + { + "name": "sortOrder", + "in": "query", + "description": "sortOrder", + "required": false, + "type": "string" + }, + { + "name": "accountNo", + "in": "query", + "description": "accountNo", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GetLoansResponse" + } + } + } + }, + "post": { + "tags": [ + "Loans" + ], + "summary": "Calculate loan repayment schedule | Submit a new Loan Application", + "description": "It calculates the loan repayment Schedule\nSubmits a new loan application\nMandatory Fields: clientId, productId, principal, loanTermFrequency, loanTermFrequencyType, loanType, numberOfRepayments, repaymentEvery, repaymentFrequencyType, interestRatePerPeriod, amortizationType, interestType, interestCalculationPeriodType, transactionProcessingStrategyId, expectedDisbursementDate, submittedOnDate, loanType\nOptional Fields: graceOnPrincipalPayment, graceOnInterestPayment, graceOnInterestCharged, linkAccountId, allowPartialPeriodInterestCalcualtion, fixedEmiAmount, maxOutstandingLoanBalance, disbursementData, graceOnArrearsAgeing, createStandingInstructionAtDisbursement (requires linkedAccountId if set to true)\nAdditional Mandatory Fields if interest recalculation is enabled for product and Rest frequency not same as repayment period: recalculationRestFrequencyDate\nAdditional Mandatory Fields if interest recalculation with interest/fee compounding is enabled for product and compounding frequency not same as repayment period: recalculationCompoundingFrequencyDate\nAdditional Mandatory Field if Entity-Datatable Check is enabled for the entity of type loan: datatables", + "operationId": "calculateLoanScheduleOrSubmitLoanApplication", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "command", + "in": "query", + "description": "command", + "required": false, + "type": "string" + }, + { + "in": "body", + "name": "body", + "description": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PostLoansRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PostLoansResponse" + } + } + } + } + }, + "/loans/downloadtemplate": { + "get": { + "tags": [ + "Loans" + ], + "operationId": "getLoansTemplate", + "produces": [ + "application/vnd.ms-excel" + ], + "parameters": [ + { + "name": "officeId", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "staffId", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "dateFormat", + "in": "query", + "required": false, + "type": "string" + } + ], + "responses": { + "default": { + "description": "successful operation" + } + } + } + }, + "/loans/repayments/downloadtemplate": { + "get": { + "tags": [ + "Loans" + ], + "operationId": "getLoanRepaymentTemplate", + "produces": [ + "application/vnd.ms-excel" + ], + "parameters": [ + { + "name": "officeId", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "dateFormat", + "in": "query", + "required": false, + "type": "string" + } + ], + "responses": { + "default": { + "description": "successful operation" + } + } + } + }, + "/loans/uploadtemplate": { + "post": { + "tags": [ + "Loans" + ], + "operationId": "postLoanTemplate", + "consumes": [ + "multipart/form-data" + ], + "parameters": [ + { + "name": "file", + "in": "formData", + "required": false, + "type": "file" + }, + { + "name": "locale", + "in": "formData", + "required": false, + "type": "string" + }, + { + "name": "dateFormat", + "in": "formData", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, + "/loans/repayments/uploadtemplate": { + "post": { + "tags": [ + "Loans" + ], + "operationId": "postLoanRepaymentTemplate", + "consumes": [ + "multipart/form-data" + ], + "parameters": [ + { + "name": "file", + "in": "formData", + "required": false, + "type": "file" + }, + { + "name": "locale", + "in": "formData", + "required": false, + "type": "string" + }, + { + "name": "dateFormat", + "in": "formData", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, "/loans/template": { "get": { "tags": [ @@ -15537,6 +16676,98 @@ } } }, + "/{resourceType}/{resourceId}/notes": { + "get": { + "tags": [ + "Notes" + ], + "summary": "Retrieve a Resource's Notes", + "description": "Retrieves a Resource's Notes\n\nNote: Notes are returned in descending createOn order.\n\nExample Requests:\n\nclients/2/notes\n\n\ngroups/2/notes?fields=note,createdOn,createdByUsername", + "operationId": "retrieveNotesByResource", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "resourceType", + "in": "path", + "description": "resourceType", + "required": true, + "type": "string" + }, + { + "name": "resourceId", + "in": "path", + "description": "resourceId", + "required": true, + "type": "integer", + "format": "int64" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/GetResourceTypeResourceIdNotesResponse" + } + } + } + } + }, + "post": { + "tags": [ + "Notes" + ], + "summary": "Add a Resource Note", + "description": "Adds a new note to a supported resource.\n\nExample Requests:\n\nclients/1/notes\n\n\ngroups/1/notes", + "operationId": "addNewNote", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "resourceType", + "in": "path", + "description": "resourceType", + "required": true, + "type": "string" + }, + { + "name": "resourceId", + "in": "path", + "description": "resourceId", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "in": "body", + "name": "body", + "description": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PostResourceTypeResourceIdNotesRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PostResourceTypeResourceIdNotesResponse" + } + } + } + } + }, "/{resourceType}/{resourceId}/notes/{noteId}": { "get": { "tags": [ @@ -15689,98 +16920,6 @@ } } }, - "/{resourceType}/{resourceId}/notes": { - "get": { - "tags": [ - "Notes" - ], - "summary": "Retrieve a Resource's Notes", - "description": "Retrieves a Resource's Notes\n\nNote: Notes are returned in descending createOn order.\n\nExample Requests:\n\nclients/2/notes\n\n\ngroups/2/notes?fields=note,createdOn,createdByUsername", - "operationId": "retrieveNotesByResource", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "resourceType", - "in": "path", - "description": "resourceType", - "required": true, - "type": "string" - }, - { - "name": "resourceId", - "in": "path", - "description": "resourceId", - "required": true, - "type": "integer", - "format": "int64" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/GetResourceTypeResourceIdNotesResponse" - } - } - } - } - }, - "post": { - "tags": [ - "Notes" - ], - "summary": "Add a Resource Note", - "description": "Adds a new note to a supported resource.\n\nExample Requests:\n\nclients/1/notes\n\n\ngroups/1/notes", - "operationId": "addNewNote", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "resourceType", - "in": "path", - "description": "resourceType", - "required": true, - "type": "string" - }, - { - "name": "resourceId", - "in": "path", - "description": "resourceId", - "required": true, - "type": "integer", - "format": "int64" - }, - { - "in": "body", - "name": "body", - "description": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PostResourceTypeResourceIdNotesRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PostResourceTypeResourceIdNotesResponse" - } - } - } - } - }, "/paymenttypes/{paymentTypeId}": { "get": { "tags": [ @@ -16206,6 +17345,177 @@ } } }, + "/fixeddepositaccounts/{accountId}": { + "get": { + "tags": [ + "Fixed Deposit Account" + ], + "summary": "Retrieve a fixed deposit application/account", + "description": "Retrieves a fixed deposit application/account\n\nExample Requests :\n\n\n\nfixeddepositaccounts/1\n\nfixeddepositaccounts/1?associations=all", + "operationId": "retrieveOne", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "accountId", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "name": "staffInSelectedOfficeOnly", + "in": "query", + "description": "staffInSelectedOfficeOnly", + "required": false, + "type": "boolean", + "default": false + }, + { + "name": "chargeStatus", + "in": "query", + "description": "chargeStatus", + "required": false, + "type": "string", + "default": "all" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GetFixedDepositAccountsAccountIdResponse" + } + } + } + }, + "post": { + "tags": [ + "Fixed Deposit Account" + ], + "summary": "Approve fixed deposit application | Undo approval fixed deposit application | Reject fixed deposit application | Withdraw fixed deposit application | Activate a fixed deposit account | Close a fixed deposit account | Premature Close a fixed deposit account | Calculate Premature amount on Fixed deposit account | Calculate Interest on Fixed Deposit Account | Post Interest on Fixed Deposit Account", + "description": "Approve fixed deposit application:\n\nApproves fixed deposit application so long as its in 'Submitted and pending approval' state.\n\nUndo approval fixed deposit application:\n\nWill move 'approved' fixed deposit application back to 'Submitted and pending approval' state.\n\nReject fixed deposit application:\n\nRejects fixed deposit application so long as its in 'Submitted and pending approval' state.\n\nWithdraw fixed deposit application:\n\nUsed when an applicant withdraws from the fixed deposit application. It must be in 'Submitted and pending approval' state.\n\nClose a fixed deposit account:\n\nResults in a Matured fixed deposit account being converted into a 'closed' fixed deposit account.\n\nPremature Close a fixed deposit account:\n\nResults in an Active fixed deposit account being converted into a 'Premature Closed' fixed deposit account with options to withdraw prematured amount. (premature amount is calculated using interest rate chart applicable along with penal interest if any.)\n\nCalculate Premature amount on Fixed deposit account:\n\nCalculate premature amount on fixed deposit account till premature close date. Premature amount is calculated based on interest chart and penal interest applicable.\n\nCalculate Interest on Fixed Deposit Account:\n\nCalculates interest earned on a fixed deposit account based on todays date. It does not attempt to post or credit the interest on the account. That is responsibility of the Post Interest API that will likely be called by overnight process.\n\nPost Interest on Fixed Deposit Account:\n\nCalculates and Posts interest earned on a fixed deposit account based on today's date and whether an interest posting or crediting event is due.\n\nShowing request/response for Calculate Interest on Fixed Deposit Account", + "operationId": "handleCommands", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "accountId", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "name": "command", + "in": "query", + "description": "command", + "required": false, + "type": "string" + }, + { + "in": "body", + "name": "body", + "description": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PostFixedDepositAccountsAccountIdRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PostFixedDepositAccountsAccountIdResponse" + } + } + } + }, + "put": { + "tags": [ + "Fixed Deposit Account" + ], + "summary": "Modify a fixed deposit application", + "description": "Fixed deposit application can only be modified when in 'Submitted and pending approval' state. Once the application is approved, the details cannot be changed using this method. Specific api endpoints will be created to allow change of interest detail such as rate, compounding period, posting period etc", + "operationId": "update", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "accountId", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "in": "body", + "name": "body", + "description": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PutFixedDepositAccountsAccountIdRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PutFixedDepositAccountsAccountIdResponse" + } + } + } + }, + "delete": { + "tags": [ + "Fixed Deposit Account" + ], + "summary": "Delete a fixed deposit application", + "description": "At present we support hard delete of fixed deposit application so long as its in 'Submitted and pending approval' state. One the application is moves past this state, it is not possible to do a 'hard' delete of the application or the account. An API endpoint will be added to close/de-activate the fixed deposit account.", + "operationId": "delete", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "accountId", + "required": true, + "type": "integer", + "format": "int64" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/DeleteFixedDepositAccountsAccountIdResponse" + } + } + } + } + }, "/fixeddepositaccounts": { "get": { "tags": [ @@ -16494,177 +17804,6 @@ } } }, - "/fixeddepositaccounts/{accountId}": { - "get": { - "tags": [ - "Fixed Deposit Account" - ], - "summary": "Retrieve a fixed deposit application/account", - "description": "Retrieves a fixed deposit application/account\n\nExample Requests :\n\n\n\nfixeddepositaccounts/1\n\nfixeddepositaccounts/1?associations=all", - "operationId": "retrieveOne", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "accountId", - "in": "path", - "description": "accountId", - "required": true, - "type": "integer", - "format": "int64" - }, - { - "name": "staffInSelectedOfficeOnly", - "in": "query", - "description": "staffInSelectedOfficeOnly", - "required": false, - "type": "boolean", - "default": false - }, - { - "name": "chargeStatus", - "in": "query", - "description": "chargeStatus", - "required": false, - "type": "string", - "default": "all" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/GetFixedDepositAccountsAccountIdResponse" - } - } - } - }, - "post": { - "tags": [ - "Fixed Deposit Account" - ], - "summary": "Approve fixed deposit application | Undo approval fixed deposit application | Reject fixed deposit application | Withdraw fixed deposit application | Activate a fixed deposit account | Close a fixed deposit account | Premature Close a fixed deposit account | Calculate Premature amount on Fixed deposit account | Calculate Interest on Fixed Deposit Account | Post Interest on Fixed Deposit Account", - "description": "Approve fixed deposit application:\n\nApproves fixed deposit application so long as its in 'Submitted and pending approval' state.\n\nUndo approval fixed deposit application:\n\nWill move 'approved' fixed deposit application back to 'Submitted and pending approval' state.\n\nReject fixed deposit application:\n\nRejects fixed deposit application so long as its in 'Submitted and pending approval' state.\n\nWithdraw fixed deposit application:\n\nUsed when an applicant withdraws from the fixed deposit application. It must be in 'Submitted and pending approval' state.\n\nClose a fixed deposit account:\n\nResults in a Matured fixed deposit account being converted into a 'closed' fixed deposit account.\n\nPremature Close a fixed deposit account:\n\nResults in an Active fixed deposit account being converted into a 'Premature Closed' fixed deposit account with options to withdraw prematured amount. (premature amount is calculated using interest rate chart applicable along with penal interest if any.)\n\nCalculate Premature amount on Fixed deposit account:\n\nCalculate premature amount on fixed deposit account till premature close date. Premature amount is calculated based on interest chart and penal interest applicable.\n\nCalculate Interest on Fixed Deposit Account:\n\nCalculates interest earned on a fixed deposit account based on todays date. It does not attempt to post or credit the interest on the account. That is responsibility of the Post Interest API that will likely be called by overnight process.\n\nPost Interest on Fixed Deposit Account:\n\nCalculates and Posts interest earned on a fixed deposit account based on today's date and whether an interest posting or crediting event is due.\n\nShowing request/response for Calculate Interest on Fixed Deposit Account", - "operationId": "handleCommands", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "accountId", - "in": "path", - "description": "accountId", - "required": true, - "type": "integer", - "format": "int64" - }, - { - "name": "command", - "in": "query", - "description": "command", - "required": false, - "type": "string" - }, - { - "in": "body", - "name": "body", - "description": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PostFixedDepositAccountsAccountIdRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PostFixedDepositAccountsAccountIdResponse" - } - } - } - }, - "put": { - "tags": [ - "Fixed Deposit Account" - ], - "summary": "Modify a fixed deposit application", - "description": "Fixed deposit application can only be modified when in 'Submitted and pending approval' state. Once the application is approved, the details cannot be changed using this method. Specific api endpoints will be created to allow change of interest detail such as rate, compounding period, posting period etc", - "operationId": "update", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "accountId", - "in": "path", - "description": "accountId", - "required": true, - "type": "integer", - "format": "int64" - }, - { - "in": "body", - "name": "body", - "description": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PutFixedDepositAccountsAccountIdRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PutFixedDepositAccountsAccountIdResponse" - } - } - } - }, - "delete": { - "tags": [ - "Fixed Deposit Account" - ], - "summary": "Delete a fixed deposit application", - "description": "At present we support hard delete of fixed deposit application so long as its in 'Submitted and pending approval' state. One the application is moves past this state, it is not possible to do a 'hard' delete of the application or the account. An API endpoint will be added to close/de-activate the fixed deposit account.", - "operationId": "delete", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "accountId", - "in": "path", - "description": "accountId", - "required": true, - "type": "integer", - "format": "int64" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/DeleteFixedDepositAccountsAccountIdResponse" - } - } - } - } - }, "/fixeddepositaccounts/template": { "get": { "tags": [ @@ -16723,30 +17862,6 @@ } } }, - "/fixeddepositproducts/template": { - "get": { - "tags": [ - "Fixed Deposit Product" - ], - "operationId": "retrieveTemplate", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "type": "string" - }, - "headers": {} - } - } - } - }, "/fixeddepositproducts": { "get": { "tags": [ @@ -16915,6 +18030,30 @@ } } }, + "/fixeddepositproducts/template": { + "get": { + "tags": [ + "Fixed Deposit Product" + ], + "operationId": "retrieveTemplate", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, "/recurringdepositaccounts/{recurringDepositAccountId}/transactions/{transactionId}": { "get": { "tags": [ @@ -17013,47 +18152,6 @@ } } }, - "/recurringdepositaccounts/{recurringDepositAccountId}/transactions/template": { - "get": { - "tags": [ - "Recurring Deposit Account Transactions" - ], - "summary": "Retrieve Recurring Deposit Account Transaction Template", - "description": "This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of:\n\nField Defaults\nAllowed Value Lists\nExample Requests:\n\nrecurringdepositaccounts/1/transactions/template?command=deposit\n\nrecurringdepositaccounts/1/transactions/template?command=withdrawal", - "operationId": "retrieveTemplate", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "recurringDepositAccountId", - "in": "path", - "description": "recurringDepositAccountId", - "required": true, - "type": "integer", - "format": "int64" - }, - { - "name": "command", - "in": "query", - "description": "command", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/GetRecurringDepositAccountsRecurringDepositAccountIdTransactionsTemplateResponse" - } - } - } - } - }, "/recurringdepositaccounts/{recurringDepositAccountId}/transactions": { "post": { "tags": [ @@ -17104,163 +18202,14 @@ } } }, - "/recurringdepositaccounts/downloadtemplate": { + "/recurringdepositaccounts/{recurringDepositAccountId}/transactions/template": { "get": { "tags": [ - "Recurring Deposit Account" + "Recurring Deposit Account Transactions" ], - "operationId": "getRecurringDepositTemplate", - "produces": [ - "application/vnd.ms-excel" - ], - "parameters": [ - { - "name": "officeId", - "in": "query", - "required": false, - "type": "integer", - "format": "int64" - }, - { - "name": "staffId", - "in": "query", - "required": false, - "type": "integer", - "format": "int64" - }, - { - "name": "dateFormat", - "in": "query", - "required": false, - "type": "string" - } - ], - "responses": { - "default": { - "description": "successful operation" - } - } - } - }, - "/recurringdepositaccounts/uploadtemplate": { - "post": { - "tags": [ - "Recurring Deposit Account" - ], - "operationId": "postRecurringDepositTemplate", - "consumes": [ - "multipart/form-data" - ], - "parameters": [ - { - "name": "file", - "in": "formData", - "required": false, - "type": "file" - }, - { - "name": "locale", - "in": "formData", - "required": false, - "type": "string" - }, - { - "name": "dateFormat", - "in": "formData", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "type": "string" - }, - "headers": {} - } - } - } - }, - "/recurringdepositaccounts/transactions/downloadtemplate": { - "get": { - "tags": [ - "Recurring Deposit Account" - ], - "operationId": "getRecurringDepositTransactionTemplate", - "produces": [ - "application/vnd.ms-excel" - ], - "parameters": [ - { - "name": "officeId", - "in": "query", - "required": false, - "type": "integer", - "format": "int64" - }, - { - "name": "dateFormat", - "in": "query", - "required": false, - "type": "string" - } - ], - "responses": { - "default": { - "description": "successful operation" - } - } - } - }, - "/recurringdepositaccounts/transactions/uploadtemplate": { - "post": { - "tags": [ - "Recurring Deposit Account" - ], - "operationId": "postRecurringDepositTransactionsTemplate", - "consumes": [ - "multipart/form-data" - ], - "parameters": [ - { - "name": "file", - "in": "formData", - "required": false, - "type": "file" - }, - { - "name": "locale", - "in": "formData", - "required": false, - "type": "string" - }, - { - "name": "dateFormat", - "in": "formData", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "type": "string" - }, - "headers": {} - } - } - } - }, - "/recurringdepositaccounts": { - "get": { - "tags": [ - "Recurring Deposit Account" - ], - "summary": "List Recurring deposit applications/accounts", - "description": "Lists Recurring deposit applications/accounts\n\nExample Requests:\n\nrecurringdepositaccounts\n\n\nrecurringdepositaccounts?fields=name", - "operationId": "retrieveAll", + "summary": "Retrieve Recurring Deposit Account Transaction Template", + "description": "This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of:\n\nField Defaults\nAllowed Value Lists\nExample Requests:\n\nrecurringdepositaccounts/1/transactions/template?command=deposit\n\nrecurringdepositaccounts/1/transactions/template?command=withdrawal", + "operationId": "retrieveTemplate", "consumes": [ "application/json" ], @@ -17269,106 +18218,9 @@ ], "parameters": [ { - "name": "paged", - "in": "query", - "description": "paged", - "required": false, - "type": "boolean" - }, - { - "name": "offset", - "in": "query", - "description": "offset", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "limit", - "in": "query", - "description": "limit", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "orderBy", - "in": "query", - "description": "orderBy", - "required": false, - "type": "string" - }, - { - "name": "sortOrder", - "in": "query", - "description": "sortOrder", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/GetRecurringDepositAccountsResponse" - } - } - } - } - }, - "post": { - "tags": [ - "Recurring Deposit Account" - ], - "summary": "Submit new recurring deposit application", - "description": "Submits new recurring deposit application\n\nMandatory Fields: clientId or groupId, productId, submittedOnDate, depositAmount, depositPeriod, depositPeriodFrequencyId\n\nOptional Fields: accountNo, externalId, fieldOfficerId,linkAccountId(if provided initial deposit amount will be collected from this account),transferInterestToSavings(By enabling this flag all interest postings will be transferred to linked saving account )\n\nInherited from Product (if not provided): interestCompoundingPeriodType, interestCalculationType, interestCalculationDaysInYearType, lockinPeriodFrequency, lockinPeriodFrequencyType, preClosurePenalApplicable, preClosurePenalInterest, preClosurePenalInterestOnTypeId, charts, withHoldTax", - "operationId": "submitApplication", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "description": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PostRecurringDepositAccountsRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PostRecurringDepositAccountsResponse" - } - } - } - } - }, - "/recurringdepositaccounts/{accountId}/template": { - "get": { - "tags": [ - "Recurring Deposit Account" - ], - "operationId": "accountClosureTemplate", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "accountId", + "name": "recurringDepositAccountId", "in": "path", - "description": "accountId", + "description": "recurringDepositAccountId", "required": true, "type": "integer", "format": "int64" @@ -17383,11 +18235,10 @@ ], "responses": { "200": { - "description": "successful operation", + "description": "OK", "schema": { - "type": "string" - }, - "headers": {} + "$ref": "#/definitions/GetRecurringDepositAccountsRecurringDepositAccountIdTransactionsTemplateResponse" + } } } } @@ -17563,6 +18414,294 @@ } } }, + "/recurringdepositaccounts": { + "get": { + "tags": [ + "Recurring Deposit Account" + ], + "summary": "List Recurring deposit applications/accounts", + "description": "Lists Recurring deposit applications/accounts\n\nExample Requests:\n\nrecurringdepositaccounts\n\n\nrecurringdepositaccounts?fields=name", + "operationId": "retrieveAll", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "paged", + "in": "query", + "description": "paged", + "required": false, + "type": "boolean" + }, + { + "name": "offset", + "in": "query", + "description": "offset", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "limit", + "in": "query", + "description": "limit", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "orderBy", + "in": "query", + "description": "orderBy", + "required": false, + "type": "string" + }, + { + "name": "sortOrder", + "in": "query", + "description": "sortOrder", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/GetRecurringDepositAccountsResponse" + } + } + } + } + }, + "post": { + "tags": [ + "Recurring Deposit Account" + ], + "summary": "Submit new recurring deposit application", + "description": "Submits new recurring deposit application\n\nMandatory Fields: clientId or groupId, productId, submittedOnDate, depositAmount, depositPeriod, depositPeriodFrequencyId\n\nOptional Fields: accountNo, externalId, fieldOfficerId,linkAccountId(if provided initial deposit amount will be collected from this account),transferInterestToSavings(By enabling this flag all interest postings will be transferred to linked saving account )\n\nInherited from Product (if not provided): interestCompoundingPeriodType, interestCalculationType, interestCalculationDaysInYearType, lockinPeriodFrequency, lockinPeriodFrequencyType, preClosurePenalApplicable, preClosurePenalInterest, preClosurePenalInterestOnTypeId, charts, withHoldTax", + "operationId": "submitApplication", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "description": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PostRecurringDepositAccountsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PostRecurringDepositAccountsResponse" + } + } + } + } + }, + "/recurringdepositaccounts/{accountId}/template": { + "get": { + "tags": [ + "Recurring Deposit Account" + ], + "operationId": "accountClosureTemplate", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "accountId", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "name": "command", + "in": "query", + "description": "command", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, + "/recurringdepositaccounts/downloadtemplate": { + "get": { + "tags": [ + "Recurring Deposit Account" + ], + "operationId": "getRecurringDepositTemplate", + "produces": [ + "application/vnd.ms-excel" + ], + "parameters": [ + { + "name": "officeId", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "staffId", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "dateFormat", + "in": "query", + "required": false, + "type": "string" + } + ], + "responses": { + "default": { + "description": "successful operation" + } + } + } + }, + "/recurringdepositaccounts/uploadtemplate": { + "post": { + "tags": [ + "Recurring Deposit Account" + ], + "operationId": "postRecurringDepositTemplate", + "consumes": [ + "multipart/form-data" + ], + "parameters": [ + { + "name": "file", + "in": "formData", + "required": false, + "type": "file" + }, + { + "name": "locale", + "in": "formData", + "required": false, + "type": "string" + }, + { + "name": "dateFormat", + "in": "formData", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, + "/recurringdepositaccounts/transactions/downloadtemplate": { + "get": { + "tags": [ + "Recurring Deposit Account" + ], + "operationId": "getRecurringDepositTransactionTemplate", + "produces": [ + "application/vnd.ms-excel" + ], + "parameters": [ + { + "name": "officeId", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "dateFormat", + "in": "query", + "required": false, + "type": "string" + } + ], + "responses": { + "default": { + "description": "successful operation" + } + } + } + }, + "/recurringdepositaccounts/transactions/uploadtemplate": { + "post": { + "tags": [ + "Recurring Deposit Account" + ], + "operationId": "postRecurringDepositTransactionsTemplate", + "consumes": [ + "multipart/form-data" + ], + "parameters": [ + { + "name": "file", + "in": "formData", + "required": false, + "type": "file" + }, + { + "name": "locale", + "in": "formData", + "required": false, + "type": "string" + }, + { + "name": "dateFormat", + "in": "formData", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, "/recurringdepositaccounts/template": { "get": { "tags": [ @@ -17621,30 +18760,6 @@ } } }, - "/recurringdepositproducts/template": { - "get": { - "tags": [ - "Recurring Deposit Product" - ], - "operationId": "retrieveTemplate", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "type": "string" - }, - "headers": {} - } - } - } - }, "/recurringdepositproducts": { "get": { "tags": [ @@ -17813,6 +18928,30 @@ } } }, + "/recurringdepositproducts/template": { + "get": { + "tags": [ + "Recurring Deposit Product" + ], + "operationId": "retrieveTemplate", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, "/savingsaccounts/{savingsAccountId}/charges": { "get": { "tags": [ @@ -18120,258 +19259,6 @@ } } }, - "/savingsaccounts/downloadtemplate": { - "get": { - "tags": [ - "Savings Account" - ], - "operationId": "getSavingsTemplate", - "produces": [ - "application/vnd.ms-excel" - ], - "parameters": [ - { - "name": "officeId", - "in": "query", - "required": false, - "type": "integer", - "format": "int64" - }, - { - "name": "staffId", - "in": "query", - "required": false, - "type": "integer", - "format": "int64" - }, - { - "name": "dateFormat", - "in": "query", - "required": false, - "type": "string" - } - ], - "responses": { - "default": { - "description": "successful operation" - } - } - } - }, - "/savingsaccounts/uploadtemplate": { - "post": { - "tags": [ - "Savings Account" - ], - "operationId": "postSavingsTemplate", - "consumes": [ - "multipart/form-data" - ], - "parameters": [ - { - "name": "file", - "in": "formData", - "required": false, - "type": "file" - }, - { - "name": "locale", - "in": "formData", - "required": false, - "type": "string" - }, - { - "name": "dateFormat", - "in": "formData", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "type": "string" - }, - "headers": {} - } - } - } - }, - "/savingsaccounts/transactions/downloadtemplate": { - "get": { - "tags": [ - "Savings Account" - ], - "operationId": "getSavingsTransactionTemplate", - "produces": [ - "application/vnd.ms-excel" - ], - "parameters": [ - { - "name": "officeId", - "in": "query", - "required": false, - "type": "integer", - "format": "int64" - }, - { - "name": "dateFormat", - "in": "query", - "required": false, - "type": "string" - } - ], - "responses": { - "default": { - "description": "successful operation" - } - } - } - }, - "/savingsaccounts/transactions/uploadtemplate": { - "post": { - "tags": [ - "Savings Account" - ], - "operationId": "postSavingsTransactionTemplate", - "consumes": [ - "multipart/form-data" - ], - "parameters": [ - { - "name": "file", - "in": "formData", - "required": false, - "type": "file" - }, - { - "name": "locale", - "in": "formData", - "required": false, - "type": "string" - }, - { - "name": "dateFormat", - "in": "formData", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "type": "string" - }, - "headers": {} - } - } - } - }, - "/savingsaccounts": { - "get": { - "tags": [ - "Savings Account" - ], - "summary": "List savings applications/accounts", - "description": "Lists savings applications/accounts\n\nExample Requests:\n\nsavingsaccounts\n\n\nsavingsaccounts?fields=name", - "operationId": "retrieveAll", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "sqlSearch", - "in": "query", - "description": "sqlSearch", - "required": false, - "type": "string" - }, - { - "name": "externalId", - "in": "query", - "description": "externalId", - "required": false, - "type": "string" - }, - { - "name": "offset", - "in": "query", - "description": "offset", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "limit", - "in": "query", - "description": "limit", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "orderBy", - "in": "query", - "description": "orderBy", - "required": false, - "type": "string" - }, - { - "name": "sortOrder", - "in": "query", - "description": "sortOrder", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/GetSavingsAccountsResponse" - } - } - } - }, - "post": { - "tags": [ - "Savings Account" - ], - "summary": "Submit new savings application", - "description": "Submits new savings application\n\nMandatory Fields: clientId or groupId, productId, submittedOnDate\n\nOptional Fields: accountNo, externalId, fieldOfficerId\n\nInherited from Product (if not provided): nominalAnnualInterestRate, interestCompoundingPeriodType, interestCalculationType, interestCalculationDaysInYearType, minRequiredOpeningBalance, lockinPeriodFrequency, lockinPeriodFrequencyType, withdrawalFeeForTransfers, allowOverdraft, overdraftLimit, withHoldTax\n\nAdditional Mandatory Field if Entity-Datatable Check is enabled for the entity of type Savings: datatables", - "operationId": "submitApplication", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "description": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PostSavingsAccountsRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PostSavingsAccountsResponse" - } - } - } - } - }, "/savingsaccounts/{accountId}": { "get": { "tags": [ @@ -18550,6 +19437,258 @@ } } }, + "/savingsaccounts": { + "get": { + "tags": [ + "Savings Account" + ], + "summary": "List savings applications/accounts", + "description": "Lists savings applications/accounts\n\nExample Requests:\n\nsavingsaccounts\n\n\nsavingsaccounts?fields=name", + "operationId": "retrieveAll", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "sqlSearch", + "in": "query", + "description": "sqlSearch", + "required": false, + "type": "string" + }, + { + "name": "externalId", + "in": "query", + "description": "externalId", + "required": false, + "type": "string" + }, + { + "name": "offset", + "in": "query", + "description": "offset", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "limit", + "in": "query", + "description": "limit", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "orderBy", + "in": "query", + "description": "orderBy", + "required": false, + "type": "string" + }, + { + "name": "sortOrder", + "in": "query", + "description": "sortOrder", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GetSavingsAccountsResponse" + } + } + } + }, + "post": { + "tags": [ + "Savings Account" + ], + "summary": "Submit new savings application", + "description": "Submits new savings application\n\nMandatory Fields: clientId or groupId, productId, submittedOnDate\n\nOptional Fields: accountNo, externalId, fieldOfficerId\n\nInherited from Product (if not provided): nominalAnnualInterestRate, interestCompoundingPeriodType, interestCalculationType, interestCalculationDaysInYearType, minRequiredOpeningBalance, lockinPeriodFrequency, lockinPeriodFrequencyType, withdrawalFeeForTransfers, allowOverdraft, overdraftLimit, withHoldTax\n\nAdditional Mandatory Field if Entity-Datatable Check is enabled for the entity of type Savings: datatables", + "operationId": "submitApplication", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "description": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PostSavingsAccountsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PostSavingsAccountsResponse" + } + } + } + } + }, + "/savingsaccounts/downloadtemplate": { + "get": { + "tags": [ + "Savings Account" + ], + "operationId": "getSavingsTemplate", + "produces": [ + "application/vnd.ms-excel" + ], + "parameters": [ + { + "name": "officeId", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "staffId", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "dateFormat", + "in": "query", + "required": false, + "type": "string" + } + ], + "responses": { + "default": { + "description": "successful operation" + } + } + } + }, + "/savingsaccounts/uploadtemplate": { + "post": { + "tags": [ + "Savings Account" + ], + "operationId": "postSavingsTemplate", + "consumes": [ + "multipart/form-data" + ], + "parameters": [ + { + "name": "file", + "in": "formData", + "required": false, + "type": "file" + }, + { + "name": "locale", + "in": "formData", + "required": false, + "type": "string" + }, + { + "name": "dateFormat", + "in": "formData", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, + "/savingsaccounts/transactions/downloadtemplate": { + "get": { + "tags": [ + "Savings Account" + ], + "operationId": "getSavingsTransactionTemplate", + "produces": [ + "application/vnd.ms-excel" + ], + "parameters": [ + { + "name": "officeId", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "dateFormat", + "in": "query", + "required": false, + "type": "string" + } + ], + "responses": { + "default": { + "description": "successful operation" + } + } + } + }, + "/savingsaccounts/transactions/uploadtemplate": { + "post": { + "tags": [ + "Savings Account" + ], + "operationId": "postSavingsTransactionTemplate", + "consumes": [ + "multipart/form-data" + ], + "parameters": [ + { + "name": "file", + "in": "formData", + "required": false, + "type": "file" + }, + { + "name": "locale", + "in": "formData", + "required": false, + "type": "string" + }, + { + "name": "dateFormat", + "in": "formData", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, "/savingsaccounts/template": { "get": { "tags": [ @@ -18608,31 +19747,6 @@ } } }, - "/savingsproducts/template": { - "get": { - "tags": [ - "Savings Product" - ], - "summary": "Retrieve Savings Product Template", - "description": "This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of:\n\nField Defaults\nAllowed Value Lists\nExample Request:\n\nsavingsproducts/template", - "operationId": "retrieveTemplate", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/GetSavingsProductsTemplateResponse" - } - } - } - } - }, "/savingsproducts": { "get": { "tags": [ @@ -18801,14 +19915,14 @@ } } }, - "/self/beneficiaries/tpt/template": { + "/savingsproducts/template": { "get": { "tags": [ - "Beneficiary Third Party Transfer" + "Savings Product" ], - "summary": "Beneficiary Third Party Transfer Template", - "description": "Returns Account Type enumerations. Self User is expected to know office name and account number to be able to add beneficiary.\n\nExample Requests:\n\n/self/beneficiaries/tpt/template", - "operationId": "template", + "summary": "Retrieve Savings Product Template", + "description": "This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of:\n\nField Defaults\nAllowed Value Lists\nExample Request:\n\nsavingsproducts/template", + "operationId": "retrieveTemplate", "consumes": [ "application/json" ], @@ -18820,7 +19934,203 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/GetSelfBeneficiariesTPTTemplateResponse" + "$ref": "#/definitions/GetSavingsProductsTemplateResponse" + } + } + } + } + }, + "/search/template": { + "get": { + "tags": [ + "Search API" + ], + "summary": "Retrive Adhoc Search query template", + "description": "Mandatory Fields\n\nsearch?query=000000001\n", + "operationId": "retrieveAdHocSearchQueryTemplate", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/GetSearchResponse" + } + } + } + } + }, + "/search/advance": { + "post": { + "tags": [ + "Search API" + ], + "summary": "Adhoc query search", + "description": "AdHocQuery search has more search options, it is a POST request, it uses request body to send search parameters\n\n\nMandatory fields:entities\n\nOptional fields:loanStatus, loanProducts, offices, loanDateOption, loanFromDate, loanToDate, \nincludeOutStandingAmountPercentage, outStandingAmountPercentageCondition, \nminOutStandingAmountPercentage and maxOutStandingAmountPercentage OR outStandingAmountPercentage, \nincludeOutstandingAmount, outstandingAmountCondition, \nminOutstandingAmount and maxOutstandingAmount OR outstandingAmount", + "operationId": "advancedSearch", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "body", + "name": "body", + "description": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PostAdhocQuerySearchRequest" + } + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/PostAdhocQuerySearchResponse" + } + } + } + } + }, + "/search": { + "get": { + "tags": [ + "Search API" + ], + "summary": "Search Resources", + "description": "Example Requests:\n\nsearch?query=000000001\n\n\nsearch?query=Petra&resource=clients,groups\n\n\nsearch?query=Petra&resource=clients,groups&exactMatch=true", + "operationId": "searchData", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "query", + "in": "query", + "description": "query", + "required": false, + "type": "string" + }, + { + "name": "resource", + "in": "query", + "description": "resource", + "required": false, + "type": "string" + }, + { + "name": "exactMatch", + "in": "query", + "description": "exactMatch", + "required": false, + "type": "boolean", + "default": false + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/GetSearchResponse" + } + } + } + } + }, + "/self/accounttransfers/template": { + "get": { + "tags": [ + "Self Account Transfer" + ], + "summary": "Retrieve Account Transfer Template", + "description": "Returns list of loan/savings accounts that can be used for account transfer\n\n\nExample Requests:\n\nself/accounttransfers/template\n", + "operationId": "template", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "type", + "in": "query", + "description": "type", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/GetAccountTransferTemplateResponse" + } + } + } + } + } + }, + "/self/accounttransfers": { + "post": { + "tags": [ + "Self Account Transfer" + ], + "summary": "Create new Transfer", + "description": "Ability to create new transfer of monetary funds from one account to another.\n\n\nExample Requests:\n\n self/accounttransfers/\n", + "operationId": "create", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "type", + "in": "query", + "description": "type", + "required": false, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/PostNewTransferResponse" + } } } } @@ -18829,7 +20139,7 @@ "/self/beneficiaries/tpt": { "get": { "tags": [ - "Beneficiary Third Party Transfer" + "Self Third Party Transfer" ], "summary": "Get All TPT Beneficiary", "description": "Api to get all third party beneficiary linked to current user.\n\nExample Requests:\n\n/self/beneficiaries/tpt", @@ -18855,7 +20165,7 @@ }, "post": { "tags": [ - "Beneficiary Third Party Transfer" + "Self Third Party Transfer" ], "summary": "Add TPT Beneficiary", "description": "Api to add third party beneficiary linked to current user.\n\nParameter Definitions\n\nname : Nick name for beneficiary, should be unique for an self service user\n\nofficeName : Office Name of beneficiary(not id)\n\naccountNumber : Account Number of beneficiary(not id)\n\ntransferLimit : Each transfer initiated to this account will not exceed this amount\n\nExample Requests:\n\n/self/beneficiaries/tpt\n\nMandatory Fields: name, officeName, accountNumber, accountType\n\nOptional Fields: transferLimit", @@ -18887,10 +20197,35 @@ } } }, + "/self/beneficiaries/tpt/template": { + "get": { + "tags": [ + "Self Third Party Transfer" + ], + "summary": "Beneficiary Third Party Transfer Template", + "description": "Returns Account Type enumerations. Self User is expected to know office name and account number to be able to add beneficiary.\n\nExample Requests:\n\n/self/beneficiaries/tpt/template", + "operationId": "template", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GetSelfBeneficiariesTPTTemplateResponse" + } + } + } + } + }, "/self/beneficiaries/tpt/{beneficiaryId}": { "put": { "tags": [ - "Beneficiary Third Party Transfer" + "Self Third Party Transfer" ], "summary": "Update TPT Beneficiary", "description": "Api to update third party beneficiary linked to current user.\n\nExample Requests:\n\n/self/beneficiaries/tpt/{beneficiaryId}\n\nOptional Fields: name, transferLimit", @@ -18931,7 +20266,7 @@ }, "delete": { "tags": [ - "Beneficiary Third Party Transfer" + "Self Third Party Transfer" ], "summary": "Delete TPT Beneficiary", "description": "Api to delete third party beneficiary linked to current user.\n\nExample Requests:\n\n/self/beneficiaries/tpt/{beneficiaryId}", @@ -18961,6 +20296,135 @@ } } }, + "/self/clients/{clientId}/images": { + "get": { + "tags": [ + "Self Client" + ], + "summary": "Retrieve Client Image", + "description": "Optional arguments are identical to those of Get Image associated with an Entity (Binary file)\n\nExample Requests:\n\nself/clients/1/images", + "operationId": "retrieveImage", + "consumes": [ + "text/plain", + "text/html", + "application/json" + ], + "produces": [ + "text/plain" + ], + "parameters": [ + { + "name": "clientId", + "in": "path", + "description": "clientId", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "name": "maxWidth", + "in": "query", + "required": false, + "type": "integer", + "format": "int32", + "x-example": "maxWidth" + }, + { + "name": "maxHeight", + "in": "query", + "required": false, + "type": "integer", + "format": "int32", + "x-example": "maxHeight" + }, + { + "name": "output", + "in": "query", + "required": false, + "type": "string", + "x-example": "output" + } + ], + "responses": { + "200": { + "description": "OK" + } + } + }, + "post": { + "tags": [ + "Self Client" + ], + "operationId": "addNewClientImage", + "consumes": [ + "multipart/form-data" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "clientId", + "in": "path", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "name": "Content-Length", + "in": "header", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "file", + "in": "formData", + "required": false, + "type": "file" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + }, + "delete": { + "tags": [ + "Self Client" + ], + "operationId": "deleteClientImage", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "clientId", + "in": "path", + "required": true, + "type": "integer", + "format": "int64" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, "/self/clients/{clientId}/charges": { "get": { "tags": [ @@ -19068,72 +20532,6 @@ } } }, - "/self/clients/{clientId}/accounts": { - "get": { - "tags": [ - "Self Client" - ], - "summary": "Retrieve client accounts overview", - "description": "An example of how a loan portfolio summary can be provided. This is requested in a specific use case of the community application.\nIt is quite reasonable to add resources like this to simplify User Interface development.\n\nExample Requests:\n\nself/clients/1/accounts\n\n\nself/clients/1/accounts?fields=loanAccounts,savingsAccounts", - "operationId": "retrieveAssociatedAccounts", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "clientId", - "in": "path", - "description": "clientId", - "required": true, - "type": "integer", - "format": "int64" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/GetSelfClientsClientIdAccountsResponse" - } - } - } - } - }, - "/self/clients/{clientId}/obligeedetails": { - "get": { - "tags": [ - "Self Client" - ], - "operationId": "retrieveObligeeDetails", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "clientId", - "in": "path", - "required": true, - "type": "integer", - "format": "int64" - } - ], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "type": "string" - }, - "headers": {} - } - } - } - }, "/self/clients/{clientId}/transactions": { "get": { "tags": [ @@ -19226,21 +20624,19 @@ } } }, - "/self/clients/{clientId}/images": { + "/self/clients/{clientId}/accounts": { "get": { "tags": [ "Self Client" ], - "summary": "Retrieve Client Image", - "description": "Optional arguments are identical to those of Get Image associated with an Entity (Binary file)\n\nExample Requests:\n\nself/clients/1/images", - "operationId": "retrieveImage", + "summary": "Retrieve client accounts overview", + "description": "An example of how a loan portfolio summary can be provided. This is requested in a specific use case of the community application.\nIt is quite reasonable to add resources like this to simplify User Interface development.\n\nExample Requests:\n\nself/clients/1/accounts\n\n\nself/clients/1/accounts?fields=loanAccounts,savingsAccounts", + "operationId": "retrieveAssociatedAccounts", "consumes": [ - "text/plain", - "text/html", "application/json" ], "produces": [ - "text/plain" + "application/json" ], "parameters": [ { @@ -19250,85 +20646,24 @@ "required": true, "type": "integer", "format": "int64" - }, - { - "name": "maxWidth", - "in": "query", - "required": false, - "type": "integer", - "format": "int32", - "x-example": "maxWidth" - }, - { - "name": "maxHeight", - "in": "query", - "required": false, - "type": "integer", - "format": "int32", - "x-example": "maxHeight" - }, - { - "name": "output", - "in": "query", - "required": false, - "type": "string", - "x-example": "output" } ], "responses": { "200": { - "description": "OK" - } - } - }, - "post": { - "tags": [ - "Self Client" - ], - "operationId": "addNewClientImage", - "consumes": [ - "multipart/form-data" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "clientId", - "in": "path", - "required": true, - "type": "integer", - "format": "int64" - }, - { - "name": "Content-Length", - "in": "header", - "required": false, - "type": "integer", - "format": "int64" - }, - { - "name": "file", - "in": "formData", - "required": false, - "type": "file" - } - ], - "responses": { - "200": { - "description": "successful operation", + "description": "OK", "schema": { - "type": "string" - }, - "headers": {} + "$ref": "#/definitions/GetSelfClientsClientIdAccountsResponse" + } } } - }, - "delete": { + } + }, + "/self/clients/{clientId}/obligeedetails": { + "get": { "tags": [ "Self Client" ], - "operationId": "deleteClientImage", + "operationId": "retrieveObligeeDetails", "consumes": [ "application/json" ], @@ -19508,12 +20843,14 @@ } } }, - "/self/loans/{loanId}/guarantors": { + "/self/loans/{loanId}/charges": { "get": { "tags": [ "Self Loans" ], - "operationId": "retrieveGuarantorDetails", + "summary": "List Loan Charges", + "description": "Lists loan Charges\n\nExample Requests:\n\nself/loans/1/charges\n\n\nself/loans/1/charges?fields=name,amountOrPercentage", + "operationId": "retrieveAllLoanCharges", "consumes": [ "application/json" ], @@ -19524,6 +20861,7 @@ { "name": "loanId", "in": "path", + "description": "loanId", "required": true, "type": "integer", "format": "int64" @@ -19531,23 +20869,25 @@ ], "responses": { "200": { - "description": "successful operation", + "description": "OK", "schema": { - "type": "string" - }, - "headers": {} + "type": "array", + "items": { + "$ref": "#/definitions/GetSelfLoansLoanIdChargesResponse" + } + } } } } }, - "/self/loans": { - "post": { + "/self/loans/{loanId}/charges/{chargeId}": { + "get": { "tags": [ "Self Loans" ], - "summary": "Calculate Loan Repayment Schedule | Submit a new Loan Application", - "description": "Calculate Loan Repayment Schedule:\n\nCalculates Loan Repayment Schedule\n\nMandatory Fields: productId, principal, loanTermFrequency, loanTermFrequencyType, numberOfRepayments, repaymentEvery, repaymentFrequencyType, interestRatePerPeriod, amortizationType, interestType, interestCalculationPeriodType, expectedDisbursementDate, transactionProcessingStrategyId\n\nSubmit a new Loan Application:\n\nMandatory Fields: clientId, productId, principal, loanTermFrequency, loanTermFrequencyType, loanType, numberOfRepayments, repaymentEvery, repaymentFrequencyType, interestRatePerPeriod, amortizationType, interestType, interestCalculationPeriodType, transactionProcessingStrategyId, expectedDisbursementDate, submittedOnDate, loanType\n\nAdditional Mandatory Fields if interest recalculation is enabled for product and Rest frequency not same as repayment period: recalculationRestFrequencyDate\n\nAdditional Mandatory Fields if interest recalculation with interest/fee compounding is enabled for product and compounding frequency not same as repayment period: recalculationCompoundingFrequencyDate\n\nAdditional Mandatory Field if Entity-Datatable Check is enabled for the entity of type loan: datatables\n\nOptional Fields: graceOnPrincipalPayment, graceOnInterestPayment, graceOnInterestCharged, linkAccountId, allowPartialPeriodInterestCalcualtion, fixedEmiAmount, maxOutstandingLoanBalance, disbursementData, graceOnArrearsAgeing, createStandingInstructionAtDisbursement (requires linkedAccountId if set to true)\n\nShowing request/response for 'Submit a new Loan Application'", - "operationId": "calculateLoanScheduleOrSubmitLoanApplication", + "summary": "Retrieve a Loan Charge", + "description": "Retrieves a Loan Charge\n\nExample Requests:\n\nself/loans/1/charges/1\n\n\nself/loans/1/charges/1?fields=name,amountOrPercentage", + "operationId": "retrieveLoanCharge", "consumes": [ "application/json" ], @@ -19556,27 +20896,27 @@ ], "parameters": [ { - "name": "command", - "in": "query", - "description": "command", - "required": false, - "type": "string" + "name": "loanId", + "in": "path", + "description": "loanId", + "required": true, + "type": "integer", + "format": "int64" }, { - "in": "body", - "name": "body", - "description": "body", + "name": "chargeId", + "in": "path", + "description": "chargeId", "required": true, - "schema": { - "$ref": "#/definitions/PostSelfLoansRequest" - } + "type": "integer", + "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PostSelfLoansResponse" + "$ref": "#/definitions/GetSelfLoansLoanIdChargesResponse" } } } @@ -19705,14 +21045,14 @@ } } }, - "/self/loans/{loanId}/charges": { - "get": { + "/self/loans": { + "post": { "tags": [ "Self Loans" ], - "summary": "List Loan Charges", - "description": "Lists loan Charges\n\nExample Requests:\n\nself/loans/1/charges\n\n\nself/loans/1/charges?fields=name,amountOrPercentage", - "operationId": "retrieveAllLoanCharges", + "summary": "Calculate Loan Repayment Schedule | Submit a new Loan Application", + "description": "Calculate Loan Repayment Schedule:\n\nCalculates Loan Repayment Schedule\n\nMandatory Fields: productId, principal, loanTermFrequency, loanTermFrequencyType, numberOfRepayments, repaymentEvery, repaymentFrequencyType, interestRatePerPeriod, amortizationType, interestType, interestCalculationPeriodType, expectedDisbursementDate, transactionProcessingStrategyId\n\nSubmit a new Loan Application:\n\nMandatory Fields: clientId, productId, principal, loanTermFrequency, loanTermFrequencyType, loanType, numberOfRepayments, repaymentEvery, repaymentFrequencyType, interestRatePerPeriod, amortizationType, interestType, interestCalculationPeriodType, transactionProcessingStrategyId, expectedDisbursementDate, submittedOnDate, loanType\n\nAdditional Mandatory Fields if interest recalculation is enabled for product and Rest frequency not same as repayment period: recalculationRestFrequencyDate\n\nAdditional Mandatory Fields if interest recalculation with interest/fee compounding is enabled for product and compounding frequency not same as repayment period: recalculationCompoundingFrequencyDate\n\nAdditional Mandatory Field if Entity-Datatable Check is enabled for the entity of type loan: datatables\n\nOptional Fields: graceOnPrincipalPayment, graceOnInterestPayment, graceOnInterestCharged, linkAccountId, allowPartialPeriodInterestCalcualtion, fixedEmiAmount, maxOutstandingLoanBalance, disbursementData, graceOnArrearsAgeing, createStandingInstructionAtDisbursement (requires linkedAccountId if set to true)\n\nShowing request/response for 'Submit a new Loan Application'", + "operationId": "calculateLoanScheduleOrSubmitLoanApplication", "consumes": [ "application/json" ], @@ -19721,35 +21061,38 @@ ], "parameters": [ { - "name": "loanId", - "in": "path", - "description": "loanId", + "name": "command", + "in": "query", + "description": "command", + "required": false, + "type": "string" + }, + { + "in": "body", + "name": "body", + "description": "body", "required": true, - "type": "integer", - "format": "int64" + "schema": { + "$ref": "#/definitions/PostSelfLoansRequest" + } } ], "responses": { "200": { "description": "OK", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/GetSelfLoansLoanIdChargesResponse" - } + "$ref": "#/definitions/PostSelfLoansResponse" } } } } }, - "/self/loans/{loanId}/charges/{chargeId}": { + "/self/loans/{loanId}/guarantors": { "get": { "tags": [ "Self Loans" ], - "summary": "Retrieve a Loan Charge", - "description": "Retrieves a Loan Charge\n\nExample Requests:\n\nself/loans/1/charges/1\n\n\nself/loans/1/charges/1?fields=name,amountOrPercentage", - "operationId": "retrieveLoanCharge", + "operationId": "retrieveGuarantorDetails", "consumes": [ "application/json" ], @@ -19760,15 +21103,6 @@ { "name": "loanId", "in": "path", - "description": "loanId", - "required": true, - "type": "integer", - "format": "int64" - }, - { - "name": "chargeId", - "in": "path", - "description": "chargeId", "required": true, "type": "integer", "format": "int64" @@ -19776,10 +21110,11 @@ ], "responses": { "200": { - "description": "OK", + "description": "successful operation", "schema": { - "$ref": "#/definitions/GetSelfLoansLoanIdChargesResponse" - } + "type": "string" + }, + "headers": {} } } } @@ -19833,6 +21168,238 @@ } } }, + "/self/pockets": { + "get": { + "tags": [ + "Pocket" + ], + "summary": "Retrieve accounts linked to pocket", + "description": "All linked loan\n\nExample Requests:\n\n\nself/pockets", + "operationId": "retrieveAll", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GetAccountsLinkedToPocketResponse" + } + } + } + }, + "post": { + "tags": [ + "Pocket" + ], + "summary": "Link/delink accounts to/from pocket", + "description": "Pockets behave as favourites. An user can link his/her Loan, Savings and Share accounts to pocket for faster access. In a similar way linked accounts can be delinked from the pocket.\n\nExample Requests:\n\nself/pockets?command=linkAccounts\n\nself/pockets?command=delinkAccounts", + "operationId": "handleCommands", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "command", + "in": "query", + "description": "command", + "required": false, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PostLinkDelinkAccountsToFromPocketResponse" + } + } + } + } + }, + "/self/loanproducts/{productId}": { + "get": { + "tags": [ + "Self Loan Products" + ], + "operationId": "retrieveLoanProductDetails", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "clientId", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "productId", + "in": "path", + "required": true, + "type": "integer", + "format": "int64" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, + "/self/loanproducts": { + "get": { + "tags": [ + "Self Loan Products" + ], + "operationId": "retrieveAllLoanProducts", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "clientId", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, + "/self/registration": { + "post": { + "tags": [ + "Self Service Registration" + ], + "operationId": "createSelfServiceRegistrationRequest", + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, + "/self/registration/user": { + "post": { + "tags": [ + "Self Service Registration" + ], + "operationId": "createSelfServiceUser", + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, + "/self/runreports/{reportName}": { + "get": { + "tags": [ + "Self Run Report " + ], + "summary": "Running A Report", + "description": "Example Requests:\n\n\nself/runreports/Client%20Details?R_officeId=1\n\n\nself/runreports/Client%20Details?R_officeId=1&exportCSV=true", + "operationId": "runReport", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json", + "text/csv", + "application/vnd.ms-excel", + "application/pdf", + "text/html" + ], + "parameters": [ + { + "name": "reportName", + "in": "path", + "description": "reportName", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GetRunReportResponse" + } + } + } + } + }, "/self/savingsaccounts/{accountId}/transactions/{transactionId}": { "get": { "tags": [ @@ -19962,45 +21529,6 @@ } } }, - "/self/savingsaccounts": { - "post": { - "tags": [ - "Self Savings Account" - ], - "operationId": "submitSavingsAccountApplication", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "command", - "in": "query", - "required": false, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "type": "string" - }, - "headers": {} - } - } - } - }, "/self/savingsaccounts/{accountId}": { "get": { "tags": [ @@ -20087,6 +21615,45 @@ } } }, + "/self/savingsaccounts": { + "post": { + "tags": [ + "Self Savings Account" + ], + "operationId": "submitSavingsAccountApplication", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "command", + "in": "query", + "required": false, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, "/self/savingsaccounts/template": { "get": { "tags": [ @@ -20230,6 +21797,473 @@ } } }, + "/self/shareaccounts": { + "post": { + "tags": [ + "Self Share Accounts" + ], + "summary": "Submit new share application", + "description": "Mandatory fields:\n\nclientId, productId, submittedDate, savingsAccountId, requestedShares, applicationDate\n\n\nOptional Fields\n\naccountNo, externalId\n\n\nInherited from Product (if not provided)\n\nminimumActivePeriod, minimumActivePeriodFrequencyType, lockinPeriodFrequency, lockinPeriodFrequencyType.", + "operationId": "createAccount", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/PostNewShareApplicationResponse" + } + } + } + } + } + }, + "/self/shareaccounts/{accountId}": { + "get": { + "tags": [ + "Self Share Accounts" + ], + "operationId": "retrieveShareAccount", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "required": true, + "type": "integer", + "format": "int64" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, + "/self/shareaccounts/template": { + "get": { + "tags": [ + "Self Share Accounts" + ], + "summary": "Retrieve Share Account Template", + "description": "This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of:\nField Defaults\n\nAllowed Value Lists\n\n\nArguments\n\nclientId:Integer mandatory\nproductId:Integer optionalIf entered, productId, productName and selectedProduct fields are returned.\nExample Requests:\n\nself/shareaccounts/template?clientId=14\n\nself/shareaccounts/template?clientId=14&productId=3\n", + "operationId": "template", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "clientId", + "in": "query", + "description": "clientId", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "productId", + "in": "query", + "description": "productId", + "required": false, + "type": "integer", + "format": "int64" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/GetShareAccountsClientIdProductIdResponse" + } + } + } + } + } + }, + "/self/surveys/scorecards/{surveyId}": { + "post": { + "tags": [ + "Self Score Card" + ], + "operationId": "createScorecard", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "surveyId", + "in": "path", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/ScorecardData" + } + } + ], + "responses": { + "default": { + "description": "successful operation" + } + } + } + }, + "/self/surveys/scorecards/clients/{clientId}": { + "get": { + "tags": [ + "Self Score Card" + ], + "operationId": "findByClient", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "clientId", + "in": "path", + "required": true, + "type": "integer", + "format": "int64" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ScorecardData" + } + }, + "headers": {} + } + } + } + }, + "/self/surveys": { + "get": { + "tags": [ + "Self Spm" + ], + "operationId": "fetchAllSurveys", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/SurveyData" + } + }, + "headers": {} + } + } + } + }, + "/shareproduct/{productId}/dividend/{dividendId}": { + "get": { + "tags": [ + "Self Dividend" + ], + "operationId": "retrieveDividendDetails", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "dividendId", + "in": "path", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "name": "offset", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "limit", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sortOrder", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "accountNo", + "in": "query", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + }, + "put": { + "tags": [ + "Self Dividend" + ], + "operationId": "updateDividendDetail", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "productId", + "in": "path", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "name": "dividendId", + "in": "path", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "name": "command", + "in": "query", + "required": false, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + }, + "delete": { + "tags": [ + "Self Dividend" + ], + "operationId": "deleteDividendDetail", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "productId", + "in": "path", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "name": "dividendId", + "in": "path", + "required": true, + "type": "integer", + "format": "int64" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, + "/shareproduct/{productId}/dividend": { + "get": { + "tags": [ + "Self Dividend" + ], + "operationId": "retrieveAll", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "productId", + "in": "path", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "name": "offset", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "limit", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sortOrder", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "status", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + }, + "post": { + "tags": [ + "Self Dividend" + ], + "operationId": "createDividendDetail", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "productId", + "in": "path", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + }, + "headers": {} + } + } + } + }, "/taxes/component": { "get": { "tags": [ @@ -20390,67 +22424,6 @@ } } }, - "/taxes/group": { - "get": { - "tags": [ - "Tax Group" - ], - "summary": "List Tax Group", - "description": "List Tax Group", - "operationId": "retrieveAllTaxGroups", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/GetTaxesGroupResponse" - } - } - } - } - }, - "post": { - "tags": [ - "Tax Group" - ], - "summary": "Create a new Tax Group", - "description": "Create a new Tax Group\nMandatory Fields: name and taxComponents\nMandatory Fields in taxComponents: taxComponentId\nOptional Fields in taxComponents: id, startDate and endDate", - "operationId": "createTaxGroup", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "description": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PostTaxesGroupRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PostTaxesGroupResponse" - } - } - } - } - }, "/taxes/group/{taxGroupId}": { "get": { "tags": [ @@ -20526,6 +22499,67 @@ } } }, + "/taxes/group": { + "get": { + "tags": [ + "Tax Group" + ], + "summary": "List Tax Group", + "description": "List Tax Group", + "operationId": "retrieveAllTaxGroups", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/GetTaxesGroupResponse" + } + } + } + } + }, + "post": { + "tags": [ + "Tax Group" + ], + "summary": "Create a new Tax Group", + "description": "Create a new Tax Group\nMandatory Fields: name and taxComponents\nMandatory Fields in taxComponents: taxComponentId\nOptional Fields in taxComponents: id, startDate and endDate", + "operationId": "createTaxGroup", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "description": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PostTaxesGroupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PostTaxesGroupResponse" + } + } + } + } + }, "/taxes/group/template": { "get": { "tags": [ @@ -20632,7 +22666,7 @@ "SPM API - LookUp Table" ], "summary": "Create a Lookup Table entry", - "description": "Add a new netry to a survey.\n\nMandatory Fields\nkey, score, validFrom, validTo", + "description": "Add a new entry to a survey.\n\nMandatory Fields\nkey, score, validFrom, validTo", "operationId": "createLookupTable", "consumes": [ "application/json" @@ -20668,7 +22702,7 @@ "/surveys/scorecards/{surveyId}": { "get": { "tags": [ - "SPM - Scorecards" + "Score Card" ], "summary": "List all Scorecard entries", "description": "List all Scorecard entries for a survey.", @@ -20703,10 +22737,10 @@ }, "post": { "tags": [ - "SPM - Scorecards" + "Score Card" ], "summary": "Create a Scorecard entry", - "description": "Add a new netry to a survey.\n\nMandatory Fields\nclientId, createdOn, questionId, responseId, staffId", + "description": "Add a new entry to a survey.\n\nMandatory Fields\nclientId, createdOn, questionId, responseId, staffId", "operationId": "createScorecard", "consumes": [ "application/json" @@ -20739,10 +22773,45 @@ } } }, + "/surveys/scorecards/clients/{clientId}": { + "get": { + "tags": [ + "Score Card" + ], + "operationId": "findByClient", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "clientId", + "in": "path", + "required": true, + "type": "integer", + "format": "int64" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ScorecardData" + } + }, + "headers": {} + } + } + } + }, "/surveys/scorecards/{surveyId}/clients/{clientId}": { "get": { "tags": [ - "SPM - Scorecards" + "Score Card" ], "operationId": "findBySurveyAndClient", "consumes": [ @@ -20783,45 +22852,10 @@ } } }, - "/surveys/scorecards/clients/{clientId}": { - "get": { - "tags": [ - "SPM - Scorecards" - ], - "operationId": "findByClient", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "clientId", - "in": "path", - "required": true, - "type": "integer", - "format": "int64" - } - ], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/ScorecardData" - } - }, - "headers": {} - } - } - } - }, "/surveys": { "get": { "tags": [ - "SPM - Serveys" + "Spm-Surveys" ], "summary": "List all Surveys", "description": "", @@ -20854,7 +22888,7 @@ }, "post": { "tags": [ - "SPM - Serveys" + "Spm-Surveys" ], "summary": "Create a Survey", "description": "Adds a new survey to collect client related data.\n\nMandatory Fields\n\ncountryCode, key, name, questions, responses, sequenceNo, text, value", @@ -20886,7 +22920,7 @@ "/surveys/{id}": { "get": { "tags": [ - "SPM - Serveys" + "Spm-Surveys" ], "summary": "Retrieve a Survey", "description": "", @@ -20918,7 +22952,7 @@ }, "post": { "tags": [ - "SPM - Serveys" + "Spm-Surveys" ], "summary": "Deactivate Survey", "description": "", @@ -20952,7 +22986,7 @@ }, "put": { "tags": [ - "SPM - Serveys" + "Spm-Surveys" ], "operationId": "editSurvey", "consumes": [ @@ -20989,6 +23023,83 @@ } } }, + "/templates": { + "get": { + "tags": [ + "User Generated Documents" + ], + "summary": "Retrieve all UGDs", + "description": "Example Requests:\n\ntemplates\n\nIt is also possible to get specific UGDs by entity and type:\n\ntemplates?type=0&entity=0\n[Entity: Id]\n\n\n\n\n\nclient: 0, loan: 1\n\n[Type: Id]\n\n\n\nDocument: 0, E-Mail (not yet): 1, SMS: 2", + "operationId": "retrieveAll", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "typeId", + "in": "query", + "description": "typeId", + "required": false, + "type": "integer", + "default": -1, + "format": "int32" + }, + { + "name": "entityId", + "in": "query", + "description": "entityId", + "required": false, + "type": "integer", + "default": -1, + "format": "int32" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/GetTemplatesResponse" + } + } + } + }, + "post": { + "tags": [ + "User Generated Documents" + ], + "summary": "Add a UGD", + "description": "Adds a new UGD.\n\nMandatory Fields\nname\n\n\n\nExample Requests:\n\ntemplates/1", + "operationId": "createTemplate", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "description": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PostTemplatesRequest" + } + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/PostTemplatesResponse" + } + } + } + } + }, "/templates/{templateId}/template": { "get": { "tags": [ @@ -21191,78 +23302,29 @@ } } }, - "/templates": { + "/passwordpreferences/template": { "get": { "tags": [ - "User Generated Documents" + "Password preferences" ], - "summary": "Retrieve all UGDs", - "description": "Example Requests:\n\ntemplates\n\nIt is also possible to get specific UGDs by entity and type:\n\ntemplates?type=0&entity=0\n[Entity: Id]\n\n\n\n\n\nclient: 0, loan: 1\n\n[Type: Id]\n\n\n\nDocument: 0, E-Mail (not yet): 1, SMS: 2", - "operationId": "retrieveAll", + "summary": "List Application Password validation policies", + "description": "ARGUMENTS\nExample Requests:\n\npasswordpreferences", + "operationId": "template", "consumes": [ "application/json" ], "produces": [ "application/json" ], - "parameters": [ - { - "name": "typeId", - "in": "query", - "description": "typeId", - "required": false, - "type": "integer", - "default": -1, - "format": "int32" - }, - { - "name": "entityId", - "in": "query", - "description": "entityId", - "required": false, - "type": "integer", - "default": -1, - "format": "int32" - } - ], + "parameters": [], "responses": { "200": { "description": "", "schema": { - "$ref": "#/definitions/GetTemplatesResponse" - } - } - } - }, - "post": { - "tags": [ - "User Generated Documents" - ], - "summary": "Add a UGD", - "description": "Adds a new UGD.\n\nMandatory Fields\nname\n\n\n\nExample Requests:\n\ntemplates/1", - "operationId": "createTemplate", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "description": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PostTemplatesRequest" - } - } - ], - "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/PostTemplatesResponse" + "type": "array", + "items": { + "$ref": "#/definitions/GetPasswordPreferencesTemplateResponse" + } } } } @@ -21321,34 +23383,6 @@ } } }, - "/passwordpreferences/template": { - "get": { - "tags": [ - "Password preferences" - ], - "summary": "List Application Password validation policies", - "description": "ARGUMENTS\nExample Requests:\n\npasswordpreferences", - "operationId": "template", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [], - "responses": { - "200": { - "description": "", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/GetPasswordPreferencesTemplateResponse" - } - } - } - } - } - }, "/permissions": { "get": { "tags": [ @@ -21770,31 +23804,6 @@ } } }, - "/users/template": { - "get": { - "tags": [ - "Users" - ], - "summary": "Retrieve User Details Template", - "description": "This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of:\n\nField Defaults\nAllowed Value Lists\nExample Request:\n\nusers/template", - "operationId": "template", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "parameters": [], - "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/GetUsersTemplateResponse" - } - } - } - } - }, "/users": { "get": { "tags": [ @@ -21962,6 +23971,31 @@ } } } + }, + "/users/template": { + "get": { + "tags": [ + "Users" + ], + "summary": "Retrieve User Details Template", + "description": "This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of:\n\nField Defaults\nAllowed Value Lists\nExample Request:\n\nusers/template", + "operationId": "template", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/GetUsersTemplateResponse" + } + } + } + } } }, "definitions": { @@ -22230,31 +24264,6 @@ } } }, - "PostFinancialActivityAccountsResponse": { - "type": "object", - "properties": { - "resourceId": { - "type": "integer", - "format": "int64", - "example": 1 - } - } - }, - "PostFinancialActivityAccountsRequest": { - "type": "object", - "properties": { - "financialActivityId": { - "type": "integer", - "format": "int64", - "example": 200 - }, - "glAccountId": { - "type": "integer", - "format": "int64", - "example": 2 - } - } - }, "PutFinancialActivityAccountsResponse": { "type": "object", "properties": { @@ -22278,6 +24287,31 @@ } } }, + "PostFinancialActivityAccountsRequest": { + "type": "object", + "properties": { + "financialActivityId": { + "type": "integer", + "format": "int64", + "example": 200 + }, + "glAccountId": { + "type": "integer", + "format": "int64", + "example": 2 + } + } + }, + "PostFinancialActivityAccountsResponse": { + "type": "object", + "properties": { + "resourceId": { + "type": "integer", + "format": "int64", + "example": 1 + } + } + }, "DeleteFinancialActivityAccountsResponse": { "type": "object", "properties": { @@ -22288,6 +24322,148 @@ } } }, + "GetGLAccountsResponse": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "example": 16 + }, + "name": { + "type": "string", + "example": "Cash" + }, + "parentId": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "glCode": { + "type": "string", + "example": "100001" + }, + "disabled": { + "type": "boolean", + "example": false + }, + "manualEntriesAllowed": { + "type": "boolean", + "example": true + }, + "type": { + "$ref": "#/definitions/EnumOptionData" + }, + "usage": { + "$ref": "#/definitions/EnumOptionData" + }, + "description": { + "type": "string", + "example": "Desc" + }, + "nameDecorated": { + "type": "string", + "example": "....Cash" + }, + "tagId": { + "$ref": "#/definitions/CodeValueData" + }, + "organizationRunningBalance": { + "type": "integer", + "format": "int64", + "example": 118437 + } + } + }, + "PutGLAccountsResponse": { + "type": "object", + "properties": { + "resourceId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "changes": { + "$ref": "#/definitions/PutGLAccountsResponsechangesSwagger" + } + } + }, + "PutGLAccountsResponsechangesSwagger": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Cash at Bangalore" + } + } + }, + "PutGLAccountsRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Cash at Bangalore" + } + } + }, + "PostGLAccountsResponse": { + "type": "object", + "properties": { + "resourceId": { + "type": "integer", + "format": "int32", + "example": 22 + } + } + }, + "PostGLAccountsRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Cash at Bangalore" + }, + "glCode": { + "type": "string", + "example": "100001" + }, + "manualEntriesAllowed": { + "type": "boolean", + "example": true + }, + "type": { + "type": "string", + "example": "1" + }, + "tagId": { + "type": "string", + "example": "10" + }, + "parentId": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "usage": { + "example": "1", + "$ref": "#/definitions/EnumOptionData" + }, + "description": { + "type": "string", + "example": "Desc" + } + } + }, + "DeleteGLAccountsRequest": { + "type": "object", + "properties": { + "resourceId": { + "type": "integer", + "format": "int32", + "example": 1 + } + } + }, "GetGLAccountsTemplateResponse": { "type": "object", "properties": { @@ -22373,148 +24549,6 @@ } } }, - "GetGLAccountsResponse": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64", - "example": 16 - }, - "name": { - "type": "string", - "example": "Cash" - }, - "parentId": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "glCode": { - "type": "string", - "example": "100001" - }, - "disabled": { - "type": "boolean", - "example": false - }, - "manualEntriesAllowed": { - "type": "boolean", - "example": true - }, - "type": { - "$ref": "#/definitions/EnumOptionData" - }, - "usage": { - "$ref": "#/definitions/EnumOptionData" - }, - "description": { - "type": "string", - "example": "Desc" - }, - "nameDecorated": { - "type": "string", - "example": "....Cash" - }, - "tagId": { - "$ref": "#/definitions/CodeValueData" - }, - "organizationRunningBalance": { - "type": "integer", - "format": "int64", - "example": 118437 - } - } - }, - "PostGLAccountsResponse": { - "type": "object", - "properties": { - "resourceId": { - "type": "integer", - "format": "int32", - "example": 22 - } - } - }, - "PostGLAccountsRequest": { - "type": "object", - "properties": { - "name": { - "type": "string", - "example": "Cash at Bangalore" - }, - "glCode": { - "type": "string", - "example": "100001" - }, - "manualEntriesAllowed": { - "type": "boolean", - "example": true - }, - "type": { - "type": "string", - "example": "1" - }, - "tagId": { - "type": "string", - "example": "10" - }, - "parentId": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "usage": { - "example": "1", - "$ref": "#/definitions/EnumOptionData" - }, - "description": { - "type": "string", - "example": "Desc" - } - } - }, - "PutGLAccountsResponse": { - "type": "object", - "properties": { - "resourceId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "changes": { - "$ref": "#/definitions/PutGLAccountsResponsechangesSwagger" - } - } - }, - "PutGLAccountsResponsechangesSwagger": { - "type": "object", - "properties": { - "name": { - "type": "string", - "example": "Cash at Bangalore" - } - } - }, - "PutGLAccountsRequest": { - "type": "object", - "properties": { - "name": { - "type": "string", - "example": "Cash at Bangalore" - } - } - }, - "DeleteGLAccountsRequest": { - "type": "object", - "properties": { - "resourceId": { - "type": "integer", - "format": "int32", - "example": 1 - } - } - }, "JournalEntryData": { "type": "object", "properties": { @@ -22652,65 +24686,6 @@ } } }, - "LoanProductProvisioningEntryData": { - "type": "object", - "properties": { - "historyId": { - "type": "integer", - "format": "int64" - }, - "officeId": { - "type": "integer", - "format": "int64" - }, - "currencyCode": { - "type": "string" - }, - "productId": { - "type": "integer", - "format": "int64" - }, - "categoryId": { - "type": "integer", - "format": "int64" - }, - "overdueInDays": { - "type": "integer", - "format": "int64" - }, - "percentage": { - "type": "number" - }, - "liablityAccount": { - "type": "integer", - "format": "int64" - }, - "expenseAccount": { - "type": "integer", - "format": "int64" - }, - "criteriaId": { - "type": "integer", - "format": "int64" - }, - "outstandingBalance": { - "type": "number" - } - } - }, - "ProvisioningEntryData": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "createdDate": { - "type": "string", - "format": "date-time" - } - } - }, "PostProvisioningEntriesResponse": { "type": "object", "properties": { @@ -22767,6 +24742,65 @@ } } }, + "ProvisioningEntryData": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "createdDate": { + "type": "string", + "format": "date-time" + } + } + }, + "LoanProductProvisioningEntryData": { + "type": "object", + "properties": { + "historyId": { + "type": "integer", + "format": "int64" + }, + "officeId": { + "type": "integer", + "format": "int64" + }, + "currencyCode": { + "type": "string" + }, + "productId": { + "type": "integer", + "format": "int64" + }, + "categoryId": { + "type": "integer", + "format": "int64" + }, + "overdueInDays": { + "type": "integer", + "format": "int64" + }, + "percentage": { + "type": "number" + }, + "liablityAccount": { + "type": "integer", + "format": "int64" + }, + "expenseAccount": { + "type": "integer", + "format": "int64" + }, + "criteriaId": { + "type": "integer", + "format": "int64" + }, + "outstandingBalance": { + "type": "number" + } + } + }, "AccountingTagRuleData": { "type": "object", "properties": { @@ -22835,47 +24869,6 @@ } } }, - "PutAccountingRulesResponse": { - "type": "object", - "properties": { - "resourceId": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "changes": { - "$ref": "#/definitions/PutAccountingRulesResponsechangesSwagger" - } - } - }, - "PutAccountingRulesResponsechangesSwagger": { - "type": "object", - "properties": { - "name": { - "type": "string", - "example": "Employee Salary posting rule" - } - } - }, - "PutAccountingRulesRequest": { - "type": "object", - "properties": { - "name": { - "type": "string", - "example": "Employee Salary posting rule" - } - } - }, - "DeleteAccountingRulesResponse": { - "type": "object", - "properties": { - "resourceId": { - "type": "integer", - "format": "int64", - "example": 1 - } - } - }, "PostAccountingRulesResponse": { "type": "object", "properties": { @@ -22919,6 +24912,47 @@ } } }, + "PutAccountingRulesResponse": { + "type": "object", + "properties": { + "resourceId": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "changes": { + "$ref": "#/definitions/PutAccountingRulesResponsechangesSwagger" + } + } + }, + "PutAccountingRulesResponsechangesSwagger": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Employee Salary posting rule" + } + } + }, + "PutAccountingRulesRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Employee Salary posting rule" + } + } + }, + "DeleteAccountingRulesResponse": { + "type": "object", + "properties": { + "resourceId": { + "type": "integer", + "format": "int64", + "example": 1 + } + } + }, "GetAccountRulesTemplateResponse": { "type": "object", "properties": { @@ -23204,6 +25238,22 @@ } } }, + "GetAccountNumberFormatsIdResponse": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "example": 2 + }, + "accountType": { + "$ref": "#/definitions/EnumOptionData" + }, + "prefixType": { + "$ref": "#/definitions/EnumOptionData" + } + } + }, "GetAccountNumberFormatsResponseTemplate": { "type": "object", "properties": { @@ -23224,22 +25274,6 @@ } } }, - "GetAccountNumberFormatsIdResponse": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64", - "example": 2 - }, - "accountType": { - "$ref": "#/definitions/EnumOptionData" - }, - "prefixType": { - "$ref": "#/definitions/EnumOptionData" - } - } - }, "PutAccountNumberFormatsResponse": { "type": "object", "properties": { @@ -23401,9 +25435,6 @@ "type": "integer", "format": "int64" }, - "update": { - "type": "boolean" - }, "create": { "type": "boolean" }, @@ -23437,6 +25468,9 @@ "noteResource": { "type": "boolean" }, + "update": { + "type": "boolean" + }, "cacheResource": { "type": "boolean" }, @@ -23481,29 +25515,6 @@ } } }, - "GetCodeValuesDataResponse": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "name": { - "type": "string", - "example": "Passport" - }, - "description": { - "type": "string", - "example": "Passport information" - }, - "position": { - "type": "integer", - "format": "int32", - "example": 0 - } - } - }, "PostCodeValueDataResponse": { "type": "object", "properties": { @@ -23532,6 +25543,16 @@ } } }, + "DeleteCodeValueDataResponse": { + "type": "object", + "properties": { + "resourceId": { + "type": "integer", + "format": "int64", + "example": 4 + } + } + }, "PutCodeValueDataResponse": { "type": "object", "properties": { @@ -23581,13 +25602,44 @@ } } }, - "DeleteCodeValueDataResponse": { + "GetCodeValuesDataResponse": { "type": "object", "properties": { - "resourceId": { + "id": { "type": "integer", "format": "int64", - "example": 4 + "example": 1 + }, + "name": { + "type": "string", + "example": "Passport" + }, + "description": { + "type": "string", + "example": "Passport information" + }, + "position": { + "type": "integer", + "format": "int32", + "example": 0 + } + } + }, + "GetCodesResponse": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "name": { + "type": "string", + "example": "Education" + }, + "systemDefined": { + "type": "boolean", + "example": true } } }, @@ -23610,24 +25662,6 @@ } } }, - "GetCodesResponse": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "name": { - "type": "string", - "example": "Education" - }, - "systemDefined": { - "type": "boolean", - "example": true - } - } - }, "PutCodesApichangesSwagger": { "type": "object", "properties": { @@ -23769,18 +25803,6 @@ } } }, - "PutDataTablesResponse": { - "type": "object", - "properties": { - "resourceIdentifier": { - "type": "string", - "example": "extra_client_details" - } - } - }, - "PostDataTablesRegisterDatatableAppTable": { - "type": "object" - }, "GetDataTablesResponse": { "type": "object", "properties": { @@ -23851,31 +25873,97 @@ } } }, - "GetDataTablesAppTableIdResponse": { + "PutDataTablesResponse": { "type": "object", "properties": { - "columnHeaders": { + "resourceIdentifier": { + "type": "string", + "example": "extra_client_details" + } + } + }, + "PostDataTablesRegisterDatatableAppTable": { + "type": "object" + }, + "PutDataTablesRequest": { + "type": "object", + "properties": { + "appTableName": { + "type": "string", + "example": "m_client" + }, + "dropColumns": { "type": "array", "items": { - "$ref": "#/definitions/ResultsetColumnHeaderData" + "$ref": "#/definitions/PutDataTablesRequestDropColumns" } }, - "data": { + "addColumns": { "type": "array", "items": { - "$ref": "#/definitions/ResultsetRowData" + "$ref": "#/definitions/PutDataTablesRequestAddColumns" + } + }, + "ChangeColumns": { + "type": "array", + "items": { + "$ref": "#/definitions/PutDataTablesRequestChangeColumns" } } } }, - "ResultsetRowData": { + "PutDataTablesRequestAddColumns": { "type": "object", "properties": { - "row": { - "type": "array", - "items": { - "type": "string" - } + "name": { + "type": "string", + "example": "Question" + }, + "type": { + "type": "string", + "example": "Dropdown" + }, + "code": { + "type": "string", + "example": "Gender" + }, + "mandatory": { + "type": "boolean", + "example": true + } + } + }, + "PutDataTablesRequestChangeColumns": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Question" + }, + "newName": { + "type": "string", + "example": "Question 2" + }, + "code": { + "type": "string", + "example": "Gender" + }, + "newCode": { + "type": "string", + "example": "Gender2" + }, + "mandatory": { + "type": "boolean", + "example": true + } + } + }, + "PutDataTablesRequestDropColumns": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Gender_cd_Question" } } }, @@ -24029,6 +26117,43 @@ } } }, + "GetDataTablesAppTableIdResponse": { + "type": "object", + "properties": { + "columnHeaders": { + "type": "array", + "items": { + "$ref": "#/definitions/ResultsetColumnHeaderData" + } + }, + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/ResultsetRowData" + } + } + } + }, + "ResultsetRowData": { + "type": "object", + "properties": { + "row": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "DeleteDataTablesResponse": { + "type": "object", + "properties": { + "resourceIdentifier": { + "type": "string", + "example": "extra_client_details" + } + } + }, "PostDataTablesResponse": { "type": "object", "properties": { @@ -24061,94 +26186,13 @@ } } }, - "PutDataTablesRequest": { + "DeleteEntityDatatableChecksTemplateResponse": { "type": "object", "properties": { - "appTableName": { - "type": "string", - "example": "m_client" - }, - "dropColumns": { - "type": "array", - "items": { - "$ref": "#/definitions/PutDataTablesRequestDropColumns" - } - }, - "addColumns": { - "type": "array", - "items": { - "$ref": "#/definitions/PutDataTablesRequestAddColumns" - } - }, - "ChangeColumns": { - "type": "array", - "items": { - "$ref": "#/definitions/PutDataTablesRequestChangeColumns" - } - } - } - }, - "PutDataTablesRequestAddColumns": { - "type": "object", - "properties": { - "name": { - "type": "string", - "example": "Question" - }, - "type": { - "type": "string", - "example": "Dropdown" - }, - "code": { - "type": "string", - "example": "Gender" - }, - "mandatory": { - "type": "boolean", - "example": true - } - } - }, - "PutDataTablesRequestChangeColumns": { - "type": "object", - "properties": { - "name": { - "type": "string", - "example": "Question" - }, - "newName": { - "type": "string", - "example": "Question 2" - }, - "code": { - "type": "string", - "example": "Gender" - }, - "newCode": { - "type": "string", - "example": "Gender2" - }, - "mandatory": { - "type": "boolean", - "example": true - } - } - }, - "PutDataTablesRequestDropColumns": { - "type": "object", - "properties": { - "name": { - "type": "string", - "example": "Gender_cd_Question" - } - } - }, - "DeleteDataTablesResponse": { - "type": "object", - "properties": { - "resourceIdentifier": { - "type": "string", - "example": "extra_client_details" + "resourceId": { + "type": "integer", + "format": "int64", + "example": 1 } } }, @@ -24185,13 +26229,35 @@ } } }, - "DeleteEntityDatatableChecksTemplateResponse": { + "GetEntityDatatableChecksResponse": { "type": "object", "properties": { - "resourceId": { + "id": { "type": "integer", - "format": "int64", - "example": 1 + "format": "int64" + }, + "entity": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/EnumOptionData" + }, + "datatableName": { + "type": "string" + }, + "systemDefined": { + "type": "boolean" + }, + "order": { + "type": "integer", + "format": "int64" + }, + "productId": { + "type": "integer", + "format": "int64" + }, + "productName": { + "type": "string" } } }, @@ -24259,12 +26325,6 @@ "$ref": "#/definitions/AppUserClientMapping" } }, - "authorities": { - "type": "array", - "items": { - "$ref": "#/definitions/GrantedAuthority" - } - }, "selfServiceUser": { "type": "boolean" }, @@ -24278,6 +26338,12 @@ "notEnabled": { "type": "boolean" }, + "authorities": { + "type": "array", + "items": { + "$ref": "#/definitions/GrantedAuthority" + } + }, "new": { "type": "boolean" } @@ -24351,6 +26417,12 @@ "taxGroup": { "$ref": "#/definitions/TaxGroup" }, + "savingsCharge": { + "type": "boolean" + }, + "feeOnMonthDay": { + "$ref": "#/definitions/MonthDay" + }, "annualFee": { "type": "boolean" }, @@ -24369,7 +26441,10 @@ "allowedSavingsChargeTime": { "type": "boolean" }, - "percentageOfApprovedAmount": { + "loanCharge": { + "type": "boolean" + }, + "clientCharge": { "type": "boolean" }, "allowedSavingsChargeCalculationType": { @@ -24378,21 +26453,12 @@ "allowedClientChargeCalculationType": { "type": "boolean" }, + "percentageOfApprovedAmount": { + "type": "boolean" + }, "percentageOfDisbursementAmount": { "type": "boolean" }, - "loanCharge": { - "type": "boolean" - }, - "savingsCharge": { - "type": "boolean" - }, - "clientCharge": { - "type": "boolean" - }, - "feeOnMonthDay": { - "$ref": "#/definitions/MonthDay" - }, "disbursementCharge": { "type": "boolean" }, @@ -24502,15 +26568,19 @@ "type": "string", "format": "date-time" }, - "active": { + "notActive": { "type": "boolean" }, - "closed": { + "transferOnHold": { "type": "boolean" }, - "rejected": { + "transferInProgress": { "type": "boolean" }, + "activationLocalDate": { + "type": "string", + "format": "date" + }, "officeJoiningLocalDate": { "type": "string", "format": "date" @@ -24518,6 +26588,12 @@ "withdrawn": { "type": "boolean" }, + "notPending": { + "type": "boolean" + }, + "transferInProgressOrOnHold": { + "type": "boolean" + }, "notStaff": { "type": "boolean" }, @@ -24525,26 +26601,16 @@ "type": "string", "format": "date" }, + "active": { + "type": "boolean" + }, + "rejected": { + "type": "boolean" + }, "pending": { "type": "boolean" }, - "notActive": { - "type": "boolean" - }, - "notPending": { - "type": "boolean" - }, - "activationLocalDate": { - "type": "string", - "format": "date" - }, - "transferInProgress": { - "type": "boolean" - }, - "transferOnHold": { - "type": "boolean" - }, - "transferInProgressOrOnHold": { + "closed": { "type": "boolean" }, "new": { @@ -24684,10 +26750,10 @@ "type": "string", "format": "date-time" }, - "active": { + "baseLendingRate": { "type": "boolean" }, - "baseLendingRate": { + "active": { "type": "boolean" }, "new": { @@ -24723,15 +26789,15 @@ "type": "string", "format": "date-time" }, - "active": { - "type": "boolean" - }, "differentialToBaseLendingRate": { "type": "boolean" }, "floatingRatesId": { "$ref": "#/definitions/FloatingRate" }, + "active": { + "type": "boolean" + }, "new": { "type": "boolean" } @@ -24887,15 +26953,6 @@ "accountNumberRequiresAutoGeneration": { "type": "boolean" }, - "active": { - "type": "boolean" - }, - "closed": { - "type": "boolean" - }, - "pending": { - "type": "boolean" - }, "notActive": { "type": "boolean" }, @@ -24905,17 +26962,17 @@ "group": { "type": "boolean" }, - "notPending": { + "transferOnHold": { + "type": "boolean" + }, + "transferInProgress": { "type": "boolean" }, "activationLocalDate": { "type": "string", "format": "date" }, - "transferInProgress": { - "type": "boolean" - }, - "transferOnHold": { + "notPending": { "type": "boolean" }, "transferInProgressOrOnHold": { @@ -24931,6 +26988,15 @@ "$ref": "#/definitions/Client" } }, + "active": { + "type": "boolean" + }, + "pending": { + "type": "boolean" + }, + "closed": { + "type": "boolean" + }, "new": { "type": "boolean" } @@ -25033,46 +27099,28 @@ "floatingRates": { "$ref": "#/definitions/LoanProductFloatingRates" }, - "currency": { - "$ref": "#/definitions/MonetaryCurrency" - }, - "interestRecalculationEnabled": { - "type": "boolean" - }, - "equalAmortization": { - "type": "boolean" - }, - "nominalInterestRatePerPeriod": { - "type": "number" - }, - "interestPeriodFrequencyType": { - "type": "string", - "enum": [ - "DAYS", - "WEEKS", - "MONTHS", - "YEARS", - "WHOLE_TERM", - "INVALID" - ] - }, - "numberOfRepayments": { + "accountingType": { "type": "integer", "format": "int32" }, - "arrearsBasedOnOriginalSchedule": { + "cashBasedAccountingEnabled": { + "type": "boolean" + }, + "accrualBasedAccountingEnabled": { "type": "boolean" }, "linkedToFloatingInterestRate": { "type": "boolean" }, + "equalAmortization": { + "type": "boolean" + }, + "interestRecalculationEnabled": { + "type": "boolean" + }, "repaymentStrategy": { "$ref": "#/definitions/LoanTransactionProcessingStrategy" }, - "accountingType": { - "type": "integer", - "format": "int32" - }, "loanProductCharges": { "type": "array", "items": { @@ -25085,12 +27133,6 @@ "accountingDisabled": { "type": "boolean" }, - "cashBasedAccountingEnabled": { - "type": "boolean" - }, - "accrualBasedAccountingEnabled": { - "type": "boolean" - }, "upfrontAccrualAccountingEnabled": { "type": "boolean" }, @@ -25106,12 +27148,30 @@ "maxPrincipalAmount": { "$ref": "#/definitions/Money" }, + "nominalInterestRatePerPeriod": { + "type": "number" + }, + "interestPeriodFrequencyType": { + "type": "string", + "enum": [ + "DAYS", + "WEEKS", + "MONTHS", + "YEARS", + "WHOLE_TERM", + "INVALID" + ] + }, "minNominalInterestRatePerPeriod": { "type": "number" }, "maxNominalInterestRatePerPeriod": { "type": "number" }, + "numberOfRepayments": { + "type": "integer", + "format": "int32" + }, "minNumberOfRepayments": { "type": "integer", "format": "int32" @@ -25126,6 +27186,12 @@ "holdGuaranteeFundsEnabled": { "type": "boolean" }, + "arrearsBasedOnOriginalSchedule": { + "type": "boolean" + }, + "currency": { + "$ref": "#/definitions/MonetaryCurrency" + }, "new": { "type": "boolean" } @@ -25402,9 +27468,6 @@ "outstandingLoanBalance": { "type": "number" }, - "getloanProductConfigurableAttributes": { - "$ref": "#/definitions/LoanProductConfigurableAttributes" - }, "minimumGapBetweenInstallments": { "type": "integer", "format": "int32" @@ -25413,15 +27476,12 @@ "type": "integer", "format": "int32" }, - "interestRecalculationEnabled": { - "type": "boolean" + "getloanProductConfigurableAttributes": { + "$ref": "#/definitions/LoanProductConfigurableAttributes" }, "equalAmortization": { "type": "boolean" }, - "compoundingToBePostedAsTransaction": { - "type": "boolean" - }, "floatingInterestRateCalculationAllowed": { "type": "boolean" }, @@ -25430,6 +27490,12 @@ }, "variableInstallmentsAllowed": { "type": "boolean" + }, + "interestRecalculationEnabled": { + "type": "boolean" + }, + "compoundingToBePostedAsTransaction": { + "type": "boolean" } } }, @@ -25700,9 +27766,6 @@ "type": "integer", "format": "int32" }, - "interestRecalculationEnabled": { - "type": "boolean" - }, "equalAmortization": { "type": "boolean" }, @@ -25712,6 +27775,9 @@ }, "arrearsTolerance": { "type": "number" + }, + "interestRecalculationEnabled": { + "type": "boolean" } } }, @@ -25777,12 +27843,6 @@ "amount": { "type": "number" }, - "currency": { - "$ref": "#/definitions/MonetaryCurrency" - }, - "zero": { - "type": "boolean" - }, "currencyInMultiplesOf": { "type": "integer", "format": "int32" @@ -25795,16 +27855,18 @@ }, "amountDefaultedToNullIfZero": { "type": "number" + }, + "zero": { + "type": "boolean" + }, + "currency": { + "$ref": "#/definitions/MonetaryCurrency" } } }, "MonthDay": { "type": "object", "properties": { - "dayOfMonth": { - "type": "integer", - "format": "int32" - }, "fieldTypes": { "type": "array", "items": { @@ -25815,6 +27877,10 @@ "type": "integer", "format": "int32" }, + "dayOfMonth": { + "type": "integer", + "format": "int32" + }, "chronology": { "$ref": "#/definitions/Chronology" }, @@ -25996,15 +28062,15 @@ "$ref": "#/definitions/AppUser" }, "createdDate": { - "type": "string", - "format": "date-time" + "type": "integer", + "format": "int64" }, "lastModifiedBy": { "$ref": "#/definitions/AppUser" }, "lastModifiedDate": { - "type": "string", - "format": "date-time" + "type": "integer", + "format": "int64" }, "percentage": { "type": "number" @@ -26053,15 +28119,15 @@ "$ref": "#/definitions/AppUser" }, "createdDate": { - "type": "string", - "format": "date-time" + "type": "integer", + "format": "int64" }, "lastModifiedBy": { "$ref": "#/definitions/AppUser" }, "lastModifiedDate": { - "type": "string", - "format": "date-time" + "type": "integer", + "format": "int64" }, "percentage": { "type": "number" @@ -26082,15 +28148,15 @@ "$ref": "#/definitions/AppUser" }, "createdDate": { - "type": "string", - "format": "date-time" + "type": "integer", + "format": "int64" }, "lastModifiedBy": { "$ref": "#/definitions/AppUser" }, "lastModifiedDate": { - "type": "string", - "format": "date-time" + "type": "integer", + "format": "int64" }, "name": { "type": "string" @@ -26118,15 +28184,15 @@ "$ref": "#/definitions/AppUser" }, "createdDate": { - "type": "string", - "format": "date-time" + "type": "integer", + "format": "int64" }, "lastModifiedBy": { "$ref": "#/definitions/AppUser" }, "lastModifiedDate": { - "type": "string", - "format": "date-time" + "type": "integer", + "format": "int64" }, "taxComponent": { "$ref": "#/definitions/TaxComponent" @@ -26140,35 +28206,82 @@ } } }, - "GetEntityDatatableChecksResponse": { + "PutReportResponse": { "type": "object", "properties": { - "id": { + "resourceId": { "type": "integer", - "format": "int64" + "format": "int64", + "example": 132 }, - "entity": { - "type": "string" + "changes": { + "$ref": "#/definitions/PutReportResponseChanges" + } + } + }, + "PutReportResponseChanges": { + "type": "object", + "properties": { + "reportName": { + "type": "string", + "example": "Changed New Report" }, - "status": { - "$ref": "#/definitions/EnumOptionData" + "reportParameters": { + "type": "array", + "items": { + "$ref": "#/definitions/ReportParameterData" + } + } + } + }, + "ReportParameterData": { + "type": "object" + }, + "PutReportRequest": { + "type": "object", + "properties": { + "reportName": { + "type": "string", + "example": "Completely New Report" }, - "datatableName": { - "type": "string" + "reportParameters": { + "type": "array", + "items": { + "$ref": "#/definitions/ReportParameterData" + } + } + } + }, + "GetReportsTemplateResponse": { + "type": "object", + "properties": { + "allowedReportTypes": { + "type": "array", + "items": { + "type": "string" + } }, - "systemDefined": { - "type": "boolean" + "allowedReportSubTypes": { + "type": "array", + "items": { + "type": "string" + } }, - "order": { + "allowedParameters": { + "type": "array", + "items": { + "$ref": "#/definitions/ReportParameterData" + } + } + } + }, + "DeleteReportsResponse": { + "type": "object", + "properties": { + "resourceId": { "type": "integer", - "format": "int64" - }, - "productId": { - "type": "integer", - "format": "int64" - }, - "productName": { - "type": "string" + "format": "int64", + "example": 132 } } }, @@ -26218,85 +28331,6 @@ } } }, - "ReportParameterData": { - "type": "object" - }, - "GetReportsTemplateResponse": { - "type": "object", - "properties": { - "allowedReportTypes": { - "type": "array", - "items": { - "type": "string" - } - }, - "allowedReportSubTypes": { - "type": "array", - "items": { - "type": "string" - } - }, - "allowedParameters": { - "type": "array", - "items": { - "$ref": "#/definitions/ReportParameterData" - } - } - } - }, - "PutReportResponse": { - "type": "object", - "properties": { - "resourceId": { - "type": "integer", - "format": "int64", - "example": 132 - }, - "changes": { - "$ref": "#/definitions/PutReportResponseChanges" - } - } - }, - "PutReportResponseChanges": { - "type": "object", - "properties": { - "reportName": { - "type": "string", - "example": "Changed New Report" - }, - "reportParameters": { - "type": "array", - "items": { - "$ref": "#/definitions/ReportParameterData" - } - } - } - }, - "PutReportRequest": { - "type": "object", - "properties": { - "reportName": { - "type": "string", - "example": "Completely New Report" - }, - "reportParameters": { - "type": "array", - "items": { - "$ref": "#/definitions/ReportParameterData" - } - } - } - }, - "DeleteReportsResponse": { - "type": "object", - "properties": { - "resourceId": { - "type": "integer", - "format": "int64", - "example": 132 - } - } - }, "PostReportsResponse": { "type": "object", "properties": { @@ -26450,16 +28484,6 @@ } } }, - "DeleteHookResponse": { - "type": "object", - "properties": { - "resourceId": { - "type": "integer", - "format": "int64", - "example": 4 - } - } - }, "Event": { "type": "object", "properties": { @@ -26485,103 +28509,6 @@ } } }, - "GetHookResponse": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "name": { - "type": "string", - "example": "Web" - }, - "displayName": { - "type": "string", - "example": "Kremlin" - }, - "isActive": { - "type": "boolean", - "example": true - }, - "createdAt": { - "type": "string", - "format": "date", - "example": "[2014, 9, 16]" - }, - "updatedAt": { - "type": "string", - "format": "date", - "example": "[2014, 9, 16]" - }, - "templateId": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "templateName": { - "type": "string", - "example": "My UGD" - }, - "events": { - "type": "array", - "items": { - "$ref": "#/definitions/Event" - } - }, - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/Field" - } - } - } - }, - "PostHookResponse": { - "type": "object", - "properties": { - "resourceId": { - "type": "integer", - "format": "int64", - "example": 4 - } - } - }, - "PostHookRequest": { - "type": "object", - "properties": { - "name": { - "type": "string", - "example": "Web" - }, - "isActive": { - "type": "boolean", - "example": true - }, - "displayName": { - "type": "string", - "example": "Kremlin" - }, - "templateId": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "events": { - "type": "array", - "items": { - "$ref": "#/definitions/Event" - } - }, - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/Field" - } - } - } - }, "PutHookResponse": { "type": "object", "properties": { @@ -26651,6 +28578,113 @@ } } }, + "DeleteHookResponse": { + "type": "object", + "properties": { + "resourceId": { + "type": "integer", + "format": "int64", + "example": 4 + } + } + }, + "PostHookResponse": { + "type": "object", + "properties": { + "resourceId": { + "type": "integer", + "format": "int64", + "example": 4 + } + } + }, + "PostHookRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Web" + }, + "isActive": { + "type": "boolean", + "example": true + }, + "displayName": { + "type": "string", + "example": "Kremlin" + }, + "templateId": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "events": { + "type": "array", + "items": { + "$ref": "#/definitions/Event" + } + }, + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/Field" + } + } + } + }, + "GetHookResponse": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "name": { + "type": "string", + "example": "Web" + }, + "displayName": { + "type": "string", + "example": "Kremlin" + }, + "isActive": { + "type": "boolean", + "example": true + }, + "createdAt": { + "type": "string", + "format": "date", + "example": "[2014, 9, 16]" + }, + "updatedAt": { + "type": "string", + "format": "date", + "example": "[2014, 9, 16]" + }, + "templateId": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "templateName": { + "type": "string", + "example": "My UGD" + }, + "events": { + "type": "array", + "items": { + "$ref": "#/definitions/Event" + } + }, + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/Field" + } + } + } + }, "GetHookTemplateResponse": { "type": "object", "properties": { @@ -26694,23 +28728,6 @@ } } }, - "PutJobsJobsIDRequest": { - "type": "object", - "properties": { - "displayName": { - "type": "string", - "example": "Update loan Summary" - }, - "cronExpression": { - "type": "string", - "example": "0 0 22 1/1 * ? *" - }, - "active": { - "type": "boolean", - "example": false - } - } - }, "GetJobsJobIDJobRunHistoryResponse": { "type": "object", "properties": { @@ -26755,6 +28772,23 @@ } } }, + "PutJobsJobsIDRequest": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "example": "Update loan Summary" + }, + "cronExpression": { + "type": "string", + "example": "0 0 22 1/1 * ? *" + }, + "active": { + "type": "boolean", + "example": false + } + } + }, "GetJobsResponse": { "type": "object", "properties": { @@ -26794,47 +28828,6 @@ "JobDetailHistoryData": { "type": "object" }, - "PutReportMailingJobsResponse": { - "type": "object", - "properties": { - "resourceId": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "changes": { - "$ref": "#/definitions/PutReportMailingJobsResponseChanges" - } - } - }, - "PutReportMailingJobsResponseChanges": { - "type": "object", - "properties": { - "startDateTime": { - "type": "string", - "format": "date-time", - "example": "10-08-2016 23:30:00" - } - } - }, - "PutReportMailingJobsRequest": { - "type": "object", - "properties": { - "locale": { - "type": "string", - "example": "en_GB" - }, - "dateFormat": { - "type": "string", - "example": "dd-MM-yyyy HH:mm:ss" - }, - "startDateTime": { - "type": "string", - "format": "date-time", - "example": "10-08-2016 23:30:00" - } - } - }, "PostReportMailingJobsResponse": { "type": "object", "properties": { @@ -26900,6 +28893,47 @@ } } }, + "PutReportMailingJobsResponse": { + "type": "object", + "properties": { + "resourceId": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "changes": { + "$ref": "#/definitions/PutReportMailingJobsResponseChanges" + } + } + }, + "PutReportMailingJobsResponseChanges": { + "type": "object", + "properties": { + "startDateTime": { + "type": "string", + "format": "date-time", + "example": "10-08-2016 23:30:00" + } + } + }, + "PutReportMailingJobsRequest": { + "type": "object", + "properties": { + "locale": { + "type": "string", + "example": "en_GB" + }, + "dateFormat": { + "type": "string", + "example": "dd-MM-yyyy HH:mm:ss" + }, + "startDateTime": { + "type": "string", + "format": "date-time", + "example": "10-08-2016 23:30:00" + } + } + }, "DeleteReportMailingJobsResponse": { "type": "object", "properties": { @@ -27164,37 +29198,6 @@ } } }, - "GetSurveyResponse": { - "type": "object", - "properties": { - "datatableData": { - "$ref": "#/definitions/GetSurveyResponseDatatableData" - }, - "enabled": { - "type": "boolean", - "example": false - } - } - }, - "GetSurveyResponseDatatableData": { - "type": "object", - "properties": { - "applicationTableName": { - "type": "string", - "example": "m_client" - }, - "registeredTableName": { - "type": "string", - "example": "ppi_kenya_2005" - }, - "columnHeaderData": { - "type": "array", - "items": { - "$ref": "#/definitions/ResultsetColumnHeaderData" - } - } - } - }, "PostSurveySurveyNameApptableIdResponse": { "type": "object", "properties": { @@ -27284,43 +29287,843 @@ } } }, - "GetHolidaysResponse": { + "GetSurveyResponse": { "type": "object", "properties": { - "id": { - "type": "integer", - "format": "int64", - "example": 1 + "datatableData": { + "$ref": "#/definitions/GetSurveyResponseDatatableData" }, - "name": { - "type": "string", - "example": "Good Friday" - }, - "fromDate": { - "type": "string", - "format": "date", - "example": "[2013, 10, 26]" - }, - "toDate": { - "type": "string", - "format": "date", - "example": "[2013, 10, 26]" - }, - "repaymentsRescheduledTo": { - "type": "string", - "format": "date", - "example": "[2013, 10, 27]" - }, - "officeId": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "status": { - "$ref": "#/definitions/EnumOptionData" + "enabled": { + "type": "boolean", + "example": false } } }, + "GetSurveyResponseDatatableData": { + "type": "object", + "properties": { + "applicationTableName": { + "type": "string", + "example": "m_client" + }, + "registeredTableName": { + "type": "string", + "example": "ppi_kenya_2005" + }, + "columnHeaderData": { + "type": "array", + "items": { + "$ref": "#/definitions/ResultsetColumnHeaderData" + } + } + } + }, + "InteropAccountData": { + "type": "object", + "properties": { + "officeId": { + "type": "integer", + "format": "int64" + }, + "groupId": { + "type": "integer", + "format": "int64" + }, + "clientId": { + "type": "integer", + "format": "int64" + }, + "loanId": { + "type": "integer", + "format": "int64" + }, + "savingsId": { + "type": "integer", + "format": "int64" + }, + "subResourceId": { + "type": "integer", + "format": "int64" + }, + "transactionId": { + "type": "string" + }, + "changes": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "productId": { + "type": "integer", + "format": "int64" + }, + "rollbackTransaction": { + "type": "boolean" + } + } + }, + "InteropTransactionsData": { + "type": "object", + "properties": { + "officeId": { + "type": "integer", + "format": "int64" + }, + "groupId": { + "type": "integer", + "format": "int64" + }, + "clientId": { + "type": "integer", + "format": "int64" + }, + "loanId": { + "type": "integer", + "format": "int64" + }, + "savingsId": { + "type": "integer", + "format": "int64" + }, + "subResourceId": { + "type": "integer", + "format": "int64" + }, + "transactionId": { + "type": "string" + }, + "changes": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "productId": { + "type": "integer", + "format": "int64" + }, + "rollbackTransaction": { + "type": "boolean" + } + } + }, + "InteropIdentifiersResponseData": { + "type": "object", + "properties": { + "officeId": { + "type": "integer", + "format": "int64" + }, + "groupId": { + "type": "integer", + "format": "int64" + }, + "clientId": { + "type": "integer", + "format": "int64" + }, + "loanId": { + "type": "integer", + "format": "int64" + }, + "savingsId": { + "type": "integer", + "format": "int64" + }, + "subResourceId": { + "type": "integer", + "format": "int64" + }, + "transactionId": { + "type": "string" + }, + "changes": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "productId": { + "type": "integer", + "format": "int64" + }, + "rollbackTransaction": { + "type": "boolean" + } + } + }, + "InteropIdentifierAccountResponseData": { + "type": "object", + "required": [ + "accountId" + ], + "properties": { + "officeId": { + "type": "integer", + "format": "int64" + }, + "groupId": { + "type": "integer", + "format": "int64" + }, + "clientId": { + "type": "integer", + "format": "int64" + }, + "loanId": { + "type": "integer", + "format": "int64" + }, + "savingsId": { + "type": "integer", + "format": "int64" + }, + "subResourceId": { + "type": "integer", + "format": "int64" + }, + "transactionId": { + "type": "string" + }, + "changes": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "productId": { + "type": "integer", + "format": "int64" + }, + "rollbackTransaction": { + "type": "boolean" + }, + "accountId": { + "type": "string" + } + } + }, + "InteropIdentifierRequestData": { + "type": "object", + "properties": { + "idType": { + "type": "string", + "enum": [ + "MSISDN", + "EMAIL", + "PERSONAL_ID", + "BUSINESS", + "DEVICE", + "ACCOUNT_ID", + "IBAN", + "ALIAS" + ] + }, + "idValue": { + "type": "string" + }, + "subIdOrType": { + "type": "string" + }, + "accountId": { + "type": "string" + } + } + }, + "ExtensionData": { + "type": "object", + "required": [ + "key" + ], + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, + "InteropTransactionRequestResponseData": { + "type": "object", + "required": [ + "requestCode", + "state", + "transactionCode" + ], + "properties": { + "officeId": { + "type": "integer", + "format": "int64" + }, + "groupId": { + "type": "integer", + "format": "int64" + }, + "clientId": { + "type": "integer", + "format": "int64" + }, + "loanId": { + "type": "integer", + "format": "int64" + }, + "savingsId": { + "type": "integer", + "format": "int64" + }, + "subResourceId": { + "type": "integer", + "format": "int64" + }, + "transactionId": { + "type": "string" + }, + "changes": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "productId": { + "type": "integer", + "format": "int64" + }, + "rollbackTransaction": { + "type": "boolean" + }, + "transactionCode": { + "type": "string" + }, + "state": { + "type": "string", + "enum": [ + "ACCEPTED", + "REJECTED" + ] + }, + "expiration": { + "type": "string" + }, + "extensionList": { + "type": "array", + "items": { + "$ref": "#/definitions/ExtensionData" + } + }, + "requestCode": { + "type": "string" + } + } + }, + "GeoCodeData": { + "type": "object", + "required": [ + "latitude", + "longitude" + ], + "properties": { + "latitude": { + "type": "string" + }, + "longitude": { + "type": "string" + } + } + }, + "InteropTransactionRequestData": { + "type": "object", + "required": [ + "accountId", + "amount", + "transactionCode", + "transactionRole" + ], + "properties": { + "transactionCode": { + "type": "string" + }, + "requestCode": { + "type": "string" + }, + "accountId": { + "type": "string" + }, + "amount": { + "$ref": "#/definitions/MoneyData" + }, + "transactionRole": { + "type": "string", + "enum": [ + "PAYER", + "PAYEE" + ] + }, + "transactionType": { + "$ref": "#/definitions/InteropTransactionTypeData" + }, + "note": { + "type": "string" + }, + "geoCode": { + "$ref": "#/definitions/GeoCodeData" + }, + "expiration": { + "$ref": "#/definitions/LocalDateTime" + }, + "extensionList": { + "type": "array", + "items": { + "$ref": "#/definitions/ExtensionData" + } + }, + "expirationLocalDate": { + "type": "string", + "format": "date" + } + } + }, + "InteropTransactionTypeData": { + "type": "object", + "required": [ + "initiator", + "initiatorType", + "scenario" + ], + "properties": { + "scenario": { + "type": "string", + "enum": [ + "DEPOSIT", + "WITHDRAWAL", + "TRANSFER", + "PAYMENT", + "REFUND" + ] + }, + "subScenario": { + "type": "string" + }, + "initiator": { + "type": "string", + "enum": [ + "PAYER", + "PAYEE" + ] + }, + "initiatorType": { + "type": "string", + "enum": [ + "CONSUMER", + "AGENT", + "BUSINESS", + "DEVICE" + ] + } + } + }, + "LocalDateTime": { + "type": "object", + "properties": { + "monthOfYear": { + "type": "integer", + "format": "int32" + }, + "centuryOfEra": { + "type": "integer", + "format": "int32" + }, + "yearOfCentury": { + "type": "integer", + "format": "int32" + }, + "weekyear": { + "type": "integer", + "format": "int32" + }, + "weekOfWeekyear": { + "type": "integer", + "format": "int32" + }, + "minuteOfHour": { + "type": "integer", + "format": "int32" + }, + "hourOfDay": { + "type": "integer", + "format": "int32" + }, + "millisOfDay": { + "type": "integer", + "format": "int32" + }, + "secondOfMinute": { + "type": "integer", + "format": "int32" + }, + "millisOfSecond": { + "type": "integer", + "format": "int32" + }, + "yearOfEra": { + "type": "integer", + "format": "int32" + }, + "year": { + "type": "integer", + "format": "int32" + }, + "dayOfMonth": { + "type": "integer", + "format": "int32" + }, + "era": { + "type": "integer", + "format": "int32" + }, + "dayOfYear": { + "type": "integer", + "format": "int32" + }, + "dayOfWeek": { + "type": "integer", + "format": "int32" + }, + "chronology": { + "$ref": "#/definitions/Chronology" + }, + "fieldTypes": { + "type": "array", + "items": { + "$ref": "#/definitions/DateTimeFieldType" + } + }, + "values": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "fields": { + "type": "array", + "items": { + "$ref": "#/definitions/DateTimeField" + } + } + } + }, + "MoneyData": { + "type": "object", + "required": [ + "amount", + "currency" + ], + "properties": { + "amount": { + "type": "number" + }, + "currency": { + "type": "string" + } + } + }, + "InteropQuoteResponseData": { + "type": "object", + "required": [ + "quoteCode", + "state", + "transactionCode" + ], + "properties": { + "officeId": { + "type": "integer", + "format": "int64" + }, + "groupId": { + "type": "integer", + "format": "int64" + }, + "clientId": { + "type": "integer", + "format": "int64" + }, + "loanId": { + "type": "integer", + "format": "int64" + }, + "savingsId": { + "type": "integer", + "format": "int64" + }, + "subResourceId": { + "type": "integer", + "format": "int64" + }, + "transactionId": { + "type": "string" + }, + "changes": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "productId": { + "type": "integer", + "format": "int64" + }, + "rollbackTransaction": { + "type": "boolean" + }, + "transactionCode": { + "type": "string" + }, + "state": { + "type": "string", + "enum": [ + "ACCEPTED", + "REJECTED" + ] + }, + "expiration": { + "type": "string" + }, + "extensionList": { + "type": "array", + "items": { + "$ref": "#/definitions/ExtensionData" + } + }, + "quoteCode": { + "type": "string" + }, + "fspFee": { + "$ref": "#/definitions/MoneyData" + }, + "fspCommission": { + "$ref": "#/definitions/MoneyData" + } + } + }, + "InteropQuoteRequestData": { + "type": "object", + "required": [ + "accountId", + "amount", + "amountType", + "quoteCode", + "transactionCode", + "transactionRole" + ], + "properties": { + "transactionCode": { + "type": "string" + }, + "requestCode": { + "type": "string" + }, + "accountId": { + "type": "string" + }, + "amount": { + "$ref": "#/definitions/MoneyData" + }, + "transactionRole": { + "type": "string", + "enum": [ + "PAYER", + "PAYEE" + ] + }, + "transactionType": { + "$ref": "#/definitions/InteropTransactionTypeData" + }, + "note": { + "type": "string" + }, + "geoCode": { + "$ref": "#/definitions/GeoCodeData" + }, + "expiration": { + "$ref": "#/definitions/LocalDateTime" + }, + "extensionList": { + "type": "array", + "items": { + "$ref": "#/definitions/ExtensionData" + } + }, + "quoteCode": { + "type": "string" + }, + "amountType": { + "type": "string", + "enum": [ + "SEND", + "RECEIVE" + ] + }, + "fees": { + "$ref": "#/definitions/MoneyData" + }, + "expirationLocalDate": { + "type": "string", + "format": "date" + } + } + }, + "InteropTransferResponseData": { + "type": "object", + "required": [ + "state", + "transactionCode", + "transferCode" + ], + "properties": { + "officeId": { + "type": "integer", + "format": "int64" + }, + "groupId": { + "type": "integer", + "format": "int64" + }, + "clientId": { + "type": "integer", + "format": "int64" + }, + "loanId": { + "type": "integer", + "format": "int64" + }, + "savingsId": { + "type": "integer", + "format": "int64" + }, + "subResourceId": { + "type": "integer", + "format": "int64" + }, + "transactionId": { + "type": "string" + }, + "changes": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "productId": { + "type": "integer", + "format": "int64" + }, + "rollbackTransaction": { + "type": "boolean" + }, + "transactionCode": { + "type": "string" + }, + "state": { + "type": "string", + "enum": [ + "ACCEPTED", + "REJECTED" + ] + }, + "expiration": { + "type": "string" + }, + "extensionList": { + "type": "array", + "items": { + "$ref": "#/definitions/ExtensionData" + } + }, + "transferCode": { + "type": "string" + }, + "completedTimestamp": { + "type": "string" + } + } + }, + "InteropTransferRequestData": { + "type": "object", + "required": [ + "accountId", + "amount", + "transactionCode", + "transactionRole", + "transferCode" + ], + "properties": { + "transactionCode": { + "type": "string" + }, + "requestCode": { + "type": "string" + }, + "accountId": { + "type": "string" + }, + "amount": { + "$ref": "#/definitions/MoneyData" + }, + "transactionRole": { + "type": "string", + "enum": [ + "PAYER", + "PAYEE" + ] + }, + "transactionType": { + "$ref": "#/definitions/InteropTransactionTypeData" + }, + "note": { + "type": "string" + }, + "geoCode": { + "$ref": "#/definitions/GeoCodeData" + }, + "expiration": { + "$ref": "#/definitions/LocalDateTime" + }, + "extensionList": { + "type": "array", + "items": { + "$ref": "#/definitions/ExtensionData" + } + }, + "transferCode": { + "type": "string" + }, + "fspFee": { + "$ref": "#/definitions/MoneyData" + }, + "fspCommission": { + "$ref": "#/definitions/MoneyData" + }, + "expirationLocalDate": { + "type": "string", + "format": "date" + } + } + }, + "PostHolidaysHolidayIdResponse": { + "type": "object", + "properties": { + "resourceId": { + "type": "integer", + "format": "int64", + "example": 1 + } + } + }, + "PostHolidaysHolidayIdRequest": { + "type": "object" + }, "PostHolidaysResponse": { "type": "object", "properties": { @@ -27383,19 +30186,43 @@ } } }, - "PostHolidaysHolidayIdResponse": { + "GetHolidaysResponse": { "type": "object", "properties": { - "resourceId": { + "id": { "type": "integer", "format": "int64", "example": 1 + }, + "name": { + "type": "string", + "example": "Good Friday" + }, + "fromDate": { + "type": "string", + "format": "date", + "example": "[2013, 10, 26]" + }, + "toDate": { + "type": "string", + "format": "date", + "example": "[2013, 10, 26]" + }, + "repaymentsRescheduledTo": { + "type": "string", + "format": "date", + "example": "[2013, 10, 27]" + }, + "officeId": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "status": { + "$ref": "#/definitions/EnumOptionData" } } }, - "PostHolidaysHolidayIdRequest": { - "type": "object" - }, "PutHolidaysHolidayIdResponse": { "type": "object", "properties": { @@ -27445,24 +30272,6 @@ } } }, - "PutCurrenciesResponse": { - "type": "object", - "properties": { - "currencies": { - "type": "string", - "example": "[\"KES\",\n \"BND\",\n \"LBP\",\n \"GHC\",\n \"USD\",\n \"XOF\",\n \"AED\",\n \"AMD\"]" - } - } - }, - "PutCurrenciesRequest": { - "type": "object", - "properties": { - "currencies": { - "type": "string", - "example": "[\"KES\",\n \"BND\",\n \"LBP\",\n \"GHC\",\n \"USD\",\n \"XOF\",\n \"AED\",\n \"AMD\"]" - } - } - }, "GetCurrenciesResponse": { "type": "object", "properties": { @@ -27480,49 +30289,21 @@ } } }, - "PostOfficesResponse": { + "PutCurrenciesResponse": { "type": "object", "properties": { - "officeId": { - "type": "integer", - "format": "int64", - "example": 3 - }, - "resourceId": { - "type": "integer", - "format": "int64", - "example": 3 + "currencies": { + "type": "string", + "example": "[\"KES\",\n \"BND\",\n \"LBP\",\n \"GHC\",\n \"USD\",\n \"XOF\",\n \"AED\",\n \"AMD\"]" } } }, - "PostOfficesRequest": { + "PutCurrenciesRequest": { "type": "object", "properties": { - "name": { + "currencies": { "type": "string", - "example": "Good Friday" - }, - "dateFormat": { - "type": "string", - "example": "dd MMMM yyyy" - }, - "locale": { - "type": "string", - "example": "en" - }, - "openingDate": { - "type": "string", - "format": "date", - "example": "01 July 2007" - }, - "parentId": { - "type": "integer", - "format": "int64", - "example": 2 - }, - "externalId": { - "type": "string", - "example": "SYS54-88" + "example": "[\"KES\",\n \"BND\",\n \"LBP\",\n \"GHC\",\n \"USD\",\n \"XOF\",\n \"AED\",\n \"AMD\"]" } } }, @@ -27573,6 +30354,52 @@ } } }, + "PostOfficesResponse": { + "type": "object", + "properties": { + "officeId": { + "type": "integer", + "format": "int64", + "example": 3 + }, + "resourceId": { + "type": "integer", + "format": "int64", + "example": 3 + } + } + }, + "PostOfficesRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Good Friday" + }, + "dateFormat": { + "type": "string", + "example": "dd MMMM yyyy" + }, + "locale": { + "type": "string", + "example": "en" + }, + "openingDate": { + "type": "string", + "format": "date", + "example": "01 July 2007" + }, + "parentId": { + "type": "integer", + "format": "int64", + "example": 2 + }, + "externalId": { + "type": "string", + "example": "SYS54-88" + } + } + }, "PutOfficesOfficeIdResponse": { "type": "object", "properties": { @@ -27920,191 +30747,6 @@ } } }, - "PostTellersResponse": { - "type": "object", - "properties": { - "officeId": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "resourceId": { - "type": "integer", - "format": "int64", - "example": 5 - } - } - }, - "PostTellersRequest": { - "type": "object", - "properties": { - "officeId": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "name": { - "type": "string", - "example": "Teller3" - }, - "description": { - "type": "string", - "example": "cash handling" - }, - "status": { - "type": "string", - "example": "ACTIVE", - "enum": [ - "INVALID", - "PENDING", - "ACTIVE", - "INACTIVE", - "CLOSED" - ] - }, - "locale": { - "type": "string", - "example": "en" - }, - "dateFormat": { - "type": "string", - "example": "dd-MM-yyyy" - }, - "startDate": { - "type": "string", - "format": "date", - "example": "01 February 2015" - } - } - }, - "CashierData": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "tellerId": { - "type": "integer", - "format": "int64" - }, - "officeId": { - "type": "integer", - "format": "int64" - }, - "staffId": { - "type": "integer", - "format": "int64" - }, - "description": { - "type": "string" - }, - "startDate": { - "type": "string", - "format": "date-time" - }, - "endDate": { - "type": "string", - "format": "date-time" - }, - "startTime": { - "type": "string" - }, - "endTime": { - "type": "string" - }, - "officeName": { - "type": "string" - }, - "tellerName": { - "type": "string" - }, - "staffName": { - "type": "string" - }, - "fullDay": { - "type": "boolean" - } - } - }, - "GetTellersTellerIdCashiersResponse": { - "type": "object", - "properties": { - "tellerId": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "tellerName": { - "type": "string", - "example": "Teller1" - }, - "officeId": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "officeName": { - "type": "string", - "example": "Head Office" - }, - "cashiers": { - "type": "array", - "items": { - "$ref": "#/definitions/CashierData" - } - } - } - }, - "GetTellersResponse": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64", - "example": 3 - }, - "officeId": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "debitAccountId": { - "type": "integer", - "format": "int64", - "example": 0 - }, - "creditAccountId": { - "type": "integer", - "format": "int64", - "example": 0 - }, - "name": { - "type": "string", - "example": "Teller3" - }, - "startDate": { - "type": "string", - "format": "date", - "example": "[2015,2,1]" - }, - "status": { - "type": "string", - "example": "ACTIVE", - "enum": [ - "INVALID", - "PENDING", - "ACTIVE", - "INACTIVE", - "CLOSED" - ] - }, - "officeName": { - "type": "string", - "example": "Head Office" - } - } - }, "PutTellersResponse": { "type": "object", "properties": { @@ -28437,6 +31079,191 @@ } } }, + "GetTellersResponse": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "example": 3 + }, + "officeId": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "debitAccountId": { + "type": "integer", + "format": "int64", + "example": 0 + }, + "creditAccountId": { + "type": "integer", + "format": "int64", + "example": 0 + }, + "name": { + "type": "string", + "example": "Teller3" + }, + "startDate": { + "type": "string", + "format": "date", + "example": "[2015,2,1]" + }, + "status": { + "type": "string", + "example": "ACTIVE", + "enum": [ + "INVALID", + "PENDING", + "ACTIVE", + "INACTIVE", + "CLOSED" + ] + }, + "officeName": { + "type": "string", + "example": "Head Office" + } + } + }, + "PostTellersResponse": { + "type": "object", + "properties": { + "officeId": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "resourceId": { + "type": "integer", + "format": "int64", + "example": 5 + } + } + }, + "PostTellersRequest": { + "type": "object", + "properties": { + "officeId": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "name": { + "type": "string", + "example": "Teller3" + }, + "description": { + "type": "string", + "example": "cash handling" + }, + "status": { + "type": "string", + "example": "ACTIVE", + "enum": [ + "INVALID", + "PENDING", + "ACTIVE", + "INACTIVE", + "CLOSED" + ] + }, + "locale": { + "type": "string", + "example": "en" + }, + "dateFormat": { + "type": "string", + "example": "dd-MM-yyyy" + }, + "startDate": { + "type": "string", + "format": "date", + "example": "01 February 2015" + } + } + }, + "CashierData": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "tellerId": { + "type": "integer", + "format": "int64" + }, + "officeId": { + "type": "integer", + "format": "int64" + }, + "staffId": { + "type": "integer", + "format": "int64" + }, + "description": { + "type": "string" + }, + "startDate": { + "type": "string", + "format": "date-time" + }, + "endDate": { + "type": "string", + "format": "date-time" + }, + "startTime": { + "type": "string" + }, + "endTime": { + "type": "string" + }, + "officeName": { + "type": "string" + }, + "tellerName": { + "type": "string" + }, + "staffName": { + "type": "string" + }, + "fullDay": { + "type": "boolean" + } + } + }, + "GetTellersTellerIdCashiersResponse": { + "type": "object", + "properties": { + "tellerId": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "tellerName": { + "type": "string", + "example": "Teller1" + }, + "officeId": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "officeName": { + "type": "string", + "example": "Head Office" + }, + "cashiers": { + "type": "array", + "items": { + "$ref": "#/definitions/CashierData" + } + } + } + }, "DeleteTellersTellerIdCashiersCashierIdResponse": { "type": "object", "properties": { @@ -28803,17 +31630,6 @@ } } }, - "GetWorkingDaysTemplateResponse": { - "type": "object", - "properties": { - "repaymentRescheduleOptions": { - "type": "array", - "items": { - "$ref": "#/definitions/EnumOptionData" - } - } - } - }, "GetWorkingDaysResponse": { "type": "object", "properties": { @@ -28835,6 +31651,17 @@ } } }, + "GetWorkingDaysTemplateResponse": { + "type": "object", + "properties": { + "repaymentRescheduleOptions": { + "type": "array", + "items": { + "$ref": "#/definitions/EnumOptionData" + } + } + } + }, "PutWorkingDaysResponse": { "type": "object", "properties": { @@ -29472,24 +32299,6 @@ } } }, - "GetAccountTransfersFromAccountTypeOptions": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 2 - }, - "code": { - "type": "string", - "example": "accountType.savings" - }, - "value": { - "type": "string", - "example": "Savings Account" - } - } - }, "GetAccountTransfersFromClientOptions": { "type": "object", "properties": { @@ -29513,6 +32322,155 @@ } } }, + "GetAccountTransfersPageItems": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "reversed": { + "type": "boolean", + "example": false + }, + "currency": { + "$ref": "#/definitions/GetAccountTransfersPageItemsCurrency" + }, + "transferAmount": { + "type": "number", + "format": "float", + "example": 200 + }, + "transferDate": { + "type": "string", + "format": "date", + "example": "[2013, 4, 1]" + }, + "transferDescription": { + "type": "string", + "example": "pay off loan from savings." + }, + "fromOffice": { + "$ref": "#/definitions/GetAccountTransfersPageItemsFromOffice" + }, + "fromClient": { + "$ref": "#/definitions/GetAccountTransfersFromClientOptions" + }, + "fromAccountType": { + "$ref": "#/definitions/GetAccountTransfersFromAccountType" + }, + "fromAccount": { + "$ref": "#/definitions/GetAccountTransfersPageItemsFromAccount" + }, + "toOffice": { + "$ref": "#/definitions/GetAccountTransfersPageItemsFromOffice" + }, + "toClient": { + "$ref": "#/definitions/GetAccountTransfersFromClientOptions" + }, + "toAccountType": { + "$ref": "#/definitions/GetAccountTransfersPageItemsToAccountType" + }, + "toAccount": { + "$ref": "#/definitions/GetAccountTransfersPageItemsFromAccount" + } + } + }, + "GetAccountTransfersPageItemsCurrency": { + "type": "object", + "properties": { + "code": { + "type": "string", + "example": "USD" + }, + "name": { + "type": "string", + "example": "US Dollar" + }, + "decimalPlaces": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "displaySymbol": { + "type": "string", + "example": "$" + }, + "nameCode": { + "type": "string", + "example": "currency.USD" + }, + "displayLabel": { + "type": "string", + "example": "US Dollar ($)" + } + } + }, + "GetAccountTransfersPageItemsFromAccount": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "accountNo": { + "type": "integer", + "format": "int64", + "example": 1 + } + } + }, + "GetAccountTransfersPageItemsFromOffice": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "name": { + "type": "string", + "example": "HO" + } + } + }, + "GetAccountTransfersResponse": { + "type": "object", + "properties": { + "totalFilteredRecords": { + "type": "integer", + "format": "int32", + "example": 4 + }, + "pageItems": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetAccountTransfersPageItems" + } + } + } + }, + "GetAccountTransfersFromAccountTypeOptions": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "code": { + "type": "string", + "example": "accountType.savings" + }, + "value": { + "type": "string", + "example": "Savings Account" + } + } + }, "GetAccountTransfersFromOffice": { "type": "object", "properties": { @@ -29655,137 +32613,6 @@ } } }, - "GetAccountTransfersPageItems": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "reversed": { - "type": "boolean", - "example": false - }, - "currency": { - "$ref": "#/definitions/GetAccountTransfersPageItemsCurrency" - }, - "transferAmount": { - "type": "number", - "format": "float", - "example": 200 - }, - "transferDate": { - "type": "string", - "format": "date", - "example": "[2013, 4, 1]" - }, - "transferDescription": { - "type": "string", - "example": "pay off loan from savings." - }, - "fromOffice": { - "$ref": "#/definitions/GetAccountTransfersPageItemsFromOffice" - }, - "fromClient": { - "$ref": "#/definitions/GetAccountTransfersFromClientOptions" - }, - "fromAccountType": { - "$ref": "#/definitions/GetAccountTransfersFromAccountType" - }, - "fromAccount": { - "$ref": "#/definitions/GetAccountTransfersPageItemsFromAccount" - }, - "toOffice": { - "$ref": "#/definitions/GetAccountTransfersPageItemsFromOffice" - }, - "toClient": { - "$ref": "#/definitions/GetAccountTransfersFromClientOptions" - }, - "toAccountType": { - "$ref": "#/definitions/GetAccountTransfersPageItemsToAccountType" - }, - "toAccount": { - "$ref": "#/definitions/GetAccountTransfersPageItemsFromAccount" - } - } - }, - "GetAccountTransfersPageItemsCurrency": { - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "USD" - }, - "name": { - "type": "string", - "example": "US Dollar" - }, - "decimalPlaces": { - "type": "integer", - "format": "int32", - "example": 2 - }, - "displaySymbol": { - "type": "string", - "example": "$" - }, - "nameCode": { - "type": "string", - "example": "currency.USD" - }, - "displayLabel": { - "type": "string", - "example": "US Dollar ($)" - } - } - }, - "GetAccountTransfersPageItemsFromAccount": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "accountNo": { - "type": "integer", - "format": "int64", - "example": 1 - } - } - }, - "GetAccountTransfersPageItemsFromOffice": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "name": { - "type": "string", - "example": "HO" - } - } - }, - "GetAccountTransfersResponse": { - "type": "object", - "properties": { - "totalFilteredRecords": { - "type": "integer", - "format": "int32", - "example": 4 - }, - "pageItems": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetAccountTransfersPageItems" - } - } - } - }, "PostAccountTransfersResponse": { "type": "object", "properties": { @@ -29867,347 +32694,6 @@ } } }, - "GetFromAccountTypeOptionsResponseStandingInstructionSwagger": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64", - "example": 2 - }, - "code": { - "type": "string", - "example": "accountType.savings" - }, - "value": { - "type": "string", - "example": "Savings Account" - } - } - }, - "GetFromAccountTypeResponseStandingInstructionSwagger": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64", - "example": 2 - }, - "code": { - "type": "string", - "example": "accountType.savings" - }, - "value": { - "type": "string", - "example": "Savings Account" - } - } - }, - "GetFromClientOptionsResponseStandingInstructionSwagger": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "displayName": { - "type": "string", - "example": "Client_FirstName_2VRAG Client_LastName_9QCY" - }, - "officeId": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "officeName": { - "type": "string", - "example": "Head Office" - } - } - }, - "GetFromOfficeOptionsResponseStandingInstructionSwagger": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "name": { - "type": "string", - "example": "Head Office" - }, - "nameDecorated": { - "type": "string", - "example": "Head Office" - } - } - }, - "GetFromOfficeResponseStandingInstructionSwagger": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "name": { - "type": "string", - "example": "Head Office" - }, - "decoratedName": { - "type": "string", - "example": "Head Office" - }, - "externalId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "openingDate": { - "type": "string", - "format": "date", - "example": "[2009, 1, 1]" - }, - "hierarchy": { - "type": "string", - "example": "." - } - } - }, - "GetInstructionTypeOptionsResponseStandingInstructionSwagger": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "code": { - "type": "string", - "example": "standingInstructionType.fixed" - }, - "value": { - "type": "string", - "example": "Fixed" - } - } - }, - "GetPriorityOptionsResponseStandingInstructionSwagger": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "code": { - "type": "string", - "example": "standingInstructionPriority.urgent" - }, - "value": { - "type": "string", - "example": "Urgent Priority" - } - } - }, - "GetRecurrenceFrequencyOptionsResponseStandingInstructionSwagger": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 0 - }, - "code": { - "type": "string", - "example": "frequencyperiodFrequencyType.days" - }, - "value": { - "type": "string", - "example": "Days" - } - } - }, - "GetRecurrenceTypeOptionsResponseStandingInstructionSwagger": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "code": { - "type": "string", - "example": "accountTransferRecurrenceType.periodic" - }, - "value": { - "type": "string", - "example": "Periodic Recurrence" - } - } - }, - "GetStandingInstructionsTemplateResponse": { - "type": "object", - "properties": { - "fromOffice": { - "$ref": "#/definitions/GetFromOfficeResponseStandingInstructionSwagger" - }, - "fromAccountType": { - "$ref": "#/definitions/GetFromAccountTypeResponseStandingInstructionSwagger" - }, - "fromOfficeOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetFromOfficeOptionsResponseStandingInstructionSwagger" - } - }, - "fromClientOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetFromClientOptionsResponseStandingInstructionSwagger" - } - }, - "fromAccountTypeOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetFromAccountTypeOptionsResponseStandingInstructionSwagger" - } - }, - "toOfficeOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetToOfficeOptionsResponseStandingInstructionSwagger" - } - }, - "toAccountTypeOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetToAccountTypeOptionsResponseStandingInstructionSwagger" - } - }, - "transferTypeOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetTransferTypeOptionsResponseStandingInstructionSwagger" - } - }, - "statusOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetStatusOptionsResponseStandingInstructionSwagger" - } - }, - "instructionTypeOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetInstructionTypeOptionsResponseStandingInstructionSwagger" - } - }, - "priorityOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetPriorityOptionsResponseStandingInstructionSwagger" - } - }, - "recurrenceTypeOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetRecurrenceTypeOptionsResponseStandingInstructionSwagger" - } - }, - "recurrenceFrequencyOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetRecurrenceFrequencyOptionsResponseStandingInstructionSwagger" - } - } - } - }, - "GetStatusOptionsResponseStandingInstructionSwagger": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "code": { - "type": "string", - "example": "standingInstructionStatus.active" - }, - "value": { - "type": "string", - "example": "Active" - } - } - }, - "GetToAccountTypeOptionsResponseStandingInstructionSwagger": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "code": { - "type": "string", - "example": "accountType.loan" - }, - "value": { - "type": "string", - "example": "Loan Account" - } - } - }, - "GetToOfficeOptionsResponseStandingInstructionSwagger": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "name": { - "type": "string", - "example": "Head Office" - }, - "nameDecorated": { - "type": "string", - "example": "Head Office" - } - } - }, - "GetTransferTypeOptionsResponseStandingInstructionSwagger": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "code": { - "type": "string", - "example": "accountTransferType.account.transfer" - }, - "value": { - "type": "string", - "example": "Account Transfer" - } - } - }, "GetFromAccountStandingInstructionSwagger": { "type": "object", "properties": { @@ -30653,6 +33139,347 @@ } } }, + "GetFromAccountTypeOptionsResponseStandingInstructionSwagger": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "example": 2 + }, + "code": { + "type": "string", + "example": "accountType.savings" + }, + "value": { + "type": "string", + "example": "Savings Account" + } + } + }, + "GetFromAccountTypeResponseStandingInstructionSwagger": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "example": 2 + }, + "code": { + "type": "string", + "example": "accountType.savings" + }, + "value": { + "type": "string", + "example": "Savings Account" + } + } + }, + "GetFromClientOptionsResponseStandingInstructionSwagger": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "displayName": { + "type": "string", + "example": "Client_FirstName_2VRAG Client_LastName_9QCY" + }, + "officeId": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "officeName": { + "type": "string", + "example": "Head Office" + } + } + }, + "GetFromOfficeOptionsResponseStandingInstructionSwagger": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "name": { + "type": "string", + "example": "Head Office" + }, + "nameDecorated": { + "type": "string", + "example": "Head Office" + } + } + }, + "GetFromOfficeResponseStandingInstructionSwagger": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "name": { + "type": "string", + "example": "Head Office" + }, + "decoratedName": { + "type": "string", + "example": "Head Office" + }, + "externalId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "openingDate": { + "type": "string", + "format": "date", + "example": "[2009, 1, 1]" + }, + "hierarchy": { + "type": "string", + "example": "." + } + } + }, + "GetInstructionTypeOptionsResponseStandingInstructionSwagger": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "code": { + "type": "string", + "example": "standingInstructionType.fixed" + }, + "value": { + "type": "string", + "example": "Fixed" + } + } + }, + "GetPriorityOptionsResponseStandingInstructionSwagger": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "code": { + "type": "string", + "example": "standingInstructionPriority.urgent" + }, + "value": { + "type": "string", + "example": "Urgent Priority" + } + } + }, + "GetRecurrenceFrequencyOptionsResponseStandingInstructionSwagger": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 0 + }, + "code": { + "type": "string", + "example": "frequencyperiodFrequencyType.days" + }, + "value": { + "type": "string", + "example": "Days" + } + } + }, + "GetRecurrenceTypeOptionsResponseStandingInstructionSwagger": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "code": { + "type": "string", + "example": "accountTransferRecurrenceType.periodic" + }, + "value": { + "type": "string", + "example": "Periodic Recurrence" + } + } + }, + "GetStandingInstructionsTemplateResponse": { + "type": "object", + "properties": { + "fromOffice": { + "$ref": "#/definitions/GetFromOfficeResponseStandingInstructionSwagger" + }, + "fromAccountType": { + "$ref": "#/definitions/GetFromAccountTypeResponseStandingInstructionSwagger" + }, + "fromOfficeOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetFromOfficeOptionsResponseStandingInstructionSwagger" + } + }, + "fromClientOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetFromClientOptionsResponseStandingInstructionSwagger" + } + }, + "fromAccountTypeOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetFromAccountTypeOptionsResponseStandingInstructionSwagger" + } + }, + "toOfficeOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetToOfficeOptionsResponseStandingInstructionSwagger" + } + }, + "toAccountTypeOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetToAccountTypeOptionsResponseStandingInstructionSwagger" + } + }, + "transferTypeOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetTransferTypeOptionsResponseStandingInstructionSwagger" + } + }, + "statusOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetStatusOptionsResponseStandingInstructionSwagger" + } + }, + "instructionTypeOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetInstructionTypeOptionsResponseStandingInstructionSwagger" + } + }, + "priorityOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetPriorityOptionsResponseStandingInstructionSwagger" + } + }, + "recurrenceTypeOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetRecurrenceTypeOptionsResponseStandingInstructionSwagger" + } + }, + "recurrenceFrequencyOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetRecurrenceFrequencyOptionsResponseStandingInstructionSwagger" + } + } + } + }, + "GetStatusOptionsResponseStandingInstructionSwagger": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "code": { + "type": "string", + "example": "standingInstructionStatus.active" + }, + "value": { + "type": "string", + "example": "Active" + } + } + }, + "GetToAccountTypeOptionsResponseStandingInstructionSwagger": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "code": { + "type": "string", + "example": "accountType.loan" + }, + "value": { + "type": "string", + "example": "Loan Account" + } + } + }, + "GetToOfficeOptionsResponseStandingInstructionSwagger": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "name": { + "type": "string", + "example": "Head Office" + }, + "nameDecorated": { + "type": "string", + "example": "Head Office" + } + } + }, + "GetTransferTypeOptionsResponseStandingInstructionSwagger": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "code": { + "type": "string", + "example": "accountTransferType.account.transfer" + }, + "value": { + "type": "string", + "example": "Account Transfer" + } + } + }, "PutStandingInstructionsStandingInstructionIdResponse": { "type": "object", "properties": { @@ -30977,6 +33804,376 @@ } } }, + "GetAccountsChargesCurrency": { + "type": "object", + "properties": { + "code": { + "type": "string", + "example": "USD" + }, + "name": { + "type": "string", + "example": "US Dollar" + }, + "decimalPlaces": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "displaySymbol": { + "type": "string", + "example": "$" + }, + "nameCode": { + "type": "string", + "example": "currency.USD" + }, + "displayLabel": { + "type": "string", + "example": "US Dollar ($)" + } + } + }, + "GetAccountsPageItems": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "accountNo": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "clientId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "clientName": { + "type": "string", + "example": "Client Name" + }, + "productId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "productName": { + "type": "string", + "example": "Share Product Name" + }, + "status": { + "$ref": "#/definitions/GetAccountsTypeStatus" + }, + "timeline": { + "$ref": "#/definitions/GetAccountsTypeTimeline" + }, + "currency": { + "$ref": "#/definitions/GetAccountsChargesCurrency" + }, + "purchasedShares": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetAccountsTypePurchasedShares" + } + }, + "summary": { + "$ref": "#/definitions/GetAccountsTypeSummary" + } + } + }, + "GetAccountsTypePurchasedShares": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "purchasedDate": { + "type": "string", + "example": "01 May 2013" + }, + "numberOfShares": { + "type": "integer", + "format": "int32", + "example": 10 + }, + "purchasedPrice": { + "type": "integer", + "format": "int32", + "example": 5 + } + } + }, + "GetAccountsTypeResponse": { + "type": "object", + "properties": { + "totalFilteredRecords": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "pageItems": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetAccountsPageItems" + } + } + } + }, + "GetAccountsTypeStatus": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 100 + }, + "code": { + "type": "string", + "example": "shareAccountStatusType.submitted.and.pending.approval" + }, + "value": { + "type": "string", + "example": "Submitted and pending approval" + }, + "submittedAndPendingApproval": { + "type": "boolean", + "example": true + }, + "approved": { + "type": "boolean", + "example": false + }, + "rejected": { + "type": "boolean", + "example": false + }, + "active": { + "type": "boolean", + "example": false + }, + "closed": { + "type": "boolean", + "example": false + } + } + }, + "GetAccountsTypeSummary": { + "type": "object", + "properties": { + "currency": { + "$ref": "#/definitions/GetAccountsChargesCurrency" + } + } + }, + "GetAccountsTypeTimeline": { + "type": "object", + "properties": { + "submittedOnDate": { + "type": "string", + "format": "date", + "example": "[2013, 3, 1]" + } + } + }, + "PostAccountsTypeAccountIdResponse": { + "type": "object", + "properties": { + "resourceId": { + "type": "integer", + "format": "int32", + "example": 5 + } + } + }, + "PostAccountsRequestedShares": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 35 + } + } + }, + "PostAccountsTypeAccountIdRequest": { + "type": "object", + "properties": { + "requestedShares": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/PostAccountsRequestedShares" + } + } + } + }, + "PutAccountsChanges": { + "type": "object", + "properties": { + "dateFormat": { + "type": "string", + "example": "dd MMMM yyyy" + }, + "applicationDate": { + "type": "string", + "example": "01 April 2016" + }, + "requestedShares": { + "type": "integer", + "format": "int32", + "example": 20 + }, + "locale": { + "type": "string", + "example": "en" + } + } + }, + "PutAccountsTypeAccountIdResponse": { + "type": "object", + "properties": { + "resourceId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "changes": { + "$ref": "#/definitions/PutAccountsChanges" + } + } + }, + "PutAccountsTypeAccountIdRequest": { + "type": "object", + "properties": { + "locale": { + "type": "string", + "example": "en" + }, + "dateFormat": { + "type": "string", + "example": "dd MMMM yyyy" + }, + "applicationDate": { + "type": "string", + "example": "01 April 2016" + }, + "requestedShares": { + "type": "integer", + "format": "int32", + "example": 20 + } + } + }, + "PostAccountsTypeResponse": { + "type": "object", + "properties": { + "resourceId": { + "type": "integer", + "format": "int32", + "example": 1 + } + } + }, + "PostAccountsCharges": { + "type": "object", + "properties": { + "chargeId": { + "type": "integer", + "format": "int32", + "example": 20 + }, + "amount": { + "type": "integer", + "format": "int32", + "example": 1 + } + } + }, + "PostAccountsTypeRequest": { + "type": "object", + "properties": { + "clientId": { + "type": "integer", + "format": "int32", + "example": 7 + }, + "productId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "requestedShares": { + "type": "integer", + "format": "int32", + "example": 100 + }, + "externalId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "submittedDate": { + "type": "string", + "example": "01 May 2016" + }, + "minimumActivePeriod": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "minimumActivePeriodFrequencyType": { + "type": "integer", + "format": "int32", + "example": 0 + }, + "lockinPeriodFrequency": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "lockinPeriodFrequencyType": { + "type": "integer", + "format": "int32", + "example": 0 + }, + "applicationDate": { + "type": "string", + "example": "01 May 2016" + }, + "allowDividendCalculationForInactiveClients": { + "type": "boolean", + "example": true + }, + "locale": { + "type": "string", + "example": "en" + }, + "dateFormat": { + "type": "string", + "example": "dd MMMM yyyy" + }, + "charges": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/PostAccountsCharges" + } + }, + "savingsAccountId": { + "type": "integer", + "format": "int32", + "example": 13 + } + } + }, "GetAccountsChargeCalculationType": { "type": "object", "properties": { @@ -31090,36 +34287,6 @@ } } }, - "GetAccountsChargesCurrency": { - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "USD" - }, - "name": { - "type": "string", - "example": "US Dollar" - }, - "decimalPlaces": { - "type": "integer", - "format": "int32", - "example": 2 - }, - "displaySymbol": { - "type": "string", - "example": "$" - }, - "nameCode": { - "type": "string", - "example": "currency.USD" - }, - "displayLabel": { - "type": "string", - "example": "US Dollar ($)" - } - } - }, "GetAccountsCurrency": { "type": "object", "properties": { @@ -31485,346 +34652,6 @@ } } }, - "PostAccountsTypeResponse": { - "type": "object", - "properties": { - "resourceId": { - "type": "integer", - "format": "int32", - "example": 1 - } - } - }, - "PostAccountsCharges": { - "type": "object", - "properties": { - "chargeId": { - "type": "integer", - "format": "int32", - "example": 20 - }, - "amount": { - "type": "integer", - "format": "int32", - "example": 1 - } - } - }, - "PostAccountsTypeRequest": { - "type": "object", - "properties": { - "clientId": { - "type": "integer", - "format": "int32", - "example": 7 - }, - "productId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "requestedShares": { - "type": "integer", - "format": "int32", - "example": 100 - }, - "externalId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "submittedDate": { - "type": "string", - "example": "01 May 2016" - }, - "minimumActivePeriod": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "minimumActivePeriodFrequencyType": { - "type": "integer", - "format": "int32", - "example": 0 - }, - "lockinPeriodFrequency": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "lockinPeriodFrequencyType": { - "type": "integer", - "format": "int32", - "example": 0 - }, - "applicationDate": { - "type": "string", - "example": "01 May 2016" - }, - "allowDividendCalculationForInactiveClients": { - "type": "boolean", - "example": true - }, - "locale": { - "type": "string", - "example": "en" - }, - "dateFormat": { - "type": "string", - "example": "dd MMMM yyyy" - }, - "charges": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/PostAccountsCharges" - } - }, - "savingsAccountId": { - "type": "integer", - "format": "int32", - "example": 13 - } - } - }, - "PutAccountsChanges": { - "type": "object", - "properties": { - "dateFormat": { - "type": "string", - "example": "dd MMMM yyyy" - }, - "applicationDate": { - "type": "string", - "example": "01 April 2016" - }, - "requestedShares": { - "type": "integer", - "format": "int32", - "example": 20 - }, - "locale": { - "type": "string", - "example": "en" - } - } - }, - "PutAccountsTypeAccountIdResponse": { - "type": "object", - "properties": { - "resourceId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "changes": { - "$ref": "#/definitions/PutAccountsChanges" - } - } - }, - "PutAccountsTypeAccountIdRequest": { - "type": "object", - "properties": { - "locale": { - "type": "string", - "example": "en" - }, - "dateFormat": { - "type": "string", - "example": "dd MMMM yyyy" - }, - "applicationDate": { - "type": "string", - "example": "01 April 2016" - }, - "requestedShares": { - "type": "integer", - "format": "int32", - "example": 20 - } - } - }, - "GetAccountsPageItems": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "accountNo": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "clientId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "clientName": { - "type": "string", - "example": "Client Name" - }, - "productId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "productName": { - "type": "string", - "example": "Share Product Name" - }, - "status": { - "$ref": "#/definitions/GetAccountsTypeStatus" - }, - "timeline": { - "$ref": "#/definitions/GetAccountsTypeTimeline" - }, - "currency": { - "$ref": "#/definitions/GetAccountsChargesCurrency" - }, - "purchasedShares": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetAccountsTypePurchasedShares" - } - }, - "summary": { - "$ref": "#/definitions/GetAccountsTypeSummary" - } - } - }, - "GetAccountsTypePurchasedShares": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "purchasedDate": { - "type": "string", - "example": "01 May 2013" - }, - "numberOfShares": { - "type": "integer", - "format": "int32", - "example": 10 - }, - "purchasedPrice": { - "type": "integer", - "format": "int32", - "example": 5 - } - } - }, - "GetAccountsTypeResponse": { - "type": "object", - "properties": { - "totalFilteredRecords": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "pageItems": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetAccountsPageItems" - } - } - } - }, - "GetAccountsTypeStatus": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 100 - }, - "code": { - "type": "string", - "example": "shareAccountStatusType.submitted.and.pending.approval" - }, - "value": { - "type": "string", - "example": "Submitted and pending approval" - }, - "submittedAndPendingApproval": { - "type": "boolean", - "example": true - }, - "approved": { - "type": "boolean", - "example": false - }, - "rejected": { - "type": "boolean", - "example": false - }, - "active": { - "type": "boolean", - "example": false - }, - "closed": { - "type": "boolean", - "example": false - } - } - }, - "GetAccountsTypeSummary": { - "type": "object", - "properties": { - "currency": { - "$ref": "#/definitions/GetAccountsChargesCurrency" - } - } - }, - "GetAccountsTypeTimeline": { - "type": "object", - "properties": { - "submittedOnDate": { - "type": "string", - "format": "date", - "example": "[2013, 3, 1]" - } - } - }, - "PostAccountsTypeAccountIdResponse": { - "type": "object", - "properties": { - "resourceId": { - "type": "integer", - "format": "int32", - "example": 5 - } - } - }, - "PostAccountsRequestedShares": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 35 - } - } - }, - "PostAccountsTypeAccountIdRequest": { - "type": "object", - "properties": { - "requestedShares": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/PostAccountsRequestedShares" - } - } - } - }, "GetAccountsTypeProductOptions": { "type": "object", "properties": { @@ -32184,6 +35011,28 @@ } } }, + "PutChargesChargeIdRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Loan service fee(changed)" + } + } + }, + "PutChargesChargeIdResponse": { + "type": "object", + "properties": { + "resourceId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "changes": { + "$ref": "#/definitions/PutChargesChargeIdRequest" + } + } + }, "PostChargesResponse": { "type": "object", "properties": { @@ -32240,28 +35089,6 @@ } } }, - "PutChargesChargeIdRequest": { - "type": "object", - "properties": { - "name": { - "type": "string", - "example": "Loan service fee(changed)" - } - } - }, - "PutChargesChargeIdResponse": { - "type": "object", - "properties": { - "resourceId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "changes": { - "$ref": "#/definitions/PutChargesChargeIdRequest" - } - } - }, "DeleteChargesChargeIdResponse": { "type": "object", "properties": { @@ -32272,80 +35099,6 @@ } } }, - "PostClientClientIdAddressesResponse": { - "type": "object", - "properties": { - "resourceId": { - "type": "integer", - "format": "int32", - "example": 15 - } - } - }, - "PostClientClientIdAddressesRequest": { - "type": "object", - "properties": { - "street": { - "type": "string", - "example": "Ipca" - }, - "addressLine1": { - "type": "string", - "example": "Kandivali" - }, - "addressLine2": { - "type": "string", - "example": "plot47" - }, - "addressLine3": { - "type": "string", - "example": "charkop" - }, - "city": { - "type": "string", - "example": "Mumbai" - }, - "stateProvinceId": { - "type": "integer", - "format": "int32", - "example": 800 - }, - "countryId": { - "type": "integer", - "format": "int32", - "example": 802 - }, - "postalCode": { - "type": "integer", - "format": "int64", - "example": 400064 - } - } - }, - "PutClientClientIdAddressesResponse": { - "type": "object", - "properties": { - "resourceId": { - "type": "integer", - "format": "int32", - "example": 67 - } - } - }, - "PutClientClientIdAddressesRequest": { - "type": "object", - "properties": { - "addressId": { - "type": "integer", - "format": "int32", - "example": 67 - }, - "street": { - "type": "string", - "example": "goldensource" - } - } - }, "GetClientClientIdAddressesResponse": { "type": "object", "properties": { @@ -32433,6 +35186,80 @@ } } }, + "PutClientClientIdAddressesResponse": { + "type": "object", + "properties": { + "resourceId": { + "type": "integer", + "format": "int32", + "example": 67 + } + } + }, + "PutClientClientIdAddressesRequest": { + "type": "object", + "properties": { + "addressId": { + "type": "integer", + "format": "int32", + "example": 67 + }, + "street": { + "type": "string", + "example": "goldensource" + } + } + }, + "PostClientClientIdAddressesResponse": { + "type": "object", + "properties": { + "resourceId": { + "type": "integer", + "format": "int32", + "example": 15 + } + } + }, + "PostClientClientIdAddressesRequest": { + "type": "object", + "properties": { + "street": { + "type": "string", + "example": "Ipca" + }, + "addressLine1": { + "type": "string", + "example": "Kandivali" + }, + "addressLine2": { + "type": "string", + "example": "plot47" + }, + "addressLine3": { + "type": "string", + "example": "charkop" + }, + "city": { + "type": "string", + "example": "Mumbai" + }, + "stateProvinceId": { + "type": "integer", + "format": "int32", + "example": 800 + }, + "countryId": { + "type": "integer", + "format": "int32", + "example": 802 + }, + "postalCode": { + "type": "integer", + "format": "int64", + "example": 400064 + } + } + }, "GetClientChargeCalculationType": { "type": "object", "properties": { @@ -33275,6 +36102,203 @@ } } }, + "GetClientStatus": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 100 + }, + "code": { + "type": "string", + "example": "clientStatusType.pending" + }, + "value": { + "type": "string", + "example": "Pending" + } + } + }, + "GetClientsPageItemsResponse": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "accountNo": { + "type": "string", + "example": "000000002" + }, + "status": { + "$ref": "#/definitions/GetClientStatus" + }, + "active": { + "type": "boolean", + "example": false + }, + "fullname": { + "type": "string", + "example": "Home Farm Produce" + }, + "displayName": { + "type": "string", + "example": "Home Farm Produce" + }, + "officeId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "officeName": { + "type": "string", + "example": "Head Office" + } + } + }, + "GetClientsResponse": { + "type": "object", + "properties": { + "totalFilteredRecords": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "pageItems": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetClientsPageItemsResponse" + } + } + } + }, + "GetClientsClientIdResponse": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 27 + }, + "accountNo": { + "type": "integer", + "format": "int64", + "example": 27 + }, + "status": { + "$ref": "#/definitions/GetClientsClientIdStatus" + }, + "active": { + "type": "boolean", + "example": true + }, + "activationDate": { + "type": "string", + "format": "date", + "example": "[2013, 1, 1]" + }, + "firstname": { + "type": "string", + "example": "savings" + }, + "lastname": { + "type": "string", + "example": "test" + }, + "displayName": { + "type": "string", + "example": "savings test" + }, + "officeId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "officeName": { + "type": "string", + "example": "Head Office" + }, + "timeline": { + "$ref": "#/definitions/GetClientsTimeline" + }, + "savingsProductId": { + "type": "integer", + "format": "int32", + "example": 4 + }, + "savingsProductName": { + "type": "string", + "example": "account overdraft" + }, + "groups": { + "type": "array", + "example": "[]", + "items": { + "type": "string" + } + } + } + }, + "GetClientsClientIdStatus": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 300 + }, + "code": { + "type": "string", + "example": "clientStatusType.active" + }, + "value": { + "type": "string", + "example": "Active" + } + } + }, + "GetClientsTimeline": { + "type": "object", + "properties": { + "submittedOnDate": { + "type": "string", + "format": "date", + "example": "[2013, 1, 1]" + }, + "submittedByUsername": { + "type": "string", + "example": "mifos" + }, + "submittedByFirstname": { + "type": "string", + "example": "App" + }, + "submittedByLastname": { + "type": "string", + "example": "Administrator" + }, + "activatedOnDate": { + "type": "string", + "format": "date", + "example": "[2013, 1, 1]" + }, + "activatedByUsername": { + "type": "string", + "example": "mifos" + }, + "activatedByFirstname": { + "type": "string", + "example": "App" + }, + "activatedByLastname": { + "type": "string", + "example": "Administrator" + } + } + }, "GetClientsColumnHeaderData": { "type": "object", "properties": { @@ -33454,79 +36478,6 @@ } } }, - "GetClientStatus": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 100 - }, - "code": { - "type": "string", - "example": "clientStatusType.pending" - }, - "value": { - "type": "string", - "example": "Pending" - } - } - }, - "GetClientsPageItemsResponse": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 2 - }, - "accountNo": { - "type": "string", - "example": "000000002" - }, - "status": { - "$ref": "#/definitions/GetClientStatus" - }, - "active": { - "type": "boolean", - "example": false - }, - "fullname": { - "type": "string", - "example": "Home Farm Produce" - }, - "displayName": { - "type": "string", - "example": "Home Farm Produce" - }, - "officeId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "officeName": { - "type": "string", - "example": "Head Office" - } - } - }, - "GetClientsResponse": { - "type": "object", - "properties": { - "totalFilteredRecords": { - "type": "integer", - "format": "int32", - "example": 2 - }, - "pageItems": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetClientsPageItemsResponse" - } - } - } - }, "PostClientsClientIdResponse": { "type": "object", "properties": { @@ -33551,130 +36502,6 @@ } } }, - "GetClientsClientIdResponse": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 27 - }, - "accountNo": { - "type": "integer", - "format": "int64", - "example": 27 - }, - "status": { - "$ref": "#/definitions/GetClientsClientIdStatus" - }, - "active": { - "type": "boolean", - "example": true - }, - "activationDate": { - "type": "string", - "format": "date", - "example": "[2013, 1, 1]" - }, - "firstname": { - "type": "string", - "example": "savings" - }, - "lastname": { - "type": "string", - "example": "test" - }, - "displayName": { - "type": "string", - "example": "savings test" - }, - "officeId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "officeName": { - "type": "string", - "example": "Head Office" - }, - "timeline": { - "$ref": "#/definitions/GetClientsTimeline" - }, - "savingsProductId": { - "type": "integer", - "format": "int32", - "example": 4 - }, - "savingsProductName": { - "type": "string", - "example": "account overdraft" - }, - "groups": { - "type": "array", - "example": "[]", - "items": { - "type": "string" - } - } - } - }, - "GetClientsClientIdStatus": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 300 - }, - "code": { - "type": "string", - "example": "clientStatusType.active" - }, - "value": { - "type": "string", - "example": "Active" - } - } - }, - "GetClientsTimeline": { - "type": "object", - "properties": { - "submittedOnDate": { - "type": "string", - "format": "date", - "example": "[2013, 1, 1]" - }, - "submittedByUsername": { - "type": "string", - "example": "mifos" - }, - "submittedByFirstname": { - "type": "string", - "example": "App" - }, - "submittedByLastname": { - "type": "string", - "example": "Administrator" - }, - "activatedOnDate": { - "type": "string", - "format": "date", - "example": "[2013, 1, 1]" - }, - "activatedByUsername": { - "type": "string", - "example": "mifos" - }, - "activatedByFirstname": { - "type": "string", - "example": "App" - }, - "activatedByLastname": { - "type": "string", - "example": "Administrator" - } - } - }, "PutClientsClientIdRequest": { "type": "object", "properties": { @@ -33890,31 +36717,6 @@ } } }, - "PostLoansLoanIdCollateralsResponse": { - "type": "object", - "properties": { - "loanId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "resourceId": { - "type": "integer", - "format": "int32", - "example": 12 - } - } - }, - "PostLoansLoanIdCollateralsRequest": { - "type": "object", - "properties": { - "collateralTypeId": { - "type": "integer", - "format": "int32", - "example": 9 - } - } - }, "PutLoansLoanIdCollateralsCollateralIdResponse": { "type": "object", "properties": { @@ -33942,6 +36744,31 @@ } } }, + "PostLoansLoanIdCollateralsResponse": { + "type": "object", + "properties": { + "loanId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "resourceId": { + "type": "integer", + "format": "int32", + "example": 12 + } + } + }, + "PostLoansLoanIdCollateralsRequest": { + "type": "object", + "properties": { + "collateralTypeId": { + "type": "integer", + "format": "int32", + "example": 9 + } + } + }, "DeleteLoansLoanIdCollateralsCollateralIdResponse": { "type": "object", "properties": { @@ -34123,6 +36950,44 @@ } } }, + "GetFloatingRatesResponse": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "name": { + "type": "string", + "example": "Floating Rate 1" + }, + "isBaseLendingRate": { + "type": "boolean", + "example": true + }, + "isActive": { + "type": "boolean", + "example": true + }, + "createdBy": { + "type": "string", + "example": "mifos" + }, + "createdOn": { + "type": "string", + "example": "Nov 18, 2015" + }, + "modifiedBy": { + "type": "string", + "example": "mifos" + }, + "modifiedOn": { + "type": "string", + "example": "Nov 18, 2015" + } + } + }, "PutFloatingRatesChanges": { "type": "object", "properties": { @@ -34172,44 +37037,6 @@ } } }, - "GetFloatingRatesResponse": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "name": { - "type": "string", - "example": "Floating Rate 1" - }, - "isBaseLendingRate": { - "type": "boolean", - "example": true - }, - "isActive": { - "type": "boolean", - "example": true - }, - "createdBy": { - "type": "string", - "example": "mifos" - }, - "createdOn": { - "type": "string", - "example": "Nov 18, 2015" - }, - "modifiedBy": { - "type": "string", - "example": "mifos" - }, - "modifiedOn": { - "type": "string", - "example": "Nov 18, 2015" - } - } - }, "GetFloatingRatesFloatingRateIdResponse": { "type": "object", "properties": { @@ -34298,20 +37125,6 @@ } } }, - "GetFundsResponse": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "name": { - "type": "string", - "example": "EU Agri Fund" - } - } - }, "PostFundsResponse": { "type": "object", "properties": { @@ -34331,6 +37144,20 @@ } } }, + "GetFundsResponse": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "name": { + "type": "string", + "example": "EU Agri Fund" + } + } + }, "PutFundsFundIdRequest": { "type": "object", "properties": { @@ -34551,71 +37378,6 @@ } } }, - "GetCentersOfficeOptions": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "name": { - "type": "string", - "example": "Head Office" - }, - "nameDecorated": { - "type": "string", - "example": "Head Office" - } - } - }, - "GetCentersStaffOptions": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 2 - }, - "displayName": { - "type": "string", - "example": "D, Mary" - } - } - }, - "GetCentersTemplateResponse": { - "type": "object", - "properties": { - "active": { - "type": "boolean", - "example": false - }, - "activationDate": { - "type": "string", - "format": "date", - "example": "[2013, 4, 18]" - }, - "officeId": { - "type": "integer", - "format": "int32", - "example": 2 - }, - "officeOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetCentersOfficeOptions" - } - }, - "staffOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetCentersStaffOptions" - } - } - } - }, "GetCentersPageItems": { "type": "object", "properties": { @@ -34685,38 +37447,6 @@ } } }, - "PostCentersCenterIdResponse": { - "type": "object", - "properties": { - "resourceId": { - "type": "integer", - "format": "int32", - "example": 1 - } - } - }, - "PostCentersCenterIdRequest": { - "type": "object", - "properties": { - "closureReasonId": { - "type": "integer", - "format": "int32", - "example": 32 - }, - "closureDate": { - "type": "string", - "example": "05 May 2014" - }, - "locale": { - "type": "string", - "example": "en" - }, - "dateFormat": { - "type": "string", - "example": "dd MMMM yyyy" - } - } - }, "GetCentersCenterIdResponse": { "type": "object", "properties": { @@ -34751,6 +37481,103 @@ } } }, + "GetCentersOfficeOptions": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "name": { + "type": "string", + "example": "Head Office" + }, + "nameDecorated": { + "type": "string", + "example": "Head Office" + } + } + }, + "GetCentersStaffOptions": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "displayName": { + "type": "string", + "example": "D, Mary" + } + } + }, + "GetCentersTemplateResponse": { + "type": "object", + "properties": { + "active": { + "type": "boolean", + "example": false + }, + "activationDate": { + "type": "string", + "format": "date", + "example": "[2013, 4, 18]" + }, + "officeId": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "officeOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetCentersOfficeOptions" + } + }, + "staffOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetCentersStaffOptions" + } + } + } + }, + "PostCentersCenterIdResponse": { + "type": "object", + "properties": { + "resourceId": { + "type": "integer", + "format": "int32", + "example": 1 + } + } + }, + "PostCentersCenterIdRequest": { + "type": "object", + "properties": { + "closureReasonId": { + "type": "integer", + "format": "int32", + "example": 32 + }, + "closureDate": { + "type": "string", + "example": "05 May 2014" + }, + "locale": { + "type": "string", + "example": "en" + }, + "dateFormat": { + "type": "string", + "example": "dd MMMM yyyy" + } + } + }, "PutCentersCenterIdResponse": { "type": "object", "properties": { @@ -35304,6 +38131,131 @@ } } }, + "GetGroupsPageItems": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 4 + }, + "name": { + "type": "string", + "example": "AnotherGroup" + }, + "status": { + "$ref": "#/definitions/GetGroupsStatus" + }, + "active": { + "type": "boolean", + "example": false + }, + "officeId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "officeName": { + "type": "string", + "example": "Head Office" + }, + "hierarchy": { + "type": "string", + "example": ".4." + } + } + }, + "GetGroupsResponse": { + "type": "object", + "properties": { + "totalFilteredRecords": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "pageItems": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetGroupsPageItems" + } + } + } + }, + "GetGroupsStatus": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 100 + }, + "code": { + "type": "string", + "example": "clientStatusType.pending" + }, + "value": { + "type": "string", + "example": "Pending" + } + } + }, + "GetGroupsGroupIdResponse": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "name": { + "type": "string", + "example": "First Group" + }, + "externalId": { + "type": "string", + "example": "000-1A" + }, + "officeId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "officeName": { + "type": "string", + "example": "Head Office" + }, + "hierarchy": { + "type": "string", + "example": ".1." + }, + "timeline": { + "$ref": "#/definitions/GetGroupsGroupIdTimeline" + } + } + }, + "GetGroupsGroupIdTimeline": { + "type": "object", + "properties": { + "activatedOnDate": { + "type": "string", + "format": "date", + "example": "[2013, 11, 14]" + }, + "activatedByUsername": { + "type": "string", + "example": "mifos" + }, + "activatedByFirstname": { + "type": "string", + "example": "App" + }, + "activatedByLastname": { + "type": "string", + "example": "Administrator" + } + } + }, "GetGroupsTemplateClientOptions": { "type": "object", "properties": { @@ -35457,131 +38409,6 @@ } } }, - "GetGroupsPageItems": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 4 - }, - "name": { - "type": "string", - "example": "AnotherGroup" - }, - "status": { - "$ref": "#/definitions/GetGroupsStatus" - }, - "active": { - "type": "boolean", - "example": false - }, - "officeId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "officeName": { - "type": "string", - "example": "Head Office" - }, - "hierarchy": { - "type": "string", - "example": ".4." - } - } - }, - "GetGroupsResponse": { - "type": "object", - "properties": { - "totalFilteredRecords": { - "type": "integer", - "format": "int32", - "example": 2 - }, - "pageItems": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetGroupsPageItems" - } - } - } - }, - "GetGroupsStatus": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 100 - }, - "code": { - "type": "string", - "example": "clientStatusType.pending" - }, - "value": { - "type": "string", - "example": "Pending" - } - } - }, - "GetGroupsGroupIdResponse": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "name": { - "type": "string", - "example": "First Group" - }, - "externalId": { - "type": "string", - "example": "000-1A" - }, - "officeId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "officeName": { - "type": "string", - "example": "Head Office" - }, - "hierarchy": { - "type": "string", - "example": ".1." - }, - "timeline": { - "$ref": "#/definitions/GetGroupsGroupIdTimeline" - } - } - }, - "GetGroupsGroupIdTimeline": { - "type": "object", - "properties": { - "activatedOnDate": { - "type": "string", - "format": "date", - "example": "[2013, 11, 14]" - }, - "activatedByUsername": { - "type": "string", - "example": "mifos" - }, - "activatedByFirstname": { - "type": "string", - "example": "App" - }, - "activatedByLastname": { - "type": "string", - "example": "Administrator" - } - } - }, "PutGroupsGroupIdChanges": { "type": "object", "properties": { @@ -36009,18 +38836,6 @@ } } }, - "GetInterestRateChartsTemplateResponse": { - "type": "object", - "properties": { - "periodTypes": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetInterestRateChartsTemplatePeriodTypes" - } - } - } - }, "GetInterestRateChartsChartSlabs": { "type": "object", "properties": { @@ -36078,6 +38893,18 @@ } } }, + "GetInterestRateChartsTemplateResponse": { + "type": "object", + "properties": { + "periodTypes": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetInterestRateChartsTemplatePeriodTypes" + } + } + } + }, "PutInterestRateChartsChartIdResponse": { "type": "object", "properties": { @@ -36150,105 +38977,6 @@ } } }, - "PostLoansLoanIdChargesResponse": { - "type": "object", - "properties": { - "officeId": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "clientId": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "loanId": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "resourceId": { - "type": "integer", - "format": "int32", - "example": 31 - } - } - }, - "PostLoansLoanIdChargesRequest": { - "type": "object", - "properties": { - "chargeId": { - "type": "integer", - "format": "int32", - "example": 2 - }, - "locale": { - "type": "string", - "example": "en" - }, - "amount": { - "type": "number", - "format": "float", - "example": 100 - }, - "dateFormat": { - "type": "string", - "example": "dd MMMM yyyy" - }, - "dueDate": { - "type": "string", - "example": "29 April 2013" - } - } - }, - "PostLoansLoanIdChargesChargeIdResponse": { - "type": "object", - "properties": { - "officeId": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "clientId": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "loanId": { - "type": "integer", - "format": "int64", - "example": 6 - }, - "savingsId": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "resourceId": { - "type": "integer", - "format": "int32", - "example": 12 - } - } - }, - "PostLoansLoanIdChargesChargeIdRequest": { - "type": "object", - "properties": { - "dateFormat": { - "type": "string", - "example": "dd MMMM yyyy" - }, - "locale": { - "type": "string", - "example": "en" - }, - "transactionDate": { - "type": "string", - "example": "19 September 2013" - } - } - }, "DeleteLoansLoanIdChargesChargeIdResponse": { "type": "object", "properties": { @@ -36412,6 +39140,105 @@ } } }, + "PostLoansLoanIdChargesResponse": { + "type": "object", + "properties": { + "officeId": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "clientId": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "loanId": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "resourceId": { + "type": "integer", + "format": "int32", + "example": 31 + } + } + }, + "PostLoansLoanIdChargesRequest": { + "type": "object", + "properties": { + "chargeId": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "locale": { + "type": "string", + "example": "en" + }, + "amount": { + "type": "number", + "format": "float", + "example": 100 + }, + "dateFormat": { + "type": "string", + "example": "dd MMMM yyyy" + }, + "dueDate": { + "type": "string", + "example": "29 April 2013" + } + } + }, + "PostLoansLoanIdChargesChargeIdResponse": { + "type": "object", + "properties": { + "officeId": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "clientId": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "loanId": { + "type": "integer", + "format": "int64", + "example": 6 + }, + "savingsId": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "resourceId": { + "type": "integer", + "format": "int32", + "example": 12 + } + } + }, + "PostLoansLoanIdChargesChargeIdRequest": { + "type": "object", + "properties": { + "dateFormat": { + "type": "string", + "example": "dd MMMM yyyy" + }, + "locale": { + "type": "string", + "example": "en" + }, + "transactionDate": { + "type": "string", + "example": "19 September 2013" + } + } + }, "PutLoansLoanIdChargesChargeIdRequest": { "type": "object", "properties": { @@ -36853,443 +39680,6 @@ } } }, - "GetLoansLoanIdCurrency": { - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "UGX" - }, - "name": { - "type": "string", - "example": "Uganda Shilling" - }, - "decimalPlaces": { - "type": "integer", - "format": "int32", - "example": 2 - }, - "displaySymbol": { - "type": "string", - "example": "USh" - }, - "nameCode": { - "type": "string", - "example": "currency.UGX" - }, - "displayLabel": { - "type": "string", - "example": "Uganda Shilling (USh)" - } - } - }, - "PostLoansRepaymentSchedulePeriods": { - "type": "object", - "properties": { - "period": { - "type": "integer", - "format": "int32", - "example": 0 - }, - "dueDate": { - "type": "string", - "format": "date", - "example": "[2011, 9, 20]" - }, - "principalDisbursed": { - "type": "integer", - "format": "int64", - "example": 100000 - }, - "principalLoanBalanceOutstanding": { - "type": "integer", - "format": "int64", - "example": 100000 - }, - "feeChargesDue": { - "type": "integer", - "format": "int64", - "example": 0 - }, - "feeChargesOutstanding": { - "type": "integer", - "format": "int64", - "example": 0 - }, - "totalOriginalDueForPeriod": { - "type": "integer", - "format": "int64", - "example": 0 - }, - "totalDueForPeriod": { - "type": "integer", - "format": "int64", - "example": 0 - }, - "totalOutstandingForPeriod": { - "type": "integer", - "format": "int64", - "example": 0 - }, - "totalOverdue": { - "type": "integer", - "format": "int64", - "example": 0 - }, - "totalActualCostOfLoanForPeriod": { - "type": "integer", - "format": "int64", - "example": 0 - } - } - }, - "PostLoansResponse": { - "type": "object", - "properties": { - "currency": { - "$ref": "#/definitions/GetLoansLoanIdCurrency" - }, - "loanTermInDays": { - "type": "integer", - "format": "int32", - "example": 366 - }, - "totalPrincipalDisbursed": { - "type": "integer", - "format": "int64", - "example": 100000 - }, - "totalPrincipalExpected": { - "type": "integer", - "format": "int64", - "example": 100000 - }, - "totalPrincipalPaid": { - "type": "integer", - "format": "int64", - "example": 0 - }, - "totalInterestCharged": { - "type": "number", - "format": "double", - "example": 13471.52 - }, - "totalFeeChargesCharged": { - "type": "integer", - "format": "int64", - "example": 0 - }, - "totalPenaltyChargesCharged": { - "type": "integer", - "format": "int64", - "example": 0 - }, - "totalWaived": { - "type": "integer", - "format": "int64", - "example": 0 - }, - "totalWrittenOff": { - "type": "integer", - "format": "int64", - "example": 0 - }, - "totalRepaymentExpected": { - "type": "number", - "format": "double", - "example": 113471.52 - }, - "totalRepayment": { - "type": "integer", - "format": "int64", - "example": 0 - }, - "totalOutstanding": { - "type": "integer", - "format": "int64", - "example": 0 - }, - "periods": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/PostLoansRepaymentSchedulePeriods" - } - } - } - }, - "PostLoansRequest": { - "type": "object", - "properties": { - "dateFormat": { - "type": "string", - "example": "dd MMMM yyyy" - }, - "locale": { - "type": "string", - "example": "en_GB" - }, - "productId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "principal": { - "type": "number", - "format": "double", - "example": "100,000.00" - }, - "loanTermFrequency": { - "type": "integer", - "format": "int32", - "example": 12 - }, - "loanTermFrequencyType": { - "type": "integer", - "format": "int32", - "example": 2 - }, - "numberOfRepayments": { - "type": "integer", - "format": "int32", - "example": 12 - }, - "repaymentEvery": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "repaymentFrequencyType": { - "type": "integer", - "format": "int32", - "example": 2 - }, - "interestRatePerPeriod": { - "type": "integer", - "format": "int32", - "example": 2 - }, - "amortizationType": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "interestType": { - "type": "integer", - "format": "int32", - "example": 0 - }, - "interestCalculationPeriodType": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "expectedDisbursementDate": { - "type": "string", - "example": "20 September 2011" - }, - "transactionProcessingStrategyId": { - "type": "integer", - "format": "int32", - "example": 2 - } - } - }, - "PutLoansLoanIdChanges": { - "type": "object", - "properties": { - "principal": { - "type": "integer", - "format": "int64", - "example": 5000 - }, - "locale": { - "type": "string", - "example": "en" - } - } - }, - "PutLoansLoanIdResponse": { - "type": "object", - "properties": { - "officeId": { - "type": "integer", - "format": "int32", - "example": 2 - }, - "clientId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "loanId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "resourceId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "changes": { - "$ref": "#/definitions/PutLoansLoanIdChanges" - } - } - }, - "PutLoansLoanIdRequest": { - "type": "object", - "properties": { - "locale": { - "type": "string", - "example": "en" - }, - "dateFormat": { - "type": "string", - "example": "dd MMMM yyyy" - }, - "productId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "principal": { - "type": "integer", - "format": "int64", - "example": 5000 - }, - "loanTermFrequency": { - "type": "integer", - "format": "int32", - "example": 10 - }, - "loanTermFrequencyType": { - "type": "integer", - "format": "int32", - "example": 0 - }, - "numberOfRepayments": { - "type": "integer", - "format": "int32", - "example": 10 - }, - "repaymentEvery": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "repaymentFrequencyType": { - "type": "integer", - "format": "int32", - "example": 0 - }, - "interestRatePerPeriod": { - "type": "integer", - "format": "int32", - "example": 2 - }, - "interestType": { - "type": "integer", - "format": "int32", - "example": 0 - }, - "interestCalculationPeriodType": { - "type": "integer", - "format": "int32", - "example": 0 - }, - "amortizationType": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "expectedDisbursementDate": { - "type": "string", - "example": "04 March 2014" - }, - "transactionProcessingStrategyId": { - "type": "integer", - "format": "int32", - "example": 1 - } - } - }, - "DeleteLoansLoanIdResponse": { - "type": "object", - "properties": { - "officeId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "clientId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "loanId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "resourceId": { - "type": "integer", - "format": "int32", - "example": 1 - } - } - }, - "PostLoansLoanIdResponse": { - "type": "object", - "properties": { - "officeId": { - "type": "integer", - "format": "int32", - "example": 2 - }, - "clientId": { - "type": "integer", - "format": "int32", - "example": 6 - }, - "loanId": { - "type": "integer", - "format": "int32", - "example": 3 - }, - "resourceId": { - "type": "integer", - "format": "int32", - "example": 3 - } - } - }, - "PostLoansLoanIdRequest": { - "type": "object", - "properties": { - "toLoanOfficerId": { - "type": "integer", - "format": "int32", - "example": 2 - }, - "assignmentDate": { - "type": "string", - "example": "02 September 2014" - }, - "locale": { - "type": "string", - "example": "en" - }, - "dateFormat": { - "type": "string", - "example": "dd MMMM yyyy" - }, - "fromLoanOfficerId": { - "type": "integer", - "format": "int32" - } - } - }, "GetLoansLoanIdAmortizationType": { "type": "object", "properties": { @@ -37362,6 +39752,36 @@ } } }, + "GetLoansLoanIdCurrency": { + "type": "object", + "properties": { + "code": { + "type": "string", + "example": "UGX" + }, + "name": { + "type": "string", + "example": "Uganda Shilling" + }, + "decimalPlaces": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "displaySymbol": { + "type": "string", + "example": "USh" + }, + "nameCode": { + "type": "string", + "example": "currency.UGX" + }, + "displayLabel": { + "type": "string", + "example": "Uganda Shilling (USh)" + } + } + }, "GetLoansLoanIdDisbursementDetails": { "type": "object", "properties": { @@ -38044,6 +40464,430 @@ } } }, + "PostLoansRepaymentSchedulePeriods": { + "type": "object", + "properties": { + "period": { + "type": "integer", + "format": "int32", + "example": 0 + }, + "dueDate": { + "type": "string", + "format": "date", + "example": "[2011, 9, 20]" + }, + "principalDisbursed": { + "type": "integer", + "format": "int64", + "example": 100000 + }, + "principalLoanBalanceOutstanding": { + "type": "integer", + "format": "int64", + "example": 100000 + }, + "feeChargesDue": { + "type": "integer", + "format": "int64", + "example": 0 + }, + "feeChargesOutstanding": { + "type": "integer", + "format": "int64", + "example": 0 + }, + "totalOriginalDueForPeriod": { + "type": "integer", + "format": "int64", + "example": 0 + }, + "totalDueForPeriod": { + "type": "integer", + "format": "int64", + "example": 0 + }, + "totalOutstandingForPeriod": { + "type": "integer", + "format": "int64", + "example": 0 + }, + "totalOverdue": { + "type": "integer", + "format": "int64", + "example": 0 + }, + "totalActualCostOfLoanForPeriod": { + "type": "integer", + "format": "int64", + "example": 0 + } + } + }, + "PostLoansResponse": { + "type": "object", + "properties": { + "currency": { + "$ref": "#/definitions/GetLoansLoanIdCurrency" + }, + "loanTermInDays": { + "type": "integer", + "format": "int32", + "example": 366 + }, + "totalPrincipalDisbursed": { + "type": "integer", + "format": "int64", + "example": 100000 + }, + "totalPrincipalExpected": { + "type": "integer", + "format": "int64", + "example": 100000 + }, + "totalPrincipalPaid": { + "type": "integer", + "format": "int64", + "example": 0 + }, + "totalInterestCharged": { + "type": "number", + "format": "double", + "example": 13471.52 + }, + "totalFeeChargesCharged": { + "type": "integer", + "format": "int64", + "example": 0 + }, + "totalPenaltyChargesCharged": { + "type": "integer", + "format": "int64", + "example": 0 + }, + "totalWaived": { + "type": "integer", + "format": "int64", + "example": 0 + }, + "totalWrittenOff": { + "type": "integer", + "format": "int64", + "example": 0 + }, + "totalRepaymentExpected": { + "type": "number", + "format": "double", + "example": 113471.52 + }, + "totalRepayment": { + "type": "integer", + "format": "int64", + "example": 0 + }, + "totalOutstanding": { + "type": "integer", + "format": "int64", + "example": 0 + }, + "periods": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/PostLoansRepaymentSchedulePeriods" + } + } + } + }, + "PostLoansRequest": { + "type": "object", + "properties": { + "dateFormat": { + "type": "string", + "example": "dd MMMM yyyy" + }, + "locale": { + "type": "string", + "example": "en_GB" + }, + "productId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "principal": { + "type": "number", + "format": "double", + "example": "100,000.00" + }, + "loanTermFrequency": { + "type": "integer", + "format": "int32", + "example": 12 + }, + "loanTermFrequencyType": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "numberOfRepayments": { + "type": "integer", + "format": "int32", + "example": 12 + }, + "repaymentEvery": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "repaymentFrequencyType": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "interestRatePerPeriod": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "amortizationType": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "interestType": { + "type": "integer", + "format": "int32", + "example": 0 + }, + "interestCalculationPeriodType": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "expectedDisbursementDate": { + "type": "string", + "example": "20 September 2011" + }, + "transactionProcessingStrategyId": { + "type": "integer", + "format": "int32", + "example": 2 + } + } + }, + "PutLoansLoanIdChanges": { + "type": "object", + "properties": { + "principal": { + "type": "integer", + "format": "int64", + "example": 5000 + }, + "locale": { + "type": "string", + "example": "en" + } + } + }, + "PutLoansLoanIdResponse": { + "type": "object", + "properties": { + "officeId": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "clientId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "loanId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "resourceId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "changes": { + "$ref": "#/definitions/PutLoansLoanIdChanges" + } + } + }, + "PutLoansLoanIdRequest": { + "type": "object", + "properties": { + "locale": { + "type": "string", + "example": "en" + }, + "dateFormat": { + "type": "string", + "example": "dd MMMM yyyy" + }, + "productId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "principal": { + "type": "integer", + "format": "int64", + "example": 5000 + }, + "loanTermFrequency": { + "type": "integer", + "format": "int32", + "example": 10 + }, + "loanTermFrequencyType": { + "type": "integer", + "format": "int32", + "example": 0 + }, + "numberOfRepayments": { + "type": "integer", + "format": "int32", + "example": 10 + }, + "repaymentEvery": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "repaymentFrequencyType": { + "type": "integer", + "format": "int32", + "example": 0 + }, + "interestRatePerPeriod": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "interestType": { + "type": "integer", + "format": "int32", + "example": 0 + }, + "interestCalculationPeriodType": { + "type": "integer", + "format": "int32", + "example": 0 + }, + "amortizationType": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "expectedDisbursementDate": { + "type": "string", + "example": "04 March 2014" + }, + "transactionProcessingStrategyId": { + "type": "integer", + "format": "int32", + "example": 1 + } + } + }, + "DeleteLoansLoanIdResponse": { + "type": "object", + "properties": { + "officeId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "clientId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "loanId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "resourceId": { + "type": "integer", + "format": "int32", + "example": 1 + } + } + }, + "PostLoansLoanIdResponse": { + "type": "object", + "properties": { + "officeId": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "clientId": { + "type": "integer", + "format": "int32", + "example": 6 + }, + "loanId": { + "type": "integer", + "format": "int32", + "example": 3 + }, + "resourceId": { + "type": "integer", + "format": "int32", + "example": 3 + } + } + }, + "PostLoansLoanIdRequest": { + "type": "object", + "properties": { + "toLoanOfficerId": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "assignmentDate": { + "type": "string", + "example": "02 September 2014" + }, + "locale": { + "type": "string", + "example": "en" + }, + "dateFormat": { + "type": "string", + "example": "dd MMMM yyyy" + }, + "fromLoanOfficerId": { + "type": "integer", + "format": "int32" + } + } + }, + "GetLoansResponse": { + "type": "object", + "properties": { + "totalFilteredRecords": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "pageItems": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetLoansLoanIdResponse" + } + } + } + }, "GetLoansTemplateProductOptions": { "type": "object", "properties": { @@ -38097,23 +40941,6 @@ } } }, - "GetLoansResponse": { - "type": "object", - "properties": { - "totalFilteredRecords": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "pageItems": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetLoansLoanIdResponse" - } - } - } - }, "GetLoanAccountingMappings": { "type": "object", "properties": { @@ -39212,6 +42039,47 @@ } } }, + "PutLoanChanges": { + "type": "object", + "properties": { + "principal": { + "type": "number", + "format": "double", + "example": "70,000.00" + }, + "locale": { + "type": "string", + "example": "en_GB" + } + } + }, + "PutLoanProductsProductIdResponse": { + "type": "object", + "properties": { + "resourceId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "changes": { + "$ref": "#/definitions/PutLoanChanges" + } + } + }, + "PutLoanProductsProductIdRequest": { + "type": "object", + "properties": { + "locale": { + "type": "string", + "example": "en_GB" + }, + "principal": { + "type": "number", + "format": "double", + "example": "70,000.00" + } + } + }, "GetLoanProductsAccountingMappingOptions": { "type": "object", "properties": { @@ -39980,47 +42848,6 @@ } } }, - "PutLoanChanges": { - "type": "object", - "properties": { - "principal": { - "type": "number", - "format": "double", - "example": "70,000.00" - }, - "locale": { - "type": "string", - "example": "en_GB" - } - } - }, - "PutLoanProductsProductIdResponse": { - "type": "object", - "properties": { - "resourceId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "changes": { - "$ref": "#/definitions/PutLoanChanges" - } - } - }, - "PutLoanProductsProductIdRequest": { - "type": "object", - "properties": { - "locale": { - "type": "string", - "example": "en_GB" - }, - "principal": { - "type": "number", - "format": "double", - "example": "70,000.00" - } - } - }, "GetNotesNoteType": { "type": "object", "properties": { @@ -40039,56 +42866,6 @@ } } }, - "GetResourceTypeResourceIdNotesNoteIdResponse": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 76 - }, - "clientId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "noteType": { - "$ref": "#/definitions/GetNotesNoteType" - }, - "note": { - "type": "string", - "example": "a note about the client" - }, - "createdById": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "createdByUsername": { - "type": "string", - "example": "mifos" - }, - "createdOn": { - "type": "string", - "format": "date-time", - "example": "1359463135000" - }, - "updatedById": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "updatedByUsername": { - "type": "string", - "example": "mifos" - }, - "updatedOn": { - "type": "string", - "format": "date-time", - "example": "1359463135000" - } - } - }, "GetResourceTypeResourceIdNotesResponse": { "type": "object", "properties": { @@ -40139,6 +42916,16 @@ } } }, + "DeleteResourceTypeResourceIdNotesNoteIdResponse": { + "type": "object", + "properties": { + "resourceId": { + "type": "integer", + "format": "int32", + "example": 76 + } + } + }, "PostResourceTypeResourceIdNotesResponse": { "type": "object", "properties": { @@ -40168,6 +42955,56 @@ } } }, + "GetResourceTypeResourceIdNotesNoteIdResponse": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 76 + }, + "clientId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "noteType": { + "$ref": "#/definitions/GetNotesNoteType" + }, + "note": { + "type": "string", + "example": "a note about the client" + }, + "createdById": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "createdByUsername": { + "type": "string", + "example": "mifos" + }, + "createdOn": { + "type": "string", + "format": "date-time", + "example": "1359463135000" + }, + "updatedById": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "updatedByUsername": { + "type": "string", + "example": "mifos" + }, + "updatedOn": { + "type": "string", + "format": "date-time", + "example": "1359463135000" + } + } + }, "PutNotesChanges": { "type": "object", "properties": { @@ -40209,13 +43046,40 @@ } } }, - "DeleteResourceTypeResourceIdNotesNoteIdResponse": { + "DeletePaymentTypesPaymentTypeIdResponse": { "type": "object", "properties": { "resourceId": { "type": "integer", "format": "int32", - "example": 76 + "example": 13 + } + } + }, + "GetPaymentTypesResponse": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 24 + }, + "name": { + "type": "string", + "example": "PTC" + }, + "description": { + "type": "string", + "example": "Cash" + }, + "isCashPayment": { + "type": "boolean", + "example": true + }, + "position": { + "type": "integer", + "format": "int32", + "example": 0 } } }, @@ -40310,40 +43174,193 @@ } } }, - "DeletePaymentTypesPaymentTypeIdResponse": { - "type": "object", - "properties": { - "resourceId": { - "type": "integer", - "format": "int32", - "example": 13 - } - } - }, - "GetPaymentTypesResponse": { + "GetProductsPageItems": { "type": "object", "properties": { "id": { "type": "integer", "format": "int32", - "example": 24 + "example": 1 }, "name": { "type": "string", - "example": "PTC" + "example": "Share Product" + }, + "shortName": { + "type": "string", + "example": "Share Product Description" + }, + "totalShares": { + "type": "integer", + "format": "int32", + "example": 100 + } + } + }, + "GetProductsTypeResponse": { + "type": "object", + "properties": { + "totalFilteredRecords": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "pageItems": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetProductsPageItems" + } + } + } + }, + "PostProductsTypeResponse": { + "type": "object", + "properties": { + "resourceId": { + "type": "integer", + "format": "int32", + "example": 1 + } + } + }, + "PostProductsChargesSelected": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 20 + } + } + }, + "PostProductsMarketPricePeriods": { + "type": "object", + "properties": { + "locale": { + "type": "string", + "example": "en" + }, + "dateFormat": { + "type": "string", + "example": "dd MMMM yyyy" + }, + "fromDate": { + "type": "string", + "example": "04 May 2016" + }, + "shareValue": { + "type": "integer", + "format": "int32", + "example": 2 + } + } + }, + "PostProductsTypeRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Share Product" + }, + "shortName": { + "type": "string", + "example": "SP" }, "description": { "type": "string", - "example": "Cash" + "example": "Description" }, - "isCashPayment": { - "type": "boolean", - "example": true + "currencyCode": { + "type": "string", + "example": "USD" }, - "position": { + "digitsAfterDecimal": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "inMultiplesOf": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "locale": { + "type": "string", + "example": "en" + }, + "totalShares": { + "type": "integer", + "format": "int32", + "example": 1000 + }, + "sharesIssued": { + "type": "integer", + "format": "int32", + "example": 1000 + }, + "unitPrice": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "minimumShares": { + "type": "integer", + "format": "int32", + "example": 10 + }, + "nominalShares": { + "type": "integer", + "format": "int32", + "example": 20 + }, + "maximumShares": { + "type": "integer", + "format": "int32", + "example": 30 + }, + "minimumActivePeriodForDividends": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "minimumactiveperiodFrequencyType": { "type": "integer", "format": "int32", "example": 0 + }, + "lockinPeriodFrequency": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "lockinPeriodFrequencyType": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "allowDividendCalculationForInactiveClients": { + "type": "boolean", + "example": true + }, + "marketPricePeriods": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/PostProductsMarketPricePeriods" + } + }, + "chargesSelected": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/PostProductsChargesSelected" + } + }, + "accountingRule": { + "type": "integer", + "format": "int32", + "example": 1 } } }, @@ -41120,196 +44137,6 @@ } } }, - "PostProductsTypeResponse": { - "type": "object", - "properties": { - "resourceId": { - "type": "integer", - "format": "int32", - "example": 1 - } - } - }, - "PostProductsChargesSelected": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 20 - } - } - }, - "PostProductsMarketPricePeriods": { - "type": "object", - "properties": { - "locale": { - "type": "string", - "example": "en" - }, - "dateFormat": { - "type": "string", - "example": "dd MMMM yyyy" - }, - "fromDate": { - "type": "string", - "example": "04 May 2016" - }, - "shareValue": { - "type": "integer", - "format": "int32", - "example": 2 - } - } - }, - "PostProductsTypeRequest": { - "type": "object", - "properties": { - "name": { - "type": "string", - "example": "Share Product" - }, - "shortName": { - "type": "string", - "example": "SP" - }, - "description": { - "type": "string", - "example": "Description" - }, - "currencyCode": { - "type": "string", - "example": "USD" - }, - "digitsAfterDecimal": { - "type": "integer", - "format": "int32", - "example": 2 - }, - "inMultiplesOf": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "locale": { - "type": "string", - "example": "en" - }, - "totalShares": { - "type": "integer", - "format": "int32", - "example": 1000 - }, - "sharesIssued": { - "type": "integer", - "format": "int32", - "example": 1000 - }, - "unitPrice": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "minimumShares": { - "type": "integer", - "format": "int32", - "example": 10 - }, - "nominalShares": { - "type": "integer", - "format": "int32", - "example": 20 - }, - "maximumShares": { - "type": "integer", - "format": "int32", - "example": 30 - }, - "minimumActivePeriodForDividends": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "minimumactiveperiodFrequencyType": { - "type": "integer", - "format": "int32", - "example": 0 - }, - "lockinPeriodFrequency": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "lockinPeriodFrequencyType": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "allowDividendCalculationForInactiveClients": { - "type": "boolean", - "example": true - }, - "marketPricePeriods": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/PostProductsMarketPricePeriods" - } - }, - "chargesSelected": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/PostProductsChargesSelected" - } - }, - "accountingRule": { - "type": "integer", - "format": "int32", - "example": 1 - } - } - }, - "GetProductsPageItems": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "name": { - "type": "string", - "example": "Share Product" - }, - "shortName": { - "type": "string", - "example": "Share Product Description" - }, - "totalShares": { - "type": "integer", - "format": "int32", - "example": 100 - } - } - }, - "GetProductsTypeResponse": { - "type": "object", - "properties": { - "totalFilteredRecords": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "pageItems": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetProductsPageItems" - } - } - } - }, "PutProductsChanges": { "type": "object", "properties": { @@ -41359,6 +44186,34 @@ } } }, + "PostFixedDepositAccountsAccountIdResponse": { + "type": "object", + "properties": { + "officeId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "clientId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "savingsId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "resourceId": { + "type": "integer", + "format": "int32", + "example": 1 + } + } + }, + "PostFixedDepositAccountsAccountIdRequest": { + "type": "object" + }, "PostFixedDepositAccountsResponse": { "type": "object", "properties": { @@ -41426,69 +44281,6 @@ } } }, - "PostFixedDepositAccountsAccountIdResponse": { - "type": "object", - "properties": { - "officeId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "clientId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "savingsId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "resourceId": { - "type": "integer", - "format": "int32", - "example": 1 - } - } - }, - "PostFixedDepositAccountsAccountIdRequest": { - "type": "object" - }, - "GetFixedDepositAccountsProductOptions": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "name": { - "type": "string", - "example": "Passbook Savings" - } - } - }, - "GetFixedDepositAccountsTemplateResponse": { - "type": "object", - "properties": { - "clientId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "clientName": { - "type": "string", - "example": "small business" - }, - "productOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetFixedDepositAccountsProductOptions" - } - } - } - }, "GetFixedDepositAccountsCurrency": { "type": "object", "properties": { @@ -42148,6 +44940,41 @@ } } }, + "GetFixedDepositAccountsProductOptions": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "name": { + "type": "string", + "example": "Passbook Savings" + } + } + }, + "GetFixedDepositAccountsTemplateResponse": { + "type": "object", + "properties": { + "clientId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "clientName": { + "type": "string", + "example": "small business" + }, + "productOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetFixedDepositAccountsProductOptions" + } + } + } + }, "PutFixedDepositAccountsAccountIdResponse": { "type": "object", "properties": { @@ -43274,149 +46101,6 @@ } } }, - "GetRecurringCurrency": { - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "USD" - }, - "name": { - "type": "string", - "example": "US Dollar" - }, - "decimalPlaces": { - "type": "integer", - "format": "int32", - "example": 4 - }, - "inMultiplesOf": { - "type": "integer", - "format": "int32", - "example": 100 - }, - "displaySymbol": { - "type": "string", - "example": "$" - }, - "nameCode": { - "type": "string", - "example": "currency.USD" - }, - "displayLabel": { - "type": "string", - "example": "US Dollar ($)" - } - } - }, - "GetRecurringDepositAccountsRecurringDepositAccountIdTransactionsTemplateResponse": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "transactionType": { - "$ref": "#/definitions/GetRecurringTransactionType" - }, - "accountId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "accountNo": { - "type": "string", - "example": "000000001" - }, - "date": { - "type": "string", - "format": "date", - "example": "[2014, 6, 25]" - }, - "currency": { - "$ref": "#/definitions/GetRecurringCurrency" - }, - "amount": { - "type": "number", - "example": 100000 - }, - "reversed": { - "type": "boolean", - "example": false - }, - "paymentTypeOptions": { - "type": "array", - "example": "[]", - "items": { - "type": "integer", - "format": "int32" - } - } - } - }, - "GetRecurringTransactionType": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "code": { - "type": "string", - "example": "savingsAccountTransactionType.deposit" - }, - "value": { - "type": "string", - "example": "Deposit" - }, - "deposit": { - "type": "boolean", - "example": true - }, - "withdrawal": { - "type": "boolean", - "example": false - }, - "interestPosting": { - "type": "boolean", - "example": false - }, - "feeDeduction": { - "type": "boolean", - "example": false - }, - "initiateTransfer": { - "type": "boolean", - "example": false - }, - "approveTransfer": { - "type": "boolean", - "example": false - }, - "withdrawTransfer": { - "type": "boolean", - "example": false - }, - "rejectTransfer": { - "type": "boolean", - "example": false - }, - "overdraftInterest": { - "type": "boolean", - "example": false - }, - "writtenoff": { - "type": "boolean", - "example": false - }, - "overdraftFee": { - "type": "boolean", - "example": true - } - } - }, "PostRecurringDepositAccountsRecurringDepositAccountIdTransactionsResponse": { "type": "object", "properties": { @@ -43608,6 +46292,177 @@ } } }, + "GetRecurringCurrency": { + "type": "object", + "properties": { + "code": { + "type": "string", + "example": "USD" + }, + "name": { + "type": "string", + "example": "US Dollar" + }, + "decimalPlaces": { + "type": "integer", + "format": "int32", + "example": 4 + }, + "inMultiplesOf": { + "type": "integer", + "format": "int32", + "example": 100 + }, + "displaySymbol": { + "type": "string", + "example": "$" + }, + "nameCode": { + "type": "string", + "example": "currency.USD" + }, + "displayLabel": { + "type": "string", + "example": "US Dollar ($)" + } + } + }, + "GetRecurringDepositAccountsRecurringDepositAccountIdTransactionsTemplateResponse": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "transactionType": { + "$ref": "#/definitions/GetRecurringTransactionType" + }, + "accountId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "accountNo": { + "type": "string", + "example": "000000001" + }, + "date": { + "type": "string", + "format": "date", + "example": "[2014, 6, 25]" + }, + "currency": { + "$ref": "#/definitions/GetRecurringCurrency" + }, + "amount": { + "type": "number", + "example": 100000 + }, + "reversed": { + "type": "boolean", + "example": false + }, + "paymentTypeOptions": { + "type": "array", + "example": "[]", + "items": { + "type": "integer", + "format": "int32" + } + } + } + }, + "GetRecurringTransactionType": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "code": { + "type": "string", + "example": "savingsAccountTransactionType.deposit" + }, + "value": { + "type": "string", + "example": "Deposit" + }, + "deposit": { + "type": "boolean", + "example": true + }, + "withdrawal": { + "type": "boolean", + "example": false + }, + "interestPosting": { + "type": "boolean", + "example": false + }, + "feeDeduction": { + "type": "boolean", + "example": false + }, + "initiateTransfer": { + "type": "boolean", + "example": false + }, + "approveTransfer": { + "type": "boolean", + "example": false + }, + "withdrawTransfer": { + "type": "boolean", + "example": false + }, + "rejectTransfer": { + "type": "boolean", + "example": false + }, + "overdraftInterest": { + "type": "boolean", + "example": false + }, + "writtenoff": { + "type": "boolean", + "example": false + }, + "overdraftFee": { + "type": "boolean", + "example": true + } + } + }, + "PostRecurringDepositAccountsAccountIdResponse": { + "type": "object", + "properties": { + "officeId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "clientId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "savingsId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "resourceId": { + "type": "integer", + "format": "int32", + "example": 1 + } + } + }, + "PostRecurringDepositAccountsAccountIdRequest": { + "type": "object" + }, "PostRecurringDepositAccountsResponse": { "type": "object", "properties": { @@ -43694,69 +46549,6 @@ } } }, - "PostRecurringDepositAccountsAccountIdResponse": { - "type": "object", - "properties": { - "officeId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "clientId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "savingsId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "resourceId": { - "type": "integer", - "format": "int32", - "example": 1 - } - } - }, - "PostRecurringDepositAccountsAccountIdRequest": { - "type": "object" - }, - "GetRecurringDepositAccountsTemplateResponse": { - "type": "object", - "properties": { - "clientId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "clientName": { - "type": "string", - "example": "small business" - }, - "productOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetRecurringProductOptions" - } - } - } - }, - "GetRecurringProductOptions": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "name": { - "type": "string", - "example": "Passbook Savings" - } - } - }, "GetRecurringDepositAccountsCurrency": { "type": "object", "properties": { @@ -44394,6 +47186,41 @@ } } }, + "GetRecurringDepositAccountsTemplateResponse": { + "type": "object", + "properties": { + "clientId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "clientName": { + "type": "string", + "example": "small business" + }, + "productOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetRecurringProductOptions" + } + } + } + }, + "GetRecurringProductOptions": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "name": { + "type": "string", + "example": "Passbook Savings" + } + } + }, "PutRecurringDepositAccountsAccountIdResponse": { "type": "object", "properties": { @@ -45962,6 +48789,49 @@ } } }, + "PostSavingsAccountsAccountIdChanges": { + "type": "object" + }, + "PostSavingsAccountsAccountIdResponse": { + "type": "object", + "properties": { + "officeId": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "clientId": { + "type": "integer", + "format": "int32", + "example": 8 + }, + "resourceId": { + "type": "integer", + "format": "int32", + "example": 8 + }, + "changes": { + "$ref": "#/definitions/PostSavingsAccountsAccountIdChanges" + } + } + }, + "PostSavingsAccountsAccountIdRequest": { + "type": "object", + "properties": { + "dateFormat": { + "type": "string", + "example": "dd MMMM yyyy" + }, + "locale": { + "type": "string", + "example": "en" + }, + "unassignedDate": { + "type": "string", + "example": "05 September 2014" + } + } + }, "PostSavingsAccountsResponse": { "type": "object", "properties": { @@ -46014,84 +48884,6 @@ } } }, - "PostSavingsAccountsAccountIdChanges": { - "type": "object" - }, - "PostSavingsAccountsAccountIdResponse": { - "type": "object", - "properties": { - "officeId": { - "type": "integer", - "format": "int32", - "example": 2 - }, - "clientId": { - "type": "integer", - "format": "int32", - "example": 8 - }, - "resourceId": { - "type": "integer", - "format": "int32", - "example": 8 - }, - "changes": { - "$ref": "#/definitions/PostSavingsAccountsAccountIdChanges" - } - } - }, - "PostSavingsAccountsAccountIdRequest": { - "type": "object", - "properties": { - "dateFormat": { - "type": "string", - "example": "dd MMMM yyyy" - }, - "locale": { - "type": "string", - "example": "en" - }, - "unassignedDate": { - "type": "string", - "example": "05 September 2014" - } - } - }, - "GetSavingsAccountsTemplateResponse": { - "type": "object", - "properties": { - "clientId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "clientName": { - "type": "string", - "example": "small business" - }, - "productOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetSavingsProductOptions" - } - } - } - }, - "GetSavingsProductOptions": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "name": { - "type": "string", - "example": "Passbook Savings" - } - } - }, "GetSavingsAccountsResponse": { "type": "object", "properties": { @@ -46426,6 +49218,41 @@ } } }, + "GetSavingsAccountsTemplateResponse": { + "type": "object", + "properties": { + "clientId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "clientName": { + "type": "string", + "example": "small business" + }, + "productOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetSavingsProductOptions" + } + } + } + }, + "GetSavingsProductOptions": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "name": { + "type": "string", + "example": "Passbook Savings" + } + } + }, "PutSavingsAccountsAccountIdResponse": { "type": "object", "properties": { @@ -46502,115 +49329,7 @@ } } }, - "GetSavingsAssetLiabilityType": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "code": { - "type": "string", - "example": "accountType.asset" - }, - "value": { - "type": "string", - "example": "ASSET" - } - } - }, - "GetSavingsAssetTagId": { - "type": "object" - }, - "GetSavingsChargeCalculationType": { - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "chargeCalculationType.flat" - }, - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "value": { - "type": "string", - "example": "Flat" - } - } - }, - "GetSavingsChargePaymentMode": { - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "chargepaymentmode.regular" - }, - "id": { - "type": "integer", - "format": "int32", - "example": 0 - }, - "value": { - "type": "string", - "example": "chargepaymentmode.regular" - } - } - }, - "GetSavingsChargeTimeType": { - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "chargeTimeType.specifiedDueDate" - }, - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "value": { - "type": "string", - "example": "Specified due date" - } - } - }, - "GetSavingsProductsAccountingMappingOptions": { - "type": "object", - "properties": { - "liabilityAccountOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetSavingsProductsLiabilityAccountOptions" - } - }, - "assetAccountOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetSavingsProductsAssetAccountOptions" - } - }, - "expenseAccountOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetSavingsProductsExpenseAccountOptions" - } - }, - "incomeAccountOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetSavingsProductsIncomeAccountOptions" - } - } - } - }, - "GetSavingsProductsAssetAccountOptions": { + "GetSavingsProductsAccountingRule": { "type": "object", "properties": { "id": { @@ -46618,199 +49337,13 @@ "format": "int32", "example": 2 }, - "name": { - "type": "string", - "example": "Cash" - }, - "glCode": { - "type": "integer", - "format": "int32", - "example": 100001 - }, - "disabled": { - "type": "boolean", - "example": false - }, - "manualEntriesAllowed": { - "type": "boolean", - "example": true - }, - "type": { - "$ref": "#/definitions/GetSavingsAssetLiabilityType" - }, - "usage": { - "$ref": "#/definitions/GetSavingsProductsLiabilityUsage" - }, - "tagId": { - "$ref": "#/definitions/GetSavingsAssetTagId" - } - } - }, - "GetSavingsProductsChargeAppliesTo": { - "type": "object", - "properties": { "code": { "type": "string", - "example": "chargeAppliesTo.savings" - }, - "id": { - "type": "integer", - "format": "int32", - "example": 2 + "example": "accountingRuleType.cash" }, "value": { "type": "string", - "example": "Savings" - } - } - }, - "GetSavingsProductsChargeOptions": { - "type": "object", - "properties": { - "active": { - "type": "boolean", - "example": true - }, - "amount": { - "type": "integer", - "format": "int64", - "example": 200 - }, - "chargeAppliesTo": { - "$ref": "#/definitions/GetSavingsProductsChargeAppliesTo" - }, - "chargeCalculationType": { - "$ref": "#/definitions/GetSavingsChargeCalculationType" - }, - "chargePaymentMode": { - "$ref": "#/definitions/GetSavingsChargePaymentMode" - }, - "chargeTimeType": { - "$ref": "#/definitions/GetSavingsChargeTimeType" - }, - "currency": { - "$ref": "#/definitions/GetSavingsCurrency" - }, - "id": { - "type": "integer", - "format": "int32", - "example": 4 - }, - "name": { - "type": "string", - "example": "Savings charge 1" - }, - "penalty": { - "type": "boolean", - "example": false - } - } - }, - "GetSavingsProductsExpenseAccountOptions": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 6 - }, - "name": { - "type": "string", - "example": "Write Off Expenses" - }, - "glCode": { - "type": "integer", - "format": "int32", - "example": 60001 - }, - "disabled": { - "type": "boolean", - "example": false - }, - "manualEntriesAllowed": { - "type": "boolean", - "example": true - }, - "type": { - "$ref": "#/definitions/GetSavingsProductsExpenseType" - }, - "usage": { - "$ref": "#/definitions/GetSavingsProductsLiabilityUsage" - }, - "tagId": { - "$ref": "#/definitions/GetSavingsAssetTagId" - } - } - }, - "GetSavingsProductsExpenseType": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 5 - }, - "code": { - "type": "string", - "example": "accountType.expense" - }, - "value": { - "type": "string", - "example": "EXPENSE" - } - } - }, - "GetSavingsProductsIncomeAccountOptions": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 3 - }, - "name": { - "type": "string", - "example": "income from interest" - }, - "glCode": { - "type": "integer", - "format": "int32", - "example": 40001 - }, - "disabled": { - "type": "boolean", - "example": false - }, - "manualEntriesAllowed": { - "type": "boolean", - "example": true - }, - "type": { - "$ref": "#/definitions/GetSavingsProductsIncomeType" - }, - "usage": { - "$ref": "#/definitions/GetSavingsProductsLiabilityUsage" - }, - "tagId": { - "$ref": "#/definitions/GetSavingsAssetTagId" - } - } - }, - "GetSavingsProductsIncomeType": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 4 - }, - "code": { - "type": "string", - "example": "accountType.income" - }, - "value": { - "type": "string", - "example": "INCOME" + "example": "CASH BASED" } } }, @@ -46886,283 +49419,6 @@ } } }, - "GetSavingsProductsLiabilityAccountOptions": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 15 - }, - "name": { - "type": "string", - "example": "Savings Control" - }, - "glCode": { - "type": "integer", - "format": "int32", - "example": 50001 - }, - "disabled": { - "type": "boolean", - "example": false - }, - "manualEntriesAllowed": { - "type": "boolean", - "example": true - }, - "type": { - "$ref": "#/definitions/GetSavingsProductsLiabilityType" - }, - "usage": { - "$ref": "#/definitions/GetSavingsProductsLiabilityUsage" - }, - "nameDecorated": { - "type": "string", - "example": "Savings Control" - }, - "tagId": { - "$ref": "#/definitions/GetSavingsProductsLiabilityTagId" - } - } - }, - "GetSavingsProductsLiabilityTagId": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 0 - } - } - }, - "GetSavingsProductsLiabilityType": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 2 - }, - "code": { - "type": "string", - "example": "accountType.liability" - }, - "value": { - "type": "string", - "example": "LIABILITY" - } - } - }, - "GetSavingsProductsLiabilityUsage": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "code": { - "type": "string", - "example": "accountUsage.detail" - }, - "value": { - "type": "string", - "example": "DETAIL" - } - } - }, - "GetSavingsProductsLockinPeriodFrequencyTypeOptions": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 0 - }, - "code": { - "type": "string", - "example": "savings.lockin.savingsPeriodFrequencyType.days" - }, - "value": { - "type": "string", - "example": "Days" - } - } - }, - "GetSavingsProductsPaymentTypeOptions": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 14 - }, - "name": { - "type": "string", - "example": "Wire Transfer" - }, - "position": { - "type": "integer", - "format": "int32", - "example": 0 - } - } - }, - "GetSavingsProductsTemplateAccountingRule": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "code": { - "type": "string", - "example": "accountingRuleType.none" - }, - "value": { - "type": "string", - "example": "NONE" - } - } - }, - "GetSavingsProductsTemplateResponse": { - "type": "object", - "properties": { - "currency": { - "$ref": "#/definitions/GetSavingsCurrency" - }, - "interestCompoundingPeriodType": { - "$ref": "#/definitions/GetSavingsProductsInterestCompoundingPeriodType" - }, - "interestPostingPeriodType": { - "$ref": "#/definitions/GetSavingsProductsInterestPostingPeriodType" - }, - "interestCalculationType": { - "$ref": "#/definitions/GetSavingsProductsInterestCalculationType" - }, - "interestCalculationDaysInYearType": { - "$ref": "#/definitions/GetSavingsProductsInterestCalculationDaysInYearType" - }, - "accountingRule": { - "$ref": "#/definitions/GetSavingsProductsTemplateAccountingRule" - }, - "currencyOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetSavingsCurrency" - } - }, - "interestCompoundingPeriodTypeOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetSavingsProductsInterestCompoundingPeriodType" - } - }, - "interestPostingPeriodTypeOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetSavingsProductsInterestPostingPeriodType" - } - }, - "interestCalculationTypeOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetSavingsProductsInterestCalculationType" - } - }, - "interestCalculationDaysInYearTypeOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetSavingsProductsInterestCalculationDaysInYearType" - } - }, - "lockinPeriodFrequencyTypeOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetSavingsProductsLockinPeriodFrequencyTypeOptions" - } - }, - "withdrawalFeeTypeOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetSavingsProductsWithdrawalFeeTypeOptions" - } - }, - "paymentTypeOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetSavingsProductsPaymentTypeOptions" - } - }, - "accountingRuleOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetSavingsProductsTemplateAccountingRule" - } - }, - "accountingMappingOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetSavingsProductsAccountingMappingOptions" - } - }, - "chargeOptions": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetSavingsProductsChargeOptions" - } - } - } - }, - "GetSavingsProductsWithdrawalFeeTypeOptions": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "code": { - "type": "string", - "example": "savingsWithdrawalFeesType.flat" - }, - "value": { - "type": "string", - "example": "Flat" - } - } - }, - "GetSavingsProductsAccountingRule": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 2 - }, - "code": { - "type": "string", - "example": "accountingRuleType.cash" - }, - "value": { - "type": "string", - "example": "CASH BASED" - } - } - }, "GetSavingsProductsResponse": { "type": "object", "properties": { @@ -47557,6 +49813,577 @@ } } }, + "GetSavingsAssetLiabilityType": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "code": { + "type": "string", + "example": "accountType.asset" + }, + "value": { + "type": "string", + "example": "ASSET" + } + } + }, + "GetSavingsAssetTagId": { + "type": "object" + }, + "GetSavingsChargeCalculationType": { + "type": "object", + "properties": { + "code": { + "type": "string", + "example": "chargeCalculationType.flat" + }, + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "value": { + "type": "string", + "example": "Flat" + } + } + }, + "GetSavingsChargePaymentMode": { + "type": "object", + "properties": { + "code": { + "type": "string", + "example": "chargepaymentmode.regular" + }, + "id": { + "type": "integer", + "format": "int32", + "example": 0 + }, + "value": { + "type": "string", + "example": "chargepaymentmode.regular" + } + } + }, + "GetSavingsChargeTimeType": { + "type": "object", + "properties": { + "code": { + "type": "string", + "example": "chargeTimeType.specifiedDueDate" + }, + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "value": { + "type": "string", + "example": "Specified due date" + } + } + }, + "GetSavingsProductsAccountingMappingOptions": { + "type": "object", + "properties": { + "liabilityAccountOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetSavingsProductsLiabilityAccountOptions" + } + }, + "assetAccountOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetSavingsProductsAssetAccountOptions" + } + }, + "expenseAccountOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetSavingsProductsExpenseAccountOptions" + } + }, + "incomeAccountOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetSavingsProductsIncomeAccountOptions" + } + } + } + }, + "GetSavingsProductsAssetAccountOptions": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "name": { + "type": "string", + "example": "Cash" + }, + "glCode": { + "type": "integer", + "format": "int32", + "example": 100001 + }, + "disabled": { + "type": "boolean", + "example": false + }, + "manualEntriesAllowed": { + "type": "boolean", + "example": true + }, + "type": { + "$ref": "#/definitions/GetSavingsAssetLiabilityType" + }, + "usage": { + "$ref": "#/definitions/GetSavingsProductsLiabilityUsage" + }, + "tagId": { + "$ref": "#/definitions/GetSavingsAssetTagId" + } + } + }, + "GetSavingsProductsChargeAppliesTo": { + "type": "object", + "properties": { + "code": { + "type": "string", + "example": "chargeAppliesTo.savings" + }, + "id": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "value": { + "type": "string", + "example": "Savings" + } + } + }, + "GetSavingsProductsChargeOptions": { + "type": "object", + "properties": { + "active": { + "type": "boolean", + "example": true + }, + "amount": { + "type": "integer", + "format": "int64", + "example": 200 + }, + "chargeAppliesTo": { + "$ref": "#/definitions/GetSavingsProductsChargeAppliesTo" + }, + "chargeCalculationType": { + "$ref": "#/definitions/GetSavingsChargeCalculationType" + }, + "chargePaymentMode": { + "$ref": "#/definitions/GetSavingsChargePaymentMode" + }, + "chargeTimeType": { + "$ref": "#/definitions/GetSavingsChargeTimeType" + }, + "currency": { + "$ref": "#/definitions/GetSavingsCurrency" + }, + "id": { + "type": "integer", + "format": "int32", + "example": 4 + }, + "name": { + "type": "string", + "example": "Savings charge 1" + }, + "penalty": { + "type": "boolean", + "example": false + } + } + }, + "GetSavingsProductsExpenseAccountOptions": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 6 + }, + "name": { + "type": "string", + "example": "Write Off Expenses" + }, + "glCode": { + "type": "integer", + "format": "int32", + "example": 60001 + }, + "disabled": { + "type": "boolean", + "example": false + }, + "manualEntriesAllowed": { + "type": "boolean", + "example": true + }, + "type": { + "$ref": "#/definitions/GetSavingsProductsExpenseType" + }, + "usage": { + "$ref": "#/definitions/GetSavingsProductsLiabilityUsage" + }, + "tagId": { + "$ref": "#/definitions/GetSavingsAssetTagId" + } + } + }, + "GetSavingsProductsExpenseType": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 5 + }, + "code": { + "type": "string", + "example": "accountType.expense" + }, + "value": { + "type": "string", + "example": "EXPENSE" + } + } + }, + "GetSavingsProductsIncomeAccountOptions": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 3 + }, + "name": { + "type": "string", + "example": "income from interest" + }, + "glCode": { + "type": "integer", + "format": "int32", + "example": 40001 + }, + "disabled": { + "type": "boolean", + "example": false + }, + "manualEntriesAllowed": { + "type": "boolean", + "example": true + }, + "type": { + "$ref": "#/definitions/GetSavingsProductsIncomeType" + }, + "usage": { + "$ref": "#/definitions/GetSavingsProductsLiabilityUsage" + }, + "tagId": { + "$ref": "#/definitions/GetSavingsAssetTagId" + } + } + }, + "GetSavingsProductsIncomeType": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 4 + }, + "code": { + "type": "string", + "example": "accountType.income" + }, + "value": { + "type": "string", + "example": "INCOME" + } + } + }, + "GetSavingsProductsLiabilityAccountOptions": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 15 + }, + "name": { + "type": "string", + "example": "Savings Control" + }, + "glCode": { + "type": "integer", + "format": "int32", + "example": 50001 + }, + "disabled": { + "type": "boolean", + "example": false + }, + "manualEntriesAllowed": { + "type": "boolean", + "example": true + }, + "type": { + "$ref": "#/definitions/GetSavingsProductsLiabilityType" + }, + "usage": { + "$ref": "#/definitions/GetSavingsProductsLiabilityUsage" + }, + "nameDecorated": { + "type": "string", + "example": "Savings Control" + }, + "tagId": { + "$ref": "#/definitions/GetSavingsProductsLiabilityTagId" + } + } + }, + "GetSavingsProductsLiabilityTagId": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 0 + } + } + }, + "GetSavingsProductsLiabilityType": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "code": { + "type": "string", + "example": "accountType.liability" + }, + "value": { + "type": "string", + "example": "LIABILITY" + } + } + }, + "GetSavingsProductsLiabilityUsage": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "code": { + "type": "string", + "example": "accountUsage.detail" + }, + "value": { + "type": "string", + "example": "DETAIL" + } + } + }, + "GetSavingsProductsLockinPeriodFrequencyTypeOptions": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 0 + }, + "code": { + "type": "string", + "example": "savings.lockin.savingsPeriodFrequencyType.days" + }, + "value": { + "type": "string", + "example": "Days" + } + } + }, + "GetSavingsProductsPaymentTypeOptions": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 14 + }, + "name": { + "type": "string", + "example": "Wire Transfer" + }, + "position": { + "type": "integer", + "format": "int32", + "example": 0 + } + } + }, + "GetSavingsProductsTemplateAccountingRule": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "code": { + "type": "string", + "example": "accountingRuleType.none" + }, + "value": { + "type": "string", + "example": "NONE" + } + } + }, + "GetSavingsProductsTemplateResponse": { + "type": "object", + "properties": { + "currency": { + "$ref": "#/definitions/GetSavingsCurrency" + }, + "interestCompoundingPeriodType": { + "$ref": "#/definitions/GetSavingsProductsInterestCompoundingPeriodType" + }, + "interestPostingPeriodType": { + "$ref": "#/definitions/GetSavingsProductsInterestPostingPeriodType" + }, + "interestCalculationType": { + "$ref": "#/definitions/GetSavingsProductsInterestCalculationType" + }, + "interestCalculationDaysInYearType": { + "$ref": "#/definitions/GetSavingsProductsInterestCalculationDaysInYearType" + }, + "accountingRule": { + "$ref": "#/definitions/GetSavingsProductsTemplateAccountingRule" + }, + "currencyOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetSavingsCurrency" + } + }, + "interestCompoundingPeriodTypeOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetSavingsProductsInterestCompoundingPeriodType" + } + }, + "interestPostingPeriodTypeOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetSavingsProductsInterestPostingPeriodType" + } + }, + "interestCalculationTypeOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetSavingsProductsInterestCalculationType" + } + }, + "interestCalculationDaysInYearTypeOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetSavingsProductsInterestCalculationDaysInYearType" + } + }, + "lockinPeriodFrequencyTypeOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetSavingsProductsLockinPeriodFrequencyTypeOptions" + } + }, + "withdrawalFeeTypeOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetSavingsProductsWithdrawalFeeTypeOptions" + } + }, + "paymentTypeOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetSavingsProductsPaymentTypeOptions" + } + }, + "accountingRuleOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetSavingsProductsTemplateAccountingRule" + } + }, + "accountingMappingOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetSavingsProductsAccountingMappingOptions" + } + }, + "chargeOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetSavingsProductsChargeOptions" + } + } + } + }, + "GetSavingsProductsWithdrawalFeeTypeOptions": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "code": { + "type": "string", + "example": "savingsWithdrawalFeesType.flat" + }, + "value": { + "type": "string", + "example": "Flat" + } + } + }, "PutSavingsProductsProductIdResponse": { "type": "object", "properties": { @@ -47690,7 +50517,127 @@ } } }, - "GetSelfBeneficiariesAccountOptions": { + "GetSearchResponse": { + "type": "object", + "properties": { + "entityId": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "entityAccountNo": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "entityExternalId": { + "type": "string", + "example": "ID_JKZGEXF" + }, + "entityName": { + "type": "string", + "example": "Group_Name_HVCU5" + }, + "entityType": { + "type": "string", + "example": "GROUP" + }, + "parentId": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "parentName": { + "type": "string", + "example": "Head Office" + }, + "entityStatus": { + "$ref": "#/definitions/EnumOptionData" + } + } + }, + "PostAdhocQuerySearchResponse": { + "type": "object", + "properties": { + "officeName": { + "type": "string", + "example": "HFC" + }, + "loanProductName": { + "type": "string", + "example": "01 BC3M" + }, + "loanOutStanding": { + "type": "integer", + "format": "int64", + "example": " 5692.41" + }, + "percentage": { + "type": "integer", + "format": "int64", + "example": "76.4" + } + } + }, + "PostAdhocQuerySearchRequest": { + "type": "object", + "properties": { + "locale": { + "type": "string", + "example": "en" + }, + "dateFormat": { + "type": "string", + "example": "dd MMMM yyyy" + }, + "loanDateOption": { + "type": "string", + "example": "approvalDate" + }, + "loanFromDate": { + "type": "string", + "format": "date", + "example": "2013-01-01" + }, + "loanToDate": { + "type": "string", + "format": "date", + "example": "2014-01-27" + }, + "includeOutStandingAmountPercentage": { + "type": "boolean", + "example": true + }, + "outStandingAmountPercentageCondition": { + "type": "string", + "example": "<=" + }, + "outStandingAmountPercentage": { + "type": "integer", + "format": "int64", + "example": 80 + }, + "includeOutstandingAmount": { + "type": "boolean", + "example": true + }, + "outstandingAmountCondition": { + "type": "string", + "example": "between" + }, + "minOutstandingAmount": { + "type": "integer", + "format": "int64", + "example": 100 + }, + "maxOutstandingAmount": { + "type": "integer", + "format": "int64", + "example": 10000 + } + } + }, + "GetAccountOptions": { "type": "object", "properties": { "id": { @@ -47708,15 +50655,98 @@ } } }, - "GetSelfBeneficiariesTPTTemplateResponse": { + "GetAccountTransferTemplateResponse": { "type": "object", "properties": { "accountTypeOptions": { "type": "array", "uniqueItems": true, "items": { - "$ref": "#/definitions/GetSelfBeneficiariesAccountOptions" + "$ref": "#/definitions/GetAccountOptions" } + }, + "fromAccountTypeOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetFromAccountOptions" + } + }, + "toAccountTypeOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetFromAccountOptions" + } + } + } + }, + "GetFromAccountOptions": { + "type": "object", + "properties": { + "accountId": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "accountNo": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "accountType": { + "$ref": "#/definitions/GetAccountOptions" + }, + "clientId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "clientName": { + "type": "string", + "example": "ABC" + }, + "officeId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "officeName": { + "type": "string", + "example": "HEAD OFFICE" + } + } + }, + "PostNewTransferResponse": { + "type": "object", + "properties": { + "savingsId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "resourceId": { + "type": "integer", + "format": "int32", + "example": 1 + } + } + }, + "GetSelfBeneficiariesAccountOptions": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "code": { + "type": "string", + "example": "accountType.savings" + }, + "value": { + "type": "string", + "example": "Savings Account" } } }, @@ -47755,6 +50785,18 @@ } } }, + "GetSelfBeneficiariesTPTTemplateResponse": { + "type": "object", + "properties": { + "accountTypeOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetSelfBeneficiariesAccountOptions" + } + } + } + }, "PostSelfBeneficiariesTPTResponse": { "type": "object", "properties": { @@ -48089,6 +51131,129 @@ } } }, + "GetSelfClientsClientIdTransactionsPageItems": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 226 + }, + "officeId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "officeName": { + "type": "string", + "example": "Head Office" + }, + "type": { + "$ref": "#/definitions/GetSelfClientsClientIdTransactionsType" + }, + "date": { + "type": "string", + "format": "date", + "example": "[2015, 9, 2]" + }, + "currency": { + "$ref": "#/definitions/GetSelfClientsSavingsAccountsCurrency" + }, + "amount": { + "type": "number", + "format": "double", + "example": 22 + }, + "submittedOnDate": { + "type": "string", + "format": "date", + "example": "[2015, 9, 2]" + }, + "reversed": { + "type": "boolean", + "example": false + } + } + }, + "GetSelfClientsClientIdTransactionsResponse": { + "type": "object", + "properties": { + "totalFilteredRecords": { + "type": "integer", + "format": "int32", + "example": 20 + }, + "pageItems": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetSelfClientsClientIdTransactionsPageItems" + } + } + } + }, + "GetSelfClientsClientIdTransactionsType": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "code": { + "type": "string", + "example": "clientTransactionType.payCharge" + }, + "value": { + "type": "string", + "example": "PAY_CHARGE" + } + } + }, + "GetSelfClientsClientIdTransactionsTransactionIdResponse": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "officeId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "officeName": { + "type": "string", + "example": "Head Office" + }, + "type": { + "$ref": "#/definitions/GetSelfClientsClientIdTransactionsType" + }, + "date": { + "type": "string", + "format": "date", + "example": "[2015, 8, 17]" + }, + "currency": { + "$ref": "#/definitions/GetSelfClientsSavingsAccountsCurrency" + }, + "amount": { + "type": "number", + "format": "float", + "example": 60 + }, + "submittedOnDate": { + "type": "string", + "format": "date", + "example": "[2015, 8, 19]" + }, + "reversed": { + "type": "boolean", + "example": true + } + } + }, "GetSelfClientsClientIdAccountsResponse": { "type": "object", "properties": { @@ -48288,129 +51453,6 @@ } } }, - "GetSelfClientsClientIdTransactionsPageItems": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 226 - }, - "officeId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "officeName": { - "type": "string", - "example": "Head Office" - }, - "type": { - "$ref": "#/definitions/GetSelfClientsClientIdTransactionsType" - }, - "date": { - "type": "string", - "format": "date", - "example": "[2015, 9, 2]" - }, - "currency": { - "$ref": "#/definitions/GetSelfClientsSavingsAccountsCurrency" - }, - "amount": { - "type": "number", - "format": "double", - "example": 22 - }, - "submittedOnDate": { - "type": "string", - "format": "date", - "example": "[2015, 9, 2]" - }, - "reversed": { - "type": "boolean", - "example": false - } - } - }, - "GetSelfClientsClientIdTransactionsResponse": { - "type": "object", - "properties": { - "totalFilteredRecords": { - "type": "integer", - "format": "int32", - "example": 20 - }, - "pageItems": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GetSelfClientsClientIdTransactionsPageItems" - } - } - } - }, - "GetSelfClientsClientIdTransactionsType": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "code": { - "type": "string", - "example": "clientTransactionType.payCharge" - }, - "value": { - "type": "string", - "example": "PAY_CHARGE" - } - } - }, - "GetSelfClientsClientIdTransactionsTransactionIdResponse": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "officeId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "officeName": { - "type": "string", - "example": "Head Office" - }, - "type": { - "$ref": "#/definitions/GetSelfClientsClientIdTransactionsType" - }, - "date": { - "type": "string", - "format": "date", - "example": "[2015, 8, 17]" - }, - "currency": { - "$ref": "#/definitions/GetSelfClientsSavingsAccountsCurrency" - }, - "amount": { - "type": "number", - "format": "float", - "example": 60 - }, - "submittedOnDate": { - "type": "string", - "format": "date", - "example": "[2015, 8, 19]" - }, - "reversed": { - "type": "boolean", - "example": true - } - } - }, "GetSelfClientsPageItems": { "type": "object", "properties": { @@ -48710,6 +51752,242 @@ } } }, + "GetSelfLoansChargeCalculationType": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "code": { + "type": "string", + "example": "chargeCalculationType.flat" + }, + "value": { + "type": "string", + "example": "Flat" + } + } + }, + "GetSelfLoansChargeTimeType": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "code": { + "type": "string", + "example": "chargeTimeType.disbursement" + }, + "value": { + "type": "string", + "example": "Disbursement" + } + } + }, + "GetSelfLoansLoanIdChargesResponse": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "chargeId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "name": { + "type": "string", + "example": "Loan Processing fee" + }, + "chargeTimeType": { + "$ref": "#/definitions/GetSelfLoansChargeTimeType" + }, + "chargeCalculationType": { + "$ref": "#/definitions/GetSelfLoansChargeCalculationType" + }, + "percentage": { + "type": "number", + "format": "double", + "example": 0 + }, + "amountPercentageAppliedTo": { + "type": "number", + "format": "double", + "example": 0 + }, + "currency": { + "$ref": "#/definitions/GetLoanCurrency" + }, + "amount": { + "type": "number", + "format": "float", + "example": 100 + }, + "amountPaid": { + "type": "number", + "format": "float", + "example": 0 + }, + "amountWaived": { + "type": "number", + "format": "float", + "example": 0 + }, + "amountWrittenOff": { + "type": "number", + "format": "float", + "example": 0 + }, + "amountOutstanding": { + "type": "number", + "format": "float", + "example": 100 + }, + "amountOrPercentage": { + "type": "number", + "format": "float", + "example": 100 + }, + "penalty": { + "type": "boolean", + "example": false + } + } + }, + "GetSelfLoansLoanIdResponse": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "accountNo": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "status": { + "$ref": "#/definitions/GetLoansLoanIdStatus" + }, + "clientId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "clientName": { + "type": "string", + "example": "Kampala first Client" + }, + "clientOfficeId": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "loanProductId": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "loanProductName": { + "type": "string", + "example": "Kampala Product (with cash accounting)" + }, + "loanProductDescription": { + "type": "string", + "example": "Typical Kampala loan product with cash accounting enabled for testing." + }, + "loanPurposeId": { + "type": "integer", + "format": "int32", + "example": 22 + }, + "loanPurposeName": { + "type": "string", + "example": "option.HousingImprovement" + }, + "loanOfficerId": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "loanOfficerName": { + "type": "string", + "example": "LoanOfficer, Kampala" + }, + "loanType": { + "$ref": "#/definitions/GetLoansLoanIdLoanType" + }, + "currency": { + "$ref": "#/definitions/GetLoansLoanIdCurrency" + }, + "principal": { + "type": "integer", + "format": "int64", + "example": 1000000 + }, + "termFrequency": { + "type": "integer", + "format": "int32", + "example": 12 + }, + "termPeriodFrequencyType": { + "$ref": "#/definitions/GetLoansLoanIdTermPeriodFrequencyType" + }, + "numberOfRepayments": { + "type": "integer", + "format": "int32", + "example": 12 + }, + "repaymentEvery": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "repaymentFrequencyType": { + "$ref": "#/definitions/GetLoansLoanIdRepaymentFrequencyType" + }, + "interestRatePerPeriod": { + "type": "integer", + "format": "int32", + "example": 24 + }, + "interestRateFrequencyType": { + "$ref": "#/definitions/GetLoansLoanIdInterestRateFrequencyType" + }, + "annualInterestRate": { + "type": "integer", + "format": "int32", + "example": 24 + }, + "amortizationType": { + "$ref": "#/definitions/GetLoansLoanIdAmortizationType" + }, + "interestType": { + "$ref": "#/definitions/GetLoansLoanIdInterestType" + }, + "interestCalculationPeriodType": { + "$ref": "#/definitions/GetLoansLoanIdInterestCalculationPeriodType" + }, + "transactionProcessingStrategyId": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "timeline": { + "$ref": "#/definitions/GetLoansLoanIdTimeline" + }, + "summary": { + "$ref": "#/definitions/GetLoansLoanIdSummary" + } + } + }, "PostSelfLoansResponse": { "type": "object", "properties": { @@ -49144,242 +52422,6 @@ } } }, - "GetSelfLoansLoanIdResponse": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "accountNo": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "status": { - "$ref": "#/definitions/GetLoansLoanIdStatus" - }, - "clientId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "clientName": { - "type": "string", - "example": "Kampala first Client" - }, - "clientOfficeId": { - "type": "integer", - "format": "int32", - "example": 2 - }, - "loanProductId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "loanProductName": { - "type": "string", - "example": "Kampala Product (with cash accounting)" - }, - "loanProductDescription": { - "type": "string", - "example": "Typical Kampala loan product with cash accounting enabled for testing." - }, - "loanPurposeId": { - "type": "integer", - "format": "int32", - "example": 22 - }, - "loanPurposeName": { - "type": "string", - "example": "option.HousingImprovement" - }, - "loanOfficerId": { - "type": "integer", - "format": "int32", - "example": 2 - }, - "loanOfficerName": { - "type": "string", - "example": "LoanOfficer, Kampala" - }, - "loanType": { - "$ref": "#/definitions/GetLoansLoanIdLoanType" - }, - "currency": { - "$ref": "#/definitions/GetLoansLoanIdCurrency" - }, - "principal": { - "type": "integer", - "format": "int64", - "example": 1000000 - }, - "termFrequency": { - "type": "integer", - "format": "int32", - "example": 12 - }, - "termPeriodFrequencyType": { - "$ref": "#/definitions/GetLoansLoanIdTermPeriodFrequencyType" - }, - "numberOfRepayments": { - "type": "integer", - "format": "int32", - "example": 12 - }, - "repaymentEvery": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "repaymentFrequencyType": { - "$ref": "#/definitions/GetLoansLoanIdRepaymentFrequencyType" - }, - "interestRatePerPeriod": { - "type": "integer", - "format": "int32", - "example": 24 - }, - "interestRateFrequencyType": { - "$ref": "#/definitions/GetLoansLoanIdInterestRateFrequencyType" - }, - "annualInterestRate": { - "type": "integer", - "format": "int32", - "example": 24 - }, - "amortizationType": { - "$ref": "#/definitions/GetLoansLoanIdAmortizationType" - }, - "interestType": { - "$ref": "#/definitions/GetLoansLoanIdInterestType" - }, - "interestCalculationPeriodType": { - "$ref": "#/definitions/GetLoansLoanIdInterestCalculationPeriodType" - }, - "transactionProcessingStrategyId": { - "type": "integer", - "format": "int32", - "example": 2 - }, - "timeline": { - "$ref": "#/definitions/GetLoansLoanIdTimeline" - }, - "summary": { - "$ref": "#/definitions/GetLoansLoanIdSummary" - } - } - }, - "GetSelfLoansChargeCalculationType": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "code": { - "type": "string", - "example": "chargeCalculationType.flat" - }, - "value": { - "type": "string", - "example": "Flat" - } - } - }, - "GetSelfLoansChargeTimeType": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "code": { - "type": "string", - "example": "chargeTimeType.disbursement" - }, - "value": { - "type": "string", - "example": "Disbursement" - } - } - }, - "GetSelfLoansLoanIdChargesResponse": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "chargeId": { - "type": "integer", - "format": "int32", - "example": 1 - }, - "name": { - "type": "string", - "example": "Loan Processing fee" - }, - "chargeTimeType": { - "$ref": "#/definitions/GetSelfLoansChargeTimeType" - }, - "chargeCalculationType": { - "$ref": "#/definitions/GetSelfLoansChargeCalculationType" - }, - "percentage": { - "type": "number", - "format": "double", - "example": 0 - }, - "amountPercentageAppliedTo": { - "type": "number", - "format": "double", - "example": 0 - }, - "currency": { - "$ref": "#/definitions/GetLoanCurrency" - }, - "amount": { - "type": "number", - "format": "float", - "example": 100 - }, - "amountPaid": { - "type": "number", - "format": "float", - "example": 0 - }, - "amountWaived": { - "type": "number", - "format": "float", - "example": 0 - }, - "amountWrittenOff": { - "type": "number", - "format": "float", - "example": 0 - }, - "amountOutstanding": { - "type": "number", - "format": "float", - "example": 100 - }, - "amountOrPercentage": { - "type": "number", - "format": "float", - "example": 100 - }, - "penalty": { - "type": "boolean", - "example": false - } - } - }, "GetSelfLoansProductOptions": { "type": "object", "properties": { @@ -49433,6 +52475,158 @@ } } }, + "PostLinkDelinkAccountsToFromPocketResponse": { + "type": "object", + "properties": { + "resourceId": { + "type": "integer", + "format": "int32", + "example": 6 + } + } + }, + "GetAccountsLinkedToPocketResponse": { + "type": "object", + "properties": { + "loanAccounts": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetPocketLoanAccounts" + } + }, + "savingAccounts": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetPocketSavingAccounts" + } + }, + "shareAccounts": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetPocketShareAccounts" + } + } + } + }, + "GetPocketLoanAccounts": { + "type": "object", + "properties": { + "pocketId": { + "type": "integer", + "format": "int32", + "example": 6 + }, + "accountId": { + "type": "integer", + "format": "int32", + "example": 11 + }, + "accountType": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "accountNumber": { + "type": "integer", + "format": "int32", + "example": 11 + }, + "id": { + "type": "integer", + "format": "int32", + "example": 10 + } + } + }, + "GetPocketSavingAccounts": { + "type": "object", + "properties": { + "pocketId": { + "type": "integer", + "format": "int32", + "example": 6 + }, + "accountId": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "accountType": { + "type": "integer", + "format": "int32", + "example": 3 + }, + "accountNumber": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "id": { + "type": "integer", + "format": "int32", + "example": 11 + } + } + }, + "GetPocketShareAccounts": { + "type": "object" + }, + "GetPocketData": { + "type": "object", + "properties": { + "row": { + "type": "string", + "example": "[\"Head Office\", \"000000001\", \"John Doe\" \"2017-03-04\", \"786YYH7\"" + } + } + }, + "GetRunReportColumnHeaders": { + "type": "object", + "properties": { + "columnName": { + "type": "string", + "example": "Office/Branch" + }, + "columnType": { + "type": "string", + "example": "VARCHAR" + }, + "isColumnNullable": { + "type": "boolean", + "example": false + }, + "isColumnPrimaryKey": { + "type": "boolean", + "example": false + }, + "columnValues": { + "type": "string", + "example": "[]" + } + } + }, + "GetRunReportResponse": { + "type": "object", + "properties": { + "columnHeaders": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetRunReportColumnHeaders" + } + }, + "data": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetPocketData" + } + } + } + }, "GetSelfSavingsAccountsAccountIdTransactionsTransactionIdResponse": { "type": "object", "properties": { @@ -50230,6 +53424,652 @@ } } }, + "PostNewShareApplicationResponse": { + "type": "object", + "properties": { + "resourceId": { + "type": "integer", + "format": "int32", + "example": 12 + } + } + }, + "GetAccountingMappingOptions": { + "type": "object" + }, + "GetClientIdProductIdAccountingMappings": { + "type": "object", + "properties": { + "shareReferenceId": { + "$ref": "#/definitions/GetShareAccountsShareReferenceId" + }, + "incomeFromFeeAccountId": { + "$ref": "#/definitions/GetShareAccountsIncomeFromFeeAccountId" + }, + "ShareEquityId": { + "$ref": "#/definitions/GetShareAccountsShareEquityId" + }, + "shareSuspenseId": { + "$ref": "#/definitions/GetShareAccountsShareSuspenseId" + } + } + }, + "GetClientIdProductIdChargeOptions": { + "type": "object", + "properties": { + "chargeOptions": { + "$ref": "#/definitions/GetShareAccountsChargeOptions" + } + } + }, + "GetClientIdProductIdLockinPeriodFrequencyTypeOptions": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 0 + }, + "code": { + "type": "string", + "example": "shares.lockin.sharePeriodFrequencyType.days" + }, + "value": { + "type": "integer", + "format": "int32", + "example": "Days" + } + } + }, + "GetClientIdProductIdMinimumActivePeriodFrequencyTypeOptions": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 0 + }, + "code": { + "type": "string", + "example": "shares.lockin.sharePeriodFrequencyType.days" + }, + "value": { + "type": "integer", + "format": "int32", + "example": "Days" + } + } + }, + "GetClientIdProductIdProductOptions": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 3 + }, + "name": { + "type": "string", + "example": "SP" + }, + "shortName": { + "type": "string", + "example": "SP" + }, + "description": { + "type": "string", + "example": "SP1" + }, + "currency": { + "$ref": "#/definitions/GetShareAccountsCurrency" + }, + "totalShares": { + "type": "integer", + "format": "int32", + "example": 1000 + }, + "totalSharesIssued": { + "type": "integer", + "format": "int32", + "example": 900 + }, + "unitPrice": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "shareCapital": { + "type": "integer", + "format": "int32", + "example": 900 + }, + "minimumShares": { + "type": "integer", + "format": "int32", + "example": 8 + }, + "norminalShares": { + "type": "integer", + "format": "int32", + "example": 500 + }, + "maximumShares": { + "type": "integer", + "format": "int32", + "example": 500 + }, + "marketPrice": { + "type": "string", + "example": "[]" + }, + "charges": { + "type": "string", + "example": "[]" + }, + "allowDividendCalculationForInactiveClients": { + "type": "boolean", + "example": false + }, + "lockinPeriod": { + "type": "integer", + "format": "int32", + "example": 50 + }, + "lockinPeriodEnum": { + "$ref": "#/definitions/GetShareAccountsClientIdProductIdLockPeriodTypeEnum" + }, + "minimumActivePeriod": { + "type": "integer", + "format": "int32", + "example": 10 + }, + "minimumActivePeriodForDividendsTypeEnum": { + "$ref": "#/definitions/GetShareAccountsClientIdProductIdMinimumActivePeriodForDividendsTypeEnum" + }, + "accountingRule": { + "$ref": "#/definitions/GetShareAccountsClientIdProductIdAccountingRule" + }, + "accountingMappings": { + "$ref": "#/definitions/GetClientIdProductIdAccountingMappings" + }, + "currencyOptions": { + "$ref": "#/definitions/GetShareAccountsCurrency" + }, + "chargeOptions": { + "$ref": "#/definitions/GetShareAccountsChargeOptions" + }, + "minimumActivePeriodFrequencyTypeOptions": { + "$ref": "#/definitions/GetClientIdProductIdMinimumActivePeriodFrequencyTypeOptions" + }, + "lockinPeriodFrequencyTypeOptions": { + "$ref": "#/definitions/GetClientIdProductIdLockinPeriodFrequencyTypeOptions" + }, + "accountingMappingOptions": { + "$ref": "#/definitions/GetAccountingMappingOptions" + } + } + }, + "GetShareAccountsChargeAppliesTo": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 4 + }, + "code": { + "type": "string", + "example": "chargeAppliesTo.shares" + }, + "value": { + "type": "string", + "example": "Shares" + } + } + }, + "GetShareAccountsChargeCalculationType": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 1 + }, + "code": { + "type": "string", + "example": "chargeCalculationType.flat" + }, + "value": { + "type": "string", + "example": "Flat" + } + } + }, + "GetShareAccountsChargeOptions": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "name": { + "type": "string", + "example": "Activation fee" + }, + "active": { + "type": "boolean", + "example": true + }, + "penalty": { + "type": "boolean", + "example": false + }, + "currency": { + "$ref": "#/definitions/GetShareAccountsCurrency" + }, + "amount": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "chargeTimeType": { + "$ref": "#/definitions/GetShareAccountsChargeTimeType" + }, + "chargeAppliesTo": { + "$ref": "#/definitions/GetShareAccountsChargeAppliesTo" + }, + "calculationType": { + "$ref": "#/definitions/GetShareAccountsChargeCalculationType" + }, + "paymentMode": { + "$ref": "#/definitions/GetShareAccountsChargePaymentMode" + } + } + }, + "GetShareAccountsChargePaymentMode": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 0 + }, + "code": { + "type": "string", + "example": "chargepaymentmode.regular" + }, + "value": { + "type": "string", + "example": "Regular" + } + } + }, + "GetShareAccountsChargeTimeType": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 14 + }, + "code": { + "type": "string", + "example": "chargeTimeType.sharespurchase" + }, + "value": { + "type": "string", + "example": "Share purchase" + } + } + }, + "GetShareAccountsClientIdProductIdAccountingRule": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "code": { + "type": "string", + "example": "accountingRuleType.cash" + }, + "value": { + "type": "string", + "example": "CASH BASED" + } + } + }, + "GetShareAccountsClientIdProductIdLockPeriodTypeEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 0 + }, + "code": { + "type": "string", + "example": "shares.lockin.sharePeriodFrequencyType.days" + }, + "value": { + "type": "string", + "example": "days" + } + } + }, + "GetShareAccountsClientIdProductIdMinimumActivePeriodForDividendsTypeEnum": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 0 + }, + "code": { + "type": "string", + "example": "shares.minimumactive.sharePeriodFrequencyType.days" + }, + "value": { + "type": "string", + "example": "days" + } + } + }, + "GetShareAccountsClientIdProductIdResponse": { + "type": "object", + "properties": { + "productOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetClientIdProductIdProductOptions" + } + }, + "chargeOptions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/GetClientIdProductIdChargeOptions" + } + } + } + }, + "GetShareAccountsCurrency": { + "type": "object", + "properties": { + "code": { + "type": "string", + "example": "USD" + }, + "name": { + "type": "string", + "example": "US Dollar" + }, + "decimalPlaces": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "displaySymbol": { + "type": "string", + "example": "$" + }, + "nameCode": { + "type": "string", + "example": "currency.USD" + }, + "displayLabel": { + "type": "string", + "example": "US Dollar ($)" + } + } + }, + "GetShareAccountsIncomeFromFeeAccountId": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 40 + }, + "name": { + "type": "string", + "example": "Other Operating Income" + }, + "glCode": { + "type": "integer", + "format": "int32", + "example": 30105 + } + } + }, + "GetShareAccountsShareEquityId": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 56 + }, + "name": { + "type": "string", + "example": "Share Equity" + }, + "glCode": { + "type": "integer", + "format": "int32", + "example": 98 + } + } + }, + "GetShareAccountsShareReferenceId": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 32 + }, + "name": { + "type": "string", + "example": "Cash in Hand" + }, + "glCode": { + "type": "integer", + "format": "int32", + "example": 20301 + } + } + }, + "GetShareAccountsShareSuspenseId": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "example": 2 + }, + "name": { + "type": "string", + "example": "Overpayment Liability" + }, + "glCode": { + "type": "integer", + "format": "int32", + "example": 10200 + } + } + }, + "ScorecardData": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "userId": { + "type": "integer", + "format": "int64" + }, + "username": { + "type": "string" + }, + "clientId": { + "type": "integer", + "format": "int64" + }, + "surveyId": { + "type": "integer", + "format": "int64" + }, + "surveyName": { + "type": "string" + }, + "scorecardValues": { + "type": "array", + "items": { + "$ref": "#/definitions/ScorecardValue" + } + } + } + }, + "ScorecardValue": { + "type": "object", + "properties": { + "questionId": { + "type": "integer", + "format": "int64" + }, + "responseId": { + "type": "integer", + "format": "int64" + }, + "value": { + "type": "integer", + "format": "int32" + }, + "createdOn": { + "type": "string", + "format": "date-time" + } + } + }, + "ComponentData": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "key": { + "type": "string" + }, + "text": { + "type": "string" + }, + "description": { + "type": "string" + }, + "sequenceNo": { + "type": "integer", + "format": "int32" + } + } + }, + "QuestionData": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "responseDatas": { + "type": "array", + "items": { + "$ref": "#/definitions/ResponseData" + } + }, + "componentKey": { + "type": "string" + }, + "key": { + "type": "string" + }, + "text": { + "type": "string" + }, + "description": { + "type": "string" + }, + "sequenceNo": { + "type": "integer", + "format": "int32" + } + } + }, + "ResponseData": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "text": { + "type": "string" + }, + "value": { + "type": "integer", + "format": "int32" + }, + "sequenceNo": { + "type": "integer", + "format": "int32" + } + } + }, + "SurveyData": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "componentDatas": { + "type": "array", + "items": { + "$ref": "#/definitions/ComponentData" + } + }, + "questionDatas": { + "type": "array", + "items": { + "$ref": "#/definitions/QuestionData" + } + }, + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "validFrom": { + "type": "string", + "format": "date-time" + }, + "validTo": { + "type": "string", + "format": "date-time" + } + } + }, "GetTaxesComponentsCreditAccount": { "type": "object", "properties": { @@ -50639,60 +54479,6 @@ } } }, - "ScorecardData": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "userId": { - "type": "integer", - "format": "int64" - }, - "username": { - "type": "string" - }, - "clientId": { - "type": "integer", - "format": "int64" - }, - "surveyId": { - "type": "integer", - "format": "int64" - }, - "surveyName": { - "type": "string" - }, - "scorecardValues": { - "type": "array", - "items": { - "$ref": "#/definitions/ScorecardValue" - } - } - } - }, - "ScorecardValue": { - "type": "object", - "properties": { - "questionId": { - "type": "integer", - "format": "int64" - }, - "responseId": { - "type": "integer", - "format": "int64" - }, - "value": { - "type": "integer", - "format": "int32" - }, - "createdOn": { - "type": "string", - "format": "date-time" - } - } - }, "Component": { "type": "object", "properties": { @@ -50863,121 +54649,7 @@ } } }, - "ComponentData": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "key": { - "type": "string" - }, - "text": { - "type": "string" - }, - "description": { - "type": "string" - }, - "sequenceNo": { - "type": "integer", - "format": "int32" - } - } - }, - "QuestionData": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "responseDatas": { - "type": "array", - "items": { - "$ref": "#/definitions/ResponseData" - } - }, - "componentKey": { - "type": "string" - }, - "key": { - "type": "string" - }, - "text": { - "type": "string" - }, - "description": { - "type": "string" - }, - "sequenceNo": { - "type": "integer", - "format": "int32" - } - } - }, - "ResponseData": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "text": { - "type": "string" - }, - "value": { - "type": "integer", - "format": "int32" - }, - "sequenceNo": { - "type": "integer", - "format": "int32" - } - } - }, - "SurveyData": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "componentDatas": { - "type": "array", - "items": { - "$ref": "#/definitions/ComponentData" - } - }, - "questionDatas": { - "type": "array", - "items": { - "$ref": "#/definitions/QuestionData" - } - }, - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "countryCode": { - "type": "string" - }, - "validFrom": { - "type": "string", - "format": "date-time" - }, - "validTo": { - "type": "string", - "format": "date-time" - } - } - }, - "PutTemplatesTemplateIdResponse": { + "PostTemplatesResponse": { "type": "object", "properties": { "resourceId": { @@ -50987,7 +54659,7 @@ } } }, - "PutTemplatesTemplateIdRequest": { + "PostTemplatesRequest": { "type": "object", "properties": { "id": { @@ -51043,6 +54715,50 @@ } } }, + "PutTemplatesTemplateIdResponse": { + "type": "object", + "properties": { + "resourceId": { + "type": "integer", + "format": "int64", + "example": 1 + } + } + }, + "PutTemplatesTemplateIdRequest": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "name": { + "type": "string", + "example": "Text" + }, + "entity": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "type": { + "type": "integer", + "format": "int64", + "example": 0 + }, + "text": { + "type": "string", + "example": "This is a loan for {{loan.clientName}}" + }, + "mappers": { + "type": "array", + "items": { + "$ref": "#/definitions/TemplateMapper" + } + } + } + }, "DeleteTemplatesTemplateIdResponse": { "type": "object", "properties": { @@ -51053,84 +54769,6 @@ } } }, - "GetTemplatesTemplateResponse": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "name": { - "type": "string", - "example": "Text" - }, - "entity": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "type": { - "type": "integer", - "format": "int64", - "example": 0 - }, - "text": { - "type": "string", - "example": "This is a loan for {{loan.clientName}}" - }, - "mappers": { - "type": "array", - "items": { - "$ref": "#/definitions/TemplateMapper" - } - } - } - }, - "PostTemplatesResponse": { - "type": "object", - "properties": { - "resourceId": { - "type": "integer", - "format": "int64", - "example": 1 - } - } - }, - "PostTemplatesRequest": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "name": { - "type": "string", - "example": "Text" - }, - "entity": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "type": { - "type": "integer", - "format": "int64", - "example": 0 - }, - "text": { - "type": "string", - "example": "This is a loan for {{loan.clientName}}" - }, - "mappers": { - "type": "array", - "items": { - "$ref": "#/definitions/TemplateMapper" - } - } - } - }, "GetTemplatesResponse": { "type": "object", "properties": { @@ -51199,6 +54837,40 @@ } } }, + "GetTemplatesTemplateResponse": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "name": { + "type": "string", + "example": "Text" + }, + "entity": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "type": { + "type": "integer", + "format": "int64", + "example": 0 + }, + "text": { + "type": "string", + "example": "This is a loan for {{loan.clientName}}" + }, + "mappers": { + "type": "array", + "items": { + "$ref": "#/definitions/TemplateMapper" + } + } + } + }, "GetPasswordPreferencesTemplateResponse": { "type": "object", "properties": { @@ -51310,24 +54982,6 @@ } } }, - "GetRolesResponse": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64", - "example": 1 - }, - "name": { - "type": "string", - "example": "Super Users" - }, - "description": { - "type": "string", - "example": "This role provides all application permissions." - } - } - }, "PostRolesResponse": { "type": "object", "properties": { @@ -51369,6 +55023,24 @@ } } }, + "GetRolesResponse": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "name": { + "type": "string", + "example": "Super Users" + }, + "description": { + "type": "string", + "example": "This role provides all application permissions." + } + } + }, "PostRolesRoleIdResponse": { "type": "object", "properties": { @@ -51499,23 +55171,6 @@ } } }, - "GetUsersTemplateResponse": { - "type": "object", - "properties": { - "allowedOffices": { - "type": "array", - "items": { - "$ref": "#/definitions/OfficeData" - } - }, - "availableRoles": { - "type": "array", - "items": { - "$ref": "#/definitions/RoleData" - } - } - } - }, "GetUsersResponse": { "type": "object", "properties": { @@ -51618,6 +55273,29 @@ } } }, + "GetUsersTemplateResponse": { + "type": "object", + "properties": { + "allowedOffices": { + "type": "array", + "items": { + "$ref": "#/definitions/OfficeData" + } + }, + "availableRoles": { + "type": "array", + "items": { + "$ref": "#/definitions/RoleData" + } + }, + "selfServiceRoles": { + "type": "array", + "items": { + "$ref": "#/definitions/RoleData" + } + } + } + }, "PutUsersUserIdResponse": { "type": "object", "properties": {