Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Property services 

...

Overview:

One of the major application applications of the eGov stack which helps municipal and citizen citizens to handle property tax payment payments and other related functions on the property such as assessments, mutation, and so on.

The setup of the Application is as follows

RequirementsPre-requisites:

  • Prior Knowledge of Java/J2EE.

  • Prior Knowledge of Spring Boot.

  • Prior Knowledge of REST APIs and related concepts like path parameters, headers, JSON etc.

  • Prior knowledge of Git

...

  • Prior knowledge of

...

  • the demand-based systems.

  • Following services should be up and running:

    • user

    • MDMS

    • Persister

    • Location

    • Localization

    • Id-Gen

    • Billing-service

    • URL-shortener

Key Functionality:

The Property Service provides multiple functionalities starting from serving as a central repository where property information is registered for reference of citizen citizens and other municipality-provided services such as water connection and sewerage management.
An assessment can be done so as to calculate and pay tax on the property. The different services provided by the property services are

...

Mutation

Bifurcation

consolidation

Registry Explanation:

  • The registry flow helps the citizen/Employee to create a property in the system with the minimal information required.

  • Other workflows such as assessment or mutation can be triggered on the existing ACTIVE Property in the registry.

  • The property can be created, updated, cancelledcanceled, searched, Followed by the process of Mutation and Assessment.

  • The same entry in the registry can be referred by other modules for their business purposes(Water charges).

SETUP AND USAGE:

The Application is present among the Municipal-services group of applications available in the eGov-services git repository.  The spring boot application needs Lombok* extension added in your IDE to load it. Once the application is up and running API requests can be posted to the url and ids can be generated. 

  • *in case of IntelliJ the plugin can be installed directly, for eclipse the Lombok jar location has to be added in eclipse.ini file in this format  javaagent:lombok.jar

For the API information please refer the swagger YAML,

GOTO : https://editor.swagger.io/   and click on file -> import URL Then add the raw URL of the API doc in the pop-up. 

https://github.com/egovernments/municipal-services/blob/master/docs/property-services/property-services.yml

https://github.com/egovernments/municipal-services/blob/master/docs/property-services/Assessment.yml

In case the URL is unavailable, please go to the docs folder of the municipal-services git repo

The Postman collection of the service Property registry

https://www.getpostman.com/collections/02d01e7b46c79c140863

########## Persister File Config

The persister File config for property services can be found in the Config repo of eGov Git, which needs to be added in the egov-persister service.

https://github.com/egovernments/configs/blob/master/egov-persister/property-services-registry.yml

The variables in the Application.properties to be updated are as follows

######## URLs for the external API references

###### kafka topics persister configs for eGov persister

persister.save.property.topic=save-property-registry
persister.update.property.topic=update-property-registry

persister.cancel.property.topic=cancel-property-registry
persister.cancel.property.assessment.topic=cancel-property-assessment

egov.pt.assessment.create.topic=save-property-assessment
egov.pt.assessment.update.topic=update-property-assessment

Payment topic to udate workflow to paid status
kafka.topics.receipt.create=egov.collection.payment-create

####### Id-Gen Configs for Business ids

egov.idgen.ack.name=pt.acknowledgementnumber
egov.idgen.ack.format=PB-AC-[cy:yyyy-MM-dd]-[SEQ_EG_PT_ACK]

egov.idgen.mutation.name=pt.mutation.number
egov.idgen.mutation.format=PB-MT-[CITY]-[SEQ_EG_PT_MUTATION]

egov.idgen.assm.name=pt.assessmentnumber
egov.idgen.assm.format=PB-AS-[cy:yyyy-MM-dd]-[SEQ_EG_PT_ASSM]

egov.idgen.ptid.name=pt.propertyid
egov.idgen.ptid.format=PB-PT-[cy:yyyy-MM-dd]-[SEQ_EG_PT_PTID]

  • Property Search Parameters config (filter for search based on fields by user Type)
    citizen.allowed.search.params = accountId,ids,propertyDetailids,mobileNumber,oldpropertyids
    employee.allowed.search.params = accountId,ids,propertyDetailids,mobileNumber,oldpropertyids

