Advanced Billing Scenarios

Bill for Overages

  1. Create a product
  2. Create A Metered Component
  3. When defining your Metered Component’s Pricing, set the first bracket to $0 (this represents the amount included in the base price of your product). Set the subsequent bracket(s) to your overage fees.
  4. Ensure to review in detail tiered pricing to understand the method of using this pricing scheme for components.

Example: a SaaS company charges for monthly SMS messages. If the base product is $99/mo for 10,000 SMS messages with a 5 cent overage for each additional SMS message, the above image represents a metered component setup. The pricing scheme above would be tiered (however, your scheme may vary depending on your needs).

Custom Price or “Name Your Price”

  1. Create a $0 Product
  2. Create a Quantity-based Component AND… When defining your Quantity Component, set Unit Name to a singular version of your currency (see example 1.1), set Pricing Scheme to “Per Unit”, and checkmark “Allow Fractional Quantities”. This will allow the price to be typed in (see example 1.2).

Example 1: Configuring the Custom Pricing/”Name Your Price” model. Since each unit represents $1 and you accept fractional quantities, you can allocate any amount down to the penny. This is ideal for Sales teams who define custom offers, non-profits who accept donations, and any other scenario where your pricing may have a large (or infinite) number of possibilities.

Example 1.1: (Line item from Statement) The Statement line item is structured based on the following: Component Name: Number of units, Plural Unit Name, Price.

Example 1.2: (Typing the Price) Typing the price in the Chargify app. This price can also be optionally typed in a payment page or the Billing Portal.

Quantity Based Recurring Billing

  1. Create a product If you only bill for the quantity of some unit and not a base product, create a $0 product.
  2. Create a Quantity-based Component

Bundled (Rolled Up) Pricing

This pricing model is accomplished by creating one base product and adding multiple components that represent your add-ons. Based on your needs, you may need to include multiple component types.

  1. Create a product If you only bill for the quantity of some unit and not a base product, create a $0 product.
  2. Create each of your components AND…
  3. Focus on the “Display on Public Signup Pages” step when creating your components (the final step when creating your components, the directions are included in the link from step 2). This will control which add-ons are available in the bundle for a particular product on the signup page. If you are using the API, simply reference the component IDs you want to allow in the bundle for your particular product.

Example: This example would be accomplished using 3 [On/Off Components]. Other examples of bundled packages include a SaaS company charges $100/month, plus $10/month per user, and offers a high priority support option for an additional $50/month or a communications company allows customers to select any combination of TV, internet, and phone services

Multiple Subscriptions

The subscriptions will have the same billing cycle.

  1. Create a $0 Product
  2. Create Components (In this use case, each component represents a subscription).

    • 2a. Create On/Off Components: Use this type of component if your subscriptions are a flat, non variable price, where a customer can only choose between subscribing or not subscribing.

    • 2b. Create Quantity Components: Use this type of component if you allow your customers to add more than 1 of the same subscription type.

    • 2c. Remove then $0.00 at first renewal message (optional)

Example 2a:Multiple Subscriptions Using On/Off Components

This image demonstrates a Public Hosted Page with 3 On/Off Components. The complete product is $20/mo + the option of adding any of 3 extra subscriptions. See the payment page here. If you do not want “extra” subscriptions that do not include a base price, simply make the base product $0/mo (or any billing duration such as $0/yr).

Example 2b: Multiple Subscriptions Using Quantity Components. This image demonstrates a Public Hosted Page with 2 Quantity Components. The complete product is $0/mo + the option of adding a quantity of extra subscriptions. See the payment page here.

Multiple Subscriptions with Different Billing Cycles

If you only bill for the quantity of some unit and not a base product, 1. Create a $0 product. 2. Create each of your components AND…

