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

> ## Agent Instructions
> For new direct REST integrations, use the v2026-04 surfaces. The @fluid-app FairShare SDK continues to use its own published public-v2025-06 contract.
> Authenticate with the header Authorization: Bearer <token>; public storefront read endpoints require no auth.
> Lists use cursor pagination via the page[cursor] and page[limit] query params; follow meta.pagination.next_cursor until it is null.
> When the same operation exists on more than one surface, use the newest: dated API versions are newer than unversioned ones, and later dates win (v2026-04 > v2025-06 > unversioned v0/v1.1). Fall back to a legacy or unversioned operation only when no newer versioned equivalent exists — the company-v0 notes below list the known superseded operations. /api/company/v1 and /api/v1/... paths are documented in no spec here and must never be used (/api/v1.1/... is distinct and documented in company-v0). Use page/per_page offset pagination only where a spec documents it — in practice the unversioned company-v0 admin surface; every versioned surface uses cursor pagination.
> The OpenAPI specs under api-reference/ are the authoritative contracts; prefer them over prose when in doubt. api-reference/storefront-v2026-04.yaml covers the v2026-04 storefront surface (/api/v202604/... paths); api-reference/auth-v0.yaml covers the unversioned auth surface (/api/... paths — authentication, MFA, social auth, and token exchange); api-reference/checkout-v2026-04.yaml covers the v2026-04 checkout surface (/api/checkout/v2026-04/... paths — carts, cart auth, discounts, items, subscriptions, orders, enrollments, and store config); api-reference/public-v2025-06.yaml covers the Public SDK surface used by the @fluid-app FairShare SDK, including its parallel cart lifecycle, browser integrations, versioned payment callbacks, unversioned public utilities, and the cart price-override operation; api-reference/payment-v2026-04.yaml covers the v2026-04 payment gateway admin surface (/api/payment/v2026-04/... paths, bearer-authenticated — gateway CRUD, gateway purchase/authorize/$0-verify, transaction list/show and capture/void/credit, and merchant payment configuration); api-reference/payments-v2026-04.yaml covers the v2026-04 cart payment surface (/api/payments/v2026-04/carts/{cart_token}/... paths, authenticated by the cart token in the path with no bearer — payment-method selection, VGS card tokenization, 3D Secure verification, and PayPal/Braintree/Klarna/Apple Pay flows); api-reference/commerce-v2026-04.yaml covers the v2026-04 commerce order-editing surface (/api/v202604/orders/{order_id}/edits paths, bearer-authenticated — post-checkout order edits that atomically insert items and add adjustments/discounts, with an optional dry-run preview); api-reference/webhooks-v0.yaml covers the unversioned webhooks surface (/api/... paths — webhook registration, delivery payloads, callback registrations, company events, and webhook/callback schemas); api-reference/company-v0.yaml covers the legacy unversioned company admin surface (/api/... paths, bearer-authenticated — company settings and management, customers, users, roles, subscription plans, subscription bundles, subscriptions, media, pages, catch-ups, inventory levels, domains, agreements, and admin order actions). company-v0 caveats: it is the legacy v0 admin contract and its lists use flat page/per_page offset pagination, which is expected there despite the general cursor-pagination rule; where an operation exists in both company-v0 and a versioned spec, prefer the versioned spec — the subscriptions lifecycle (list/create/show/update, cancel, pause, reactivate, resume, retry, skip, failed-cycle-waiver, discounts) and subscription bundles are superseded by checkout-v2026-04, and company pages/media CRUD plus the public pages, categories, products, and media list endpoints are superseded by storefront-v2026-04. Subscription plan management (/api/subscription_plans, resource-wrapped {"subscription_plan": {...}} bodies) exists only in company-v0.
> Successful responses wrap the resource payload alongside a top-level integer status and a meta object.

# Undo a pending skip

> Reverses the most recent pending subscription skip, restoring the original next bill date. Only works if there is an active skip whose skipped_date has not yet passed.



## OpenAPI

````yaml /api-reference/company-v0.yaml post /api/subscriptions/{token}/undo_skip
openapi: 3.1.0
info:
  title: Fluid Company API
  version: v0
  contact:
    email: support@fluid.app
  license:
    name: Proprietary
    identifier: LicenseRef-Proprietary
servers:
  - url: https://api.fluid.app
  - url: https://{company}.fluid.app
    description: Production server with company subdomain
    variables:
      company:
        default: myco
        description: Company subdomain
