---
title: "Preview a transaction"
method: POST
path: "/transactions/preview"
tags: ["Transactions"]
---

# Preview a transaction

`POST /transactions/preview`

## Request

- Base URL: `https://sandbox-api.paddle.com`
- URL: `https://sandbox-api.paddle.com/transactions/preview`
- Auth: HTTP bearer

Previews a transaction without creating a transaction entity. Typically used for creating more advanced, dynamic pricing pages where users can build their own plans.

Consider using [the preview prices operation](https://developer.paddle.com/api-reference/pricing-preview/preview-prices) for simpler pricing pages.

You can provide location information when previewing a transaction. You must provide this if you want Paddle to calculate tax or [automatically localize prices](https://developer.paddle.com/build/products/offer-localized-pricing). You can provide one of:

* `customer_ip_address`: Paddle fetches location using the IP address to calculate totals.
* `address`: Paddle uses the country and ZIP code (where supplied) to calculate totals.
* `customer_id`, `address_id`, `business_id`: Paddle uses existing customer data to calculate totals. Typically used for logged-in customers.

When supplying items, you can exclude items from the total calculation using the `include_in_totals` boolean.

By default, recurring items with trials are considered to have a zero charge when previewing. Set `ignore_trials` to `true` to ignore trial periods against prices for transaction preview calculations.

If successful, your response includes the data you sent with a `details` object that includes totals for the supplied prices.

Transaction previews don't create transactions, so no `id` is returned.

## Request body

- union
  - TransactionPreviewCreateWithoutAddress: Preview a transaction without using any address information.
    - `customer_id` string: Unique Paddle ID for this customer entity, prefixed with `ctm_`.
    - `currency_code` 'USD' | 'EUR' | 'GBP' | 'JPY' | 'AUD' | 'CAD' | 'CHF' | 'HKD' | 'SGD' | 'SEK' | 'ARS' | 'BRL' | 'CLP' | 'CNY' | 'COP' | 'CZK' | 'DKK' | 'HUF' | 'ILS' | 'INR' | 'KRW' | 'MXN' | 'NOK' | 'NZD' | 'PEN' | 'PLN' | 'RUB' | 'THB' | 'TRY' | 'TWD' | 'UAH' | 'VND' | 'ZAR': Supported three-letter ISO 4217 currency code.
    - `discount_id` string: Unique Paddle ID for this discount, prefixed with `dsc_`.
    - `discount` DiscountCustom: Represents a discount entity for a custom, non-catalog discount.
      - `description` string, required: Short description for this discount for your reference. Not shown to customers.
      - `type` 'flat' | 'flat_per_seat' | 'percentage', required: Type of discount. Determines how this discount impacts the checkout or transaction total.
      - `amount` string, required: Amount to discount by. For `percentage` discounts, must be an amount between `0.01` and `100`. For `flat` and `flat_per_seat` discounts, amount in the lowest denomination for a currency.
      - `recur` boolean: Whether this discount applies for multiple subscription billing periods (`true`) or not (`false`). If omitted, defaults to `false`.
      - `maximum_recurring_intervals` integer, nullable: Number of subscription billing periods that this discount recurs for. Requires `recur`. `null` if this discount recurs forever. Subscription renewals, midcycle changes, and one-time charges billed to a subscription aren't considered a redemption. `times_used` is not incremented in these cases.
      - `custom_data` CustomData: Your own structured key-value data.
      - `restrict_to` string[], nullable: Product or price IDs that this discount is for. When including a product ID, all prices for that product can be discounted. `null` if this discount applies to all products and prices.
    - `ignore_trials` boolean: Whether trials should be ignored for transaction preview calculations. By default, recurring items with trials are considered to have a zero charge when previewing. Set to `true` to disable this.
    - `items` TransactionPreviewCreateItems[], required: List of items to preview charging for. You can preview charging for items that you've added to your catalog by passing the Paddle ID of an existing price entity, or you can preview charging for non-catalog items by passing a price object. Non-catalog items can be for existing products, or you can pass a product object as part of your price to preview charging for a non-catalog product.
      - union
        - TransactionPreviewItemWithPriceIdRequest: Add a catalog item to a transaction. In this case, the product and price that you're billing for exist in your product catalog in Paddle.
          - `quantity` integer, required: Quantity of this item on the transaction.
          - `include_in_totals` boolean: Whether this item should be included in totals for this transaction preview. Typically used to exclude one-time charges from calculations.
          - `proration` TransactionItemProration: How proration was calculated for this item. Populated when a transaction is created from a subscription change, where `proration_billing_mode` was `prorated_immediately` or `prorated_next_billing_period`. Set automatically by Paddle.
            - `rate` string, required: Rate used to calculate proration.
            - `billing_period` TimePeriod, required
              - …
          - `price_id` string, required: Unique Paddle ID for this price, prefixed with `pri_`.
        - TransactionPreviewItemWithPriceRequest: Add a non-catalog price for an existing product in your catalog to a transaction. In this case, the product you're billing for is a catalog product, but you charge a specific price for it.
          - `quantity` integer, required: Quantity of this item on the transaction.
          - `include_in_totals` boolean: Whether this item should be included in totals for this transaction preview. Typically used to exclude one-time charges from calculations.
          - `proration` TransactionItemProration: How proration was calculated for this item. Populated when a transaction is created from a subscription change, where `proration_billing_mode` was `prorated_immediately` or `prorated_next_billing_period`. Set automatically by Paddle.
            - `rate` string, required: Rate used to calculate proration.
            - `billing_period` TimePeriod, required
              - …
          - `price` TransactionPriceCreateWithProductId, required
            - `description` string, required: Internal description for this price, not shown to customers. Typically notes for your team.
            - `name` string, nullable: Name of this price, shown to customers at checkout and on invoices. Typically describes how often the related product bills.
            - `billing_cycle` Duration
              - …
            - `trial_period` PriceTrialDurationCreate
              - …
            - `tax_mode` 'account_setting' | 'external' | 'internal' | 'location': How tax is calculated for this price.
            - `unit_price` Money, required: A base representation of monetary value unformatted in the lowest denomination with currency code.
              - …
            - `unit_price_overrides` UnitPriceOverride[]: List of unit price overrides. Use to override the base price with a custom price and currency for a country or group of countries.
              - …
            - `quantity` PriceQuantity
              - …
            - `custom_data` CustomData: Your own structured key-value data.
            - `product_id` string, required: Unique Paddle ID for this product, prefixed with `pro_`.
        - TransactionPreviewItemWithPriceAndProductRequest: Add a non-catalog price for a non-catalog product in your catalog to a transaction. In this case, the product and price that you're billing for are specific to this transaction.
          - `quantity` integer, required: Quantity of this item on the transaction.
          - `include_in_totals` boolean: Whether this item should be included in totals for this transaction preview. Typically used to exclude one-time charges from calculations.
          - `proration` TransactionItemProration: How proration was calculated for this item. Populated when a transaction is created from a subscription change, where `proration_billing_mode` was `prorated_immediately` or `prorated_next_billing_period`. Set automatically by Paddle.
            - `rate` string, required: Rate used to calculate proration.
            - `billing_period` TimePeriod, required
              - …
          - `price` TransactionPriceCreateWithProduct, required
            - `description` string, required: Internal description for this price, not shown to customers. Typically notes for your team.
            - `name` string, nullable: Name of this price, shown to customers at checkout and on invoices. Typically describes how often the related product bills.
            - `billing_cycle` Duration
              - …
            - `trial_period` PriceTrialDurationCreate
              - …
            - `tax_mode` 'account_setting' | 'external' | 'internal' | 'location': How tax is calculated for this price.
            - `unit_price` Money, required: A base representation of monetary value unformatted in the lowest denomination with currency code.
              - …
            - `unit_price_overrides` UnitPriceOverride[]: List of unit price overrides. Use to override the base price with a custom price and currency for a country or group of countries.
              - …
            - `quantity` PriceQuantity
              - …
            - `custom_data` CustomData: Your own structured key-value data.
            - `product` TransactionSubscriptionProductCreate, required
              - …
  - TransactionPreviewCreateAddress: Paddle uses the country and ZIP code (where supplied) to calculate totals.
    - `customer_id` string: Unique Paddle ID for this customer entity, prefixed with `ctm_`.
    - `currency_code` 'USD' | 'EUR' | 'GBP' | 'JPY' | 'AUD' | 'CAD' | 'CHF' | 'HKD' | 'SGD' | 'SEK' | 'ARS' | 'BRL' | 'CLP' | 'CNY' | 'COP' | 'CZK' | 'DKK' | 'HUF' | 'ILS' | 'INR' | 'KRW' | 'MXN' | 'NOK' | 'NZD' | 'PEN' | 'PLN' | 'RUB' | 'THB' | 'TRY' | 'TWD' | 'UAH' | 'VND' | 'ZAR': Supported three-letter ISO 4217 currency code.
    - `discount_id` string: Unique Paddle ID for this discount, prefixed with `dsc_`.
    - `discount` DiscountCustom: Represents a discount entity for a custom, non-catalog discount.
      - `description` string, required: Short description for this discount for your reference. Not shown to customers.
      - `type` 'flat' | 'flat_per_seat' | 'percentage', required: Type of discount. Determines how this discount impacts the checkout or transaction total.
      - `amount` string, required: Amount to discount by. For `percentage` discounts, must be an amount between `0.01` and `100`. For `flat` and `flat_per_seat` discounts, amount in the lowest denomination for a currency.
      - `recur` boolean: Whether this discount applies for multiple subscription billing periods (`true`) or not (`false`). If omitted, defaults to `false`.
      - `maximum_recurring_intervals` integer, nullable: Number of subscription billing periods that this discount recurs for. Requires `recur`. `null` if this discount recurs forever. Subscription renewals, midcycle changes, and one-time charges billed to a subscription aren't considered a redemption. `times_used` is not incremented in these cases.
      - `custom_data` CustomData: Your own structured key-value data.
      - `restrict_to` string[], nullable: Product or price IDs that this discount is for. When including a product ID, all prices for that product can be discounted. `null` if this discount applies to all products and prices.
    - `ignore_trials` boolean: Whether trials should be ignored for transaction preview calculations. By default, recurring items with trials are considered to have a zero charge when previewing. Set to `true` to disable this.
    - `items` TransactionPreviewCreateItems[], required: List of items to preview charging for. You can preview charging for items that you've added to your catalog by passing the Paddle ID of an existing price entity, or you can preview charging for non-catalog items by passing a price object. Non-catalog items can be for existing products, or you can pass a product object as part of your price to preview charging for a non-catalog product.
      - union
        - TransactionPreviewItemWithPriceIdRequest: Add a catalog item to a transaction. In this case, the product and price that you're billing for exist in your product catalog in Paddle.
          - `quantity` integer, required: Quantity of this item on the transaction.
          - `include_in_totals` boolean: Whether this item should be included in totals for this transaction preview. Typically used to exclude one-time charges from calculations.
          - `proration` TransactionItemProration: How proration was calculated for this item. Populated when a transaction is created from a subscription change, where `proration_billing_mode` was `prorated_immediately` or `prorated_next_billing_period`. Set automatically by Paddle.
            - `rate` string, required: Rate used to calculate proration.
            - `billing_period` TimePeriod, required
              - …
          - `price_id` string, required: Unique Paddle ID for this price, prefixed with `pri_`.
        - TransactionPreviewItemWithPriceRequest: Add a non-catalog price for an existing product in your catalog to a transaction. In this case, the product you're billing for is a catalog product, but you charge a specific price for it.
          - `quantity` integer, required: Quantity of this item on the transaction.
          - `include_in_totals` boolean: Whether this item should be included in totals for this transaction preview. Typically used to exclude one-time charges from calculations.
          - `proration` TransactionItemProration: How proration was calculated for this item. Populated when a transaction is created from a subscription change, where `proration_billing_mode` was `prorated_immediately` or `prorated_next_billing_period`. Set automatically by Paddle.
            - `rate` string, required: Rate used to calculate proration.
            - `billing_period` TimePeriod, required
              - …
          - `price` TransactionPriceCreateWithProductId, required
            - `description` string, required: Internal description for this price, not shown to customers. Typically notes for your team.
            - `name` string, nullable: Name of this price, shown to customers at checkout and on invoices. Typically describes how often the related product bills.
            - `billing_cycle` Duration
              - …
            - `trial_period` PriceTrialDurationCreate
              - …
            - `tax_mode` 'account_setting' | 'external' | 'internal' | 'location': How tax is calculated for this price.
            - `unit_price` Money, required: A base representation of monetary value unformatted in the lowest denomination with currency code.
              - …
            - `unit_price_overrides` UnitPriceOverride[]: List of unit price overrides. Use to override the base price with a custom price and currency for a country or group of countries.
              - …
            - `quantity` PriceQuantity
              - …
            - `custom_data` CustomData: Your own structured key-value data.
            - `product_id` string, required: Unique Paddle ID for this product, prefixed with `pro_`.
        - TransactionPreviewItemWithPriceAndProductRequest: Add a non-catalog price for a non-catalog product in your catalog to a transaction. In this case, the product and price that you're billing for are specific to this transaction.
          - `quantity` integer, required: Quantity of this item on the transaction.
          - `include_in_totals` boolean: Whether this item should be included in totals for this transaction preview. Typically used to exclude one-time charges from calculations.
          - `proration` TransactionItemProration: How proration was calculated for this item. Populated when a transaction is created from a subscription change, where `proration_billing_mode` was `prorated_immediately` or `prorated_next_billing_period`. Set automatically by Paddle.
            - `rate` string, required: Rate used to calculate proration.
            - `billing_period` TimePeriod, required
              - …
          - `price` TransactionPriceCreateWithProduct, required
            - `description` string, required: Internal description for this price, not shown to customers. Typically notes for your team.
            - `name` string, nullable: Name of this price, shown to customers at checkout and on invoices. Typically describes how often the related product bills.
            - `billing_cycle` Duration
              - …
            - `trial_period` PriceTrialDurationCreate
              - …
            - `tax_mode` 'account_setting' | 'external' | 'internal' | 'location': How tax is calculated for this price.
            - `unit_price` Money, required: A base representation of monetary value unformatted in the lowest denomination with currency code.
              - …
            - `unit_price_overrides` UnitPriceOverride[]: List of unit price overrides. Use to override the base price with a custom price and currency for a country or group of countries.
              - …
            - `quantity` PriceQuantity
              - …
            - `custom_data` CustomData: Your own structured key-value data.
            - `product` TransactionSubscriptionProductCreate, required
              - …
    - `address` AddressPreviewCreate, required: Represents an address entity when previewing addresses.
      - `postal_code` string, nullable: ZIP or postal code of this address. Include for more accurate tax calculations.
      - `country_code` union, required
        - 'AD' | 'AE' | 'AG' | 'AI' | 'AL' | 'AM' | 'AO' | 'AR' | 'AS' | 'AT' | 'AU' | 'AW' | 'AX' | 'AZ' | 'BA' | 'BB' | 'BD' | 'BE' | 'BF' | 'BG' | 'BH' | 'BI' | 'BJ' | 'BL' | 'BM' | 'BN' | 'BO' | 'BQ' | 'BR' | 'BS' | 'BT' | 'BV' | 'BW' | 'BZ' | 'CA' | 'CC' | 'CG' | 'CH' | 'CI' | 'CK' | 'CL' | 'CM' | 'CN' | 'CO' | 'CR' | 'CV' | 'CW' | 'CX' | 'CY' | 'CZ' | 'DE' | 'DJ' | 'DK' | 'DM' | 'DO' | 'DZ' | 'EC' | 'EE' | 'EG' | 'EH' | 'ER' | 'ES' | 'ET' | 'FI' | 'FJ' | 'FK' | 'FM' | 'FO' | 'FR' | 'GA' | 'GB' | 'GD' | 'GE' | 'GF' | 'GG' | 'GH' | 'GI' | 'GL' | 'GM' | 'GN' | 'GP' | 'GQ' | 'GR' | 'GS' | 'GT' | 'GU' | 'GW' | 'GY' | 'HK' | 'HM' | 'HN' | 'HR' | 'HU' | 'ID' | 'IE' | 'IL' | 'IM' | 'IN' | 'IO' | 'IQ' | 'IS' | 'IT' | 'JE' | 'JM' | 'JO' | 'JP' | 'KE' | 'KG' | 'KH' | 'KI' | 'KM' | 'KN' | 'KR' | 'KW' | 'KY' | 'KZ' | 'LA' | 'LB' | 'LC' | 'LI' | 'LK' | 'LR' | 'LS' | 'LT' | 'LU' | 'LV' | 'MA' | 'MC' | 'MD' | 'ME' | 'MF' | 'MG' | 'MH' | 'MK' | 'MN' | 'MO' | 'MP' | 'MQ' | 'MR' | 'MS' | 'MT' | 'MU' | 'MV' | 'MW' | 'MX' | 'MY' | 'MZ' | 'NA' | 'NC' | 'NE' | 'NF' | 'NG' | 'NL' | 'NO' | 'NP' | 'NR' | 'NU' | 'NZ' | 'OM' | 'PA' | 'PE' | 'PF' | 'PG' | 'PH' | 'PK' | 'PL' | 'PM' | 'PN' | 'PR' | 'PS' | 'PT' | 'PW' | 'PY' | 'QA' | 'RE' | 'RO' | 'RS' | 'RW' | 'SA' | 'SB' | 'SC' | 'SE' | 'SG' | 'SH' | 'SI' | 'SJ' | 'SK' | 'SL' | 'SM' | 'SN' | 'SR' | 'ST' | 'SV' | 'SX' | 'SZ' | 'TC' | 'TD' | 'TF' | 'TG' | 'TH' | 'TJ' | 'TK' | 'TL' | 'TM' | 'TN' | 'TO' | 'TR' | 'TT' | 'TV' | 'TW' | 'TZ' | 'UA' | 'UG' | 'UM' | 'US' | 'UY' | 'UZ' | 'VA' | 'VC' | 'VG' | 'VI' | 'VN' | 'VU' | 'WF' | 'WS' | 'XK' | 'YT' | 'ZA' | 'ZM': Two-letter code for a country that Paddle supports sales to. Typically an ISO 3166-1 alpha-2 code, though Paddle uses a small number of codes that ISO doesn't currently assign.
        - 'AF' | 'AQ' | 'AN' | 'BY' | 'CD' | 'CF' | 'CU' | 'CS' | 'HT' | 'IR' | 'KP' | 'LY' | 'ML' | 'MM' | 'NI' | 'RU' | 'SO' | 'SS' | 'SD' | 'SY' | 'VE' | 'YE' | 'ZW': Two-letter code for a country that Paddle doesn't support sales to. Typically an ISO 3166-1 alpha-2 code, though Paddle uses a small number of codes that ISO doesn't currently assign.
  - TransactionPreviewCreateIpAddress: Paddle fetches location using the IP address to calculate totals.
    - `customer_id` string: Unique Paddle ID for this customer entity, prefixed with `ctm_`.
    - `currency_code` 'USD' | 'EUR' | 'GBP' | 'JPY' | 'AUD' | 'CAD' | 'CHF' | 'HKD' | 'SGD' | 'SEK' | 'ARS' | 'BRL' | 'CLP' | 'CNY' | 'COP' | 'CZK' | 'DKK' | 'HUF' | 'ILS' | 'INR' | 'KRW' | 'MXN' | 'NOK' | 'NZD' | 'PEN' | 'PLN' | 'RUB' | 'THB' | 'TRY' | 'TWD' | 'UAH' | 'VND' | 'ZAR': Supported three-letter ISO 4217 currency code.
    - `discount_id` string: Unique Paddle ID for this discount, prefixed with `dsc_`.
    - `discount` DiscountCustom: Represents a discount entity for a custom, non-catalog discount.
      - `description` string, required: Short description for this discount for your reference. Not shown to customers.
      - `type` 'flat' | 'flat_per_seat' | 'percentage', required: Type of discount. Determines how this discount impacts the checkout or transaction total.
      - `amount` string, required: Amount to discount by. For `percentage` discounts, must be an amount between `0.01` and `100`. For `flat` and `flat_per_seat` discounts, amount in the lowest denomination for a currency.
      - `recur` boolean: Whether this discount applies for multiple subscription billing periods (`true`) or not (`false`). If omitted, defaults to `false`.
      - `maximum_recurring_intervals` integer, nullable: Number of subscription billing periods that this discount recurs for. Requires `recur`. `null` if this discount recurs forever. Subscription renewals, midcycle changes, and one-time charges billed to a subscription aren't considered a redemption. `times_used` is not incremented in these cases.
      - `custom_data` CustomData: Your own structured key-value data.
      - `restrict_to` string[], nullable: Product or price IDs that this discount is for. When including a product ID, all prices for that product can be discounted. `null` if this discount applies to all products and prices.
    - `ignore_trials` boolean: Whether trials should be ignored for transaction preview calculations. By default, recurring items with trials are considered to have a zero charge when previewing. Set to `true` to disable this.
    - `items` TransactionPreviewCreateItems[], required: List of items to preview charging for. You can preview charging for items that you've added to your catalog by passing the Paddle ID of an existing price entity, or you can preview charging for non-catalog items by passing a price object. Non-catalog items can be for existing products, or you can pass a product object as part of your price to preview charging for a non-catalog product.
      - union
        - TransactionPreviewItemWithPriceIdRequest: Add a catalog item to a transaction. In this case, the product and price that you're billing for exist in your product catalog in Paddle.
          - `quantity` integer, required: Quantity of this item on the transaction.
          - `include_in_totals` boolean: Whether this item should be included in totals for this transaction preview. Typically used to exclude one-time charges from calculations.
          - `proration` TransactionItemProration: How proration was calculated for this item. Populated when a transaction is created from a subscription change, where `proration_billing_mode` was `prorated_immediately` or `prorated_next_billing_period`. Set automatically by Paddle.
            - `rate` string, required: Rate used to calculate proration.
            - `billing_period` TimePeriod, required
              - …
          - `price_id` string, required: Unique Paddle ID for this price, prefixed with `pri_`.
        - TransactionPreviewItemWithPriceRequest: Add a non-catalog price for an existing product in your catalog to a transaction. In this case, the product you're billing for is a catalog product, but you charge a specific price for it.
          - `quantity` integer, required: Quantity of this item on the transaction.
          - `include_in_totals` boolean: Whether this item should be included in totals for this transaction preview. Typically used to exclude one-time charges from calculations.
          - `proration` TransactionItemProration: How proration was calculated for this item. Populated when a transaction is created from a subscription change, where `proration_billing_mode` was `prorated_immediately` or `prorated_next_billing_period`. Set automatically by Paddle.
            - `rate` string, required: Rate used to calculate proration.
            - `billing_period` TimePeriod, required
              - …
          - `price` TransactionPriceCreateWithProductId, required
            - `description` string, required: Internal description for this price, not shown to customers. Typically notes for your team.
            - `name` string, nullable: Name of this price, shown to customers at checkout and on invoices. Typically describes how often the related product bills.
            - `billing_cycle` Duration
              - …
            - `trial_period` PriceTrialDurationCreate
              - …
            - `tax_mode` 'account_setting' | 'external' | 'internal' | 'location': How tax is calculated for this price.
            - `unit_price` Money, required: A base representation of monetary value unformatted in the lowest denomination with currency code.
              - …
            - `unit_price_overrides` UnitPriceOverride[]: List of unit price overrides. Use to override the base price with a custom price and currency for a country or group of countries.
              - …
            - `quantity` PriceQuantity
              - …
            - `custom_data` CustomData: Your own structured key-value data.
            - `product_id` string, required: Unique Paddle ID for this product, prefixed with `pro_`.
        - TransactionPreviewItemWithPriceAndProductRequest: Add a non-catalog price for a non-catalog product in your catalog to a transaction. In this case, the product and price that you're billing for are specific to this transaction.
          - `quantity` integer, required: Quantity of this item on the transaction.
          - `include_in_totals` boolean: Whether this item should be included in totals for this transaction preview. Typically used to exclude one-time charges from calculations.
          - `proration` TransactionItemProration: How proration was calculated for this item. Populated when a transaction is created from a subscription change, where `proration_billing_mode` was `prorated_immediately` or `prorated_next_billing_period`. Set automatically by Paddle.
            - `rate` string, required: Rate used to calculate proration.
            - `billing_period` TimePeriod, required
              - …
          - `price` TransactionPriceCreateWithProduct, required
            - `description` string, required: Internal description for this price, not shown to customers. Typically notes for your team.
            - `name` string, nullable: Name of this price, shown to customers at checkout and on invoices. Typically describes how often the related product bills.
            - `billing_cycle` Duration
              - …
            - `trial_period` PriceTrialDurationCreate
              - …
            - `tax_mode` 'account_setting' | 'external' | 'internal' | 'location': How tax is calculated for this price.
            - `unit_price` Money, required: A base representation of monetary value unformatted in the lowest denomination with currency code.
              - …
            - `unit_price_overrides` UnitPriceOverride[]: List of unit price overrides. Use to override the base price with a custom price and currency for a country or group of countries.
              - …
            - `quantity` PriceQuantity
              - …
            - `custom_data` CustomData: Your own structured key-value data.
            - `product` TransactionSubscriptionProductCreate, required
              - …
    - `customer_ip_address` string, required: IP address for this transaction preview.
  - TransactionPreviewCreatePaddleIds: Paddle uses existing customer data to calculate totals. Typically used for logged-in customers.
    - `currency_code` 'USD' | 'EUR' | 'GBP' | 'JPY' | 'AUD' | 'CAD' | 'CHF' | 'HKD' | 'SGD' | 'SEK' | 'ARS' | 'BRL' | 'CLP' | 'CNY' | 'COP' | 'CZK' | 'DKK' | 'HUF' | 'ILS' | 'INR' | 'KRW' | 'MXN' | 'NOK' | 'NZD' | 'PEN' | 'PLN' | 'RUB' | 'THB' | 'TRY' | 'TWD' | 'UAH' | 'VND' | 'ZAR': Supported three-letter ISO 4217 currency code.
    - `discount_id` string: Unique Paddle ID for this discount, prefixed with `dsc_`.
    - `discount` DiscountCustom: Represents a discount entity for a custom, non-catalog discount.
      - `description` string, required: Short description for this discount for your reference. Not shown to customers.
      - `type` 'flat' | 'flat_per_seat' | 'percentage', required: Type of discount. Determines how this discount impacts the checkout or transaction total.
      - `amount` string, required: Amount to discount by. For `percentage` discounts, must be an amount between `0.01` and `100`. For `flat` and `flat_per_seat` discounts, amount in the lowest denomination for a currency.
      - `recur` boolean: Whether this discount applies for multiple subscription billing periods (`true`) or not (`false`). If omitted, defaults to `false`.
      - `maximum_recurring_intervals` integer, nullable: Number of subscription billing periods that this discount recurs for. Requires `recur`. `null` if this discount recurs forever. Subscription renewals, midcycle changes, and one-time charges billed to a subscription aren't considered a redemption. `times_used` is not incremented in these cases.
      - `custom_data` CustomData: Your own structured key-value data.
      - `restrict_to` string[], nullable: Product or price IDs that this discount is for. When including a product ID, all prices for that product can be discounted. `null` if this discount applies to all products and prices.
    - `ignore_trials` boolean: Whether trials should be ignored for transaction preview calculations. By default, recurring items with trials are considered to have a zero charge when previewing. Set to `true` to disable this.
    - `items` TransactionPreviewCreateItems[], required: List of items to preview charging for. You can preview charging for items that you've added to your catalog by passing the Paddle ID of an existing price entity, or you can preview charging for non-catalog items by passing a price object. Non-catalog items can be for existing products, or you can pass a product object as part of your price to preview charging for a non-catalog product.
      - union
        - TransactionPreviewItemWithPriceIdRequest: Add a catalog item to a transaction. In this case, the product and price that you're billing for exist in your product catalog in Paddle.
          - `quantity` integer, required: Quantity of this item on the transaction.
          - `include_in_totals` boolean: Whether this item should be included in totals for this transaction preview. Typically used to exclude one-time charges from calculations.
          - `proration` TransactionItemProration: How proration was calculated for this item. Populated when a transaction is created from a subscription change, where `proration_billing_mode` was `prorated_immediately` or `prorated_next_billing_period`. Set automatically by Paddle.
            - `rate` string, required: Rate used to calculate proration.
            - `billing_period` TimePeriod, required
              - …
          - `price_id` string, required: Unique Paddle ID for this price, prefixed with `pri_`.
        - TransactionPreviewItemWithPriceRequest: Add a non-catalog price for an existing product in your catalog to a transaction. In this case, the product you're billing for is a catalog product, but you charge a specific price for it.
          - `quantity` integer, required: Quantity of this item on the transaction.
          - `include_in_totals` boolean: Whether this item should be included in totals for this transaction preview. Typically used to exclude one-time charges from calculations.
          - `proration` TransactionItemProration: How proration was calculated for this item. Populated when a transaction is created from a subscription change, where `proration_billing_mode` was `prorated_immediately` or `prorated_next_billing_period`. Set automatically by Paddle.
            - `rate` string, required: Rate used to calculate proration.
            - `billing_period` TimePeriod, required
              - …
          - `price` TransactionPriceCreateWithProductId, required
            - `description` string, required: Internal description for this price, not shown to customers. Typically notes for your team.
            - `name` string, nullable: Name of this price, shown to customers at checkout and on invoices. Typically describes how often the related product bills.
            - `billing_cycle` Duration
              - …
            - `trial_period` PriceTrialDurationCreate
              - …
            - `tax_mode` 'account_setting' | 'external' | 'internal' | 'location': How tax is calculated for this price.
            - `unit_price` Money, required: A base representation of monetary value unformatted in the lowest denomination with currency code.
              - …
            - `unit_price_overrides` UnitPriceOverride[]: List of unit price overrides. Use to override the base price with a custom price and currency for a country or group of countries.
              - …
            - `quantity` PriceQuantity
              - …
            - `custom_data` CustomData: Your own structured key-value data.
            - `product_id` string, required: Unique Paddle ID for this product, prefixed with `pro_`.
        - TransactionPreviewItemWithPriceAndProductRequest: Add a non-catalog price for a non-catalog product in your catalog to a transaction. In this case, the product and price that you're billing for are specific to this transaction.
          - `quantity` integer, required: Quantity of this item on the transaction.
          - `include_in_totals` boolean: Whether this item should be included in totals for this transaction preview. Typically used to exclude one-time charges from calculations.
          - `proration` TransactionItemProration: How proration was calculated for this item. Populated when a transaction is created from a subscription change, where `proration_billing_mode` was `prorated_immediately` or `prorated_next_billing_period`. Set automatically by Paddle.
            - `rate` string, required: Rate used to calculate proration.
            - `billing_period` TimePeriod, required
              - …
          - `price` TransactionPriceCreateWithProduct, required
            - `description` string, required: Internal description for this price, not shown to customers. Typically notes for your team.
            - `name` string, nullable: Name of this price, shown to customers at checkout and on invoices. Typically describes how often the related product bills.
            - `billing_cycle` Duration
              - …
            - `trial_period` PriceTrialDurationCreate
              - …
            - `tax_mode` 'account_setting' | 'external' | 'internal' | 'location': How tax is calculated for this price.
            - `unit_price` Money, required: A base representation of monetary value unformatted in the lowest denomination with currency code.
              - …
            - `unit_price_overrides` UnitPriceOverride[]: List of unit price overrides. Use to override the base price with a custom price and currency for a country or group of countries.
              - …
            - `quantity` PriceQuantity
              - …
            - `custom_data` CustomData: Your own structured key-value data.
            - `product` TransactionSubscriptionProductCreate, required
              - …
    - `customer_id` string, required: Unique Paddle ID for this customer entity, prefixed with `ctm_`.
    - `address_id` string, required: Unique Paddle ID for this address entity, prefixed with `add_`.
    - `business_id` string: Unique Paddle ID for this business entity, prefixed with `biz_`.

## Response `200`

The request has succeeded.

- object
  - `data` TransactionPreview, required: Represents a transaction entity when previewing transactions.
    - `customer_id` string, required: Unique Paddle ID for this customer entity, prefixed with `ctm_`.
    - `address_id` string, required: Unique Paddle ID for this address entity, prefixed with `add_`.
    - `business_id` string, required: Unique Paddle ID for this business entity, prefixed with `biz_`.
    - `currency_code` 'USD' | 'EUR' | 'GBP' | 'JPY' | 'AUD' | 'CAD' | 'CHF' | 'HKD' | 'SGD' | 'SEK' | 'ARS' | 'BRL' | 'CLP' | 'CNY' | 'COP' | 'CZK' | 'DKK' | 'HUF' | 'ILS' | 'INR' | 'KRW' | 'MXN' | 'NOK' | 'NZD' | 'PEN' | 'PLN' | 'RUB' | 'THB' | 'TRY' | 'TWD' | 'UAH' | 'VND' | 'ZAR', required: Supported three-letter ISO 4217 currency code.
    - `discount_id` string, required: Unique Paddle ID for this discount, prefixed with `dsc_`.
    - `customer_ip_address` string, nullable, required: IP address for this transaction preview. Send one of `address_id`, `customer_ip_address`, or the `address` object when previewing.
    - `address` AddressPreview, required: Represents an address entity when previewing addresses.
      - `postal_code` string, nullable, required: ZIP or postal code of this address. Include for more accurate tax calculations.
      - `country_code` union, required
        - 'AD' | 'AE' | 'AG' | 'AI' | 'AL' | 'AM' | 'AO' | 'AR' | 'AS' | 'AT' | 'AU' | 'AW' | 'AX' | 'AZ' | 'BA' | 'BB' | 'BD' | 'BE' | 'BF' | 'BG' | 'BH' | 'BI' | 'BJ' | 'BL' | 'BM' | 'BN' | 'BO' | 'BQ' | 'BR' | 'BS' | 'BT' | 'BV' | 'BW' | 'BZ' | 'CA' | 'CC' | 'CG' | 'CH' | 'CI' | 'CK' | 'CL' | 'CM' | 'CN' | 'CO' | 'CR' | 'CV' | 'CW' | 'CX' | 'CY' | 'CZ' | 'DE' | 'DJ' | 'DK' | 'DM' | 'DO' | 'DZ' | 'EC' | 'EE' | 'EG' | 'EH' | 'ER' | 'ES' | 'ET' | 'FI' | 'FJ' | 'FK' | 'FM' | 'FO' | 'FR' | 'GA' | 'GB' | 'GD' | 'GE' | 'GF' | 'GG' | 'GH' | 'GI' | 'GL' | 'GM' | 'GN' | 'GP' | 'GQ' | 'GR' | 'GS' | 'GT' | 'GU' | 'GW' | 'GY' | 'HK' | 'HM' | 'HN' | 'HR' | 'HU' | 'ID' | 'IE' | 'IL' | 'IM' | 'IN' | 'IO' | 'IQ' | 'IS' | 'IT' | 'JE' | 'JM' | 'JO' | 'JP' | 'KE' | 'KG' | 'KH' | 'KI' | 'KM' | 'KN' | 'KR' | 'KW' | 'KY' | 'KZ' | 'LA' | 'LB' | 'LC' | 'LI' | 'LK' | 'LR' | 'LS' | 'LT' | 'LU' | 'LV' | 'MA' | 'MC' | 'MD' | 'ME' | 'MF' | 'MG' | 'MH' | 'MK' | 'MN' | 'MO' | 'MP' | 'MQ' | 'MR' | 'MS' | 'MT' | 'MU' | 'MV' | 'MW' | 'MX' | 'MY' | 'MZ' | 'NA' | 'NC' | 'NE' | 'NF' | 'NG' | 'NL' | 'NO' | 'NP' | 'NR' | 'NU' | 'NZ' | 'OM' | 'PA' | 'PE' | 'PF' | 'PG' | 'PH' | 'PK' | 'PL' | 'PM' | 'PN' | 'PR' | 'PS' | 'PT' | 'PW' | 'PY' | 'QA' | 'RE' | 'RO' | 'RS' | 'RW' | 'SA' | 'SB' | 'SC' | 'SE' | 'SG' | 'SH' | 'SI' | 'SJ' | 'SK' | 'SL' | 'SM' | 'SN' | 'SR' | 'ST' | 'SV' | 'SX' | 'SZ' | 'TC' | 'TD' | 'TF' | 'TG' | 'TH' | 'TJ' | 'TK' | 'TL' | 'TM' | 'TN' | 'TO' | 'TR' | 'TT' | 'TV' | 'TW' | 'TZ' | 'UA' | 'UG' | 'UM' | 'US' | 'UY' | 'UZ' | 'VA' | 'VC' | 'VG' | 'VI' | 'VN' | 'VU' | 'WF' | 'WS' | 'XK' | 'YT' | 'ZA' | 'ZM': Two-letter code for a country that Paddle supports sales to. Typically an ISO 3166-1 alpha-2 code, though Paddle uses a small number of codes that ISO doesn't currently assign.
        - 'AF' | 'AQ' | 'AN' | 'BY' | 'CD' | 'CF' | 'CU' | 'CS' | 'HT' | 'IR' | 'KP' | 'LY' | 'ML' | 'MM' | 'NI' | 'RU' | 'SO' | 'SS' | 'SD' | 'SY' | 'VE' | 'YE' | 'ZW': Two-letter code for a country that Paddle doesn't support sales to. Typically an ISO 3166-1 alpha-2 code, though Paddle uses a small number of codes that ISO doesn't currently assign.
    - `ignore_trials` boolean, required: Whether trials should be ignored for transaction preview calculations. By default, recurring items with trials are considered to have a zero charge when previewing. Set to `true` to disable this.
    - `items` TransactionPreviewItem[], required: List of items to preview transaction calculations for.
      - `quantity` integer, required: Quantity of this item on the transaction.
      - `include_in_totals` boolean, required: Whether this item should be included in totals for this transaction preview. Typically used to exclude one-time charges from calculations.
      - `proration` TransactionItemProration, required: How proration was calculated for this item. Populated when a transaction is created from a subscription change, where `proration_billing_mode` was `prorated_immediately` or `prorated_next_billing_period`. Set automatically by Paddle.
        - `rate` string, required: Rate used to calculate proration.
        - `billing_period` TimePeriod, required
          - `starts_at` string, date-time, required: RFC 3339 datetime string.
          - `ends_at` string, date-time, required: RFC 3339 datetime string.
      - `price` PricePreview, required: Represents a price preview entity.
        - `id` string, required: Unique Paddle ID for this price, prefixed with `pri_`.
        - `product_id` string, required: Unique Paddle ID for this product, prefixed with `pro_`.
        - `description` string, required: Internal description for this price, not shown to customers. Typically notes for your team.
        - `type` 'custom' | 'standard', required: Type of item. Standard items are considered part of your catalog and are shown in the Paddle dashboard.
        - `name` string, required: Name of this price, shown to customers at checkout and on invoices. Typically describes how often the related product bills.
        - `billing_cycle` Duration, required
          - `interval` 'day' | 'week' | 'month' | 'year', required
          - `frequency` integer, required: Amount of time.
        - `trial_period` PriceTrialDuration, required
          - `interval` 'day' | 'week' | 'month' | 'year', required
          - `frequency` integer, required: Amount of time.
          - `requires_payment_method` boolean, required: Whether this price requires a payment method (`true`) or not (`false`) when trialing. If `false`, customers can sign up for subscription without entering their payment details, often referred to as a "cardless trial."
          - `unit_price` MoneyOptionalCurrency: A representation of monetary value unformatted in the lowest denomination with optional currency code.
            - `amount` string, required: Amount in the lowest denomination for the currency, e.g. 10 USD = 1000 (cents). Although represented as a string, this value must be a valid integer.
            - `currency_code` 'USD' | 'EUR' | 'GBP' | 'JPY' | 'AUD' | 'CAD' | 'CHF' | 'HKD' | 'SGD' | 'SEK' | 'ARS' | 'BRL' | 'CLP' | 'CNY' | 'COP' | 'CZK' | 'DKK' | 'HUF' | 'ILS' | 'INR' | 'KRW' | 'MXN' | 'NOK' | 'NZD' | 'PEN' | 'PLN' | 'RUB' | 'THB' | 'TRY' | 'TWD' | 'UAH' | 'VND' | 'ZAR': Supported three-letter ISO 4217 currency code.
          - `unit_price_overrides` PriceTrialUnitPriceOverride[]: List of unit price overrides for trial pricing. Use to override base trial price with a custom trial price and currency for a country or group of countries.
            - `country_codes` CountryCode[], required: Supported two-letter ISO 3166-1 alpha-2 country code. Customers located in the listed countries are charged the override price.
              - …
            - `unit_price` MoneyOptionalCurrency, required: A representation of monetary value unformatted in the lowest denomination with optional currency code.
              - …
        - `tax_mode` 'account_setting' | 'external' | 'internal' | 'location', required: How tax is calculated for this price.
        - `unit_price` Money, required: A base representation of monetary value unformatted in the lowest denomination with currency code.
          - `amount` string, required: Amount in the lowest denomination for the currency, e.g. 10 USD = 1000 (cents). Although represented as a string, this value must be a valid integer.
          - `currency_code` 'USD' | 'EUR' | 'GBP' | 'JPY' | 'AUD' | 'CAD' | 'CHF' | 'HKD' | 'SGD' | 'SEK' | 'ARS' | 'BRL' | 'CLP' | 'CNY' | 'COP' | 'CZK' | 'DKK' | 'HUF' | 'ILS' | 'INR' | 'KRW' | 'MXN' | 'NOK' | 'NZD' | 'PEN' | 'PLN' | 'RUB' | 'THB' | 'TRY' | 'TWD' | 'UAH' | 'VND' | 'ZAR', required: Supported three-letter ISO 4217 currency code.
        - `unit_price_overrides` UnitPriceOverride[], required: List of unit price overrides. Use to override the base price with a custom price and currency for a country or group of countries.
          - `country_codes` CountryCode[], required: Supported two-letter ISO 3166-1 alpha-2 country code. Customers located in the listed countries are charged the override price.
            - union
              - …
          - `unit_price` Money, required: A base representation of monetary value unformatted in the lowest denomination with currency code.
            - `amount` string, required: Amount in the lowest denomination for the currency, e.g. 10 USD = 1000 (cents). Although represented as a string, this value must be a valid integer.
            - `currency_code` 'USD' | 'EUR' | 'GBP' | 'JPY' | 'AUD' | 'CAD' | 'CHF' | 'HKD' | 'SGD' | 'SEK' | 'ARS' | 'BRL' | 'CLP' | 'CNY' | 'COP' | 'CZK' | 'DKK' | 'HUF' | 'ILS' | 'INR' | 'KRW' | 'MXN' | 'NOK' | 'NZD' | 'PEN' | 'PLN' | 'RUB' | 'THB' | 'TRY' | 'TWD' | 'UAH' | 'VND' | 'ZAR', required: Supported three-letter ISO 4217 currency code.
        - `quantity` PriceQuantity, required
          - `minimum` integer, required: Minimum quantity of the product related to this price that can be bought. Required if `maximum` set.
          - `maximum` integer, required: Maximum quantity of the product related to this price that can be bought. Required if `minimum` set. Must be greater than or equal to the `minimum` value.
        - `status` 'active' | 'archived', required: Whether this entity can be used in Paddle.
        - `custom_data` CustomData, required: Your own structured key-value data.
        - `import_meta` object, nullable, required: Import information for this entity. `null` if this entity is not imported.
          - `external_id` string: Reference or identifier for this entity from the provider where it was imported from.
          - `imported_from` string, required: Name of the platform or provider where this entity was imported from.
        - `created_at` string, date-time, required: RFC 3339 datetime string of when this entity was created. Set automatically by Paddle.
        - `updated_at` string, date-time, required: RFC 3339 datetime string of when this entity was updated. Set automatically by Paddle.
    - `details` TransactionPreviewDetails, required: Calculated totals for a transaction preview, including discounts, tax, and currency conversion. Considered the source of truth for totals on a transaction preview.
      - `tax_rates_used` TransactionPreviewDetailsTaxRatesUsedItem[], required: List of tax rates applied to this transaction preview.
        - `tax_rate` string, required: Rate used to calculate tax for this transaction preview.
        - `totals` Totals, required: Breakdown of a charge in the lowest denomination of a currency (e.g. cents for USD).
          - `subtotal` string, required: Subtotal before discount, tax, and deductions. If an item, unit price multiplied by quantity.
          - `discount` string, required: Total discount as a result of any discounts applied. Except for percentage discounts, Paddle applies tax to discounts based on the line item `price.tax_mode`. If `price.tax_mode` for a line item is `internal`, Paddle removes tax from the discount applied.
          - `tax` string, required: Total tax on the subtotal.
          - `total` string, required: Total after discount and tax.
      - `totals` TransactionTotals, required: Breakdown of the total for a transaction. These numbers can be negative when dealing with subscription updates that result in credit.
        - `subtotal` string, required: Subtotal before discount, tax, and deductions. If an item, unit price multiplied by quantity.
        - `discount` string, required: Total discount as a result of any discounts applied. Except for percentage discounts, Paddle applies tax to discounts based on the line item `price.tax_mode`. If `price.tax_mode` for a line item is `internal`, Paddle removes tax from the discount applied.
        - `tax` string, required: Total tax on the subtotal.
        - `total` string, required: Total after discount and tax.
        - `credit` string, required: Total credit applied to this transaction. This includes credits applied using a customer's credit balance and adjustments to a `billed` transaction.
        - `credit_to_balance` string, required: Additional credit generated from negative `details.line_items`. This credit is added to the customer balance.
        - `balance` string, required: Total due on a transaction after credits and any payments.
        - `grand_total` string, required: Total due on a transaction after credits but before any payments.
        - `grand_total_tax` string, required: Net tax amount included in `grand_total`. Equals the full `tax` amount unless credits are applied, in which case this value is proportionally reduced.
        - `fee` string, nullable, required: Total fee taken by Paddle for this transaction. `null` until the transaction is `completed` and the fee is processed.
        - `earnings` string, nullable, required: Total earnings for this transaction. This is the total minus the Paddle fee. `null` until the transaction is `completed` and the fee is processed.
        - `currency_code` 'USD' | 'EUR' | 'GBP' | 'JPY' | 'AUD' | 'CAD' | 'CHF' | 'HKD' | 'SGD' | 'SEK' | 'ARS' | 'BRL' | 'CLP' | 'CNY' | 'COP' | 'CZK' | 'DKK' | 'HUF' | 'ILS' | 'INR' | 'KRW' | 'MXN' | 'NOK' | 'NZD' | 'PEN' | 'PLN' | 'RUB' | 'THB' | 'TRY' | 'TWD' | 'UAH' | 'VND' | 'ZAR', required: Supported three-letter ISO 4217 currency code.
      - `line_items` TransactionPreviewLineItem[], required: Information about line items for this transaction preview. Different from transaction preview `items` as they include totals calculated by Paddle. Considered the source of truth for line item totals.
        - `price_id` string, required: Unique Paddle ID for this price, prefixed with `pri_`.
        - `quantity` integer, required: Quantity of this transaction line item.
        - `tax_rate` string, required: Rate used to calculate tax for this transaction line item.
        - `unit_totals` Totals, required: Breakdown of a charge in the lowest denomination of a currency (e.g. cents for USD).
          - `subtotal` string, required: Subtotal before discount, tax, and deductions. If an item, unit price multiplied by quantity.
          - `discount` string, required: Total discount as a result of any discounts applied. Except for percentage discounts, Paddle applies tax to discounts based on the line item `price.tax_mode`. If `price.tax_mode` for a line item is `internal`, Paddle removes tax from the discount applied.
          - `tax` string, required: Total tax on the subtotal.
          - `total` string, required: Total after discount and tax.
        - `totals` Totals, required: Breakdown of a charge in the lowest denomination of a currency (e.g. cents for USD).
          - `subtotal` string, required: Subtotal before discount, tax, and deductions. If an item, unit price multiplied by quantity.
          - `discount` string, required: Total discount as a result of any discounts applied. Except for percentage discounts, Paddle applies tax to discounts based on the line item `price.tax_mode`. If `price.tax_mode` for a line item is `internal`, Paddle removes tax from the discount applied.
          - `tax` string, required: Total tax on the subtotal.
          - `total` string, required: Total after discount and tax.
        - `product` ProductPreview, required: Represents a product (preview) entity.
          - `id` string, required: Unique Paddle ID for this product, prefixed with `pro_`.
          - `name` string, required: Name of this product.
          - `description` string, nullable, required: Short description for this product.
          - `type` 'custom' | 'standard', required: Type of item. Standard items are considered part of your catalog and are shown in the Paddle dashboard.
          - `tax_category` 'digital-goods' | 'ebooks' | 'implementation-services' | 'professional-services' | 'saas' | 'software-programming-services' | 'standard' | 'training-services' | 'website-hosting', required: Tax category for this product. Used for charging the correct rate of tax. Selected tax category must be enabled on your Paddle account.
          - `image_url` union, required: Image for this product. Included in the checkout and on some customer documents.
            - string, uri: A URL to an image.
            - string
          - `custom_data` CustomData, required: Your own structured key-value data.
          - `status` 'active' | 'archived', required: Whether this entity can be used in Paddle.
          - `import_meta` object, nullable, required: Import information for this entity. `null` if this entity is not imported.
            - `external_id` string: Reference or identifier for this entity from the provider where it was imported from.
            - `imported_from` string, required: Name of the platform or provider where this entity was imported from.
          - `created_at` string, date-time, required: RFC 3339 datetime string of when this entity was created. Set automatically by Paddle.
          - `updated_at` string, date-time, required: RFC 3339 datetime string of when this entity was updated. Set automatically by Paddle.
        - `proration` TransactionItemProration, required: How proration was calculated for this item. Populated when a transaction is created from a subscription change, where `proration_billing_mode` was `prorated_immediately` or `prorated_next_billing_period`. Set automatically by Paddle.
          - `rate` string, required: Rate used to calculate proration.
          - `billing_period` TimePeriod, required
            - `starts_at` string, date-time, required: RFC 3339 datetime string.
            - `ends_at` string, date-time, required: RFC 3339 datetime string.
    - `available_payment_methods` PaymentMethodType[], required: List of available payment methods for Paddle Checkout given the price and location information passed.
  - `meta` Meta, required: Information about this response.
    - `request_id` string, required: Unique ID for the request relating to this response. Provide this when contacting Paddle support about a specific request.

## Other responses

- `default`: An unexpected error response.

## Changes

- **2026-10-19** (v1) `4f35a8c6ea4d`: 10 breaking, 19 info
  - removed `#/components/schemas/Duration` from the `anyOf[subschema #1: No location information]/items/items/oneOf[subschema #2: Non-catalog price for an existing product]/price/allOf[subschema #1: TransactionPriceCreateWithProductID]/trial_period` request property `anyOf` list
  - removed `#/components/schemas/Duration` from the `anyOf[subschema #1: No location information]/items/items/oneOf[subschema #3: Non-catalog price and product]/price/allOf[subschema #1: TransactionPriceCreateWithProduct]/trial_period` request property `anyOf` list
  - removed `#/components/schemas/Duration` from the `anyOf[subschema #2: Country and ZIP/postal code]/items/items/oneOf[subschema #2: Non-catalog price for an existing product]/price/allOf[subschema #1: TransactionPriceCreateWithProductID]/trial_period` request property `anyOf` list
  - removed `#/components/schemas/Duration` from the `anyOf[subschema #2: Country and ZIP/postal code]/items/items/oneOf[subschema #3: Non-catalog price and product]/price/allOf[subschema #1: TransactionPriceCreateWithProduct]/trial_period` request property `anyOf` list
  - …25 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/paddlehq/apis/paddle-api/changes/transactions/preview/post.md)

---

[API](https://skmtc.dev/paddlehq/apis/paddle-api.md) - [All operations](https://skmtc.dev/paddlehq/apis/paddle-api/llms.txt) - [OpenAPI document](https://skmtc.dev/paddlehq/apis/paddle-api/revisions/bbc0c72039c8?raw)
