# Subscription models

A subscription model determines how automatic [order subscriptions](https://docs.commercelayer.io/core-api-reference/order_subscriptions) using [recurring order copies](https://docs.commercelayer.io/core-api-reference/recurring_order_copies) are generated for the associated market. The subscription model defines which are the subscription frequencies available in that market. Those [available frequencies](#subscription-frequencies) can be specified for the orders' [line items](https://docs.commercelayer.io/core-api-reference/line_items#choosing-line-items-that-generate-subscriptions). Based on the line items that have a frequency, the necessary order subscriptions are generated, according to the specified [subscription strategy](#subscription-strategies).

### Subscription frequencies

To set the allowed subscription frequencies, use the `frequencies` attribute and populate it with an array of strings chosen from this list:

* `hourly`
* `daily`
* `weekly`
* `monthly`
* `two-month`
* `three-month`
* `four-month`
* `six-month`
* `yearly`

{% hint style="info" %}
If you need to use a custom frequency that is not in the above list, [crontab expressions](https://crontab.guru/) are also accepted, as long as not more frequent than every hour (e.g. at minute 30 of every hour: `30 * * * *` is allowed, at every minute of the first day of the month: `* * 1 * *` is not allowed )
{% endhint %}

### Subscription strategies

To set the subscription strategy for the associated market, use the `strategy` attribute. At the moment, two strategies are available:

* `by_frequency` — as many order subscriptions as the different frequencies specified for the source order’s line items are generated, each with the related order subscription items (default strategy).
* `by_line_items` — an order subscription is generated for any source order’s line item that has a frequency, each with the related order subscription item.

### Automatic subscription activation and cancellation

By default, the generated order subscriptions are automatically activated. Set the `auto_activate` attribute to `false` if you want to override this behavior.

If you set the `auto_cancel` attribute to `true` (default is `false`) the created order subscriptions will be automatically cancelled in case the source order is cancelled.

<details>

<summary>Data model</summary>

Check the related [ER diagram](https://commercelayer.io/docs/data-model/subscriptions-and-order-copies) and explore the flowchart that illustrates how the subscription model resource relates to the other API entities.

</details>

<details>

<summary>How-to</summary>

Check the related [guide](https://app.gitbook.com/s/-Lk-ezuDClaMavTqnRi0/placing-orders/subscriptions/configuring-a-subscription-model) to learn more about how to configure a subscription model and generate automatic subscriptions from a source order.

</details>
