Event payload example and property overview for subscription.group.charge.completed
Webhook response payload example (expansion enabled)
When a subscription.group.charge.completed
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": "EXECUTED",
"cotermGroupOrderId": "aBCDE12fGH3iJkL4mNOpq",
"cotermGroupOrderReference": "ABC123456-7891-01112",
"cotermNextChargeDate": 1756646400000,
"cotermNextChargeTotal": 199.95,
"cotermGroupSize": 2,
"currency": "USD",
"total": 20,
"status": "successful",
"timestamp": 1739223188721,
"account": {
"id": "abCdE1FGH2Hij3KLMnOpqR",
"account": "abCdE1FGH2Hij3KLMnOpqR",
"contact": {
"first": "Jane",
"last": "Doe",
"email": "[email protected]",
"company": "Company Inc.",
"phone": "8001234567",
"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
},
"order": {
"order": "aBCDE12fGH3iJkL4mNOpq",
"id": "aBCDE12fGH3iJkL4mNOpq",
"reference": "ABC123456-7891-01112",
"buyerReference": null,
"ipAddress": null,
"changed": 1739223188831,
"language": "en",
"live": false,
"currency": "USD",
"payoutCurrency": "USD",
"quote": null,
"invoiceUrl": "https://company.onfastspring.com/account/order/null/invoice",
"siteId": "ABC1DE2FGHIJ3",
"acquisitionTransactionType": "GROUP_REGULAR_PERIOD",
"total": 20,
"tax": 1.48,
"subtotal": 18.52,
"discount": 0,
"discountWithTax": 0,
"notes": [],
"items": [
{
"product": "cloud-storage",
"quantity": 1,
"display": "Cloud Storage Service",
"sku": "SKU-CS-101",
"imageUrl": null,
"shortDisplay": "Cloud Storage Service",
"subtotal": 9.26,
"discount": 0,
"isSubscription": true,
"isAddon": null,
"changeQuantity": false,
"subscription": "1abc2DE_FGhIjKLm3NoPQR",
"fulfillments": {},
"withholdings": {
"taxWithholdings": false
}
},
{
"product": "data-analytics-service",
"quantity": 1,
"display": "Data Analytics Service",
"sku": null,
"imageUrl": null,
"shortDisplay": "Data Analytics Service",
"subtotal": 9.26,
"discount": 0,
"isSubscription": true,
"isAddon": null,
"changeQuantity": false,
"subscription": "2abc2DE_FGhIjKLm3NoPQR",
"fulfillments": {},
"withholdings": {
"taxWithholdings": false
}
}
]
},
"quote": null,
"subscriptions": [
{
"id": "1abc2DE_FGhIjKLm3NoPQR",
"active": true,
"state": "active",
"isSubscriptionEligibleForPauseByBuyer": true,
"isPauseScheduled": false,
"changed": 1739223188786,
"lastRebillOrderAcquisition": null,
"live": false,
"product": "cloud-storage",
"sku": null,
"display": "Cloud Storage Service",
"quantity": 1,
"currency": "USD",
"adhoc": false,
"autoRenew": true,
"price": 10,
"discount": 0,
"subtotal": 10,
"end": null,
"canceledDate": null,
"deactivationDate": null,
"sequence": 1,
"periods": null,
"remainingPeriods": null,
"begin": 1739222241061,
"intervalUnit": "week",
"intervalUnitAbbreviation": "wk",
"intervalLength": 1,
"nextChargeCurrency": "USD",
"nextChargeDate": 1740441600000,
"nextChargePreTax": 9.26,
"nextChargeTotal": 10,
"addons": null,
"fulfillments": {},
"instructions": [
{
"product": "cloud-storage",
"type": "regular",
"periodStartDate": 1739145600000,
"periodEndDate": null,
"intervalUnit": "week",
"intervalLength": 1,
"discountDurationUnit": null,
"discountDurationLength": null,
"discountPercent": 0,
"discountTotal": 0,
"unitDiscount": 0,
"price": 10,
"priceTotal": 10,
"unitPrice": 10,
"total": 10,
"totalWithTaxes": 10,
"totalWithTaxesDisplay": "$10.00",
"isNotTrial": true
}
]
},
{
"id": "2abc2DE_FGhIjKLm3NoPQR",
"active": true,
"state": "active",
"isSubscriptionEligibleForPauseByBuyer": true,
"isPauseScheduled": false,
"changed": 1739223188818,
"lastRebillOrderAcquisition": null,
"live": false,
"product": "data-analytics-service",
"sku": null,
"display": "Data Analytics Service",
"quantity": 1,
"currency": "USD",
"adhoc": false,
"autoRenew": true,
"price": 10,
"discount": 0,
"subtotal": 10,
"end": null,
"canceledDate": null,
"deactivationDate": null,
"sequence": 1,
"periods": null,
"remainingPeriods": null,
"begin": 1739222135539,
"intervalUnit": "week",
"intervalUnitAbbreviation": "wk",
"intervalLength": 1,
"nextChargeCurrency": "USD",
"nextChargeDate": 1740441600000,
"nextChargePreTax": 9.26,
"nextChargeTotal": 10,
"addons": null,
"fulfillments": {},
"instructions": [
{
"product": "data-analytics-service",
"type": "regular",
"periodStartDate": 1739145600000,
"periodEndDate": null,
"intervalUnit": "week",
"intervalLength": 1,
"discountDurationUnit": null,
"discountDurationLength": null,
"discountPercent": 0,
"discountTotal": 0,
"unitDiscount": 0,
"price": 10,
"priceTotal": 10,
"unitPrice": 10,
"total": 10,
"totalWithTaxes": 10,
"totalWithTaxesDisplay": "$10.00",
"isNotTrial": true
}
]
}
]
}
Navigate this webhook
The subscription.group.charge.completed
webhook payload includes dozens of fields. Use the cards below to jump to a specific section of the property reference.
Co-term Group
Event Summary
Account Object
Payment Overdue
Cancellation Settings
Order Object
Order Items
Subscriptions Array
Instructions
Payload properties
All fields below are included in the subscription.group.charge.completed
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., EXECUTED ) |
cotermGroupOrderId | string | Order ID associated with the co-term group |
cotermGroupOrderReference | string | Order reference for 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 |
cotermGroupSize | integer | Number of subscriptions in the co-term group |
currency | string | Three-letter ISO currency code |
Event Summary | ||
total | number | Total amount associated with the completed group charge |
status | string | Event status (e.g., successful ) |
timestamp | integer | Event timestamp in milliseconds since epoch |
quote | null | Associated quote ID when present; null in this example |
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 | Account contact company name |
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 |
Order object | ||
order | object | Order object for the completed group charge |
order.order | string | Unique identifier for the order |
order.id | string | Duplicate of order.order |
order.reference | string | Customer-facing order reference |
order.buyerReference | string | Buyer-provided reference (e.g., PO number) when present |
order.ipAddress | string | IP address captured for the order when available |
order.changed | integer | Last order update timestamp in milliseconds |
order.language | string | Two-letter ISO language code |
order.live | boolean | Whether the order was processed in live mode |
order.currency | string | Transaction currency |
order.payoutCurrency | string | Payout currency |
order.quote | string | Associated quote ID when present |
order.invoiceUrl | string | URL to view or download the invoice |
order.siteId | string | Identifier of the site where the order occurred |
order.acquisitionTransactionType | string | Type of acquisition (e.g., GROUP_REGULAR_PERIOD ) |
order.total | number | Total order amount |
order.tax | number | Tax amount applied to the order |
order.subtotal | number | Subtotal before tax and discounts |
order.discount | number | Total discount applied |
order.discountWithTax | number | Total discount including tax |
order.notes | array | Array of order notes (often empty) |
Order items (within order) | ||
order.items | array | List of order line items |
order.items.product | string | Product identifier or path |
order.items.quantity | integer | Quantity for the item |
order.items.display | string | Customer-facing product name |
order.items.sku | string | SKU when provided |
order.items.imageUrl | string | Image URL when available |
order.items.shortDisplay | string | Short display name |
order.items.subtotal | number | Item subtotal before tax |
order.items.discount | number | Discount applied to the item |
order.items.isSubscription | boolean | Whether the item is a subscription |
order.items.isAddon | boolean | Whether the item is an add-on |
order.items.changeQuantity | boolean | Whether quantity changed |
order.items.subscription | string | Subscription ID associated with the item |
order.items.fulfillments | object | Fulfillment details (object may be empty) |
order.items.withholdings.taxWithholdings | boolean | Whether tax withholdings apply |
Subscriptions array | ||
subscriptions | array | List of subscriptions in the co-term group |
subscriptions.id | string | Subscription ID |
subscriptions.active | boolean | Whether the subscription is active |
subscriptions.state | string | Current subscription state (e.g., active ) |
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.lastRebillOrderAcquisition | null | Timestamp of last rebill acquisition when present; null in this example |
subscriptions.live | boolean | Whether the subscription is in live mode |
subscriptions.product | string | Product path or identifier |
subscriptions.sku | string | SKU when provided |
subscriptions.display | string | Customer-facing product display name |
subscriptions.quantity | integer | Quantity on the subscription |
subscriptions.currency | string | Three-letter ISO currency code |
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.end | string | End date, when applicable |
subscriptions.canceledDate | string | Cancellation date, when applicable |
subscriptions.deactivationDate | string | Deactivation date, when applicable |
subscriptions.sequence | integer | Sequence number for the billing period |
subscriptions.periods | string | Total number of billing periods when fixed-term |
subscriptions.remainingPeriods | string | Remaining number of billing periods |
subscriptions.begin | integer | Activation timestamp in milliseconds |
subscriptions.intervalUnit | string | Billing interval unit (e.g., week ) |
subscriptions.intervalUnitAbbreviation | string | Abbreviation of the interval unit (e.g., wk ) |
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 | array | Array of add-on items when present |
subscriptions.fulfillments | object | Fulfillment details (object may be empty) |
Instructions | ||
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.periodStartDate | integer | Start date of the instruction period in milliseconds |
subscriptions.instructions.periodEndDate | integer | End date of the instruction period when present |
subscriptions.instructions.intervalUnit | string | Billing interval unit for the instruction |
subscriptions.instructions.intervalLength | integer | Number of interval units for the instruction period |
subscriptions.instructions.discountDurationUnit | string | Unit for remaining discount duration, when applicable |
subscriptions.instructions.discountDurationLength | integer | Length of remaining discount duration, when applicable |
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.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 |
subscriptions.instructions.totalWithTaxesDisplay | string | Formatted total including taxes |
subscriptions.instructions.isNotTrial | boolean | Whether the instruction is not a trial |