canonical: https://jentic.com/apis/fastspring.com/fastspring

# FastSpring API

The FastSpring API is the merchant-of-record platform's backend for managing products, subscriptions, orders, quotes, accounts, coupons, returns, and webhooks. Its 60-endpoint surface covers the full lifecycle of a digital-goods or SaaS storefront - from creating a product and issuing a coupon to retrieving an order, processing a return, and replaying webhook events. FastSpring takes responsibility for global tax and compliance, so the API also exposes account and session resources that pair with their hosted checkout.

## For AI agents

Manage products, subscriptions, orders, quotes, coupons, accounts, and webhook events on a FastSpring merchant-of-record store.

## Scope

Does not handle card tokenisation, fraud scoring, or general accounting - use for FastSpring storefront orders, subscriptions, and merchant-of-record workflows only.

## Capabilities

- Create and update product entries used by FastSpring storefronts and checkout sessions
- Manage subscription lifecycle including pause, resume, and cancellation through dedicated subscription endpoints
- Retrieve order history with filters by date range, product path, and return status
- Issue and revoke coupons and coupon codes for promotional campaigns
- Process returns and refunds against past orders without leaving the API
- Replay processed and unprocessed webhook events from /events for at-least-once integration patterns
- Authenticate customer sessions through `/accounts/{account_id}/authenticate` for self-service portals

## Use cases

### Subscription Lifecycle Automation for SaaS

SaaS vendors using FastSpring as merchant of record automate pause, resume, and cancellation flows from in-product self-service screens. The API exposes subscription endpoints that map to the product UI, so the front-end calls Jentic which calls FastSpring without the SaaS team handling card data. Cuts support tickets for billing changes and keeps tax compliance with FastSpring.

Example prompt: GET `/accounts/{account_id}` to confirm the customer, then call the subscription pause endpoint with the subscription id when the user clicks pause

### Order Reconciliation and Reporting

Finance teams reconcile FastSpring revenue by pulling orders with date and product filters from /orders. The query parameters support begin and end date ranges plus product paths, so reports can be sliced by SKU per period. Replaces brittle export scripts with a structured API pull.

Example prompt: Call GET /orders with begin and end date parameters covering the prior month and aggregate revenue by product path

### Coupon Campaign Management

Marketing teams launch and revoke coupon campaigns against FastSpring without UI work by calling /coupons and `/coupons/{coupon_id}/codes.` The agent can issue a campaign, generate codes, and revoke them when the promo ends. Useful for time-boxed promotions where speed and auditability matter.

Example prompt: POST /coupons to create a campaign, then DELETE `/coupons/{coupon_id}/codes` when the promotion window closes

### Webhook Replay for Reliable Integrations

Engineering teams use `/events/processed` and `/events/unprocessed` to retrieve webhook event history when their listener missed deliveries or needs to backfill state. The endpoints turn FastSpring webhooks into a pull-based source-of-truth that the integration can replay against. Critical for systems that cannot tolerate missed billing events.

Example prompt: GET `/events/unprocessed` to fetch missed webhook events, replay each through the local handler, then POST `/events/{event_id}` to mark as processed

### AI Billing Assistant via Jentic

Conversational billing agents use Jentic to call FastSpring on behalf of operations and CX teams. The agent searches 'pause a subscription' and Jentic returns the right operation with input schema. Basic-auth credentials live in the vault, so the agent does not handle secrets and integrations ship in under an hour rather than a week.

Example prompt: Through Jentic, search 'pause a subscription on fastspring', load the operation, and execute with the subscription id parsed from the support ticket

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/orders/{order_id}` | Retrieve a single order |
| POST | `/accounts` | Create a customer account |
| GET | `/accounts/{account_id}` | Retrieve a customer account |
| POST | `/coupons` | Create a coupon campaign |
| GET | `/events/unprocessed` | List unprocessed webhook events |
| POST | `/events/{event_id}` | Mark a webhook event as processed |

## Key resources

- **Products** — Manage product catalogue used by storefronts and checkout sessions
- **Subscriptions** — Pause, resume, and cancel recurring subscriptions
- **Orders** — Retrieve and filter past orders by date and product
- **Quotes** — Generate and manage sales quotes
- **Accounts** — Create and authenticate customer accounts
- **Coupons** — Issue and revoke promotional coupons and codes
- **Events** — Pull processed and unprocessed webhook events for replay
- **Returns** — Process returns and refunds against past orders

## Why Jentic

- **Setup:** Wiring the FastSpring API by hand means encoding its basic-auth username and password and navigating a 60-endpoint merchant-of-record surface of orders, accounts, coupons, and webhook events yourself. Through Jentic you install once, import FastSpring from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** FastSpring puts the order and account id in the URL path (`/orders/{order_id}` and `/accounts/{account_id}`), so a rule can pin your agent to one order or account. You choose the operations it may call, so a write like creating a coupon or acknowledging an event is included only when you add it.
- **Credential handling:** Your FastSpring basic-auth username and password are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'pause a subscription on FastSpring', and Jentic returns the matching operation with its input schema so the agent acts without browsing the 60-endpoint surface.

## Related APIs

- **Paddle** — Direct merchant-of-record competitor for SaaS and digital goods
- **Stripe** — Payment processing without merchant-of-record tax handling
- **Recurly** — Subscription-billing alternative without the merchant-of-record model
- **HubSpot Deals** — Track deal pipeline alongside FastSpring quotes and orders

## FAQ

### What authentication does the FastSpring API use?

FastSpring uses HTTP Basic authentication - supply your API username and password in the Authorization header. Through Jentic both halves of the basic-auth credential live in the vault and are injected at execution time.

### Can I manage subscriptions with the FastSpring API?

Yes. The API exposes subscription endpoints for pausing, resuming, and cancelling, alongside `/accounts/{account_id}` to identify the customer. Pair with /events to react to subscription state changes asynchronously.

### What are the rate limits for the FastSpring API?

FastSpring does not document explicit rate limits in the spec. Plan for moderate concurrency, paginate /orders and /events queries with reasonable page sizes, and back off on 429 responses.

### How do I replay missed webhook events through Jentic?

Install with pip install jentic, search 'list unprocessed fastspring events', load GET `/events/unprocessed`, replay each event in your local handler, then POST `/events/{event_id}` to mark each processed. Get started with Jentic One, the self-hosted execution layer.

### Does FastSpring handle tax compliance for me?

Yes. FastSpring acts as merchant of record, so global tax calculation, collection, and remittance are handled on their side. The API endpoints expose order and account data - the tax handling is a property of the platform, not a separate endpoint to call.

### Can I limit what my agent is allowed to do with the FastSpring API?

Yes. Because Jentic One is self-hosted, your own rules decide which FastSpring operations and credentials the agent can use. FastSpring puts the identifier in the URL path for calls like GET `/orders/{order_id}` and GET `/accounts/{account_id}`, so you can pin the agent to a single order or account. You also pick the operations it may call, so a write such as creating a coupon with POST /coupons or acknowledging an event with POST `/events/{event_id}` is available only when you add it.