Workflow-configs

Each flow in property has a workflow associated with it, which can be controlled by the following configs

The Boolean field which can enable/disable Workflow - same field controls the update and create workflow
is.workflow.enabled=false

Name of the business code in the workflow, this should be set to matching value to the config businessService field in workflow master
property.workflow.name=PT.CREATE
property.legacy.entry.workflow.name=PT.LEGACY
property.update.workflow.name=PT.UPDATE

Workflow Config for property create if the source is from WATER CONNECTION module

For creation of property from water and sewerage module, as per the use case mentioned in this ticket, different workflow config is used.
For each use case, to identified which workflow to use can be identified from this mdms file.

...

Configuration Details:

MDMS CONFIG: https://github.com/egovernments/egov-mdms-data/tree/DEV/data/pb/PropertyTax

Persister File Config:

The persister File config for property services can be found in the Config repo of eGov Git, which needs to be added in the persister service - property-services-registry.yml

Workflow-configs:

Each flow in property has a workflow associated with it, which can be controlled by the following configs

The Boolean field which can enable/disable Workflow - same field controls the update and create the workflow

name

value

description

is.workflow.enabled

true/false

enable disbale workflow

property.workflow.name

PT.CREATE

the name should match the config name in the workflow businessservice JSON

property.legacy.entry.workflow.name

PT.LEGACY

property.update.workflow.name

PT.UPDATE

Workflow Config for property create if the source is from WATER CONNECTION module

For the creation of property from the water and sewerage module, as per the use case mentioned in this ticket, a different workflow config is used.
For each use case, to identify which workflow to use can be identified from this mdms file.

Code Block
{
 "tenantId": "pb",
 "moduleName": "PropertyTax",
 "PTWorkflow":[
     {
         "businessService":"PT.CREATEWITHWNS",
         "initialAction":"OPEN",
         "inWorkflowStatusAllowed":false,
         "enable":false
     },
     {
      "businessService":"PT.CREATE",
      "initialAction":"open",
      "inWorkflowStatusAllowed":true,
      "enable":true
  }
     
 ]
}


For use case 1 which says, The property which is creating from Water and sewerage module should have one step workflow.
for this requirement in the above MDMS file businessService with PT.CREATEWITHWNS object must have enabled the field to set as true.
Then for all the property creation from Water and Sewerage module would have one step workflow and property would be created with an ACTIVE state.

Fields in above MDMS file:

Mdms Fields

Descripton

businessService

Name of workflow config

initialAction

Indicate the start(initial) action of the particular workflow mention in businessService.

inWorkflowStatusAllowed

This field indicate whether the property with application status as “inWorkflow” can be use with water and sewerage connection creation.
If this field is true then for that particular use case, the property with “inWorkflow” status can be use with water and sewerage connection creation and vice versa

enable

If this filed is set as true, then the other fields associate with the particular object is use for property creation.

(Note: The above objects indicate each use case mentioned in this ticket, so at a time only one object (use case)enable field must set as true )

Sample workflow config for use case 1 where property creation is from water and sewerage module with one step workflow

