# BBPS Agent API

<mark style="color:blue;">**Bill Fetch API**</mark>

**API for fetching a Customer Bill, based on Biller Category, Customer Parameters etc.**

| Endpoint                                                                        |
| ------------------------------------------------------------------------------- |
| **Request:&#x20;**<mark style="color:blue;">**POST /couapp/bills/fetch**</mark> |

<mark style="color:blue;">**Request Parameters**</mark>

**The various parameters are explained below:**

| Parent Property/Element                    | Property/Element Name  | Mandatory | Data Type     | Description                                                          |
| ------------------------------------------ | ---------------------- | --------- | ------------- | -------------------------------------------------------------------- |
| **\[ROOT]** (No parent property / element) | tenantId               | M         | Alphanumeric  | Fixed Length – 4                                                     |
|                                            | billerId               | M         | Alphanumeric  | Unique ID assigned to the Biller by NPCI Eg: BSNL00000NATHL          |
|                                            | billerName             | M         | String        | Name of the biller                                                   |
|                                            | billerCategory         | M         | String        | Category of biler                                                    |
|                                            | clientReqId            | C         | String        | A unique id which the client has to provide                          |
|                                            | macAdress              | C         | Alphanumeric  | MAC Address of the Agent Server                                      |
|                                            | customerMobNo          | M         | String        | Mobile of the Customer, on whose behalf the Agent is paying the Bill |
|                                            | paymentChannel         | M         | String        | Payment Channel of Agent                                             |
|                                            | deviceBlockTags        | M         | Array of tags | Device block tags of Agent                                           |
|                                            | customerParamsReques t | M         | Object        | Unique parameters used for identifying a Customer Bill               |
| **customerParamsReq uest**                 | tags                   | M         | List          | List of customer params                                              |
| **tags**                                   | name                   | M         | String        | Name of customer param                                               |
| **tags**                                   | value                  | M         | String        | Value of customer param                                              |

<mark style="color:blue;">**Response Parameters**</mark>

**The various parameters are explained below:**

| Parent Property/Element                    | Property/Element Name | Mandatory | Data Type | Description                                             |
| ------------------------------------------ | --------------------- | --------- | --------- | ------------------------------------------------------- |
| **\[ROOT]** (No parent property / element) | billId                | C         | UUID      | Machine-generated Unique ID for a Bill, used internally |
|                                            | refId                 | C         | String    | Will be null                                            |
|                                            | billerId              | C         | String    | Will be null                                            |
|                                            | status                | C         | String    | Will be null                                            |
|                                            | actionType            | C         | String    | Will be null                                            |
|                                            | billerResponse        | C         | String    | Will be null                                            |
|                                            | additionalInfo        | C         | String    | Will be null                                            |
|                                            | customerParams        | C         | String    | Will be null                                            |
|                                            | creationDate          | C         | String    | Will be null                                            |
|                                            | modifiedDate          | C         | String    | Will be null                                            |
|                                            | createdEpochDate      | C         | String    | Will be null                                            |
|                                            | modifiedEpochDate     | C         | String    | Will be null                                            |
| generalResp                                | statusCode            | M         | Numeric   | 200- SUCCESS Other than 200-Failure                     |
|                                            | status                | M         | String    | It is either “Success” or failure                       |
|                                            | message               | M         | String    | Contains the reason message for failure / success       |
|                                            | remarks               | C         | String    |                                                         |

<mark style="color:blue;">**Json Formatted Request Example**</mark>

```json
    "tenantId": "FE41",
    "billerId": "DKAFEE000PUN01"
    "customerParamsRequest":
     { "tags": 
     [
    {
    "name": "Admission No/Application No/GR No", 
    "value": "LF3130"
    },
    {
    "name": "Date Of Birth (DD-MM-YYYY)"
    },
    {
    "name": "Mobile No"
    }
    ]
    },
    "billerName": "Little Flower Convent School", 
    "billerCategory": "Education Fees", 
    "macAdress": null,
    "customerMobNo": "8281970522”, 
    "paymentChannel": "Agent", 
    "deviceBlockTags": 
    [
    {
    "name": "MOBILE", 
    "value": "9591810218"
    },
    {
    "name": "GEOCODE",
    "value": "28.6139,78.5555"
    },
    {
    "name": "POSTAL_CODE",
    "value": "600001"
    },
    {
    "name": "TERMINAL_ID",
    "value": "333001"
    }
    ]
    }
```

<mark style="color:blue;">**Json Formatted Response Example**</mark>

```json
    {
    "genericResponse": 
    { "statusCode": "200",
    "status": "success",
    "message": "Bill Fetch Initiated", 
    "remarks": ""
    },
    "billId": "1ced7566-1add-4e01-9ed6-04cd67ac9684", 
    "refId": null,
    "billerId": null,
    "status": null, "actionType": null,
    "userId": null, "billerResponse": null, 
    "additionalInfo": null, 
    "customerParams": null, 
    "creationDate": null, 
    "modifiedDate": null, 
    "createdEpochDate": 0,
    "modifiedEpochDate": 0
    }
```

<mark style="color:blue;">**Initiating Channel Vs Device Block Parameters**</mark>

| Initiating Channel                | Device Block Tags                           |
| --------------------------------- | ------------------------------------------- |
| Bank Branch                       | IFSC, MOBILE, GEOCODE, POSTAL\_CODE         |
| Mobile (Pre-login)                | IP, IMEI, OS, APP                           |
| Mobile Banking(Post-login)        | IP, IMEI, OS, APP                           |
| Internet (Pre-login)              | IP, MAC                                     |
| Internet Banking (Post-login) ATM | <p>IP, MAC</p><p>TERMINAL\_ID</p>           |
| Kiosk                             | TERMINAL\_ID                                |
| Agent                             | TERMINAL\_ID, MOBILE, GEOCODE, POSTAL\_CODE |
| Business Correspondent            | TERMINAL\_ID, MOBILE, GEOCODE, POSTAL\_CODE |
