Adding or updating a perpetual unit price

Learn how to assign a perpetual unit price to a subscription with add-ons.

Assigning a perpetual unit price to a customer's subscription is a crucial aspect of subscription management. This allows for a fixed pricing model that remains constant throughout the subscription's lifecycle, simplifying billing for businesses and customers alike. Through the Commerce API, you can easily set a perpetual unit price for the primary product and any additional add-ons, ensuring clarity and stability in subscription pricing. The following documentation will guide you through implementing this pricing model using an API call.

Assigning a perpetual unit price to a subscription

Businesses aim to offer value and convenience to their customers sustainably. Assigning a perpetual unit price to a subscription is a strategic approach that fosters long-term customer relationships by providing consistent pricing. This method benefits the business and its customers by ensuring price stability and transparency throughout the subscription period. In this section, we will show you how to set a perpetual unit price for a customer's subscription using the Commerce API, covering the necessary steps to implement this pricing model effectively for both primary products and add-on services.

Use the POST /v1/subscriptions/{subscriptionId}/perpetual-price resource to assign a perpetual unit price to a customer's subscription. You need to include the subscription identifier (subscriptionId) and the perpetual unit price (perpetUnitPrice). In the following example, the value of the product's perpetualUnitPrice is 120 and the value for the add-on's perpetualUnitPrice is 50. See the perpetual-price resource for more information

curl --location --request POST 'https://api.digitalriver.com/v1/subscriptions/{subscriptionId}/perpetual-price' \
--header 'authorization: Basic ***\
...
--data-raw '{
    "perpetualUnitPrice": 120,
    "addOns": [
        {
            "product": {
                "externalReferenceId": "A123"
            },
            "perpetualUnitPrice": 20
        },
        {
            "product": {
                "id": "B456"
            },
            "perpetualUnitPrice": 50
        }
    ]
}'

You will receive a 202 Accepted response. The new plan will go into effect on the next renewal.

See Selling subscriptions with add-ons for more information.

Creating a cart for a subscription with a perpetual unit price

Providing flexible pricing options such as perpetual unit pricing can significantly enhance the customer experience and loyalty. This guide walks you through creating a shopping cart that includes a subscription and assigns a perpetual unit price. By leveraging the Digital River API, you can effortlessly configure perpetual pricing for products in a shopper's cart, ensuring transparency and consistency in the pricing strategy. Whether handling standalone products or adding subscriptions with specific perpetual prices, this documentation outlines the steps to seamlessly integrate these options into the active shopping cart. This approach is particularly beneficial for businesses aiming to offer more value and flexibility to their customers, encouraging long-term engagement.

Use the POST /v1/shoppers/me/carts/active or the POST /v1/shoppers/me/carts/active/line-items resource to create a cart request. You need to include the perpetual unit price (perpetualUnitPrice) in the subscription override info (subscriptionOverrideInfo).

curl --location --request POST 'https://api.digitalriver.com/v1/shoppers/me/carts/active' \
--header 'authorization: Basic ***\
...
--data-raw '{
    "cart": {
        "lineItems": {
            "lineItem": [
                {
                    "quantity": "1",
                    "product": {
                        "id": "5363866300"
                    },
                    "customAttributes": {
                        "attribute": [
                            {
                                "name": "groupIdForAddon",
                                "value": "9814462289"
                            }
                        ]
                    },
                    "subscriptionOverrideInfo": {
                        "perpetualUnitPrice": {
                            "currencyCode": "USD",
                            "amount": 49.99
                        }
                    }
                },
                {
                    "quantity": "1",
                    "product": {
                        "id": "5400082600"
                    },
                    "customAttributes": {
                        "attribute": [
                            {
                                "name": "groupIdForAddon",
                                "value": "9814462289"
                            },
                            {
                                "name": "parentProductIdForAddon",
                                "value": "5363866300"
                            }
                        ]
                    },
                    "subscriptionOverrideInfo": {
                        "perpetualUnitPrice": {
                            "currencyCode": "USD",
                            "amount": 39.99
                        }
                    }
                }
            ]
        }
    }
}'

Apply the shopper and submit the cart using the Shoppers resource.

Creating or changing a perpetual unit price

Offering flexibility in pricing models is key to customer satisfaction and retention. The ability to set or adjust a perpetual unit price for subscriptions provides a competitive edge by enabling businesses to extend special pricing conditions that remain effective for the duration of a subscription. Whether you're looking to convert a non-perpetual subscription to a perpetual one or adjust an existing perpetual price, the following steps will walk you through the necessary API calls and considerations to ensure a seamless implementation.

Use the POST /v1/subscriptions/{subscriptionId}/perpetual-price resource to apply a forever price for the remaining subscription cycle. You can use it to change a non-perpetual subscription to a perpetual subscription if the supplied subscription is not a perpetual subscription. You need to provide the subscriptionId and the renewalUnitPrice. Note that the renewalUnitPrice cannot be higher than the existing price.

curl -X POST \
  https://{host}/v1/subscriptions/{subscription_Id}/perpetual-price \
  -H 'authorization: Basic ****' \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/json' \
  -H 'postman-token: 5cb141b9-8077-8b12-3eff-ebb45db3ffa6' \
  -d '{
        "perpetualUnitPrice" : 59.99
      }'

You will receive a 202 Accepted response. The new plan will go into effect on the next renewal.

Last updated