Bill Amendment
Overview:
The consumer sometimes needs additional amounts (Amendments) added to their bill due to reasons from outside of the system. The addition of amounts happens with respect to the consumer code of the entity in the product(PT, WS, etc..,), any unpaid demand in the system is a candidate for amendments.
Pre-requisites:
Prior Knowledge of Billing-Service in Digit framework.
Key Functionality:
Amendment mainly works with two types of functionality as follows:
Amendment
Demand
Bill Amendment provides a separate flow to enable workflow and validation for the process of adding additional amounts into the existing demands which were done through the respective modules only till this point in time. An amendment will be allowed only when the reason arises from out of the system to add or reduce the amount from the existing bill belonging to an entity. The reasons are as listed
Court case settlement
One time waiver
Write-offs
DCB correction (Old demands in paid status)
Remission for Property Tax
Criteria:
There are certain prerequisites to create an amendment,
presence of demand in the billing system
One of the Reason as Listed above
Valid document proof for the reason
No other Amendment already in workflow
PROCEDURE:
The process of adding Amendment is as follows
Please follow the scenarios and let me know in case of doubts. There are two scenarios on how an amendment will be completed which is based on the paid status of the existing demands in the system.
1. when demand is unpaid/partially paid
create a demand (Or an existing demand can be used) with demand detail → DD1.
Do not pay the bill or make payment partially.
Create an amendment for the same consumer-code (with demand detail → DD2).
approve the amendment, the response should return an amendment with status CONSUMED.
search the demand or fetch bill for the consumer-code, demand/bill should contain demand details of demand and amendment together DD1 and DD2 in the same demand/bill.
2. when demand is completely paid,
create demand and make complete payment or choose a consumer-code which is fully paid.
create amendment (with demand detail → DD1).
Approve amendment, the response should be APPROVED this time.
create new demand for the consumer -code (with demand detail → DD3), demand response should contain two demand details DD1 and DD2 saved to the demand.
Now amendment search will return CONSUMED status after the demand is created.
IMPACT:
Does not impact any other functionality other than adding demand details to demands on APPROVAL.
IMPACTED BY:
Existence of demands in the system.
Configuration Details:
Billing Service | Configuration Details: Refer billing-service config for MDMS data. the amendment makes use of the same data set.
WORKFLOW CONFIG: Sample file with Water service as an example
curl --location --request POST '{{host}}/egov-workflow-v2/egov-wf/businessservice/_create' \
--header 'Content-Type: application/json' \
--data-raw '{
"RequestInfo": {
"apiId": "Rainmaker",
"action": "",
"did": 1,
"key": "",
"msgId": "20170310130900|en_IN",
"requesterId": "",
"ts": 1513579888683,
"ver": ".01",
"authToken": "",
"userInfo": {
"id": 73,
"userName": null,
"name": null,
"type": "EMPLOYEE",
"mobileNumber": null,
"emailId": null,
"roles": [
{
"id": 2,
"name": "Customer Support Representative",
"code": null,
"tenantId": null
}
],
"tenantId": null,
"uuid": "uuid"
}
},
"BusinessServices": [
{
"tenantId": "pb.amritsar",
"businessService": "WS.AMENDMENT",
"business": "WS",
"businessServiceSla": 0,
"states": [
{
"tenantId": "pb.amritsar",
"sla": null,
"state": null,
"applicationStatus": "INWORKFLOW",
"docUploadRequired": false,
"isStartState": true,
"isTerminateState": false,
"isStateUpdatable": false,
"actions": [
{
"tenantId": "pb.amritsar",
"action": "OPEN",
"nextState": "APPROVALPENDING",
"roles": [
"CITIZEN",
"SW_CEMP",
"WS_CEMP"
],
"active": true
}
]
},
{
"uuid": "APPROVALPENDING",
"tenantId": "pb.amritsar",
"sla": null,
"state": "APPROVALPENDING",
"applicationStatus": "INWORKFLOW",
"docUploadRequired": false,
"isStartState": true,
"isTerminateState": false,
"isStateUpdatable": false,
"actions": [
{
"tenantId": "pb.amritsar",
"currentState": "APPROVALPENDING",
"action": "APPROVE",
"nextState": "APPROVED",
"roles": [
"WS_APPROVER",
"SW_APPROVER"
],
"active": true
},
{
"tenantId": "pb.amritsar",
"currentState": "APPROVALPENDING",
"action": "REJECT",
"nextState": "REJECTED",
"roles": [
"WS_APPROVER",
"SW_APPROVER"
],
"active": true
},
{
"tenantId": "pb.amritsar",
"currentState": "APPROVALPENDING",
"action": "SEND_BACK",
"nextState": "PENDING_FOR_CITIZEN_ACTION",
"roles": [
"WS_APPROVER",
"SW_APPROVER"
],
"active": true
}
]
},
{
"tenantId": "pb.amritsar",
"sla": null,
"state": "REJECTED",
"applicationStatus": "INACTIVE",
"docUploadRequired": false,
"isStartState": false,
"isTerminateState": true,
"isStateUpdatable": false,
"actions": null
},
{
"tenantId": "pb.amritsar",
"sla": null,
"state": "APPROVED",
"applicationStatus": "ACTIVE",
"docUploadRequired": false,
"isStartState": false,
"isTerminateState": true,
"isStateUpdatable": false,
"actions": null
},
{
"uuid": "PENDING_FOR_CITIZEN_ACTION",
"tenantId": "pb.amritsar",
"sla": null,
"state": "PENDING_FOR_CITIZEN_ACTION",
"applicationStatus": "INWORKFLOW",
"docUploadRequired": false,
"isStartState": false,
"isTerminateState": false,
"isStateUpdatable": true,
"actions": [
{
"tenantId": "pb.amritsar",
"currentState": "PENDING_FOR_CITIZEN_ACTION",
"action": "RE-SUBMIT",
"nextState": "APPROVALPENDING",
"roles": [
"CITIZEN",
"SW_CEMP",
"WS_CEMP"
],
"active": true
}
]
}
]
}
]
}'
Integration
Integration Scope
Amendment integration helps the respective Organization to add additional value to the demand without any change in the system.
Integration Benefits
Easy to create and simple process of updating demands
helps ease changes into the system which are not part of normal functionality - Amendment of bills in case of legal requirements.
Steps to Integration - integrated into billing system by default.
Amendment facility can be used in case of a legal issue to add values to existing demands using
/amendment/_create
and/amendment/_update
can be used to cancel the created ones or update workflow if configured.
Interaction Diagram:
{yet to be addded}
API DEFINITION:
API LIST:
/amendment/_create, _update |