Versions Compared

Key

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

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

Key Functionality: Functionalities

  • eGov billing service creates and maintains demands.

  • Generates bills based on demands.

  • push created and updated bill/demand to kafka Kafka on specified topics

  • Updates the demands from payment when the collection service takes a payment.

Deployment Details:

  • 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 the billing

MDMS:

Business Service JSON

Code Block
{
  "tenantId": "pb",
  "moduleName": "BillingService",
  "BusinessService": [
    {
      "businessService": "EXPENSE.ELECTRICITY_BILL",
      "code": "EXPENSE.ELECTRICITY_BILL",
      "collectionModesNotAllowed": [
        "DD"
      ],
      "partPaymentAllowed": true,
      "isAdvanceAllowed": false,
      "isVoucherCreationEnabled": true,
      "isActive": true,
      "type": "Adhoc"
    },
     {
      "businessService": "EXPENSE.SALARY",
      "code": "EXPENSE.SALARY",
      "collectionModesNotAllowed": [
        "DD"
      ],
      "partPaymentAllowed": true,
      "isAdvanceAllowed": false,
      "isVoucherCreationEnabled": true,
      "isActive": true,
      "type": "Adhoc"
    },
    {
      "businessService": "EXPENSE.OM",
      "code": "EXPENSE.OM",
      "collectionModesNotAllowed": [
        "DD"
      ],
      "partPaymentAllowed": true,
      "isAdvanceAllowed": false,
      "isVoucherCreationEnabled": true,
      "isActive": true,
      "type": "Adhoc"
    },
    {
      "businessService": "EXPENSE.MISC",
      "code": "EXPENSE.MISC",
      "collectionModesNotAllowed": [
        "DD"
      ],
      "partPaymentAllowed": true,
      "isAdvanceAllowed": false,
      "isVoucherCreationEnabled": true,
      "isActive": true,
      "type": "Adhoc"
    },
    {
      "businessService": "ws-services-calculation",
      "code": "WS",
      "collectionModesNotAllowed": [
        "DD",
        "CHEQUE",
        "CARD",
        "OFFLINE_NEFT",
        "OFFLINE_RTGS",
        "POSTAL_ORDER",
        "ONLINE"
      ],
      "partPaymentAllowed": true,
      "isAdvanceAllowed": false,
      "demandUpdateTime": 86400000,
      "isVoucherCreationEnabled": false,
      "billGineiURL" : "egov-searcher/bill-genie/waterbills/_get",
      "isBillAmendmentEnabled":true
    }
  ]
}

...

  • 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

  1. Customer Customers can create a demand using the /demand/_create

  2. Organization or System can search the demand using /demand/_searchendpoint

  3. Once the demand is raised the system can call /demand/_update endpoint to update the demand as per need.

  4. Bills can be generated using, which is a self-managing API that generates a new bill only when the old one expires /bill/_fetchbill.

  5. Bills can be searched using /bill/_search.

  6. 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

Interaction Diagram V1.1:

...

Reference Docs

Doc Links

Title 

Link

 Id-Gen service

 

url-shortening

 

 MDMS

 

...


Apportioning :

What is apportioning?

Adjusting the receivable amount with the individual tax head.

...

  • Proportionate based apportioning (Adjust total receivable with all the tax head equally)

  • Order & Percentage based apportioning(Adjust total receivable based on order and the percentage which is defined for each tax head).


Principle of apportioning:Apportioning

 The basic principle of apportioning is, if the full amount is paid for any bill then each individual tax head should get nullify with their corresponding adjusted amount.

...

 
Case 2: Apportioning with two years of arrear:
If the current financial year is 2014-15. Below are the demands 

...

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





...