Webhooks Overview

Use FastSpring Webhooks with your backend or third-party systems for advanced integration and tracking events.

Use FastSpring webhooks to receive real-time HTTP callbacks whenever key events occur in your store — orders, subscriptions, accounts, and more. Post this data to your own endpoints to sync records, trigger workflows, or notify external systems.

⚠️

Webhooks may be delayed during routine batch processes, such as subscription rebills and deactivations. The webhook will enter a queue and fire in the order it was received.

Design each endpoint to handle duplicate posts. Automatic retries carry the same event ID; manual retries generate new IDs. Build your handler to deduplicate by event ID.

Webhook types

Configure webhooks

Complete the following steps to connect your endpoint to FastSpring events.

Step 1 — Create a webhook container
  1. In the FastSpring app, navigate to Developer Tools > Webhooks > Configuration.
  2. An empty webhook container is created automatically. You can use it for both live and test orders.
  3. Click Add Webhook to create additional webhook configurations.
Step 2 — Configure the webhook
  1. Navigate to Developer Tools > Webhooks > Configuration. In the top-right corner, click Add Webhook.
  2. In the Title field, enter an internal name for the webhook.
  3. Under Get webhooks from, choose whether to receive events for live orders, test orders, or both.
  4. Optionally, enable webhook expansion to receive full expanded JSON payloads. See Webhook Expansion for details.
  5. Click Add, then Save your changes.
Step 3 — Add a URL and select events
  1. On the Webhooks page, locate the webhook and click Add URL Endpoint.
  2. In the URL field, enter your HTTPS endpoint. We recommend HTTPS to encrypt data in transit.
    • Webhooks post to port 443 by default. To use a different port, choose from: 3443, 8282, 9191, 9000, or 9999.
  3. In the HMAC SHA256 Secret field, optionally enter a secret to sign payloads. See Message Security for details.
  4. In the Events section, select each event type you want delivered to this URL.
  5. Click Add.

Server webhook events

FastSpring delivers server webhook events as a POST body JSON payload to your configured URLs. Each post may contain multiple events. Events are grouped below by domain — click any event name to view its full payload reference.

Account events
EventSent when
account.createdA new customer account is created. This happens when a customer places an order with an unrecognized email address.
account.updatedA customer account is updated — for example, when contact information is changed manually or a returning customer checks out with different details.
Order events
EventSent when
order.completedAn order is successful. Fires after FastSpring sends the fulfillment.
order.failedA purchase attempt fails.
order.canceledAn order is canceled.
order.approval.pendingAn invoice order requires approval before it can proceed.
order.payment.pendingAn order has been processed, but FastSpring has not yet received payment.
chargeback.createdA chargeback is filed against an order.
Subscription events
EventSent when
subscription.activatedA new subscription is created.
subscription.charge.completedA recurring or managed charge succeeds. Also fires for prorated charges.
subscription.charge.failedA subscription rebill fails.
subscription.updatedA subscription is edited — for example, a payment date change or product modification.
subscription.canceledA subscription is canceled via Account Management or the app. If canceled via API without billingPeriod=0, this event fires.
subscription.uncanceledA canceled subscription is resumed before it deactivates.
subscription.deactivatedA subscription is deactivated.
subscription.payment.overdueA customer has not paid on time. Configure notification timing in customer notifications settings.
subscription.payment.reminderA subscription renewal reminder is sent to the customer.
subscription.trial.reminderFastSpring notifies the customer before the first billing date of their trial subscription.
subscription.pausedA subscription is paused by you or the customer.
subscription.resumedA paused subscription is manually resumed, or a scheduled pause is canceled.
Co-term events

Co-term webhooks fire when subscriptions are grouped, billed, or modified as part of a co-term group.

EventSent when
subscription.group.createdTriggered simultaneously with subscription.group.prorated after co-term initiation is complete. The customer is charged for prorated adjustments.
subscription.group.proratedTriggered simultaneously with subscription.group.created after co-term initiation is complete.
subscription.group.updatedA new subscription is added to an existing co-term group.
subscription.group.payment.charge.completedA co-term group rebill succeeds at renewal.
subscription.group.payment.charge.failedA co-term group rebill fails and the group enters dunning.
subscription.group.payment.overdueA co-term group payment becomes overdue based on the purchase schedule. Optional.
subscription.group.payment.reminderA payment reminder is sent for the co-term group. Optional.
subscription.group.deactivatedSubscriptions in the co-term group are deactivated after the dunning period ends.
Quote events
EventSent when
quote.createdA new quote is created in the FastSpring app.
quote.updatedA team member or prospect updates a quote.
Payout and return events
EventSent when
payoutEntry.createdA payout event is created for an order, split pay rule, or return.
return.createdA refund or return is created.
Fulfillment events
EventSent when
fulfillment.failedOne or more fulfillments in an order fail. This may be due to insufficient remaining license keys.
Mailing list events
EventSent when
mailingListEntry.updatedA customer opts in to your mailing list during checkout.
mailingListEntry.removedA customer unsubscribes from your mailing list.
mailingListEntry.abandonedA customer entered their email at checkout but did not complete the purchase.
Invoice events
EventSent when
invoice.reminder.emailAn invoice reminder email is sent to the customer.

Monitor webhook activity

Webhook Log

Navigate to Developer Tools > Webhooks > Log to view the full history of webhook events for your configured endpoints.

The Webhook Log shows the following for each event:

FieldDescription
WebhookWhich webhook configuration the event belongs to
Resource IDThe associated order, subscription, or account ID (linked when available)
Event typeThe event name (e.g., order.completed)
Event statusOne of: Not attempted, Failed but will be retried, Success, Permanently failed
AttemptsNumber of delivery attempts made
Last retryDate, time (UTC), and actor of the most recent retry
Creation dateWhen the event was created (UTC)
View event detail

Click View on any log entry to inspect the full JSON payload and complete response history for that delivery attempt.

Filter the log

Narrow results by status, event type, webhook, creation date, or last attempted by.

Resend events

Resend a single event or select multiple entries to resend in bulk directly from the log.

View recent activity

In Configuration, scroll to the bottom of any webhook and select All, Successful, or Failed next to Recent Activity to see up to 250 of the most recent events. Use FILTER to toggle between Processed, Unprocessed, or All.

👍

If you don't see recent events in the log, use the /events/unprocessed endpoint to fetch them directly. The response structure is identical to the webhook payload.

Request payload

Each POST from FastSpring to your endpoint may contain multiple events in a single payload.

Payload example — multiple events
{
  "events": [
    {
      "id": "jazYJQw5RSWVR474tU2Obw",
      "live": true,
      "processed": false,
      "type": "subscription.activated",
      "created": 1426560444800,
      "data": {
        // See individual event reference pages for "data" contents
      }
    },
    {
      "id": "VOe5PQx-T4S6t8yS_ziYeA",
      "live": true,
      "processed": false,
      "type": "subscription.deactivated",
      "created": 1426560444900,
      "data": {
        // See individual event reference pages for "data" contents
      }
    }
  ]
}