# Plans API

> Read the Edesy Collect plan catalog and your current plan, start a Razorpay auto-pay subscription, or cancel it through the REST API.

Source: https://edesy.in/docs/collect/api/plans

Plan endpoints return the Collect plan catalog, your current subscription, and let you start or cancel Razorpay auto-pay. Starting a subscription returns a Razorpay subscription ID for checkout; your plan activates and the fee is credited to your wallet only after the first charge succeeds. Prices exclude 18% GST.

## Plan catalog

```
GET /v1/collect/plans
```

```json
{
  "data": [
    { "name": "collect-starter", "monthly_fee_inr": 1499, "included_numbers": 1, "included_calls": 1111, "overage_rate_per_call": 0.9 },
    { "name": "collect-growth", "monthly_fee_inr": 3499, "included_numbers": 1, "included_calls": 4000, "overage_rate_per_call": 0.75 },
    { "name": "collect-scale", "monthly_fee_inr": 10499, "included_numbers": 1, "included_calls": 16666, "overage_rate_per_call": 0.6 }
  ]
}
```

`included_calls` is an estimate (fee less the included number's rental, divided by the per-call rate), not a separate allowance. See [Plans and Pricing](https://edesy.in/docs/collect/getting-started/plans-and-pricing).

## Current plan

```
GET /v1/collect/plan
```

Returns your plan (`plan_name`, `monthly_grant`, `next_grant_at`, `status`, and `subscription_status` for auto-pay), or `{"data": null}` if you have none.

## Subscribe

```
POST /v1/collect/plan
```

```json
{ "plan": "collect-growth" }
```

```json
{ "data": { "subscription_id": "sub_...", "razorpay_key_id": "rzp_..." } }
```

Open Razorpay checkout with these values to authorise auto-pay. Requires approved KYC (`403 KYC_NOT_APPROVED` otherwise). An unknown plan returns `400 unknown plan`.

## Cancel

```
POST /v1/collect/plan/cancel
```

Stops future monthly charges and credits. Your existing wallet balance stays usable. Returns `{"status": "ok"}`.