Since a billing cycle is defined at the product level, multiple billing cycles can only be achieved by creating more than one Product. Multiple Products means your customer will have a subscription to each, and will therefore receive two separate charges to their card. Depending on your use case, this may or may not fit.

  1. Create more than one product
  2. Create each of your components
  3. The Customer Subscribes to Both Products through one of the following methods:
    • 2 Payment Pages Your customer signs up on the public payment pages twice. They will need to enter their credit card twice.

    • 1 Payment Page + Manual Second Subscription Your customer signs up on the public payment page and then you subscribe them to the second product manually in the app.

    Go to Subscriptions Tab –> Create New Subscription –> Choose Existing Customer –> Choose Existing Payment Method.

    • 1 Payment Page + Webhooks + API Your customer signs up on the public payment page. When you receive a signup_success webhook, you use the subscriptions API to immediately create their second subscription by referencing their customer_id or customer_reference.
    • Chargify Direct + API Your customer signs up via your Chargify Direct signup form and you use the Subscriptions API to immediately create their second subscription.
      • Chargify Direct and API v2 - Signups
      • Subscriptions API

Contract Billing and Cancellation Fees

Example: An example pricing model that bills $100/mo for a 12 month contract.

Optional Steps:

  1. Require Cancellation Fees (Disabling self-cancellation if you use the Billing Portal)

    • Go to Settings Tab –> Billing Portal
    • Make sure allow cancellation options are unchecked (there are 2)
    • Through a method you prefer, require that your customer contacts you to cancel. When they do contact you, follow step 2 below:
  2. Add a One time Charge and Cancel Your Customer in the Chargify app

    • Go to Subscriptions Tab –> Click Customer’s Name
    • Click Actions
    • Click Add Charge See example
    • Fill out the details, add a descriptive memo such as “Cancellation Fee”
    • Save
    • Click Actions
    • Click Initiate Cancellation
    • Cancel the customer

Charge Customers on the Same Day Each Month (Calendar Billing)

Customers are charged a prorated amount if they signup mid-period and then the full amount of the product will be charged on the date your specify.

  1. Create a product
    • The product period must be 1 month
    • The product cannot have a trial
    • The product cannot have an expiration
  2. Create a Public Signup Page to sign up subscribers on the intended date.

Full documentation on calendar billing here.

One Time Charge for a New Customer

This is most applicable if you just want someone to sign up, they pay you a set amount of money, and then the relationship is pretty much over.

  1. Create a product
  2. Set the Product’s Billing Cycle and Expiration for 1 Day AND…
  3. Remove the expires in 1 day message (optional)

One Time Charge for an Existing Customer

Charge a one time additional fee for a current subscriber.

Adding a one time charge in the Chargify UI:

  • Go to the Subscriptions Tab
  • Click the Customer’s Subscription
  • Click “Actions” in the top right
  • Click “Add Charge”
  • Add your charge and save

More details on one time charges here.

One Time Charge that happens more often for the same customer

You do not charge your customer on a recurring basis, however you want to store the credit card to apply one time charges when applicable.

  1. Create a $0 Product. Most likely monthly, but you can choose.
  2. Apply one time charges in the UI when applicable (see steps above)
  3. Remove the expires in 1 day message (optional)

Note: the steps outlined in this link are for removing the “expires message”, however the same steps apply to remove the renewal message)

Additional one-time charge resources available here.

One Time Gift

A “gifter” buys a gift for a recipient. It is a one time payment, the gift is sent once, and that’s it.

  1. Create a product
  2. Set the Product’s Billing Cycle and Expiration for 1 Day AND…
  3. Remove the expires in 1 day message (optional)

Recurring Gift with Expiration

A “gifter” buys a gift for a recipient such as a monthly box subscription. The “gifter” pays once, but the box is sent out on a recurring basis for for the duration of the gift. For example, a $120 gift for a 6 month subscription, would be $120 every 6 months and expires after 6 months.

  1. Create a product that expires.
  2. Set the Product’s Billing Cycle and Expiration for the duration of the gift AND…
  3. Remove the expires in 1 day message (optional)

Recurring Gift with Expiration Using a Setup Fee (Alternative)

  1. Create a $0 Product
  2. Make the Product’s setup represent the cost of the gift
  3. Set the Product’s Billing Cycle and Expiration for the duration of the gift AND…
  4. Remove the expires in 1 day message (optional)

Recurring Gift with Expiration (when you want the recipient to extend their subscription)

Since the credit card on file belongs to the “gifter”, the recipient will need to create their own subscription.

  1. Create a product
  2. Communicate with your customers that they need to subscribe in order to have a subscription of their own.

