POST
/
subscriptions
/
{id}
/
change
/
execute
Execute subscription plan change
curl --request POST \
  --url https://api.cloud.flexprice.io/v1/subscriptions/{id}/change/execute \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '{
  "billing_cadence": "RECURRING",
  "billing_cycle": "anniversary",
  "billing_period": "MONTHLY",
  "billing_period_count": 123,
  "metadata": {},
  "proration_behavior": "create_prorations",
  "target_plan_id": "<string>"
}'
{
  "change_type": "upgrade",
  "credit_grants": [
    {
      "cadence": "ONETIME",
      "created_at": "<string>",
      "created_by": "<string>",
      "credits": 123,
      "environment_id": "<string>",
      "expiration_duration": 123,
      "expiration_duration_unit": "DAY",
      "expiration_type": "NEVER",
      "id": "<string>",
      "metadata": {},
      "name": "<string>",
      "period": "DAILY",
      "period_count": 123,
      "plan_id": "<string>",
      "priority": 123,
      "scope": "PLAN",
      "status": "published",
      "subscription_id": "<string>",
      "tenant_id": "<string>",
      "updated_at": "<string>",
      "updated_by": "<string>"
    }
  ],
  "effective_date": "<string>",
  "invoice": {
    "amount_due": 123,
    "amount_paid": 123,
    "amount_remaining": 123,
    "billing_period": "<string>",
    "billing_reason": "<string>",
    "billing_sequence": 123,
    "coupon_applications": [
      {
        "applied_at": "<string>",
        "coupon_association_id": "<string>",
        "coupon_id": "<string>",
        "coupon_snapshot": {},
        "created_at": "<string>",
        "created_by": "<string>",
        "currency": "<string>",
        "discount_percentage": 123,
        "discount_type": "fixed",
        "discounted_amount": 123,
        "environment_id": "<string>",
        "final_price": 123,
        "id": "<string>",
        "invoice_id": "<string>",
        "invoice_line_item_id": "<string>",
        "metadata": {},
        "original_price": 123,
        "status": "published",
        "subscription_id": "<string>",
        "tenant_id": "<string>",
        "updated_at": "<string>",
        "updated_by": "<string>"
      }
    ],
    "created_at": "<string>",
    "created_by": "<string>",
    "currency": "<string>",
    "customer": {
      "address_city": "<string>",
      "address_country": "<string>",
      "address_line1": "<string>",
      "address_line2": "<string>",
      "address_postal_code": "<string>",
      "address_state": "<string>",
      "created_at": "<string>",
      "created_by": "<string>",
      "email": "<string>",
      "environment_id": "<string>",
      "external_id": "<string>",
      "id": "<string>",
      "metadata": {},
      "name": "<string>",
      "status": "published",
      "tenant_id": "<string>",
      "updated_at": "<string>",
      "updated_by": "<string>"
    },
    "customer_id": "<string>",
    "description": "<string>",
    "due_date": "<string>",
    "finalized_at": "<string>",
    "id": "<string>",
    "idempotency_key": "<string>",
    "invoice_number": "<string>",
    "invoice_pdf_url": "<string>",
    "invoice_status": "DRAFT",
    "invoice_type": "SUBSCRIPTION",
    "line_items": [
      {
        "amount": 123,
        "created_at": "<string>",
        "created_by": "<string>",
        "currency": "<string>",
        "customer_id": "<string>",
        "display_name": "<string>",
        "entity_id": "<string>",
        "entity_type": "<string>",
        "id": "<string>",
        "invoice_id": "<string>",
        "metadata": {},
        "meter_display_name": "<string>",
        "meter_id": "<string>",
        "period_end": "<string>",
        "period_start": "<string>",
        "plan_display_name": "<string>",
        "plan_id": "<string>",
        "price_id": "<string>",
        "price_type": "<string>",
        "price_unit": "<string>",
        "price_unit_amount": 123,
        "price_unit_id": "<string>",
        "quantity": 123,
        "status": "<string>",
        "subscription_id": "<string>",
        "tenant_id": "<string>",
        "updated_at": "<string>",
        "updated_by": "<string>",
        "usage_analytics": [
          {
            "cost": "<string>",
            "event_count": 123,
            "percentage": "<string>",
            "source": "<string>",
            "usage": "<string>"
          }
        ],
        "usage_breakdown": [
          {
            "cost": "<string>",
            "event_count": 123,
            "grouped_by": {},
            "percentage": "<string>",
            "usage": "<string>"
          }
        ]
      }
    ],
    "metadata": {},
    "overpaid_amount": 123,
    "paid_at": "<string>",
    "payment_status": "INITIATED",
    "period_end": "<string>",
    "period_start": "<string>",
    "status": "<string>",
    "subscription": {
      "active_pause_id": "<string>",
      "billing_anchor": "<string>",
      "billing_cadence": "RECURRING",
      "billing_cycle": "anniversary",
      "billing_period": "MONTHLY",
      "billing_period_count": 123,
      "cancel_at": "<string>",
      "cancel_at_period_end": true,
      "cancelled_at": "<string>",
      "collection_method": "<string>",
      "commitment_amount": 123,
      "coupon_associations": [
        {
          "coupon": {
            "amount_off": 123,
            "cadence": "once",
            "created_at": "<string>",
            "created_by": "<string>",
            "currency": "<string>",
            "duration_in_periods": 123,
            "environment_id": "<string>",
            "id": "<string>",
            "max_redemptions": 123,
            "metadata": {},
            "name": "<string>",
            "percentage_off": 123,
            "redeem_after": "<string>",
            "redeem_before": "<string>",
            "rules": {},
            "status": "published",
            "tenant_id": "<string>",
            "total_redemptions": 123,
            "type": "fixed",
            "updated_at": "<string>",
            "updated_by": "<string>"
          },
          "coupon_id": "<string>",
          "created_at": "<string>",
          "created_by": "<string>",
          "environment_id": "<string>",
          "id": "<string>",
          "metadata": {},
          "status": "published",
          "subscription_id": "<string>",
          "subscription_line_item_id": "<string>",
          "tenant_id": "<string>",
          "updated_at": "<string>",
          "updated_by": "<string>"
        }
      ],
      "created_at": "<string>",
      "created_by": "<string>",
      "currency": "<string>",
      "current_period_end": "<string>",
      "current_period_start": "<string>",
      "customer": {
        "address_city": "<string>",
        "address_country": "<string>",
        "address_line1": "<string>",
        "address_line2": "<string>",
        "address_postal_code": "<string>",
        "address_state": "<string>",
        "created_at": "<string>",
        "created_by": "<string>",
        "email": "<string>",
        "environment_id": "<string>",
        "external_id": "<string>",
        "id": "<string>",
        "metadata": {},
        "name": "<string>",
        "status": "published",
        "tenant_id": "<string>",
        "updated_at": "<string>",
        "updated_by": "<string>"
      },
      "customer_id": "<string>",
      "customer_timezone": "<string>",
      "end_date": "<string>",
      "environment_id": "<string>",
      "gateway_payment_method_id": "<string>",
      "id": "<string>",
      "latest_invoice": {},
      "line_items": [
        {
          "billing_period": "MONTHLY",
          "created_at": "<string>",
          "created_by": "<string>",
          "currency": "<string>",
          "customer_id": "<string>",
          "display_name": "<string>",
          "end_date": "<string>",
          "entity_id": "<string>",
          "entity_type": "plan",
          "environment_id": "<string>",
          "id": "<string>",
          "invoice_cadence": "ARREAR",
          "metadata": {},
          "meter_display_name": "<string>",
          "meter_id": "<string>",
          "plan_display_name": "<string>",
          "price_id": "<string>",
          "price_type": "USAGE",
          "price_unit": "<string>",
          "price_unit_id": "<string>",
          "quantity": 123,
          "start_date": "<string>",
          "status": "published",
          "subscription_id": "<string>",
          "tenant_id": "<string>",
          "trial_period": 123,
          "updated_at": "<string>",
          "updated_by": "<string>"
        }
      ],
      "lookup_key": "<string>",
      "metadata": {},
      "overage_factor": 123,
      "pause_status": "none",
      "pauses": [
        {
          "created_at": "<string>",
          "created_by": "<string>",
          "environment_id": "<string>",
          "id": "<string>",
          "metadata": {},
          "original_period_end": "<string>",
          "original_period_start": "<string>",
          "pause_end": "<string>",
          "pause_mode": "immediate",
          "pause_start": "<string>",
          "pause_status": "none",
          "reason": "<string>",
          "resume_mode": "immediate",
          "resumed_at": "<string>",
          "status": "published",
          "subscription_id": "<string>",
          "tenant_id": "<string>",
          "updated_at": "<string>",
          "updated_by": "<string>"
        }
      ],
      "payment_behavior": "<string>",
      "plan": {
        "created_at": "<string>",
        "created_by": "<string>",
        "credit_grants": [
          {
            "cadence": "ONETIME",
            "created_at": "<string>",
            "created_by": "<string>",
            "credits": 123,
            "environment_id": "<string>",
            "expiration_duration": 123,
            "expiration_duration_unit": "DAY",
            "expiration_type": "NEVER",
            "id": "<string>",
            "metadata": {},
            "name": "<string>",
            "period": "DAILY",
            "period_count": 123,
            "plan_id": "<string>",
            "priority": 123,
            "scope": "PLAN",
            "status": "published",
            "subscription_id": "<string>",
            "tenant_id": "<string>",
            "updated_at": "<string>",
            "updated_by": "<string>"
          }
        ],
        "description": "<string>",
        "display_order": 123,
        "entitlements": [
          {
            "addon": {
              "created_at": "<string>",
              "created_by": "<string>",
              "description": "<string>",
              "entitlements": [
                {}
              ],
              "environment_id": "<string>",
              "id": "<string>",
              "lookup_key": "<string>",
              "metadata": {},
              "name": "<string>",
              "prices": [
                {
                  "amount": 123,
                  "billing_cadence": "RECURRING",
                  "billing_model": "FLAT_FEE",
                  "billing_period": "MONTHLY",
                  "billing_period_count": 123,
                  "conversion_rate": 123,
                  "created_at": "<string>",
                  "created_by": "<string>",
                  "currency": "<string>",
                  "description": "<string>",
                  "display_amount": "<string>",
                  "display_price_unit_amount": "<string>",
                  "end_date": "<string>",
                  "entity_id": "<string>",
                  "entity_type": "PLAN",
                  "environment_id": "<string>",
                  "id": "<string>",
                  "invoice_cadence": "ARREAR",
                  "lookup_key": "<string>",
                  "metadata": {},
                  "meter": {
                    "aggregation": {
                      "bucket_size": "<any>",
                      "field": "<any>",
                      "multiplier": "<any>",
                      "type": "<any>"
                    },
                    "created_at": "2024-03-20T15:04:05Z",
                    "event_name": "api_request",
                    "filters": [
                      "<any>"
                    ],
                    "id": "550e8400-e29b-41d4-a716-446655440000",
                    "name": "API Usage Meter",
                    "reset_usage": "BILLING_PERIOD",
                    "status": "published",
                    "tenant_id": "tenant123",
                    "updated_at": "2024-03-20T15:04:05Z"
                  },
                  "meter_id": "<string>",
                  "parent_price_id": "<string>",
                  "plan_id": "<string>",
                  "price_unit": "<string>",
                  "price_unit_amount": 123,
                  "price_unit_id": "<string>",
                  "price_unit_tiers": [
                    {
                      "flat_amount": "<any>",
                      "unit_amount": "<any>",
                      "up_to": "<any>"
                    }
                  ],
                  "price_unit_type": "FIAT",
                  "pricing_unit": {
                    "base_currency": "<string>",
                    "code": "<string>",
                    "conversion_rate": 123,
                    "created_at": "<string>",
                    "created_by": "<string>",
                    "environment_id": "<string>",
                    "id": "<string>",
                    "name": "<string>",
                    "precision": 123,
                    "status": "published",
                    "symbol": "<string>",
                    "tenant_id": "<string>",
                    "updated_at": "<string>",
                    "updated_by": "<string>"
                  },
                  "start_date": "<string>",
                  "status": "published",
                  "tenant_id": "<string>",
                  "tier_mode": "VOLUME",
                  "tiers": [
                    {
                      "flat_amount": "<any>",
                      "unit_amount": "<any>",
                      "up_to": "<any>"
                    }
                  ],
                  "transform_quantity": {
                    "divide_by": 123,
                    "round": "<string>"
                  },
                  "trial_period": 123,
                  "type": "USAGE",
                  "updated_at": "<string>",
                  "updated_by": "<string>"
                }
              ],
              "status": "published",
              "tenant_id": "<string>",
              "type": "onetime",
              "updated_at": "<string>",
              "updated_by": "<string>"
            },
            "created_at": "<string>",
            "created_by": "<string>",
            "display_order": 123,
            "entity_id": "<string>",
            "entity_type": "PLAN",
            "environment_id": "<string>",
            "feature": {
              "created_at": "<string>",
              "created_by": "<string>",
              "description": "<string>",
              "environment_id": "<string>",
              "id": "<string>",
              "lookup_key": "<string>",
              "metadata": {},
              "meter": {
                "aggregation": {
                  "bucket_size": "MINUTE",
                  "field": "<string>",
                  "multiplier": 123,
                  "type": "COUNT"
                },
                "created_at": "2024-03-20T15:04:05Z",
                "event_name": "api_request",
                "filters": [
                  {}
                ],
                "id": "550e8400-e29b-41d4-a716-446655440000",
                "name": "API Usage Meter",
                "reset_usage": "BILLING_PERIOD",
                "status": "published",
                "tenant_id": "tenant123",
                "updated_at": "2024-03-20T15:04:05Z"
              },
              "meter_id": "<string>",
              "name": "<string>",
              "status": "published",
              "tenant_id": "<string>",
              "type": "metered",
              "unit_plural": "<string>",
              "unit_singular": "<string>",
              "updated_at": "<string>",
              "updated_by": "<string>"
            },
            "feature_id": "<string>",
            "feature_type": "metered",
            "id": "<string>",
            "is_enabled": true,
            "is_soft_limit": true,
            "plan": {},
            "plan_id": "<string>",
            "static_value": "<string>",
            "status": "published",
            "tenant_id": "<string>",
            "updated_at": "<string>",
            "updated_by": "<string>",
            "usage_limit": 123,
            "usage_reset_period": "MONTHLY"
          }
        ],
        "environment_id": "<string>",
        "id": "<string>",
        "lookup_key": "<string>",
        "metadata": {},
        "name": "<string>",
        "prices": [
          {
            "amount": 123,
            "billing_cadence": "RECURRING",
            "billing_model": "FLAT_FEE",
            "billing_period": "MONTHLY",
            "billing_period_count": 123,
            "conversion_rate": 123,
            "created_at": "<string>",
            "created_by": "<string>",
            "currency": "<string>",
            "description": "<string>",
            "display_amount": "<string>",
            "display_price_unit_amount": "<string>",
            "end_date": "<string>",
            "entity_id": "<string>",
            "entity_type": "PLAN",
            "environment_id": "<string>",
            "id": "<string>",
            "invoice_cadence": "ARREAR",
            "lookup_key": "<string>",
            "metadata": {},
            "meter": {
              "aggregation": {
                "bucket_size": "MINUTE",
                "field": "<string>",
                "multiplier": 123,
                "type": "COUNT"
              },
              "created_at": "2024-03-20T15:04:05Z",
              "event_name": "api_request",
              "filters": [
                {}
              ],
              "id": "550e8400-e29b-41d4-a716-446655440000",
              "name": "API Usage Meter",
              "reset_usage": "BILLING_PERIOD",
              "status": "published",
              "tenant_id": "tenant123",
              "updated_at": "2024-03-20T15:04:05Z"
            },
            "meter_id": "<string>",
            "parent_price_id": "<string>",
            "plan_id": "<string>",
            "price_unit": "<string>",
            "price_unit_amount": 123,
            "price_unit_id": "<string>",
            "price_unit_tiers": [
              {
                "flat_amount": "<any>",
                "unit_amount": "<any>",
                "up_to": "<any>"
              }
            ],
            "price_unit_type": "FIAT",
            "pricing_unit": {
              "base_currency": "<string>",
              "code": "<string>",
              "conversion_rate": 123,
              "created_at": "<string>",
              "created_by": "<string>",
              "environment_id": "<string>",
              "id": "<string>",
              "name": "<string>",
              "precision": 123,
              "status": "published",
              "symbol": "<string>",
              "tenant_id": "<string>",
              "updated_at": "<string>",
              "updated_by": "<string>"
            },
            "start_date": "<string>",
            "status": "published",
            "tenant_id": "<string>",
            "tier_mode": "VOLUME",
            "tiers": [
              {
                "flat_amount": "<any>",
                "unit_amount": "<any>",
                "up_to": "<any>"
              }
            ],
            "transform_quantity": {
              "divide_by": 123,
              "round": "<string>"
            },
            "trial_period": 123,
            "type": "USAGE",
            "updated_at": "<string>",
            "updated_by": "<string>"
          }
        ],
        "status": "published",
        "tenant_id": "<string>",
        "updated_at": "<string>",
        "updated_by": "<string>"
      },
      "plan_id": "<string>",
      "proration_behavior": "create_prorations",
      "schedule": {
        "created_at": "<string>",
        "current_phase_index": 123,
        "end_behavior": "RELEASE",
        "id": "<string>",
        "phases": [
          {
            "commitment_amount": 123,
            "created_at": "<string>",
            "credit_grants": [
              {
                "cadence": "ONETIME",
                "created_at": "<string>",
                "created_by": "<string>",
                "credits": 123,
                "environment_id": "<string>",
                "expiration_duration": 123,
                "expiration_duration_unit": "DAY",
                "expiration_type": "NEVER",
                "id": "<string>",
                "metadata": {},
                "name": "<string>",
                "period": "DAILY",
                "period_count": 123,
                "plan_id": "<string>",
                "priority": 123,
                "scope": "PLAN",
                "status": "published",
                "subscription_id": "<string>",
                "tenant_id": "<string>",
                "updated_at": "<string>",
                "updated_by": "<string>"
              }
            ],
            "end_date": "<string>",
            "id": "<string>",
            "line_items": [
              {
                "billing_period": "MONTHLY",
                "created_at": "<string>",
                "created_by": "<string>",
                "currency": "<string>",
                "customer_id": "<string>",
                "display_name": "<string>",
                "end_date": "<string>",
                "entity_id": "<string>",
                "entity_type": "plan",
                "environment_id": "<string>",
                "id": "<string>",
                "invoice_cadence": "ARREAR",
                "metadata": {},
                "meter_display_name": "<string>",
                "meter_id": "<string>",
                "plan_display_name": "<string>",
                "price_id": "<string>",
                "price_type": "USAGE",
                "price_unit": "<string>",
                "price_unit_id": "<string>",
                "quantity": 123,
                "start_date": "<string>",
                "status": "published",
                "subscription_id": "<string>",
                "tenant_id": "<string>",
                "trial_period": 123,
                "updated_at": "<string>",
                "updated_by": "<string>"
              }
            ],
            "overage_factor": 123,
            "phase_index": 123,
            "schedule_id": "<string>",
            "start_date": "<string>",
            "updated_at": "<string>"
          }
        ],
        "start_date": "<string>",
        "status": "ACTIVE",
        "subscription_id": "<string>",
        "updated_at": "<string>"
      },
      "start_date": "<string>",
      "status": "published",
      "subscription_status": "active",
      "tenant_id": "<string>",
      "trial_end": "<string>",
      "trial_start": "<string>",
      "updated_at": "<string>",
      "updated_by": "<string>",
      "version": 123
    },
    "subscription_id": "<string>",
    "subtotal": 123,
    "taxes": [
      {
        "applied_at": "<string>",
        "created_at": "<string>",
        "created_by": "<string>",
        "currency": "<string>",
        "entity_id": "<string>",
        "entity_type": "customer",
        "environment_id": "<string>",
        "id": "<string>",
        "idempotency_key": "<string>",
        "metadata": {},
        "status": "published",
        "tax_amount": 123,
        "tax_association_id": "<string>",
        "tax_rate": {
          "code": "<string>",
          "created_at": "<string>",
          "created_by": "<string>",
          "description": "<string>",
          "environment_id": "<string>",
          "fixed_value": 123,
          "id": "<string>",
          "metadata": {},
          "name": "<string>",
          "percentage_value": 123,
          "scope": "INTERNAL",
          "status": "published",
          "tax_rate_status": "ACTIVE",
          "tax_rate_type": "percentage",
          "tenant_id": "<string>",
          "updated_at": "<string>",
          "updated_by": "<string>"
        },
        "tax_rate_id": "<string>",
        "taxable_amount": 123,
        "tenant_id": "<string>",
        "updated_at": "<string>",
        "updated_by": "<string>"
      }
    ],
    "tenant_id": "<string>",
    "total": 123,
    "total_discount": 123,
    "total_tax": 123,
    "updated_at": "<string>",
    "updated_by": "<string>",
    "version": 123,
    "voided_at": "<string>"
  },
  "metadata": {},
  "new_subscription": {
    "archived_at": "<string>",
    "billing_anchor": "<string>",
    "created_at": "<string>",
    "current_period_end": "<string>",
    "current_period_start": "<string>",
    "id": "<string>",
    "plan_id": "<string>",
    "status": "active"
  },
  "old_subscription": {
    "archived_at": "<string>",
    "billing_anchor": "<string>",
    "created_at": "<string>",
    "current_period_end": "<string>",
    "current_period_start": "<string>",
    "id": "<string>",
    "plan_id": "<string>",
    "status": "active"
  },
  "proration_applied": {
    "charge_amount": 123,
    "charge_description": "<string>",
    "credit_amount": 123,
    "credit_description": "<string>",
    "currency": "<string>",
    "current_period_end": "<string>",
    "current_period_start": "<string>",
    "days_remaining": 123,
    "days_used": 123,
    "net_amount": 123,
    "proration_date": "<string>"
  }
}

Authorizations

x-api-key
string
header
required

Enter your API key in the format x-api-key <api-key>*

Path Parameters

id
string
required

Subscription ID

Body

application/json

Subscription change request

Request object for changing a subscription plan (upgrade/downgrade)

billing_cadence
enum<string>
required
Available options:
RECURRING,
ONETIME
billing_cycle
enum<string>
required
Available options:
anniversary,
calendar
billing_period
enum<string>
required
Available options:
MONTHLY,
ANNUAL,
WEEKLY,
DAILY,
QUARTERLY,
HALF_YEARLY
billing_period_count
integer
required

billing_period_count is the billing period count for the new subscription

proration_behavior
enum<string>
required
Available options:
create_prorations,
none
target_plan_id
string
required

target_plan_id is the ID of the new plan to change to (required)

metadata
object

metadata contains additional key-value pairs for storing extra information

Response

OK

Response after successfully executing a subscription plan change

change_type
enum<string>
Available options:
upgrade,
downgrade,
lateral
credit_grants
object[]

credit_grants contains any credit grants created for proration credits

effective_date
string

effective_date is when the change took effect

invoice
object
metadata
object

metadata from the request

new_subscription
object
old_subscription
object
proration_applied
object