> For the complete documentation index, see [llms.txt](https://docs.licensespring.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.licensespring.com/integrations/fastspring/fastspring-classic-store.md).

# FastSpring Classic Store

{% hint style="danger" %}
We are no longer maintaining and testing our integration with FastSpring classic.
{% endhint %}

{% hint style="info" %}
These are instructions for our new platform. For customers still using the old platform (if you log in from app.licensespring.com), please contact customer support for instructions on integrating with FastSpring.
{% endhint %}

## FastSpring Classic Store

### Configure License Fulfillment Through FastSpring

Duration: 15 minutes

There are 3 parts to the configuration within FastSpring.

{% stepper %}
{% step %}

### Configuring Your Product

There is only one thing here - "Product name" needs to match the "short-code" in LicenseSpring:

![Inputting Product Name](/files/76be6c0ef20166dceab09f350aafc33e694c5f9a)
{% endstep %}

{% step %}

### Adding License Generation to Your Product

Login to your FastSpring account.\
Navigate to the product you are configuring (click on the Store > Products and Pages > \[Product name]).\
Beside “Fulfillment Actions” Click “Add Fulfillment”.\
Click “Generate a License” > Remote Server Request.

![Select Remote Server Request](/files/dd2e564b836c2cd820373e5a5fa3385a11b14f4d)

Fill out the fields in the next step with the following information:

* URL: <https://api.licensespring.com/api/fast\\_license>
* Method: HTTP POST
* POST Encoding: UTF-8
* Output Format: Single-Line License (Quantity based)

Click “Create”.

![Filling License Generation Fields](/files/b687ecfa6826a7a149ee0c495bdc36c39bb3e365)
{% endstep %}

{% step %}

### UUID parameter

{% hint style="warning" %}
Under the "Product Fulfillment" section, in the "Parameters" tab, it's important to input the UUID (Universally Unique Identifier) in order for the system to function correctly and generate the license. The UUID serves as a unique identifier that is essential for the product fulfillment process to work as expected and to ensure that the generated licenses are associated with the correct company.
{% endhint %}

Find your `uuid` inside FastSpring integration configuration view under Settings -> Integrations \[tab]:

![](/files/d0fd03e5f2345a3dae6d2f1cfb4617e95280434c)

![](/files/e6c321715a2448ecb32dc2b06779f445d2bf2a2f)

![](/files/2342b96a2daf953a64ff3500f5393f7f093b09f2)
{% endstep %}
{% endstepper %}

### Add Order Webhook Notification

Next, you'll need to configure the post-order notification:\
Click on “Notifications” in the top right corner.

![Figure 7 - Notifications](/files/76b1184690bb9076ed1074000a37decbb5d0df9f)

Add a “custom notification”.

In the next step, use the following information to configure the custom post-order notification:

* Event Type: Order Completed
* Destination: HTTP URL
* Applicable Site: the name of the store for which you are configuring the product for
* Live Server URL: <https://api.licensespring.com/api/fast\\_post\\_order>
* Content Type: JSON (application/json)

{% hint style="info" %}
**license\_type** parameter is optional, use it to change the default license type if needed
{% endhint %}

```java
{
  "company_uuid": "API_KEY_GOES_HERE",
  "id": "#{order.id}",
  "is_test": #{order.isTest},
  "created": "#{order.created}",
  "order_type": "#{order.type}",
  "customer_email": "#{order.customer.email}",
  "customer_reference": "#{order.customerReference}",
  "referrer": "#{order.referrer}",
  "license_type": "perpetual",
  "items": [ <repeat value="#{order.allItems}" var="orderItem">
     { 
     "product_name": "#{orderItem.productName}",
     "product_group": "#{orderItem.productGroup}",
     "price_total": "#{orderItem.priceTotal}",
     "license": {
        "key": "#{fulfillment.license.key}",
        "licenses": [<repeat value="#{orderItem.fulfillment.license.licenses}" var="value">"#{value}",</repeat>],
        "max_activations": 2,
        "product_features": ["standard"]
     }
  },</repeat>]
}
```

![Figure 8 - General Settings](/files/ff3bac46cd16a6ff5a826dc346939f76a46105b5)

Please do not hesitate to contact customer support if you need any help.

### Configuring Product Features

Product features in FastSpring can be set-up as "Product choices", which are actually **separate products** in FastSpring platform. This means that before setting up a feature/choice, you need to create a separate product. Take care to set product name in FastSpring to equal feature code in LicenseSpring. Also, place these products in a separate **product group** called "features".

Steps:

{% stepper %}
{% step %}

### Define product feature(s) in LicenseSpring

{% endstep %}

{% step %}

### Create a product group called "features" in your FastSpring store

{% endstep %}

{% step %}

### Create "feature products" in "features" product group in your FastSpring store

{% endstep %}

{% step %}

### Set up product choice on your base product in FastSpring by selecting "feature products" created in step 3

{% endstep %}
{% endstepper %}

![Product Feature List](/files/b8669240706c760adf240270e2adeba45f2e6c7a)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.licensespring.com/integrations/fastspring/fastspring-classic-store.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
