How FastSpring’s Proforma Invoice API Automates Subscription Renewals, Upgrades, and Add-Ons to Maximize Revenue

Braden Steel
Braden Steel • Senior Product Marketing Manager
August 12th, 2024
Estimated read time: 10 minutes, 29 seconds

Throughout the year, sales and subscription management teams juggle hundreds or thousands of subscription upgrades, add-ons, and renewals across customer accounts. However, existing solutions for generating pricing estimates for subscription changes, securing internal approvals, and providing customers with formal documentation are overwhelmingly manual, cumbersome, and error-prone.

And with businesses tightening their belts, one misunderstanding or misstep during the upgrade or renewal process can mean the difference between a multiple-year contract and unexpected customer churn.

What if every customer renewal—from estimate to invoice—was predictable and seamless for everyone involved?

That’s the vision behind FastSpring’s Proforma Invoice API. Our proforma invoice solution fosters subscription management efficiency and transparency by automating the creation of professional, approval-ready invoices based on existing estimates from the FastSpring platform. Your customers will appreciate the clear pricing breakdowns, and your go-to-market team will love the flexibility to accommodate diverse subscription models—removing the need for manual calculations.

The result? Streamlined approval processes. Stronger customer relationships. Predictable forecasting. And increased revenue.

Solution Overview

Whether it’s a straightforward renewal, complex upgrade scenario, or mid-term adjustment, the Proforma Invoice API delivers a polished pre-invoice essential for smooth decision-making and execution.

By using FastSprings Proforma Invoice API, developers and technical sales leaders can avoid:

  • Manual calculations and errors
  • Confusion and customer frustration
  • Tedious workflows and lost productivity
  • Missed renewal opportunities and lost revenue
  • Challenges with budget planning
  • Inflexible subscription management

Instead, FastSpring’s new Proforma Invoice API empowers revenue teams to:

Forecast Accurately. Create accurate proforma invoices for subscription renewals, upgrades, downgrades, and add-ons to streamline budgeting and pre-approve costs.

Increase Renewal Rates. Provide transparent cost breakdowns to reduce customer confusion, friction, and potential delays and disputes.

Improve Efficiency. Automate proforma invoice generation, eliminate manual calculation errors, and free up staff for higher-value tasks.

Streamline Approvals. Facilitate transparent approval workflows for discounted pricing or custom terms, accelerating the subscription management process.

Simplify Complex Scenarios. Support adaptable processes and API-driven integration for diverse subscription models and billing systems.

With clarity and efficiency at its core, the Proforma Invoice API gives developers the simple tools to effectively partner with go-to-market teams and subscription managers to project costs, secure internal approvals, and communicate billing details to existing customers. 

Now, let’s see our solution in action.

Solution in Action

FastSpring built its Proforma Invoice API for developers, but the benefits are for everyone. When developers deploy the simple code, accurate forecasting and expedited renewals get exponentially easier.

When companies experience rapid growth, managing flexible subscription terms, including duration and discounts, can be challenging. Without a proper system in place, this flexibility typically means manual processes and, in turn, errors from manual data entry. Further, when companies don’t have a way to sync subscriptions and add-ons into their calculations, revenue tracking can become a nightmare—and renewals often fall through the cracks.

Let’s examine how a sales team might use the Proforma Invoice API to ensure customer flexibility and maximum revenue for the business.

Sales Representative

Meet Steph. Steph is a top-performing sales representative for Wizzle, a fictional company that has experienced rapid subscription growth over the past few years. The sales team hooked potential customers in the early days by offering flexible subscription terms, including manual renewals, deep discounts, and varied term lengths. While this helped Wizzle grow its customer base quickly, it’s made renewals nearly impossible for Steph to keep up with. 

Steph wants her customers to have flexible options, so she needs a solution to generate proforma renewal invoices with different term lengths and pricing structures, unique customer discounts or negotiated rates, and offer promotions or prorated calculations.

To start, Steph needs flexibility in renewal requirements. Customers want to know if changes will occur immediately or during the next billing cycle. Proforma Invoice API allows either.

Here, you’ll see the code for a subscription change that goes into effect during the next billing cycle. Note the simplicity in identifying the requested number of units, the price, the requested units for the add-on (and associated cost), and whether or not the new pricing is prorated for this billing cycle.

An example of how one might implement a subscription management portal using the Proforma Invoice API.

Next Billing Cycle – Request

