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

# Get subscription phase

> Retrieve the details of a phase for an existing subscription.



## OpenAPI

````yaml get /v2/subscriptions/{id}/phases/{phaseId}
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/{phaseId}:
    get:
      tags:
        - Subscriptions > Phases
      summary: Get subscription phase
      description: Retrieve the details of a phase for an existing subscription.
      operationId: getSubscriptionPhase
      parameters:
        - schema:
            type: string
          required: true
          name: id
          in: path
        - schema:
            type: string
          required: true
          name: phaseId
          in: path
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                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
        '404':
          description: Subscription or phase not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                required:
                  - message
      security:
        - bearer: []
components:
  schemas:
    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

````