---
title: "Get Recharge Plans API Reference"
description: "List the prepaid mobile / DTH recharge plans available for an operator and circle."
canonical: "https://eps.eko.in/docs/bbps-recharge-plans"
---


> **Canonical URL:** https://eps.eko.in/docs/bbps-recharge-plans
> 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 Recharge Plans API Reference

`GET https://staging.eko.in/ekoapi/v3/customer/payment/bbps/recharge/{customer_mobile}/operator/plans`

List the prepaid mobile / DTH recharge plans available for an operator and circle.

Lists available recharge plans for an operator and circle. Plans arrive under `dependent_params` at the top level (not under `data`): the `req_list` entry's `value` array holds the plans, and its `type_metadata[].headers` describe which field is the price, the validity and the description.

**`circleid` is the `circle_area` value** returned by Get Operator Code and Circle — the parameter is renamed between the two calls. Once the customer picks a plan, submit its `amount` through Pay Bill.

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

## Path parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| customer_mobile | string | yes | Customer's mobile number. e.g. 9876543210 |

## 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 |
| phone_operator_code | string | yes | Operator code from the Get Operator Code and Circle response. e.g. 400 |
| circleid | string | yes | Circle identifier — the value returned as `circle_area` by Get Operator Code and Circle. Note the name differs between the two endpoints. e.g. 5 |

## 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.dependent_params ⭐ | array | Plan groups — returned at the top level, not under `data`. The entry named `req_list` carries the plans. |
| data.dependent_params.name | string | Group name; `req_list` holds the plan list. |
| data.dependent_params.value ⭐ | array | The available plans. |
| data.dependent_params.value.amount ⭐ | string | Plan price in rupees. Send this as `amount` to Pay Bill. |
| data.dependent_params.value.validity ⭐ | string | How long the plan is valid for. |
| data.dependent_params.value.plan_description ⭐ | string | What the plan includes. |
| data.dependent_params.type_metadata | array | Column metadata describing which plan field is the price, the validity and the description. |

## Response types

Branch on `response_type_id` to decide the next call:

| response_type_id | Meaning | Next step |
| --- | --- | --- |
| 1804 | Plans returned — let the customer pick one, then submit its `amount` as the recharge. | [bbps-pay-bill](https://eps.eko.in/docs/bbps-pay-bill.md) |
| 1805 | Plans could not be fetched. The envelope still carries `status: 0`, so branch on this id. The recharge can still proceed with an amount entered by the agent. | [bbps-pay-bill](https://eps.eko.in/docs/bbps-pay-bill.md) |

## Example response

`response_type_id` `1804` — Plans returned — let the customer pick one, then submit its `amount` as the recharge.. Next step: [bbps-pay-bill](https://eps.eko.in/docs/bbps-pay-bill.md).

```json
{
  "response_status_id": 0,
  "dependent_params": [
    {
      "type_metadata": [
        {
          "headers": [
            {
              "name": "amount",
              "value": "price"
            },
            {
              "name": "validity",
              "value": "validity"
            },
            {
              "name": "plan_description",
              "value": "plan_description"
            }
          ],
          "dependent_params": [
            {
              "name": "amount",
              "value": "amount"
            }
          ]
        }
      ],
      "name": "req_list",
      "value": [
        {
          "amount": "224",
          "validity": "30 Days",
          "plan_description": "Unlimited Calls + 4GB data ..."
        },
        {
          "amount": "349",
          "validity": "28 Days",
          "plan_description": "1.5 GB/day + Unlimited Calls ..."
        }
      ]
    }
  ],
  "response_type_id": 1804,
  "message": "success",
  "status": 0
}
```

## Error scenarios

| Status | response_type_id | Scenario |
| --- | --- | --- |
| 200 | `1805` — Plans could not be fetched. The envelope still carries `status: 0`, so branch on this id. The recharge can still proceed with an amount entered by the agent. | Plans unavailable — note this still returns status 0, so branch on response_type_id |