security: []
paths:
  /api/subscriptions/{token}/undo_skip:
    post:
      tags:
        - subscriptions
      summary: Undo a pending skip
      description: >-
        Reverses the most recent pending subscription skip, restoring the
        original next bill date. Only works if there is an active skip whose
        skipped_date has not yet passed.
      operationId: commerce_v0_undo_skip
      parameters:
        - name: token
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Skip undone
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanySubscriptionSkipUndoResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardUnauthorizedResponse'
      security:
        - bearer_auth: []
components:
  schemas:
    CompanySubscriptionSkipUndoResponse:
      type: object
      properties:
        meta:
          type: object
          properties:
            request_id:
              type: string
            timestamp:
              type: string
              format: date-time
          required:
            - request_id
            - timestamp
          additionalProperties: false
        subscription:
          type: object
          properties:
            address:
              $ref: '#/components/schemas/CompanySubscriptionAddress'
            address_id:
              type:
                - integer
                - 'null'
            attempts:
              type: integer
            baked_discounts:
              type: array
              description: >-
                Flat/percentage promo codes permanently baked into price at
                creation. Never given an attachment row, so this is the only
                record of which codes produced the current price. Immutable
                after creation.
              items:
                type: object
                additionalProperties: false
                properties:
                  code:
                    type: string
                  price_discount_type:
                    type: string
                  percentage_value:
                    type:
                      - number
                      - 'null'
                  flat_value:
                    type:
                      - number
                      - 'null'
            base_recurring_price:
              type:
                - number
                - 'null'
            bundled_items:
              type: array
              items:
                $ref: '#/components/schemas/JsonValue'
            bundled_subscriptions:
              type: array
              items:
                $ref: '#/components/schemas/JsonValue'
            cancelled_at:
              type: 'null'
            company:
              type: object
              properties:
                id:
                  type: integer
                name:
                  type: string
              required:
                - id
                - name
              additionalProperties: false
            country:
              type: object
              properties:
                id:
                  type: integer
                iso:
                  type: string
                name:
                  type: string
              required:
                - id
                - iso
                - name
              additionalProperties: false
            created_at:
              type: string
              format: date-time
            currency:
              $ref: '#/components/schemas/CompanyCurrency'
            customer:
              type: object
              properties:
                account_id:
                  type: string
                active:
                  type: boolean
                addresses:
                  type: array
                  items:
                    $ref: '#/components/schemas/CompanySubscriptionAddress'
                created_at:
                  type: string
                  format: date-time
                customer_notes:
                  type: array
                  items:
                    $ref: '#/components/schemas/JsonValue'
                default_address:
                  $ref: '#/components/schemas/CompanySubscriptionAddress'
                display_total_spent:
                  type: string
                email:
                  type: string
                email_marketing:
                  type: boolean
                external_id:
                  type: 'null'
                first_name:
                  type: string
                full_name:
                  type: string
                id:
                  type: integer
                is_discarded:
                  type: boolean
                is_rep:
                  type: boolean
                last_name:
                  type: string
                last_order_id:
                  type: 'null'
                metadata:
                  type: object
                  additionalProperties: false
                name:
                  type: string
                notes:
                  type: 'null'
                orders_count:
                  type: integer
                payment_methods:
                  type: array
                  items:
                    $ref: '#/components/schemas/CompanyPaymentMethod'
                phone:
                  type: string
                role:
                  type: string
                sales_tax_id:
                  type:
                    - string
                    - 'null'
                sms_marketing:
                  type: boolean
                tax_exempt:
                  type: boolean
                total_spent:
                  type: string
                user_company_id:
                  type: integer
                verified_email:
                  type: boolean
              required:
                - account_id
                - active
                - addresses
                - created_at
                - customer_notes
                - default_address
                - display_total_spent
                - email
                - email_marketing
                - external_id
                - first_name
                - full_name
                - id
                - is_discarded
                - is_rep
                - last_name
                - last_order_id
                - metadata
                - name
                - notes
                - orders_count
                - payment_methods
                - phone
                - role
                - sales_tax_id
                - sms_marketing
                - tax_exempt
                - total_spent
                - user_company_id
                - verified_email
              additionalProperties: false
            customer_notes:
              type: array
              items:
                type: object
                properties:
                  created_at:
                    type: string
                    format: date-time
                  customer_id:
                    type: integer
                  id:
                    type: integer
                  note:
                    type: string
                  resource_id:
                    type: integer
                  resource_type:
                    type: string
                  user_company:
                    type:
                      - object
                      - 'null'
                    properties:
                      id:
                        type: integer
                      first_name:
                        type:
                          - string
                          - 'null'
                      last_name:
                        type:
                          - string
                          - 'null'
                      full_name:
                        type: string
                      email:
                        type: string
                      image_url:
                        type:
                          - string
                          - 'null'
                    required:
                      - id
                      - first_name
                      - last_name
                      - full_name
                      - email
                      - image_url
                    additionalProperties: false
                  user_company_id:
                    type:
                      - integer
                      - 'null'
                required:
                  - created_at
                  - customer_id
                  - id
                  - note
                  - resource_id
                  - resource_type
                  - user_company
                  - user_company_id
                additionalProperties: false
            cv:
              type: string
              format: decimal
            cv_total:
              type: string
              format: decimal
            decline_count:
              type: integer
            digital:
              type: boolean
            disabled:
              type: boolean
            id:
              type: integer
            last_bill_date:
              type: string
              format: date-time
            last_failed_at:
              type: 'null'
            last_ship_date:
              type: 'null'
            max_skips:
              type: 'null'
            next_bill_date:
              type: string
              format: date-time
            next_retry_at:
              type: 'null'
            next_ship_date:
              type:
                - string
                - 'null'
              format: date-time
            notes:
              type: 'null'
            orders:
              type: array
              items:
                $ref: '#/components/schemas/JsonValue'
            original_price:
              type: number
            payment_method:
              type: object
              properties:
                au_status:
                  type: 'null'
                billing_address:
                  type: 'null'
                created_at:
                  type: string
                  format: date-time
                default:
                  type: boolean
                details:
                  type: object
                  properties:
                    card_brand:
                      type: string
                    card_network:
                      type: string
                    exp_month:
                      type: string
                    exp_year:
                      type: string
                    id:
                      type: integer
                    last4_digits:
                      type: string
                    last_four:
                      type: string
                    logo_url:
                      type: string
                    requires_3ds:
                      type: boolean
                    type:
                      type: string
                    vgs_card_id:
                      type: 'null'
                  required:
                    - card_brand
                    - card_network
                    - exp_month
                    - exp_year
                    - id
                    - last4_digits
                    - last_four
                    - logo_url
                    - requires_3ds
                    - type
                    - vgs_card_id
                  additionalProperties: false
                id:
                  type: integer
                payment_title:
                  type: string
                payment_type:
                  type: string
                source:
                  type: string
                updated_at:
                  type: string
                  format: date-time
              required:
                - au_status
                - billing_address
                - created_at
                - default
                - details
                - id
                - payment_title
                - payment_type
                - source
                - updated_at
              additionalProperties: false
            price:
              type: number
            quantity:
              type: integer
            qv:
              type: string
              format: decimal
            qv_total:
              type: string
              format: decimal
            renewal_discount_total:
              type: number
              description: >-
                Computed discount applied to the next renewal (includes
                renewal-callback amounts; capped at subscription price).
            skipped_count:
              type: integer
            status:
              type: string
            subscription_discounts:
              type: array
              description: >-
                Active first-class discount attachments on this subscription.
                Empty array when none.
              items:
                type: object
                properties:
                  id:
                    type: integer
                  duration:
                    type: string
                    enum:
                      - forever
                      - once
                      - repeating
                  duration_cycles:
                    type:
                      - integer
                      - 'null'
                  applied_cycles:
                    type: integer
                  removed_reason:
                    type:
                      - string
                      - 'null'
                  attached_via:
                    type: string
                  discount:
                    type: object
                    properties:
                      id:
                        type: integer
                      code:
                        type: string
                  discount_version:
                    type: object
                    properties:
                      id:
                        type: integer
                      version_number:
                        type: integer
                      code:
                        type: string
                      price_discount_type:
                        type: string
                      flat_value:
                        type:
                          - number
                          - 'null'
                      percentage_value:
                        type:
                          - number
                          - 'null'
                      apply_to_volume:
                        type: boolean
                  starts_at:
                    type:
                      - string
                      - 'null'
                    format: date-time
                  removed_at:
                    type:
                      - string
                      - 'null'
                    format: date-time
                  attached_by:
                    type:
                      - object
                      - 'null'
                    properties:
                      kind:
                        type: string
                        enum:
                          - member
                          - droplet_installation
                      id: {}
                      label:
                        type:
                          - string
                          - 'null'
            subscription_plan:
              $ref: '#/components/schemas/CompanySubscriptionPlanSummary'
            subscription_skips:
              type: array
              items:
                type: object
                properties:
                  created_at:
                    type: string
                    format: date-time
                  id:
                    type: integer
                  reason:
                    type: 'null'
                  skipped_date:
                    type: string
                    format: date
                  unskipped_at:
                    type: string
                    format: date-time
                  updated_at:
                    type: string
                    format: date-time
                required:
                  - created_at
                  - id
                  - reason
                  - skipped_date
                  - unskipped_at
                  - updated_at
                additionalProperties: false
            subscription_token:
              type: string
            timezone:
              type: string
            updated_at:
              type: string
              format: date-time
            variant:
              $ref: '#/components/schemas/CompanySubscriptionVariant'
            volume_rep:
              type: 'null'
            volume_rep_member_id:
              type:
                - string
                - 'null'
              format: uuid
              description: >-
                Durable member UUID of the volume rep, or `null` when the
                subscription has no volume rep.
          required:
            - address
            - attempts
            - bundled_items
            - bundled_subscriptions
            - cancelled_at
            - company
            - country
            - created_at
            - currency
            - customer
            - customer_notes
            - cv
            - cv_total
            - decline_count
            - digital
            - disabled
            - id
            - last_bill_date
            - last_failed_at
            - last_ship_date
            - max_skips
            - next_bill_date
            - next_retry_at
            - next_ship_date
            - notes
            - orders
            - original_price
            - payment_method
            - price
            - quantity
            - qv
            - qv_total
            - skipped_count
            - status
            - subscription_plan
            - subscription_skips
            - subscription_token
            - timezone
            - updated_at
            - variant
            - volume_rep
            - volume_rep_member_id
          additionalProperties: false
      required:
        - meta
        - subscription
      additionalProperties: false
    StandardUnauthorizedResponse:
      description: Common legacy unauthorized response envelope.
      allOf:
        - $ref: '#/components/schemas/StandardErrorResponse'
    CompanySubscriptionAddress:
      type: object
      properties:
        address1:
          type: string
        address2:
          type: 'null'
        address3:
          type: 'null'
        city:
          type: string
        country_code:
          type: string
        country_num_code:
          type: integer
        default:
          type: boolean
        id:
          type:
            - integer
            - 'null'
        name:
          type: string
        phone:
          type:
            - string
            - 'null'
        postal_code:
          type: string
        state:
          type: string
        subdivision_code:
          type: 'null'
      required:
        - address1
        - address2
        - address3
        - city
        - country_code
        - country_num_code
        - default
        - id
        - name
        - phone
        - postal_code
        - state
        - subdivision_code
      additionalProperties: false
    JsonValue:
      description: >-
        Any valid JSON value for provider, integration, theme, metadata, or
        other dynamic payloads whose keys are not fixed by the API contract.
      anyOf:
        - type: string
        - type: number
        - type: boolean
        - type: 'null'
        - type: array
          items:
            $ref: '#/components/schemas/JsonValue'
        - type: object
          additionalProperties:
            $ref: '#/components/schemas/JsonValue'
    CompanyCurrency:
      type: object
      properties:
        active:
          type: boolean
        code:
          type: string
        id:
          type: integer
        name:
          type: string
        rate:
          type: string
        symbol:
          type: string
      required:
        - active
        - code
        - id
        - name
        - rate
        - symbol
      additionalProperties: false
    CompanyPaymentMethod:
      type: object
      properties:
        company_id:
          type: integer
        created_at:
          type: string
          format: date-time
        id:
          type: integer
        logo_url:
          type: string
        payment_title:
          type: string
        source:
          type: string
        updated_at:
          type: string
          format: date-time
        user_id:
          type: 'null'
      required:
        - company_id
        - created_at
        - id
        - logo_url
        - payment_title
        - source
        - updated_at
        - user_id
      additionalProperties: false
    CompanySubscriptionPlanSummary:
      type: object
      properties:
        active:
          type: boolean
        allow_max_billing_cycles:
          type: boolean
        allow_skipping:
          type: boolean
        billing_frequency_in_words:
          type: string
        billing_interval:
          type: integer
        billing_interval_unit:
          type: string
        company_default:
          type: boolean
        created_at:
          type: string
          format: date-time
        id:
          type: integer
        max_billing_cycles:
          type: 'null'
        max_skips:
          type: integer
        name:
          type: string
        price_adjustment_amount:
          type: number
        price_adjustment_type:
          type: string
        products_count:
          type: integer
        savings_display_mode:
          type: string
          enum:
            - percent
            - amount
        shipping_interval:
          type: integer
        shipping_interval_unit:
          type: string
        split_volume:
          type: boolean
        subscribers_count:
          type: integer
        trial_period:
          type: 'null'
        trial_period_unit:
          type: 'null'
        updated_at:
          type: string
          format: date-time
        volume_interval:
          type: integer
        volume_interval_unit:
          type: string
      required:
        - active
        - allow_max_billing_cycles
        - allow_skipping
        - billing_frequency_in_words
        - billing_interval
        - billing_interval_unit
        - company_default
        - created_at
        - id
        - max_billing_cycles
        - max_skips
        - name
        - price_adjustment_amount
        - price_adjustment_type
        - products_count
        - savings_display_mode
        - shipping_interval
        - shipping_interval_unit
        - split_volume
        - subscribers_count
        - trial_period
        - trial_period_unit
        - updated_at
        - volume_interval
        - volume_interval_unit
      additionalProperties: false
    CompanySubscriptionVariant:
      type: object
      properties:
        currency_code:
          type: string
        display_name:
          type: 'null'
        id:
          type: integer
        image_path:
          type: 'null'
        image_url:
          type: 'null'
        options:
          type: array
          items:
            $ref: '#/components/schemas/JsonValue'
        price:
          type: string
        price_in_currency:
          type: string
        primary_image:
          type: 'null'
        product:
          $ref: '#/components/schemas/CompanySubscriptionProduct'
        sku:
          type: string
        title:
          type: 'null'
      required:
        - currency_code
        - display_name
        - id
        - image_path
        - image_url
        - options
        - price
        - price_in_currency
        - primary_image
        - product
        - sku
        - title
      additionalProperties: false
    StandardErrorResponse:
      description: >-
        Common legacy error response envelope. Older endpoints may return one or
        more of these fields depending on the controller path.
      type: object
      properties:
        message:
          type: string
        error:
          $ref: '#/components/schemas/ErrorMessage'
        error_message:
          $ref: '#/components/schemas/ErrorMessage'
        errors:
          $ref: '#/components/schemas/ErrorBag'
        meta:
          $ref: '#/components/schemas/Meta'
      additionalProperties:
        $ref: '#/components/schemas/JsonValue'
    CompanySubscriptionProduct:
      type: object
      properties:
        canonical_url:
          type: string
        cv:
          type: string
          format: decimal
        cv_in_currency:
          type: string
        external_id:
          type: 'null'
        id:
          type: integer
        image_path:
          type: 'null'
        image_url:
          type: string
        introduction:
          type: 'null'
        metadata:
          type: object
          additionalProperties: false
        metafields:
          type: array
          items:
            $ref: '#/components/schemas/JsonValue'
        price:
          type: string
        price_in_currency:
          type: string
        sku:
          type: string
        tax:
          type: string
        tax_in_currency:
          type: string
        title:
          type: string
      required:
        - canonical_url
        - cv
        - cv_in_currency
        - external_id
        - id
        - image_path
        - image_url
        - introduction
        - metadata
        - metafields
        - price
        - price_in_currency
        - sku
        - tax
        - tax_in_currency
        - title
      additionalProperties: false
    ErrorMessage:
      description: An API error message represented as text or structured JSON.
      anyOf:
        - type: string
        - $ref: '#/components/schemas/ErrorBag'
        - type: 'null'
    ErrorBag:
      description: >-
        Validation errors keyed by field, a list of errors, a single error
        message, or null when no structured error details are available.
      anyOf:
        - type: string
        - type: array
          items:
            $ref: '#/components/schemas/ErrorValue'
        - type: object
          additionalProperties:
            $ref: '#/components/schemas/ErrorValue'
        - type: 'null'
    Meta:
      type:
        - object
        - 'null'
      properties:
        request_id:
          type:
            - string
            - number
            - integer
            - 'null'
        timestamp:
          type:
            - string
            - number
            - integer
            - 'null'
          format: date-time
    ErrorValue:
      description: A validation or API error value.
      anyOf:
        - type: string
        - type: array
          items:
            type: string
        - type: object
          additionalProperties:
            $ref: '#/components/schemas/JsonValue'
  securitySchemes:
    bearer_auth:
      type: http
      scheme: bearer
      description: Bearer token authentication

````