Ecommerce

FastSpring Webhook MCP Server

Connect your account, then chat with AI to run tools.

Send FastSpring webhooks to MCPBundles and read order JSON in chat.

Best forSaaS BillingSoftware CommerceSubscriptions

Try this workflow

Last FastSpring batch

From the latest delivery, read export.json events array — summarize each event type, order id, customer email, and total when present.

Managed
4 tools
Agent guide included

Opens MCPBundles Studio with this server selected. After sign-in, chat and run tools from the same thread.

Browse all tools

What you can do with FastSpring Webhook

Built for

SaaS Billing, Software Commerce, Subscriptions

Example workflows

Last FastSpring batch

Interprets batched events[] payloads from stored JSON.

Try this

From the latest delivery, read export.json events array — summarize each event type, order id, customer email, and total when present.

Refunds in history

Scans stored event batches for refund signals.

Try this

List recent deliveries and extract any return.created or chargeback events with order reference and amounts from export.json.

Context to know first

How do I connect FastSpring deliveries to MCPBundles?

Save a connection on MCPBundles, copy the hosted ingest URL from the credential panel, and paste it into FastSpring where webhook endpoints are configured. Your agent reads stored deliveries — latest, history, and content — in chat.

Can an agent trigger a new delivery?

No. Ingest is read-only. Data arrives when the upstream system sends it; agents query what already landed.

AI Skill
SKILL.md

Domain knowledge for FastSpring Webhook — workflow patterns, data models, and gotchas for your AI agent.

FastSpring Webhook

Each stored delivery is one FastSpring server webhook POST — a JSON object with an events array. A single POST may batch several events; each item has its own type, id, live, created (epoch ms), and a data object whose shape depends on the event type. Tools read what already landed; there is no pull API and no way to replay or mutate store state from here.

First moves

  1. Latest report — default for “what order or subscription event happened last”.
  2. Inspect export.json.events[] — read each event’s type before quoting order or subscription fields.
  3. Recent reports — scan history when comparing rebills, deduping retries, or tracing a customer across deliveries.
  4. One report by id — after listing, when the user points at a specific capture.

Payload envelope

  • events[] — batched events in one POST; iterate every element, not just the first.
  • events[].type — dotted name such as order.completed, subscription.activated, subscription.charge.completed, subscription.canceled, return.created.
  • events[].id — stable delivery id for automatic retries (same id resends until acknowledged); manual retries get new ids.
  • events[].livetrue for live orders, false for test-mode purchases.
  • events[].created — when FastSpring created the event (epoch ms); may differ from source.captured_at.
  • events[].data — event-specific payload (order object, subscription object, account object, etc.).

Order events (events[].data when type starts with order.)

Common order types: order.completed (payment succeeded and fulfillments finished), order.failed, order.canceled, order.payment.pending, order.approval.pending, chargeback.created.

Useful order fields when present in data:

  • Identityid / order, reference, buyerReference.
  • Moneytotal, subtotal, tax, discount plus *Display and *InPayoutCurrency variants; currency, payoutCurrency.
  • Customer — nested account.contact (name, email, company, phone) or top-level customer; account.address for billing/shipping.
  • Timingchanged, changedInSeconds, changedDisplayISO8601.
  • Line itemsitems[] with product path, quantity, and price fields.
  • Subscriptions on the ordersubscriptions object keyed by subscription id when the purchase included recurring products.

order.completed fires only after payment succeeds and fulfillments complete — not for failed payments or failed fulfillments. For subscription products it fires on the initial purchase only; recurring rebills do not emit order.completed (they emit subscription.charge.completed instead).

Subscription events (events[].data when type starts with subscription.)

Common subscription types: subscription.activated (new subscription or trial start), subscription.charge.completed (successful rebill or proration), subscription.charge.failed, subscription.updated, subscription.canceled, subscription.uncanceled, subscription.deactivated, subscription.payment.overdue, subscription.payment.reminder, subscription.trial.reminder, subscription.paused, subscription.resumed.

Useful subscription fields when present in data:

  • Identityid / subscription, linked quote.
  • Statestate (active, trial, overdue, canceled, deactivated), active boolean.
  • Productproduct path id, display name, quantity.
  • Moneyprice, subtotal, discount with display and payout-currency variants.
  • Account — nested account with contact.email and account.id.
  • Timingchanged, changedInSeconds, next period / period end fields when included.

