# DELETE /plans/{{plan_id}} — Delete Plan

> Product: **Pabbly Subscription Billing** (v1)
> Base URL: `https://payments.pabbly.com/api/v1`
> Auth: Basic via `Authorization` header
> Canonical: `/subscription-billing/plans/delete-plan`

This API can be used to delete the plan. The API will be fired with DELETE request along with the Plan ID in the API link. In response you will get the successful message of delete plan.

**Path parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| plan_id | string | Yes |  |

**Response (200)** — Delete Plan:

```json
{
    "status": "success",
    "message": "Plan deleted",
    "data": {
        "plan_active": "true",
        "createdAt": "2021-02-12T11:45:58.849Z",
        "updatedAt": "2021-02-12T11:45:58.849Z",
        "id": "60266a765694207fb5495106",
        "product_id": "5ff95380f863294e0d7df932",
        "plan_name": "Monthly Plan",
        "plan_code": "monthly-plan",
        "price": 10,
        "billing_period": "m",
        "billing_period_num": "1",
        "billing_cycle": "lifetime",
        "billing_cycle_num": null,
        "trial_period": 0,
        "setup_fee": 0,
        "plan_description": ""
    }
}
```

**Code examples:**

_cURL_

```curl
curl -X DELETE https://payments.pabbly.com/api/v1/plans/{{plan_id}} \
  -u {{YOUR_API_KEY}}:{{YOUR_SECRET_KEY}}
```

_Ruby_

```ruby
require 'net/http'
require 'json'

uri = URI('https://payments.pabbly.com/api/v1/plans/{{plan_id}}')
request = Net::HTTP::Delete.new(uri)
request.basic_auth '{{YOUR_API_KEY}}', '{{YOUR_SECRET_KEY}}'

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(request)
end

data = JSON.parse(response.body)
```

_Python_

```python
import requests
from requests.auth import HTTPBasicAuth

response = requests.delete(
    'https://payments.pabbly.com/api/v1/plans/{{plan_id}}',
    auth=HTTPBasicAuth('{{YOUR_API_KEY}}', '{{YOUR_SECRET_KEY}}'),
)

data = response.json()
```

_PHP_

```php
<?php
$ch = curl_init('https://payments.pabbly.com/api/v1/plans/{{plan_id}}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($ch, CURLOPT_USERPWD, '{{YOUR_API_KEY}}:{{YOUR_SECRET_KEY}}');

$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
```

_Java_

```java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.Base64;

String credentials = Base64.getEncoder().encodeToString("{{YOUR_API_KEY}}:{{YOUR_SECRET_KEY}}".getBytes());

HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder builder = HttpRequest.newBuilder()
    .uri(URI.create("https://payments.pabbly.com/api/v1/plans/{{plan_id}}"))
    .header("Authorization", "Basic " + credentials)
    .DELETE();

HttpRequest request = builder.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
```

_Node.js_

```node
const credentials = Buffer.from('{{YOUR_API_KEY}}:{{YOUR_SECRET_KEY}}').toString('base64');

const response = await fetch('https://payments.pabbly.com/api/v1/plans/{{plan_id}}', {
  method: 'DELETE',
  headers: {
    'Authorization': `Basic ${credentials}`,
  },
});

const data = await response.json();
```

_Go_

```go
package main

import (
    "fmt"
    "io"
    "net/http"
)

func main() {
    req, _ := http.NewRequest("DELETE", "https://payments.pabbly.com/api/v1/plans/{{plan_id}}", nil)
    req.SetBasicAuth("{{YOUR_API_KEY}}", "{{YOUR_SECRET_KEY}}")

    res, _ := http.DefaultClient.Do(req)
    defer res.Body.Close()
    body, _ := io.ReadAll(res.Body)
    fmt.Println(string(body))
}
```

_.NET_

```dotnet
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;

var credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes("{{YOUR_API_KEY}}:{{YOUR_SECRET_KEY}}"));

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Delete, "https://payments.pabbly.com/api/v1/plans/{{plan_id}}");
request.Headers.TryAddWithoutValidation("Authorization", $"Basic {credentials}");

var response = await client.SendAsync(request);
var data = await response.Content.ReadAsStringAsync();
Console.WriteLine(data);
```

---

**Other endpoints in Plans:**

- [POST /plan/create — Create Plan](/subscription-billing/plans/create-plan)
- [GET /plans — List All Plans](/subscription-billing/plans/list-all-plans)
- [GET /plan/{{plan_id}} — Get single Plan by Plan ID](/subscription-billing/plans/get-single-plan-by-plan-id)
- [GET /plans/{{product_id}} — List All Plans By Product ID](/subscription-billing/plans/list-all-plans-by-product-id)
- [PUT /plan/update/{{plan_id}} — Update Plan](/subscription-billing/plans/update-plan)

