FastSpring Integration
Automatically deliver digital products through Continuata when customers complete purchases in your FastSpring store.
Overview
The FastSpring integration uses webhooks to automatically create download tokens when customers purchase digital products. When a customer completes an order, FastSpring sends a webhook to Continuata, which generates a secure download link and sends it via email.
Prerequisites
You'll need a FastSpring account with active products and access to the Developer Tools section.
Step 1: Prepare Your Product in Continuata
Before touching FastSpring, your product needs to be uploaded and have an active version. If you haven't done this yet, follow the Quick Start guide first.
- In your dashboard, open the product you want to sell via FastSpring
- Click the Versions tab — confirm there is at least one version in the Version History list
- If no version has been uploaded yet: enter a version number (e.g.,
1.0.0), click Select Folder to Upload, choose your files, then click Upload to R2 - Once uploaded, click Set Active next to the version — this also sets the product to Published automatically
- Note the product slug — visible in the product header below the product name (e.g.,
epic-drums-v1). You'll map this to FastSpring in Step 2
Step 2: Set Up SKU Mapping
Map your FastSpring product IDs to Continuata products. FastSpring uses its product path/ID as the SKU identifier.
- In your Continuata dashboard, go to Settings → Integrations
- Find the Product Mappings section
- Add entries mapping FastSpring product IDs to Continuata products:
FASTSPRING_PRODUCT_ID → CONTINUATA_PRODUCT_SLUG
epic-drum-kit → audio-imperia-drums-2024
ambient-textures-pack → soundscapes-ambient-v1
vocal-chops → vocal-elements-collectionFastSpring Product IDs
Use the FastSpring product path (e.g. epic-drum-kit), not the display name. You can find this in FastSpring App → Products → select product → Product Path field.
Step 3: Configure Webhook Secret in Continuata
Generate a secure secret for verifying webhook signatures:
- In your Continuata dashboard, go to Settings → Integrations
- Select FastSpring from the provider dropdown
- Generate a strong random secret (32+ characters) and paste it into the webhook secret field
- Click Save — copy this secret, you'll need it in the next step
Your webhook URL will be:
https://continuata.io/webhooks/{YOUR_ORG_ID}/fastspring
Find your Organization ID in Settings → Organization.
Step 4: Configure Webhook in FastSpring
Add the Continuata endpoint to your FastSpring webhook configuration:
- In FastSpring App, navigate to Developer Tools → Webhooks → Configuration
- Click Add Webhook (or open an existing webhook)
- Click Add URL Endpoint
- Enter your Continuata webhook URL
- In the HMAC SHA256 Secret field, paste the secret you saved in Step 3
- Under event types, select at minimum: order.completed
- Optionally also select return.created to handle refunds automatically
- Click Save
Required Event
order.completed
Recommended Event
return.created
Enable Webhook Expansion (optional)
Checking "Enable Webhook Expansion" in FastSpring includes complete order, product, and account details in each payload, reducing the need for follow-up API calls.
Step 5: Test Before Going Live
There are two complementary ways to test. Do both before switching to FastSpring live mode.
5a — Test the download itself (no FastSpring needed)
Use the Test Download button to verify your files are correct and the download experience works, independently of FastSpring.
- Open your product and click the Versions tab
- In the Version History list, click Test Download next to the version you want to check
- A short-lived download link appears — open it in Chrome or Edge (Safari and Firefox users should install Continuata Bridge first)
- Click Choose Download Location, pick a folder, then click Start Download
- Verify all files arrive and open correctly. Try pausing and resuming to confirm resume works
Test Download bypasses the published check
The link resolves the specific version you clicked, regardless of whether the product is set to Published or Draft. This lets you fully QA a release before your customers can access it.
5b — Test the FastSpring webhook end-to-end
Place a test order in FastSpring's sandbox and confirm Continuata receives it and emails a download link to the customer.
- In FastSpring App go to Developer Tools → Webhooks → Log and click Test to send a sample
order.completedevent to your webhook URL. This is the quickest sanity check — check the response code (should be 200) and look for a new token in your Continuata customer list. - For a more realistic test, use FastSpring's Storefront Builder Preview to place an order using a test credit card. FastSpring will fire the real webhook flow.
- After the test order, go to your Continuata dashboard. Under Customers, find the buyer's email — you should see a new purchase and a download token with a 30-day expiry.
- Check the buyer's inbox for the purchase receipt email containing the download link.
- Follow the download link and complete a download to confirm the full end-to-end flow works.
Go-live checklist
- ✓ Product has an active version (green Active badge)
- ✓ Product status is Published
- ✓ FastSpring webhook URL points to your live org ID (not a test URL)
- ✓ HMAC secret matches in both Continuata and FastSpring
- ✓ SKU mapping covers every product you're selling
- ✓ Test Download confirmed files download correctly
- ✓ Test webhook event returned 200 and created a token
How It Works
When a customer completes a purchase in FastSpring:
FastSpring sends an order.completed webhook to Continuata
Continuata verifies the HMAC-SHA256 signature using your shared secret
A customer record is created or updated using the buyer's email
Each line item's product path is matched to a Continuata product via SKU mapping
A 30-day download token is generated per product
A purchase record is created and a receipt email is sent to the customer
Refund Handling
If you subscribe to the return.created event, Continuata will automatically mark the associated purchases as refunded when FastSpring processes a return. Download tokens previously issued for that order remain in the system but the purchase status will reflect the refund.
Troubleshooting
Signature verification failing (401 Invalid signature)
• Confirm the HMAC secret in Continuata Settings matches the "HMAC SHA256 Secret" field in FastSpring exactly
• Ensure the secret contains no leading/trailing spaces
• Check FastSpring's webhook log for the raw request and response
Order processed but no download token created
• Verify the FastSpring product ID matches the SKU mapping in Continuata (case-insensitive)
• Ensure the mapped Continuata product is published and has an active version
• Check that your Organization ID in the webhook URL is correct
Duplicate purchases appearing
• FastSpring may retry failed webhook deliveries — Continuata handles this automatically using order idempotency
• Duplicate events for the same order ID and product are silently ignored
Customer not receiving email
• Confirm your Continuata email service is configured in Settings
• Check spam/junk folders for the purchase receipt
• Verify the buyer email in FastSpring's order details matches what was submitted
Need Help?
Contact support at support@continuata.com or check our webhook documentation for more details.