# How a bill is presented

<mark style="color:blue;">**A bill is presented with the help of following properties**</mark>

* Biller response{billerResponse} and additional information .
* BIller response contains summary of the bill and amount options .
* Amount Options explains the line items of a bill.Detailed items will be present if amountOption is set to true in the bill JSON. The property tagList contains the various line items.

<pre class="language-json" data-overflow="wrap"><code class="lang-json">// Given below is an example of the bill.

{
 	"genericResponse": null,
 	"billId": "c884a1a7-6824-499d-849c-acbb853f3cc6",
 	"refId": "118GQ1X2ndXcIXVkJTMRARlrLln23261125",
 	"billerId": "OTOE00005XXZ43",
 	"status": "BILL_FETCH_SUCCESS",
 	"actionType": "BILL_FETCH",
 	"userId": "FE41FE42BNK519012345",
 	"billerResponse": {
 	"billId": "c884a1a7-6824-499d-849c-acbb853f3cc6",
 	"amount": "100000",
 	"billDate": "2015-06-14",
 	"billNumber": "12303",
 	"billPeriod": "june",
 	"custConvFee": "0",
 	"couCustConvFee": "0",
 	"dueDate": "2015-06-20",
 	"customerName": "BBPS",
 	"amountOption": true,
 	"tagList": [
 	{
 	"name": "Late Payment Fee",
 	"value": "40"
 	},
 	{
 	"name": "Fixed Charges",
 	"value": "50"
 	},
 	{
 	"name": "Additional Charges",
 	"value": "60"
 	},
 	{
 	"name": "BASE_BILL_AMOUNT",
 	"value": "100000"
 	}
 	]
 	},
 	"additionalInfo": [
 	{
<strong>         "additionalInfoId": null,
</strong>         "name": "a",
         "value": "10"
         },
         {
         "additionalInfoId": null,
         "name": "a b",
         "value": "20"
         },
         {
         "additionalInfoId": null,
         "name": "a b c",
         "value": "30"
         },
         {
         "additionalInfoId": null,
         "name": "a b c d",
         "value": "40"
         }
         ],
         "customerParams": [
         {
         "name": "a",
         "value": "10",
         "type": null
         },
         {
         "name": "a b",
         "value": "20",
         "type": null
         },
         {
         "name": "a b c",
         "value": "30",
         "type": null
         },
         {
         "name": "a b c d",
         "value": "40",
         "type": null
         },
         {
         "name": "a b c d e",
         "value": "50",
         "type": null
         }
         ],
         "creationDate": "2022-11-22T11:25:14.807217",
         "modifiedDate": "2022-11-22T11:25:15.424531",
         "createdEpochDate": 1669096514,
         "modifiedEpochDate": 1669096515
}

</code></pre>

### The above example contains following line items

* **Late Payment Fee**
* **Fixed Charges**
* **Additional Charges**
* **BASE\_BILL\_AMOUNT**<br>

The tag BASE\_BILL\_AMOUNT is a special one which points to amount property in billerResponse

property of bill JSON.

If amount option is present , then the application needs to call master API and get AmountBreakUp Set.

Suggested method is before each presentation , the application should fetch AmountBreakUpSet.

additionalInfo is another property in Bill JSON. additionalInfo provides additional information

about the bill. This is for providing additional information to the user . Property additionalInfo does not have an impact on bill payment. Application can display the content of additionalInfo to the user.

Property customerParams is used by the biller to identify the bill for a customer.

An application should create the GUI dynamically making use of the parameters in the bill and with master data of the biller ,irrespective of biller type or any other parameters . In this way the application need not be re-written for any present or future biller in the BBPS ecosystem.

<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.digiledge.in/untitled/bbps/bbps-agent-integration/how-a-bill-is-presented.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
