Co-term Group Created

Event payload example and property overview for subscription.group.created

Webhook response payload example (expansion enabled)

When a subscription.group.created event is triggered, the webhook sends the following JSON payload:

{
  "cotermGroupId": "aB1c2deFGhIjKL3mn-opqR",
  "cotermGroupDisplayName": "Tech Services Monthly Plan",
  "cotermGroupPeriodStartDate": 1754044800000,
  "cotermGroupPeriodEndDate": 1756646400000,
  "cotermGroupPrimarySubscription": "sub-001",
  "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",
  "paymentOverdue": {
    "intervalUnit": "week",
    "intervalLength": 1,
    "total": 2,
    "sent": 0
  },
  "cancellationSetting": {
    "cancellation": "AFTER_LAST_NOTIFICATION",
    "intervalUnit": "week",
    "intervalLength": 1
  },
  "account": {
    "id": "abCdE1FGH2Hij3KLMnOpqR",
    "account": "abCdE1FGH2Hij3KLMnOpqR",
    "contact": {
      "first": "Jane",
      "last": "Doe",
      "email": "jane.doe@company.com",
      "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"
  },
  "subscriptions": [
    {
      "id": "1abc2DE_FGhIjKLm3NoPQR",
      "active": true,
      "state": "active",
      "isSubscriptionEligibleForPauseByBuyer": false,
      "isPauseScheduled": false,
      "live": false,
      "currency": "USD",
      "product": "cloud-storage",
      "sku": "SKU-CS-101",
      "display": "Cloud Storage Service",
      "quantity": 1,
      "adhoc": false,
      "autoRenew": true,
      "price": 49.99,
      "discount": 0,
      "subtotal": 49.99,
      "end": null,
      "canceledDate": null,
      "deactivationDate": null,
      "sequence": 1,
      "periods": null,
      "remainingPeriods": null,
      "begin": 1754044800000,
      "intervalUnit": "month",
      "intervalUnitAbbreviation": "mo",
      "intervalLength": 1,
      "intervalLengthGtOne": false,
      "nextChargeCurrency": "USD",
      "nextChargeDate": 1756646400000,
      "nextChargePreTax": 44.99,
      "nextChargeTotal": 49.99,
      "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,
      "live": false,
      "currency": "USD",
      "product": "data-analytics",
      "sku": "SKU-DA-102",
      "display": "Data Analytics Service",
      "quantity": 1,
      "adhoc": false,
      "autoRenew": true,
      "price": 79.99,
      "discount": 0,
      "subtotal": 79.99,
      "end": null,
      "canceledDate": null,
      "deactivationDate": null,
      "sequence": 1,
      "periods": null,
      "remainingPeriods": null,
      "begin": 1754044800000,
      "intervalUnit": "month",
      "intervalUnitAbbreviation": "mo",
      "intervalLength": 1,
      "intervalLengthGtOne": false,
      "nextChargeCurrency": "USD",
      "nextChargeDate": 1756646400000,
      "nextChargePreTax": 74.99,
      "nextChargeTotal": 79.99,
      "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
        }
      ]
    }
  ]
}

Webhook response payload properties

The webhook response properties table outlines each property in the subscription.group.created event JSON payload, specifying their name, data type, and description.

Name Type Description
Co-term Group Information
cotermGroupId string Unique identifier for the co-term group.
cotermGroupDisplayName string Display name of the co-term group. This property is optional when creating a co-term group.
cotermGroupPeriodStartDate integer Start date of the co-term group period in milliseconds.
cotermGroupPeriodEndDate integer End date of the co-term group period in milliseconds.
cotermGroupPrimarySubscription string ID of the primary subscription in the co-term group. This property represents the most recently purchased subscription within the 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. This value is computed by adding one day to the length of the current term (see the monthly and yearly subscription examples below).

Monthly Subscription: If the co-term is initiated on February 11, the next charge date becomes March 12 (one full month plus one day).

