Skip to main content
POST
/
v1
/
billing.preview_multi_attach
Typescript (SDK)
import { Autumn } from 'autumn-js'

const autumn = new Autumn()

const result = await autumn.billing.previewMultiAttach({
  customerId: "cus_123",
  plans: [
    {
      planId: "pro_plan",
    },
    {
      planId: "addon_seats",
      featureQuantities: [
        {
          featureId: "seats",
          quantity: 5,
        },
      ],
    },
  ],
});
{
  "customerId": "charles",
  "lineItems": [
    {
      "display_name": "Pro seed",
      "description": "Pro seed - Base Price (from 18 Feb 2026 to 18 Mar 2026)",
      "subtotal": 20,
      "total": 20,
      "discounts": []
    }
  ],
  "subtotal": 20,
  "total": 20,
  "currency": "usd"
}

Body Parameters

Response

{
  "customerId": "charles",
  "lineItems": [
    {
      "display_name": "Pro seed",
      "description": "Pro seed - Base Price (from 18 Feb 2026 to 18 Mar 2026)",
      "subtotal": 20,
      "total": 20,
      "discounts": []
    }
  ],
  "subtotal": 20,
  "total": 20,
  "currency": "usd"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

x-api-version
string
default:2.1
required

Body

application/json
customer_id
string
required

The ID of the customer to attach the plans to.

plans
object[]
required

The list of plans to attach to the customer.

Minimum array length: 1
entity_id
string

The ID of the entity to attach the plans to.

free_trial
FreeTrialParams · object

Free trial configuration applied to all plans. Pass an object to set a custom trial, or null to remove any trial.

invoice_mode
object

Invoice mode creates a draft or open invoice and sends it to the customer, instead of charging their card immediately.

discounts
AttachDiscount · object[]

List of discounts to apply. Each discount can be an Autumn reward ID, Stripe coupon ID, or Stripe promotion code.

success_url
string

URL to redirect to after successful checkout.

checkout_session_params
object

Additional parameters to pass into the creation of the Stripe checkout session.

redirect_mode
enum<string>
default:if_required

Controls when to return a checkout URL. 'always' returns a URL even if payment succeeds, 'if_required' only when payment action is needed, 'never' disables redirects.

Available options:
always,
if_required,
never
new_billing_subscription
boolean

Only applicable when the customer has an existing Stripe subscription. If true, creates a new separate subscription instead of merging into the existing one.

customer_data
CustomerData · object

Customer details to set when creating a customer

entity_data
object

Response

200 - application/json

OK

customer_id
string
required

The ID of the customer.

line_items
object[]
required

List of line items for the current billing period.

subtotal
number
required

The total amount in cents before discounts for the current billing period.

total
number
required

The final amount in cents after discounts for the current billing period.

currency
string
required

The three-letter ISO currency code (e.g., 'usd').

incoming
object[]
required

Products or subscription changes being added or updated.

outgoing
object[]
required

Products or subscription changes being removed or ended.

next_cycle
object

Preview of the next billing cycle, if applicable. This shows what the customer will be charged in subsequent cycles.

expand
string[]

Expand the response with additional data.