Event payload example and property overview for subscription.group.payment.charge.failed
Webhook response payload example (expansion enabled)
When a subscription.group.payment.charge.failed
event is triggered, the webhook sends the following JSON payload:
{
"cotermGroupId": "aB1c2deFGhIjKL3mn-opqR",
"cotermGroupDisplayName": "Tech Services Monthly Plan",
"cotermGroupPeriodStartDate": 1754044800000,
"cotermGroupPeriodEndDate": 1756646400000,
"cotermGroupPrimarySubscription": "1abc2DE_FGhIjKLm3NoPQR",
"cotermGroupStatus": "DUNNING",
"cotermGroupOrderId": "aBCDE12fGH3iJkL4mNOpq",
"cotermNextChargeDate": 1756646400000,
"cotermNextChargeTotal": 199.95,
"cotermNextChargeTotalDisplay": "$199.95",
"cotermGroupSize": 2,
"currency": "USD",
"total": 40,
"status": "failed",
"timestamp": 1739203714927,
"reason": "EXPIRED_CARD",
"account": {
"id": "abCdE1FGH2Hij3KLMnOpqR",
"account": "abCdE1FGH2Hij3KLMnOpqR",
"contact": {
"first": "Jane",
"last": "Doe",
"email": "[email protected]",
"company": null,
"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"
},
"paymentOverdue": {
"intervalUnit": "week",
"intervalLength": 1,
"total": 4,
"sent": 0
},
"cancellationSetting": {
"cancellation": "AFTER_LAST_NOTIFICATION",
"intervalUnit": "week",
"intervalLength": 1
},
"subscriptions": [
{
"id": "1abc2DE_FGhIjKLm3NoPQR",
"active": true,
"state": "overdue",
"isSubscriptionEligibleForPauseByBuyer": false,
"isPauseScheduled": false,
"changed": 1739203715234,
"live": false,
"currency": "USD",
"account": "abCdE1FGH2Hij3KLMnOpqR",
"product": "cloud-storage",
"sku": "SKU-CS-101",
"display": "Cloud Storage Service",
"quantity": 1,
"adhoc": false,
"autoRenew": true,
"price": 10,
"discount": 0,
"subtotal": 20,
"next": 1744329600000,
"end": null,
"canceledDate": null,
"deactivationDate": null,
"sequence": 1,
"periods": null,
"remainingPeriods": null,
"begin": 1738265837569,
"intervalUnit": "month",
"intervalUnitAbbreviation": "mo",
"intervalLength": 1,
"nextChargeCurrency": "USD",
"nextChargeDate": 1744329600000,
"nextChargePreTax": 18.52,
"nextChargeTotal": 20,
"addons": null,
"discounts": null,
"fulfillments": {},
"instructions": [
{
"product": "cloud-storage",
"type": "regular",
"isNotTrial": true,
"periodStartDate": 1738195200000,
"periodEndDate": null,
"discountIntervalUnit": null,
"discountDurationLength": null,
"discountDuration": null,
"discountDurationUnit": null,
"intervalUnit": "month",
"intervalLength": 1,
"discountPercent": 0,
"discountTotal": 0,
"unitDiscount": 0,
"price": 10,
"priceDisplay": "$10.00",
"priceTotal": 20,
"unitPrice": 10,
"total": 20,
"totalWithTaxes": 20
}
]
},
{
"id": "2abc2DE_FGhIjKLm3NoPQR",
"active": true,
"state": "overdue",
"isSubscriptionEligibleForPauseByBuyer": false,
"isPauseScheduled": false,
"changed": 1739203715234,
"live": false,
"currency": "USD",
"account": "abCdE1FGH2Hij3KLMnOpqR",
"product": "data-analytics",
"sku": "SKU-DA-102",
"display": "Data Analytics Service",
"quantity": 1,
"adhoc": false,
"autoRenew": true,
"price": 10,
"discount": 0,
"subtotal": 10,
"next": 1744329600000,
"end": null,
"canceledDate": null,
"deactivationDate": null,
"sequence": 1,
"periods": null,
"remainingPeriods": null,
"begin": 1738256076037,
"intervalUnit": "month",
"intervalUnitAbbreviation": "mo",
"intervalLength": 1,
"nextChargeCurrency": "USD",
"nextChargeDate": 1744329600000,
"nextChargePreTax": 9.26,
"nextChargeTotal": 10,
"addons": null,
"discounts": null,
"fulfillments": {},
"instructions": [
{
"product": "data-analytics",
"type": "regular",
"isNotTrial": true,
"periodStartDate": 1738195200000,
"periodEndDate": null,
"discountIntervalUnit": null,
"discountDurationLength": null,
"discountDuration": null,
"discountDurationUnit": null,
"intervalUnit": "month",
"intervalLength": 1,
"discountPercent": 0,
"discountTotal": 0,
"unitDiscount": 0,
"price": 10,
"priceDisplay": "$10.00",
"priceTotal": 10,
"unitPrice": 10,
"total": 10,
"totalWithTaxes": 10
}
]
}
]
}
Navigate this webhook
The subscription.group.payment.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.group.payment.charge.failed
webhook payload. Fields are grouped into categories for easier navigation.
Name | Type | Description |
---|---|---|
Co-term Group | ||
cotermGroupId | string | Unique identifier for the co-term group |
cotermGroupDisplayName | string | Display name of the co-term group |
cotermGroupPeriodStartDate | integer | Start of the current co-term period in milliseconds since epoch |
cotermGroupPeriodEndDate | integer | End of the current co-term period in milliseconds since epoch |
cotermGroupPrimarySubscription | string | ID of the primary subscription in the co-term group |
cotermGroupStatus | string | Status of the co-term group (e.g., DUNNING ) |
cotermGroupOrderId | string | Order ID associated with the co-term group |
cotermNextChargeDate | integer | Next charge date for the co-term group in milliseconds since epoch |
cotermNextChargeTotal | number | Total amount for the next group charge |
cotermNextChargeTotalDisplay | string | Formatted display of the next group charge total |
cotermGroupSize | integer | Number of subscriptions in the co-term group |
Event Summary | ||
currency | string | Three-letter ISO currency code |
total | number | Total amount associated with the failed charge |
status | string | Status of the group payment attempt (e.g., failed ) |
timestamp | integer | Event timestamp in milliseconds since epoch |
reason | string | Failure reason code (e.g., EXPIRED_CARD ) |
Account object | ||
account | object | Account object containing customer details |
account.id | string | Unique FastSpring account ID |
account.account | string | Duplicate of the account ID for compatibility |
account.contact.first | string | Account contact first name |
account.contact.last | string | Account contact last name |
account.contact.email | string | Account contact email address |
account.contact.company | string|null | Account contact company name when provided |
account.contact.phone | string | Account contact phone number |
account.contact.subscribed | boolean | Whether the account contact is subscribed |
account.address.address line 1 | string | Primary street address line |
account.address.address line 2 | string | Secondary street address line |
account.address.city | string | City |
account.address.country | string | Two-letter ISO country code |
account.address.postal code | string | Postal or ZIP code |
account.address.region | string | Region code (e.g., US-NY ) |
account.address.region custom | string|null | Custom region text when applicable |
account.address.company | string | Company associated with the address |
account.language | string | Preferred language (two-letter ISO code) |
account.country | string | Two-letter ISO country code |
account.lookup.global | string | Globally unique public ID for lookup |
account.url | string | Customer-facing account management URL |
Payment Overdue | ||
paymentOverdue.intervalUnit | string | Time unit for overdue notifications (e.g., week ) |
paymentOverdue.intervalLength | integer | Number of units before the first overdue notification is sent |
paymentOverdue.total | integer | Total number of overdue notifications to send |
paymentOverdue.sent | integer | Number of overdue notifications already sent |
Cancellation Settings | ||
cancellationSetting.cancellation | string | Cancellation policy timing (e.g., AFTER_LAST_NOTIFICATION ) |
cancellationSetting.intervalUnit | string | Time unit for the cancellation interval |
cancellationSetting.intervalLength | integer | Length of the cancellation interval in units |
Subscriptions array | ||
subscriptions | array | List of subscriptions in the co-term group impacted by the failed payment |
subscriptions.id | string | Subscription ID |
subscriptions.active | boolean | Whether the subscription is active |
subscriptions.state | string | Current subscription state (e.g., overdue ) |
subscriptions.isSubscriptionEligibleForPauseByBuyer | boolean | Whether the buyer can pause the subscription |
subscriptions.isPauseScheduled | boolean | Whether a pause is scheduled |
subscriptions.changed | integer | Last update timestamp in milliseconds |
subscriptions.live | boolean | Whether the subscription is in live mode |
subscriptions.currency | string | Three-letter ISO currency code |
subscriptions.account | string | FastSpring account ID associated with the subscription |
subscriptions.product | string | Product path or identifier |
subscriptions.sku | string | SKU of the subscription product |
subscriptions.display | string | Customer-facing product display name |
subscriptions.quantity | integer | Quantity on the subscription |
subscriptions.adhoc | boolean | Whether the subscription is ad-hoc |
subscriptions.autoRenew | boolean | Whether auto-renew is enabled |
subscriptions.price | number | Unit price for the subscription |
subscriptions.discount | number | Discount amount applied |
subscriptions.subtotal | number | Subtotal amount before tax |
subscriptions.next | integer | Next billing date in milliseconds |
subscriptions.end | null|string | End date, when applicable |
subscriptions.canceledDate | null|string | Date the subscription was canceled, when applicable |
subscriptions.deactivationDate | null|string | Date the subscription was deactivated, when applicable |
subscriptions.sequence | integer | Sequence number for the billing period |
subscriptions.periods | null|string | Total number of billing periods when fixed-term |
subscriptions.remainingPeriods | null|string | Remaining number of billing periods |
subscriptions.begin | integer | Activation timestamp in milliseconds |
subscriptions.intervalUnit | string | Billing interval unit (e.g., month ) |
subscriptions.intervalUnitAbbreviation | string | Abbreviation of the interval unit (e.g., mo ) |
subscriptions.intervalLength | integer | Number of interval units per billing period |
subscriptions.nextChargeCurrency | string | Currency of the next charge |
subscriptions.nextChargeDate | integer | Next charge date in milliseconds |
subscriptions.nextChargePreTax | number | Pre-tax amount for the next charge |
subscriptions.nextChargeTotal | number | Total next charge amount |
subscriptions.addons | null|array | Array of add-on items when present |
subscriptions.discounts | null|array | Array of applied discount objects when present |
subscriptions.fulfillments | object | Fulfillment details (object may be empty) |
Instructions array (within subscriptions) | ||
subscriptions.instructions | array | Pricing and timing instructions for each subscription period |
subscriptions.instructions.product | string | Product path associated with the instruction |
subscriptions.instructions.type | string | Instruction type (e.g., regular ) |
subscriptions.instructions.isNotTrial | boolean | Whether the instruction is not a trial |
subscriptions.instructions.periodStartDate | integer | Start date of the instruction period in milliseconds |
subscriptions.instructions.periodEndDate | null|integer | End date of the instruction period when present |
subscriptions.instructions.discountIntervalUnit | null|string | Unit for discount duration, when applicable |
subscriptions.instructions.discountDurationLength | null|integer | Length of the discount duration, when applicable |
subscriptions.instructions.discountDuration | null|integer | Remaining discount duration, when applicable |
subscriptions.instructions.discountDurationUnit | null|string | Unit for remaining discount duration, when applicable |
subscriptions.instructions.intervalUnit | string | Billing interval unit for the instruction |
subscriptions.instructions.intervalLength | integer | Number of interval units for the instruction period |
subscriptions.instructions.discountPercent | number | Discount percentage |
subscriptions.instructions.discountTotal | number | Total discount amount |
subscriptions.instructions.unitDiscount | number | Per-unit discount |
subscriptions.instructions.price | number | Unit price |
subscriptions.instructions.priceDisplay | string | Formatted unit price |
subscriptions.instructions.priceTotal | number | Total price for the instruction |
subscriptions.instructions.unitPrice | number | Unit price before taxes |
subscriptions.instructions.total | number | Total amount before taxes |
subscriptions.instructions.totalWithTaxes | number | Total amount including taxes |