Yearly Subscription: If initiated on February 11, 2025, the next charge date becomes February 12, 2026 (one full year plus one day).
cotermNextChargeTotal number Total amount for the next charge, displayed in the nextChargeCurrency.
cotermNextChargeTotalDisplay string Formatted total amount for the next charge (e.g., "$120.05"), displayed in the nextChargeCurrency.
cotermGroupSize string Number of subscriptions in the co-term group.
currency string 3-character ISO code of the currency used in the co-term group (e.g., "USD").
Changed Information
changed integer Timestamp of the last change in milliseconds.
changedValue integer Timestamp value of the last change in milliseconds.
changedInSeconds integer Last change timestamp in seconds.
changedDisplay string Formatted display date of the last change (e.g., "9/2/25") based on the associated order's language.
changedDisplayISO8601 string ISO 8601 formatted date of the last change (e.g., "2025-09-02").
Next Charge Information
nextChargeDate integer Next charge date in milliseconds.
nextChargeDateValue integer Next charge date timestamp value in milliseconds.
nextChargeDateInSeconds integer Next charge date timestamp in seconds.
nextChargeDateDisplay string Formatted display of the next charge date (e.g., "9/10/25").
nextChargeDateDisplayISO8601 string ISO 8601 formatted next charge date (e.g., "2025-09-10").
Payment Overdue Object
paymentOverdue.intervalUnit string Unit of time indicating when FastSpring sends the customer an overdue payment notification (e.g., "week").
paymentOverdue.intervalLength integer Number of intervalUnits following the failed rebill that FastSpring will send the first payment overdue notification.
paymentOverdue.total integer Total number of payment overdue notifications to be sent, including the first one.
paymentOverdue.sent integer Number of payment overdue notifications that have been sent to date.
Cancellation Setting Object
cancellationSetting.cancellation string Cancellation policy for the co-term group. Determines the timing of automatic cancellation (e.g., "AFTER_LAST_NOTIFICATION" or "AFTER_PAYMENT_FAILURE").
cancellationSetting.intervalUnit string Unit of time for the cancellation interval (e.g., "week").
cancellationSetting.intervalLength integer Number of intervalUnits following the cancellation event that the co-term group will be canceled.
Account Object
account.id string Unique identifier for the account.
account.contact.first string First name of the account contact.
account.contact.last string Last name of the account contact.
account.contact.email string Email address of the account contact.
account.contact.company string Company name associated with the account contact (if applicable).
account.contact.phone string Phone number of the account contact (if provided).
account.contact.subscribed boolean Indicates if the account contact is subscribed to updates.
account.address.address line 1 string First line of the account address.
account.address.address line 2 string Second line of the account address (if applicable).
account.address.city string City of the account address.
account.address.country string Country of the account address (ISO 3166-1 alpha-2 code).
account.address.postal code string Postal code of the account address.
account.address.region string Region of the account address (e.g., state or province).
account.address.region custom string Custom region information for the account address (if provided).
account.address.company string Company name associated with the account address (if applicable).
account.language string Preferred language of the account (e.g., "en"). Two-letter language code (ISO 639).
account.country string Country associated with the account. Two-letter country code (ISO 3166-1 alpha-2).
account.lookup.global string Global lookup identifier for the account.
account.url string FastSpring account URL for accessing the account's details.
Subscriptions Array
subscriptions.id string Unique identifier for the subscription.
subscriptions.active boolean Indicates if the subscription is active.
subscriptions.state string Current state of the subscription (e.g., trial, active, canceled).
subscriptions.isSubscriptionEligibleForPauseByBuyer boolean Indicates if the subscription can be paused by the buyer.
subscriptions.isPauseScheduled boolean Indicates if a pause is scheduled for the subscription.
subscriptions.lastRebillOrderAcquisition string Identifier for the last rebill acquisition order.
subscriptions.live boolean Indicates if the subscription is live or in test mode.
subscriptions.currency string 3-character ISO code of the currency used for billing (e.g., "USD")
subscriptions.product string Product associated with the subscription.
subscriptions.sku string Stock Keeping Unit (SKU) for the subscription (if applicable).
subscriptions.display string Display name of the subscription product.
subscriptions.quantity integer Quantity of the subscription product.
subscriptions.adhoc boolean Indicates if the subscription is ad-hoc.
subscriptions.autoRenew boolean Indicates if the subscription is set to auto-renew.
subscriptions.price number Price of the subscription.
subscriptions.discount number Discount amount applied to the subscription.
subscriptions.subtotal number Subtotal amount of the subscription.
subscriptions.end string End date of the subscription (if applicable).
subscriptions.canceledDate string Date when the subscription was canceled (if applicable).
subscriptions.deactivationDate string Date when the subscription was deactivated (if applicable).
subscriptions.sequence integer Sequence number of the current billing period.
subscriptions.periods string Total number of billing periods. This applies to subscriptions with a fixed number of rebills.
subscriptions.remainingPeriods string Number of remaining rebills. This is based on the number of expected periods.
subscriptions.begin integer Date that the subscription was activated, in milliseconds.
subscriptions.intervalUnit string Time unit used to determine the subscription's rebill frequency (e.g., adhoc, day, week, month, year).
subscriptions.intervalUnitAbbreviation string Abbreviation for the interval unit (e.g., "wk").
subscriptions.intervalLength integer Number of intervalUnits per billing period for the subscription.
subscriptions.intervalLengthGtOne boolean Indicates if the interval length is greater than one.
subscriptions.nextChargeCurrency string 3-character ISO currency code for the next charge (e.g., "USD").
subscriptions.nextChargeDate integer Next charge date for the subscription in milliseconds.
subscriptions.nextChargePreTax integer Pre-tax amount for the next charge.
subscriptions.nextChargeTotal integer Total amount for the next charge.
subscriptions.taxExemptionData string Details about tax exemptions (if applicable).
subscriptions.currency string Currency of the subscription (e.g., "USD").
subscriptions.totalWithTaxes integer Total subscription amount including taxes.
subscriptions.totalWithTaxesDisplay string Formatted total subscription amount including taxes (e.g., "$0.04").
Add-ons Array (within Subscriptions array)
subscriptions.addons.product string Product (product-path) associated with the add-on.
subscriptions.addons.sku string SKU for the add-on (if applicable).
subscriptions.addons.display string Display name for the add-on.
subscriptions.addons.quantity integer Quantity of the add-on.
subscriptions.addons.price integer Price per unit of the add-on.
subscriptions.addons.discount integer Coupon amount applied to the add-on.
subscriptions.addons.subtotal integer Subtotal amount for the add-on.
subscriptions.addons.subtotalDisplay integer Add-on subtotal, formatted for display.
subscriptions.addons.discounts array Coupon code(s) applied to the add-on.
Fulfillments Object (within Subscriptions array)
subscriptions.fulfillments object Fulfillment details for the subscription.
Instructions Array (within Subscriptions array)
subscriptions.instructions.product string Product (product-path) associated with the instruction.
subscriptions.instructions.type string Type of instruction.

