> ## Documentation Index
> Fetch the complete documentation index at: https://integrations.docs.commenda.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> The Subscription object represents a recurring billing arrangement with a contact, automatically generating invoices at regular intervals.

**The Subscription Data Model** represents a recurring billing arrangement with a contact. Subscriptions automatically generate invoices at regular intervals and track all related transactions.

* **Automated billing**: Generate invoices automatically based on billing interval
* **Complete history**: Track all invoices, payments, and transactions generated by the subscription
* **Flexible intervals**: Support for daily, weekly, monthly, and annual billing cycles
* **Status management**: Track subscription lifecycle from trial through cancellation

## Attributes

### Subscriptions Attributes

| Property                  | Type    | Description                                                        |
| ------------------------- | ------- | ------------------------------------------------------------------ |
| `rootfi_id`               | integer | Unique identifier for this subscription                            |
| `rootfi_created_at`       | string  | When this subscription was created in Commenda's system (ISO 8601) |
| `rootfi_updated_at`       | string  | When this subscription was last updated (ISO 8601)                 |
| `rootfi_integration_type` | enum    |                                                                    |
| `platform_id`             | string  | Platform-specific subscription identifier                          |
| `contact_id`              | string  | Reference to the Contact subscribed                                |
| `currency_id`             | enum    | ISO 4217 currency code for subscription charges                    |
| `status`                  | enum    | Current status of the subscription                                 |
| `amount`                  | double  | Recurring charge amount per billing cycle                          |
| `interval`                | enum    | Billing frequency unit (day, week, month, year)                    |
| `interval_count`          | integer | Number of intervals between billings (e.g., 2 = every 2 months)    |
| `next_billing_date`       | string  | Next scheduled billing date (ISO 8601)                             |
| `last_invoice_date`       | string  | Date when the last invoice was generated (ISO 8601)                |
| `last_payment_date`       | string  | Date when the last successful payment was received (ISO 8601)      |
| `invoice_ids`             | array   | References to all invoices generated from this subscription        |
| `transaction_ids`         | array   | References to all transactions (payments, refunds, fees)           |
| `line_item_ids`           | array   |                                                                    |
| `created_at`              | string  | Original creation timestamp from platform (ISO 8601)               |
| `updated_at`              | string  | Last update timestamp from platform (ISO 8601)                     |

### Status Enum Values

| Value        | Description                                       |
| ------------ | ------------------------------------------------- |
| `ACTIVE`     | Subscription is active and billing normally       |
| `IN_TRIAL`   | Subscription is in a trial period (no charges)    |
| `CANCELED`   | Subscription has been canceled and will not renew |
| `PAUSED`     | Subscription is temporarily paused                |
| `PAST_DUE`   | Subscription has failed payment and is past due   |
| `INCOMPLETE` | Subscription setup is incomplete                  |
| `UNKNOWN`    | Status cannot be determined                       |

### Interval Enum Values

| Value   | Description     |
| ------- | --------------- |
| `DAY`   | Daily billing   |
| `WEEK`  | Weekly billing  |
| `MONTH` | Monthly billing |
| `YEAR`  | Annual billing  |

## Expandable Attributes

Use the `expand` query parameter to include related objects:

* `expand=line_items` — includes the related Line Items object(s).

## Properties Supported

Fields accepted when creating or updating a record:

| Property            | Type    | Description                                                     |
| ------------------- | ------- | --------------------------------------------------------------- |
| `platform_id`       | string  | Platform-specific subscription identifier                       |
| `contact_id`        | string  | Reference to the Contact subscribed                             |
| `currency_id`       | enum    | ISO 4217 currency code for subscription charges                 |
| `status`            | enum    | Current status of the subscription                              |
| `amount`            | double  | Recurring charge amount per billing cycle                       |
| `interval`          | enum    | Billing frequency unit (day, week, month, year)                 |
| `interval_count`    | integer | Number of intervals between billings (e.g., 2 = every 2 months) |
| `next_billing_date` | string  | Next scheduled billing date (ISO 8601)                          |
| `last_invoice_date` | string  | Date when the last invoice was generated (ISO 8601)             |
| `last_payment_date` | string  | Date when the last successful payment was received (ISO 8601)   |
| `invoice_ids`       | array   | References to all invoices generated from this subscription     |
| `transaction_ids`   | array   | References to all transactions (payments, refunds, fees)        |
| `line_item_ids`     | array   |                                                                 |
| `created_at`        | string  | Original creation timestamp from platform (ISO 8601)            |
| `updated_at`        | string  | Last update timestamp from platform (ISO 8601)                  |
