---
title: "invoice.payment.overdue"
method: POST
path: "/webhook-events/invoice.payment.overdue"
tags: ["Webhook Events"]
---

# invoice.payment.overdue

`POST /webhook-events/invoice.payment.overdue`

Fired when an invoice payment is overdue past the due date. Doc-only for parsing.

## Response `200`

Webhook payload

- WebhookDtoInvoiceWebhookPayload
  - `event_type` 'subscription.created' | 'subscription.draft.created' | 'subscription.activated' | 'subscription.updated' | 'subscription.paused' | 'subscription.cancelled' | 'subscription.resumed' | 'subscription.phase.created' | 'subscription.phase.updated' | 'subscription.phase.deleted' | 'feature.created' | 'feature.updated' | 'feature.deleted' | 'feature.wallet_balance.alert' | 'entitlement.created' | 'entitlement.updated' | 'entitlement.deleted' | 'wallet.created' | 'wallet.updated' | 'wallet.terminated' | 'wallet.transaction.created' | 'wallet.transaction.updated' | 'payment.created' | 'payment.updated' | 'payment.failed' | 'payment.success' | 'payment.pending' | 'customer.created' | 'customer.updated' | 'customer.deleted' | 'invoice.update.finalized' | 'invoice.update.payment' | 'invoice.update.voided' | 'invoice.update' | 'invoice.payment.overdue' | 'wallet.credit_balance.dropped' | 'wallet.credit_balance.recovered' | 'wallet.ongoing_balance.dropped' | 'wallet.ongoing_balance.recovered' | 'wallet.ongoing_balance.updated' | 'subscription.spend.threshold_reached' | 'subscription.spend.threshold_recovered' | 'subscription.line_item_spend.threshold_reached' | 'subscription.line_item_spend.threshold_recovered' | 'subscription.group_spend.threshold_reached' | 'subscription.group_spend.threshold_recovered' | 'entitlement.grant.exhausted' | 'subscription.renewal.due' | 'invoice.communication.triggered' | 'credit_note.created' | 'credit_note.updated' | 'checkout.session.initiated' | 'checkout.session.completed' | 'checkout.session.failed' | 'checkout.session.expired' | 'event.rejected'
  - `invoice` InvoiceResponse
    - `adjustment_amount` string — adjustment_amount is the total sum of credit notes of type "adjustment". These are non-cash reductions applied to the invoice (e.g. goodwill credit, billing correction).
    - `amount_due` string — amount_due is the total amount that needs to be paid for this invoice
    - `amount_paid` string — amount_paid is the amount that has already been paid towards this invoice
    - `amount_remaining` string — amount_remaining is the outstanding amount still owed on this invoice (calculated as amount_due minus amount_paid)
    - `billing_period` string — billing_period describes the billing period this invoice covers (e.g., "January 2024", "Q1 2024")
    - `billing_reason` string — billing_reason indicates why this invoice was generated (e.g., "subscription_billing", "manual_charge")
    - `billing_sequence` integer — billing_sequence is the sequential number indicating the billing cycle for subscription invoices
    - `coupon_applications` CouponApplicationResponse[] — coupon_applications contains the coupon applications associated with this invoice (overrides embedded field)
      - `applied_at` string, date-time
      - `coupon_association_id` string
      - `coupon_id` string
      - `coupon_snapshot` object
      - `created_at` string, date-time
      - `created_by` string
      - `currency` string
      - `discount_percentage` string
      - `discount_type` 'fixed' | 'percentage'
      - `discounted_amount` string
      - `environment_id` string
      - `final_price` string
      - `id` string
      - `invoice_id` string
      - `invoice_line_item_id` string
      - `metadata` object
      - `original_price` string
      - `status` 'published' | 'deleted' | 'archived'
      - `subscription_id` string
      - `tenant_id` string
      - `updated_at` string, date-time
      - `updated_by` string
    - `created_at` string, date-time
    - `created_by` string
    - `currency` string — currency is the three-letter ISO currency code (e.g., USD, EUR, GBP) that applies to all monetary amounts on this invoice
    - `customer` CustomerResponse — Customer response object containing all customer information
      - `address_city` string — AddressCity is the city of the customer's address
      - `address_country` string — AddressCountry is the country of the customer's address (ISO 3166-1 alpha-2)
      - `address_line1` string — AddressLine1 is the first line of the customer's address
      - `address_line2` string — AddressLine2 is the second line of the customer's address
      - `address_postal_code` string — AddressPostalCode is the postal code of the customer's address
      - `address_state` string — AddressState is the state of the customer's address
      - `contact` string — Contact is an optional contact number for the customer (e.g. phone)
      - `created_at` string, date-time
      - `created_by` string
      - `email` string — Email is the email of the customer
      - `environment_id` string — EnvironmentID is the environment identifier for the customer
      - `external_id` string — ExternalID is the external identifier for the customer
      - `id` string — ID is the unique identifier for the customer
      - `integrations` EntityIntegrationMappingResponse[]
        - `created_at` string, date-time
        - `created_by` string
        - `entity_id` string
        - `entity_type` 'customer' | 'plan' | 'invoice' | 'subscription' | 'payment' | 'credit_note' | 'addon' | 'item' | 'item_price' | 'price' | 'invoice_line_item'
        - `environment_id` string
        - `id` string
        - `metadata` object
        - `provider_entity_id` string
        - `provider_type` string
        - `status` 'published' | 'deleted' | 'archived'
        - `tenant_id` string
        - `updated_at` string, date-time
        - `updated_by` string
      - `metadata` object — Metadata
      - `name` string — Name is the name of the customer
      - `status` 'published' | 'deleted' | 'archived'
      - `tenant_id` string
      - `timezone` string — Timezone is the customer's IANA timezone name (e.g. "Asia/Kolkata"). Defaults to "UTC". Inherited by subscriptions at creation time.
      - `updated_at` string, date-time
      - `updated_by` string
    - `customer_id` string — customer_id is the ID of the customer who will receive this invoice
    - `description` string — description is an optional description or notes about this invoice
    - `due_date` string, date-time — due_date is the date when payment for this invoice is due
    - `environment_id` string — environment_id is the ID of the environment this invoice belongs to (for multi-environment setups)
    - `finalized_at` string, date-time — finalized_at is the timestamp when this invoice was finalized and made ready for payment
    - `id` string — id is the unique identifier for this invoice
    - `idempotency_key` string — idempotency_key is a unique key used to prevent duplicate invoice creation when retrying API calls
    - `invoice_number` string — invoice_number is the human-readable invoice number displayed to customers (e.g., INV-2024-001)
    - `invoice_pdf_url` string — invoice_pdf_url is the URL where customers can download the PDF version of this invoice
    - `invoice_status` 'DRAFT' | 'FINALIZED' | 'VOIDED' | 'SKIPPED'
    - `invoice_type` 'SUBSCRIPTION' | 'ONE_OFF' | 'CREDIT'
    - `issue_date` string, date-time — issue_date is the user-facing date of the invoice. Defaults to created_at if not set.
    - `last_computed_at` string, date-time — last_computed_at is the timestamp when this invoice was last computed by ComputeInvoice
    - `line_items` InvoiceLineItemResponse[] — line_items contains the individual items that make up this invoice (overrides embedded field)
      - `adjusted_entitlement_quantity` string — adjusted_entitlement_quantity is the entitlement-covered portion deducted from raw usage. Nil when no entitlement was applied. Raw usage = Quantity + AdjustedEntitlementQuantity.
      - `amount` string
      - `commitment_info` TypesCommitmentInfo
        - `amount` string
        - `computed_commitment_utilized_amount` string
        - `computed_overage_amount` string
        - `computed_true_up_amount` string — total_cost = computed_commitment_utilized_amount + computed_overage_amount + computed_true_up_amount
        - `duration` 'MONTHLY' | 'ANNUAL' | 'WEEKLY' | 'DAILY' | 'QUARTERLY' | 'HALF_YEARLY' | 'ONETIME'
        - `is_windowed` boolean
        - `overage_factor` string
        - `quantity` string — Only used for quantity-based commitments
        - `true_up_enabled` boolean
        - `type` 'amount' | 'quantity'
      - `created_at` string, date-time
      - `created_by` string
      - `currency` string
      - `customer_id` string
      - `display_name` string
      - `entity_id` string
      - `entity_type` string
      - `environment_id` string
      - `id` string
      - `invoice_id` string
      - `invoice_level_discount` string — invoice_level_discount is the discount amount in invoice currency applied to all line items on the invoice.
      - `line_item_discount` string — line_item_discount is the discount amount in invoice currency applied directly to this line item.
      - `metadata` TypesMetadata
      - `meter_display_name` string
      - `meter_id` string
      - `period_end` string, date-time
      - `period_start` string, date-time
      - `plan_display_name` string
      - `prepaid_credits_applied` string — prepaid_credits_applied is the amount in invoice currency reduced from this line item due to prepaid credits application.
      - `price_id` string
      - `price_type` string
      - `price_unit` string
      - `price_unit_amount` string
      - `price_unit_id` string
      - `quantity` string
      - `status` 'published' | 'deleted' | 'archived'
      - `subscription_id` string
      - `subscription_line_item_id` string — sub_line_item_id links this invoice line item to the subscription_line_item that generated it.
      - `tenant_id` string
      - `updated_at` string, date-time
      - `updated_by` string
      - `usage_analytics` SourceUsageItem[] — usage_analytics contains usage analytics for this line item (legacy - grouped by source)
        - `cost` string — cost is the cost attributed to this source for the line item
        - `event_count` integer — event_count is the number of events from this source (optional)
        - `percentage` string — percentage is the percentage of total line item cost from this source (optional)
        - `source` string — source is the name of the event source
        - `usage` string — usage is the total usage amount from this source (optional, for additional context)
      - `usage_breakdown` UsageBreakdownItem[] — usage_breakdown contains flexible usage breakdown for this line item (supports any grouping)
        - `cost` string — cost is the cost attributed to this group for the line item
        - `event_count` integer — event_count is the number of events from this group (optional)
        - `grouped_by` object — grouped_by contains the grouping field values (e.g., {"source": "api", "org_id": "org123"})
        - `percentage` string — percentage is the percentage of total line item cost from this group (optional)
        - `usage` string — usage is the total usage amount from this group (optional, for additional context)
    - `metadata` TypesMetadata
    - `overpaid_amount` string — overpaid_amount is the amount overpaid if payment_status is OVERPAID (amount_paid - total)
    - `paid_at` string, date-time — paid_at is the timestamp when this invoice was fully paid
    - `payment_status` 'INITIATED' | 'PENDING' | 'PROCESSING' | 'SUCCEEDED' | 'OVERPAID' | 'FAILED' | 'REFUNDED' | 'PARTIALLY_REFUNDED' | 'VOIDED'
    - `period_end` string, date-time — period_end is the end date of the billing period covered by this invoice
    - `period_start` string, date-time — period_start is the start date of the billing period covered by this invoice
    - `recalculated_invoice_id` string — recalculated_invoice_id is the ID of the replacement invoice created when this invoice was voided and recalculated. When set, it forms a parent→child link from this (voided) invoice to the new replacement invoice.
    - `refunded_amount` string — refunded_amount is the total sum of credit notes of type "refund". These are actual refunds issued to the customer.
    - `status` 'published' | 'deleted' | 'archived'
    - `subscription` SubscriptionResponse
      - `active_pause_id` string — ActivePauseID references the current active pause configuration This will be null if no pause is active or scheduled
      - `auto_invoice_threshold` string — AutoInvoiceThreshold is the usage amount (in subscription currency) that triggers an intermediate invoice. Overrides the plan-level threshold when set. Nil means: inherit from the plan's threshold (which may also be nil = disabled).
      - `billing_anchor` string, date-time — BillingAnchor is the reference point that aligns future billing cycle dates. It sets the day of week for week intervals, the day of month for month and year intervals, and the month of year for year intervals. The timestamp is in UTC format.
      - `billing_cadence` 'RECURRING'
      - `billing_cycle` 'anniversary' | 'calendar'
      - `billing_period` 'MONTHLY' | 'ANNUAL' | 'WEEKLY' | 'DAILY' | 'QUARTERLY' | 'HALF_YEARLY' | 'ONETIME'
      - `billing_period_count` integer — BillingPeriodCount is the total number units of the billing period.
      - `cancel_at` string, date-time — CancelAt is the date the subscription will be canceled
      - `cancel_at_period_end` boolean — CancelAtPeriodEnd is whether the subscription was canceled at the end of the current period
      - `cancelled_at` string, date-time — CanceledAt is the date the subscription was canceled
      - `collection_method` string — CollectionMethod determines how invoices are collected
      - `commitment_amount` string — CommitmentAmount is the minimum amount a customer commits to paying for a billing period
      - `commitment_duration` 'MONTHLY' | 'ANNUAL' | 'WEEKLY' | 'DAILY' | 'QUARTERLY' | 'HALF_YEARLY' | 'ONETIME'
      - `coupon_associations` CouponAssociationResponse[] — CouponAssociations are the coupon associations for this subscription
        - `coupon` CouponResponse
          - `amount_off` string
          - `cadence` 'once' | 'repeated' | 'forever'
          - `coupon_code` string
          - `created_at` string, date-time
          - `created_by` string
          - `currency` string
          - `duration_in_periods` integer
          - `environment_id` string
          - `id` string
          - `max_redemptions` integer
          - `metadata` object
          - `name` string
          - `percentage_off` string
          - `redeem_after` string
          - `redeem_before` string
          - `rules` object
          - `status` 'published' | 'deleted' | 'archived'
          - `tenant_id` string
          - `total_redemptions` integer
          - `type` 'fixed' | 'percentage'
          - `updated_at` string, date-time
          - `updated_by` string
        - `coupon_id` string
        - `created_at` string, date-time
        - `created_by` string
        - `end_date` string, date-time — Optional
        - `environment_id` string
        - `id` string
        - `metadata` object
        - `start_date` string, date-time
        - `status` 'published' | 'deleted' | 'archived'
        - `subscription_id` string — Mandatory
        - `subscription_line_item` SubscriptionLineItemResponse
          - `addon_association_id` string
          - `billing_period` 'MONTHLY' | 'ANNUAL' | 'WEEKLY' | 'DAILY' | 'QUARTERLY' | 'HALF_YEARLY' | 'ONETIME'
          - `billing_period_count` integer — from price at create; default 1
          - `commitment_amount` string — Commitment fields
          - `commitment_duration` 'MONTHLY' | 'ANNUAL' | 'WEEKLY' | 'DAILY' | 'QUARTERLY' | 'HALF_YEARLY' | 'ONETIME'
          - `commitment_overage_factor` string
          - `commitment_quantity` string
          - `commitment_time_buckets` TypesTimeOfDayBucket[]
            - `commitment_type` 'amount' | 'quantity'
            - `commitment_value` string
            - `end` TypesBucket
              - …
            - `id` string — ID is server-assigned. Stable for the lifetime of the line item; invoice breakdown and analytics responses reference this ID.
            - `overage_factor` number
            - `price_id` string — PriceID is the SUBSCRIPTION-scoped price created at bucket-creation time. Immutable post-create; changing pricing requires a successor line item.
            - `start` TypesBucket
              - …
            - `true_up_enabled` boolean
          - `commitment_true_up_enabled` boolean
          - `commitment_type` 'amount' | 'quantity'
          - `commitment_windowed` boolean
          - `created_at` string, date-time
          - `created_by` string
          - `currency` string
          - `customer_id` string
          - `display_name` string
          - `end_date` string, date-time
          - `entity_id` string
          - `entity_type` 'plan' | 'addon' | 'subscription'
          - `environment_id` string
          - `id` string
          - `invoice_cadence` 'ARREAR' | 'ADVANCE'
          - `metadata` object
          - `meter` MeterMeter
            - `aggregation` MeterAggregation
              - …
            - `created_at` string, date-time
            - `created_by` string
            - `environment_id` string — EnvironmentID is the environment identifier for the meter
            - `event_name` string — EventName is the unique identifier for the event that this meter is tracking It is a mandatory field in the events table and hence being used as the primary matching field We can have multiple meters tracking the same event but with different filters and aggregation
            - `filters` MeterFilter[] — Filters define the criteria for the meter to be applied on the events before aggregation It also defines the possible values on which later the charges will be applied
              - …
            - `id` string — ID is the unique identifier for the meter
            - `name` string — Name is the display name of the meter
            - `reset_usage` 'BILLING_PERIOD' | 'NEVER'
            - `status` 'published' | 'deleted' | 'archived'
            - `tenant_id` string
            - `updated_at` string, date-time
            - `updated_by` string
          - `meter_display_name` string
          - `meter_id` string
          - `plan_display_name` string
          - `price` PriceResponse
            - `addon` AddonResponse
              - …
            - `amount` string — Amount stored in main currency units (e.g., dollars, not cents) For USD: 12.50 means $12.50
            - `billing_cadence` 'RECURRING'
            - `billing_model` 'FLAT_FEE' | 'PACKAGE' | 'TIERED'
            - `billing_period` 'MONTHLY' | 'ANNUAL' | 'WEEKLY' | 'DAILY' | 'QUARTERLY' | 'HALF_YEARLY' | 'ONETIME'
            - `billing_period_count` integer — BillingPeriodCount is the count of the billing period ex 1, 3, 6, 12
            - `conversion_rate` string — ConversionRate is the conversion rate of the price unit to the fiat currency
            - `created_at` string, date-time
            - `created_by` string
            - `currency` string — Currency 3 digit ISO currency code in lowercase ex usd, eur, gbp
            - `description` string — Description of the price
            - `display_amount` string — DisplayAmount is the formatted amount with currency symbol For USD: $12.50
            - `display_name` string — DisplayName is the name of the price
            - `display_price_unit_amount` string — DisplayPriceUnitAmount is the formatted amount of the price unit
            - `end_date` string, date-time — EndDate is the end date of the price
            - `entity_id` string — EntityID holds the value of the "entity_id" field.
            - `entity_type` 'PLAN' | 'SUBSCRIPTION' | 'ADDON' | 'PRICE' | 'COSTSHEET'
            - `environment_id` string — EnvironmentID is the environment identifier for the price
            - `group` GroupResponse
              - …
            - `group_id` string — GroupID references the group this price belongs to
            - `id` string — ID uuid identifier for the price
            - `invoice_cadence` 'ARREAR' | 'ADVANCE'
            - `lookup_key` string — LookupKey used for looking up the price in the database
            - `metadata` PriceJSONBMetadata
            - `meter` MeterResponse
              - …
            - `meter_id` string — MeterID is the id of the meter for usage based pricing
            - `min_quantity` string, nullable — MinQuantity is the minimum quantity of the price
            - `parent_price_id` string — ParentPriceID references the root price (always set for price lineage tracking)
            - `plan` PlanResponse
              - …
            - `price_unit` string — PriceUnit is the code of the price unit (e.g., 'btc', 'eth')
            - `price_unit_amount` string — PriceUnitAmount is the amount of the price unit
            - `price_unit_id` string — PriceUnitID is the id of the price unit (for CUSTOM type)
            - `price_unit_tiers` PricePriceTier[] — PriceUnitTiers are the tiers for the price unit when BillingModel is TIERED
              - …
            - `price_unit_type` 'FIAT' | 'CUSTOM'
            - `pricing_unit` PriceUnitResponse
              - …
            - `sequence` integer — Sequence is the monotonic stamp bumped on every state change that subscription line items need to react to. Read by the plan-price sync; set by the database (DEFAULT nextval) on create and by the price repository on termination / compatibility-affecting edits.
            - `start_date` string, date-time — StartDate is the start date of the price
            - `status` 'published' | 'deleted' | 'archived'
            - `tenant_id` string
            - `tier_mode` 'VOLUME' | 'SLAB'
            - `tiers` PricePriceTier[]
              - …
            - `transform_quantity` PriceJSONBTransformQuantity
              - …
            - `trial_period_days` integer — TrialPeriodDays is the number of days for the trial period Note: This is only applicable for recurring prices (BILLING_CADENCE_RECURRING)
            - `type` 'USAGE' | 'FIXED'
            - `updated_at` string, date-time
            - `updated_by` string
          - `price_id` string
          - `price_type` 'USAGE' | 'FIXED'
          - `price_unit` string
          - `price_unit_id` string
          - `quantity` string
          - `start_date` string, date-time
          - `status` 'published' | 'deleted' | 'archived'
          - `subscription_id` string
          - `subscription_phase_id` string
          - `tenant_id` string
          - `updated_at` string, date-time
          - `updated_by` string
        - `subscription_line_item_id` string — Optional
        - `subscription_phase_id` string — Optional
        - `tenant_id` string
        - `updated_at` string, date-time
        - `updated_by` string
      - `created_at` string, date-time
      - `created_by` string
      - `credit_grants` CreditGrantResponse[] — Credit grants are the credit grants for this subscription
        - `addon_id` string
        - `cadence` 'ONETIME' | 'RECURRING'
        - `conversion_rate` string — amount in the currency = number of credits * conversion_rate ex if conversion_rate is 1, then 1 USD = 1 credit ex if conversion_rate is 2, then 1 USD = 0.5 credits ex if conversion_rate is 0.5, then 1 USD = 2 credits
        - `created_at` string, date-time
        - `created_by` string
        - `credit_grant_anchor` string, date-time
        - `credits` string
        - `end_date` string, date-time
        - `environment_id` string
        - `expiration_duration` integer
        - `expiration_duration_unit` 'DAY' | 'WEEK' | 'MONTH' | 'YEAR'
        - `expiration_type` 'NEVER' | 'DURATION' | 'BILLING_CYCLE'
        - `id` string
        - `metadata` TypesMetadata
        - `name` string
        - `period` 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'ANNUAL' | 'QUARTERLY' | 'HALF_YEARLY'
        - `period_count` integer
        - `plan_id` string
        - `priority` integer
        - `scope` 'PLAN' | 'SUBSCRIPTION' | 'ADDON'
        - `start_date` string, date-time
        - `status` 'published' | 'deleted' | 'archived'
        - `subscription_id` string
        - `tenant_id` string
        - `topup_conversion_rate` string — topup_conversion_rate is the conversion rate for the topup to the currency ex if topup_conversion_rate is 1, then 1 USD = 1 credit ex if topup_conversion_rate is 2, then 1 USD = 0.5 credits ex if topup_conversion_rate is 0.5, then 1 USD = 2 credits
        - `updated_at` string, date-time
        - `updated_by` string
      - `currency` string — Currency is the currency of the subscription in lowercase 3 digit ISO codes
      - `current_period_end` string, date-time — CurrentPeriodEnd is the end of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created.
      - `current_period_start` string, date-time — CurrentPeriodStart is the end of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created.
      - `customer` CustomerResponse — Customer response object containing all customer information
        - `address_city` string — AddressCity is the city of the customer's address
        - `address_country` string — AddressCountry is the country of the customer's address (ISO 3166-1 alpha-2)
        - `address_line1` string — AddressLine1 is the first line of the customer's address
        - `address_line2` string — AddressLine2 is the second line of the customer's address
        - `address_postal_code` string — AddressPostalCode is the postal code of the customer's address
        - `address_state` string — AddressState is the state of the customer's address
        - `contact` string — Contact is an optional contact number for the customer (e.g. phone)
        - `created_at` string, date-time
        - `created_by` string
        - `email` string — Email is the email of the customer
        - `environment_id` string — EnvironmentID is the environment identifier for the customer
        - `external_id` string — ExternalID is the external identifier for the customer
        - `id` string — ID is the unique identifier for the customer
        - `integrations` EntityIntegrationMappingResponse[]
          - `created_at` string, date-time
          - `created_by` string
          - `entity_id` string
          - `entity_type` 'customer' | 'plan' | 'invoice' | 'subscription' | 'payment' | 'credit_note' | 'addon' | 'item' | 'item_price' | 'price' | 'invoice_line_item'
          - `environment_id` string
          - `id` string
          - `metadata` object
          - `provider_entity_id` string
          - `provider_type` string
          - `status` 'published' | 'deleted' | 'archived'
          - `tenant_id` string
          - `updated_at` string, date-time
          - `updated_by` string
        - `metadata` object — Metadata
        - `name` string — Name is the name of the customer
        - `status` 'published' | 'deleted' | 'archived'
        - `tenant_id` string
        - `timezone` string — Timezone is the customer's IANA timezone name (e.g. "Asia/Kolkata"). Defaults to "UTC". Inherited by subscriptions at creation time.
        - `updated_at` string, date-time
        - `updated_by` string
      - `customer_id` string — CustomerID is the identifier for the customer in our system
      - `enable_true_up` boolean
      - `end_date` string, date-time — EndDate is the end date of the subscription
      - `entitlements` AggregatedFeature[] — Entitlements is populated only when the caller adds "entitlements" to the search filter's expand string. Each entry is a feature with its aggregated entitlement info (same shape as CustomerEntitlementsResponse.Features).
        - `entitlement` AggregatedEntitlement
          - `aggregation_mode` 'additive' | 'parallel'
          - `buckets` AggregatedEntitlementBucket[]
            - `entitlement_id` string
            - `grant_duration_unit` 'hour' | 'day' | 'week'
            - `grant_duration_value` integer
            - `grant_measure` 'quantity' | 'amount'
            - `grant_quota` string
            - `source_entity_id` string
            - `usage_limit` integer
          - `config_values` object[]
          - `is_enabled` boolean
          - `is_soft_limit` boolean
          - `static_values` string[]
          - `usage_limit` integer
          - `usage_reset_period` 'MONTHLY' | 'ANNUAL' | 'WEEKLY' | 'DAILY' | 'QUARTERLY' | 'HALF_YEARLY' | 'NEVER'
        - `feature` FeatureResponse
          - `alert_settings` TypesAlertSettings
            - `alert_enabled` boolean
            - `critical` TypesAlertThreshold
              - …
            - `info` TypesAlertThreshold
              - …
            - `warning` TypesAlertThreshold
              - …
          - `created_at` string, date-time
          - `created_by` string
          - `description` string
          - `environment_id` string
          - `group` GroupResponse
            - `created_at` string, date-time
            - `entity_ids` string[]
            - `entity_type` string
            - `id` string
            - `lookup_key` string
            - `metadata` object
            - `name` string
            - `status` string
            - `updated_at` string, date-time
          - `group_id` string
          - `id` string
          - `lookup_key` string
          - `metadata` TypesMetadata
          - `meter` MeterResponse
            - `aggregation` MeterAggregation
              - …
            - `created_at` string, date-time
            - `event_name` string
            - `filters` MeterFilter[]
              - …
            - `id` string
            - `name` string
            - `reset_usage` 'BILLING_PERIOD' | 'NEVER'
            - `status` string
            - `tenant_id` string
            - `updated_at` string, date-time
          - `meter_id` string
          - `name` string
          - `reporting_unit` TypesReportingUnit
            - `conversion_rate` number — Multiplier: reporting_unit_value = unit_value * conversion_rate; must be > 0
            - `unit_plural` string — Display unit label, plural (e.g. "seconds")
            - `unit_singular` string — Display unit label, singular (e.g. "second")
          - `status` 'published' | 'deleted' | 'archived'
          - `tenant_id` string
          - `type` 'metered' | 'boolean' | 'static' | 'config'
          - `unit_plural` string
          - `unit_singular` string
          - `updated_at` string, date-time
          - `updated_by` string
        - `sources` EntitlementSource[]
          - `config_value` object
          - `entitlement_id` string
          - `entity_id` string
          - `entity_name` string
          - `entity_type` 'plan' | 'addon' | 'subscription'
          - `is_enabled` boolean
          - `quantity` integer
          - `static_value` string
          - `subscription_id` string
          - `usage_limit` integer
          - `usage_reset_period` 'MONTHLY' | 'ANNUAL' | 'WEEKLY' | 'DAILY' | 'QUARTERLY' | 'HALF_YEARLY' | 'ONETIME'
      - `environment_id` string — EnvironmentID is the environment identifier for the subscription
      - `gateway_payment_method_id` string — GatewayPaymentMethodID is the gateway payment method ID for this subscription
      - `id` string — ID is the unique identifier for the subscription
      - `invoicing_customer_id` string — InvoicingCustomerID is the customer ID to use for invoicing This can differ from the subscription customer (e.g., parent company invoicing for child company)
      - `latest_invoice` InvoiceResponse — recursive
      - `line_items` SubscriptionSubscriptionLineItem[]
        - `addon_association_id` string
        - `billing_period` 'MONTHLY' | 'ANNUAL' | 'WEEKLY' | 'DAILY' | 'QUARTERLY' | 'HALF_YEARLY' | 'ONETIME'
        - `billing_period_count` integer — from price at create; default 1
        - `commitment_amount` string — Commitment fields
        - `commitment_duration` 'MONTHLY' | 'ANNUAL' | 'WEEKLY' | 'DAILY' | 'QUARTERLY' | 'HALF_YEARLY' | 'ONETIME'
        - `commitment_overage_factor` string
        - `commitment_quantity` string
        - `commitment_time_buckets` TypesTimeOfDayBucket[]
          - `commitment_type` 'amount' | 'quantity'
          - `commitment_value` string
          - `end` TypesBucket
            - `hour` integer
            - `minute` integer
          - `id` string — ID is server-assigned. Stable for the lifetime of the line item; invoice breakdown and analytics responses reference this ID.
          - `overage_factor` number
          - `price_id` string — PriceID is the SUBSCRIPTION-scoped price created at bucket-creation time. Immutable post-create; changing pricing requires a successor line item.
          - `start` TypesBucket
            - `hour` integer
            - `minute` integer
          - `true_up_enabled` boolean
        - `commitment_true_up_enabled` boolean
        - `commitment_type` 'amount' | 'quantity'
        - `commitment_windowed` boolean
        - `created_at` string, date-time
        - `created_by` string
        - `currency` string
        - `customer_id` string
        - `display_name` string
        - `end_date` string, date-time
        - `entity_id` string
        - `entity_type` 'plan' | 'addon' | 'subscription'
        - `environment_id` string
        - `id` string
        - `invoice_cadence` 'ARREAR' | 'ADVANCE'
        - `metadata` object
        - `meter` MeterMeter
          - `aggregation` MeterAggregation
            - `bucket_size` 'MINUTE' | '15MIN' | '30MIN' | 'HOUR' | '3HOUR' | '6HOUR' | '12HOUR' | 'DAY' | 'WEEK' | 'MONTH'
            - `expression` string — Expression is an optional CEL expression to compute per-event quantity from event.properties. When set, it replaces Field-based extraction. Property names are used directly (e.g., token * duration * pixel).
            - `field` string — Field is the key in $event.properties on which the aggregation is to be applied For ex if the aggregation type is sum for API usage, the field could be "duration_ms" Ignored when Expression is set.
            - `group_by` string — GroupBy is the property name in event.properties to group by before aggregating. Currently only supported for MAX aggregation with bucket_size. When set, aggregation is applied per unique value of this property within each bucket, then the per-group results are summed to produce the bucket total.
            - `multiplier` string — Multiplier is the multiplier for the aggregation For ex if the aggregation type is sum_with_multiplier for API usage, the multiplier could be 1000 to scale up by a factor of 1000. If not provided, it will be null.
            - `type` 'COUNT' | 'SUM' | 'AVG' | 'COUNT_UNIQUE' | 'LATEST' | 'SUM_WITH_MULTIPLIER' | 'MAX' | 'WEIGHTED_SUM'
          - `created_at` string, date-time
          - `created_by` string
          - `environment_id` string — EnvironmentID is the environment identifier for the meter
          - `event_name` string — EventName is the unique identifier for the event that this meter is tracking It is a mandatory field in the events table and hence being used as the primary matching field We can have multiple meters tracking the same event but with different filters and aggregation
          - `filters` MeterFilter[] — Filters define the criteria for the meter to be applied on the events before aggregation It also defines the possible values on which later the charges will be applied
            - `key` string — Key is the key for the filter from $event.properties Currently we support only first level keys in the properties and not nested keys
            - `values` string[] — Values are the possible values for the filter to be considered for the meter For ex "model_name" could have values "o1-mini", "gpt-4o" etc
          - `id` string — ID is the unique identifier for the meter
          - `name` string — Name is the display name of the meter
          - `reset_usage` 'BILLING_PERIOD' | 'NEVER'
          - `status` 'published' | 'deleted' | 'archived'
          - `tenant_id` string
          - `updated_at` string, date-time
          - `updated_by` string
        - `meter_display_name` string
        - `meter_id` string
        - `plan_display_name` string
        - `price` PricePrice
          - `amount` string — Amount stored in main currency units (e.g., dollars, not cents) For USD: 12.50 means $12.50
          - `billing_cadence` 'RECURRING'
          - `billing_model` 'FLAT_FEE' | 'PACKAGE' | 'TIERED'
          - `billing_period` 'MONTHLY' | 'ANNUAL' | 'WEEKLY' | 'DAILY' | 'QUARTERLY' | 'HALF_YEARLY' | 'ONETIME'
          - `billing_period_count` integer — BillingPeriodCount is the count of the billing period ex 1, 3, 6, 12
          - `conversion_rate` string — ConversionRate is the conversion rate of the price unit to the fiat currency
          - `created_at` string, date-time
          - `created_by` string
          - `currency` string — Currency 3 digit ISO currency code in lowercase ex usd, eur, gbp
          - `description` string — Description of the price
          - `display_amount` string — DisplayAmount is the formatted amount with currency symbol For USD: $12.50
          - `display_name` string — DisplayName is the name of the price
          - `display_price_unit_amount` string — DisplayPriceUnitAmount is the formatted amount of the price unit
          - `end_date` string, date-time — EndDate is the end date of the price
          - `entity_id` string — EntityID holds the value of the "entity_id" field.
          - `entity_type` 'PLAN' | 'SUBSCRIPTION' | 'ADDON' | 'PRICE' | 'COSTSHEET'
          - `environment_id` string — EnvironmentID is the environment identifier for the price
          - `group_id` string — GroupID references the group this price belongs to
          - `id` string — ID uuid identifier for the price
          - `invoice_cadence` 'ARREAR' | 'ADVANCE'
          - `lookup_key` string — LookupKey used for looking up the price in the database
          - `metadata` PriceJSONBMetadata
          - `meter_id` string — MeterID is the id of the meter for usage based pricing
          - `min_quantity` string, nullable — MinQuantity is the minimum quantity of the price
          - `parent_price_id` string — ParentPriceID references the root price (always set for price lineage tracking)
          - `price_unit` string — PriceUnit is the code of the price unit (e.g., 'btc', 'eth')
          - `price_unit_amount` string — PriceUnitAmount is the amount of the price unit
          - `price_unit_id` string — PriceUnitID is the id of the price unit (for CUSTOM type)
          - `price_unit_tiers` PricePriceTier[] — PriceUnitTiers are the tiers for the price unit when BillingModel is TIERED
            - `flat_amount` string — flat_amount is the flat amount for the given tier (optional) Applied on top of unit_amount*quantity. Useful for cases like "2.7$ + 5c"
            - `unit_amount` string — unit_amount is the amount per unit for the given tier
            - `up_to` integer — up_to is the quantity up to which this tier applies. It is null for the last tier. IMPORTANT: Tier boundaries are INCLUSIVE. - If up_to is 1000, then quantity less than or equal to 1000 belongs to this tier - This behavior is consistent across both VOLUME and SLAB tier modes
          - `price_unit_type` 'FIAT' | 'CUSTOM'
          - `sequence` integer — Sequence is the monotonic stamp bumped on every state change that subscription line items need to react to. Read by the plan-price sync; set by the database (DEFAULT nextval) on create and by the price repository on termination / compatibility-affecting edits.
          - `start_date` string, date-time — StartDate is the start date of the price
          - `status` 'published' | 'deleted' | 'archived'
          - `tenant_id` string
          - `tier_mode` 'VOLUME' | 'SLAB'
          - `tiers` PricePriceTier[]
            - `flat_amount` string — flat_amount is the flat amount for the given tier (optional) Applied on top of unit_amount*quantity. Useful for cases like "2.7$ + 5c"
            - `unit_amount` string — unit_amount is the amount per unit for the given tier
            - `up_to` integer — up_to is the quantity up to which this tier applies. It is null for the last tier. IMPORTANT: Tier boundaries are INCLUSIVE. - If up_to is 1000, then quantity less than or equal to 1000 belongs to this tier - This behavior is consistent across both VOLUME and SLAB tier modes
          - `transform_quantity` PriceJSONBTransformQuantity
            - `divide_by` integer — Divide quantity by this number
            - `round` 'up' | 'down'
          - `trial_period_days` integer — TrialPeriodDays is the number of days for the trial period Note: This is only applicable for recurring prices (BILLING_CADENCE_RECURRING)
          - `type` 'USAGE' | 'FIXED'
          - `updated_at` string, date-time
          - `updated_by` string
        - `price_id` string
        - `price_type` 'USAGE' | 'FIXED'
        - `price_unit` string
        - `price_unit_id` string
        - `quantity` string
        - `start_date` string, date-time
        - `status` 'published' | 'deleted' | 'archived'
        - `subscription_id` string
        - `subscription_phase_id` string
        - `tenant_id` string
        - `updated_at` string, date-time
        - `updated_by` string
      - `lookup_key` string — LookupKey is the key used to lookup the subscription in our system
      - `metadata` TypesMetadata
      - `overage_factor` string — OverageFactor is a multiplier applied to usage beyond the commitment amount
      - `parent_subscription_id` string — ParentSubscriptionID is the parent subscription ID for hierarchy (e.g. child subscription under a parent)
      - `pause_status` 'none' | 'active' | 'scheduled' | 'completed' | 'cancelled'
      - `pauses` SubscriptionSubscriptionPause[]
        - `created_at` string, date-time
        - `created_by` string
        - `environment_id` string — EnvironmentID is the environment identifier for the pause
        - `id` string — ID is the unique identifier for the subscription pause
        - `metadata` TypesMetadata
        - `original_period_end` string, date-time — OriginalPeriodEnd is the end of the billing period when the pause was created
        - `original_period_start` string, date-time — OriginalPeriodStart is the start of the billing period when the pause was created
        - `pause_end` string, date-time — PauseEnd is when the pause will end (null for indefinite)
        - `pause_mode` 'immediate' | 'scheduled' | 'period_end'
        - `pause_start` string, date-time — PauseStart is when the pause actually started
        - `pause_status` 'none' | 'active' | 'scheduled' | 'completed' | 'cancelled'
        - `reason` string — Reason is the reason for pausing
        - `resume_mode` 'immediate' | 'scheduled' | 'auto'
        - `resumed_at` string, date-time — ResumedAt is when the pause was actually ended (if manually resumed)
        - `status` 'published' | 'deleted' | 'archived'
        - `subscription_id` string — SubscriptionID is the identifier for the subscription
        - `tenant_id` string
        - `updated_at` string, date-time
        - `updated_by` string
      - `payment_behavior` string — PaymentBehavior determines how subscription payments are handled
      - `payment_terms` '15 NET' | '30 NET' | '45 NET' | '60 NET' | '75 NET' | '90 NET'
      - `phases` SubscriptionPhaseResponse[] — Phases are the subscription phases for this subscription
        - `created_at` string, date-time
        - `created_by` string
        - `end_date` string, date-time — EndDate is when the phase ends (nil if phase is still active or indefinite)
        - `environment_id` string — EnvironmentID is the environment identifier for the phase
        - `id` string — ID is the unique identifier for the subscription phase
        - `metadata` TypesMetadata
        - `start_date` string, date-time — StartDate is when the phase starts
        - `status` 'published' | 'deleted' | 'archived'
        - `subscription_id` string — SubscriptionID is the identifier for the subscription
        - `tenant_id` string
        - `updated_at` string, date-time
        - `updated_by` string
      - `plan` PlanResponse
        - `created_at` string, date-time
        - `created_by` string
        - `credit_grants` CreditGrantResponse[]
          - `addon_id` string
          - `cadence` 'ONETIME' | 'RECURRING'
          - `conversion_rate` string — amount in the currency = number of credits * conversion_rate ex if conversion_rate is 1, then 1 USD = 1 credit ex if conversion_rate is 2, then 1 USD = 0.5 credits ex if conversion_rate is 0.5, then 1 USD = 2 credits
          - `created_at` string, date-time
          - `created_by` string
          - `credit_grant_anchor` string, date-time
          - `credits` string
          - `end_date` string, date-time
          - `environment_id` string
          - `expiration_duration` integer
          - `expiration_duration_unit` 'DAY' | 'WEEK' | 'MONTH' | 'YEAR'
          - `expiration_type` 'NEVER' | 'DURATION' | 'BILLING_CYCLE'
          - `id` string
          - `metadata` TypesMetadata
          - `name` string
          - `period` 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'ANNUAL' | 'QUARTERLY' | 'HALF_YEARLY'
          - `period_count` integer
          - `plan_id` string
          - `priority` integer
          - `scope` 'PLAN' | 'SUBSCRIPTION' | 'ADDON'
          - `start_date` string, date-time
          - `status` 'published' | 'deleted' | 'archived'
          - `subscription_id` string
          - `tenant_id` string
          - `topup_conversion_rate` string — topup_conversion_rate is the conversion rate for the topup to the currency ex if topup_conversion_rate is 1, then 1 USD = 1 credit ex if topup_conversion_rate is 2, then 1 USD = 0.5 credits ex if topup_conversion_rate is 0.5, then 1 USD = 2 credits
          - `updated_at` string, date-time
          - `updated_by` string
        - `description` string
        - `display_order` integer
        - `entitlements` EntitlementResponse[]
          - `addon` AddonResponse
            - `created_at` string, date-time
            - `created_by` string
            - `credit_grants` CreditGrantResponse[]
              - …
            - `description` string
            - `entitlements` EntitlementResponse[]
            - `environment_id` string
            - `id` string
            - `lookup_key` string
            - `metadata` object
            - `name` string
            - `prices` PriceResponse[] — Optional expanded fields
              - …
            - `status` 'published' | 'deleted' | 'archived'
            - `tenant_id` string
            - `updated_at` string, date-time
            - `updated_by` string
          - `aggregation_mode` 'additive' | 'parallel'
          - `config_value` object
          - `created_at` string, date-time
          - `created_by` string
          - `display_order` integer
          - `end_date` string, date-time
          - `entity_id` string
          - `entity_type` 'PLAN' | 'SUBSCRIPTION' | 'ADDON'
          - `environment_id` string
          - `feature` FeatureResponse
            - `alert_settings` TypesAlertSettings
              - …
            - `created_at` string, date-time
            - `created_by` string
            - `description` string
            - `environment_id` string
            - `group` GroupResponse
              - …
            - `group_id` string
            - `id` string
            - `lookup_key` string
            - `metadata` TypesMetadata
            - `meter` MeterResponse
              - …
            - `meter_id` string
            - `name` string
            - `reporting_unit` TypesReportingUnit
              - …
            - `status` 'published' | 'deleted' | 'archived'
            - `tenant_id` string
            - `type` 'metered' | 'boolean' | 'static' | 'config'
            - `unit_plural` string
            - `unit_singular` string
            - `updated_at` string, date-time
            - `updated_by` string
          - `feature_id` string
          - `feature_type` 'metered' | 'boolean' | 'static' | 'config'
          - `grant_duration_unit` 'hour' | 'day' | 'week'
          - `grant_duration_value` integer
          - `grant_measure` 'quantity' | 'amount'
          - `grant_quota` number
          - `id` string
          - `is_enabled` boolean
          - `is_soft_limit` boolean
          - `parent_entitlement_id` string
          - `plan` PlanResponse — recursive
          - `plan_id` string — TODO: Remove this once we have a proper entitlement entity type
          - `start_date` string, date-time
          - `static_value` string
          - `status` 'published' | 'deleted' | 'archived'
          - `tenant_id` string
          - `updated_at` string, date-time
          - `updated_by` string
          - `usage_limit` integer
          - `usage_reset_period` 'MONTHLY' | 'ANNUAL' | 'WEEKLY' | 'DAILY' | 'QUARTERLY' | 'HALF_YEARLY' | 'NEVER'
        - `environment_id` string
        - `id` string
        - `lookup_key` string
        - `metadata` TypesMetadata
        - `name` string
        - `prices` PriceResponse[] — TODO: Add inline addons
          - `addon` AddonResponse
            - `created_at` string, date-time
            - `created_by` string
            - `credit_grants` CreditGrantResponse[]
              - …
            - `description` string
            - `entitlements` EntitlementResponse[]
              - …
            - `environment_id` string
            - `id` string
            - `lookup_key` string
            - `metadata` object
            - `name` string
            - `prices` PriceResponse[] — Optional expanded fields
            - `status` 'published' | 'deleted' | 'archived'
            - `tenant_id` string
            - `updated_at` string, date-time
            - `updated_by` string
          - `amount` string — Amount stored in main currency units (e.g., dollars, not cents) For USD: 12.50 means $12.50
          - `billing_cadence` 'RECURRING'
          - `billing_model` 'FLAT_FEE' | 'PACKAGE' | 'TIERED'
          - `billing_period` 'MONTHLY' | 'ANNUAL' | 'WEEKLY' | 'DAILY' | 'QUARTERLY' | 'HALF_YEARLY' | 'ONETIME'
          - `billing_period_count` integer — BillingPeriodCount is the count of the billing period ex 1, 3, 6, 12
          - `conversion_rate` string — ConversionRate is the conversion rate of the price unit to the fiat currency
          - `created_at` string, date-time
          - `created_by` string
          - `currency` string — Currency 3 digit ISO currency code in lowercase ex usd, eur, gbp
          - `description` string — Description of the price
          - `display_amount` string — DisplayAmount is the formatted amount with currency symbol For USD: $12.50
          - `display_name` string — DisplayName is the name of the price
          - `display_price_unit_amount` string — DisplayPriceUnitAmount is the formatted amount of the price unit
          - `end_date` string, date-time — EndDate is the end date of the price
          - `entity_id` string — EntityID holds the value of the "entity_id" field.
          - `entity_type` 'PLAN' | 'SUBSCRIPTION' | 'ADDON' | 'PRICE' | 'COSTSHEET'
          - `environment_id` string — EnvironmentID is the environment identifier for the price
          - `group` GroupResponse
            - `created_at` string, date-time
            - `entity_ids` string[]
            - `entity_type` string
            - `id` string
            - `lookup_key` string
            - `metadata` object
            - `name` string
            - `status` string
            - `updated_at` string, date-time
          - `group_id` string — GroupID references the group this price belongs to
          - `id` string — ID uuid identifier for the price
          - `invoice_cadence` 'ARREAR' | 'ADVANCE'
          - `lookup_key` string — LookupKey used for looking up the price in the database
          - `metadata` PriceJSONBMetadata
          - `meter` MeterResponse
            - `aggregation` MeterAggregation
              - …
            - `created_at` string, date-time
            - `event_name` string
            - `filters` MeterFilter[]
              - …
            - `id` string
            - `name` string
            - `reset_usage` 'BILLING_PERIOD' | 'NEVER'
            - `status` string
            - `tenant_id` string
            - `updated_at` string, date-time
          - `meter_id` string — MeterID is the id of the meter for usage based pricing
          - `min_quantity` string, nullable — MinQuantity is the minimum quantity of the price
          - `parent_price_id` string — ParentPriceID references the root price (always set for price lineage tracking)
          - `plan` PlanResponse — recursive
          - `price_unit` string — PriceUnit is the code of the price unit (e.g., 'btc', 'eth')
          - `price_unit_amount` string — PriceUnitAmount is the amount of the price unit
          - `price_unit_id` string — PriceUnitID is the id of the price unit (for CUSTOM type)
          - `price_unit_tiers` PricePriceTier[] — PriceUnitTiers are the tiers for the price unit when BillingModel is TIERED
            - `flat_amount` string — flat_amount is the flat amount for the given tier (optional) Applied on top of unit_amount*quantity. Useful for cases like "2.7$ + 5c"
            - `unit_amount` string — unit_amount is the amount per unit for the given tier
            - `up_to` integer — up_to is the quantity up to which this tier applies. It is null for the last tier. IMPORTANT: Tier boundaries are INCLUSIVE. - If up_to is 1000, then quantity less than or equal to 1000 belongs to this tier - This behavior is consistent across both VOLUME and SLAB tier modes
          - `price_unit_type` 'FIAT' | 'CUSTOM'
          - `pricing_unit` PriceUnitResponse
            - `base_currency` string
            - `code` string
            - `conversion_rate` string
            - `created_at` string, date-time
            - `created_by` string
            - `environment_id` string
            - `id` string
            - `metadata` TypesMetadata
            - `name` string
            - `status` 'published' | 'deleted' | 'archived'
            - `symbol` string
            - `tenant_id` string
            - `updated_at` string, date-time
            - `updated_by` string
          - `sequence` integer — Sequence is the monotonic stamp bumped on every state change that subscription line items need to react to. Read by the plan-price sync; set by the database (DEFAULT nextval) on create and by the price repository on termination / compatibility-affecting edits.
          - `start_date` string, date-time — StartDate is the start date of the price
          - `status` 'published' | 'deleted' | 'archived'
          - `tenant_id` string
          - `tier_mode` 'VOLUME' | 'SLAB'
          - `tiers` PricePriceTier[]
            - `flat_amount` string — flat_amount is the flat amount for the given tier (optional) Applied on top of unit_amount*quantity. Useful for cases like "2.7$ + 5c"
            - `unit_amount` string — unit_amount is the amount per unit for the given tier
            - `up_to` integer — up_to is the quantity up to which this tier applies. It is null for the last tier. IMPORTANT: Tier boundaries are INCLUSIVE. - If up_to is 1000, then quantity less than or equal to 1000 belongs to this tier - This behavior is consistent across both VOLUME and SLAB tier modes
          - `transform_quantity` PriceJSONBTransformQuantity
            - `divide_by` integer — Divide quantity by this number
            - `round` 'up' | 'down'
          - `trial_period_days` integer — TrialPeriodDays is the number of days for the trial period Note: This is only applicable for recurring prices (BILLING_CADENCE_RECURRING)
          - `type` 'USAGE' | 'FIXED'
          - `updated_at` string, date-time
          - `updated_by` string
        - `status` 'published' | 'deleted' | 'archived'
        - `tenant_id` string
        - `updated_at` string, date-time
        - `updated_by` string
      - `plan_id` string — PlanID is the identifier for the plan in our system
      - `proration_behavior` 'create_prorations' | 'none'
      - `start_date` string, date-time — StartDate is the start date of the subscription
      - `status` 'published' | 'deleted' | 'archived'
      - `subscription_status` 'active' | 'paused' | 'cancelled' | 'incomplete' | 'trialing' | 'draft'
      - `subscription_type` 'standalone' | 'delegated_invoicing' | 'parent' | 'inherited' | 'grouped_invoicing'
      - `synced_price_sequence` integer — SyncedPriceSequence is the plan-price sequence up to which this subscription's line items have been reconciled. Bumped by the plan-price sync after a successful pass.
      - `tenant_id` string
      - `timezone` string
      - `trial_end` string, date-time — TrialEnd is the end date of the trial period
      - `trial_start` string, date-time — TrialStart is the start date of the trial period
      - `updated_at` string, date-time
      - `updated_by` string
      - `version` integer — Version is used for optimistic locking
    - `subscription_customer_id` string — subscription_customer_id is the subscription owner's customer ID (Subscription.CustomerID). It may differ from customer_id when the subscription uses an invoicing customer. Set internally; nullable in DB.
    - `subscription_id` string — subscription_id is the ID of the subscription this invoice is associated with (only present for subscription-based invoices)
    - `subtotal` string — subtotal is the sum of all line items before any taxes, discounts, or additional fees
    - `taxes` TaxAppliedResponse[] — tax_applied_records contains the tax applied records associated with this invoice
      - `applied_at` string, date-time
      - `created_at` string, date-time
      - `created_by` string
      - `currency` string
      - `entity_id` string
      - `entity_type` 'customer' | 'subscription' | 'invoice' | 'tenant'
      - `environment_id` string
      - `id` string
      - `idempotency_key` string
      - `metadata` object
      - `status` 'published' | 'deleted' | 'archived'
      - `tax_amount` string
      - `tax_association_id` string
      - `tax_rate` TaxRateResponse
        - `code` string
        - `created_at` string, date-time
        - `created_by` string
        - `description` string
        - `environment_id` string
        - `fixed_value` string
        - `id` string
        - `metadata` object
        - `name` string
        - `percentage_value` string
        - `scope` 'INTERNAL' | 'EXTERNAL' | 'ONETIME'
        - `status` 'published' | 'deleted' | 'archived'
        - `tax_rate_status` 'ACTIVE' | 'INACTIVE'
        - `tax_rate_type` 'percentage' | 'fixed'
        - `tenant_id` string
        - `updated_at` string, date-time
        - `updated_by` string
      - `tax_rate_id` string
      - `taxable_amount` string
      - `tenant_id` string
      - `updated_at` string, date-time
      - `updated_by` string
    - `tenant_id` string
    - `total` string — total is the final amount including taxes, fees, and discounts
    - `total_discount` string — total_discount is the sum of all coupon discounts applied to the invoice
    - `total_prepaid_credits_applied` string — total_prepaid_credits_applied is the total amount of prepaid credits applied to this invoice.
    - `total_tax` string — total_tax is the sum of all taxes combined at the invoice level.
    - `updated_at` string, date-time
    - `updated_by` string
    - `version` integer — version is the version number for tracking changes to this invoice
    - `voided_at` string, date-time — voided_at is the timestamp when this invoice was voided or cancelled

---

[API](https://skmtc.net/flexprice/apis/flexprice-api.md) · [All operations](https://skmtc.net/flexprice/apis/flexprice-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/flexprice/flexprice-api/versions/f0601ed97bd3/schema)
