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

# API

> Changelog for the Kelviq API

<Update label="Latest Updates" description="July 14, 2026">
  ### New Features

  #### Subscription List, Create, and Retrieve APIs

  The Subscriptions API now includes three new endpoints for reading and creating subscriptions:

  * **`GET /subscriptions/` — List subscriptions**: Retrieves a paginated list for a customer. The `customer_id` query parameter is required.
  * **`POST /subscriptions/create/` — Create a subscription**: Creates a subscription directly for a customer without requiring a checkout session.
  * **`GET /subscriptions/{subscriptionId}/` — Retrieve a subscription**: Retrieves a subscription by its Kelviq UUID.

  Subscription list, create, and retrieve responses now include:

  * `files` — downloadable files attached to the subscription's plan.
  * `links` — external links attached to the plan.
  * `license` — issued licenses associated with the subscription.

  #### One-Time Charges

  The new `POST /charges/` endpoint immediately charges a customer's saved payment method without creating a checkout session. The `chargePeriod` must be `ONE_TIME`.
</Update>

<Update label="Custom Dynamic Amounts" description="May 7, 2026">
  ### New Features

  #### Custom Dynamic Amount Support

  Added support for custom dynamic amounts on the checkout page. You can now pass a specific `custom_amount` directly via the checkout API, which is ideal for usage-based, variable, or custom-quoted pricing models.

  * **`custom_amount`**: The specific numeric amount to be charged to the customer. This overrides static plan pricing and is ideal for usage-based, variable, or custom-quoted pricing models.

  * **`tax_behavior`**: Specifies how taxes should be applied to the custom amount. For example, setting it to "INCLUSIVE" means the tax is already factored into the custom\_amount, while "EXCLUSIVE" would add the tax on top of the base amount.

  * **`currency_code`**: The three-letter ISO currency code (e.g., "INR", "USD") that defines the currency in which the custom\_amount should be processed.

  ```json theme={null}
  {
    "planIdentifier": "automatic-pricing",
    "successUrl": "[https://www.kelviq.com/](https://www.kelviq.com/)",
    "chargePeriod": "MONTHLY",
    "customerId": "sam-altman0010",
    "custom_amount": 1200,
    "tax_behavior": "INCLUSIVE",
    "currency_code": "INR"
  }
  ```
</Update>

<Update label="v2.1.0" description="May 7, 2026">
  ### New Features

  #### Enhanced Checkout Configuration

  You can now pass additional configuration parameters when [creating a checkout session via the API](https://docs.kelviq.com/api-reference/checkout/create-a-checkout-session). These new fields allow for tighter control over the customer experience:

  * **`lockEmail`**: When set to `true`, the email address field on the checkout page is disabled, preventing customers from changing the email associated with the session.
  * **`discountsEnabled`**: A boolean to explicitly allow or disallow discount code application on the checkout page.
  * **`defaultBillingCountry`**: Pre-fills the billing country field (e.g., `"IN"`).

  **Example Payload:**

  ```json theme={null}
  {
    "planIdentifier": "base",
    "successUrl": "[https://kelviq.com/checkout/success](https://kelviq.com/checkout/success)",
    "chargePeriod": "MONTHLY",
    "customerId": "sachin",
    "lockEmail": true,
    "discountsEnabled": false,
    "defaultBillingCountry": "IN"
  }
  ```
</Update>