Code Block
{
    "BusinessServices": [
      {
        "tenantId": "pb",
        "businessService": "PT.CREATEWITHWNS",
        "business": "PT",
        "businessServiceSla": null,
        "states": [
          {
            "sla": null,
            "state": null,
            "applicationStatus": "INWORKFLOW",
            "docUploadRequired": false,
            "isStartState": true,
            "isTerminateState": false,
            "isStateUpdatable": false,
            "actions": [
           "initialAction":"OPEN",   {
      "inWorkflowStatusAllowed":false,          "enableaction":false "OPEN",
    },      {       "businessServicenextState": "PT.CREATEINITIATED",
      "initialAction":"open",          "inWorkflowStatusAllowedroles":true, [
      "enable":true   }        ]
}

...

Fields in above mdms file:

...

Mdms Fields

...

Descripton

...

businessService

...

Name of workflow config

...

initialAction

...

Indicate the start(initial) action of the particular workflow mention in businessService.

...

inWorkflowStatusAllowed

...

This field indicate whether the property with application status as “inWorkflow” can be use with water and sewerage connection creation.
If this field is true then for that particular use case, the property with “inWorkflow” status can be use with water and sewerage connection creation and vice versa

...

enable

...

If this filed is set as true, then the other fields associate with the particular object is use for property creation.

(Note: The above objects indicate the each use case mention in this ticket, so at a time only one object (use case)enable field must set as true )

Sample workflow config for use case 1 where property creation is from water and sewerage module with one step workflow

Code Block
{ "CITIZEN",
                  "WS_CEMP",
                  "BusinessServicesSW_CEMP":
[       {         "tenantId": "pb",]
         "businessService": "PT.CREATEWITHWNS",    }
    "business": "PT",         "businessServiceSla": null,]
         "states": [ },
          {
            "sla": null,
            "state": null"INITIATED",
            "applicationStatus": "INWORKFLOW",
            "docUploadRequired": false,
            "isStartState": true,
            "isTerminateState": false,
            "isStateUpdatable": falsetrue,
            "actions": [
              {
                "action": "OPENSUBMIT",
                "nextState": "INITIATEDAPPROVED",
                "roles": [
                  "CITIZENEMPLOYEE",
                  "WS_CEMPCITIZEN",
                  "SW_CEMP",
                ]  "WS_CEMP"
            }         ]
   ]           },
          {    {
        "sla": null,             "stateaction": "INITIATEDBACK",
                "applicationStatusnextState": "INWORKFLOW",
                "docUploadRequiredroles": false,[
                  "isStartState": true,EMPLOYEE",
                  "isTerminateState": false,CITIZEN",
                  "isStateUpdatable": true,SW_CEMP",
                  "actionsWS_CEMP":
[               { ]
              }
"action": "SUBMIT",           ]
     "nextState": "APPROVED",    },
          {
 "roles": [          "sla": null,
       "EMPLOYEE",     "state": "INWORKFLOW",
            "applicationStatus": "CITIZENINWORKFLOW",
            "docUploadRequired": false,
    "SW_CEMP",        "isStartState": true,
         "WS_CEMP"   "isTerminateState": false,
            ]
"isStateUpdatable": true,
             },"actions": [
              {
                "action": "BACKSUBMIT",
                "nextState": "INWORKFLOWAPPROVED",
                "roles": [
                  "EMPLOYEE",
                  "CITIZEN",
                  "SW_CEMP",
                  "WS_CEMP"
                ]
              }
            ]
          },
          {
            "sla": null,
            "state": "INWORKFLOWAPPROVED",
            "applicationStatus": "INWORKFLOWACTIVE",
            "docUploadRequired": false,
            "isStartState": truefalse,
            "isTerminateState": falsetrue,
            "isStateUpdatable": truefalse,
            "actions": [
  null
           {
                "action": "SUBMIT",  }
        ]
     "nextState": "APPROVED", }
    ]
  }


Sample workflow config - (The same PT.CREATE can be used for update workflow also since both involve the same functionality)

Code Block
languagejson
 {
  "RequestInfo": {
    "rolesapiId": ["Rainmaker",
    "action": "",
    "did": 1,
    "key":  "EMPLOYEE",
    "msgId": "20170310130900|en_IN",
    "requesterId": "",
      "CITIZENts": 1513579888683,
    "ver": ".01",
    "authToken": "b39181b1-5c6b-484a-b825-6be2f62012b8"
  },
 "BusinessServices": [
"SW_CEMP",  {
    "tenantId": "pb",
    "businessService": "PT.CREATE",
    "WS_CEMPbusiness": "PT",
    "businessServiceSla": null,
    "states": [
   ]     {
         }   "tenantId": "pb",
        ]    "sla": null,
     },           {"state": null,
            "slaapplicationStatus": null"INWORKFLOW",
            "statedocUploadRequired": "APPROVED"false,
            "applicationStatusisStartState": "ACTIVE"true,
            "docUploadRequiredisTerminateState": false,
            "isStartStateactions": false, [
                {
      "isTerminateState": true,             "isStateUpdatabletenantId": false,"pb",
                    "actionsaction": "OPEN",
null           }         ]
"nextState": "OPEN",
     }     ]   }

Sample workflow config - (The same PT.CREATE can be used for update workflow also since both involve the same functionality)

Code Block
languagejson
 {       "RequestInforoles": {[
                 "apiId": "Rainmaker",     "action": "CITIZEN",
      "did": 1,     "key": "",     "msgId": "20170310130900|en_IN",     "requesterIdEMPLOYEE":
  "",     "ts": 1513579888683,     "ver": ".01",     "authToken": "b39181b1-5c6b-484a-b825-6be2f62012b8" ]
  },  "BusinessServices": [   {     "tenantId": "pb",  }
  "businessService": "PT.CREATE",     "business": "PT",   ]
 "businessServiceSla": null,     "states": [ },
        {
            "tenantId": "pb",
            "sla": null,
            "state": null"OPEN",
            "applicationStatus": "INWORKFLOW",
            "docUploadRequired": false,
            "isStartState": true,
            "isTerminateState": false,
            "actions": [
                {
                    "tenantId": "pb",
                    "action": "OPENVERIFY",
                    "nextState": "OPENDOCVERIFIED",
                    "roles": [
                        "CITIZENPT_DOC_VERIFIER",
                    ]
   "EMPLOYEE"             },
       ]         {
       }             ]
        },
  "tenantId": "pb",
     {             "tenantIdaction": "pbREJECT",
       
    "sla": null,             "statenextState": "OPENREJECTED",
            "applicationStatus": "INWORKFLOW",      "roles": [
        "docUploadRequired": false,             "isStartStatePT_DOC_VERIFIER":
true,             "isTerminateState": false,    ]
        "actions": [      },
          {    {
                "tenantId": "pb",
   
                "action": "VERIFYSENDBACKTOCITIZEN",
                    "nextState": "DOCVERIFIEDCORRECTIONPENDING",

                   "roles": [
                        "PT_DOC_VERIFIER"
                ]
   ]         }
       },     ]
        },
  {      {
            "tenantId": "pb",
        
         "action": "REJECT",     "sla": null,
            "nextStatestate": "REJECTEDDOCVERIFIED",
            "applicationStatus": "INWORKFLOW",
    "roles": [       "docUploadRequired": false,
              "PT_DOC_VERIFIER""isStartState": false,
            "isTerminateState": false,
    ]        "actions": [
     },           {
   {                 "tenantId": "pb",
                    "action": "SENDBACKTOCITIZENFORWARD",
                    "nextState": "CORRECTIONPENDINGFIELDVERIFIED",
                    "roles": [
                        "PT_DOCFIELD_VERIFIERINSPECTOR"
                    ]
                }
            ]
        },
        {
            "tenantId": "pb",
            "sla": null,
            "state": "DOCVERIFIEDFIELDVERIFIED",
            "applicationStatus": "INWORKFLOW",
            "docUploadRequired": false,
            "isStartState": false,
            "isTerminateState": false,
            "actions": [
                {
                    "tenantId": "pb",
                    "action": "FORWARDAPPROVE",
                    "nextState": "FIELDVERIFIEDAPPROVED",
                    "roles": [
                        "PT_FIELD_INSPECTORAPPROVER"
                    ]
     
          }      },
      ]         }, {
       {             "tenantId": "pb",
              "sla": null,     "action": "REJECT",
      "state": "FIELDVERIFIED",             "applicationStatusnextState": "INWORKFLOWREJECTED",
   
        "docUploadRequired": false,             "isStartStateroles": false,
[
           "isTerminateState": false,             "actionsPT_APPROVER":
[                 {   ]
                }
"tenantId": "pb",           ]
        },
"action": "APPROVE",        {
            "nextStatetenantId": "APPROVEDpb",
              "sla": null,
            "rolesstate": ["REJECTED",
            "applicationStatus": "INACTIVE",
            "PT_APPROVERdocUploadRequired": false,
            "isStartState": false,
     ]       "isTerminateState": true,
        },    "actions": null
         },
 {        {
            "tenantId": "pb",
            "sla": null,
            "actionstate": "REJECTAPPROVED",
            "applicationStatus": "ACTIVE",
      "nextState": "REJECTED",        "docUploadRequired": false,
            "rolesisStartState": [false,
            "isTerminateState": true,
            "PT_APPROVERactions": null
        },
        {
 ]         "tenantId": "pb",
      }    "sla": null,
       ]   "state": "CORRECTIONPENDING",
    },      "applicationStatus": "INWORKFLOW",
 {             "tenantIddocUploadRequired": "pb"false,

           "slaisStartState": nullfalse,
 
          "stateisTerminateState": "REJECTED"false,

           "applicationStatusisStateUpdatable": "INACTIVE"true,

           "docUploadRequiredactions": [
false,             "isStartState": false, {
            "isTerminateState": true,     "tenantId": "pb",
      "actions": null         },  "action": "REOPEN",
     {             "tenantIdnextState": "pbOPEN",
            "sla": null,     "roles": [
      "state": "APPROVED",             "applicationStatus": "ACTIVE",CITIZEN",
                "docUploadRequired": false,   "PT_CEMP"
         "isStartState": false,        ]
    "isTerminateState": true,         },
   "actions": null         }, {
       {           "tenantId": "pb",
          "sla": null,           "stateaction": "CORRECTIONPENDINGREJECT",
          "applicationStatus": "INWORKFLOW",             "docUploadRequirednextState": false"REJECTED",
          "isStartState": false,           "isTerminateStateroles": false,[
          "isStateUpdatable": true,         "CITIZEN",
 "actions": [               {   "PT_CEMP"
               "tenantId": "pb",  ]
              }
 "action": "REOPEN",        ]
      }
   "nextState": "OPEN",
 ]
}
  ]
}	

