TABLE OF CONTENTS



 Subscription Service provided by Solid allows you to create and maintain a stable and healthy subscription model for your business. 



Create a subscription


Kindly note, you will not be able to edit product properties after the 1st subscription payment. However, you can create multiple products and switch customers between them. 


Create a Product


    To start working with Solid Subscription Services, you need to create a Product in our admin panel->subscription tab with the following parameters:



  • Price (cents); 
  • Currency; 
  • Billing Period; 
  • Amount of Billing Period; 
  • Action after the last billing.


 

Create a Trial


Now, when we have the product ready, you can set up product Trial parameters: 




  • Price;    
  • Currency; 
  • Billing Period; 
  • Payment Action (charge, auth + void, charge + refund). 



Charge: we will charge a customer with a subsctripion trial cost. 
Auth + Void: we will authorise and then void (same day) the transaction, so that we will get the needed card token from the action yet keep the trial subsctiption cost-free. 
Charge + Refund: we will charge a customer with a subscription trial cost and refund it after (up to few days).



 

Retry payment logic


    You can set up payments retry logic to increase the success rate of recurrent payments. Retry will act when we receive a decline for recurrent payment. The goal here is to find a point in time when a customer has funds and to perform a successful payment. Therefore it is a good practice to set up a few Retry iterations for one product.

Retry has the next parameters:  



  • Type (period / week day);  
  • Period (after x days / at Friday);
  • Retry After;
  • Discount Amount (amount or persentage).


Discount Amount works for Insufficient Funds error code. Hence we can decrease the subscription cost to try to find the amount we can charge.  


 

Initiate a Subscription


    Please find a detailed description of the request to initiate a subscription to card payment methods or ApplePay / GooglePay and PayPal can be found here




Subscription status


There are two options to receive subscription status:

  1. Notification to subscirption_callback_url;
  2. Subscription status request.


    If you passed the subscription_callback_url parameter to the subscription creation request, callbacks will start to arrive at the specified URL.


You can request the subscription status by subscription_id.

All customers subscriptions are available by customer_account_id.

All changed subscriptions by the specified period can be requested by Subscription reconciliation.



Kindly note, callback_type available only in callback notifications. There is no such field in Subscription status requests.



Subscription flow


  1. First of all, you need to make an init request;
  2. Display the card form to the customer;
  3. If the user does not submit the form, then the subscription is not created, and the order remains in the created status for 24 hours, then it gets deleted from the system.
  4. If a customer declines payment, the order moves to declined status. Consequently, a subscription was not created. 
  5. If a customer approves payment, the payment is successful, and the order moves to approved status. From this point subscription is active. The subscirption_callback_url receives a notification
  6. You can identify subscription by Order_ID (should be included in Init request at your end) and customer_account_id (should be included in init request at your end).
  7. Following interactions by subscription_id.



Subscription prolongation flow


  • In case a customer subscribed to a Trial, after the 1st payment, we send to subscription_callback_url:


        {

         "callback_type": "init", 

         "status": "active

        }

  • When the Trial has ended, and it was prolonged to the subscription:

        {

         "callback_type": "renew", 

         "status": "active

        }

  • If a customer reached out, your customer support with a request to unsubscribe, but his subscription remains active till the end of the billing period (soft cancel):

        {

         "callback_type": "update", 

         "status": "active

        }

  • In case a customer has reached the end date of the subscription period: 

        {

         "callback_type": "cancel", 

         "status": "cancelled

        }



Redemption period


For cases where you implemented a retry flow in your subscription product: 

  • After the unsuccessful recurrent payment,  you will receive notification to a subscription_callback_url about the subscription status change from active to redemption. In such cases, you should restrict the product functionality for the customer because, during the redemption period, the customer uses your product for free. Hence we can overcome declines partially. 

        {

          "callback_type": "update",

         "status": "redemtion

        } 


  • In case retry for recurrent payment was successful, the subscription goes back to the active status. You will receive a notification to the subscription_callback_url. 

        {

         "callback_type": "renew", 

         "status": "active

        }

  • If all retries attempts failed to succeed, the subscription status changes to cancel. After the following notification, you should terminate access to the product for the user. 

        {

         "callback_type": "cancel", 

         "status": "cancelled

        }


Subscription cancel flow


Manual cancel


    

    Via Solid Hub

    

    You can restore a subscription via our in our admin panel->subscription tab->list:

  • Go to the subscription tab.
  • Filter subscriptions by customer's email address. 
  • Click "Cancel" to cancel at the end of the billing period (soft cancel). 
  • Click "Cancel now" to cancel the subscription immediately (force cancel).



    Via Solid API


 You can cancel a subscription via my.solidgate.com or by API


There are 2 options:

  • Cancel subscription instantly (force cancel). In this case, we send the following notification: 

        {

         "callback_type": "cancel", 

         "status": "cancelled

        }

  • Cancel subscription after the end of the billing period (soft cancel). For this case we send the next notification:

        {

         "callback_type": "update", 

         "status": "active

        }


    As you can see, subscription status remains active till the end of the billing period. After the end of the period, we send another notification, cancel in this time: 

        {

         "callback_type": "cancel", 

         "status": "cancelled

        }


Automatic cancel


A subscription can be automatically cancelled in the following instances:

  • During retry payment, antifraud triggered, and the order was cancelled with decline code 4.09. As a result, we will not perform the next retry payments.
  • We received a chargeback for one of the subscription orders. As s result, we will stop all customer's subscriptions and all following retries. 
  • For the first subscription payment, the customer used a Maestro card. We will notify you regarding the matter and unsubscribe the user from all recurrent subscription payments. 


You can check a complete list in our documentation in the Available Subscription Cancel Codes paragraph.


Restore a subscription


Via Solid Hub

    

    You can restore a subscription via our in our admin panel->subscription tab->list:

  • Go to the subscription tab.
  • Filter subscriptions by customer's email address. 
  • Click "Restore". 



Via Solid API


    By using this method, you can restore your client's specific subscription via API.



Switch Subscription Product


    If you would like to provide a discount or change the billing period for any given user, you should create a new Product with the needed parameters. 


    Applying this method, you can replace the product used in the active subscription with a new one. After the request to switch the product has been completed, a callback will be sent with the corresponding update (new product name for the subscription). The new product settings will be applied after the next debiting date.