A subscription may have more than one instructions object when applicable:

  • trial: only exists if there's a free trial
  • discounted: only exists if there's a product-level discount
  • regular: always present
subscriptions.instructions.periodStartDate integer Start date of the period in milliseconds.
subscriptions.instructions.periodEndDate string End date of the period (if applicable).
subscriptions.instructions.intervalUnit string Time unit for the interval (e.g., "week").
subscriptions.instructions.intervalLength integer Length of the interval.
subscriptions.instructions.discountDurationUnit string Unit of time used to determine the remaining discount duration, excluding the current discount period.

Only appears when type is "discounted" or "trial".

subscriptions.instructions.discountDurationLength integer Number of discount duration units remaining, excluding the current discount period.

Only appears when type is "discounted" or "trial".

subscriptions.instructions.discountPercent integer Discount percentage applied to the instruction.
subscriptions.instructions.discountTotal integer Total discount applied to the instruction.
subscriptions.instructions.unitDiscount integer Discount per unit for the instruction.
subscriptions.instructions.price integer Price per unit for the instruction.
subscriptions.instructions.priceTotal integer Total price for the instruction.
subscriptions.instructions.unitPrice integer Unit price for the instruction before taxes.
subscriptions.instructions.total integer Total amount for the instruction before taxes.
subscriptions.instructions.totalWithTaxes integer Total amount for the instruction including taxes.
subscriptions.instructions.totalWithTaxesDisplay string Formatted total amount for the instruction including taxes (e.g., "$0.04").
subscriptions.instructions.isNotTrial boolean Indicates if the instruction is not a trial.