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

# Get the storefront Rate Card offer and binding state

> Returns exact effective public storefront plans for an enrolled billing organization, applicable corporate discount and list/net prices, deterministic Free/Paid state, current binding, and immutable history at the organization billing boundary. A pre-ToS direct org admin may read an available offer so pricing can be reviewed alongside the governing agreement; binding history remains readable outside the pilot.



## OpenAPI

````yaml /v2/storefront-api-v2.yaml get /billing/storefront-rate-card
openapi: 3.0.0
info:
  title: Scope3 Storefront API
  version: 2.0.0
  description: |-
    REST API for partners to manage storefronts, inventory sources, and billing.

    ## Authentication

    All endpoints require a Bearer token in the Authorization header:
    ```
    Authorization: Bearer your-api-key
    ```

    ## Base URL

    `https://api.interchange.io/api/v2/storefront`

    ## For AI Agents

    AI agents can use the MCP endpoint at `/mcp/v2/storefront` with three tools:
    - `initialize`: Start an MCP session
    - `api_call`: Make REST API calls
    - `ask_about_capability`: Learn about API features
servers:
  - url: https://api.interchange.io/api/v2/storefront
    description: Production server
security: []
tags:
  - name: Account
    description: Account management, service tokens, and preferences
  - name: Storefront
    description: Manage storefront and inventory sources
  - name: Storefront Agents
    description: List and manage registered sales, signals, and outcomes agents
  - name: Storefront Activity
    description: Audit log of configuration and inventory changes on the storefront
  - name: Storefront Billing
    description: Payout bank details and billing configuration for storefronts
  - name: AI Usage
    description: Storefront AI token usage visibility by model
  - name: MCP
    description: Model Context Protocol endpoints
paths:
  /billing/storefront-rate-card:
    servers:
      - url: https://api.interchange.io/api/v2
        description: Production server
    get:
      tags:
        - Storefront Billing
      summary: Get the storefront Rate Card offer and binding state
      description: >-
        Returns exact effective public storefront plans for an enrolled billing
        organization, applicable corporate discount and list/net prices,
        deterministic Free/Paid state, current binding, and immutable history at
        the organization billing boundary. A pre-ToS direct org admin may read
        an available offer so pricing can be reviewed alongside the governing
        agreement; binding history remains readable outside the pilot.
      operationId: getStorefrontRateCardOffer
      responses:
        '200':
          description: Get the storefront Rate Card offer and binding state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetStorefrontRateCardOfferResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: ACCESS_DENIED (caller is not a direct organization admin).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: CONFLICT (commercial configuration is ambiguous).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - bearerAuth: []
