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

# Create a transaction

`POST /transactions`

## Request

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

Creates a new transaction.

Transactions are typically created with the status of `draft` or `ready` initially:

* Draft transactions have `items` against them, but don't have all of the required fields for billing. Paddle creates draft transactions automatically when a checkout is opened.
* Paddle automatically marks transactions as `ready` when all of the required fields are present for billing. This includes `customer_id` and `address_id` for automatically-collected transactions, and `billing_details` for manually-collected transactions.

The `collection_mode` against a transaction determines how Paddle tries to collect for payment:

* Manually-collected transactions are for sales-assisted billing. Paddle sends an invoice to your customer when a transaction is `billed`. Payment is often by wire transfer.
* Automatically-collected transactions are for self-serve checkouts. You may pass the transaction to a checkout or use the returned `checkout.url` to collect for payment.

When a manually-collected transaction is marked as `billed` or an automatically-collected transaction is `completed`, Paddle automatically creates a related subscription for the items on the transaction.

If successful, your response includes a copy of the new transaction entity.

Use the `include` parameter to include related entities in the response.

## Query parameters

- `include` TransactionIncludeQuery[]

## Request body

- TransactionCreate: Represents a transaction entity when creating transactions.
  - `id` string: Unique Paddle ID for this transaction entity, prefixed with `txn_`.
  - `status` 'draft' | 'ready' | 'billed' | 'paid' | 'completed' | 'canceled' | 'past_due': Status of this transaction. You may set a transaction to `billed` or `canceled`, other statuses are set automatically by Paddle. Automatically-collected transactions may return `completed` if payment is captured successfully, or `past_due` if payment failed.
  - `customer_id` string: Unique Paddle ID for this customer entity, prefixed with `ctm_`.
  - `address_id` string: Unique Paddle ID for this address entity, prefixed with `add_`.
  - `business_id` string: Unique Paddle ID for this business entity, prefixed with `biz_`.
  - `custom_data` CustomData: Your own structured key-value data.
  - `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.
  - `origin` 'api' | 'subscription_charge' | 'subscription_payment_method_change' | 'subscription_recurring' | 'subscription_update' | 'web'
  - `subscription_id` string, nullable: Unique Paddle ID for this subscription entity, prefixed with `sub_`.
  - `invoice_id` string, nullable: Paddle ID of the invoice that this transaction is related to, prefixed with `inv_`. Used for compatibility with the Paddle Invoice API, which is now deprecated. This field is scheduled to be removed in the next version of the Paddle API.
  - `invoice_number` string, nullable: Invoice number for this transaction. Automatically generated by Paddle when you mark a transaction as `billed` where `collection_mode` is `manual`.
  - `collection_mode` 'automatic' | 'manual': How payment is collected. `automatic` for checkout, `manual` for invoices.
  - `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.
  - `billing_details` BillingDetailsCreate: Details for invoicing. Required if `collection_mode` is `manual`.
    - `enable_checkout` boolean: Whether the related transaction may be paid using Paddle Checkout. If omitted when creating a transaction, defaults to `false`.
    - `purchase_order_number` string: Customer purchase order number. Appears on invoice documents.
    - `additional_information` string, nullable: Notes or other information to include on this invoice. Appears on invoice documents.
    - `payment_terms` Duration, required
      - `interval` 'day' | 'week' | 'month' | 'year', required
      - `frequency` integer, required: Amount of time.
  - `billing_period` TimePeriod
    - `starts_at` string, date-time, required: RFC 3339 datetime string.
    - `ends_at` string, date-time, required: RFC 3339 datetime string.
  - `items` TransactionItemCreate[], required: List of items to charge for. You can charge for items that you've added to your catalog by passing the Paddle ID of an existing price entity, or you can charge 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 charge for a non-catalog product.
    - union
      - TransactionItemCreateWithPriceId: 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.
        - `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
            - `starts_at` string, date-time, required: RFC 3339 datetime string.
            - `ends_at` string, date-time, required: RFC 3339 datetime string.
        - `price_id` string, required: Unique Paddle ID for this price, prefixed with `pri_`.
      - TransactionItemCreateWithPrice: 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.
        - `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
            - `starts_at` string, date-time, required: RFC 3339 datetime string.
            - `ends_at` string, date-time, required: RFC 3339 datetime string.
        - `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
            - `interval` 'day' | 'week' | 'month' | 'year', required
            - `frequency` integer, required: Amount of time.
          - `trial_period` PriceTrialDurationCreate
            - `interval` 'day' | 'week' | 'month' | 'year', required
            - `frequency` integer, required: Amount of time.
            - `requires_payment_method` boolean: 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.
              - …
            - `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.
              - …
          - `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.
            - `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[]: 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.
              - …
            - `unit_price` Money, required: A base representation of monetary value unformatted in the lowest denomination with currency code.
              - …
          - `quantity` PriceQuantity
            - `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.
          - `custom_data` CustomData: Your own structured key-value data.
          - `product_id` string, required: Unique Paddle ID for this product, prefixed with `pro_`.
      - TransactionItemCreateWithPriceAndProduct: 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.
        - `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
            - `starts_at` string, date-time, required: RFC 3339 datetime string.
            - `ends_at` string, date-time, required: RFC 3339 datetime string.
        - `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
            - `interval` 'day' | 'week' | 'month' | 'year', required
            - `frequency` integer, required: Amount of time.
          - `trial_period` PriceTrialDurationCreate
            - `interval` 'day' | 'week' | 'month' | 'year', required
            - `frequency` integer, required: Amount of time.
            - `requires_payment_method` boolean: 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.
              - …
            - `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.
              - …
          - `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.
            - `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[]: 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.
              - …
            - `unit_price` Money, required: A base representation of monetary value unformatted in the lowest denomination with currency code.
              - …
          - `quantity` PriceQuantity
            - `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.
          - `custom_data` CustomData: Your own structured key-value data.
          - `product` TransactionSubscriptionProductCreate, required
            - `name` string, required: Name of this product.
            - `description` string, nullable: Short description for this product.
            - `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: Image for this product. Included in the checkout and on some customer documents.
              - …
            - `custom_data` CustomData: Your own structured key-value data.
  - `details` TransactionDetails: Calculated totals for a transaction, including proration, discounts, tax, and currency conversion. Considered the source of truth for totals on a transaction.
    - `tax_rates_used` TransactionDetailsTaxRatesUsedItem[], required: List of tax rates applied for this transaction.
      - `tax_rate` string, required: Rate used to calculate tax for this transaction.
      - `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.
    - `adjusted_totals` TransactionTotalsAdjusted, required: Breakdown of the totals for a transaction after adjustments.
      - `subtotal` string, required: Subtotal before discount, tax, and deductions. If an item, unit price multiplied by quantity.
      - `tax` string, required: Total tax on the subtotal.
      - `total` string, required: Total after tax.
      - `grand_total` string, required: Total due 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.
      - `retained_fee` string, required: Total Paddle fees retained for this adjustment.
      - `earnings` string, nullable, required: Total earnings for this transaction. This is the total minus the 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.
    - `payout_totals` TransactionPayoutTotals, required: Breakdown of the payout total for a transaction. `null` until the transaction is `completed`. Returned in your payout currency.
      - `subtotal` string, required: Total before tax and fees.
      - `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 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, required: Total fee taken by Paddle for this payout.
      - `earnings` string, required: Total earnings for this payout. This is the subtotal minus the Paddle fee.
      - `currency_code` 'AUD' | 'CAD' | 'CHF' | 'CNY' | 'CZK' | 'DKK' | 'EUR' | 'GBP' | 'HUF' | 'PLN' | 'SEK' | 'USD' | 'ZAR', required: Supported three-letter ISO 4217 currency code for payouts from Paddle.
      - `exchange_rate` string, required: Currency exchange rate, including margin if applicable. `1.0` if the transaction currency matches your payout currency.
      - `fee_rate` string, required: Paddle fee rate that was applied to this transaction.
    - `adjusted_payout_totals` TransactionPayoutTotalsAdjusted, required: Breakdown of the payout total for a transaction after adjustments. `null` until the transaction is `completed`.
      - `subtotal` string, required: Total before tax and fees.
      - `tax` string, required: Total tax on the subtotal.
      - `total` string, required: Total after tax.
      - `fee` string, required: Total fee taken by Paddle for this payout.
      - `retained_fee` string, required: Paddle fees retained for this adjustment.
      - `chargeback_fee` TransactionPayoutTotalsAdjustedChargebackFee, required: Details of any chargeback fees incurred for this transaction.
        - `amount` string, required: Chargeback fee converted into the payout currency.
        - `original` TransactionPayoutTotalsAdjustedChargebackFeeOriginal, required: Chargeback fee before conversion to the payout currency. `null` when the chargeback fee is the same as the payout currency.
          - `amount` string, required: Fee amount for this chargeback in the original currency.
          - `currency_code` 'AUD' | 'CAD' | 'EUR' | 'GBP' | 'USD', required: Three-letter ISO 4217 currency code for chargeback fees.
      - `earnings` string, required: Total earnings for this payout. This is the subtotal minus the fee.
      - `currency_code` 'AUD' | 'CAD' | 'CHF' | 'CNY' | 'CZK' | 'DKK' | 'EUR' | 'GBP' | 'HUF' | 'PLN' | 'SEK' | 'USD' | 'ZAR', required: Supported three-letter ISO 4217 currency code for payouts from Paddle.
      - `exchange_rate` string, required: Currency exchange rate, including margin if applicable. `1.0` if the transaction currency matches your payout currency.
    - `line_items` TransactionDetailsLineItem[], required: Information about line items for this transaction. Different from transaction `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.
      - `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.
      - `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` Product, required: Represents a product 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.
      - `id` string, required: Unique Paddle ID for this transaction item, prefixed with `txnitm_`. Used when working with [adjustments](https://developer.paddle.com/build/transactions/create-transaction-adjustments).
  - `payments` TransactionPaymentAttempt[]: List of payment attempts for this transaction, including successful payments. Sorted by `created_at` in descending order, so most recent attempts are returned first.
    - `payment_attempt_id` string, required: UUID for this payment attempt.
    - `stored_payment_method_id` string, required: UUID for the stored payment method used for this payment attempt. Deprecated - use `payment_method_id` instead.
    - `payment_method_id` string, required: Unique Paddle ID for this payment method entity, prefixed with `paymtd_`.
    - `amount` string, required: Amount for collection in the lowest denomination of a currency (e.g. cents for USD).
    - `status` 'authorized' | 'authorized_flagged' | 'canceled' | 'captured' | 'error' | 'action_required' | 'pending_no_action_required' | 'created' | 'unknown' | 'dropped', required: Status of this payment attempt.
    - `error_code` 'already_canceled' | 'already_refunded' | 'authentication_failed' | 'blocked_by_policy' | 'blocked_card' | 'canceled' | 'declined' | 'declined_not_retryable' | 'expired_card' | 'fraud' | 'invalid_amount' | 'invalid_payment_details' | 'issuer_unavailable' | 'not_enough_balance' | 'preferred_network_not_supported' | 'prepaid_card_not_supported' | 'psp_error' | 'redacted_payment_method' | 'system_error' | 'transaction_not_permitted' | 'unknown', required: Reason why a payment attempt failed. Returns `null` if payment captured successfully.
    - `method_details` MethodDetails, required: Information about the payment method used for a payment attempt.
      - `type` 'alipay' | 'apple_pay' | 'bancontact' | 'blik' | 'card' | 'google_pay' | 'ideal' | 'kakao_pay' | 'korea_local' | 'south_korea_local_card' | 'mb_way' | 'naver_pay' | 'offline' | 'payco' | 'paypal' | 'pix' | 'samsung_pay' | 'unknown' | 'upi' | 'wechat_pay' | 'wire_transfer', required: Type of payment method used for this payment attempt.
      - `underlying_details` UnderlyingDetails, required: Information about the underlying payment method used to pay. Populated for payment methods that offer multiple payment options, like `korea_local`. Deprecated - use top-level type objects instead.
        - `korea_local` KoreaLocalUnderlyingDetails, required: Information about the Korean payment method used to pay. `null` unless the type is `korea_local`. Deprecated - use top-level type objects instead.
          - `type` 'bc' | 'citi' | 'hana' | 'hyundai' | 'jeju' | 'jeonbuk' | 'kakaobank' | 'kakaopay' | 'kbank' | 'kdbbank' | 'kookmin' | 'kwangju' | 'lotte' | 'mg' | 'naverpaycard' | 'naverpaypoint' | 'nh' | 'payco' | 'post' | 'samsung' | 'samsungpay' | 'savingsbank' | 'shinhan' | 'shinhyup' | 'suhyup' | 'tossbank' | 'unknown' | 'woori', required: Type of Korean payment method used to pay. Deprecated - use top-level type objects instead.
      - `south_korea_local_card` SouthKoreaLocalCard, required: Information about the Korean credit or debit card used to pay.
        - `type` 'bc' | 'citi' | 'hana' | 'hyundai' | 'jeju' | 'jeonbuk' | 'kakaobank' | 'kbank' | 'kdbbank' | 'kookmin' | 'kwangju' | 'lotte' | 'mg' | 'nh' | 'post' | 'samsung' | 'savingsbank' | 'shinhan' | 'shinhyup' | 'suhyup' | 'tossbank' | 'unknown' | 'woori': Type of Korean credit or debit card used to pay.
        - `last4` string: Last four digits of the card used to pay.
      - `card` Card, required: Card metadata
        - `type` 'american_express' | 'diners_club' | 'discover' | 'jcb' | 'mada' | 'maestro' | 'mastercard' | 'union_pay' | 'unknown' | 'visa', required: Type of credit or debit card used to pay.
        - `last4` string, required: Last four digits of the card used to pay.
        - `expiry_month` integer, required: Month of the expiry date of the card used to pay.
        - `expiry_year` integer, required: Year of the expiry date of the card used to pay.
        - `cardholder_name` string, required: The name on the card used to pay.
      - `paypal` TransactionPaypal, required: PayPal payment attempt metadata
        - `email` string, required: Email address associated with the PayPal account.
        - `reference` string, nullable, required: PayPal billing agreement identifier. Only populated for subscription payments where a billing agreement was created between the customer and PayPal. `null` for one-off PayPal payments.
    - `created_at` string, date-time, required: RFC 3339 datetime string of when this entity was created. Set automatically by Paddle.
    - `captured_at` string, date-time, required: RFC 3339 datetime string.
  - `checkout` TransactionCheckoutCreate: Paddle Checkout details for this transaction. You may pass a URL when creating or updating an automatically-collected transaction, or when creating or updating a manually-collected transaction where `billing_details.enable_checkout` is `true`.
    - `url` string, nullable: Checkout URL to use for the payment link for this transaction. Pass the URL for an approved domain, or `null` to set to your default payment URL. Paddle returns a unique payment link composed of the URL passed or your default payment URL + `?_ptxn=` and the Paddle ID for this transaction.
  - `created_at` string, date-time: RFC 3339 datetime string of when this entity was created. Set automatically by Paddle.
  - `updated_at` string, date-time: RFC 3339 datetime string of when this entity was updated. Set automatically by Paddle.
  - `billed_at` string, date-time: RFC 3339 datetime string.

## Response `201`

The request has succeeded and a new resource has been created as a result.

- object
  - `data` TransactionIncludes, required: Represents a transaction entity with included entities.
    - `id` string, required: Unique Paddle ID for this transaction entity, prefixed with `txn_`.
    - `status` 'draft' | 'ready' | 'billed' | 'paid' | 'completed' | 'canceled' | 'past_due', required: Status of this transaction. You may set a transaction to `billed` or `canceled`, other statuses are set automatically by Paddle. Automatically-collected transactions may return `completed` if payment is captured successfully, or `past_due` if payment failed.
    - `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_`.
    - `custom_data` CustomData, required: Your own structured key-value data.
    - `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.
    - `origin` 'api' | 'subscription_charge' | 'subscription_payment_method_change' | 'subscription_recurring' | 'subscription_update' | 'web', required
    - `subscription_id` string, nullable, required: Unique Paddle ID for this subscription entity, prefixed with `sub_`.
    - `invoice_id` string, nullable, required: Paddle ID of the invoice that this transaction is related to, prefixed with `inv_`. Used for compatibility with the Paddle Invoice API, which is now deprecated. This field is scheduled to be removed in the next version of the Paddle API.
    - `invoice_number` string, required: Document number that is automatically generated by Paddle.
    - `collection_mode` 'automatic' | 'manual', required: How payment is collected. `automatic` for checkout, `manual` for invoices.
    - `discount_id` string, required: Unique Paddle ID for this discount, prefixed with `dsc_`.
    - `billing_details` BillingDetails, required: Details for invoicing. Required if `collection_mode` is `manual`.
      - `enable_checkout` boolean, required: Whether the related transaction may be paid using Paddle Checkout. If omitted when creating a transaction, defaults to `false`.
      - `purchase_order_number` string, required: Customer purchase order number. Appears on invoice documents.
      - `additional_information` string, nullable, required: Notes or other information to include on this invoice. Appears on invoice documents.
      - `payment_terms` Duration, required
        - `interval` 'day' | 'week' | 'month' | 'year', required
        - `frequency` integer, required: Amount of time.
    - `billing_period` TimePeriod, required
      - `starts_at` string, date-time, required: RFC 3339 datetime string.
      - `ends_at` string, date-time, required: RFC 3339 datetime string.
    - `items` TransactionItem[], required: List of items on this transaction. For calculated totals, use `details.line_items`.
      - `price` Price, required: Represents a price 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.
      - `quantity` integer, required: Quantity of this item on the transaction.
      - `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.
    - `details` TransactionDetails, required: Calculated totals for a transaction, including proration, discounts, tax, and currency conversion. Considered the source of truth for totals on a transaction.
      - `tax_rates_used` TransactionDetailsTaxRatesUsedItem[], required: List of tax rates applied for this transaction.
        - `tax_rate` string, required: Rate used to calculate tax for this transaction.
        - `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.
      - `adjusted_totals` TransactionTotalsAdjusted, required: Breakdown of the totals for a transaction after adjustments.
        - `subtotal` string, required: Subtotal before discount, tax, and deductions. If an item, unit price multiplied by quantity.
        - `tax` string, required: Total tax on the subtotal.
        - `total` string, required: Total after tax.
        - `grand_total` string, required: Total due 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.
        - `retained_fee` string, required: Total Paddle fees retained for this adjustment.
        - `earnings` string, nullable, required: Total earnings for this transaction. This is the total minus the 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.
      - `payout_totals` TransactionPayoutTotals, required: Breakdown of the payout total for a transaction. `null` until the transaction is `completed`. Returned in your payout currency.
        - `subtotal` string, required: Total before tax and fees.
        - `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 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, required: Total fee taken by Paddle for this payout.
        - `earnings` string, required: Total earnings for this payout. This is the subtotal minus the Paddle fee.
        - `currency_code` 'AUD' | 'CAD' | 'CHF' | 'CNY' | 'CZK' | 'DKK' | 'EUR' | 'GBP' | 'HUF' | 'PLN' | 'SEK' | 'USD' | 'ZAR', required: Supported three-letter ISO 4217 currency code for payouts from Paddle.
        - `exchange_rate` string, required: Currency exchange rate, including margin if applicable. `1.0` if the transaction currency matches your payout currency.
        - `fee_rate` string, required: Paddle fee rate that was applied to this transaction.
      - `adjusted_payout_totals` TransactionPayoutTotalsAdjusted, required: Breakdown of the payout total for a transaction after adjustments. `null` until the transaction is `completed`.
        - `subtotal` string, required: Total before tax and fees.
        - `tax` string, required: Total tax on the subtotal.
        - `total` string, required: Total after tax.
        - `fee` string, required: Total fee taken by Paddle for this payout.
        - `retained_fee` string, required: Paddle fees retained for this adjustment.
        - `chargeback_fee` TransactionPayoutTotalsAdjustedChargebackFee, required: Details of any chargeback fees incurred for this transaction.
          - `amount` string, required: Chargeback fee converted into the payout currency.
          - `original` TransactionPayoutTotalsAdjustedChargebackFeeOriginal, required: Chargeback fee before conversion to the payout currency. `null` when the chargeback fee is the same as the payout currency.
            - `amount` string, required: Fee amount for this chargeback in the original currency.
            - `currency_code` 'AUD' | 'CAD' | 'EUR' | 'GBP' | 'USD', required: Three-letter ISO 4217 currency code for chargeback fees.
        - `earnings` string, required: Total earnings for this payout. This is the subtotal minus the fee.
        - `currency_code` 'AUD' | 'CAD' | 'CHF' | 'CNY' | 'CZK' | 'DKK' | 'EUR' | 'GBP' | 'HUF' | 'PLN' | 'SEK' | 'USD' | 'ZAR', required: Supported three-letter ISO 4217 currency code for payouts from Paddle.
        - `exchange_rate` string, required: Currency exchange rate, including margin if applicable. `1.0` if the transaction currency matches your payout currency.
      - `line_items` TransactionDetailsLineItem[], required: Information about line items for this transaction. Different from transaction `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.
        - `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.
        - `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` Product, required: Represents a product 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.
        - `id` string, required: Unique Paddle ID for this transaction item, prefixed with `txnitm_`. Used when working with [adjustments](https://developer.paddle.com/build/transactions/create-transaction-adjustments).
    - `payments` TransactionPaymentAttempt[], required: List of payment attempts for this transaction, including successful payments. Sorted by `created_at` in descending order, so most recent attempts are returned first.
      - `payment_attempt_id` string, required: UUID for this payment attempt.
      - `stored_payment_method_id` string, required: UUID for the stored payment method used for this payment attempt. Deprecated - use `payment_method_id` instead.
      - `payment_method_id` string, required: Unique Paddle ID for this payment method entity, prefixed with `paymtd_`.
      - `amount` string, required: Amount for collection in the lowest denomination of a currency (e.g. cents for USD).
      - `status` 'authorized' | 'authorized_flagged' | 'canceled' | 'captured' | 'error' | 'action_required' | 'pending_no_action_required' | 'created' | 'unknown' | 'dropped', required: Status of this payment attempt.
      - `error_code` 'already_canceled' | 'already_refunded' | 'authentication_failed' | 'blocked_by_policy' | 'blocked_card' | 'canceled' | 'declined' | 'declined_not_retryable' | 'expired_card' | 'fraud' | 'invalid_amount' | 'invalid_payment_details' | 'issuer_unavailable' | 'not_enough_balance' | 'preferred_network_not_supported' | 'prepaid_card_not_supported' | 'psp_error' | 'redacted_payment_method' | 'system_error' | 'transaction_not_permitted' | 'unknown', required: Reason why a payment attempt failed. Returns `null` if payment captured successfully.
      - `method_details` MethodDetails, required: Information about the payment method used for a payment attempt.
        - `type` 'alipay' | 'apple_pay' | 'bancontact' | 'blik' | 'card' | 'google_pay' | 'ideal' | 'kakao_pay' | 'korea_local' | 'south_korea_local_card' | 'mb_way' | 'naver_pay' | 'offline' | 'payco' | 'paypal' | 'pix' | 'samsung_pay' | 'unknown' | 'upi' | 'wechat_pay' | 'wire_transfer', required: Type of payment method used for this payment attempt.
        - `underlying_details` UnderlyingDetails, required: Information about the underlying payment method used to pay. Populated for payment methods that offer multiple payment options, like `korea_local`. Deprecated - use top-level type objects instead.
          - `korea_local` KoreaLocalUnderlyingDetails, required: Information about the Korean payment method used to pay. `null` unless the type is `korea_local`. Deprecated - use top-level type objects instead.
            - `type` 'bc' | 'citi' | 'hana' | 'hyundai' | 'jeju' | 'jeonbuk' | 'kakaobank' | 'kakaopay' | 'kbank' | 'kdbbank' | 'kookmin' | 'kwangju' | 'lotte' | 'mg' | 'naverpaycard' | 'naverpaypoint' | 'nh' | 'payco' | 'post' | 'samsung' | 'samsungpay' | 'savingsbank' | 'shinhan' | 'shinhyup' | 'suhyup' | 'tossbank' | 'unknown' | 'woori', required: Type of Korean payment method used to pay. Deprecated - use top-level type objects instead.
        - `south_korea_local_card` SouthKoreaLocalCard, required: Information about the Korean credit or debit card used to pay.
          - `type` 'bc' | 'citi' | 'hana' | 'hyundai' | 'jeju' | 'jeonbuk' | 'kakaobank' | 'kbank' | 'kdbbank' | 'kookmin' | 'kwangju' | 'lotte' | 'mg' | 'nh' | 'post' | 'samsung' | 'savingsbank' | 'shinhan' | 'shinhyup' | 'suhyup' | 'tossbank' | 'unknown' | 'woori': Type of Korean credit or debit card used to pay.
          - `last4` string: Last four digits of the card used to pay.
        - `card` Card, required: Card metadata
          - `type` 'american_express' | 'diners_club' | 'discover' | 'jcb' | 'mada' | 'maestro' | 'mastercard' | 'union_pay' | 'unknown' | 'visa', required: Type of credit or debit card used to pay.
          - `last4` string, required: Last four digits of the card used to pay.
          - `expiry_month` integer, required: Month of the expiry date of the card used to pay.
          - `expiry_year` integer, required: Year of the expiry date of the card used to pay.
          - `cardholder_name` string, required: The name on the card used to pay.
        - `paypal` TransactionPaypal, required: PayPal payment attempt metadata
          - `email` string, required: Email address associated with the PayPal account.
          - `reference` string, nullable, required: PayPal billing agreement identifier. Only populated for subscription payments where a billing agreement was created between the customer and PayPal. `null` for one-off PayPal payments.
      - `created_at` string, date-time, required: RFC 3339 datetime string of when this entity was created. Set automatically by Paddle.
      - `captured_at` string, date-time, required: RFC 3339 datetime string.
    - `checkout` TransactionCheckout, required: Paddle Checkout details for this transaction. Returned for automatically-collected transactions and where `billing_details.enable_checkout` is `true` for manually-collected transactions; `null` otherwise.
      - `url` string, nullable, required: Paddle Checkout URL for this transaction, composed of the URL passed in the request or your default payment URL + `?_ptxn=` and the Paddle ID for this transaction.
    - `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.
    - `billed_at` string, date-time, required: RFC 3339 datetime string.
    - `revised_at` string, date-time, required: RFC 3339 datetime string.
    - `address` Address: Represents an address entity.
      - `id` string, required: Unique Paddle ID for this address entity, prefixed with `add_`.
      - `customer_id` string, required: Unique Paddle ID for this customer entity, prefixed with `ctm_`.
      - `description` string, required: Memorable description for this address.
      - `first_line` string, required: First line of this address.
      - `second_line` string, required: Second line of this address.
      - `city` string, required: City of this address.
      - `postal_code` string, required: ZIP or postal code of this address. Required for some countries.
      - `region` string, required: State, county, or region of this address.
      - `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.
      - `custom_data` CustomData, required: Your own structured key-value data.
      - `status` 'active' | 'archived', required: Whether this entity can be used in Paddle.
      - `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.
      - `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.
    - `adjustments` Adjustment[]: List of adjustments for this transaction. Returned when the `include` parameter is used with the `adjustment` value and the transaction has adjustments.
      - `id` string, required: Unique Paddle ID for this adjustment entity, prefixed with `adj_`.
      - `action` 'credit' | 'refund' | 'chargeback' | 'chargeback_reverse' | 'chargeback_warning' | 'chargeback_warning_reverse' | 'credit_reverse', required: How this adjustment impacts the related transaction.
      - `type` 'full' | 'partial', required: Type of adjustment. Use `full` to adjust the grand total for the related transaction. Include an `items` array when creating a `partial` adjustment. If omitted, defaults to `partial`.
      - `transaction_id` string, required: Unique Paddle ID for this transaction entity, prefixed with `txn_`.
      - `subscription_id` string, required: Unique Paddle ID for this subscription entity, prefixed with `sub_`.
      - `customer_id` string, required: Unique Paddle ID for this customer entity, prefixed with `ctm_`.
      - `reason` string, required: Why this adjustment was created. Appears in the Paddle dashboard. Retained for record-keeping purposes.
      - `credit_applied_to_balance` boolean, nullable: Whether this adjustment was applied to the related customer's credit balance. Only returned for `credit` adjustments.
      - `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.
      - `status` 'pending_approval' | 'approved' | 'rejected' | 'reversed', required: Status of this adjustment. Set automatically by Paddle. Most refunds for live accounts are created with the status of `pending_approval` until reviewed by Paddle, but some are automatically approved. For sandbox accounts, Paddle automatically approves refunds every ten minutes. Credit adjustments don't require approval from Paddle, so they're created as `approved`.
      - `items` object[], required: List of items on this adjustment. Required if `type` is not populated or set to `partial`.
        - `id` string, required: Unique Paddle ID for this adjustment item, prefixed with `adjitm_`.
        - `item_id` string, required: Unique Paddle ID for this transaction item, prefixed with `txnitm_`. Used when working with [adjustments](https://developer.paddle.com/build/transactions/create-transaction-adjustments).
        - `type` 'full' | 'partial' | 'tax' | 'proration', required: Type of adjustment for this transaction item. `tax` adjustments are automatically created by Paddle. Include `amount` when creating a `partial` adjustment.
        - `amount` string, nullable, required: Amount adjusted for this transaction item. Required when item `type` is `partial`.
        - `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.
        - `totals` AdjustmentItemTotals, required: Breakdown of the total for an adjustment item.
          - `subtotal` string, required: Amount multiplied by quantity.
          - `tax` string, required: Total tax on the subtotal.
          - `total` string, required: Total after tax.
      - `totals` AdjustmentTotals, required: Breakdown of the total for an adjustment.
        - `subtotal` string, required: Total before tax. For tax adjustments, the value is 0.
        - `tax` string, required: Total tax on the subtotal.
        - `total` string, required: Total after tax.
        - `fee` string, required: Total fee taken by Paddle for this adjustment.
        - `retained_fee` string: Paddle fees retained for this adjustment.
        - `earnings` string, required: Total earnings. This is the subtotal minus the fee. For tax adjustments, this value is negative, which means a positive effect in the transaction earnings. This is because the fee is originally calculated from the transaction total, so if a tax adjustment is made, then the fee portion of it is returned.
        - `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.
      - `payout_totals` AdjustmentPayoutTotals, required: Breakdown of how this adjustment affects your payout balance.
        - `subtotal` string, required: Adjustment total before tax and fees.
        - `tax` string, required: Total tax on the adjustment subtotal.
        - `total` string, required: Adjustment total after tax.
        - `fee` string, required: Adjusted Paddle fee.
        - `retained_fee` string, required: Paddle fees retained for this adjustment.
        - `chargeback_fee` AdjustmentPayoutTotalsChargebackFee
          - `amount` string, required: Chargeback fee converted into the payout currency.
          - `original` AdjustmentPayoutTotalsChargebackFeeOriginal, required
            - `amount` string, required: Fee amount for this chargeback in the original currency.
            - `currency_code` 'AUD' | 'CAD' | 'EUR' | 'GBP' | 'USD', required: Three-letter ISO 4217 currency code for chargeback fees.
        - `earnings` string, required: Adjusted payout earnings. This is the adjustment total plus adjusted fees.
        - `currency_code` 'AUD' | 'CAD' | 'CHF' | 'CNY' | 'CZK' | 'DKK' | 'EUR' | 'GBP' | 'HUF' | 'PLN' | 'SEK' | 'USD' | 'ZAR', required: Supported three-letter ISO 4217 currency code for payouts from Paddle.
      - `tax_rates_used` AdjustmentTaxRatesUsed[], required
        - `tax_rate` string, required: Rate used to calculate tax for this adjustment.
        - `totals` AdjustmentTaxRatesUsedItemTotals, required: Calculated totals for the tax applied to this adjustment.
          - `subtotal` string, required: Total before tax. For tax adjustments, the value is 0.
          - `tax` string, required: Total tax on the subtotal.
          - `total` string, required: Total after tax.
      - `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.
    - `adjustments_totals` TransactionAdjustmentsTotalsInclude: Breakdown of all the adjustments made against a transaction in the transaction currency.
      - `subtotal` string, required: Total before tax.
      - `tax` string, required: Total tax on the subtotal.
      - `total` string, required: Total after tax.
      - `fee` string, required: Total fee taken by Paddle.
      - `retained_fee` string, required: Total gateway fee retained by Paddle.
      - `earnings` string, required: Total earnings. This is the subtotal minus the fee. For tax adjustments, this value is negative, which means a positive effect in the transaction earnings. This is because the fee is originally calculated from the transaction total, so if a tax adjustment is made, then the fee portion of it is returned. As a result, the earnings from all the adjustments performed could be either negative, positive or zero.
      - `breakdown` TransactionAdjustmentsTotalsIncludeBreakdown, required: Breakdown of the total adjustments by adjustment action.
        - `credit` string, required: Total amount of credit adjustments.
        - `refund` string, required: Total amount of refund adjustments.
        - `chargeback` string, required: Total amount of chargeback adjustments.
      - `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.
    - `business` Business: Represents a business entity.
      - `id` string, required: Unique Paddle ID for this business entity, prefixed with `biz_`.
      - `customer_id` string, required: Unique Paddle ID for this customer entity, prefixed with `ctm_`.
      - `name` string, required: Full name.
      - `company_number` string, nullable, required: Company number for this business.
      - `tax_identifier` string, nullable, required: Tax or VAT Number for this business.
      - `status` 'active' | 'archived', required: Whether this entity can be used in Paddle.
      - `contacts` BusinessContactsItem[], required: List of contacts related to this business, typically used for sending invoices.
        - `name` string, required: Full name.
        - `email` string, email, required: Email address for this entity.
      - `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.
      - `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.
    - `customer` Customer: Represents a customer entity.
      - `id` string, required: Unique Paddle ID for this customer entity, prefixed with `ctm_`.
      - `name` string, required: Full name.
      - `email` string, email, required: Email address for this entity.
      - `marketing_consent` boolean, required: Whether this customer opted into marketing from you. `false` unless customers check the marketing consent box when using Paddle Checkout. Set automatically by Paddle.
      - `status` 'active' | 'archived', required: Whether this entity can be used in Paddle.
      - `custom_data` CustomData, required: Your own structured key-value data.
      - `locale` string, required: Valid IETF BCP 47 short form locale tag. If omitted, defaults to `en`.
      - `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.
      - `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.
    - `discount` Discount: Represents a discount entity.
      - `id` string, required: Unique Paddle ID for this discount, prefixed with `dsc_`.
      - `status` 'active' | 'archived', required: Whether this entity can be used in Paddle.
      - `description` string, required: Short description for this discount for your reference. Not shown to customers.
      - `enabled_for_checkout` boolean, required: Whether this discount can be redeemed by customers at checkout (`true`) or not (`false`).
      - `code` string, required: Unique code that customers can use to apply this discount at checkout. Use letters and numbers only, up to 32 characters. Not case-sensitive.
      - `type` 'flat' | 'flat_per_seat' | 'percentage', required: Type of discount. Determines how this discount impacts the checkout or transaction total.
      - `mode` 'standard' | 'custom', required: Discount mode. Standard discounts are considered part of your catalog and are shown in the Paddle dashboard.
      - `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.
      - `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.
      - `recur` boolean, required: Whether this discount applies for multiple subscription billing periods (`true`) or not (`false`).
      - `maximum_recurring_intervals` integer, nullable, required: 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.
      - `usage_limit` integer, nullable, required: Maximum number of times this discount can be redeemed. This is an overall limit for this discount, rather than a per-customer limit. `null` if this discount can be redeemed an unlimited amount of times. Paddle counts a usage as a redemption on a checkout, transaction, or the initial application against a subscription. Transactions created for subscription renewals, midcycle changes, and one-time charges aren't considered a redemption. Paddle checks this limit when a discount is applied to a checkout or transaction, comparing it against `times_used` at that moment. As `times_used` only increments when a transaction completes, checkouts that are open at the same time can each pass this check, so in some cases a discount may be redeemed more times than this limit allows.
      - `restrict_to` DiscountRestrictTo[], nullable, required: 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.
      - `expires_at` string, date-time, required: RFC 3339 datetime string.
      - `custom_data` CustomData, required: Your own structured key-value data.
      - `times_used` integer, required: How many times this discount has been redeemed. Automatically incremented by Paddle. Paddle counts a usage as a redemption on a checkout, transaction, or subscription. Transactions created for subscription renewals, midcycle changes, and one-time charges aren't considered a redemption. Incremented when a transaction completes, rather than when a discount is applied to a checkout. See `usage_limit` for how this affects enforcement of the limit.
      - `discount_group_id` string, required: Unique Paddle ID for this discount group, prefixed with `dsg_`.
      - `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.
      - `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.
    - `available_payment_methods` PaymentMethodType[]: List of available payment methods for this transaction. Returned when the `include` parameter is used with the `available_payment_methods` value.
  - `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-26** (v1) `bbc0c72039c8`: 1 breaking, 1 info
  - removed `#/components/schemas/PublicTransactionOrigin` from the `origin/allOf[#/components/schemas/TransactionOrigin]/` request property `oneOf` list
  - removed `#/components/schemas/PublicTransactionOrigin` from the `data/origin/allOf[#/components/schemas/TransactionOrigin]/` response property `oneOf` list for the response status `201`
- **2026-10-19** (v1) `4f35a8c6ea4d`: 5 breaking, 1 warning, 11 info
  - removed `#/components/schemas/Duration` from the `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 `items/items/oneOf[subschema #3: Non-catalog price and product]/price/allOf[subschema #1: TransactionPriceCreateWithProduct]/trial_period` request property `anyOf` list
  - added `#/components/schemas/CountryCodeNonSupported` to the `data/address/allOf[subschema #1: Address]/country_code/allOf[#/components/schemas/CountryCode]/` response property `oneOf` list for the response status `201`
  - added `#/components/schemas/CountryCodeNonSupported` to the `data/items/items/price/allOf[subschema #1: Price]/trial_period/anyOf[subschema #1: Price Trial Duration]/unit_price_overrides/items/country_codes/items/` response property `oneOf` list for the response status `201`
  - …13 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/paddlehq/apis/paddle-api/changes/transactions/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)
