Create a subscription

Learn how to track trials and create subscriptions for users of your SaaS application

When a new tenant is created in your SaaS application it will be reflected in Bunny as a Subscription.

There are 2 main types of subscription:

  1. Trial - where a product plan has been configured to allow trials this type of subscription will be flagged as a trial. At the end of the trial it will either cancel or activate to a paid subscription.

  2. Active - this is a paid subscription. Invoices will be generated and payments will be collected.

Prerequisites

Before you can start tracking your trial subscriptions you will need to complete these tasks:

  1. Create a Plan and associated Price List in Bunny. Take note of the code that you set for the price list as you will need that in the next step.

Make the request

Assuming that you have completed both of the prerequisite steps you should have API credentials and a Bunny SDK installed as well as having a plan, price list and code setup.

You can either use the subscriptionCreate mutation or the create subscription method on our SDKs to setup a new subscription.

For example, create a new trial subscription and provide Bunny with the unique ID of the new tenant in your SaaS application.

Mutation

mutation subscriptionCreate ($attributes: SubscriptionAttributes!) {
    subscriptionCreate (attributes: $attributes) {
        subscription {
            id          
            account {
                id
                name
                contacts {
                    id
                    firstName
                    lastName
                }                
            }
            trialStartDate
            trialEndDate
            startDate
            endDate
            state
            plan {
              code
              name
            }
            priceList {
                code
                name
            }
            tenant {
                id
                code
                name
            }
        }
        errors
    }
}

Attributes

{
  "attributes": {
    "account": {
        "billingContact": {
            "firstName": "John",
            "lastName": "Titor",
            "email": "[email protected]"
        },
        "name": "Superdesk Inc"
    },  
    "trial": true,
    "priceListCode": "free",
    "tenant":{
        "code": "superdesk"
    }
  }
}

We recommend submitting the tenantCode with your request so that Bunny is aware which tenant in your SaaS application the subscription belongs to.

Bunny will send your tenantCode back with subscription change webhooks so that you know which of your tenants to update with any changes.

Optional parameters

Parameter

trial

Boolean

If the product plan supports a trial period then when this parameter is `true` the subscription will be created in a TRIAL state.

tenantCode

String

The unique identifier for the tenant on your SaaS platform.

Handling errors

Providing that you have a valid access_token and well formed query then any errors are likely to be related to the data you are submitting.

In the case of an error the response will contain an `errors` section that provides detail on what went wrong.

For example, In this case we provided an invalid product plan code.

{
    "data": {
        "subscriptionCreate": null
    },
    "errors": [
        {
            "message": "Product plan not found",
            "locations": [
                {
                    "line": 2,
                    "column": 5
                }
            ],
            "path": [
                "subscriptionCreate"
            ]
        }
    ]
}

What happens next?

After a success request to create a subscription the following objects will be created in your Bunny account.

  • Account - The company or organization that has signed up for your SaaS application

    • Contact

    • Deal - A new deal representing the trial or new business opportunity.

      • Quote

    • Subscription

      • Tenant - If provisoning is enabled on your platform.

If you created a trial subscription then get to work on making the customer experience awesome and converting that trial to a paid subscription.

Last updated

Was this helpful?