JSON
{

    "subscription": "7oSTq-tZS9S0LoOpiPQL5w",

    "product":"Standard"

    "quantity": 5,

    "pricing": {

        "price":  {

            "USD": 10

        }

    },

    "addons": [

        {

            "product": "Support Module",

            "quantity": 5,

            "pricing": {

                "price":  {

                    "USD": 7

                }

            }

        }

    ],,

    "prorate": false

}
Expand

The code snippet is nearly identical if the new pricing is prorated. Notice that “Prorate” is false in the first snippet and true in the following code snippet.

Immediate Application – Request

JSON
{

    "subscription": "7oSTq-tZS9S0LoOpiPQL5w",

    "product":"Standard"

    "quantity": 5,

    "pricing": {

        "price":  {

            "USD": 10

        }

    },

    "addons": [

        {

            "product": "Support Module",

            "quantity": 5,

            "pricing": {

                "price":  {

                    "USD": 7

                }

            }

        }

    ],

    "prorate": true

}
Expand

When you embed this code into your existing systems, your sales team has a clean and simple experience on the front end. The sales representative simply puts the name of the subscription into FastSpring, the requested quantity, any add-ons, and whether or not the changes are prorated—and the API will automatically generate an invoice with accurate calculations.

Next Billing Cycle – Output

JSON
{

  "proFormaInvoiceHeader": {

    "proFormaInvoiceCreationDate": "2024-03-16",

    "currency": "USD",

    "timezone": "UTC",

    "message": "This invoice and the renewal amount on the next charge date are valid as long as there are no additional changes to the subscription plan from today's date until the next charge date."

  },

  "contact": [

    {

      "type": "BILL-TO",

      "email": "john.doe@cloudtech.com",

      "firstname": "John",

      "lastname": "Doe",

      "phone": "555-987-6543",

      "organization": {

        "companyId": "550e8400-e29b-41d4-a716-446655440002",

        "companyName": "CloudTech Solutions",

        "department": {

          "departmentId": "550e8400-e29b-41d4-a716-446655440003",

          "departmentName": "Finance",

          "departmentDescription": "Handles billing, invoicing, and payment processing."

        }

      },

      "address": {

        "id": "550e8400-e29b-41d4-a716-446655440006",

        "addressLine1": "456 Shipping Lane",

        "city": "Miami",

        "region": "FL",

        "postalCode": "33101",

        "country": "USA"

      }

    },

    {

      "type": "SHIP-TO",

      "email": "jane.smith@datametrics.com",

      "firstname": "Jane",

      "lastname": "Smith",

      "phone": "555-123-4567",

      "organization": {

        "companyId": "550e8400-e29b-41d4-a716-446655440004",

        "companyName": "DataMetrics Analytics",

        "department": {

          "departmentId": "550e8400-e29b-41d4-a716-446655440005",

          "departmentName": "Operations",

          "departmentDescription": "Manages the delivery and deployment of software services to customers."

        }

      },

      "address": {

        "id": "550e8400-e29b-41d4-a716-446655440007",

        "addressLine1": "456 Shipping Lane",

        "city": "Miami",

        "region": "FL",

        "postalCode": "33101",

        "country": "USA"

      },

      "taxId": "123-tax-id"

    }

  ],

  "currentPlanSummary": {

    "product": "Basic",

    "billingFrequency": "1 month",

    "price": 8.50,

    "quantity": 1,

    "nextChargeDate": "4/6/24",

    "nextChargeAmount": 7.65

  },

  "proposedPlanSummary": {

    "product": "Standard",

    "billingFrequency": "1 month",

    "price": 50.00, // $10.00 per month for 5 quantities.

    "quantity": 5,

    "nextChargeDate": "4/6/24",

    "nextChargeAmount": 85.00 // $50 for Standard + $35 for Support Module.

  },

  "items": [

    {

      "product": "Standard Subscription",

      "quantity": 5,

      "price": 10.00,

      "discount": 0.00,

      "total": 50.00,

      "proratedItemAmounts": null

    },

    {

      "product": "Support Module",

      "quantity": 5,

      "price": 7.00,

      "discount": 0.00,

      "total": 35.00,

      "proratedItemAmounts": null

    }

  ],

  "invoiceAmounts": {

    "subtotal": 85.00,

    "discount": 0.00,

    "tax": 0.00,

    "total": 85.00

  }

}
Expand

In this scenario, the sales representative wants to create an invoice showing an altered subscription quantity at the next billing cycle. Based on the sales rep’s input, the system automatically and instantly creates a proforma invoice showing the new charges.

Immediate Application – Output