components:
  schemas:
    GetStorefrontRateCardOfferResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            billingCustomerId:
              type: integer
              maximum: 9007199254740991
              minimum: 1
            eligible:
              type: boolean
            commercialStatus:
              type: string
              enum:
                - FREE
                - PAID
            offer:
              nullable: true
              type: object
              properties:
                offerVersion:
                  type: string
                  pattern: ^v1:[0-9a-f]{64}$
                effectiveRateCard:
                  type: object
                  properties:
                    version:
                      type: string
                      pattern: ^erc-v1:[0-9a-f]{64}$
                    visibility:
                      type: string
                      enum:
                        - PUBLIC
                        - PRIVATE
                    displayName:
                      type: string
                      minLength: 1
                      maxLength: 160
                    commercialOfferId:
                      nullable: true
                      type: string
                      pattern: ^\d+$
                    adjustmentSource:
                      type: string
                      enum:
                        - RATE_CARD_DEFAULT
                        - LEGACY_DISCOUNT
                        - DIRECT
                        - PROMOTION_CODE
                        - REFERRAL_CODE
                    renewalBehavior:
                      default: PIN_EXACT
                      type: string
                      enum:
                        - PIN_EXACT
                        - REVIEW_REQUIRED
                    adjustments:
                      type: object
                      properties:
                        price:
                          default: null
                          nullable: true
                          oneOf:
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - PERCENT
                                basisPoints:
                                  type: integer
                                  minimum: 1
                                  maximum: 9999
                              required:
                                - kind
                                - basisPoints
                              additionalProperties: false
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - PACKAGE
                                monthlyCommitmentMinor:
                                  type: integer
                                  minimum: 0
                                  maximum: 9007199254740991
                                includedIus:
                                  type: integer
                                  minimum: 0
                                  maximum: 9007199254740991
                                overageUnitAmountMinor:
                                  type: integer
                                  minimum: 0
                                  maximum: 9007199254740991
                              required:
                                - kind
                                - monthlyCommitmentMinor
                                - includedIus
                                - overageUnitAmountMinor
                              additionalProperties: false
                          type: object
                        platform:
                          default: null
                          nullable: true
                          type: object
                          properties:
                            displayName:
                              type: string
                              minLength: 1
                              maxLength: 120
                            monthlyFeeMinor:
                              type: integer
                              minimum: 0
                              maximum: 9007199254740991
                            currency:
                              type: string
                              enum:
                                - USD
                                - EUR
                                - GBP
                                - AUD
                            entitlementBundleKey:
                              type: string
                              minLength: 1
                              maxLength: 120
                              pattern: ^[a-z0-9][a-z0-9._-]*$
                          required:
                            - displayName
                            - monthlyFeeMinor
                            - currency
                            - entitlementBundleKey
                          additionalProperties: false
                        activityTerms:
                          default: []
                          type: array
                          items:
                            type: object
                            properties:
                              activityCode:
                                type: string
                                enum:
                                  - ACTIVATED_SOCIAL_ACCOUNT_MONTH
                                  - MULTI_SELLER_PRODUCT_RANKING
                                  - MERCHANDISING_BRIEF_RESPONSE
                                  - MURPH_WORKING_SESSION
                                  - GENERATED_IMAGE
                                  - GENERATED_VIDEO_SECONDS
                                  - ANALYZE_ACCOUNT
                                  - CAMPAIGN_OPTIMIZATION_MONTH
                                  - MANAGED_MEDIA_BUY_MONTH
                                  - STANDARD_DOCUMENT_UNDERSTANDING
                                  - LARGE_DOCUMENT_UNDERSTANDING
                                  - AUDIO_VIDEO_UNDERSTANDING_MINUTES
                                  - CUSTOM_BIGQUERY_GIB
                                  - MODULAR_SOURCE_MANAGEMENT_MONTH
                              displayName:
                                type: string
                                minLength: 1
                                maxLength: 120
                              billingPosture:
                                type: string
                                enum:
                                  - INCLUDED
                                  - IU_PRICE
                              iuAmountMilli:
                                nullable: true
                                type: integer
                                maximum: 9007199254740991
                                minimum: 1
                            required:
                              - activityCode
                              - displayName
                              - billingPosture
                              - iuAmountMilli
                            additionalProperties: false
                        setupCredit:
                          default: null
                          nullable: true
                          type: object
                          properties:
                            program:
                              type: string
                              enum:
                                - STOREFRONT_SETUP
                          required:
                            - program
                          additionalProperties: false
                      required:
                        - price
                        - platform
                        - activityTerms
                        - setupCredit
                      additionalProperties: false
                  required:
                    - version
                    - visibility
                    - displayName
                    - commercialOfferId
                    - adjustmentSource
                    - renewalBehavior
                    - adjustments
                  additionalProperties: false
                rateCard:
                  type: object
                  properties:
                    id:
                      type: string
                      pattern: ^\d+$
                    name:
                      type: string
                    publicVersion:
                      type: string
                    effectiveDate:
                      type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    endDate:
                      nullable: true
                      type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    publishedAt:
                      type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  required:
                    - id
                    - name
                    - publicVersion
                    - effectiveDate
                    - endDate
                    - publishedAt
                  additionalProperties: false
                agreement:
                  type: object
                  properties:
                    contractId:
                      nullable: true
                      type: string
                      pattern: ^\d+$
                    agreementDocumentId:
                      nullable: true
                      type: string
                      pattern: ^\d+$
                    kind:
                      type: string
                      enum:
                        - STANDARD_TOS
                        - CUSTOM_CONTRACT
                        - AAA
                    tosVersion:
                      nullable: true
                      type: string
                    termsUrl:
                      nullable: true
                      type: string
                      pattern: ^https?:\/\/
                    acceptedAt:
                      nullable: true
                      type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  required:
                    - contractId
                    - agreementDocumentId
                    - kind
                    - tosVersion
                    - termsUrl
                    - acceptedAt
                  additionalProperties: false
                discount:
                  nullable: true
                  type: object
                  properties:
                    authorizationId:
                      type: string
                      pattern: ^\d+$
                    basisPoints:
                      type: integer
                      minimum: 1
                      maximum: 9999
                    percent:
                      type: number
                      minimum: 0
                      exclusiveMinimum: true
                      maximum: 99.99
                    effectiveDate:
                      type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    endDate:
                      nullable: true
                      type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  required:
                    - authorizationId
                    - basisPoints
                    - percent
                    - effectiveDate
                    - endDate
                  additionalProperties: false
                serviceStart:
                  type: string
                  enum:
                    - ON_ACCEPTANCE
                initialTermMonths:
                  type: number
                  enum:
                    - 1
                plans:
                  minItems: 1
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        pattern: ^\d+$
                      planCode:
                        type: string
                      displayName:
                        type: string
                      displayOrder:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      includedIus:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      currency:
                        type: string
                        enum:
                          - USD
                          - EUR
                          - GBP
                          - AUD
                      billingPeriodMonths:
                        type: number
                        enum:
                          - 1
                      commitmentBillingTiming:
                        type: string
                        enum:
                          - PERIOD_START
                      usageBillingTiming:
                        type: string
                        enum:
                          - PERIOD_END
                      resetInterval:
                        type: string
                        enum:
                          - MONTH
                      rolloverPolicy:
                        nullable: true
                        type: object
                        properties:
                          capBasisPoints:
                            type: integer
                            minimum: 1
                            maximum: 5000
                          expiresAfterBillingPeriods:
                            type: number
                            enum:
                              - 1
                        required:
                          - capBasisPoints
                          - expiresAfterBillingPeriods
                        additionalProperties: false
                      paymentTermsDays:
                        type: integer
                        maximum: 9007199254740991
                        minimum: 1
                      renewalPosture:
                        type: string
                        enum:
                          - STANDARD_ROLLING
                          - PINNED
                      pricing:
                        type: object
                        properties:
                          listCommitmentMinor:
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          listOverageUnitAmountMinor:
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          discountBasisPoints:
                            type: integer
                            minimum: 0
                            maximum: 9999
                          netCommitmentMinor:
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          netOverageUnitAmountMinor:
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                        required:
                          - listCommitmentMinor
                          - listOverageUnitAmountMinor
                          - discountBasisPoints
                          - netCommitmentMinor
                          - netOverageUnitAmountMinor
                        additionalProperties: false
                    required:
                      - id
                      - planCode
                      - displayName
                      - displayOrder
                      - includedIus
                      - currency
                      - billingPeriodMonths
                      - commitmentBillingTiming
                      - usageBillingTiming
                      - resetInterval
                      - rolloverPolicy
                      - paymentTermsDays
                      - renewalPosture
                      - pricing
                    additionalProperties: false
                activityTerms:
                  minItems: 1
                  type: array
                  items:
                    type: object
                    properties:
                      activityCode:
                        type: string
                        enum:
                          - ACTIVATED_SOCIAL_ACCOUNT_MONTH
                      displayName:
                        type: string
                        minLength: 1
                        maxLength: 120
                      iuAmountMilli:
                        type: integer
                        minimum: 1
                        maximum: 2147483647
                      billingPeriodMonths:
                        type: number
                        enum:
                          - 1
                      includedBackfillMonths:
                        type: integer
                        minimum: 0
                        maximum: 120
                    required:
                      - activityCode
                      - displayName
                      - iuAmountMilli
                      - billingPeriodMonths
                      - includedBackfillMonths
                    additionalProperties: false
              required:
                - offerVersion
                - rateCard
                - agreement
                - discount
                - serviceStart
                - initialTermMonths
                - plans
                - activityTerms
              additionalProperties: false
            currentBinding:
              nullable: true
              type: object
              properties:
                id:
                  type: string
                  pattern: ^\d+$
                acceptingCustomerId:
                  type: integer
                  maximum: 9007199254740991
                  minimum: 1
                contractId:
                  type: string
                  pattern: ^\d+$
                agreementDocumentId:
                  type: string
                  pattern: ^\d+$
                agreementKind:
                  type: string
                  enum:
                    - STANDARD_TOS
                    - CUSTOM_CONTRACT
                    - AAA
                tosVersion:
                  nullable: true
                  type: string
                rateCardId:
                  type: string
                  pattern: ^\d+$
                rateCardPublicVersion:
                  type: string
                planId:
                  type: string
                  pattern: ^\d+$
                planCode:
                  type: string
                planName:
                  type: string
                renewalPosture:
                  type: string
                  enum:
                    - STANDARD_ROLLING
                    - PINNED
                predecessorBindingId:
                  nullable: true
                  type: string
                  pattern: ^\d+$
                offerVersion:
                  type: string
                  minLength: 1
                effectiveRateCard:
                  type: object
                  properties:
                    version:
                      type: string
                      pattern: ^erc-v1:[0-9a-f]{64}$
                    visibility:
                      type: string
                      enum:
                        - PUBLIC
                        - PRIVATE
                    displayName:
                      type: string
                      minLength: 1
                      maxLength: 160
                    commercialOfferId:
                      nullable: true
                      type: string
                      pattern: ^\d+$
                    adjustmentSource:
                      type: string
                      enum:
                        - RATE_CARD_DEFAULT
                        - LEGACY_DISCOUNT
                        - DIRECT
                        - PROMOTION_CODE
                        - REFERRAL_CODE
                    renewalBehavior:
                      default: PIN_EXACT
                      type: string
                      enum:
                        - PIN_EXACT
                        - REVIEW_REQUIRED
                    adjustments:
                      type: object
                      properties:
                        price:
                          default: null
                          nullable: true
                          oneOf:
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - PERCENT
                                basisPoints:
                                  type: integer
                                  minimum: 1
                                  maximum: 9999
                              required:
                                - kind
                                - basisPoints
                              additionalProperties: false
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - PACKAGE
                                monthlyCommitmentMinor:
                                  type: integer
                                  minimum: 0
                                  maximum: 9007199254740991
                                includedIus:
                                  type: integer
                                  minimum: 0
                                  maximum: 9007199254740991
                                overageUnitAmountMinor:
                                  type: integer
                                  minimum: 0
                                  maximum: 9007199254740991
                              required:
                                - kind
                                - monthlyCommitmentMinor
                                - includedIus
                                - overageUnitAmountMinor
                              additionalProperties: false
                          type: object
                        platform:
                          default: null
                          nullable: true
                          type: object
                          properties:
                            displayName:
                              type: string
                              minLength: 1
                              maxLength: 120
                            monthlyFeeMinor:
                              type: integer
                              minimum: 0
                              maximum: 9007199254740991
                            currency:
                              type: string
                              enum:
                                - USD
                                - EUR
                                - GBP
                                - AUD
                            entitlementBundleKey:
                              type: string
                              minLength: 1
                              maxLength: 120
                              pattern: ^[a-z0-9][a-z0-9._-]*$
                          required:
                            - displayName
                            - monthlyFeeMinor
                            - currency
                            - entitlementBundleKey
                          additionalProperties: false
                        activityTerms:
                          default: []
                          type: array
                          items:
                            type: object
                            properties:
                              activityCode:
                                type: string
                                enum:
                                  - ACTIVATED_SOCIAL_ACCOUNT_MONTH
                                  - MULTI_SELLER_PRODUCT_RANKING
                                  - MERCHANDISING_BRIEF_RESPONSE
                                  - MURPH_WORKING_SESSION
                                  - GENERATED_IMAGE
                                  - GENERATED_VIDEO_SECONDS
                                  - ANALYZE_ACCOUNT
                                  - CAMPAIGN_OPTIMIZATION_MONTH
                                  - MANAGED_MEDIA_BUY_MONTH
                                  - STANDARD_DOCUMENT_UNDERSTANDING
                                  - LARGE_DOCUMENT_UNDERSTANDING
                                  - AUDIO_VIDEO_UNDERSTANDING_MINUTES
                                  - CUSTOM_BIGQUERY_GIB
                                  - MODULAR_SOURCE_MANAGEMENT_MONTH
                              displayName:
                                type: string
                                minLength: 1
                                maxLength: 120
                              billingPosture:
                                type: string
                                enum:
                                  - INCLUDED
                                  - IU_PRICE
                              iuAmountMilli:
                                nullable: true
                                type: integer
                                maximum: 9007199254740991
                                minimum: 1
                            required:
                              - activityCode
                              - displayName
                              - billingPosture
                              - iuAmountMilli
                            additionalProperties: false
                        setupCredit:
                          default: null
                          nullable: true
                          type: object
                          properties:
                            program:
                              type: string
                              enum:
                                - STOREFRONT_SETUP
                          required:
                            - program
                          additionalProperties: false
                      required:
                        - price
                        - platform
                        - activityTerms
                        - setupCredit
                      additionalProperties: false
                  required:
                    - version
                    - visibility
                    - displayName
                    - commercialOfferId
                    - adjustmentSource
                    - renewalBehavior
                    - adjustments
                  additionalProperties: false
                termStart:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                termEnd:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                listCommitmentMinor:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                listOverageUnitAmountMinor:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                includedIus:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                discountAuthorizationId:
                  nullable: true
                  type: string
                  pattern: ^\d+$
                discountBasisPoints:
                  type: integer
                  minimum: 0
                  maximum: 9999
                netCommitmentMinor:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                netOverageUnitAmountMinor:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                currency:
                  type: string
                  enum:
                    - USD
                    - EUR
                    - GBP
                    - AUD
                billingPeriodMonths:
                  type: number
                  enum:
                    - 1
                rolloverPolicy:
                  nullable: true
                  type: object
                  properties:
                    capBasisPoints:
                      type: integer
                      minimum: 1
                      maximum: 5000
                    expiresAfterBillingPeriods:
                      type: number
                      enum:
                        - 1
                  required:
                    - capBasisPoints
                    - expiresAfterBillingPeriods
                  additionalProperties: false
                paymentTermsDays:
                  type: integer
                  maximum: 9007199254740991
                  minimum: 1
                acceptedByUserId:
                  type: string
                  pattern: ^\d+$
                acceptedAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                acceptanceSource:
                  type: string
                  enum:
                    - SIGNUP
                    - PLAN_BILLING
                    - MCP_APP
                    - ADMIN_ORDER_FORM
                    - AUTO_RENEWAL
                activityTerms:
                  type: array
                  items:
                    type: object
                    properties:
                      activityCode:
                        type: string
                        enum:
                          - ACTIVATED_SOCIAL_ACCOUNT_MONTH
                      displayName:
                        type: string
                        minLength: 1
                        maxLength: 120
                      iuAmountMilli:
                        type: integer
                        minimum: 1
                        maximum: 2147483647
                      billingPeriodMonths:
                        type: number
                        enum:
                          - 1
                      includedBackfillMonths:
                        type: integer
                        minimum: 0
                        maximum: 120
                    required:
                      - activityCode
                      - displayName
                      - iuAmountMilli
                      - billingPeriodMonths
                      - includedBackfillMonths
                    additionalProperties: false
              required:
                - id
                - acceptingCustomerId
                - contractId
                - agreementDocumentId
                - agreementKind
                - tosVersion
                - rateCardId
                - rateCardPublicVersion
                - planId
                - planCode
                - planName
                - renewalPosture
                - predecessorBindingId
                - offerVersion
                - termStart
                - termEnd
                - listCommitmentMinor
                - listOverageUnitAmountMinor
                - includedIus
                - discountAuthorizationId
                - discountBasisPoints
                - netCommitmentMinor
                - netOverageUnitAmountMinor
                - currency
                - billingPeriodMonths
                - rolloverPolicy
                - paymentTermsDays
                - acceptedByUserId
                - acceptedAt
                - acceptanceSource
                - activityTerms
              additionalProperties: false
            upcomingBinding:
              default: null
              nullable: true
              type: object
              properties:
                id:
                  type: string
                  pattern: ^\d+$
                acceptingCustomerId:
                  type: integer
                  maximum: 9007199254740991
                  minimum: 1
                contractId:
                  type: string
                  pattern: ^\d+$
                agreementDocumentId:
                  type: string
                  pattern: ^\d+$
                agreementKind:
                  type: string
                  enum:
                    - STANDARD_TOS
                    - CUSTOM_CONTRACT
                    - AAA
                tosVersion:
                  nullable: true
                  type: string
                rateCardId:
                  type: string
                  pattern: ^\d+$
                rateCardPublicVersion:
                  type: string
                planId:
                  type: string
                  pattern: ^\d+$
                planCode:
                  type: string
                planName:
                  type: string
                renewalPosture:
                  type: string
                  enum:
                    - STANDARD_ROLLING
                    - PINNED
                predecessorBindingId:
                  nullable: true
                  type: string
                  pattern: ^\d+$
                offerVersion:
                  type: string
                  minLength: 1
                effectiveRateCard:
                  type: object
                  properties:
                    version:
                      type: string
                      pattern: ^erc-v1:[0-9a-f]{64}$
                    visibility:
                      type: string
                      enum:
                        - PUBLIC
                        - PRIVATE
                    displayName:
                      type: string
                      minLength: 1
                      maxLength: 160
                    commercialOfferId:
                      nullable: true
                      type: string
                      pattern: ^\d+$
                    adjustmentSource:
                      type: string
                      enum:
                        - RATE_CARD_DEFAULT
                        - LEGACY_DISCOUNT
                        - DIRECT
                        - PROMOTION_CODE
                        - REFERRAL_CODE
                    renewalBehavior:
                      default: PIN_EXACT
                      type: string
                      enum:
                        - PIN_EXACT
                        - REVIEW_REQUIRED
                    adjustments:
                      type: object
                      properties:
                        price:
                          default: null
                          nullable: true
                          oneOf:
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - PERCENT
                                basisPoints:
                                  type: integer
                                  minimum: 1
                                  maximum: 9999
                              required:
                                - kind
                                - basisPoints
                              additionalProperties: false
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - PACKAGE
                                monthlyCommitmentMinor:
                                  type: integer
                                  minimum: 0
                                  maximum: 9007199254740991
                                includedIus:
                                  type: integer
                                  minimum: 0
                                  maximum: 9007199254740991
                                overageUnitAmountMinor:
                                  type: integer
                                  minimum: 0
                                  maximum: 9007199254740991
                              required:
                                - kind
                                - monthlyCommitmentMinor
                                - includedIus
                                - overageUnitAmountMinor
                              additionalProperties: false
                          type: object
                        platform:
                          default: null
                          nullable: true
                          type: object
                          properties:
                            displayName:
                              type: string
                              minLength: 1
                              maxLength: 120
                            monthlyFeeMinor:
                              type: integer
                              minimum: 0
                              maximum: 9007199254740991
                            currency:
                              type: string
                              enum:
                                - USD
                                - EUR
                                - GBP
                                - AUD
                            entitlementBundleKey:
                              type: string
                              minLength: 1
                              maxLength: 120
                              pattern: ^[a-z0-9][a-z0-9._-]*$
                          required:
                            - displayName
                            - monthlyFeeMinor
                            - currency
                            - entitlementBundleKey
                          additionalProperties: false
                        activityTerms:
                          default: []
                          type: array
                          items:
                            type: object
                            properties:
                              activityCode:
                                type: string
                                enum:
                                  - ACTIVATED_SOCIAL_ACCOUNT_MONTH
                                  - MULTI_SELLER_PRODUCT_RANKING
                                  - MERCHANDISING_BRIEF_RESPONSE
                                  - MURPH_WORKING_SESSION
                                  - GENERATED_IMAGE
                                  - GENERATED_VIDEO_SECONDS
                                  - ANALYZE_ACCOUNT
                                  - CAMPAIGN_OPTIMIZATION_MONTH
                                  - MANAGED_MEDIA_BUY_MONTH
                                  - STANDARD_DOCUMENT_UNDERSTANDING
                                  - LARGE_DOCUMENT_UNDERSTANDING
                                  - AUDIO_VIDEO_UNDERSTANDING_MINUTES
                                  - CUSTOM_BIGQUERY_GIB
                                  - MODULAR_SOURCE_MANAGEMENT_MONTH
                              displayName:
                                type: string
                                minLength: 1
                                maxLength: 120
                              billingPosture:
                                type: string
                                enum:
                                  - INCLUDED
                                  - IU_PRICE
                              iuAmountMilli:
                                nullable: true
                                type: integer
                                maximum: 9007199254740991
                                minimum: 1
                            required:
                              - activityCode
                              - displayName
                              - billingPosture
                              - iuAmountMilli
                            additionalProperties: false
                        setupCredit:
                          default: null
                          nullable: true
                          type: object
                          properties:
                            program:
                              type: string
                              enum:
                                - STOREFRONT_SETUP
                          required:
                            - program
                          additionalProperties: false
                      required:
                        - price
                        - platform
                        - activityTerms
                        - setupCredit
                      additionalProperties: false
                  required:
                    - version
                    - visibility
                    - displayName
                    - commercialOfferId
                    - adjustmentSource
                    - renewalBehavior
                    - adjustments
                  additionalProperties: false
                termStart:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                termEnd:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                listCommitmentMinor:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                listOverageUnitAmountMinor:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                includedIus:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                discountAuthorizationId:
                  nullable: true
                  type: string
                  pattern: ^\d+$
                discountBasisPoints:
                  type: integer
                  minimum: 0
                  maximum: 9999
                netCommitmentMinor:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                netOverageUnitAmountMinor:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                currency:
                  type: string
                  enum:
                    - USD
                    - EUR
                    - GBP
                    - AUD
                billingPeriodMonths:
                  type: number
                  enum:
                    - 1
                rolloverPolicy:
                  nullable: true
                  type: object
                  properties:
                    capBasisPoints:
                      type: integer
                      minimum: 1
                      maximum: 5000
                    expiresAfterBillingPeriods:
                      type: number
                      enum:
                        - 1
                  required:
                    - capBasisPoints
                    - expiresAfterBillingPeriods
                  additionalProperties: false
                paymentTermsDays:
                  type: integer
                  maximum: 9007199254740991
                  minimum: 1
                acceptedByUserId:
                  type: string
                  pattern: ^\d+$
                acceptedAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                acceptanceSource:
                  type: string
                  enum:
                    - SIGNUP
                    - PLAN_BILLING
                    - MCP_APP
                    - ADMIN_ORDER_FORM
                    - AUTO_RENEWAL
                activityTerms:
                  type: array
                  items:
                    type: object
                    properties:
                      activityCode:
                        type: string
                        enum:
                          - ACTIVATED_SOCIAL_ACCOUNT_MONTH
                      displayName:
                        type: string
                        minLength: 1
                        maxLength: 120
                      iuAmountMilli:
                        type: integer
                        minimum: 1
                        maximum: 2147483647
                      billingPeriodMonths:
                        type: number
                        enum:
                          - 1
                      includedBackfillMonths:
                        type: integer
                        minimum: 0
                        maximum: 120
                    required:
                      - activityCode
                      - displayName
                      - iuAmountMilli
                      - billingPeriodMonths
                      - includedBackfillMonths
                    additionalProperties: false
              required:
                - id
                - acceptingCustomerId
                - contractId
                - agreementDocumentId
                - agreementKind
                - tosVersion
                - rateCardId
                - rateCardPublicVersion
                - planId
                - planCode
                - planName
                - renewalPosture
                - predecessorBindingId
                - offerVersion
                - termStart
                - termEnd
                - listCommitmentMinor
                - listOverageUnitAmountMinor
                - includedIus
                - discountAuthorizationId
                - discountBasisPoints
                - netCommitmentMinor
                - netOverageUnitAmountMinor
                - currency
                - billingPeriodMonths
                - rolloverPolicy
                - paymentTermsDays
                - acceptedByUserId
                - acceptedAt
                - acceptanceSource
                - activityTerms
              additionalProperties: false
            history:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    pattern: ^\d+$
                  acceptingCustomerId:
                    type: integer
                    maximum: 9007199254740991
                    minimum: 1
                  contractId:
                    type: string
                    pattern: ^\d+$
                  agreementDocumentId:
                    type: string
                    pattern: ^\d+$
                  agreementKind:
                    type: string
                    enum:
                      - STANDARD_TOS
                      - CUSTOM_CONTRACT
                      - AAA
                  tosVersion:
                    nullable: true
                    type: string
                  rateCardId:
                    type: string
                    pattern: ^\d+$
                  rateCardPublicVersion:
                    type: string
                  planId:
                    type: string
                    pattern: ^\d+$
                  planCode:
                    type: string
                  planName:
                    type: string
                  renewalPosture:
                    type: string
                    enum:
                      - STANDARD_ROLLING
                      - PINNED
                  predecessorBindingId:
                    nullable: true
                    type: string
                    pattern: ^\d+$
                  offerVersion:
                    type: string
                    minLength: 1
                  effectiveRateCard:
                    type: object
                    properties:
                      version:
                        type: string
                        pattern: ^erc-v1:[0-9a-f]{64}$
                      visibility:
                        type: string
                        enum:
                          - PUBLIC
                          - PRIVATE
                      displayName:
                        type: string
                        minLength: 1
                        maxLength: 160
                      commercialOfferId:
                        nullable: true
                        type: string
                        pattern: ^\d+$
                      adjustmentSource:
                        type: string
                        enum:
                          - RATE_CARD_DEFAULT
                          - LEGACY_DISCOUNT
                          - DIRECT
                          - PROMOTION_CODE
                          - REFERRAL_CODE
                      renewalBehavior:
                        default: PIN_EXACT
                        type: string
                        enum:
                          - PIN_EXACT
                          - REVIEW_REQUIRED
                      adjustments:
                        type: object
                        properties:
                          price:
                            default: null
                            nullable: true
                            oneOf:
                              - type: object
                                properties:
                                  kind:
                                    type: string
                                    enum:
                                      - PERCENT
                                  basisPoints:
                                    type: integer
                                    minimum: 1
                                    maximum: 9999
                                required:
                                  - kind
                                  - basisPoints
                                additionalProperties: false
                              - type: object
                                properties:
                                  kind:
                                    type: string
                                    enum:
                                      - PACKAGE
                                  monthlyCommitmentMinor:
                                    type: integer
                                    minimum: 0
                                    maximum: 9007199254740991
                                  includedIus:
                                    type: integer
                                    minimum: 0
                                    maximum: 9007199254740991
                                  overageUnitAmountMinor:
                                    type: integer
                                    minimum: 0
                                    maximum: 9007199254740991
                                required:
                                  - kind
                                  - monthlyCommitmentMinor
                                  - includedIus
                                  - overageUnitAmountMinor
                                additionalProperties: false
                            type: object
                          platform:
                            default: null
                            nullable: true
                            type: object
                            properties:
                              displayName:
                                type: string
                                minLength: 1
                                maxLength: 120
                              monthlyFeeMinor:
                                type: integer
                                minimum: 0
                                maximum: 9007199254740991
                              currency:
                                type: string
                                enum:
                                  - USD
                                  - EUR
                                  - GBP
                                  - AUD
                              entitlementBundleKey:
                                type: string
                                minLength: 1
                                maxLength: 120
                                pattern: ^[a-z0-9][a-z0-9._-]*$
                            required:
                              - displayName
                              - monthlyFeeMinor
                              - currency
                              - entitlementBundleKey
                            additionalProperties: false
                          activityTerms:
                            default: []
                            type: array
                            items:
                              type: object
                              properties:
                                activityCode:
                                  type: string
                                  enum:
                                    - ACTIVATED_SOCIAL_ACCOUNT_MONTH
                                    - MULTI_SELLER_PRODUCT_RANKING
                                    - MERCHANDISING_BRIEF_RESPONSE
                                    - MURPH_WORKING_SESSION
                                    - GENERATED_IMAGE
                                    - GENERATED_VIDEO_SECONDS
                                    - ANALYZE_ACCOUNT
                                    - CAMPAIGN_OPTIMIZATION_MONTH
                                    - MANAGED_MEDIA_BUY_MONTH
                                    - STANDARD_DOCUMENT_UNDERSTANDING
                                    - LARGE_DOCUMENT_UNDERSTANDING
                                    - AUDIO_VIDEO_UNDERSTANDING_MINUTES
                                    - CUSTOM_BIGQUERY_GIB
                                    - MODULAR_SOURCE_MANAGEMENT_MONTH
                                displayName:
                                  type: string
                                  minLength: 1
                                  maxLength: 120
                                billingPosture:
                                  type: string
                                  enum:
                                    - INCLUDED
                                    - IU_PRICE
                                iuAmountMilli:
                                  nullable: true
                                  type: integer
                                  maximum: 9007199254740991
                                  minimum: 1
                              required:
                                - activityCode
                                - displayName
                                - billingPosture
                                - iuAmountMilli
                              additionalProperties: false
                          setupCredit:
                            default: null
                            nullable: true
                            type: object
                            properties:
                              program:
                                type: string
                                enum:
                                  - STOREFRONT_SETUP
                            required:
                              - program
                            additionalProperties: false
                        required:
                          - price
                          - platform
                          - activityTerms
                          - setupCredit
                        additionalProperties: false
                    required:
                      - version
                      - visibility
                      - displayName
                      - commercialOfferId
                      - adjustmentSource
                      - renewalBehavior
                      - adjustments
                    additionalProperties: false
                  termStart:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  termEnd:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  listCommitmentMinor:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  listOverageUnitAmountMinor:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  includedIus:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  discountAuthorizationId:
                    nullable: true
                    type: string
                    pattern: ^\d+$
                  discountBasisPoints:
                    type: integer
                    minimum: 0
                    maximum: 9999
                  netCommitmentMinor:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  netOverageUnitAmountMinor:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  currency:
                    type: string
                    enum:
                      - USD
                      - EUR
                      - GBP
                      - AUD
                  billingPeriodMonths:
                    type: number
                    enum:
                      - 1
                  rolloverPolicy:
                    nullable: true
                    type: object
                    properties:
                      capBasisPoints:
                        type: integer
                        minimum: 1
                        maximum: 5000
                      expiresAfterBillingPeriods:
                        type: number
                        enum:
                          - 1
                    required:
                      - capBasisPoints
                      - expiresAfterBillingPeriods
                    additionalProperties: false
                  paymentTermsDays:
                    type: integer
                    maximum: 9007199254740991
                    minimum: 1
                  acceptedByUserId:
                    type: string
                    pattern: ^\d+$
                  acceptedAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  acceptanceSource:
                    type: string
                    enum:
                      - SIGNUP
                      - PLAN_BILLING
                      - MCP_APP
                      - ADMIN_ORDER_FORM
                      - AUTO_RENEWAL
                  activityTerms:
                    type: array
                    items:
                      type: object
                      properties:
                        activityCode:
                          type: string
                          enum:
                            - ACTIVATED_SOCIAL_ACCOUNT_MONTH
                        displayName:
                          type: string
                          minLength: 1
                          maxLength: 120
                        iuAmountMilli:
                          type: integer
                          minimum: 1
                          maximum: 2147483647
                        billingPeriodMonths:
                          type: number
                          enum:
                            - 1
                        includedBackfillMonths:
                          type: integer
                          minimum: 0
                          maximum: 120
                      required:
                        - activityCode
                        - displayName
                        - iuAmountMilli
                        - billingPeriodMonths
                        - includedBackfillMonths
                      additionalProperties: false
                required:
                  - id
                  - acceptingCustomerId
                  - contractId
                  - agreementDocumentId
                  - agreementKind
                  - tosVersion
                  - rateCardId
                  - rateCardPublicVersion
                  - planId
                  - planCode
                  - planName
                  - renewalPosture
                  - predecessorBindingId
                  - offerVersion
                  - termStart
                  - termEnd
                  - listCommitmentMinor
                  - listOverageUnitAmountMinor
                  - includedIus
                  - discountAuthorizationId
                  - discountBasisPoints
                  - netCommitmentMinor
                  - netOverageUnitAmountMinor
                  - currency
                  - billingPeriodMonths
                  - rolloverPolicy
                  - paymentTermsDays
                  - acceptedByUserId
                  - acceptedAt
                  - acceptanceSource
                  - activityTerms
                additionalProperties: false
            renewal:
              nullable: true
              type: object
              properties:
                version:
                  type: string
                  pattern: ^v1:[0-9a-f]{64}$
                status:
                  type: string
                  enum:
                    - RENEWS
                    - NON_RENEWAL_SCHEDULED
                    - RENEWAL_BLOCKED
                    - ENDED
                    - PINNED
                targetBindingId:
                  type: string
                  pattern: ^\d+$
                effectiveFreeAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                changeAllowedUntil:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                allowedActions:
                  type: array
                  items:
                    type: string
                    enum:
                      - CANCEL_AT_TERM
                      - REINSTATE_AUTO_RENEWAL
                latestInstruction:
                  nullable: true
                  type: object
                  properties:
                    id:
                      type: string
                      pattern: ^\d+$
                    bindingId:
                      type: string
                      pattern: ^\d+$
                    instructionType:
                      type: string
                      enum:
                        - CANCEL_AT_TERM
                        - REINSTATE_AUTO_RENEWAL
                    supersedesInstructionId:
                      nullable: true
                      type: string
                      pattern: ^\d+$
                    effectiveAt:
                      type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    changeCutoffAt:
                      type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    actorUserId:
                      type: string
                      pattern: ^\d+$
                    source:
                      type: string
                      enum:
                        - PLAN_BILLING
                        - MCP_APP
                        - ADMIN
                    reason:
                      type: string
                      minLength: 3
                      maxLength: 500
                    recordedAt:
                      type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  required:
                    - id
                    - bindingId
                    - instructionType
                    - supersedesInstructionId
                    - effectiveAt
                    - changeCutoffAt
                    - actorUserId
                    - source
                    - reason
                    - recordedAt
                  additionalProperties: false
                history:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        pattern: ^\d+$
                      bindingId:
                        type: string
                        pattern: ^\d+$
                      instructionType:
                        type: string
                        enum:
                          - CANCEL_AT_TERM
                          - REINSTATE_AUTO_RENEWAL
                      supersedesInstructionId:
                        nullable: true
                        type: string
                        pattern: ^\d+$
                      effectiveAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      changeCutoffAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      actorUserId:
                        type: string
                        pattern: ^\d+$
                      source:
                        type: string
                        enum:
                          - PLAN_BILLING
                          - MCP_APP
                          - ADMIN
                      reason:
                        type: string
                        minLength: 3
                        maxLength: 500
                      recordedAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    required:
                      - id
                      - bindingId
                      - instructionType
                      - supersedesInstructionId
                      - effectiveAt
                      - changeCutoffAt
                      - actorUserId
                      - source
                      - reason
                      - recordedAt
                    additionalProperties: false
              required:
                - version
                - status
                - targetBindingId
                - effectiveFreeAt
                - changeAllowedUntil
                - allowedActions
                - latestInstruction
                - history
              additionalProperties: false
            setupGrant:
              nullable: true
              type: object
              properties:
                grantedIus:
                  type: integer
                  minimum: 1
                  maximum: 1000000
                rolloverEnabled:
                  type: boolean
                  enum:
                    - false
                grantedAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                expiresAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                status:
                  type: string
                  enum:
                    - ACTIVE
                    - EXPIRED
                attributionKind:
                  nullable: true
                  type: string
                  enum:
                    - PROMOTION
                    - REFERRAL
              required:
                - grantedIus
                - rolloverEnabled
                - grantedAt
                - expiresAt
                - status
                - attributionKind
              additionalProperties: false
            latestDisposition:
              nullable: true
              type: object
              properties:
                id:
                  type: string
                  pattern: ^\d+$
                outcome:
                  type: string
                  enum:
                    - ACCEPTED
                    - DECLINED
                    - DEFERRED
                evidenceSource:
                  type: string
                  enum:
                    - SIGNUP
                    - LOGIN_PROMPT
                    - PLAN_BILLING
                    - MCP_APP
                planId:
                  nullable: true
                  type: string
                  pattern: ^\d+$
                planCode:
                  nullable: true
                  type: string
                occurredAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
              required:
                - id
                - outcome
                - evidenceSource
                - planId
                - planCode
                - occurredAt
              additionalProperties: false
            nextAction:
              type: string
              enum:
                - ACCEPT_GOVERNING_AGREEMENT
                - SELECT_STOREFRONT_PLAN
                - NONE
          required:
            - billingCustomerId
            - eligible
            - commercialStatus
            - offer
            - currentBinding
            - upcomingBinding
            - history
            - renewal
            - setupGrant
            - nextAction
          additionalProperties: false
      required:
        - data
      additionalProperties: false
    ErrorResponse:
      description: Standard error response
      type: object
      properties:
        data:
          type: string
          nullable: true
          enum:
            - null
        error:
          $ref: '#/components/schemas/ApiError'
      required:
        - data
        - error
      additionalProperties: false
    ApiError:
      description: Structured error object
      type: object
      properties:
        code:
          description: Machine-readable error code
          type: string
        message:
          description: Human-readable error message
          type: string
        field:
          description: Field path associated with the error
          type: string
        details:
          description: Additional error context
          type: object
          additionalProperties: {}
      required:
        - code
        - message
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key or access token

````