# Get billing interval options for selling plans Retrieves available billing frequency/interval options for specified Shopify selling plans (subscription plans). This endpoint returns all configured billing frequencies that customers can choose from for their subscriptions. Key Information Returned: - Frequency Options: List of available billing intervals (e.g., weekly, monthly, quarterly) - Interval Units: Time unit for each option (DAYS, WEEKS, MONTHS, YEARS) - Interval Count: Number of units between billings (e.g., 2 = every 2 weeks) - Display Names: Customer-friendly names for each frequency option - Plan IDs: Associated selling plan IDs for each frequency Billing Frequency Structure: Each FrequencyInfoDTO contains: - id: Selling plan ID (Shopify subscription plan identifier) - name: Display name (e.g., "Deliver every 2 weeks", "Monthly subscription") - intervalUnit: Time unit (DAY, WEEK, MONTH, YEAR) - intervalCount: Number of units between deliveries - billingPolicy: How billing is configured (EXACT_DAY, ANNIVERSARY) - deliveryPolicy: How delivery is scheduled Common Billing Intervals: - Weekly: intervalUnit=WEEK, intervalCount=1 - Bi-Weekly: intervalUnit=WEEK, intervalCount=2 - Monthly: intervalUnit=MONTH, intervalCount=1 - Every 2 Months: intervalUnit=MONTH, intervalCount=2 - Quarterly: intervalUnit=MONTH, intervalCount=3 - Semi-Annual: intervalUnit=MONTH, intervalCount=6 - Annual: intervalUnit=YEAR, intervalCount=1 Request Parameters: - sellingPlanIds: Comma-separated list of Shopify selling plan IDs (required) - Example: "123456,123457,123458" - Returns frequency options for all specified plans Common Use Cases: - Display available billing frequencies in customer portal - Allow customers to change subscription delivery frequency - Build frequency selector UI components - Validate frequency options before updating subscription - Sync available billing options with external systems - Show frequency options during subscription checkout Integration Example: 1. Get customer's current subscription selling plan ID 2. Call this endpoint with that selling plan ID 3. Display returned frequency options to customer 4. Customer selects new frequency 5. Update subscription with selected frequency Authentication: Requires API key authentication via X-API-Key header or api_key parameter Endpoint: GET /api/external/v2/subscription-contract-details/billing-interval Version: 0.0.1 ## Query parameters: - `api_key` (string) API Key (Deprecated - Use Header X-API-Key instead) - `sellingPlanIds` (string, required) Comma-separated list of Shopify selling plan IDs Example: "123456,123457,123458" ## Header parameters: - `X-API-Key` (string) ## Response 200 fields (application/json): - `frequencyCount` (integer) - `frequencyInterval` (string) Enum: "DAY", "WEEK", "MONTH", "YEAR" - `billingFrequencyCount` (integer) - `billingFrequencyInterval` (string) Enum: "DAY", "WEEK", "MONTH", "YEAR" - `frequencyName` (string) - `discountOffer` (number) - `discountOffer2` (number) - `afterCycle1` (integer) - `afterCycle2` (integer) - `discountType` (string) Enum: "PERCENTAGE", "FIXED", "PRICE" - `discountType2` (string) Enum: "PERCENTAGE", "FIXED", "PRICE" - `discountEnabled` (boolean) - `discountEnabled2` (boolean) - `discountEnabledMasked` (boolean) - `discountEnabled2Masked` (boolean) - `id` (string) - `frequencyType` (string) Enum: "ON_PURCHASE_DAY", "ON_SPECIFIC_DAY" - `specificDayValue` (integer) - `specificMonthValue` (integer) - `specificDayEnabled` (boolean) - `maxCycles` (integer) - `minCycles` (integer) - `cutOff` (integer) - `prepaidFlag` (string) - `idNew` (string) - `planType` (string) Enum: "PAY_AS_YOU_GO", "PREPAID", "ADVANCED_PREPAID" - `deliveryPolicyPreAnchorBehavior` (string) Enum: "ASAP", "NEXT", "$UNKNOWN" - `freeTrialEnabled` (boolean) - `freeTrialCount` (integer) - `freeTrialInterval` (string) Enum: "DAY", "WEEK", "MONTH", "YEAR" - `frequencyDescription` (string) - `keepOriginalNextBillingDateAfterTrial` (boolean) - `planSequence` (integer) - `groupName` (string) - `groupId` (integer) - `memberOnly` (boolean) - `nonMemberOnly` (boolean) - `memberInclusiveTags` (string) - `memberExclusiveTags` (string) - `lifeTimeMembership` (boolean) - `rulesJson` (string) ## Response 400 fields (*/*): - `frequencyCount` (integer) - `frequencyInterval` (string) Enum: "DAY", "WEEK", "MONTH", "YEAR" - `billingFrequencyCount` (integer) - `billingFrequencyInterval` (string) Enum: "DAY", "WEEK", "MONTH", "YEAR" - `frequencyName` (string) - `discountOffer` (number) - `discountOffer2` (number) - `afterCycle1` (integer) - `afterCycle2` (integer) - `discountType` (string) Enum: "PERCENTAGE", "FIXED", "PRICE" - `discountType2` (string) Enum: "PERCENTAGE", "FIXED", "PRICE" - `discountEnabled` (boolean) - `discountEnabled2` (boolean) - `discountEnabledMasked` (boolean) - `discountEnabled2Masked` (boolean) - `id` (string) - `frequencyType` (string) Enum: "ON_PURCHASE_DAY", "ON_SPECIFIC_DAY" - `specificDayValue` (integer) - `specificMonthValue` (integer) - `specificDayEnabled` (boolean) - `maxCycles` (integer) - `minCycles` (integer) - `cutOff` (integer) - `prepaidFlag` (string) - `idNew` (string) - `planType` (string) Enum: "PAY_AS_YOU_GO", "PREPAID", "ADVANCED_PREPAID" - `deliveryPolicyPreAnchorBehavior` (string) Enum: "ASAP", "NEXT", "$UNKNOWN" - `freeTrialEnabled` (boolean) - `freeTrialCount` (integer) - `freeTrialInterval` (string) Enum: "DAY", "WEEK", "MONTH", "YEAR" - `frequencyDescription` (string) - `keepOriginalNextBillingDateAfterTrial` (boolean) - `planSequence` (integer) - `groupName` (string) - `groupId` (integer) - `memberOnly` (boolean) - `nonMemberOnly` (boolean) - `memberInclusiveTags` (string) - `memberExclusiveTags` (string) - `lifeTimeMembership` (boolean) - `rulesJson` (string) ## Response 401 fields (*/*): - `frequencyCount` (integer) - `frequencyInterval` (string) Enum: "DAY", "WEEK", "MONTH", "YEAR" - `billingFrequencyCount` (integer) - `billingFrequencyInterval` (string) Enum: "DAY", "WEEK", "MONTH", "YEAR" - `frequencyName` (string) - `discountOffer` (number) - `discountOffer2` (number) - `afterCycle1` (integer) - `afterCycle2` (integer) - `discountType` (string) Enum: "PERCENTAGE", "FIXED", "PRICE" - `discountType2` (string) Enum: "PERCENTAGE", "FIXED", "PRICE" - `discountEnabled` (boolean) - `discountEnabled2` (boolean) - `discountEnabledMasked` (boolean) - `discountEnabled2Masked` (boolean) - `id` (string) - `frequencyType` (string) Enum: "ON_PURCHASE_DAY", "ON_SPECIFIC_DAY" - `specificDayValue` (integer) - `specificMonthValue` (integer) - `specificDayEnabled` (boolean) - `maxCycles` (integer) - `minCycles` (integer) - `cutOff` (integer) - `prepaidFlag` (string) - `idNew` (string) - `planType` (string) Enum: "PAY_AS_YOU_GO", "PREPAID", "ADVANCED_PREPAID" - `deliveryPolicyPreAnchorBehavior` (string) Enum: "ASAP", "NEXT", "$UNKNOWN" - `freeTrialEnabled` (boolean) - `freeTrialCount` (integer) - `freeTrialInterval` (string) Enum: "DAY", "WEEK", "MONTH", "YEAR" - `frequencyDescription` (string) - `keepOriginalNextBillingDateAfterTrial` (boolean) - `planSequence` (integer) - `groupName` (string) - `groupId` (integer) - `memberOnly` (boolean) - `nonMemberOnly` (boolean) - `memberInclusiveTags` (string) - `memberExclusiveTags` (string) - `lifeTimeMembership` (boolean) - `rulesJson` (string)