---
title: "transaction.canceled"
method: POST
path: "transaction.canceled"
tags: ["Transactions"]
---

# transaction.canceled

`POST transaction.canceled` (webhook)

Occurs when a transaction is canceled. Its `status` field changes to `canceled`.

Marking a transaction as canceled is typically used when working with manually-collected transactions to say that an
invoice was created in error. It's not typically part of checkout workflows, where collection mode is automatic.

Transactions are marked as canceled when:

* You update its status to `canceled` using the API.
* You cancel an invoice (a manually-collected transaction) using the Paddle dashboard.

## Headers

- `paddle_signature` string, required

## Payload

- object
  - `event_id` string, required: Unique Paddle ID for this event, prefixed with `evt_`.
  - `event_type` 'address.created' | 'address.imported' | 'address.updated' | 'adjustment.created' | 'adjustment.updated' | 'api_key.created' | 'api_key.expired' | 'api_key.expiring' | 'api_key.revoked' | 'api_key.updated' | 'api_key_exposure.created' | 'business.created' | 'business.imported' | 'business.updated' | 'client_token.created' | 'client_token.revoked' | 'client_token.updated' | 'customer.created' | 'customer.imported' | 'customer.updated' | 'discount.created' | 'discount.imported' | 'discount.updated' | 'discount_group.created' | 'discount_group.updated' | 'payment_method.saved' | 'payment_method.deleted' | 'payout.created' | 'payout.paid' | 'price.created' | 'price.imported' | 'price.updated' | 'product.created' | 'product.imported' | 'product.updated' | 'report.created' | 'report.updated' | 'subscription.activated' | 'subscription.canceled' | 'subscription.created' | 'subscription.imported' | 'subscription.past_due' | 'subscription.paused' | 'subscription.resumed' | 'subscription.trialing' | 'subscription.updated' | 'transaction.billed' | 'transaction.canceled' | 'transaction.completed' | 'transaction.created' | 'transaction.paid' | 'transaction.past_due' | 'transaction.payment_failed' | 'transaction.ready' | 'transaction.revised' | 'transaction.updated', required: Type of event sent by Paddle, in the format `entity.event_type`.
  - `occurred_at` string, date-time, required: RFC 3339 datetime string of when this event occurred.
  - `notification_id` string, required: Unique Paddle ID for this notification, prefixed with `ntf_`.
  - `data` object, required: New or changed entity.
    - `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, nullable, required: Unique Paddle ID for this customer entity, prefixed with `ctm_`.
    - `address_id` string, nullable, required: Unique Paddle ID for this address entity, prefixed with `add_`.
    - `business_id` string, nullable, required: Unique Paddle ID for this business entity, prefixed with `biz_`.
    - `custom_data` object, nullable, 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. Must be `USD`, `EUR`, or `GBP` if `collection_mode` is `manual`.
    - `origin` 'api' | 'subscription_charge' | 'subscription_payment_method_change' | 'subscription_recurring' | 'subscription_update' | 'web', required: Describes how this transaction was created.
    - `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, nullable, required: 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', required: How payment is collected for this transaction. `automatic` for checkout, `manual` for invoices.
    - `discount_id` string, nullable, required: Unique Paddle ID for this discount, prefixed with `dsc_`.
    - `billing_details` object, nullable, 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` object, required: How long a customer has to pay this invoice once issued. The invoice is due at the end of its payment terms, and is marked as `past_due` 24 hours after its due date if unpaid.
        - `interval` 'day' | 'week' | 'month' | 'year', required: Unit of time.
        - `frequency` integer, required: Amount of time.
    - `billing_period` object, nullable, required: Time period that this transaction is for. Set automatically by Paddle for subscription renewals to describe the period that charges are for.
      - `starts_at` string, date-time, required: RFC 3339 datetime string of when this period starts.
      - `ends_at` string, date-time, required: RFC 3339 datetime string of when this period ends.
    - `items` object[], required: List of items on this transaction. For calculated totals, use `details.line_items`.
      - `price` object, required: Represents a price entity.
        - `id` string, required: Unique Paddle ID for this price, prefixed with `pri_`.
        - `product_id` string, required: Paddle ID for the product that this price is for, 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, nullable, required: Name of this price, shown to customers at checkout and on invoices. Typically describes how often the related product bills.
        - `billing_cycle` object, nullable, required: How often this price should be charged. `null` if price is non-recurring (one-time).
          - `interval` 'day' | 'week' | 'month' | 'year', required: Unit of time.
          - `frequency` integer, required: Amount of time.
        - `trial_period` object, nullable, required: Trial period for the product related to this price. The billing cycle begins once the trial period is over. `null` for no trial period. Requires `billing_cycle`.
          - `interval` 'day' | 'week' | 'month' | 'year', required: Unit of time.
          - `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` object, nullable: 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` object[]: 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` union[], required: Supported two-letter ISO 3166-1 alpha-2 country code. Customers located in the listed countries are charged the override price.
              - …
            - `unit_price` object, required: Override price. This price applies to customers located in the countries for this unit price override.
              - …
        - `tax_mode` 'account_setting' | 'external' | 'internal' | 'location', required: How tax is calculated for this price.
        - `unit_price` object, required: Base price. This price applies to all customers, except for customers located in countries where you have `unit_price_overrides`.
          - `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` object[], 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` union[], 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` object, required: Override price. This price applies to customers located in the countries for this unit price override.
            - `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` object, required: Limits on how many times the related product can be purchased at this price. Useful for discount campaigns.
          - `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` object, nullable, 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, nullable: 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` object, nullable, 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` object, required: Billing period that proration is based on.
          - `starts_at` string, date-time, required: RFC 3339 datetime string of when this period starts.
          - `ends_at` string, date-time, required: RFC 3339 datetime string of when this period ends.
    - `details` object, 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` object[], required: List of tax rates applied for this transaction.
        - `tax_rate` string, required: Rate used to calculate tax for this transaction.
        - `totals` object, required: Calculated totals for the tax applied to this transaction.
          - `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` object, 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: Three-letter ISO 4217 currency code of the currency used for this transaction.
      - `adjusted_totals` object, 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: Three-letter ISO 4217 currency code of the currency used for this transaction.
      - `payout_totals` object, nullable, 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: Three-letter ISO 4217 currency code used for the payout for this transaction. If your primary currency has changed, this reflects the primary currency at the time the transaction was billed.
        - `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` object, nullable, 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` object, required: Details of any chargeback fees incurred for this transaction.
          - `amount` string, required: Chargeback fee converted into the payout currency.
          - `original` object, nullable, 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 the original chargeback fee.
        - `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: Three-letter ISO 4217 currency code used for the payout for this transaction. If your primary currency has changed, this reflects the primary currency at the time the transaction was billed.
        - `exchange_rate` string, required: Currency exchange rate, including margin if applicable. `1.0` if the transaction currency matches your payout currency.
      - `line_items` object[], 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: Paddle ID for the price related to this transaction line item, prefixed with `pri_`.
        - `quantity` integer, required: Quantity of this transaction line item.
        - `proration` object, nullable, 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` object, required: Billing period that proration is based on.
            - `starts_at` string, date-time, required: RFC 3339 datetime string of when this period starts.
            - `ends_at` string, date-time, required: RFC 3339 datetime string of when this period ends.
        - `tax_rate` string, required: Rate used to calculate tax for this transaction line item.
        - `unit_totals` object, required: Breakdown of the charge for one unit 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` object, 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` object, required: Related product entity for this transaction line item price. Reflects the entity at the time it was added to the transaction.
          - `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` object, nullable, 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, nullable: 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` object[], 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, nullable, 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', nullable, required: Reason why a payment attempt failed. Returns `null` if payment captured successfully.
      - `method_details` object, 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` object, nullable, 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` object, nullable, 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` object, nullable, 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` object, nullable, 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` object, nullable, 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, nullable, required: RFC 3339 datetime string.
    - `checkout` object, nullable, 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, nullable, required: RFC 3339 datetime string.
    - `revised_at` string, date-time, nullable, required: RFC 3339 datetime string.

## Acknowledgement `200`

Respond with an HTTP 200 status code within 5 seconds to let Paddle know that you successfully received the message.

If your server sends another kind of status code or doesn't respond, Paddle automatically retries using an exponential backoff schedule.

---

[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)