JSON
{

  "proFormaInvoiceHeader": {

    "proFormaInvoiceCreationDate": "2024-03-17",

    "currency": "USD",

    "timezone": "America/New_York",

    "message": "This invoice reflects immediate changes to the subscription plan, with prorated charges applicable from the change date to the next billing cycle."

  },

  "contact": [

    {

      "type": "BILL-TO",

      "email": "john.doe@cloudtech.com",

      "firstname": "John",

      "lastname": "Doe",

      "phone": "555-987-6543",

      "organization": {

        "companyId": "550e8400-e29b-41d4-a716-446655440002",

        "companyName": "CloudTech Solutions",

        "department": {

          "departmentId": "550e8400-e29b-41d4-a716-446655440003",

          "departmentName": "Finance",

          "departmentDescription": "Handles billing, invoicing, and payment processing."

        }

      },

      "address": {

        "id": "550e8400-e29b-41d4-a716-446655440006",

        "addressLine1": "456 Shipping Lane",

        "city": "Miami",

        "region": "FL",

        "postalCode": "33101",

        "country": "USA"

      }

    },

    {

      "type": "SHIP-TO",

      "email": "jane.smith@datametrics.com",

      "firstname": "Jane",

      "lastname": "Smith",

      "phone": "555-123-4567",

      "organization": {

        "companyId": "550e8400-e29b-41d4-a716-446655440004",

        "companyName": "DataMetrics Analytics",

        "department": {

          "departmentId": "550e8400-e29b-41d4-a716-446655440005",

          "departmentName": "Operations",

          "departmentDescription": "Manages the delivery and deployment of software services to customers."

        }

      },

      "address": {

        "id": "550e8400-e29b-41d4-a716-446655440007",

        "addressLine1": "456 Shipping Lane",

        "city": "Miami",

        "region": "FL",

        "postalCode": "33101",

        "country": "USA"

      },

      "taxId": "123-tax-id"

    }

  ],

  "currentPlanSummary": {

    "product": "Basic",

    "billingFrequency": "1 month",

    "price": 8.50,

    "quantity": 1,

    "nextChargeDate": "4/6/24",

    "nextChargeAmount": 7.65

  },

  "proposedPlanSummary": {

    "product": "Standard",

    "billingFrequency": "1 month",

    "price": 50.00,

    "quantity": 5,

    "nextChargeDate": "4/6/24",

    "nextChargeAmount": 85.00

  },

  "items": [

    {

      "product": "Standard Subscription",

      "quantity": 5,

      "price": 10.00,

      "total": 50.00,

      "proratedItemAmounts": {

        "proratedCharge": "35.00",

        "proratedCredit": "0.00",

        "proratedTax": "0.00",

        "proratedAmount": 35.00

      }

    },

    {

      "product": "Support Module",

      "quantity": 5,

      "price": 7.00,

      "total": 35.00,

      "proratedItemAmounts": {

        "proratedCharge": "24.50",

        "proratedCredit": "0.00",

        "proratedTax": "0.00",

        "proratedAmount": 24.50

      }

    }

  ],

  "invoiceAmounts": {

    "subtotal": 85.00,

    "discount": 0.00,

    "tax": 0.00,

    "total": 59.50

  }

}
Expand

In this scenario, the sales rep wants to show the customer the same subscription change but with a prorated price for August. In both scenarios, you can see how simple it will be for the sales rep to quickly show the customer several options, ensuring flexibility and a smooth path to growth and renewal.

Conclusion

When businesses scrutinize every fee and subscription, a smooth and speedy renewal process can be all it takes to retain more customers. However, that process requires automation, accuracy, and transparency in all customer communications—especially regarding pricing for add-ons and renewals.

FastSpring’s Proforma Invoice API removes the internal hassles, potential errors, and customer frustrations inherent in the old way of managing invoices. By deploying simple lines of code in your existing backend system, you can instantly empower teams to create accurate proforma invoices for their customers. Renewals that used to take weeks or months of negotiations can now take a few days—or even a couple of hours.

There will be no more back-and-forth, miscommunications, or frustrations. With FastSpring’s Proforma Invoice API, customers are happy, and finance teams can accurately forecast and hit their numbers more consistently. What more could you ask for?

Braden Steel

Braden Steel

Braden is the Senior Product Marketing Manager for FastSpring. When he's not bringing new products to market, he spends his time writing fantasy novels.

Try FastSpring

Get a free account and see why FastSpring is the ecommerce partner of choice for software providers around the world. Try our full-service ecommerce solution today to unlock revenue growth for your online company.