Reseller

You want to offer your clients a billing service. Chargify allows you to create a Site for each of your resellers to have their own product catalog, customers, and settings. Most importantly, each Site can connect to its own payment gateway, so payments can be sent to your reseller’s bank account.

  1. Create Your First Site: You will have a Master Site. This is the Site where you bill your actual Resellers.
  2. Create A Site for Each Reseller

  1. Create the Reseller’s Products and/or Create the Reseller’s Components inside each Site. If you want to allow the Reseller to have full access to the Chargify admin section but you only want them to have access to their individual Site, you’ll need User Permissions (available on the Pro Plan and higher).

  1. Define the Settings inside each Site.
  2. If necessary, connect each Site to its own payment gateway. This ensures that your resellers get paid directly to their bank account.

Percentage Based Billing

  1. Create a product
  2. Create each of your components if necessary
  3. When defining your Metered Component’s Pricing, set the per unit cost to the decimal value that represents the percentage you want to charge. You may need to include Fractional Quantities as well (eg: you will be allocating revenue that contains cents).

  1. Manually allocate your customer’s revenue manually in the UI.

Percentage Based Billing Alternative

Follow all the steps above, but with the exception that you create a $1/unit component instead. See Example 1 image here. Using this strategy, you would calculate the 1% charge on your side and simply allocate the amount to charge. For example, if your customer makes $10,000 in a month, you calculate 10000 * .01, and report a quantity of 100 to Chargify. Since each unit is $1, we charge your customer $100.

Referrals (track salesmen for commissions)

This setup has a quite a few steps, but it will be well worth it. The final result is a Public Signup Page where your Salesman’s unique code is submitted along with the signup. You can then track which Salesmen should get commission.

  1. Create a product
  2. Create a component if necessary
  3. Create A Custom Field: This will collect the unique ID that represents the Salesman. You will most likely want a Text Input and to display on Subscription Exports.
  4. Enable the Custom Field on Your Payment Page via the Setup Tab –> Public Signup Pages –> **Edit (on your Product) –> Checkmark the Custom Field to Display)
  5. Find the Custom Field ID by going to the setup -> Custom Fields, click the name of your Custom Field, and then your Custom Field ID will appear in the URL. In this example, our Custom Field ID is 10463.

  1. Add your Custom Field as a parameter in your Payment Page URL

    • Get your Public Signup Page URL
      • example: https://chargify-sandbox.chargify.com/subscribe/ztn8pwg2/monthly-plan-2)
    • Add “?sales=mysalesmanID” to the end of the URL
      • (example: https://chargify-sandbox.chargify.com/subscribe/ztn8pwg2/monthly-plan-2?sales=mysalesmanID).
    • Your syntax may vary. “sales” is the name of your Custom Field and “mysalesmanID” is your unique code that represents your Salesman.
  2. Prepopulate the Custom Field text input with your Salesman’s unique ID.

  1. On the same page from step 4, add the following Javascript. Replace “sales” with your Custom Field name and replace “10463” with your Custom Field ID. Additionally, hide the Custom Field (Add this code in the same section as step 7 above).

Chargify Modern Public Signup Pages

Please use the below snippet if you are utlizing Chargify’s Modern Public Signup Pages.

function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}

var sales = getUrlVars()["sales"];
$("#subscription_metafields_10463").val(sales);

//this will hide the entire Custom Field section
$(".form__section--additional-information").hide();

Chargify Classic Public Signup Pages

Please use the below snippet if you are utlizing Chargify’s Classic Public Signup Pages.

function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}

var sales = getUrlVars()["sales"];
$("#metafield_10463").val(sales);

//this will hide the entire Custom Field section
$('.metafield_configuration').hide();
$('#contact_info+ h2').hide();

Refer-a-friend

  1. Create a product
  2. Create a component if necessary
  3. Set up your Referral Discounts: follow steps 1 and 2 in the Configuration Section
  4. Put Referral Code in Email Templates so your customers can refer a friend via one of the following:
  5. Social Media (optional) - Spread the word by allowing your customers to link their referral codes on social media. You can put the contents of step 4 in your email templates. If you want to display these links on your website, you can get the unique ref ID for each customer using the Subscriptions API.

