skills/sales-fastspring/SKILL.md
FastSpring (fastspring.com) platform help — all-in-one Merchant of Record (MoR) for SaaS, software, games, AI, and digital products: sells on your behalf and remits global sales tax/VAT/GST across 200+ regions, with subscriptions + dunning, branded checkout (Store Builder Library + hosted), B2B invoicing/quotes, affiliates, and fraud protection. REST API (base https://api.fastspring.com, HTTP Basic auth, 250 calls/min) covers orders/subscriptions/products/accounts/coupons/checkout sessions, plus HMAC-SHA256-signed webhooks (X-FS-Signature). Use when integrating the FastSpring API or Store Builder Library, verifying webhook signatures, provisioning access on order.completed / subscription.activated, handling subscription dunning or refunds (FastSpring keeps its fee on refunds), or modeling its quote-based MoR fees vs a plain processor. Do NOT use for choosing a Merchant of Record across vendors (use /sales-merchant-of-record) or checkout-conversion strategy (use /sales-checkout).
npx skillsauth add sales-skills/sales sales-fastspringInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
If references/learnings.md exists, read it first for accumulated platform knowledge.
What are you trying to do?
X-FS-Signature HMAC-SHA256) and react to order/subscription eventsAPI or no-code? Code → REST API + SBL / webhooks. Low-code → hosted checkout + Zapier off webhooks.
Skip-ahead rule: if the user's prompt already provides enough context, skip to Step 2.
| If the question is about... | Route to... |
|---|---|
| Choosing a Merchant of Record across vendors (FastSpring vs Paddle/Lemon Squeezy/Dodo/Stripe) | /sales-merchant-of-record {question} |
| Checkout/cart conversion strategy across platforms (order bumps, upsells, cart recovery) | /sales-checkout {question} |
| General digital-product selling strategy across tools | /sales-digital-products {question} |
| Subscription churn / retention strategy (not FastSpring dunning mechanics) | /sales-membership {question} |
| Generic iPaaS wiring to a CRM/ESP | /sales-integration {question} |
When routing, give the exact command, e.g. "This is a selection question — run: /sales-merchant-of-record FastSpring vs Paddle for a global SaaS".
Read references/platform-guide.md for the full reference — the MoR model (what FastSpring takes liability
for), capabilities + automation surface (API / webhook / UI), quote-based pricing + the refund-fee gotcha, the
data model, and quick-start recipes (provision on order.completed; sync subscriptions; SBL checkout).
Read references/fastspring-api-reference.md for the integration surface — base https://api.fastspring.com,
HTTP Basic auth (Developer Tools > APIs > API Credentials; password shown once), 250 calls/IP/min (429),
the endpoint catalog (products/offers/prices, orders, subscriptions, accounts, coupons, checkout sessions,
quotes, returns, events, webhooks), the Store Builder Library (Access Key), and HMAC-SHA256 webhooks
(X-FS-Signature, events array, dedupe on id) with the full event list.
Answer using only the relevant section. Don't dump the full reference.
Focus on the user's specific situation:
return events; don't assume the fee reverses.X-FS-Signature (Base64 HMAC-SHA256), dedupe
on event.id (redelivery happens), switch on event.type, return 2xx fast and process async.If you discover a gotcha, workaround, or tip not covered in references/learnings.md, append it there.
Best-effort from research (2026-07) — pricing is quote-based/negotiable and docs are largely JS-rendered; verify specifics in-account.
X-FS-Signature over the RAW body. Signature is Base64 HMAC-SHA256; re-serializing the
body before hashing is the common bug. Set a secret (verification is optional but treat it as mandatory).event.id. Events can be redelivered; payloads carry created in milliseconds and an events array.api.fastspring.com, not Classic./sales-merchant-of-record — Choosing a Merchant of Record across vendors (FastSpring vs Paddle/Lemon Squeezy/Dodo/Polar/Creem/Gumroad vs Stripe+Tax) — selection strategy, MoR-vs-processor tradeoffs/sales-paddle — Paddle platform help (MoR API/webhooks, Billing vs Classic) — the closest enterprise/B2B MoR alternative/sales-dodo-payments — Dodo Payments platform help (developer-first MoR — REST API, 9 SDKs, MCP server)/sales-checkout — Checkout/cart conversion strategy (order bumps, upsells, cart recovery) across platforms/sales-digital-products — Selling digital products (license keys, delivery, pricing) across tools/sales-do — Not sure which skill to use? The router matches any sales objective to the right skill. Install: npx skills add sales-skills/sales --skill sales-do -a claude-codeUser says: "When someone buys my SaaS through FastSpring, how do I unlock their account automatically?"
Skill does: Points to a webhook listener on order.completed (and subscription.activated for
subscriptions): configure the webhook with an HMAC secret, verify the X-FS-Signature header (Base64
HMAC-SHA256) over the raw body, dedupe on event.id, then grant access from event.data. Notes returning
2xx quickly and processing async, and enabling webhook expansion for full payloads. References the Python
verification snippet in references/fastspring-api-reference.md.
Result: Authenticated, replay-safe automatic provisioning.
User says: "I want a nightly job that pulls all my active FastSpring subscriptions into HubSpot."
Skill does: Uses GET /subscriptions with status=active&begin=&end=&live=true against
https://api.fastspring.com, HTTP Basic auth, backing off on 429 (250 calls/IP/min, no reset header —
exponential backoff). Maps account → contact/company and subscription → subscription object, and recommends
treating webhooks as the realtime signal with the daily API pull as reconciliation (FX refreshes every 6h).
Result: A resilient scheduled sync with rate-limit handling.
User says: "FastSpring quoted me around 8-9%. Stripe is way cheaper — why would I use FastSpring?"
Skill does: Frames the Merchant-of-Record tradeoff — FastSpring becomes seller of record and remits
global VAT/GST/sales tax (no per-country registration), whereas with Stripe you own tax compliance (Stripe Tax
calculates but doesn't remit). Flags FastSpring's quote-based rate (5.9%+$0.95 or 8.9%), the 10–12%+
effective subscription cost, and that refunds keep the fee, then routes the cross-vendor decision: "run:
/sales-merchant-of-record FastSpring vs Paddle vs Dodo for a global SaaS."
Result: A clear MoR-vs-processor decision grounded in tax liability + real effective fees.
Symptom: Events arrive but X-FS-Signature never matches.
Cause: Hashing a re-serialized body instead of the raw bytes, the wrong secret, or no secret configured on
the webhook.
Solution: Compute Base64(HMAC-SHA256(raw_body, secret)) over the exact raw request body and compare to
X-FS-Signature with a constant-time check. Set the HMAC secret in Developer Tools > Webhooks; rotate it via the
"update a webhook key secret" API (validate the new key before discarding the old). Dedupe on event.id.
Symptom: Requests to api.fastspring.com are rejected.
Cause: 401 — bad/missing Basic auth (wrong store credentials, or the password wasn't saved when
generated) or a missing User-Agent header (mandatory). 429 — over 250 calls/IP/min.
Solution: Send Authorization: Basic base64(user:pass) with credentials from Developer Tools > APIs (the
password shows only once — regenerate if lost), always include a User-Agent, and use TLS 1.2+. On 429, back off
exponentially and batch by comma-separating IDs where supported.
Symptom: Refunds cost you the fee, and subscription revenue nets far below the headline rate.
Cause: FastSpring retains its transaction fee on refunds, and the per-transaction component (5.9% + $0.95
or 8.9%) spreads poorly across small recurring charges, pushing effective rates to 10–12%+.
Solution: Reconcile net revenue from return/payout events (don't assume the fee reverses), get your
negotiated rate in writing, and model effective cost on your actual price points. If the fee structure doesn't fit
low-ticket subscriptions, compare alternatives via /sales-merchant-of-record.
tools
Wizlogo (wizlogo.com) platform help — a budget online logo maker (template/style-variation, marketed as "AI") plus a hub of FREE branding tools (business-name, blog-name and slogan generators, business-card maker, invoice generator, color converter, domain search). The pricing traps: the FREE logo is PERSONAL-USE-ONLY; the two cheap paid tiers are RASTER PNG/JPG only — Single (~€39.99 one-time) and Unlimited (~€3.99 per WEEK, recurring) — and VECTOR (SVG/PDF/EPS) is gated to the ~€299.99 Enterprise tier, which also bundles human designer edits and a social kit. Transparent PNG is on all paid plans. Use when making a Wizlogo logo, understanding free-vs-paid or personal-vs-commercial use, which tier unlocks vector/SVG for print, the weekly-subscription billing trap, its free name/slogan generators, or whether it has an API (UI-only — no public API, webhooks, Zapier or MCP). Do NOT use to just generate the business name (use /sales-namelix) or to compare/validate branding tools (use /sales-idea-validation).
tools
VistaPrint platform help (vistaprint.com, a Cimpress company) — the small-business design + print + digital-marketing platform: a free AI Logomaker (4 generations, 60 more after free sign-up) exporting SVG/PNG/PDF at 4000x4000 with no watermark, a free Brand Kit, business cards/flyers/signage/apparel/promo print, and a website builder. THE RIGHTS TRAP: VistaPrint states NO intellectual-property rights transfer on an AI-generated logo — you get usage rights but CANNOT register it for trademark or copyright; only its human designer service transfers full IP. Use when making a VistaPrint logo, asking if you own or can trademark it, running out of AI logo credits, printed colors not matching the screen, bleed/DPI/font file-prep rejections, or asking whether VistaPrint has an API (the consumer site does not — automation runs through the parent Cimpress Open partner-fulfilment API). Do NOT use for Vista Social scheduling (use /sales-vistasocial) or comparing logo tools market-wide (use /sales-idea-validation).
tools
Turbologo (turbologo.com) platform help — a budget AI/DIY logo maker: enter a business name + industry, pick icons and colors, and it proposes logo concepts you refine in an in-browser editor, then pay a one-time fee to download (designing is free, previews are watermarked, downloading is the paywall). Vector SVG/PDF is gated to the mid tier and up; the top tier adds a brand kit (business cards, letterheads, email signatures, social assets). Use when generating a logo in Turbologo, choosing which download tier to buy, vector SVG vs raster PNG, removing the free watermark, the time-limited edit-after-purchase window, pay-to-download pricing questions, whether an AI logo is yours to trademark, or whether Turbologo has an API to bulk-generate logos (it is UI-only — no public API, webhooks, Zapier, or MCP). Do NOT use to generate the business name (use /sales-namelix), compare or validate branding tools across the market (use /sales-idea-validation), or build wider marketing creative (use /sales-canva).
tools
Online Logo Maker (onlinelogomaker.com) platform help — a long-standing free/freemium DIY logo maker: build the mark yourself from icons, shapes, text, and fonts — MANUAL/template-based, NOT enter-a-name-get-AI-concepts. The free pack downloads a LOW-RES 300px PNG with a background; vector SVG, transparent PNG, and 2000px high-res are gated to a one-time lifetime Premium pack (not a subscription). The free tier's commercial-use rights are disputed by reviewers — clean ownership effectively needs Premium, and a shared-icon mark can be non-distinctive. Use for building/editing a logo here, free download vs Premium, vector SVG or transparent PNG, one-time pricing, commercial-use/trademark terms, near-namesake confusion (NOT LogoMaker.com / LogoMakr / Logomakerr.ai), or whether it has an API (UI-only — no API, webhooks, Zapier, MCP). Do NOT use to generate the business name (use /sales-namelix), compare branding tools across the market (use /sales-idea-validation), or build wider creative (use /sales-canva).