> ## 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.

# Skip an upcoming billing order

> Skips the next scheduled billing/order for a membership contract. The membership remains active, but the next billing date is moved to the following cycle.

**Key Features:**
- Skip next billing without canceling membership
- Automatically reschedule to next billing cycle
- Works for both regular and prepaid memberships
- Activity logging for audit trail

**How It Works:**
1. Validates billing attempt exists and belongs to shop
2. Updates next billing date to skip current cycle
3. Moves billing to the next scheduled interval
4. Logs activity (customer portal vs merchant portal)

**Customer Portal Restrictions:**
- Cannot skip if membership is frozen until min cycles
- Validates contract ownership for security

**Use Cases:**
- Customer is traveling and wants to skip one delivery
- Customer has excess inventory and wants to pause one cycle
- Merchant wants to skip a billing due to out-of-stock items
- Skip billing for special circumstances (holidays, etc.)

**Prepaid Handling:**
- Set `isPrepaid=true` for prepaid memberships
- Different validation logic for prepaid vs pay-as-you-go

**Authentication:** Requires authenticated shop user or customer portal token



## OpenAPI

````yaml /memberships/storefront-api-swagger.json put /memberships/cp/api/subscription-billing-attempts/skip-order/{id}
openapi: 3.0.1
info:
  description: >-
    Comprehensive API documentation for the customer-facing membership portal.
    These APIs enable customers to manage their memberships, update billing
    information, modify delivery schedules, and access their account details
    through your storefront.


    **Important**: These APIs must be called from your shop's domain (e.g.,
    https://www.myshop.com/apps/memberships/cp/api/**) and require customer
    authentication. Unauthenticated requests will return a 401 Unauthorized
    error.
  title: Storefront APIs
  version: 0.0.1
servers:
  - url: https://www.myshop.com/apps
security: []
tags:
  - description: >-
      APIs for managing Shopify delivery profiles, shipping rates, zones, and
      free shipping configuration for subscription memberships
    name: Shipping & Delivery Profiles
  - description: >-
      APIs for managing shop-level membership settings, configuration, email
      domains, webhooks, and general store information
    name: Shop Settings
  - description: >-
      APIs for integrating loyalty programs with memberships including customer
      points lookup, earn options, redeem options, and point redemption
    name: Loyalty Integration
  - description: >-
      APIs for retrieving historical discount code usage and redemption
      information for membership contracts
    name: Customer Discount History
  - description: >-
      APIs for managing membership cancellation flow settings including
      retention offers, survey questions, and cancel confirmation screens
    name: Cancellation Flow Configuration
  - description: >-
      APIs for managing membership billing attempts, recurring orders, payment
      retries, order history, and order skipping
    name: Billing & Orders
  - description: >-
      APIs for managing one-time product additions to upcoming subscription
      orders, including adding, retrieving, and removing one-off items
    name: One-Time Add-Ons
  - description: >-
      APIs for managing membership/subscription plan groups, including creating
      plans, configuring discounts, billing intervals, and assigning products to
      plans
    name: Membership Plans
  - description: >-
      APIs for managing customer retention activities including cancellation
      feedback, retention action tracking, and activity export
    name: Customer Retention
  - description: >-
      APIs for retrieving custom CSS styles applied to subscription widgets and
      customer portal for theme customization
    name: Custom CSS Styling
  - description: >-
      APIs for managing customer portal settings including UI customization,
      text labels, feature toggles, and branding options for the member
      self-service portal
    name: Customer Portal Configuration
  - description: >-
      APIs for managing membership/subscription contracts including creation,
      updates, status changes, line items, discounts, and billing operations
    name: Membership Contracts
  - description: >-
      APIs for retrieving product catalog, variants, pricing, and inventory
      information for subscription memberships
    name: Product & Inventory Data
  - description: >-
      APIs for retrieving product swap/substitution options allowing members to
      exchange subscription items based on configured swap rules and variant
      groups
    name: Product Swap Rules
  - description: APIs for managing subscription product bundles and bundle configurations.
    name: Product Bundles
  - description: APIs for managing payment methods and billing information.
    name: Customer Payment Methods
