# The Contract Term object

#### Recurring price

#### Recurring price

### The Contract Term object

```json
{
  "id": "ctrm_test_61SIqALsEreXk4vb616S0Sp34rSQ5rdid9OCzVKXYQrI",
  "type": "recurring_price",
  "lookup_key": "seats",
  "metadata": {},
  "recurring_price": {
    "price": "price_test_61SIqALsEreXk4vb616S0Sp34rSQ5rdid9OCzVKXYQrI",
    "quantity": "25",
    "starts_at": {
      "timestamp": "2027-01-01T00:00:00.000Z"
    },
    "ends_at": null
  }
}
```

#### Ad hoc product

#### Ad hoc product

### The Contract Term object

```json
{
  "id": "ctrm_test_onboarding",
  "type": "ad_hoc_product",
  "lookup_key": "onboarding",
  "metadata": {},
  "ad_hoc_product": {
    "product": "prod_test_61SIqALsEreXk4vb616S0Sp34rSQ5rdid9OCzVKXYQrI",
    "bill_schedule": {
      "type": "custom",
      "custom": [
        {
          "amount": {
            "currency": "usd",
            "value": 3000000
          },
          "bill_at": {
            "timestamp": "2027-01-01T00:00:00.000Z"
          }
        },
        {
          "amount": {
            "currency": "usd",
            "value": 2000000
          },
          "bill_at": {
            "timestamp": "2027-03-01T00:00:00.000Z"
          }
        }
      ]
    },
    "service_period": {
      "starts_at": {
        "timestamp": "2027-01-01T00:00:00.000Z"
      },
      "ends_at": {
        "timestamp": "2027-04-01T00:00:00.000Z"
      }
    },
    "tax_behavior": "unspecified"
  }
}
```

#### Pricing multiplier

#### Pricing multiplier

### The Contract Term object

```json
{
  "id": "ctrm_test_discount",
  "type": "pricing_override",
  "lookup_key": "discount",
  "metadata": {},
  "pricing_override": {
    "type": "multiply",
    "priority": 50,
    "criteria": [
      {
        "type": "include",
        "terms": [
          "ctrm_test_61SIqALsEreXk4vb616S0Sp34rSQ5rdid9OCzVKXYQrI"
        ]
      }
    ],
    "starts_at": {
      "timestamp": "2027-01-01T00:00:00.000Z"
    },
    "ends_at": null,
    "multiply": {
      "factor": "0.85"
    }
  }
}
```

#### Replacement pricing

#### Replacement pricing

### The Contract Term object

```json
{
  "id": "ctrm_test_seat_rate",
  "type": "pricing_override",
  "lookup_key": "seat_rate",
  "metadata": {},
  "pricing_override": {
    "type": "overwrite",
    "priority": 10,
    "criteria": [
      {
        "type": "include",
        "terms": [
          "ctrm_test_61SIqALsEreXk4vb616S0Sp34rSQ5rdid9OCzVKXYQrI"
        ]
      }
    ],
    "starts_at": {
      "timestamp": "2027-01-01T00:00:00.000Z"
    },
    "ends_at": null,
    "overwrite": {
      "unit_amount_decimal": "800"
    }
  }
}
```

## Attributes

- `id` (string)
  The stable ID of the term.

- `object` (string, value is "v2.billing.contract_term")
  String representing the object’s type. Objects of the same type share the same value of the object field.

- [`ad_hoc_product`](https://docs.stripe.com/api/v2/billing-contracts/contract-terms/object.md?query=ad_hoc_product) (object, nullable)
  Present when type is ad_hoc_product.

- `livemode` (boolean)
  Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.

- `lookup_key` (string, nullable)
  The lookup key, unique across all term types on this contract.

- `metadata` (map, nullable)
  Set of key-value pairs attached to the term.

- [`pricing_override`](https://docs.stripe.com/api/v2/billing-contracts/contract-terms/object.md?query=pricing_override) (object, nullable)
  Present when type is pricing_override.

- [`recurring_price`](https://docs.stripe.com/api/v2/billing-contracts/contract-terms/object.md?query=recurring_price) (object, nullable)
  Present when type is recurring_price.

- `type` (enum)
  The type of this term.
Possible enum values:
  - `ad_hoc_product`
    A product billed on explicit dates.

  - `pricing_override`
    A pricing override on recurring terms.

  - `recurring_price`
    A recurring V1 Price.
