Beta. The FastSpring connector is built and tested against FastSpring's documented, signed webhook events. It has not yet run against a live FastSpring store in production. Try it with your test store first.
FastSpring
Connect FastSpring (a long-established merchant of record for desktop and SaaS) so its orders reach your CashSDK revenue and its subscriptions grant access.
FastSpring is a veteran merchant of record for desktop software and SaaS, with localized checkout, global tax handling, and subscription management honed over years of cross-border selling. Connect it to CashSDK and FastSpring orders and subscription charges roll up with your App Store revenue into one set of numbers, while its subscriptions grant and end the entitlements your apps check.
FastSpring is a strong fit for downloadable software and web apps that need localized checkout: local currencies, payment methods, and languages. CashSDK records each order in the currency FastSpring charged.
How it works#
Connect FastSpring from your app's Marketplace page with your API credentials and the webhook HMAC secret.
Each FastSpring product ID matches a CashSDK product and the entitlement it unlocks. An order with several items is recorded under its first item.
Completed orders and subscription charges become revenue, returns come back out by their amount, and subscription events grant and end access.
Connect FastSpring#
In the FastSpring dashboard, go to Integrations → API Credentials and create a username and password credential pair. Copy them.
In the dashboard, open your app's Marketplace page, choose FastSpring and select Connect. Pick Sandbox while you build with your test store, or Production for your live store, and enter the credentials. Leave the signing secret empty for now. They are stored encrypted at rest.
Copy the connection's webhook URL from the Connected list and add it in
FastSpring under Integrations → Webhooks. Set an HMAC SHA256 secret there
and enable order.completed, return.created, subscription.activated,
subscription.charge.completed, subscription.updated,
subscription.canceled and subscription.deactivated.
Back in CashSDK, select Reconnect, enter the credentials and the same secret, then select Activate. A connection without a signing secret cannot be activated.
Map your catalog#
Payments for products your app does not sell are skipped, so for each FastSpring
product create a product in CashSDK whose identifier is
the FastSpring product ID and attach the entitlement it
unlocks. To point a product at an existing one instead, map it with
map_marketplace_catalog (prompt setup).
- A one-time order unlocks a non-consumable product for good.
- A subscription grants access until its next charge date. A canceled subscription
keeps access until its deactivation date, and
subscription.deactivatedends it. - A return comes off your revenue by the amount returned. A return of the whole order also ends the access that order gave.
Who gets access#
Add cashsdk_user_id to the subscription's tags. CashSDK reads it from the
subscription events and remembers it for that subscription. Without it, and for
one-time orders, the customer's email or FastSpring account ID stands in for the
user. Link it to the right user with the link_marketplace_user tool on the
MCP server.
Test and go live#
With a Sandbox connection, complete an order in your FastSpring test store. Confirm the order appears under Transactions and the entitlement is granted to your test user. Test orders are always recorded as Sandbox.
Add a Production connection with your live credentials, its own webhook and secret. Your CashSDK publishable key does not change.