# Adding Plans

Having created a Service, you can create different Plans under the correspondig step by clicking **Add Plan**:

<figure><img src="https://416365155-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVziGvOGJssgAUojsPRj%2Fuploads%2Fut1X4QWzOlSgtXKcs7OZ%2Fimage.png?alt=media&#x26;token=ebd45a9a-65dd-4f11-8423-d1e7e3af1082" alt=""><figcaption></figcaption></figure>

Setting up a plan will walk you through the following steps.&#x20;

<figure><img src="https://416365155-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVziGvOGJssgAUojsPRj%2Fuploads%2F7MR3qx3t9y3PqOCsGhMv%2Fimage.png?alt=media&#x26;token=83bc4bb3-e48f-47fe-81a0-2970bf92b891" alt=""><figcaption></figcaption></figure>

As with Services, each step indicates with a checkmark <img src="https://416365155-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVziGvOGJssgAUojsPRj%2Fuploads%2Fg5K00lcTZJTHXOVg6zf9%2Fimage.png?alt=media&#x26;token=7177bd71-98ab-4ce0-a112-5045e7be6094" alt="" data-size="line"> if all mandatory fields are filled out. Once all steps are completed, the Plan can be submitted for publishing.

## General Setup <a href="#addaplan-step2.1servicetype" id="addaplan-step2.1servicetype"></a>

Define your plan's name, service type, and approval process.

* When defining your **Plan Name**, please note that the plan name **cannot be changed** after the plan has been published.
* **Plan type** - if your service will be exclusively consumed via API calls, select the  **API**.
* For non-API SaaS offerings select the Service type **Application**. See more about this option under [Services without APIs](https://docs.apinity.io/concepts/services-without-apis).
* Upload a **Contract** that describes the terms and conditions of the service you are providing. This is *mandatory* on marketplace.apinity.io for external customer facing services to be published in the Catalog.&#x20;

## Permissions <a href="#addaplan-step2.2visibility" id="addaplan-step2.2visibility"></a>

Decide whether your plan is public or restricted.

* **Selected Workspaces** - can be offered individually to other Workspaces, otherwise hidden from the catalog. Your own workspace is included by default. If you don't add any further workspaces, the Plan will be private to your own workspace.
* **All Workspaces** - available for anyone to consume, publicly listed in the marketplace catalog.&#x20;

Additionally, you can enable **Subscription Approval** if you would like tighter control over your subscribers. This is Off by default, allowing everyone to subscribe to your publicly available plans. You can read further about this feature under [Subscription approval](https://docs.apinity.io/step-by-step/provide-a-service-on-the-marketplace/subscription-approval).

## Manage API <a href="#addaplan-step2.3access-onlyforservicetypeapi" id="addaplan-step2.3access-onlyforservicetypeapi"></a>

{% hint style="info" %}
This step is only available if the selected Plan type is API.&#x20;

Similarly, certain Limit & Pricing options are only available for API plans.
{% endhint %}

Here you can select one or more APIs from your [API Collection](https://docs.apinity.io/step-by-step/add-an-api#api-collection). The *Limits and Pricing* section will parse the assigned APIs in order to provide granular configuration per endpoint and transactions.

## Limits and pricing <a href="#addaplan-step2.5limitsandpricing-pricing" id="addaplan-step2.5limitsandpricing-pricing"></a>

### *Demo plan*

Mark the **Set as a Demo** checkbox if appropriate. A demo plan is a free plan to which users can subscribe so that they can try out your service (for example, for testing and integration purposes). Demo plans are highlighted in the marketplace. \
It is highly advised to set a [rate limit](#limits) for Demo plans!

### *Limits*

Limits can be defined for your pricing plan. E.g. "100 Requests per month."

* Click **Add Limit**.
* Under **Amount**, specify the maximum amount for this limit
* Under **Period**, specify the time interval for the limit. You can only specify one limit per period type.

### *Transaction Configuration*

A transaction is any specific HTTP endpoint and/or HTTP response, derived from the assigned API specification, that can be used for your offered services' billing purposes. You can create multiple transactions for one service and refer to them while configuring your pricing plan.

* Click **Add Transaction**.
* Specify a Transaction Name.
* Select the Transaction Recognition Type (**Single Request** or **Response Header**).
  * **Single Request** will count any request to a certain endpoint, followed by a specified server response (e.g. 200-203 as successful requests).
  * **Response Headers** allow you to configure multiple endpoints. An additional ID needs to be added as a header. A response from any of the endpoints including this additional header value will be counted as a transaction.
* Select the appropriate Endpoint(s).
* For Single Request, define the HTTP Response Codes; for Response Header, define the Header Name and Value.
* Click **Add Transaction** to finish adding the transaction.

### *Pricing*

Define prices, such as an overall periodical fee, or a fee for each unit or for each transaction.

The available currencies are pre-defined by the tenant administrator.

{% tabs %}
{% tab title="API Plans" %}

* **Price per period**:
  * Under Period, select *Per Month* or *Per Year*.
  * Under Amount, define the price that should be billed per period.
* **Price per Request**:
  * Under Amount, define the price for one unit.
* **Price per Transaction**:
  * Under Amount, define the price for one transaction.
  * Click *Add transaction*, and select the transaction for which this price should be billed.
    {% endtab %}

{% tab title="Application Plans" %}

* **Price per period**:
  * Under Period, select *Per Month* or *Per Year*.
  * Under Amount, define the price that should be billed per period.
* **Price per User**:
  * Under Amount, define the price for one user.
* **Price per Setup**:
  * Under Amount, define the price for one setup.
    {% endtab %}
    {% endtabs %}

## Complete & Close <a href="#addaplan-continuewithpreview-and-publishing" id="addaplan-continuewithpreview-and-publishing"></a>

When you completed the plan setup, you can continue with publishing: [Preview & Publish](https://docs.apinity.io/step-by-step/provide-a-service-on-the-marketplace/preview-and-publish-your-services-and-plans)
