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.

How it works#

1
Connect your store

Connect FastSpring from your app's Marketplace page with your API credentials and the webhook HMAC secret.

2
Map products to entitlements

Each FastSpring product ID matches a CashSDK product and the entitlement it unlocks. An order with several items is recorded under its first item.

3
Receive signed webhooks

Completed orders and subscription charges become revenue, returns come back out by their amount, and subscription events grant and end access.

Connect FastSpring#

1
Create API credentials

In the FastSpring dashboard, go to Integrations → API Credentials and create a username and password credential pair. Copy them.

2
Add them to CashSDK

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.

3
Register the webhook

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.

4
Activate

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.deactivated ends 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#

1
Test with your test store

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.

2
Switch to your live store

Add a Production connection with your live credentials, its own webhook and secret. Your CashSDK publishable key does not change.

Next steps#