paths:
  /memberships/cp/api/subscription-billing-attempts/skip-order/{id}:
    put:
      tags:
        - Billing & Orders
      summary: Skip an upcoming billing order
      description: >-
        Skips the next scheduled billing/order for a membership contract. The
        membership remains active, but the next billing date is moved to the
        following cycle.


        **Key Features:**

        - Skip next billing without canceling membership

        - Automatically reschedule to next billing cycle

        - Works for both regular and prepaid memberships

        - Activity logging for audit trail


        **How It Works:**

        1. Validates billing attempt exists and belongs to shop

        2. Updates next billing date to skip current cycle

        3. Moves billing to the next scheduled interval

        4. Logs activity (customer portal vs merchant portal)


        **Customer Portal Restrictions:**

        - Cannot skip if membership is frozen until min cycles

        - Validates contract ownership for security


        **Use Cases:**

        - Customer is traveling and wants to skip one delivery

        - Customer has excess inventory and wants to pause one cycle

        - Merchant wants to skip a billing due to out-of-stock items

        - Skip billing for special circumstances (holidays, etc.)


        **Prepaid Handling:**

        - Set `isPrepaid=true` for prepaid memberships

        - Different validation logic for prepaid vs pay-as-you-go


        **Authentication:** Requires authenticated shop user or customer portal
        token
      operationId: skipOrder
      parameters:
        - description: Billing attempt ID to skip
          example: 123456
          in: path
          name: id
          required: true
          schema:
            format: int64
            type: integer
        - description: Optional subscription contract ID for additional validation
          example: 789012
          in: query
          name: subscriptionContractId
          required: false
          schema:
            format: int64
            type: integer
        - description: Set to true if this is a prepaid membership
          example: false
          in: query
          name: isPrepaid
          required: false
          schema:
            default: false
            type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionBillingAttemptDTO'
          description: Billing order successfully skipped
        '400':
          content:
            application/json:
              examples:
                Billing Attempt Not Found:
                  description: Billing Attempt Not Found
                  value:
                    detail: Billing attempt not found or doesn't belong to this shop
                    errorKey: notfound
                    status: 400
                    title: Bad Request
                Frozen Membership:
                  description: Customer portal attempting to skip frozen membership
                  value:
                    detail: >-
                      This membership is frozen until minimum billing cycles are
                      completed
                    errorKey: membership_frozen
                    status: 400
                    title: Bad Request
          description: Invalid request - validation failed
        '401':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SubscriptionBillingAttemptDTO'
          description: Authentication required
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SubscriptionBillingAttemptDTO'
          description: Internal server error - Shopify API failure
components:
  schemas:
    SubscriptionBillingAttemptDTO:
      properties:
        applyUsageCharge:
          type: boolean
        attemptCount:
          description: Number of billing retry attempts
          example: 1
          format: int32
          type: integer
        attemptTime:
          format: date-time
          type: string
        billingAttemptId:
          description: Shopify billing attempt ID
          type: string
        billingAttemptResponseMessage:
          type: string
        billingDate:
          description: Scheduled billing date for this attempt
          format: date-time
          type: string
        contractId:
          description: Associated subscription contract ID
          example: 67890
          format: int64
          type: integer
        graphOrderId:
          type: string
        id:
          description: Unique identifier of the billing attempt record
          example: 12345
          format: int64
          type: integer
        orderAmount:
          description: Total order amount
          example: 29.99
          format: double
          type: number
        orderAmountUSD:
          format: double
          type: number
        orderId:
          description: Shopify order ID if billing was successful
          format: int64
          type: integer
        orderName:
          description: Shopify order name/number
          example: '#1001'
          type: string
        orderNote:
          description: Order note or special instructions
          type: string
        progressAttemptCount:
          format: int32
          type: integer
        recurringChargeId:
          format: int64
          type: integer
        retryingNeeded:
          type: boolean
        securityChallengeSentStatus:
          enum:
            - SENT
            - UNSENT
            - FAILED
            - EMAIL_SETTINGS_DISABLED
            - CONTRACT_CANCELLED
          type: string
        shop:
          description: Shop domain identifier
          example: my-store.myshopify.com
          type: string
        status:
          description: Current status of the billing attempt
          enum:
            - SUCCESS
            - FAILURE
            - REQUESTING
            - PROGRESS
            - QUEUED
            - SKIPPED
            - SOCIAL_CONNECTION_NULL
            - CONTRACT_CANCELLED
            - CONTRACT_ENDED
            - CONTRACT_PAUSED
            - AUTO_CHARGE_DISABLED
            - SKIPPED_DUNNING_MGMT
            - SECURITY_CHALLENGE
            - SHOPIFY_EXCEPTION
          type: string
        transactionFailedEmailSentStatus:
          enum:
            - SENT
            - UNSENT
            - FAILED
            - EMAIL_SETTINGS_DISABLED
            - CUSTOMER_PAYMENT_EMPTY
            - CONTRACT_CANCELLED
          type: string
        transactionFailedSmsSentStatus:
          enum:
            - SENT
            - UNSENT
            - FAILED
            - SMS_SETTINGS_DISABLED
            - CUSTOMER_PAYMENT_EMPTY
            - CONTRACT_CANCELLED
            - PHONE_NUMBER_EMPTY
          type: string
        transactionRate:
          format: double
          type: number
        upcomingOrderEmailSentStatus:
          enum:
            - SENT
            - UNSENT
            - FAILED
            - EMAIL_SETTINGS_DISABLED
            - CUSTOMER_PAYMENT_EMPTY
            - CONTRACT_CANCELLED
            - STOP_FROM_CONTRACT
            - CONTRACT_PAUSED
          type: string
        upcomingOrderSmsSentStatus:
          enum:
            - SENT
            - UNSENT
            - FAILED
            - SMS_SETTINGS_DISABLED
            - CUSTOMER_PAYMENT_EMPTY
            - CONTRACT_CANCELLED
            - STOP_FROM_CONTRACT
            - CONTRACT_PAUSED
            - PHONE_NUMBER_EMPTY
          type: string
        upgradeDowngradeBilling:
          type: boolean
        usageChargeStatus:
          enum:
            - SUCCESS
            - FAILED
            - TO_BE_TRIED
          type: string
        variantList:
          items:
            $ref: '#/components/schemas/VariantQuantity'
          type: array
      required:
        - retryingNeeded
        - shop
      type: object
    VariantQuantity:
      properties:
        image:
          type: string
        productId:
          type: string
        productTitle:
          type: string
        quantity:
          format: int32
          type: integer
        sellingPlanId:
          type: string
        title:
          type: string
        variantId:
          format: int64
          type: integer
      type: object

````