Skip to main content
WEBHOOK
subscription.canceled
{
  "event_id": "evt_01hv90vbenb5d4spnjbbcfh3nk",
  "event_type": "subscription.canceled",
  "occurred_at": "2024-04-12T11:24:55.637846Z",
  "notification_id": "ntf_01hv90vbk0t9skkjqazdq3emtz",
  "data": {
    "id": "sub_01hv8x29kz0t586xy6zn1a62ny",
    "items": [
      {
        "price": {
          "id": "pri_01gsz8x8sawmvhz1pv30nge1ke",
          "name": "Monthly (per seat)",
          "type": "standard",
          "status": "active",
          "quantity": {
            "maximum": 999,
            "minimum": 1
          },
          "tax_mode": "account_setting",
          "created_at": "2023-02-23T13:55:22.538367Z",
          "product_id": "pro_01gsz4t5hdjse780zja8vvr7jg",
          "unit_price": {
            "amount": "3000",
            "currency_code": "USD"
          },
          "updated_at": "2024-04-11T13:54:52.254748Z",
          "custom_data": null,
          "description": "Monthly",
          "import_meta": null,
          "trial_period": null,
          "billing_cycle": {
            "interval": "month",
            "frequency": 1
          },
          "unit_price_overrides": []
        },
        "product": {
          "id": "pro_01gsz4t5hdjse780zja8vvr7jg",
          "name": "AeroEdit Pro",
          "type": "standard",
          "tax_category": "standard",
          "description": "Designed for professional pilots, including all features plus in Basic plus compliance monitoring, route optimization, and third-party integrations.",
          "image_url": "https://paddle.s3.amazonaws.com/user/165798/bT1XUOJAQhOUxGs83cbk_pro.png",
          "custom_data": {
            "features": {
              "aircraft_performance": true,
              "compliance_monitoring": true,
              "flight_log_management": true,
              "payment_by_invoice": false,
              "route_planning": true,
              "sso": false
            },
            "suggested_addons": [
              "pro_01h1vjes1y163xfj1rh1tkfb65",
              "pro_01gsz97mq9pa4fkyy0wqenepkz"
            ],
            "upgrade_description": "Move from Basic to Pro to take advantage of aircraft performance, advanced route planning, and compliance monitoring."
          },
          "status": "active",
          "import_meta": null,
          "created_at": "2023-02-23T12:43:46.605Z",
          "updated_at": "2024-04-05T15:53:44.687Z"
        },
        "status": "active",
        "quantity": 20,
        "recurring": true,
        "created_at": "2024-04-12T10:38:00.761Z",
        "updated_at": "2024-04-12T10:49:38.76Z",
        "trial_dates": null,
        "next_billed_at": null,
        "previously_billed_at": "2024-04-12T10:37:59.556997Z"
      },
      {
        "price": {
          "id": "pri_01h1vjfevh5etwq3rb416a23h2",
          "name": "Monthly (recurring addon)",
          "type": "standard",
          "status": "active",
          "quantity": {
            "maximum": 100,
            "minimum": 1
          },
          "tax_mode": "account_setting",
          "created_at": "2023-06-01T13:31:12.625056Z",
          "product_id": "pro_01h1vjes1y163xfj1rh1tkfb65",
          "unit_price": {
            "amount": "10000",
            "currency_code": "USD"
          },
          "updated_at": "2024-04-09T07:23:00.907834Z",
          "custom_data": null,
          "description": "Monthly",
          "import_meta": null,
          "trial_period": null,
          "billing_cycle": {
            "interval": "month",
            "frequency": 1
          },
          "unit_price_overrides": []
        },
        "product": {
          "id": "pro_01h1vjes1y163xfj1rh1tkfb65",
          "name": "Analytics addon",
          "type": "standard",
          "tax_category": "standard",
          "description": "Unlock advanced insights into your flight data with enhanced analytics and reporting features. Includes customizable reporting templates and trend analysis across flights.",
          "image_url": "https://paddle.s3.amazonaws.com/user/165798/97dRpA6SXzcE6ekK9CAr_analytics.png",
          "custom_data": null,
          "status": "active",
          "import_meta": null,
          "created_at": "2023-06-01T13:30:50.302Z",
          "updated_at": "2024-04-05T15:47:17.163Z"
        },
        "status": "active",
        "quantity": 1,
        "recurring": true,
        "created_at": "2024-04-12T10:38:00.761Z",
        "updated_at": "2024-04-12T10:38:00.761Z",
        "trial_dates": null,
        "next_billed_at": null,
        "previously_billed_at": "2024-04-12T10:37:59.556997Z"
      },
      {
        "price": {
          "id": "pri_01gsz95g2zrkagg294kpstx54r",
          "name": "Monthly (recurring addon)",
          "type": "standard",
          "status": "active",
          "quantity": {
            "maximum": 1,
            "minimum": 1
          },
          "tax_mode": "account_setting",
          "created_at": "2023-02-23T13:59:52.159927Z",
          "product_id": "pro_01gsz92krfzy3hcx5h5rtgnfwz",
          "unit_price": {
            "amount": "25000",
            "currency_code": "USD"
          },
          "updated_at": "2024-04-09T07:27:48.018296Z",
          "custom_data": null,
          "description": "Monthly (recurring addon)",
          "import_meta": null,
          "trial_period": null,
          "billing_cycle": {
            "interval": "month",
            "frequency": 1
          },
          "unit_price_overrides": []
        },
        "product": {
          "id": "pro_01gsz92krfzy3hcx5h5rtgnfwz",
          "name": "VIP support",
          "type": "standard",
          "tax_category": "standard",
          "description": "Get exclusive access to our expert team of product specialists, available to help you make the most of your AeroEdit subscription.",
          "image_url": "https://paddle.s3.amazonaws.com/user/165798/qgyipKJwRtq98YNboipo_vip-support.png",
          "custom_data": null,
          "status": "active",
          "import_meta": null,
          "created_at": "2023-02-23T13:58:17.615Z",
          "updated_at": "2024-04-05T15:44:02.893Z"
        },
        "status": "active",
        "quantity": 1,
        "recurring": true,
        "created_at": "2024-04-12T10:49:38.765Z",
        "updated_at": "2024-04-12T10:49:38.765Z",
        "trial_dates": null,
        "next_billed_at": null,
        "previously_billed_at": "2024-04-12T10:49:38.765Z"
      }
    ],
    "status": "canceled",
    "discount": null,
    "paused_at": null,
    "address_id": "add_01hv8gq3318ktkfengj2r75gfx",
    "created_at": "2024-04-12T10:38:00.761Z",
    "started_at": "2024-04-12T10:37:59.556997Z",
    "updated_at": "2024-04-12T11:24:54.873Z",
    "business_id": null,
    "canceled_at": "2024-04-12T11:24:54.868Z",
    "custom_data": null,
    "customer_id": "ctm_01hv6y1jedq4p1n0yqn5ba3ky4",
    "import_meta": null,
    "billing_cycle": {
      "interval": "month",
      "frequency": 1
    },
    "currency_code": "USD",
    "next_billed_at": null,
    "billing_details": null,
    "collection_mode": "automatic",
    "first_billed_at": "2024-04-12T10:37:59.556997Z",
    "scheduled_change": null,
    "current_billing_period": null
  }
}

Headers

Paddle-Signature
string
required

Signature for this request. Use to verify that webhooks come from Paddle.

Example:

"ts=1671552777;h1=eb4d0dc8853be92b7f063b9f3ba5233eb920a09459b6e6b2c26705b4364db151"

Body

application/json

Occurs when a subscription is canceled. Its status field changes to canceled.

If you choose to cancel a subscription immediately, the subscription status changes to canceled and subscription.canceled occurs.

If you choose to cancel a subscription on the next billing period, Paddle creates a scheduled change to say the subscription should be canceled on the next billing date. subscription.updated occurs at this point. On the next billing date, the subscription status changes to canceled and subscription.canceled occurs.

Payload includes the complete subscription entity, except management_urls. Subscription management links are temporary, so they're not included. Get a subscription using the API to get management links for a subscription.

data
Subscription Notification · object

Response

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.