Event payload example and property overview for subscription.group.prorated
Webhook response payload example (expansion enabled)
When a subscription.group.prorated 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,
"cotermNextChargeTotalDisplay": "$199.95",
"cotermGroupSize": 2,
"currency": "USD",
"changed": 1753526400000,
"changedValue": 1753526400000,
"changedInSeconds": 1753526400,
"changedDisplay": "07/25/25",
"changedDisplayISO8601": "2025-07-25",
"nextChargeDate": 1756646400000,
"nextChargeDateValue": 1756646400000,
"nextChargeDateInSeconds": 1756646400,
"nextChargeDateDisplay": "08/31/25",
"nextChargeDateDisplayISO8601": "2025-08-31",
"total": null,
"status": null,
"timestamp": null,
"paymentOverdue": {
"intervalUnit": "week",
"intervalLength": 1,
"total": 4,
"sent": 0
},
"cancellationSetting": {
"cancellation": "AFTER_LAST_NOTIFICATION",
"intervalUnit": "week",
"intervalLength": 1
},
"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"
},
"order": {
"id": "aBCDE12fGH3iJkL4mNOpq",
"reference": null,
"buyerReference": null,
"ipAddress": null,
"completed": false,
"changed": 1739225061515,
"language": "en",
"live": false,
"currency": "USD",
"payoutCurrency": "USD",
"invoiceUrl": "https://company.onfastspring.com/account/order/null/invoice",
"siteId": "ABC1DE2FGHIJ3",
"acquisitionTransactionType": "GROUP_PRORATION",
"total": 7.14,
"tax": 0.2,
"subtotal": 6.94,
"discount": 42.76,
"discountWithTax": 44.26,
"proratedCreditTotal": 42.76,
"proratedDebitTotal": 49.9,
"proratedTotal": 7.14,
"isScsProratedOrder": true,
"isScsProratedOrderUpgrade": true,
"billDescriptor": "N/A",
"lastFourDigits": null,
"paymentMethodType": null,
"initialOrderId": null,
"initialOrderReference": null,
"previousOrderReference": "ABC123456-7891-01112",
"previousOrderInvoiceUrl": "https://company.onfastspring.com/account/order/ABC123456-7891-01112/invoice/IV5YCOAFL2XVCRFLIPJTIZMTRDWE",
"payment": null,
"notes": [],
"items": [
{
"product": "cloud-storage",
"quantity": 1,
"sku": "SKU-CS-101",
"display": "Cloud Storage Service",
"imageUrl": null,
"shortDisplay": "Cloud Storage Service",
"subtotal": 1.33,
"attributes": {
"pathFrom": "cloud-storage-service",
"pathTo": "cloud-storage-service",
"display": "Subscription: Cloud Storage Service - Changes: ",
"totalChange": 0,
"totalProratedCharge": 10,
"totalProratedCredit": 8.5714,
"totalNetCharge": 1.4286,
"previousCharge": 10,
"upcomingCharge": 10,
"utilizedPrevious": 1.4286,
"lapsedPrevious": 0
},
"discount": 8.57,
"changeQuantity": false,
"subscription": "1abc2DE_FGhIjKLm3NoPQR",
"fulfillments": null,
"withholdings": {
"amount": null,
"percentage": null,
"taxWithholdings": false
},
"proratedItemChangeAmount": 0,
"proratedItemProratedCharge": 10,
"proratedItemCreditAmount": 8.57,
"proratedItemTaxAmount": 0.1,
"proratedItemTotal": 1.43
},
{
"product": "data-analytics-service",
"quantity": 1,
"sku": "SKU-DA-102",
"display": "Data Analytics Service",
"sku": null,
"imageUrl": null,
"shortDisplay": "Data Analytics Service",
"subtotal": 1.33,
"attributes": {
"pathFrom": "data-analytics-service",
"pathTo": "data-analytics-service",
"display": "Subscription: Data Analytics Service - Changes: ",
"totalChange": 0,
"totalProratedCharge": 10,
"totalProratedCredit": 8.5714,
"totalNetCharge": 1.4286,
"previousCharge": 10,
"upcomingCharge": 10,
"utilizedPrevious": 1.4286,
"lapsedPrevious": 0
},
"discount": 8.57,
"changeQuantity": false,
"subscription": "2abc2DE_FGhIjKLm3NoPQR",
"fulfillments": null,
"withholdings": {
"amount": null,
"percentage": null,
"taxWithholdings": false
},
"proratedItemChangeAmount": 0,
"proratedItemProratedCharge": 10,
"proratedItemCreditAmount": 8.57,
"proratedItemTaxAmount": 0.1,
"proratedItemTotal": 1.43
}
]
},
"subscriptions": [
{
"id": "1abc2DE_FGhIjKLm3NoPQR",
"active": true,
"state": "active",
"isSubscriptionEligibleForPauseByBuyer": false,
"isPauseScheduled": false,
"changed": 1739225061876,
"live": false,
"currency": "USD",
"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"
},
"product": "cloud-storage",
"sku": "SKU-CS-101",
"display": "Cloud Storage Service",
"quantity": 1,
"adhoc": false,
"autoRenew": true,
"price": 10,
"discount": 0,
"subtotal": 24.95,
"next": 1739836800000,
"end": null,
"canceledDate": null,
"deactivationDate": null,
"sequence": 1,
"periods": null,
"remainingPeriods": null,
"begin": 1739224859171,
"intervalUnit": "week",
"intervalUnitAbbreviation": "wk",
"intervalLength": 1,
"intervalLengthGtOne": false,
"nextChargeCurrency": "USD",
"nextChargeDate": 1739836800000,
"nextChargePreTax": 23.1,
"nextChargeTotal": 24.95,
"taxExemptionData": null,
"addons": [
{
"product": "data-backup",
"sku": "SKU-DB-201",
"display": "Data Backup",
"quantity": 1,
"price": 9.99,
"discount": 0,
"subtotal": 9.99,
"subtotalDisplay": "$9.99",
"discounts": []
}
],
"discounts": null,
"fulfillments": {},
"instructions": [
{
"product": "cloud-storage",
"type": "regular",
"periodStartDate": 1754044800000,
"periodEndDate": null,
"intervalUnit": "month",
"intervalLength": 1,
"discountDurationUnit": null,
"discountDurationLength": null,
"discountPercent": 0,
"discountTotal": 0,
"unitDiscount": 0,
"price": 49.99,
"priceTotal": 49.99,
"unitPrice": 49.99,
"total": 49.99,
"totalWithTaxes": 49.99,
"totalWithTaxesDisplay": "$49.99",
"isNotTrial": true
}
]
},
{
"id": "2abc2DE_FGhIjKLm3NoPQR",
"active": true,
"state": "active",
"isSubscriptionEligibleForPauseByBuyer": false,
"isPauseScheduled": false,
"changed": 1739225061876,
"live": false,
"currency": "USD",
"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"
},
"product": "data-analytics",
"sku": "SKU-DA-102",
"display": "Data Analytics Service",
"quantity": 1,
"adhoc": false,
"autoRenew": true,
"price": 10,
"discount": 0,
"subtotal": 24.95,
"next": 1739836800000,
"end": null,
"canceledDate": null,
"deactivationDate": null,
"sequence": 1,
"periods": null,
"remainingPeriods": null,
"begin": 1739224823223,
"intervalUnit": "week",
"intervalUnitAbbreviation": "wk",
"intervalLength": 1,
"intervalLengthGtOne": false,
"nextChargeCurrency": "USD",
"nextChargeDate": 1739836800000,
"nextChargePreTax": 23.1,
"nextChargeTotal": 24.95,
"taxExemptionData": null,
"addons": [
{
"product": "extended-support",
"sku": "SKU-ES-202",
"display": "Extended Support",
"quantity": 1,
"price": 14.99,
"discount": 0,
"subtotal": 14.99,
"subtotalDisplay": "$14.99",
"discounts": []
}
],
"discounts": null,
"fulfillments": {},
"instructions": [
{
"product": "data-analytics",
"type": "regular",
"periodStartDate": 1754044800000,
"periodEndDate": null,
"intervalUnit": "month",
"intervalLength": 1,
"discountDurationUnit": null,
"discountDurationLength": null,
"discountPercent": 0,
"discountTotal": 0,
"unitDiscount": 0,
"price": 79.99,
"priceTotal": 79.99,
"unitPrice": 79.99,
"total": 79.99,
"totalWithTaxes": 79.99,
"totalWithTaxesDisplay": "$79.99",
"isNotTrial": true
}
]
}
]
}Navigate this webhook
The subscription.group.prorated webhook payload includes dozens of fields. Use the cards below to jump to a specific section of the property reference.
Co-term Group
Changed Timestamps
Next Charge
Event Summary
Payment Overdue
Cancellation Settings
Account Object
Order Object
Order Items
Subscriptions Array
Add-ons
Instructions
Payload properties
All fields below are included in the subscription.group.prorated 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 |
| cotermNextChargeTotalDisplay | string | Formatted next group charge total |
| cotermGroupSize | integer | Number of subscriptions in the co-term group |
| currency | string | Three-letter ISO currency code |
| Changed Timestamps | ||
| changed | integer | Last update timestamp in milliseconds |
| changedValue | integer | Duplicate of changed (milliseconds) |
| changedInSeconds | integer | Last update timestamp in seconds |
| changedDisplay | string | User-friendly display date of the last update |
| changedDisplayISO8601 | string | ISO 8601 date of the last update |
| Next Charge | ||
| nextChargeDate | integer | Next charge date in milliseconds |
| nextChargeDateValue | integer | Duplicate of nextChargeDate (milliseconds) |
| nextChargeDateInSeconds | integer | Next charge date in seconds |
| nextChargeDateDisplay | string | User-friendly next charge date |
| nextChargeDateDisplayISO8601 | string | ISO 8601 formatted next charge date |
| Event Summary | ||
| total | null|number | Total amount associated with the event when present |
| status | null|string | Status of the event when present |
| timestamp | null|integer | Event timestamp in milliseconds when present |
| 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 |
| 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 |
| Order object | ||
| order | object | Order object containing proration details |
| order.id | string | Unique order identifier |
| order.reference | null|string | Customer-facing order reference when present |
| order.buyerReference | null|string | Buyer-provided reference (e.g., PO number) when present |
| order.ipAddress | null|string | IP address captured for the order when available |
| order.completed | boolean | Whether the order has completed processing |
| 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.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 proration acquisition (e.g., GROUP_PRORATION) |
| order.total | number | Total order amount |
| order.tax | number | Tax amount applied to the proration |
| order.subtotal | number | Subtotal before tax and discounts |
| order.discount | number | Total discount applied |
| order.discountWithTax | number | Total discount including tax |
| order.proratedCreditTotal | number | Total credited amount due to proration |
| order.proratedDebitTotal | number | Total charged amount due to proration |
| order.proratedTotal | number | Net proration amount (debits minus credits) |
| order.isScsProratedOrder | boolean | Whether this order is a proration |
| order.isScsProratedOrderUpgrade | boolean | Whether the proration reflects an upgrade |
| order.billDescriptor | string | Billing descriptor that may appear on the buyer’s statement |
| order.lastFourDigits | null|string | Last four digits of the payment card when applicable |
| order.paymentMethodType | null|string | Payment method type when available |
| order.initialOrderId | null|string | Initial order ID when applicable |
| order.initialOrderReference | null|string | Initial order reference when applicable |
| order.previousOrderReference | string | Reference of the previous order related to this proration |
| order.previousOrderInvoiceUrl | string | Invoice URL of the previous order |
| order.payment | null|object | Payment object when available; null in this example |
| order.notes | array | Array of order notes (often empty) |
| Order items (within order) | ||
| order.items | array | List of proration line items |
| order.items.product | string | Product identifier or path |
| order.items.quantity | integer | Quantity for the item |
| order.items.sku | null|string | SKU when provided |
| order.items.display | string | Customer-facing product name |
| order.items.imageUrl | null|string | Image URL when available |
| order.items.shortDisplay | string | Short display name |
| order.items.subtotal | number | Item subtotal before tax |
| order.items.attributes | object | Proration attribute deltas for this item |
| order.items.attributes.pathFrom | string | Previous product path |
| order.items.attributes.pathTo | string | New product path |
| order.items.attributes.display | string | Human-readable summary of the change |
| order.items.attributes.totalChange | number | Net change applied to the item |
| order.items.attributes.totalProratedCharge | number | Total prorated charge for the item |
| order.items.attributes.totalProratedCredit | number | Total prorated credit for the item |
| order.items.attributes.totalNetCharge | number | Net charge (charge minus credit) |
| order.items.attributes.previousCharge | number | Previous full-period charge |
| order.items.attributes.upcomingCharge | number | Upcoming full-period charge |
| order.items.attributes.utilizedPrevious | number | Value of the already-used previous period |
| order.items.attributes.lapsedPrevious | number | Value of the lapsed previous period |
| order.items.discount | number | Discount applied to the item |
| order.items.changeQuantity | boolean | Whether quantity changed as part of the proration |
| order.items.subscription | string | Subscription ID associated with the item |
| order.items.fulfillments | null|object | Fulfillment details when present |
| order.items.withholdings.amount | null|number | Amount withheld for this item when applicable |
| order.items.withholdings.percentage | null|number | Withholding percentage when applicable |
| order.items.withholdings.taxWithholdings | boolean | Whether tax withholdings apply |
| order.items.proratedItemChangeAmount | number | Change amount due to proration |
| order.items.proratedItemProratedCharge | number | Prorated charge component |
| order.items.proratedItemCreditAmount | number | Prorated credit component |
| order.items.proratedItemTaxAmount | number | Tax applied to the proration |
| order.items.proratedItemTotal | number | Total proration amount for the item |
| Subscriptions array | ||
| subscriptions | array | List of subscriptions in the co-term group (post-proration) |
| 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.live | boolean | Whether the subscription is in live mode |
| subscriptions.currency | string | Three-letter ISO currency code |
| 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 | Cancellation date, when applicable |
| subscriptions.deactivationDate | null|string | Deactivation date, 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., week or month) |
| subscriptions.intervalUnitAbbreviation | string | Abbreviation of the interval unit (e.g., wk or mo) |
| subscriptions.intervalLength | integer | Number of interval units per billing period |
| subscriptions.intervalLengthGtOne | boolean | Whether the interval length is greater than one |
| 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.taxExemptionData | null|string | Tax exemption details when applicable |
| subscriptions.addons | array|null | 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) |
| Add-ons | ||
| subscriptions.addons.product | string | Product path for the add-on |
| subscriptions.addons.sku | string | SKU for the add-on |
| subscriptions.addons.display | string | Add-on display name |
| subscriptions.addons.quantity | integer | Add-on quantity |
| subscriptions.addons.price | number | Unit price for the add-on |
| subscriptions.addons.discount | number | Discount amount applied to the add-on |
| subscriptions.addons.subtotal | number | Subtotal amount for the add-on |
| subscriptions.addons.subtotalDisplay | string | Formatted add-on subtotal |
| subscriptions.addons.discounts | array | Applied discount codes or objects for the add-on |
| 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 | null|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 | null|string | Unit for remaining discount duration, when applicable |
| subscriptions.instructions.discountDurationLength | null|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 |