Unsuccessful Subscription Rebills

subscription.charge.failed

Overview of the subscription.charge.failed webhook

When a subscription.charge.failed event is triggered, FastSpring sends a webhook payload with details about the rebill failure. The payload contains the failure reason, which is most commonly due to an expired or declined payment method.

If webhook expansion is enabled, the payload includes full account and product objects. Otherwise, the payload includes only the corresponding IDs.

This page includes:

  • A full sample payload showing a populated subscription.charge.failed webhook
  • A detailed table listing every payload property, including name, type, and description
  • Notes on when each field is included, omitted, or dependent on specific update types

Browse the table sections below or use the quick links to jump to a specific group of fields.

Tip: Not all fields are always included. Refer to the Payload properties table to understand when a field appears.

Webhook payload example (expansion enabled)

When a subscription.charge.failed event is triggered, the webhook sends the following JSON payload:

{
    "reason": "EXPIRED_CARD",
    "account": {
      "id": "abCdE1FGH2Hij3KLMnOpqR",
      "account": "abCdE1FGH2Hij3KLMnOpqR",
      "contact": {
        "first": "Jane",
        "last": "Doe",
        "email": "[email protected]",
        "company": "Company Inc.",
        "phone": "5555555",
        "subscribed": true
      },
      "address": {
        "address line 1": "123 Business Rd",
        "address line 2": "Floor 4",
        "city": "Metropolis",
        "country": "US",
        "postal code": "12345",
        "region": "US-NY",
        "region custom": null,
        "company": "Company Inc."
      },
      "language": "en",
      "country": "US",
      "lookup": {
        "global": "lookup-001"
      },
      "url": "https://company.onfastspring.com/account"
    },
    "subscription": {
      "id": "1abc2DE_FGhIjKLm3NoPQR",
      "quote": null,
      "subscription": "1abc2DE_FGhIjKLm3NoPQR",
      "active": true,
      "state": "trial",
      "isSubscriptionEligibleForPauseByBuyer": false,
      "isPauseScheduled": false,
      "changed": 1749236508799,
      "changedValue": 1749236508799,
      "changedInSeconds": 1749236508,
      "changedDisplay": "6/6/25",
      "changedDisplayISO8601": "2025-06-06",
      "changedDisplayEmailEnhancements": "Jun 06, 2025",
      "changedDisplayEmailEnhancementsWithTime": "Jun 06, 2025 07:01:48 PM",
      "paymentMethodAction": "none",
      "live": false,
      "currency": "USD",
      "declineReason": null,
      "account": "abCdE1FGH2Hij3KLMnOpqR",
      "product": "furious-falcon",
      "sku": "SKU-FF-102",
      "display": "Furious Falcon",
      "quantity": 1,
      "adhoc": false,
      "autoRenew": true,
      "price": 14.95,
      "priceDisplay": "$14.95",
      "priceInPayoutCurrency": 14.95,
      "priceInPayoutCurrencyDisplay": "$14.95",
      "discount": 0,
      "discountDisplay": "$0.00",
      "discountInPayoutCurrency": 0,
      "discountInPayoutCurrencyDisplay": "$0.00",
      "subtotal": 14.95,
      "subtotalDisplay": "$14.95",
      "subtotalInPayoutCurrency": 14.95,
      "subtotalInPayoutCurrencyDisplay": "$14.95",
      "next": 1749340800000,
      "nextValue": 1749340800000,
      "nextInSeconds": 1749340800,
      "nextDisplay": "6/8/25",
      "nextDisplayISO8601": "2025-06-08",
      "end": null,
      "endValue": null,
      "endInSeconds": null,
      "endDisplay": null,
      "endDisplayISO8601": null,
      "canceledDate": null,
      "canceledDateValue": null,
      "canceledDateInSeconds": null,
      "canceledDateDisplay": null,
      "canceledDateDisplayISO8601": null,
      "deactivationDate": 1749945600000,
      "deactivationDateValue": 1749945600000,
      "deactivationDateInSeconds": 1749945600,
      "deactivationDateDisplay": "6/15/25",
      "deactivationDateDisplayISO8601": "2025-06-15",
      "sequence": 1,
      "periods": null,
      "remainingPeriods": null,
      "begin": 1749236450805,
      "beginValue": 1749236450805,
      "beginInSeconds": 1749236450,
      "beginDisplay": "6/6/25",
      "beginDisplayISO8601": "2025-06-06",
      "beginDisplayEmailEnhancements": "Jun 06, 2025",
      "beginDisplayEmailEnhancementsWithTime": "Jun 06, 2025 07:00:50 PM",
      "nextDisplayEmailEnhancements": "Jun 08, 2025",
      "nextDisplayEmailEnhancementsWithTime": "Jun 08, 2025 12:00:00 AM",
      "intervalUnit": "month",
      "intervalUnitAbbreviation": "mo",
      "intervalLength": 1,
      "intervalLengthGtOne": false,
      "nextChargeCurrency": "USD",
      "nextChargeDate": 1749340800000,
      "nextChargeDateValue": 1749340800000,
      "nextChargeDateInSeconds": 1749340800,
      "nextChargeDateDisplay": "6/8/25",
      "nextChargeDateDisplayISO8601": "2025-06-08",
      "nextChargePreTax": 13.84,
      "nextChargePreTaxDisplay": "$13.84",
      "nextChargePreTaxInPayoutCurrency": 13.84,
      "nextChargePreTaxInPayoutCurrencyDisplay": "$13.84",
      "nextChargeTotal": 14.95,
      "nextChargeTotalDisplay": "$14.95",
      "nextChargeTotalInPayoutCurrency": 14.95,
      "nextChargeTotalInPayoutCurrencyDisplay": "$14.95",
      "cancellationSetting": {
        "cancellation": "AFTER_PAYMENT_FAILURE",
        "intervalUnit": "week",
        "intervalLength": 1
      },
      "fulfillments": {
        "instructions": "<p>Thank you for subscribing to Example Subscription Monthly. Please download the installer file using the button or link found on this page. Your license key is also displayed here.</p>"
      },
      "instructions": [
        {
          "type": "trial",
          "trialType": "PAID",
          "isNotTrial": false,
          "periodStartDate": 1749340800000,
          "periodStartDateValue": 1749340800000,
          "periodStartDateInSeconds": 1749340800,
          "periodStartDateDisplay": "6/8/25",
          "periodStartDateDisplayISO8601": "2025-06-08",
          "periodEndDate": 1749254400000,
          "periodEndDateValue": 1749254400000,
          "periodEndDateInSeconds": 1749254400,
          "periodEndDateDisplay": "6/7/25",
          "periodEndDateDisplayISO8601": "2025-06-07",
          "discountDurationUnit": "day",
          "discountDurationLength": 1,
          "discountPercent": 100,
          "discountPercentValue": 100,
          "discountPercentDisplay": "100%",
          "unitDiscount": 14.95,
          "unitDiscountDisplay": "$14.95",
          "unitDiscountInPayoutCurrency": 14.95,
          "unitDiscountInPayoutCurrencyDisplay": "$14.95",
          "discountTotal": 14.95,
          "discountTotalDisplay": "$14.95",
          "discountTotalInPayoutCurrency": 14.95,
          "discountTotalInPayoutCurrencyDisplay": "$14.95",
          "total": 0,
          "totalDisplay": "$0.00",
          "totalInPayoutCurrency": 0,
          "totalInPayoutCurrencyDisplay": "$0.00",
          "totalWithTaxes": 14.95,
          "totalWithTaxesDisplay": "$14.95",
          "totalWithTaxesInPayoutCurrency": 14.95,
          "totalWithTaxesInPayoutCurrencyDisplay": "$14.95",
          "price": 14.95,
          "priceDisplay": "$14.95",
          "priceInPayoutCurrency": 14.95,
          "priceInPayoutCurrencyDisplay": "$14.95",
          "priceTotal": 14.95,
          "priceTotalDisplay": "$14.95",
          "priceTotalInPayoutCurrency": 14.95,
          "priceTotalInPayoutCurrencyDisplay": "$14.95",
          "unitPrice": 0,
          "unitPriceDisplay": "$0.00",
          "unitPriceInPayoutCurrency": 0,
          "unitPriceInPayoutCurrencyDisplay": "$0.00"
        },
        {
          "product": "furious-falcon",
          "type": "regular",
          "isNotTrial": true,
          "periodStartDate": 1749340800000,
          "periodStartDateValue": 1749340800000,
          "periodStartDateInSeconds": 1749340800,
          "periodStartDateDisplay": "6/8/25",
          "periodStartDateDisplayISO8601": "2025-06-08",
          "periodEndDate": null,
          "periodEndDateValue": null,
          "periodEndDateInSeconds": null,
          "periodEndDateDisplay": null,
          "periodEndDateDisplayISO8601": null,
          "intervalUnit": "month",
          "intervalLength": 1,
          "discountPercent": 0,
          "discountPercentValue": 0,
          "discountPercentDisplay": "0%",
          "discountTotal": 0,
          "discountTotalDisplay": "$0.00",
          "discountTotalInPayoutCurrency": 0,
          "discountTotalInPayoutCurrencyDisplay": "$0.00",
          "unitDiscount": 0,
          "unitDiscountDisplay": "$0.00",
          "unitDiscountInPayoutCurrency": 0,
          "unitDiscountInPayoutCurrencyDisplay": "$0.00",
          "price": 14.95,
          "priceDisplay": "$14.95",
          "priceInPayoutCurrency": 14.95,
          "priceInPayoutCurrencyDisplay": "$14.95",
          "priceTotal": 14.95,
          "priceTotalDisplay": "$14.95",
          "priceTotalInPayoutCurrency": 14.95,
          "priceTotalInPayoutCurrencyDisplay": "$14.95",
          "unitPrice": 14.95,
          "unitPriceDisplay": "$14.95",
          "unitPriceInPayoutCurrency": 14.95,
          "unitPriceInPayoutCurrencyDisplay": "$14.95",
          "total": 14.95,
          "totalDisplay": "$14.95",
          "totalInPayoutCurrency": 14.95,
          "totalInPayoutCurrencyDisplay": "$14.95",
          "totalWithTaxes": 14.95,
          "totalWithTaxesDisplay": "$14.95",
          "totalWithTaxesInPayoutCurrency": 14.95,
          "totalWithTaxesInPayoutCurrencyDisplay": "$14.95"
        }
      ],
      "initialOrderId": "S6XqptRvRJmzS1qceZKcNA",
      "initialOrderReference": "ABC1234567-8910-11121"
    }
  }