subscription.activated covers new subscriptions including trials; it does not fire on rebills. Use subscription.charge.completed for recurring charge success.

Webhook expansion

When the upstream store has webhook expansion enabled, data embeds full account, product, and order/subscription objects. Without expansion, data may contain only resource ids — do not assume nested contact or line-item fields exist; read what the latest JSON actually contains.

Response shape

  • export.json — parsed webhook body; start with events[].
  • export.text — raw body when JSON is large or parsing failed.
  • source.captured_at — when the POST landed here, not necessarily the FastSpring event time — compare with events[].created.

Operational order

  1. Start with the latest report — do not guess a report id.
  2. Parse events[] and state each event’s type before summarizing.
  3. If captured_at is older than expected, say so — rebills and batch jobs may queue webhooks.
  4. List recent reports only for history, duplicate suspicion, or tracing an order/subscription across time.
  5. Read ## This connection in the skill supplement for store-specific product paths or field notes.

Gotchas

  • Read-only — cannot place orders, cancel subscriptions, or acknowledge deliveries upstream.
  • Batched POSTs — one stored delivery may hold multiple unrelated events; do not treat the whole body as a single order.
  • Duplicate retries — automatic retries reuse the same events[].id; dedupe on id when counting unique events across captures.
  • Test vs live — check events[].live and order live before quoting production revenue.
  • Rebill vs initial order — subscription renewals appear as subscription.charge.*, not order.completed.
  • Schema varies by event type and expansion — inspect the latest JSON rather than assuming every field is present.
  • Empty — no stored reports means nothing has arrived yet; say no webhook is available.

Tools in this Server (4)

Fastspring Wh Latest

Return the most recently stored report — tabular rows, raw text, or JSON depending on format. Default starting point for current report questions.

Fastspring Wh List

List recent stored reports — ids, capture time, filename, and format. Follow with latest report or get report for full content.

Fastspring Wh Report

Return one stored report by report_id — full content with the same source/export envelope as latest report.

Fastspring Wh Status

Connection status — whether any reports have landed, when the last file arrived, filename, and stored report count. Includes the ingest URL only when ...

Frequently Asked Questions

How do I connect FastSpring deliveries to MCPBundles?

Save a connection on MCPBundles, copy the hosted ingest URL from the credential panel, and paste it into FastSpring where webhook endpoints are configured. Your agent reads stored deliveries — latest, history, and content — in chat.

Can an agent trigger a new delivery?

No. Ingest is read-only. Data arrives when the upstream system sends it; agents query what already landed.

How do I connect FastSpring Webhook to my AI agent?

Add the MCPBundles server URL to your MCP client configuration (Claude Desktop, Cursor, VS Code, etc.). The URL format is: https://mcp.mcpbundles.com/bundle/fastspring-webhook. Authentication is handled automatically.

How many tools does FastSpring Webhook provide?

FastSpring Webhook provides 4 tools that can be called by AI agents, along with a SKILL.md that gives your AI agent domain knowledge about when and how to use them.

What authentication does FastSpring Webhook require?

FastSpring Webhook uses API Key. FastSpring Webhook requires credentials. Connect via MCPBundles and authentication is handled automatically.

Setup Instructions

Connect FastSpring Webhook to any MCP client in minutes

MCP URL
https://mcp.mcpbundles.com/bundle/fastspring-webhook

One-click install:

The link prefills the Add custom connector dialog — you still review the values and click Add, then Connect to complete OAuth.

Or add manually

  1. Open claude.ai → Settings → Connectors.
  2. Click the + button and choose Add custom connector.
  3. Set Name to FastSpring Webhook and paste the MCP URL into Remote MCP server URL.
  4. Click Add. FastSpring Webhook will appear under Not connected — select it and click Connect to complete OAuth.
Name: FastSpring Webhook
Remote MCP server URL: https://mcp.mcpbundles.com/bundle/fastspring-webhook
Authentication: OAuth

Custom connectors at claude.ai require a paid Claude plan (Pro, Max, Team, or Enterprise).

Ready to use FastSpring Webhook?

Sign in to connect your credentials and start running tools from the chat.

FastSpring Webhook MCP — Read Order Webhooks in Chat