PT.LEGACY workflow config

Code Block
{
    "RequestInfo": {
      "

...

apiId": "Rainmaker",
  

...

    "action": "",
      "did": 1,
      "key": "

...

",
      "msgId": "20170310130900|en_IN",
      "requesterId": "",
      "

...

ts": 1513579888683,
      "ver": ".01",
      "authToken": "{{authToken_amritsar}}"
 

...

   },
    "BusinessServices": [
     

...

 {
        "tenantId": "pb",
   

...

     "businessService": "PT.LEGACY",
        

...

"

...

business": "

...

PT",
        "businessServiceSla": null,
        "

...

states":

...

 [
          {
            "

...

tenantId": "

...

pb",
            "sla": null,
     

...

 

...

      "state": null,
            "applicationStatus": "

...

INWORKFLOW",
            "docUploadRequired": false,
      

...

      "isStartState": true,
           

...

 "isTerminateState": false,
            

...

"actions": [
         

...

     {
 

...

     

...

 

...

   

...

 

...

PT.LEGACY workflow config

Code Block
{     "RequestInfotenantId": {"pb",
        "apiId": "Rainmaker",       "action": "OPEN",
       "did": 1,         "keynextState": "APPROVALPENDING",
      "msgId": "20170310130900|en_IN",          "requesterIdroles": "", [
         "ts": 1513579888683,       "ver": ".01CITIZEN",
      "authToken": "{{authToken_amritsar}}"       },     "BusinessServicesEMPLOYEE":
[       {         "tenantId": "pb",]
         "businessService": "PT.LEGACY",      }
  "business": "PT",         "businessServiceSla": null,]
         "states": [ },
          {
            "tenantId": "pb",
            "sla": null,
            "state": null"APPROVALPENDING",
            "applicationStatus": "INWORKFLOW",
            "docUploadRequired": false,
            "isStartState": true,
            "isTerminateState": false,
            "actions": [
              {
                "tenantId": "pb",",
                "action": "APPROVE",
                "nextState": "APPROVED",
                "roles": [
                  "EMPLOYEE"
        "action": "OPEN",       ]
         "nextState": "APPROVALPENDING",    },
            "roles": [ {
                "tenantId": "CITIZENpb",
                 "action": "EMPLOYEEREJECT",
                ]
 "nextState": "REJECTED",
            }    "roles": [
       ]           },"EMPLOYEE"
          {      ]
      "tenantId": "pb",       }
     "sla": null,      ]
      "state": "APPROVALPENDING",   },
         "applicationStatus": "INWORKFLOW", {
            "docUploadRequiredtenantId": false"pb",
            "isStartStatesla": truenull,
            "isTerminateStatestate": false"REJECTED",
            "actionsapplicationStatus": ["INACTIVE",
            "docUploadRequired": false,
{                 "tenantIdisStartState": "pb",
   false,
            "actionisTerminateState": "APPROVE"true,
                "nextStateactions": "APPROVED",null
          },
     "roles": [    {
            "tenantId":  "EMPLOYEEpb",
            "sla": null,
  ]               }"state": "APPROVED",
              {
   "applicationStatus": "INACTIVE",
            "tenantIddocUploadRequired": "pb",
  false,
             "actionisStartState": "REJECT"false,
                "nextStateisTerminateState": "REJECTED"true,
            "actions": null
  "roles": [       }
        ]
  "EMPLOYEE"    }
            ]
              }
            ]
          },
          {
            "tenantId": "pb",]
  }

Notifications :

To enable or disable notifcation
notif.sms.enabled=true

#notif urls - makes use of the UI app host in notification service
egov.notif.commonpay = citizen/egov-common/pay?consumerCode={CONSUMERCODE}&tenantId={TENANTID}
egov.notif.view.property = citizen/property-tax/my-properties/property/{PROPERTYID}/{TENANTID}
egov.notif.view.mutation = citizen/pt-mutation/search-preview?applicationNumber={APPID}&tenantId={TENANTID}

The Current localization messages for notification

Code Block
languagejson
[
        

...

{
  

...

 

...

         

...

"

...

code": "

...

PT_NOTIF_WF_STATE_LOCALE_OPEN",
            "

...

message": 

...

"Open",
            "

...

module": 

...

"rainmaker-pt",
            "

...

locale": 

...

"en_IN"
        

...

},
        

...

{
            "

...

code": "

...

PT_NOTIF_WF_STATE_LOCALE_DOCVERIFIED",
            "

...

message":

...

 

...

"Document Verified",
            "

...

module": "

...

rainmaker-pt",
            "

...

locale": 

...

"en_IN"
      

...

  },
        {
   

...

 

...

        "code": "PT_NOTIF_WF_STATE_LOCALE_FIELDVERIFIED",
 

...

         

...

  "message": "Field 

...

verified",
 

...

     

...

Notifications :

To enable or disable notifcation
notif.sms.enabled=true

#notif urls - makes use of the UI app host in notification service
egov.notif.commonpay = citizen/egov-common/pay?consumerCode={CONSUMERCODE}&tenantId={TENANTID}
egov.notif.view.property = citizen/property-tax/my-properties/property/{PROPERTYID}/{TENANTID}
egov.notif.view.mutation = citizen/pt-mutation/search-preview?applicationNumber={APPID}&tenantId={TENANTID}

The Current localization messages for notification

Code Block
languagejson
[      "module": "rainmaker-pt",
            "locale": "en_IN"
        },
        {
            "code": "PT_NOTIF_WF_STATE_LOCALE_OPENAPPROVED",
            "message": "OpenApproved",
            "module": "rainmaker-pt",
            "locale": "en_IN"
        },
        {
            "code": "PT_NOTIF_WF_STATE_LOCALE_DOCVERIFIEDREJECTED",
            "message": "Document VerifiedRejected",
            "module": "rainmaker-pt",
            "locale": "en_IN"
        },
        {
            "code": "PT_NOTIF_WF_STATE_LOCALE_FIELDVERIFIEDPAID",
            "message": "Field verifiedPaid",
            "module": "rainmaker-pt",
            "locale": "en_IN"
        },
        {
            "code": "PT_NOTIF_WF_STATE_LOCALE_APPROVED",
            "message": "Approved"MT_OPEN",
            "message": "Dear {OWNER_NAME}, Your application to edit ownership details of property ID {PROPERTYID} has been submitted successfully. Your application no. for future reference is {APPID}. You can track your application on the link given below - {MTURL} Thank you",
            "module": "rainmaker-pt",
            "locale": "en_IN"
        },
        {
            "code": "PT_NOTIF_WF_MT_STATE_LOCALE_REJECTEDCHANGE",
            "message": "Rejected",
            "module": "rainmaker-pt",
            "locale": "en_IN"
        },
        {
            "code": "PT_NOTIF_WF_STATE_LOCALE_PAID",
            "message": "PaidDear {OWNER_NAME}, Status for your application no. {APPID} for property {PROPERTYID} to edit ownership has been changed to {STATUS}. You can track your application on the link given below - {MTURL} Thank you",
            "module": "rainmaker-pt",
            "locale": "en_IN"
        },
        {
            "code": "PT_NOTIF_WF_MT_PAYMENT_OPENPENDING",
            "message": "Dear {OWNER_NAME}, Payment is Yourpending applicationfor toyour editapplication ownership details ofno. {APPID} for property ID {PROPERTYID} hasto been submitted successfully. Your application no. for future reference is {APPID}edit ownership. You can trackpay your applicationmutation fee on the below link given below - {MTURLPAYLINK} or visit your ULB to pay your dues. Thank you",
            "module": "rainmaker-pt",
            "locale": "en_IN"
        },
        {
            "code": "PT_NOTIF_WF_MT_STATE_CHANGEPAID",
            "message": "Dear {OWNER_NAME}, Status for your You’ve successfully paid mutation fee - INR {AMOUNT} for application no. {APPID} for property ID {PROPERTYID} to edit ownership has been changed to {STATUS}. You can trackdownload your applicationreceipt on the below link given below - {MTURL} Thank you ",
            "module": "rainmaker-pt",
            "locale": "en_IN"
        },
        {
            "code": "PT_NOTIF_WF_MT_PAYMENT_PENDINGAPPROVED",
            "message": "Dear {OWNER_NAME}, Payment is pending for your Your property ownership has been changed as per the application no. {APPID} for property ID {PROPERTYID} to edit ownership. You can paydownload your mutation feecertificate on the below link - {PAYLINKMTURL} or visit your ULB to pay your dues. Thank you",
            "module": "rainmaker-pt",
            "locale": "en_IN"
        },
        {
            "code": "PT_NOTIF_WF_MT_PAIDNONE",
            "message": "Dear {OWNER_NAME}, You’veYour successfullyproperty paid mutation fee - INRwith property-id {AMOUNTPROPERTYID} forhas applicationbeen no. {APPID} for property ID {PROPERTYID}. mutated. You can downloadview your receiptproperty on the link given below link - {MTURL} Thank you ",
            "module": "rainmaker-pt",
            "locale": "en_IN"
        },
        {
            "code": "PT_NOTIF_WF_MT_APPROVEDOPEN",
            "message": "Dear {OWNER_NAME}, Your application to {updated/created} property ownershipwith Id {PROPERTYID} has been changedsubmitted as per thesuccessfully. Your application no. for {APPID}future forreference propertyis {PROPERTYIDAPPID}. You can downloadtrack your mutationapplication certificate on the link given below link - {MTURLPTURL} Thank you",
            "module": "rainmaker-pt",
            "locale": "en_IN"
        },
        {
            "code": "PT_NOTIF_WF_MTSTATUS_NONECHANGE",
            "message": "Dear {OWNER_NAME}, Your property with property-id {PROPERTYID} has been mutated Status for your application no. {APPID} for property {PROPERTYID} to {updated/created} property has been changed to {STATUS}. You can viewtrack your propertyapplication on the link given below - {MTURLPTURL} Thank you",
            "module": "rainmaker-pt",
            "locale": "en_IN"
        },
        {
            "code": "PT_NOTIF_WF_OPENAPPROVED",
            "message": "Dear {OWNER_NAME}, Your applicationproperty has tobeen {updated/created} property with Id {PROPERTYID} has been submitted successfully. Youras per the application no. {APPID} for futureproperty reference is {APPIDPROPERTYID}. You can trackview your applicationproperty on the link given below - {PTURL} Thank you",
            "module": "rainmaker-pt",
            "locale": "en_IN"
        },
        {
            "code": "PT_NOTIF_WF_STATUSUPDATE_CHANGENONE",
            "message": "Dear {OWNER_NAME}, StatusYour for your application no. {APPID} for propertyproperty with property-id {PROPERTYID} tohas been {updated/created}. You can view your property on the haslink beengiven changedbelow to- {STATUS}. You can track your application on the link given below - {PTURL} Thank you",PTURL} Thank you",
            "module": "rainmaker-pt",
            "locale": "en_IN"
        }
    "module": "rainmaker-pt",
            "locale": "en_IN"
        },
        {
            "code": "PT_NOTIF_WF_APPROVED",
            "message": "Dear {OWNER_NAME}, Your property has been {updated/created} as per the application no. {APPID} for property {PROPERTYID}. You can view your property on the link given below - {PTURL} Thank you",
            "module": "rainmaker-pt",
            "locale": "en_IN"
        },
        {
            "code": "PT_NOTIF_WF_UPDATE_NONE",
            "message": "Dear {OWNER_NAME}, Your property with property-id {PROPERTYID} has been {updated/created}. You can view your property on the link given below - {PTURL} Thank you",
            "module": "rainmaker-pt",
            "locale": "en_IN"
        }
    ]]

