---
title: "Get District Discome (UPPCL) API Reference"
description: "Resolve the district-level distribution company code required by UPPCL (operator 190)."
canonical: "https://eps.eko.in/docs/bbps-district-discome"
---


> **Canonical URL:** https://eps.eko.in/docs/bbps-district-discome
> This is a machine-readable Markdown version of the page for AI agents and LLMs. The primary (HTML) version lives at the canonical URL above.

# Get District Discome (UPPCL) API Reference

`GET https://staging.eko.in/ekoapi/v3/customer/payment/bbps/operators/190/district-discome`

Resolve the district-level distribution company code required by UPPCL (operator 190).

Some electricity billers require a district-level distribution company (discome) code. This applies to **operator 190 (UPPCL) only** — no other biller needs it, and the path is fixed to `190` rather than parameterised.

Show the agent each `label` and send the matching `value` as `district_discome` on both Fetch Bill and Pay Bill.

The list is returned under `param_attributes.list_elements`, not under `data`.

> View product & pricing details: [Bharat Bill Payment System (BBPS)](https://eps.eko.in/products/bbps-api.md)

## Query parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| initiator_id | string | yes | Registered mobile number of the API user (see Platform Credentials). e.g. 9962981729 |
| client_ref_id | string | no | Unique reference ID per API call, generated by your system (max 20 characters). e.g. 2026010100123456789 |

## Headers

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| developer_key | string | yes | Static API key issued to your account after KYC. |
| secret-key | string | yes | Dynamic per-request signature: base64(HMAC-SHA256(timestamp, base64(access_key))). |
| secret-key-timestamp | string | yes | Current time in milliseconds since UNIX epoch, used to compute secret-key. Must match server time. |
| content-type | string | yes | application/json e.g. application/json |

## Response

⭐ marks fields highlighted as verifiable.

| Field | Type | Description |
| --- | --- | --- |
| status | number | Primary success indicator (0 = success). |
| message | string | Human-readable response / error message. |
| response_status_id | number | Granular status id; see the shared error-codes table. |
| response_type_id | number | A unique id for every possible response shape (success or error) — useful for client logic branching and analytics. |
| data | object | API-specific response payload. |
| data.param_attributes ⭐ | object | Wrapper for the district list — returned at the top level of the response, not under `data`. |
| data.param_attributes.list_elements ⭐ | array | One entry per UPPCL district. |
| data.param_attributes.list_elements.label ⭐ | string | District name to show the agent. |
| data.param_attributes.list_elements.value ⭐ | string | The `district_discome` value to pass to Fetch Bill and Pay Bill for operator 190. |

## Response types

Branch on `response_type_id` to decide the next call:

| response_type_id | Meaning | Next step |
| --- | --- | --- |
| 2110 | District list returned — pass the chosen `value` as `district_discome` when fetching the bill. | [bbps-fetch-bill](https://eps.eko.in/docs/bbps-fetch-bill.md) |
| 2434 | Districts could not be fetched. The envelope still carries `status: 0`, so branch on this id rather than on `status`. | — |

## Example response

`response_type_id` `2110` — District list returned — pass the chosen `value` as `district_discome` when fetching the bill.. Next step: [bbps-fetch-bill](https://eps.eko.in/docs/bbps-fetch-bill.md).

```json
{
  "response_status_id": 0,
  "param_attributes": {
    "list_elements": [
      {
        "label": "Agra",
        "value": "Agra-DVVNL"
      },
      {
        "label": "Lucknow",
        "value": "Lucknow-MVVNL"
      },
      {
        "label": "Kanpur Nagar",
        "value": "Kanpur Nagar-KESCO"
      },
      {
        "label": "Varanasi",
        "value": "Varanasi-PUVNL"
      }
    ]
  },
  "response_type_id": 2110,
  "message": "Success",
  "status": 0
}
```

## Error scenarios

| Status | response_type_id | Scenario |
| --- | --- | --- |
| 200 | `2434` — Districts could not be fetched. The envelope still carries `status: 0`, so branch on this id rather than on `status`. | Districts unavailable — note this still returns status 0, so branch on response_type_id |
