Overview:
The main objective of the billing module is to serve the Bill for all revenue Business services. To serve the Bill, Billing-Service requires demand. Demands will be prepared by Revenue modules and stored by billing based on which it will generate the Bill.
Pre-requisites:
Prior Knowledge of Java/J2EE.
Prior Knowledge of Spring Boot.
Prior Knowledge of KAFKA
Prior Knowledge of REST APIs and related concepts like path parameters, headers, JSON, etc.
Prior knowledge of the demand-based systems.
Following services should be up and running:
user
MDMS
Id-Gen
URL-Shortening
notification-sms
...
Deploy the latest image of the billing service available.
Configuration Details:
In the MDMS data configuration, the following master data is needed for the functionality of billing
...
bs.businesscode.demand.updateurl | { "WS":"http://ws-calculator:8080/ws-calculator/waterCalculator/_updatedemand", | Each module’s application calculator should provide its own update URL. if not present then new bill will be generated without making any changes to the demand. |
bs.bill.billnumber.format | BILLNO-{module}-[SEQ_egbs_billnumber{tenantid}] | IdGen format for bill number |
|
| |
|
| enable disable workflow of bill amendment |
|
| topic name to push demand created, to be consumed by mgramseva adaptor |
|
| topic name to push demand updated, to be consumed mgram sevaadaptor |
|
| topic name to push bill created, to be consumed mgram seva |
|
| topic name to push bill updated, to be consumed mgram seva |
Integration
Integration Scope
Billing service can be integrated with any organization or system that wants a demand-based payment system.
Integration Benefits
Easy to create and simple process of generating bills from demands
The amalgamation of bills period-wise for a single entity like Water connection.
Amendment of bills in case of legal requirements.
Steps to Integration
Customer can create a demand using the
/demand/_create
Organization or System can search the demand using
/demand/_search
endpointOnce the demand is raised the system can call
/demand/_update
endpoint to update the demand as per need.Bills can be generated using, which is a self-managing API that generates a new bill only when the old one expires
/bill/_fetchbill.
Bills can be searched using
/bill/_search.
Amendment facility can be used in case of a legal issue to add values to existing demands using
/amendment/_create
and/amendment/_update
can used to cancel the created ones or update workflow if configured.
Interaction Diagram
Interaction Diagram V1.1:
...
Case 2: Apportioning with two years of arrear:
If the current financial year is 2014-15. Below are the demands
TaxHead | Amount | TaxPeriodFrom | TaxPeriodTo | Order | Purpose |
WS_CHARGE | 1000 | 2014 | 2015 | 6 | Current |
AdjustedAmt | 0 | ||||
Penality | 500 | 2014 | 2015 | 5 | Current |
AdjustedAmt | 0 | ||||
Interest | 500 | 2014 | 2015 | 4 | Current |
AdjustedAmt | 0 | ||||
Cess | 500 | 2014 | 2015 | 3 | Current |
AdjustedAmt | 0 | ||||
Exm | -250 | 2014 | 2015 | 1 | Current |
AdjustedAmt | 0 |
...