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

# Bulk update subscription billing interval

> Updates the billing interval configuration for subscription contracts in bulk.

**Endpoint:**
`PUT /api/external/v2/bulk-automations/billing-interval`

**Authentication:**
- API Key (query parameter: api_key)
**Query Parameters:**
- `api_key` (required) – Your API key
- `intervalCount` (required) – Billing interval frequency (e.g. 1, 2, 3)
- `interval` (required) – Billing interval type (DAY, WEEK, MONTH, YEAR)
- `suppressEmailNotification` (optional) – Suppress email notification to customer (true/false)
- `allSubscriptions` (optional) – Apply to all subscriptions for the shop (true/false)

**Request Body:**
```json
{
  "subscriptionIds": "41982558492,41838280988"
}
```

**What This Endpoint Does:**
- Updates the billing interval (frequency + interval type) for provided subscription contracts
- Creates a bulk automation task
- Processes updates asynchronously in the background using AWS Step Functions

**How It Works:**
1. Merchant provides billing interval details via query parameters
2. Subscription IDs are provided as a comma-separated string in the request body (ignored if allSubscriptions=true)
3. System validates shop ownership and ensures no bulk job is currently running
4. Bulk automation job is created
5. Billing interval is updated for each subscription asynchronously

**Important Notes:**
- Only one bulk automation per shop can run at a time
- `interval` must match SellingPlanInterval enum values exactly (DAY, WEEK, MONTH, YEAR)
- Processing is asynchronous
- Previously generated orders are not modified
- If `allSubscriptions=true`, provided subscriptionIds will be ignored
- If `allSubscriptions=false`, subscriptionIds cannot be empty



## OpenAPI

````yaml /subscription/admin-api-swagger.json put /api/external/v2/bulk-automations/billing-interval
openapi: 3.0.1
info:
  description: >-
    Comprehensive API documentation for managing subscriptions, payments, and
    related operations. These APIs allow you to programmatically manage
    subscription lifecycles, handle payments, configure products, and integrate
    subscription functionality into your applications.
  title: Admin APIs
  version: 0.0.1
servers:
  - url: https://subscription-admin.appstle.com
security: []
tags:
  - description: >-
      Core APIs for managing the complete subscription lifecycle including
      creation, updates, pausing, resuming, and cancellation of subscriptions.
    name: Subscription Management
  - description: >-
      APIs for managing subscription payment methods, processing payments,
      handling payment retries, and updating billing information.
    name: Subscription Payments
  - description: >-
      APIs for managing subscription contracts including delivery schedules,
      pricing, order notes, billing cycles, and shipping addresses.
    name: Subscription Contracts
  - description: >-
      APIs for managing products within subscriptions including adding,
      removing, updating quantities, and swapping products.
    name: Subscription Products
  - description: >-
      APIs for handling billing operations, payment processing, and financial
      transactions related to subscriptions.
    name: Billing & Payments
  - description: >-
      APIs for managing discounts and promotional codes applied to
      subscriptions.
    name: Subscription Discounts
  - description: >-
      APIs for managing one-time add-on products that can be purchased alongside
      recurring subscription items.
    name: Subscription One-Time Products
  - description: >-
      APIs for managing subscription plans, pricing tiers, and plan
      configurations.
    name: Subscription Plans
  - description: >-
      APIs for managing customizable product boxes and bundles where customers
      can select multiple items.
    name: Build-a-Box & Bundles
  - description: >-
      APIs for managing the product catalog including product information,
      variants, and inventory.
    name: Product Catalog
  - description: >-
      APIs for managing operational settings, configurations, and administrative
      functions.
    name: Operations & Settings
  - description: >-
      APIs powering the customer-facing portal where subscribers can manage
      their own subscriptions.
    name: Customer Portal
  - description: APIs for managing customer information, profiles, and account details.
    name: Customers
  - description: >-
      APIs for retrieving aggregated subscription data, customer subscription
      history, and account-level subscription information.
    name: Subscription Data
  - description: >-
      APIs for managing delivery profiles, shipping rates, free shipping
      configuration, and delivery method options on subscriptions.
    name: Delivery & Shipping
  - description: >-
      APIs for managing storefront customization including custom CSS, theme
      settings, label translations, and merchant-defined widget configuration.
    name: Customization
  - description: >-
      APIs for configuring cancellation flows, retention offers, cancellation
      reason management, and win-back automation.
    name: Customer Retention
paths:
  /api/external/v2/bulk-automations/billing-interval:
    put:
      tags:
        - Operations & Settings
      summary: Bulk update subscription billing interval
      description: >-
        Updates the billing interval configuration for subscription contracts in
        bulk.


        **Endpoint:**

        `PUT /api/external/v2/bulk-automations/billing-interval`


        **Authentication:**

        - API Key (query parameter: api_key)

        **Query Parameters:**

        - `api_key` (required) – Your API key

        - `intervalCount` (required) – Billing interval frequency (e.g. 1, 2, 3)

        - `interval` (required) – Billing interval type (DAY, WEEK, MONTH, YEAR)

        - `suppressEmailNotification` (optional) – Suppress email notification
        to customer (true/false)

        - `allSubscriptions` (optional) – Apply to all subscriptions for the
        shop (true/false)


        **Request Body:**

        ```json

        {
          "subscriptionIds": "41982558492,41838280988"
        }

        ```


        **What This Endpoint Does:**

        - Updates the billing interval (frequency + interval type) for provided
        subscription contracts

        - Creates a bulk automation task

        - Processes updates asynchronously in the background using AWS Step
        Functions


        **How It Works:**

        1. Merchant provides billing interval details via query parameters

        2. Subscription IDs are provided as a comma-separated string in the
        request body (ignored if allSubscriptions=true)

        3. System validates shop ownership and ensures no bulk job is currently
        running

        4. Bulk automation job is created

        5. Billing interval is updated for each subscription asynchronously


        **Important Notes:**

        - Only one bulk automation per shop can run at a time

        - `interval` must match SellingPlanInterval enum values exactly (DAY,
        WEEK, MONTH, YEAR)

        - Processing is asynchronous

        - Previously generated orders are not modified

        - If `allSubscriptions=true`, provided subscriptionIds will be ignored

        - If `allSubscriptions=false`, subscriptionIds cannot be empty
      operationId: bulkUpdateBillingInterval
      parameters:
        - description: Your API Key
          in: query
          name: api_key
          required: true
          schema:
            type: string
        - in: query
          name: intervalCount
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: interval
          required: true
          schema:
            enum:
              - DAY
              - WEEK
              - MONTH
              - YEAR
              - $UNKNOWN
            type: string
        - in: query
          name: suppressEmailNotification
          required: false
          schema:
            type: boolean
        - in: query
          name: allSubscriptions
          required: false
          schema:
            type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubscriptionContractIdsWrapper'
        required: true
      responses:
        '204':
          content:
            application/json:
              example: {}
          description: Bulk billing interval update successfully queued and initiated.
        '400':
          description: >-
            Bad request - bulk operation already in progress or invalid
            parameters
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
        '500':
          description: Internal server error during bulk operation initialization
components:
  schemas:
    SubscriptionContractIdsWrapper:
      properties:
        subscriptionIds:
          type: string
      type: object

````