Configs in App.props

name

value

egov.idgen.ack.format

PB-AC-[cy:yyyy-MM-dd]-[SEQ_EG_PT_ACK]

egov.idgen.mutation.format

PB-MT-[CITY]-[SEQ_EG_PT_MUTATION]

egov.idgen.assm.format

PB-AS-[cy:yyyy-MM-dd]-[SEQ_EG_PT_ASSM]

egov.idgen.ptid.format

PB-PT-[cy:yyyy-MM-dd]-[SEQ_EG_PT_PTID]

citizen.allowed.search.params

accountId,ids,propertyDetailids,mobileNumber,oldpropertyids

employee.allowed.search.params

accountId,ids,propertyDetailids,mobileNumber,oldpropertyids

Integration

Integration Scope

Property service can be integrated with any organization or system that wants to maintain a record of the property and collect taxes with ease.

Integration Benefits

  • Easy to create and simple process of self-assessment to avoid the hassle.

  • Helps maintain property data which can be used in the integration of other essential services like asset management, water connection and so on.

  • provides additional functionalities like mutation, assessment of properties.

Steps to Integration

  1. Customer can create a property using the /property/_create

  2. Search the property using /property/_searchendpoint

  3. /property/_update endpoint to update the property demand as per need.

  4. Mutation can be carried out with the help of /property/_update itself, no extra API is needed.

Reference Docs:

Title 

Link

USER Service

User Service

url-shortening

 URL Shortening service

 MDMS

 MDMS (Master Data Management Service)

Billing-service

Billing Service

Location

Location Service

Workflow

Workflow Service

Persister

Localization

 Id-Gen service

API LIST: