# Remove business rules from a ruleset

> For the complete machine-readable documentation index, see [llms.txt](https://apidocs.chargebee.com/llms.txt).


[Idempotency Supported](/docs/api/idempotency)

Removes one or more business rules from a ruleset without changing any of its other attributes. The rules themselves are not deleted and remain available to other rulesets.

Use this operation to take a rule out of a decision while keeping the rule itself, for example when it has been superseded by another rule in the same ruleset.

### Impacts

**

Business ruleset

**

The rules are removed from the ruleset and are no longer evaluated when the ruleset is applied, and `updated_at` and `updated_by` are set. The `name`, `description`, `execute_mode`, and `active` attributes of the ruleset are unchanged.

### Implementation Notes

-   The rules are not deleted. They keep their versions and stay available to other rulesets and to [Apply business rules](/docs/api/business_rules/apply-business-rules) with `rule_id`. To delete a rule outright, use [Delete a business rule](/docs/api/business_rules/delete-a-business-rule).
-   To keep a rule in the ruleset but stop evaluating it, use [Deactivate a business rule](/docs/api/business_rules/deactivate-a-business-rule) instead.

## Sample Request

#### cURL

```bash
curl  https://{site}.chargebee.com/api/v2/business_rulesets/quote_create_rules/remove_rules \
     -u {site_api_key}:\
     -d rules='[{"rule_id":"custom-uuid-3"}]'
```

#### .NET

```dotnet
using ChargeBee.Api;
using ChargeBee.Models;
using Newtonsoft.Json.Linq;

ApiConfig.Configure("{site}","{site_api_key}");
EntityResult result = BusinessRuleset.RemoveRules("quote_create_rules")
		.Rules(new JArray { "{\"rule_id\":\"custom-uuid-3\"}" })
		.Request();

BusinessRuleset businessRuleset = result.BusinessRuleset;
```

#### Go

```go
package main
import (
    "fmt"
    "github.com/chargebee/chargebee-go/v3"
    businessrulesetAction "github.com/chargebee/chargebee-go/v3/actions/businessruleset"
    "github.com/chargebee/chargebee-go/v3/models/businessruleset"
)
func main() {
    chargebee.Configure("{site_api_key}","{site}");
    res,err := businessrulesetAction.RemoveRules("quote_create_rules", &businessruleset.RemoveRulesRequestParams{
        Rules : []*businessruleset.RemoveRulesRuleParams{
            {
                RuleId : "custom-uuid-3",
            },
        },
    }).Request()
    if err != nil {
        fmt.Println(err)
    } else {
        BusinessRuleset := res.BusinessRuleset
    }
}
```

#### Go

```go
package main

import (
  "fmt"
  "github.com/chargebee/chargebee-go/v4"
)

func main() {
  config := &chargebee.ClientConfig{
    SiteName: "{site}",
    ApiKey: "{site_api_key}",
  }    
  client := chargebee.NewClient(config)
  req := &chargebee.BusinessRulesetRemoveRulesRequest{
    Rules : []*chargebee.BusinessRulesetRemoveRulesRule{
        {
            RuleId : "custom-uuid-3",
        },
    },
}
  res, err := client.BusinessRuleset.RemoveRules("quote_create_rules", req)
      if err != nil {
        fmt.Println(err)
    } else {
        BusinessRuleset := res.BusinessRuleset
    }
}
```

#### Java

```java
import com.chargebee.*;
import com.chargebee.ListResult;
import com.chargebee.models.*;
import com.chargebee.models.enums.*;
import java.io.IOException;
import java.util.List;
import com.chargebee.org.json.JSONArray;
import com.chargebee.org.json.JSONObject;

public class Sample {

    public static void main(String args[]) throws IOException, Exception {
        Environment.configure("{site}", "{site_api_key}");
        Result result = BusinessRuleset.removeRules("quote_create_rules")
            .rules(new JSONArray("[{\"rule_id\":\"custom-uuid-3\"}]"))
            .request();

        BusinessRuleset businessRuleset = result.businessRuleset();
    }
}
```

#### Java

```java
import com.chargebee.v4.client.ChargebeeClient;
import com.chargebee.v4.models.businessRuleset.BusinessRuleset;
import com.chargebee.v4.models.businessRuleset.params.BusinessRulesetRemoveRulesParams;
import com.chargebee.v4.models.businessRuleset.responses.BusinessRulesetRemoveRulesResponse;
import java.util.List;

public class BusinessRulesetRemoveRules {

    public static void main(String[] args) {
        ChargebeeClient client = ChargebeeClient.builder()
            .apiKey("{site_api_key}")
            .siteName("{site}")
            .build();

        BusinessRulesetRemoveRulesParams params = BusinessRulesetRemoveRulesParams.builder()
            .rules(List.of("[{\"rule_id\":\"custom-uuid-3\"}]"))
            .build();

        BusinessRulesetRemoveRulesResponse response = client
            .businessRulesets()
            .removeRules("quote_create_rules", params);

        BusinessRuleset businessRuleset = response.getBusinessRuleset();
    }
}
```

#### Node.js

```node
import Chargebee from "chargebee";

const chargebee = new Chargebee({
    site: "{site}",
    apiKey: "{site_api_key}",
});

try {
    const result = await chargebee.businessRuleset.removeRules("quote_create_rules", {
        rules: [
            {
                rule_id: "custom-uuid-3"
            }
        ]
    });

    console.log(result);
    const businessRuleset = result.business_ruleset;
} catch (err) {
    console.log(err);
}
```

#### PHP

```php
<?php

require __DIR__ . '/vendor/autoload.php';

use Chargebee\ChargebeeClient;

$chargebee = new ChargebeeClient(options: [
    "site" => "{site}",
    "apiKey" => "{site_api_key}",
]);
$result = $chargebee->businessRuleset()->removeRules("quote_create_rules", [
    "rules" => [
        [
            "rule_id" => "custom-uuid-3"
        ]
    ]
]);
$businessRuleset = $result->business_ruleset;
```

#### Python

```python
from chargebee import Chargebee

cb_client = Chargebee(api_key="{site_api_key}", site="{site}")
response = cb_client.BusinessRuleset.remove_rules("quote_create_rules",
    cb_client.BusinessRuleset.RemoveRulesParams(
        rules=[
            cb_client.BusinessRuleset.RemoveRulesRuleParams(
              rule_id="custom-uuid-3"
            )
        ]
    )
)
business_ruleset = response.business_ruleset
```

#### Ruby

```ruby
require 'chargebee'

ChargeBee.configure(:site => "{site}",
  :api_key => "{site_api_key}")

result = ChargeBee::BusinessRuleset.remove_rules("quote_create_rules",{
  :rules => "[{\"rule_id\":\"custom-uuid-3\"}]"
})

business_ruleset = result.business_ruleset
```

## Sample Response

```json
{
  "business_ruleset": {
    "id": "quote_create_rules",
    "name": "Quote creation rules",
    "description": "Rules evaluated when a quote is created.",
    "active": true,
    "execute_mode": "execute_all",
    "updated_at": 1788597182,
    "updated_by": "full_access_key_v1",
    "created_by": "full_access_key_v1",
    "created_at": 1788510782,
    "resource_version": 1788597182412,
    "object": "business_ruleset"
  }
}
```

## URL Format

**POST** https://[site].chargebee.com/api/v2/business_rulesets/{business-ruleset-id}/remove_rules

## Input Parameters

- `rules` (optional)
  The business rules to remove from the ruleset. Each entry takes the `rule_id` of a rule that currently belongs to the ruleset. Pass the list as a JSON array.
  
  **Example →** `rules = [{"rule_id":"custom-uuid-3"}]`

## Returns

- `business_ruleset` (Business ruleset object)
  The business ruleset with the rules removed from its membership. The rules themselves are not deleted, and the ruleset's `name`, `description`, `execute_mode`, and `active` attributes are unchanged.