Navigate this webhook

The subscription.charge.failed webhook payload includes dozens of fields. Use the cards below to jump to a specific section of the property reference.

Payload properties

All fields below are included in the subscription.charge.failed webhook payload. Fields are grouped into categories for easier navigation.

NameTypeDescription
Event Metadata
reasonstringFailure reason code for the charge, such as EXPIRED_CARD
Account Object
accountobjectCustomer account object containing ID, contact information, language, country, and account lookup values
account.idstringFastSpring-generated customer account ID
account.accountstringDuplicate of account.id for backward compatibility
account.contact.firststringFirst name of the customer
account.contact.laststringLast name of the customer
account.contact.emailstringEmail address of the customer
account.contact.companystringCompany name of the customer when provided
account.contact.phonestringPhone number of the customer when provided
account.contact.subscribedbooleanWhether the account contact is subscribed to updates
account.address.address line 1stringPrimary street address line
account.address.address line 2stringSecondary street address line
account.address.citystringCity of the account address
account.address.countrystringTwo-letter ISO country code for the address
account.address.postal codestringPostal or ZIP code of the address
account.address.regionstringRegion or state of the address
account.address.region customstringCustom region when not standard
account.address.companystringCompany associated with the address
account.languagestringTwo-letter ISO code for the customer’s preferred language
account.countrystringTwo-letter ISO country code for the customer
account.lookup.globalstringGlobally unique public ID used to look up the account in customer-facing portals
account.urlstringCustomer-facing account management URL
Subscription Object
subscription.idstringUnique identifier for the subscription
subscription.quotestringAssociated quote ID if created from a quote
subscription.subscriptionstringDuplicate of subscription.id for backward compatibility
subscription.activebooleanWhether the subscription is currently active
subscription.statestringCurrent state such as trial, active, overdue, deactivated, or canceled
subscription.isSubscriptionEligibleForPauseByBuyerbooleanWhether the buyer can pause the subscription from their account
subscription.isPauseScheduledbooleanWhether a pause has been scheduled to take effect on the next rebill
paymentMethodActionstringWhether the payment method changed, such as updated or none
subscription.livebooleanWhether the subscription was created in live mode
subscription.currencystringThree-letter ISO currency code for the subscription
subscription.declineReasonstringReason for payment decline when applicable
subscription.accountstringAccount ID associated with the subscription
subscription.productstringProduct ID associated with the subscription
subscription.skustringSKU of the subscription product
subscription.displaystringCustomer-facing display name of the subscription
subscription.quantityintegerQuantity of the subscription product
subscription.adhocbooleanWhether the subscription is manually billed outside standard flows
subscription.autoRenewbooleanWhether the subscription automatically renews
Pricing
subscription.pricenumberAmount charged per billing period in transaction currency
subscription.priceDisplaystringFormatted display of price
subscription.priceInPayoutCurrencynumberSubscription price in payout currency
subscription.priceInPayoutCurrencyDisplaystringFormatted display of priceInPayoutCurrency
subscription.discountnumberTotal discount applied to the subscription in transaction currency
subscription.discountDisplaystringFormatted display of discount
subscription.discountInPayoutCurrencynumberDiscount amount in payout currency
subscription.discountInPayoutCurrencyDisplaystringFormatted display of discountInPayoutCurrency
subscription.subtotalnumberSubtotal amount before taxes
subscription.subtotalDisplaystringFormatted display of subtotal
subscription.subtotalInPayoutCurrencynumberSubtotal amount in payout currency
subscription.subtotalInPayoutCurrencyDisplaystringFormatted display of subtotalInPayoutCurrency
Rebill and Expiration
subscription.nextintegerTimestamp in milliseconds for the next scheduled billing
subscription.nextValueintegerDuplicate of next for backward compatibility
subscription.nextInSecondsintegerTimestamp in seconds for the next scheduled billing
subscription.nextDisplaystringFormatted display of the next scheduled billing date
subscription.nextDisplayISO8601stringNext scheduled billing date in ISO 8601 format
subscription.endintegerTimestamp in milliseconds when the subscription ends, if scheduled
subscription.endValueintegerDuplicate of end for backward compatibility
subscription.endInSecondsintegerTimestamp in seconds when the subscription ends, if scheduled
subscription.endDisplaystringFormatted display of the subscription end date
subscription.endDisplayISO8601stringSubscription end date in ISO 8601 format
Cancellation and Deactivation
subscription.canceledDateintegerTimestamp in milliseconds when the subscription was canceled, if applicable
subscription.canceledDateValueintegerDuplicate of canceledDate for backward compatibility
subscription.canceledDateInSecondsintegerTimestamp in seconds when the subscription was canceled
subscription.canceledDateDisplaystringFormatted display of canceledDate
subscription.canceledDateDisplayISO8601stringCancellation date in ISO 8601 format
subscription.deactivationDateintegerTimestamp in milliseconds when the subscription deactivates, if applicable
subscription.deactivationDateValueintegerDuplicate of deactivationDate for backward compatibility
subscription.deactivationDateInSecondsintegerTimestamp in seconds when the subscription deactivates
subscription.deactivationDateDisplaystringFormatted display of deactivationDate
subscription.deactivationDateDisplayISO8601stringDeactivation date in ISO 8601 format
Billing Schedule
subscription.sequenceintegerSequence number of the current billing period
subscription.periodsintegerTotal number of billing periods for the subscription
subscription.remainingPeriodsintegerNumber of billing periods remaining
subscription.beginintegerTimestamp in milliseconds when the subscription began
subscription.beginValueintegerDuplicate of begin for backward compatibility
subscription.beginInSecondsintegerTimestamp in seconds when the subscription began
subscription.beginDisplaystringFormatted display of the subscription start date
subscription.beginDisplayISO8601stringStart date in ISO 8601 format
subscription.beginDisplayEmailEnhancementsstringUser-friendly subscription start date for email display
subscription.beginDisplayEmailEnhancementsWithTimestringUser-friendly subscription start date and time for email display
nextDisplayEmailEnhancementsstringUser-friendly next charge date for email display
nextDisplayEmailEnhancementsWithTimestringUser-friendly next charge date and time for email display
subscription.intervalUnitstringUnit of time between billing periods such as month
subscription.intervalUnitAbbreviationstringAbbreviated unit of time between billing periods such as mo
subscription.intervalLengthintegerNumber of intervalUnits between charges
subscription.intervalLengthGtOnebooleanWhether intervalLength is greater than one
Next Charge Details
nextChargeCurrencystringThree-letter ISO currency code for the next scheduled charge
nextChargeDateintegerTimestamp in milliseconds of the next scheduled charge
nextChargeDateValueintegerDuplicate of nextChargeDate for backward compatibility
nextChargeDateInSecondsintegerTimestamp in seconds of the next scheduled charge
nextChargeDateDisplaystringFormatted display of the next scheduled charge date
nextChargeDateDisplayISO8601stringNext scheduled charge date in ISO 8601 format
nextChargePreTaxnumberPre-tax amount for the next charge in transaction currency
nextChargePreTaxDisplaystringFormatted display of nextChargePreTax
nextChargePreTaxInPayoutCurrencynumberPre-tax charge amount in payout currency
nextChargePreTaxInPayoutCurrencyDisplaystringFormatted display of nextChargePreTaxInPayoutCurrency
nextChargeTotalnumberTotal charge amount including tax when applicable
nextChargeTotalDisplaystringFormatted display of nextChargeTotal
nextChargeTotalInPayoutCurrencynumberTotal charge amount in payout currency
nextChargeTotalInPayoutCurrencyDisplaystringFormatted display of nextChargeTotalInPayoutCurrency
Cancellation Settings
cancellationSetting.cancellationstringCancellation trigger such as AFTER_PAYMENT_FAILURE or AFTER_LAST_NOTIFICATION
cancellationSetting.intervalUnitstringTime unit used with intervalLength to determine when cancellation occurs
cancellationSetting.intervalLengthintegerNumber of intervalUnits to wait before cancellation
Fulfillment Object
fulfillmentsobjectContainer for fulfillment data associated with the subscription
fulfillments.instructionsstringHTML content with delivery instructions such as download links or license keys
Instructions Array
instructionsarrayArray of billing instruction objects for each subscription period
instructions.productstringProduct ID for the billing instruction period (only present on regular instructions)
instructions.typestringType of billing instruction such as trial or regular
instructions.trialTypestringTrial type such as PAID, FREE_WITH_PAYMENT, or FREE_WITHOUT_PAYMENT; present only on trial instructions
instructions.isNotTrialbooleanWhether the instruction is not part of a trial period
instructions.periodStartDateintegerTimestamp in milliseconds for the start of the billing period
instructions.periodStartDateValueintegerDuplicate of periodStartDate for backward compatibility
instructions.periodStartDateInSecondsintegerTimestamp in seconds for the start of the billing period
instructions.periodStartDateDisplaystringFormatted display of periodStartDate
instructions.periodStartDateDisplayISO8601stringStart date in ISO 8601 format
instructions.periodEndDateintegerTimestamp in milliseconds for the end of the billing period, if known
instructions.periodEndDateValueintegerDuplicate of periodEndDate for backward compatibility
instructions.periodEndDateInSecondsintegerTimestamp in seconds for the end of the billing period, if known
instructions.periodEndDateDisplaystringFormatted display of periodEndDate
instructions.periodEndDateDisplayISO8601stringEnd date in ISO 8601 format
instructions.discountDurationUnitstringUnit of time over which the discount applies, present only on trial instructions
instructions.discountDurationLengthintegerLength of the discount duration in discountDurationUnits, present only on trial instructions
instructions.discountPercentintegerPercentage discount applied during the period
instructions.discountPercentValueintegerDuplicate of discountPercent for backward compatibility
instructions.discountPercentDisplaystringFormatted display of discountPercent
instructions.unitDiscountnumberPer-unit discount amount in transaction currency
instructions.unitDiscountDisplaystringFormatted display of unitDiscount
instructions.unitDiscountInPayoutCurrencynumberPer-unit discount amount in payout currency
instructions.unitDiscountInPayoutCurrencyDisplaystringFormatted display of unitDiscountInPayoutCurrency
instructions.discountTotalnumberTotal discount applied during the period in transaction currency
instructions.discountTotalDisplaystringFormatted display of discountTotal
instructions.discountTotalInPayoutCurrencynumberTotal discount in payout currency
instructions.discountTotalInPayoutCurrencyDisplaystringFormatted display of discountTotalInPayoutCurrency
instructions.totalnumberTotal amount due for the period in transaction currency
instructions.totalDisplaystringFormatted display of total
instructions.totalInPayoutCurrencynumberTotal amount in payout currency
instructions.totalInPayoutCurrencyDisplaystringFormatted display of totalInPayoutCurrency
instructions.totalWithTaxesnumberTotal charge amount including taxes in transaction currency
instructions.totalWithTaxesDisplaystringFormatted display of totalWithTaxes
instructions.totalWithTaxesInPayoutCurrencynumberTotal including taxes in payout currency
instructions.totalWithTaxesInPayoutCurrencyDisplaystringFormatted display of totalWithTaxesInPayoutCurrency
instructions.pricenumberList price before discounts in transaction currency
instructions.priceDisplaystringFormatted display of price
instructions.priceInPayoutCurrencynumberList price in payout currency
instructions.priceInPayoutCurrencyDisplaystringFormatted display of priceInPayoutCurrency
instructions.priceTotalnumberTotal list price before discounts in transaction currency
instructions.priceTotalDisplaystringFormatted display of priceTotal
instructions.priceTotalInPayoutCurrencynumberTotal list price before discounts in payout currency
instructions.priceTotalInPayoutCurrencyDisplaystringFormatted display of priceTotalInPayoutCurrency
instructions.unitPricenumberUnit price after discounts in transaction currency
instructions.unitPriceDisplaystringFormatted display of unitPrice
instructions.unitPriceInPayoutCurrencynumberUnit price after discounts in payout currency
instructions.unitPriceInPayoutCurrencyDisplaystringFormatted display of unitPriceInPayoutCurrency
subscription.initialOrderIdstringInitial order ID that created the subscription
subscription.initialOrderReferencestringInitial order reference identifier for the subscription