A great example of usage is to create a Twitter button for your page. This would bring the customer to a page where they can submit their tweet.

Recurring with Flat Recurring Shipping Fee

  1. Create a product
  2. Create an On/Off Component
  3. Prepopulate the Component on the Public Signup Page
    • a. Find your component ID under the Setup Tab –> Your Components

  • b) Get your Public Signup Page URL
  • c) Add the following parameter to your URL (replace x with your Component ID)

?components[][component_id]=x&components[][allocated_quantity]=1

Example page with pre-populated On/Off component. ## Recurring with Fixed Setup Fee

  1. Create a product
  2. Define your Setup Fee:

Recurring with Variable Setup Fee

  1. Create a product
  2. Create a metered component as your variable setup fee.
  3. When defining your Metered Component, set the Name to “Setup Fee” (or something similar), set the Unit Name to a singular version of your currency, and define your pricing as a $1/unit with fractional quantities. This will allow for a custom setup fee down to the penny.

Recurring with Setup Fee and Trial

  1. Create a product
  2. Define your Setup Fee (using a Fixed setup fee) AND… Choose When to Charge Setup Fee - The “When to Charge the Setup Fee” option only applies to the setup fee cost defined in the Initial/Setup Fee field.

Example: This is a free trial for 7 days with a $15 setup fee that charges before the trial begins. Alternatively, you can charge the setup fee after the trial period.

Each Component has a Setup Fee

This example assumes you need to charge a setup fee for each quantity component.

  1. Create a product
  2. Create A Quantity Based Component
  3. Create a metered component: This is your one time setup fee for each quantity component
  4. Find the component ID for both of your components
  5. In the following Javascript snippet, replace XXXXX with your Component IDs. The first one will be your quantity component ID, the second one will be your metered component ID. Place this code in Settings Tab –> Public Page Default Settings –> Javascript to show on all payment pages, or place this code in Setup Tab –> Public Signup Pages –> Edit (on the product of your choice) –> Javascript for individual pages.
//sets two component values equal to each other
$(function () {
  var component1 = $("#component_allocated_quantity_XXXXX");
  var component2 = $("#component_allocated_quantity_XXXXX");

  component1.change(function(){
    component2.val($(this).val());
  });
});
  1. Go to your payment page, type a value for the quantity component, and click update totals. Verify the metered component matches.
  2. If Step 6 is successful, add one more line of Javascript to hide the metered component from view. Make sure XXXXX is your metered component ID.
//hide a component on the payment page
$("#component_allocated_quantity_XXXXX").hide();

Allowing Donors to “name my price” for Recurring Donations

If you have a charity or non-profit organization that collects donations from people, you may want to allow your donors to enter any amount, and then have that amount repeat every month or every quarter, etc.

Chargify is designed around the idea that product prices are predefined in Chargify, so how to allow each donor to enter the amount they want may not be obvious. But there is a way! You’ll set up a free recurring product and then add a “Quantity Component” to capture the recurring donation amount from each donor:

  • “Sacramento Animal Shelter” (Product Family name, which appears on hosted signup page)
  • “Monthly Donation” (Product name): $0 per billing period. Period = 1 month.
  • “Monthly Donation Amount” (Quantity Component name): $1 per unit

Here’s how this works: your donor will sign up for a free recurring product, but there will also be a Quantity Component added to that subscription. A Quantity Component rides along with a product and bills whenever the product bills. Your donor enters the amount they want right on the Chargify hosted signup page, by entering a quantity for the component. Each unit of the component is $1, so by entering “17”, the donor will pay $17 per month.

Now, the hosted page usually wants to display more info than you’ll want in this case. For instance, showing your donor that the product is a $0 product will be confusing. So here is Javascript that you can upload in your Chargify hosted page settings to make the form perfect for donations:

function hideRecurringLineItem(){
  $('#summary-recurring-charges').hide();
  $('.component-info').hide()
  $('.line-item_component').each(function(){
    var txt = $(this).text();
    $(this).text(txt.split(":")[0]);
  })
}
$(document).bind("afterSummaryRefresh", hideRecurringLineItem);

Here’s the result…