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

# List subscription phases

> Retrieve the details of the phases for an existing subscription.



## OpenAPI

````yaml get /v2/subscriptions/{id}/phases
openapi: 3.1.0
info:
  title: Hyperline API
  version: 0.0.0
servers:
  - url: https://api.hyperline.co
  - url: https://sandbox.api.hyperline.co
security: []
paths:
  /v2/subscriptions/{id}/phases:
    get:
      tags:
        - Subscriptions > Phases
      summary: List subscription phases
      description: Retrieve the details of the phases for an existing subscription.
      operationId: listSubscriptionPhases
      parameters:
        - schema:
            type: string
          required: true
          name: id
          in: path
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedSubscriptionPhase'
        '404':
          description: Subscription not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                required:
                  - message
      security:
        - bearer: []
components:
  schemas:
    PaginatedSubscriptionPhase:
      type: object
      properties:
        meta:
          type: object
          properties:
            total:
              type: number
              description: Total of existing items.
              example: 1
            taken:
              type: number
              description: Number of items returned.
              example: 1
            skipped:
              type: number
              description: Number of items skipped.
              example: 0
          required:
            - total
            - taken
            - skipped
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: Subscription phase ID.
                example: sup_1FoLfIQ5VOMbXf
              type:
                type: string
                enum:
                  - setup
                  - trial
                  - standard
                description: >

                  Type of subscription phase.


                  - `setup`: The phase represents a non-recurring service setup
                  period, often used before the actual recurring subscription
                  begins.

                  - `trial`: The phase represents a non-recurring trial period,
                  often used to allow users to opt out or experience a free
                  test.

                  - `standard`: The phase represents a standard recurring
                  billing.
                example: standard
              status:
                type: string
                enum:
                  - pending
                  - active
                  - finished
                description: |

                  Status of subscription phase.

                  - `pending`: The phase is waiting to start (not started yet).
                  - `active`: The phase is currently in progress.
                  - `finished`: The phase has ended and is complete.
                example: pending
              order:
                type: number
                description: >-
                  Order in which the phase is executed within all subscription
                  phases.
                example: 0
              activation_strategy:
                type: string
                enum:
                  - immediately
                  - manual
                  - start_date
                  - quote_signature
                  - checkout
                  - contract_start_date
                  - previous_phase_end
                description: >

                  Activation strategy of subscription phase.


                  - `immediately`: The phase starts as soon as the subscription
                  is activated.

                  - `manual`: The phase starts when a user manually activates
                  it.

                  - `start_date`: The phase starts on a specified date.

                  - `quote_signature`: The phase starts when the subscription
                  quote is signed.

                  - `checkout`: The phase starts when the subscription checkout
                  is completed.

                  - `contract_start_date`: The phase starts on the start date of
                  the related subscription contract.

                  - `previous_phase_end`: The phase starts when the previous
                  phase ends.
                example: manual
              end_strategy:
                type: string
                enum:
                  - manual
                  - end_date
                  - duration
                  - contract_end_date
                description: >

                  End strategy of subscription phase.


                  - `manual`: The phase ends when a user manually stops it.

                  - `end_date`: The phase ends on a specified date.

                  - `duration`: The phase ends after a specific relative
                  duration.

                  - `contract_end_date`: The phase ends on the end date of the
                  related subscription contract.
                example: duration
              duration:
                type:
                  - object
                  - 'null'
                properties:
                  period:
                    type: string
                    enum:
                      - days
                      - weeks
                      - months
                      - years
                  count:
                    type: number
                required:
                  - period
                  - count
                description: >-
                  Interval over which the subscription phase spans. Only applies
                  to `duration` end strategy.
                example:
                  count: 1
                  period: years
              billing_date_setting:
                type: string
                enum:
                  - phase_start
                  - specific_date
                description: |

                  Represents when the first billing date occurs.

                  - `phase_start`: Aligns with the start of the phase.
                  - `specific_date`: Occurs on a specified date.
                example: phase_start
              initial_billing_at:
                type:
                  - string
                  - 'null'
                format: date-time
                description: >-
                  Date when the subscription phase will start being billed. Only
                  applies to `specific_date` billing date setting. UTC date time
                  string in the [ISO
                  8601](https://en.wikipedia.org/wiki/ISO_8601) format.
                example: null
              starts_at:
                type:
                  - string
                  - 'null'
                format: date-time
                description: >-
                  Actual start date of the phase. UTC date time string in the
                  [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
                example: null
              ends_at:
                type:
                  - string
                  - 'null'
                format: date-time
                description: >-
                  Actual end date of the phase. UTC date time string in the [ISO
                  8601](https://en.wikipedia.org/wiki/ISO_8601) format.
                example: null
              billing_cycle_alignment:
                type: string
                enum:
                  - calendar_period
                  - anniversary
                description: >

                  Alignment of product billing cycles.


                  - `calendar_period`: The billing cycles of the products will
                  be aligned on the calendar period, after the first period
                  which will be invoiced taking into account the prorata of the
                  first cycle compared to the product periodicity.

                  - `anniversary`: The billing cycles of the products will be
                  aligned on the anniversary of the phase initial billing date.
                example: anniversary
              do_not_invoice_phase:
                type: boolean
                description: >-
                  Indicates if the phase should be invoiced. If set to true, the
                  phase will not generate any invoices.
                example: false
              transition_calculation_method:
                type: string
                enum:
                  - prorata
                  - pay_in_full
                  - none
                description: >

                  Calculation method used when transitioning from one phase to
                  the next one.


                  - `prorata`: The prorated amount between the two phases
                  relative to the end date (the transition date) must be paid.

                  - `pay_in_full`: The full amount for the phase billing period
                  must be paid.

                  - `none`: No amount will need to be paid, phase will simply
                  transition from one to the next.
                example: prorata
              transition_invoicing_schedule:
                type: string
                enum:
                  - immediately
                description: >

                  Represents when the transition amount will be invoiced.


                  - `immediately`: An invoice will be generated immediately with
                  the corresponding amount.
                example: immediately
              products:
                type: array
                items:
                  oneOf:
                    - $ref: '#/components/schemas/SubscriptionProductFee'
                    - $ref: '#/components/schemas/SubscriptionProductSeat'
                    - $ref: '#/components/schemas/SubscriptionProductDynamic'
                    - $ref: '#/components/schemas/SubscriptionProductCredit'
                    - $ref: '#/components/schemas/SubscriptionProductBundle'
                  discriminator:
                    propertyName: type
                    mapping:
                      flat_fee:
                        $ref: '#/components/schemas/SubscriptionProductFee'
                      seat:
                        $ref: '#/components/schemas/SubscriptionProductSeat'
                      dynamic:
                        $ref: '#/components/schemas/SubscriptionProductDynamic'
                      credit:
                        $ref: '#/components/schemas/SubscriptionProductCredit'
                      bundle:
                        $ref: '#/components/schemas/SubscriptionProductBundle'
                description: Products comprising the subscription phase.
              coupons:
                type: array
                items:
                  allOf:
                    - anyOf:
                        - type: object
                          properties:
                            description:
                              type:
                                - string
                                - 'null'
                              description: Coupon description.
                              example: null
                            expiration_date:
                              type:
                                - string
                                - 'null'
                              format: date-time
                              description: >-
                                Date corresponding to the expiration of the
                                coupon.
                              example: null
                            redemption_limit:
                              type:
                                - number
                                - 'null'
                              description: >-
                                Maximum number of subscriptions to which a
                                single coupon can be applied.
                              example: null
                            product_ids:
                              type: array
                              items:
                                type: string
                              description: >-
                                List of product IDs the coupon can be applied
                                to. If empty, the coupon can be applied to any
                                product.
                              example:
                                - itm_DKL4Xcb5VSa8CQ
                                - itm_1234567890abcdef
                            repeat:
                              type:
                                - string
                                - 'null'
                              enum:
                                - once
                                - forever
                                - custom
                                - duration
                              description: >-
                                Default repeat behaviour applied when the coupon
                                is attached to a subscription. Valid values:
                                `once`, `forever`, `duration`. Can be overridden
                                at attach time.
                              example: duration
                            duration:
                              type:
                                - object
                                - 'null'
                              properties:
                                count:
                                  type: number
                                  description: Number of periods the coupon applies for.
                                  example: 3
                                period:
                                  type: string
                                  enum:
                                    - days
                                    - weeks
                                    - months
                                    - years
                                  description: >-
                                    Period unit the coupon applies for. Valid
                                    values: `days`, `weeks`, `months`, `years`.
                                  example: months
                              required:
                                - count
                                - period
                              description: >-
                                Default duration applied when `repeat` is
                                `duration`. Required when `repeat` is
                                `duration`, must be null otherwise.
                              example:
                                count: 3
                                period: months
                            created_at:
                              type: string
                              format: date-time
                              description: >-
                                UTC date time string in the [ISO
                                8601](https://en.wikipedia.org/wiki/ISO_8601)
                                format.
                              example: '2024-12-20T16:04:11Z'
                            type:
                              type: string
                              enum:
                                - amount
                            discount_amount:
                              type: number
                              description: >-
                                Amount to apply as a discount on the total
                                amount (excluding taxes) of a subscription.
                                Expressed in the currency's smallest unit.
                              example: 2000
                            currency:
                              type:
                                - string
                                - 'null'
                              enum:
                                - EUR
                                - AED
                                - AFN
                                - XCD
                                - ALL
                                - AMD
                                - AOA
                                - ARS
                                - USD
                                - AUD
                                - AWG
                                - AZN
                                - BAM
                                - BBD
                                - BDT
                                - BGN
                                - BHD
                                - BIF
                                - XOF
                                - BMD
                                - BND
                                - BOB
                                - BRL
                                - BSD
                                - BTN
                                - NOK
                                - BWP
                                - BYR
                                - BZD
                                - CAD
                                - CDF
                                - XAF
                                - CHF
                                - NZD
                                - CLP
                                - CNY
                                - COP
                                - CRC
                                - CUP
                                - CVE
                                - ANG
                                - CZK
                                - DJF
                                - DKK
                                - DOP
                                - DZD
                                - EGP
                                - MAD
                                - ERN
                                - ETB
                                - FJD
                                - FKP
                                - GBP
                                - GEL
                                - GHS
                                - GIP
                                - GMD
                                - GNF
                                - GTQ
                                - GYD
                                - HKD
                                - HNL
                                - HRK
                                - HTG
                                - HUF
                                - IDR
                                - ILS
                                - INR
                                - IQD
                                - IRR
                                - ISK
                                - JMD
                                - JOD
                                - JPY
                                - KES
                                - KGS
                                - KHR
                                - KMF
                                - KPW
                                - KRW
                                - KWD
                                - KYD
                                - KZT
                                - LAK
                                - LBP
                                - LKR
                                - LRD
                                - LSL
                                - LYD
                                - MDL
                                - MGA
                                - MKD
                                - MMK
                                - MNT
                                - MOP
                                - MRO
                                - MUR
                                - MVR
                                - MWK
                                - MXN
                                - MYR
                                - MZN
                                - NAD
                                - XPF
                                - NGN
                                - NIO
                                - NPR
                                - OMR
                                - PAB
                                - PEN
                                - PGK
                                - PHP
                                - PKR
                                - PLN
                                - PYG
                                - QAR
                                - RON
                                - RSD
                                - RUB
                                - RWF
                                - SAR
                                - SBD
                                - SCR
                                - SDG
                                - SEK
                                - SGD
                                - SHP
                                - SLL
                                - SOS
                                - SRD
                                - SSP
                                - STD
                                - SYP
                                - SZL
                                - THB
                                - TJS
                                - TMT
                                - TND
                                - TOP
                                - TRY
                                - TTD
                                - TWD
                                - TZS
                                - UAH
                                - UGX
                                - UYU
                                - UZS
                                - VEF
                                - VND
                                - VUV
                                - WST
                                - YER
                                - ZAR
                                - ZMW
                                - ZWL
                              description: >-
                                Currency code. See [ISO
                                4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes).
                              example: EUR
                          required:
                            - description
                            - expiration_date
                            - redemption_limit
                            - product_ids
                            - repeat
                            - duration
                            - created_at
                            - type
                            - discount_amount
                            - currency
                          title: Coupon amount
                        - type: object
                          properties:
                            description:
                              type:
                                - string
                                - 'null'
                              description: Coupon description.
                              example: null
                            expiration_date:
                              type:
                                - string
                                - 'null'
                              format: date-time
                              description: >-
                                Date corresponding to the expiration of the
                                coupon.
                              example: null
                            redemption_limit:
                              type:
                                - number
                                - 'null'
                              description: >-
                                Maximum number of subscriptions to which a
                                single coupon can be applied.
                              example: null
                            product_ids:
                              type: array
                              items:
                                type: string
                              description: >-
                                List of product IDs the coupon can be applied
                                to. If empty, the coupon can be applied to any
                                product.
                              example:
                                - itm_DKL4Xcb5VSa8CQ
                                - itm_1234567890abcdef
                            repeat:
                              type:
                                - string
                                - 'null'
                              enum:
                                - once
                                - forever
                                - custom
                                - duration
                              description: >-
                                Default repeat behaviour applied when the coupon
                                is attached to a subscription. Valid values:
                                `once`, `forever`, `duration`. Can be overridden
                                at attach time.
                              example: duration
                            duration:
                              type:
                                - object
                                - 'null'
                              properties:
                                count:
                                  type: number
                                  description: Number of periods the coupon applies for.
                                  example: 3
                                period:
                                  type: string
                                  enum:
                                    - days
                                    - weeks
                                    - months
                                    - years
                                  description: >-
                                    Period unit the coupon applies for. Valid
                                    values: `days`, `weeks`, `months`, `years`.
                                  example: months
                              required:
                                - count
                                - period
                              description: >-
                                Default duration applied when `repeat` is
                                `duration`. Required when `repeat` is
                                `duration`, must be null otherwise.
                              example:
                                count: 3
                                period: months
                            created_at:
                              type: string
                              format: date-time
                              description: >-
                                UTC date time string in the [ISO
                                8601](https://en.wikipedia.org/wiki/ISO_8601)
                                format.
                              example: '2024-12-20T16:04:11Z'
                            type:
                              type: string
                              enum:
                                - percent
                            discount_percent:
                              type: number
                              description: >-
                                Percentage to apply as a discount on the amount
                                (excluding taxes) of a product.
                              example: 15
                          required:
                            - description
                            - expiration_date
                            - redemption_limit
                            - product_ids
                            - repeat
                            - duration
                            - created_at
                            - type
                            - discount_percent
                          title: Coupon percent
                    - type: object
                      properties:
                        id:
                          type:
                            - string
                            - 'null'
                          description: Coupon ID.
                          example: cou_DKL4Xcb5VSa8CQ
                        promotion_code_id:
                          type:
                            - string
                            - 'null'
                          description: >-
                            Promotion code ID if the coupon has been created
                            from a promotion code.
                          example: null
                        name:
                          type:
                            - string
                            - 'null'
                          description: Coupon name.
                          example: Partner discount
                        subscription_coupon_id:
                          type: string
                          description: >-
                            Coupon identifier in the context of the
                            subscription.
                          example: coos_d9pVekhjoGppuX
                        repeat:
                          type: string
                          enum:
                            - once
                            - forever
                            - custom
                            - duration
                          description: >

                            Coupon frequency. Required for inline coupons.
                            Optional when an existing coupon `id` is provided:
                            if omitted, defaults to the catalog coupon's repeat
                            value.


                            - `once`: Will apply the coupon only to the first
                            one invoice.

                            - `forever`: Will apply the coupon to all invoices.

                            - `custom`: Will apply to coupon until a specified
                            expiration date.

                            - `duration`: Will apply the coupon for a specific
                            duration (e.g., 3 months).
                          example: forever
                        duration_period:
                          type:
                            - string
                            - 'null'
                          enum:
                            - days
                            - weeks
                            - months
                            - years
                          description: >-
                            Period of time for which the coupon will be applied.
                            Only applies to the `duration` coupon frequency.
                        duration_count:
                          type:
                            - number
                            - 'null'
                          description: >-
                            Number of periods for which the coupon will be
                            applied. Only applies to the `duration` coupon
                            frequency.
                        product_ids:
                          type: array
                          items:
                            type: string
                          description: Product IDs to which the coupon will be applied.
                          example:
                            - itm_FJKlqUb8COXw55
                        apply_at:
                          type:
                            - string
                            - 'null'
                          format: date-time
                          description: >-
                            Coupon first application date. UTC date time string
                            in the [ISO
                            8601](https://en.wikipedia.org/wiki/ISO_8601)
                            format.
                          example: null
                        expires_at:
                          type:
                            - string
                            - 'null'
                          format: date-time
                          description: >-
                            Coupon expiration date. Only applies to the `custom`
                            coupon frequency. UTC date time string in the [ISO
                            8601](https://en.wikipedia.org/wiki/ISO_8601)
                            format.
                          example: null
                      required:
                        - id
                        - promotion_code_id
                        - name
                        - subscription_coupon_id
                        - repeat
                        - duration_period
                        - duration_count
                        - product_ids
                        - apply_at
                        - expires_at
                description: Coupons comprising the subscription phase.
              created_at:
                type: string
                format: date-time
                description: >-
                  Subscription phase creation date. UTC date time string in the
                  [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
                example: '2024-10-12T07:00:01.860Z'
              updated_at:
                type: string
                format: date-time
                description: >-
                  Subscription phase last edition date. UTC date time string in
                  the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
                example: '2024-10-12T07:00:01.860Z'
            required:
              - id
              - type
              - status
              - order
              - activation_strategy
              - end_strategy
              - duration
              - billing_date_setting
              - initial_billing_at
              - starts_at
              - ends_at
              - billing_cycle_alignment
              - do_not_invoice_phase
              - transition_calculation_method
              - transition_invoicing_schedule
              - products
              - coupons
              - created_at
              - updated_at
          description: List of SubscriptionPhase.
      required:
        - meta
        - data
    SubscriptionProductFee:
      type: object
      properties:
        id:
          type: string
          description: Product ID.
          example: itm_FJKlqUb8COXw55
        name:
          type: string
          description: Product name. This will appear on the final invoices.
          example: Product name
        description:
          type:
            - string
            - 'null'
          description: Product description. This will appear on the final invoices.
          example: A description of the product.
        description_display_interval_dates:
          type: boolean
          description: >-
            Indicates if the dates of the interval should be automatically added
            in the product description on the invoices.
        attached_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date on which the product has been attached to the subscription. UTC
            date time string in the [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: '2024-01-15T00:00:00Z'
        detached_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date on which the product has been detached from the subscription.
            UTC date time string in the [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: '2024-04-15T00:00:00Z'
        current_period_started_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date on which the current period started. UTC date time string in
            the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: '2024-01-15T00:00:00Z'
        current_period_ends_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date on which the current period will end. UTC date time string in
            the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: '2024-02-15T00:00:00Z'
        next_payment_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date on which the next subscription invoice will be generated. UTC
            date time string in the [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: '2024-02-15T00:00:00Z'
        payment_interval:
          anyOf:
            - type: object
              properties:
                period:
                  type: string
                  enum:
                    - once
              required:
                - period
              title: Once
              example:
                period: once
            - type: object
              properties:
                period:
                  type: string
                  enum:
                    - days
                    - weeks
                    - months
                    - years
                count:
                  type: number
                  exclusiveMinimum: 0
              required:
                - period
                - count
              title: Period
              example:
                period: months
                count: 1
            - type: 'null'
          description: >-
            Interval on which the product is billed. This interval can be
            different between products and can differ from the subscription
            commitment interval.
        payment_schedule:
          type:
            - string
            - 'null'
          enum:
            - start
            - end
          description: >-
            Indicates if the product should be billed at the start or the end of
            the payment interval.
          example: start
        type:
          type: string
          enum:
            - flat_fee
        count:
          type: number
          description: Number of product units.
          example: 1
        prices:
          type: array
          items:
            $ref: '#/components/schemas/PriceFee'
          maxItems: 1
          description: >-
            Price tiers of the product. If fixed amount, only one price is
            available.
      required:
        - id
        - name
        - description
        - description_display_interval_dates
        - attached_at
        - detached_at
        - current_period_started_at
        - current_period_ends_at
        - next_payment_at
        - payment_interval
        - payment_schedule
        - type
        - count
        - prices
      title: Fee product
    SubscriptionProductSeat:
      type: object
      properties:
        id:
          type: string
          description: Product ID.
          example: itm_FJKlqUb8COXw55
        name:
          type: string
          description: Product name. This will appear on the final invoices.
          example: Product name
        description:
          type:
            - string
            - 'null'
          description: Product description. This will appear on the final invoices.
          example: A description of the product.
        description_display_interval_dates:
          type: boolean
          description: >-
            Indicates if the dates of the interval should be automatically added
            in the product description on the invoices.
        attached_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date on which the product has been attached to the subscription. UTC
            date time string in the [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: '2024-01-15T00:00:00Z'
        detached_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date on which the product has been detached from the subscription.
            UTC date time string in the [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: '2024-04-15T00:00:00Z'
        current_period_started_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date on which the current period started. UTC date time string in
            the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: '2024-01-15T00:00:00Z'
        current_period_ends_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date on which the current period will end. UTC date time string in
            the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: '2024-02-15T00:00:00Z'
        next_payment_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date on which the next subscription invoice will be generated. UTC
            date time string in the [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: '2024-02-15T00:00:00Z'
        payment_interval:
          anyOf:
            - type: object
              properties:
                period:
                  type: string
                  enum:
                    - once
              required:
                - period
              title: Once
              example:
                period: once
            - type: object
              properties:
                period:
                  type: string
                  enum:
                    - days
                    - weeks
                    - months
                    - years
                count:
                  type: number
                  exclusiveMinimum: 0
              required:
                - period
                - count
              title: Period
              example:
                period: months
                count: 1
            - type: 'null'
          description: >-
            Interval on which the product is billed. This interval can be
            different between products and can differ from the subscription
            commitment interval.
        payment_schedule:
          type:
            - string
            - 'null'
          enum:
            - start
            - end
          description: >-
            Indicates if the product should be billed at the start or the end of
            the payment interval.
          example: start
        type:
          type: string
          enum:
            - seat
        unit_name:
          type:
            - string
            - 'null'
          description: Name of the unit.
          example: user
        count:
          type: number
          description: Number of product units.
          example: 2
        prices:
          type: array
          items:
            anyOf:
              - allOf:
                  - $ref: '#/components/schemas/PriceVolume'
                  - title: Volume price
              - allOf:
                  - $ref: '#/components/schemas/PricePackaged'
                  - title: Packaged price
              - allOf:
                  - $ref: '#/components/schemas/PriceBulk'
                  - title: Bulk price
              - allOf:
                  - $ref: '#/components/schemas/PriceBundle'
                  - title: Bundle price
          description: >-
            Price tiers of the product. If fixed amount, only one price is
            available.
        min_committed_count:
          type:
            - number
            - 'null'
          description: >-
            Minimum of units committed. If usage is less than this number, then
            this value will be used.
          example: 2000
        min_amount:
          type:
            - number
            - 'null'
          description: >-
            Minimum amount billed. If the final computed amount from the usage
            for this product is less than this amount, then this value will be
            used.
        max_amount:
          type:
            - number
            - 'null'
          description: >-
            Maximum amount billed. If the final computed amount from the usage
            for this product is greater than this amount, then this value will
            be used.
        charging_method:
          type:
            - string
            - 'null'
          enum:
            - prorata
            - pay_in_full
            - do_not_charge
          description: >

            Charging method used for seat count updates within the current
            billing period. Only present for connected seat products.


            - `prorata`: The price will be calculated proportionally to the time
            elapsed since the last billing period.

            - `pay_in_full`: The price will be calculated for the entire billing
            period.

            - `do_not_charge`: The price will not be calculated.
        seat_invoicing_schedule:
          type:
            - string
            - 'null'
          enum:
            - immediately
            - next_invoice
            - custom
          description: >

            Policy defining when seat count changes are invoiced. Only applies
            to connected seat products.


            - `immediately`: Seat changes are invoiced immediately.

            - `next_invoice`: Seat changes are invoiced at the next invoice.

            - `custom`: Seat changes are invoiced on a custom schedule.
      required:
        - id
        - name
        - description
        - description_display_interval_dates
        - attached_at
        - detached_at
        - current_period_started_at
        - current_period_ends_at
        - next_payment_at
        - payment_interval
        - payment_schedule
        - type
        - unit_name
        - count
        - prices
      title: Seat product
    SubscriptionProductDynamic:
      type: object
      properties:
        id:
          type: string
          description: Product ID.
          example: itm_FJKlqUb8COXw55
        name:
          type: string
          description: Product name. This will appear on the final invoices.
          example: Product name
        description:
          type:
            - string
            - 'null'
          description: Product description. This will appear on the final invoices.
          example: A description of the product.
        description_display_interval_dates:
          type: boolean
          description: >-
            Indicates if the dates of the interval should be automatically added
            in the product description on the invoices.
        attached_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date on which the product has been attached to the subscription. UTC
            date time string in the [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: '2024-01-15T00:00:00Z'
        detached_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date on which the product has been detached from the subscription.
            UTC date time string in the [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: '2024-04-15T00:00:00Z'
        current_period_started_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date on which the current period started. UTC date time string in
            the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: '2024-01-15T00:00:00Z'
        current_period_ends_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date on which the current period will end. UTC date time string in
            the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: '2024-02-15T00:00:00Z'
        next_payment_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date on which the next subscription invoice will be generated. UTC
            date time string in the [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: '2024-02-15T00:00:00Z'
        payment_interval:
          anyOf:
            - type: object
              properties:
                period:
                  type: string
                  enum:
                    - once
              required:
                - period
              title: Once
              example:
                period: once
            - type: object
              properties:
                period:
                  type: string
                  enum:
                    - days
                    - weeks
                    - months
                    - years
                count:
                  type: number
                  exclusiveMinimum: 0
              required:
                - period
                - count
              title: Period
              example:
                period: months
                count: 1
            - type: 'null'
          description: >-
            Interval on which the product is billed. This interval can be
            different between products and can differ from the subscription
            commitment interval.
        payment_schedule:
          type:
            - string
            - 'null'
          enum:
            - start
            - end
          description: >-
            Indicates if the product should be billed at the start or the end of
            the payment interval.
          example: start
        type:
          type: string
          enum:
            - dynamic
        unit_name:
          type:
            - string
            - 'null'
          description: Name of the unit.
          example: hour
        min_committed_count:
          type:
            - number
            - 'null'
          description: >-
            Minimum of units committed. If usage is less than this number, then
            this value will be used.
          example: 2000
        min_amount:
          type:
            - number
            - 'null'
          description: >-
            Minimum amount billed. If the final computed amount from the usage
            for this product is less than this amount, then this value will be
            used.
        max_amount:
          type:
            - number
            - 'null'
          description: >-
            Maximum amount billed. If the final computed amount from the usage
            for this product is greater than this amount, then this value will
            be used.
        metering_interval_type:
          type:
            - string
            - 'null'
          enum:
            - subscription_commitment
            - payment_interval
            - full_database
            - phase_duration
            - custom
          description: >-

            Indicates on which type of interval the usage should be aggregated.


            - `subscription_commitment`: For the usage contained within the
            subscription commitment period.

            - `payment_interval`: For the usage contained within the payment
            interval of the product.

            - `full_database`: For all the usage we ingested for this product,
            no matter the period.

            - `custom`: For the usage contained within a custom interval that
            starts with the phase and renews independently of the billing
            interval. Requires `metering_interval` to be set.
              
        metering_interval:
          type:
            - object
            - 'null'
          properties:
            period:
              type: string
              enum:
                - days
                - weeks
                - months
                - years
            count:
              type: number
              exclusiveMinimum: 0
          required:
            - period
            - count
          description: >-
            Custom interval for usage aggregation. Required when
            `metering_interval_type` is `custom`. The interval starts at the
            phase start and renews on its own cycle (e.g. `{ period: 'months',
            count: 3 }` for quarterly metering with monthly billing).
        bill_usage_difference:
          type: boolean
          description: >-
            Only bill the usage difference comparing to the previous period
            (i.e. actual amount minus last invoice amount). Doesn't apply to
            `payment_interval` metering interval type.
        metering_period_started_at:
          type:
            - string
            - 'null'
          format: date
          description: >-
            Start date of the current metering period. UTC date time string in
            the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
        metering_period_ends_at:
          type:
            - string
            - 'null'
          format: date
          description: >-
            End date of the current metering period. UTC date time string in the
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
        prices:
          type: array
          items:
            anyOf:
              - allOf:
                  - $ref: '#/components/schemas/PriceVolume'
                  - type: object
                    properties:
                      metering_filter:
                        type:
                          - object
                          - 'null'
                        properties:
                          name:
                            type: string
                            description: Name of the metering filter.
                            example: VISA credit cards
                          configuration:
                            $ref: '#/components/schemas/MeteringFilterConfiguration'
                        required:
                          - name
                          - configuration
                        description: >-
                          Metering filter that scopes which billable events are
                          eligible for this price tier. Only present when the
                          price is filtered.
                title: Volume price
              - allOf:
                  - $ref: '#/components/schemas/PricePackaged'
                  - type: object
                    properties:
                      metering_filter:
                        type:
                          - object
                          - 'null'
                        properties:
                          name:
                            type: string
                            description: Name of the metering filter.
                            example: VISA credit cards
                          configuration:
                            $ref: '#/components/schemas/MeteringFilterConfiguration'
                        required:
                          - name
                          - configuration
                        description: >-
                          Metering filter that scopes which billable events are
                          eligible for this price tier. Only present when the
                          price is filtered.
                title: Packaged price
              - allOf:
                  - $ref: '#/components/schemas/PriceBulk'
                  - type: object
                    properties:
                      metering_filter:
                        type:
                          - object
                          - 'null'
                        properties:
                          name:
                            type: string
                            description: Name of the metering filter.
                            example: VISA credit cards
                          configuration:
                            $ref: '#/components/schemas/MeteringFilterConfiguration'
                        required:
                          - name
                          - configuration
                        description: >-
                          Metering filter that scopes which billable events are
                          eligible for this price tier. Only present when the
                          price is filtered.
                title: Bulk price
              - allOf:
                  - $ref: '#/components/schemas/PriceBps'
                  - type: object
                    properties:
                      metering_filter:
                        type:
                          - object
                          - 'null'
                        properties:
                          name:
                            type: string
                            description: Name of the metering filter.
                            example: VISA credit cards
                          configuration:
                            $ref: '#/components/schemas/MeteringFilterConfiguration'
                        required:
                          - name
                          - configuration
                        description: >-
                          Metering filter that scopes which billable events are
                          eligible for this price tier. Only present when the
                          price is filtered.
                title: BPS price
          description: >-
            Price tiers of the product. If fixed amount, only one price is
            available.
      required:
        - id
        - name
        - description
        - description_display_interval_dates
        - attached_at
        - detached_at
        - current_period_started_at
        - current_period_ends_at
        - next_payment_at
        - payment_interval
        - payment_schedule
        - type
        - unit_name
        - min_committed_count
        - min_amount
        - max_amount
        - metering_interval_type
        - metering_interval
        - bill_usage_difference
        - metering_period_started_at
        - metering_period_ends_at
        - prices
      title: Dynamic product
    SubscriptionProductCredit:
      type: object
      properties:
        id:
          type: string
          description: Product ID.
          example: itm_FJKlqUb8COXw55
        name:
          type: string
          description: Product name. This will appear on the final invoices.
          example: Product name
        description:
          type:
            - string
            - 'null'
          description: Product description. This will appear on the final invoices.
          example: A description of the product.
        description_display_interval_dates:
          type: boolean
          description: >-
            Indicates if the dates of the interval should be automatically added
            in the product description on the invoices.
        attached_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date on which the product has been attached to the subscription. UTC
            date time string in the [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: '2024-01-15T00:00:00Z'
        detached_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date on which the product has been detached from the subscription.
            UTC date time string in the [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: '2024-04-15T00:00:00Z'
        current_period_started_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date on which the current period started. UTC date time string in
            the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: '2024-01-15T00:00:00Z'
        current_period_ends_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date on which the current period will end. UTC date time string in
            the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: '2024-02-15T00:00:00Z'
        next_payment_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date on which the next subscription invoice will be generated. UTC
            date time string in the [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: '2024-02-15T00:00:00Z'
        payment_interval:
          anyOf:
            - type: object
              properties:
                period:
                  type: string
                  enum:
                    - once
              required:
                - period
              title: Once
              example:
                period: once
            - type: object
              properties:
                period:
                  type: string
                  enum:
                    - days
                    - weeks
                    - months
                    - years
                count:
                  type: number
                  exclusiveMinimum: 0
              required:
                - period
                - count
              title: Period
              example:
                period: months
                count: 1
            - type: 'null'
          description: >-
            Interval on which the product is billed. This interval can be
            different between products and can differ from the subscription
            commitment interval.
        payment_schedule:
          type:
            - string
            - 'null'
          enum:
            - start
            - end
          description: >-
            Indicates if the product should be billed at the start or the end of
            the payment interval.
          example: start
        type:
          type: string
          enum:
            - credit
        unit_name:
          type:
            - string
            - 'null'
          description: Name of the unit.
          example: hour
        count:
          type: number
          description: Number of product units.
          example: 2
        prices:
          type: array
          items:
            $ref: '#/components/schemas/PriceFee'
          maxItems: 1
          description: >-
            Price tiers of the product. If fixed amount, only one price is
            available.
        credits_expiration_in_days:
          type:
            - number
            - 'null'
          description: >-
            Validity in days for credits that will be topped-up automatically.
            Once the period has passed, they'll expire
        expire_credits_at_end_of_period:
          anyOf:
            - type: boolean
            - type: string
              enum:
                - 'true'
                - 'false'
            - type: 'null'
          default: false
          description: >-
            Automatically set the expiration date to the end of the next period
            for each topup. Takes priority on `creditsExpirationInDays`
      required:
        - id
        - name
        - description
        - description_display_interval_dates
        - attached_at
        - detached_at
        - current_period_started_at
        - current_period_ends_at
        - next_payment_at
        - payment_interval
        - payment_schedule
        - type
        - unit_name
        - count
        - prices
        - credits_expiration_in_days
      title: Credit product
    SubscriptionProductBundle:
      type: object
      properties:
        id:
          type: string
          description: Product ID.
          example: itm_FJKlqUb8COXw55
        name:
          type: string
          description: Product name. This will appear on the final invoices.
          example: Product name
        description:
          type:
            - string
            - 'null'
          description: Product description. This will appear on the final invoices.
          example: A description of the product.
        description_display_interval_dates:
          type: boolean
          description: >-
            Indicates if the dates of the interval should be automatically added
            in the product description on the invoices.
        attached_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date on which the product has been attached to the subscription. UTC
            date time string in the [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: '2024-01-15T00:00:00Z'
        detached_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date on which the product has been detached from the subscription.
            UTC date time string in the [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: '2024-04-15T00:00:00Z'
        current_period_started_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date on which the current period started. UTC date time string in
            the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: '2024-01-15T00:00:00Z'
        current_period_ends_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date on which the current period will end. UTC date time string in
            the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: '2024-02-15T00:00:00Z'
        next_payment_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date on which the next subscription invoice will be generated. UTC
            date time string in the [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: '2024-02-15T00:00:00Z'
        payment_interval:
          anyOf:
            - type: object
              properties:
                period:
                  type: string
                  enum:
                    - once
              required:
                - period
              title: Once
              example:
                period: once
            - type: object
              properties:
                period:
                  type: string
                  enum:
                    - days
                    - weeks
                    - months
                    - years
                count:
                  type: number
                  exclusiveMinimum: 0
              required:
                - period
                - count
              title: Period
              example:
                period: months
                count: 1
            - type: 'null'
          description: >-
            Interval on which the product is billed. This interval can be
            different between products and can differ from the subscription
            commitment interval.
        payment_schedule:
          type:
            - string
            - 'null'
          enum:
            - start
            - end
          description: >-
            Indicates if the product should be billed at the start or the end of
            the payment interval.
          example: start
        type:
          type: string
          enum:
            - bundle
        count:
          type: number
          description: Number of product units.
          example: 2
        display_mode:
          type: string
          enum:
            - single_line
            - ventilated
          description: How bundle items are displayed on invoices
        prices:
          type: array
          items:
            anyOf:
              - allOf:
                  - $ref: '#/components/schemas/PriceVolume'
                  - title: Volume price
              - allOf:
                  - $ref: '#/components/schemas/PricePackaged'
                  - title: Packaged price
              - allOf:
                  - $ref: '#/components/schemas/PriceBulk'
                  - title: Bulk price
              - allOf:
                  - $ref: '#/components/schemas/PriceBundle'
                  - title: Bundle price
          description: >-
            Price tiers of the product. If fixed amount, only one price is
            available.
      required:
        - id
        - name
        - description
        - description_display_interval_dates
        - attached_at
        - detached_at
        - current_period_started_at
        - current_period_ends_at
        - next_payment_at
        - payment_interval
        - payment_schedule
        - type
        - count
        - display_mode
        - prices
      title: Bundle product
    PriceFee:
      type: object
      properties:
        type:
          type: string
          enum:
            - fee
        id:
          type: string
          description: Price ID.
        amount:
          type: number
          description: Monetary amount. Expressed in currency's smallest unit.
      required:
        - type
        - amount
    PriceVolume:
      type: object
      properties:
        type:
          type: string
          enum:
            - volume
        id:
          type: string
          description: Price ID.
        amount:
          type: number
          description: >-
            Monetary amount of the price for the number of units defined by
            `unit_count`. Expressed in currency's smallest unit.
        unit_count:
          type: number
          description: Number of units considered for the amount.
        from:
          type: number
          description: From limit.
        to:
          type:
            - number
            - 'null'
          description: To limit.
        on_tier_incomplete:
          type:
            - string
            - 'null'
          enum:
            - pro_rata
            - pay_in_full
            - do_not_charge
          default: pro_rata
          description: >-

            Logic used to compute the amount when usage on the tier is
            incomplete.


            - `pro_rata`: The amount is computed using the pro rata of the
            tier's consumption.

            - `pay_in_full`: The amount corresponds to the full payment of the
            tier.

            - `do_not_charge`: The tier is not charged and ignored.
              
      required:
        - type
        - amount
        - unit_count
        - from
        - to
    PricePackaged:
      type: object
      properties:
        type:
          type: string
          enum:
            - packaged
        id:
          type: string
          description: Price ID.
        amount:
          type: number
          description: >-
            Monetary amount of the price for the number of units defined by
            `unit_count`. Expressed in currency's smallest unit.
        unit_count:
          type: number
          description: Number of units considered for the amount.
        from:
          type: number
          description: From limit.
        to:
          type:
            - number
            - 'null'
          description: To limit.
        on_bucket_incomplete:
          type:
            - string
            - 'null'
          enum:
            - pro_rata
            - pay_in_full
            - do_not_charge
          default: pro_rata
          description: >-

            Logic used to compute the amount when usage reaches an incomplete
            bucket (the bucket size corresponds to the `unitCount`).

              - `pro_rata`: The amount is computed using the pro rata of the bucket's consumption.
              - `pay_in_full`: The amount corresponds to the full payment of the bucket.
              - `do_not_charge`: The bucket is not charged and ignored.
                
      required:
        - type
        - amount
        - unit_count
        - from
        - to
    PriceBulk:
      type: object
      properties:
        type:
          type: string
          enum:
            - bulk
        id:
          type: string
          description: Price ID.
        amount:
          type: number
          description: >-
            Monetary amount of the price for the number of units defined by
            `unit_count`. Expressed in currency's smallest unit.
        unit_count:
          type: number
          description: Number of units considered for the amount.
        to:
          type:
            - number
            - 'null'
          description: To limit.
        on_tier_incomplete:
          type:
            - string
            - 'null'
          enum:
            - pro_rata
            - pay_in_full
            - do_not_charge
          default: pro_rata
          description: >-

            Logic used to compute the amount when usage on the tier is
            incomplete.


            - `pro_rata`: The amount is computed using the pro rata of the
            tier's consumption.

            - `pay_in_full`: The amount corresponds to the full payment of the
            tier.

            - `do_not_charge`: The tier is not charged and ignored.
              
      required:
        - type
        - amount
        - unit_count
        - to
    PriceBundle:
      type: object
      properties:
        type:
          type: string
          enum:
            - bundle
        id:
          type: string
          description: Price ID.
        amount:
          type: number
          description: >-
            Monetary amount of the price for the number of units defined by
            `unit_count`. Expressed in currency's smallest unit.
        unit_count:
          type: number
          description: Number of units considered for the amount.
      required:
        - type
        - amount
        - unit_count
    MeteringFilterConfiguration:
      type: object
      properties:
        conditional:
          type: string
          enum:
            - and
            - or
          description: >-
            Logical operator used to combine multiple filter fields. `and`
            requires all fields to match, `or` requires at least one.
        fields:
          type: array
          items:
            allOf:
              - type: object
                properties:
                  property:
                    type: string
                    description: Name of the event property to filter on.
                required:
                  - property
              - oneOf:
                  - type: object
                    properties:
                      operator:
                        type: string
                        enum:
                          - is_null
                          - is_not_null
                        description: Comparison operator to apply on the property value.
                    required:
                      - operator
                    title: Null check
                  - type: object
                    properties:
                      operator:
                        type: string
                        enum:
                          - in
                          - not_in
                        description: Comparison operator to apply on the property value.
                      value:
                        type: string
                    required:
                      - operator
                      - value
                    title: List match
                  - type: object
                    properties:
                      operator:
                        type: string
                        enum:
                          - gte
                          - gt
                          - lt
                          - lte
                        description: Comparison operator to apply on the property value.
                      value:
                        type: number
                    required:
                      - operator
                      - value
                    title: Numeric comparison
                  - type: object
                    properties:
                      operator:
                        type: string
                        enum:
                          - equals
                          - not_equal
                        description: Comparison operator to apply on the property value.
                      value:
                        anyOf:
                          - type: string
                          - type: number
                          - type: boolean
                    required:
                      - operator
                      - value
                    title: Equality check
      required:
        - conditional
        - fields
      description: Configuration of the rules used to filter eligible events.
      example:
        conditional: and
        fields:
          - property: card_type
            operator: equals
            value: visa
          - property: kind
            operator: equals
            value: credit_card
    PriceBps:
      type: object
      properties:
        type:
          type: string
          enum:
            - bps
        id:
          type: string
          description: Price ID.
        from:
          type: number
          description: From limit.
        to:
          type:
            - number
            - 'null'
          description: To limit.
        percentage:
          type: number
          description: Percentage applied on each unit to compute the usage.
        per_unit_cap:
          type:
            - number
            - 'null'
          description: Maximum amount for one unit. Expressed in currency's smallest unit.
        per_unit_floor:
          type:
            - number
            - 'null'
          description: Minimum amount for one unit. Expressed in currency's smallest unit.
        per_unit_fee:
          type:
            - number
            - 'null'
          description: Fee amount applied per unit. Expressed in currency's smallest unit.
      required:
        - type
        - from
        - to
        - percentage
        - per_unit_cap
        - per_unit_floor
        - per_unit_fee
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT

````