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.
  4. Set the subsequent bracket(s) to your overage fees.
  5. 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 100,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).
Screen_Shot_2021-12-03_at_11.33.02_AM.png
Example pricing scheme

"Name Your Price”

For Remittance Invoicing Sites

Custom Pricing for products and components can be used in catalogs such as this. For more information on how to use these, please check out this documentation.

For Statement Sites

  1. Create a $0 product
  2. Create a quantity-based component
  3. When defining your quantity component, set unit name to a singular version of your currency (Example 1.1. below)
  4. Set pricing scheme to “per unit”, and checkmark “allow fractional quantities”. This will allow the price to be typed

Example 1: Configuring the ”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 non-profits who accept donations.
Screen_Shot_2021-12-03_at_11.35.03_AM.png
Configure your component

Screen_Shot_2021-12-03_at_11.35.40_AM.png

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

name1_1.png
Example of cost reflected on the invoice

Example 1.2: (Typing the price) Typing the price in the Advanced Billing application. This price can also be optionally typed in a payment page or the billing portal.

name1_2.png
Component setup in the Advanced Billing application

Quantity based recurring billing

  1. Create a product
  2. If you only bill for the quantity of some unit and not a base product, create a $0 product.
  3. Create a quantity-based component
25permonth.png
Example of signup for $25/month

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
  3. Focus on the “Configure Components” step when creating your components.
  4. Here you’ll select what components appear on your Public Signup Pages.
  5. 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:

  • A company that charges $100/month, plus $10/month per user
  • An offer of a high priority support option for an additional $50/month
  • A communications company allows customers to select any combination of TV, internet, and phone services
bundled.png
Example of selections a subscriber can purchase

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, nonvariable 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 Signup Page with 3 on/off components.

  • The complete product is $20/mo + the option of adding any of 3 extra subscriptions.
  • 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).
2a.png
Public Signup Page example

Example 2b: Multiple subscriptions using quantity components.

  • This image demonstrates a Public Signup Page with 2 quantity components.
  • The complete product is $0/mo + the option of adding a number of extra subscriptions.
2b.png
Configure the subscription quantity.

Multiple subscriptions with different billing cycles

This example is useful 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
  3. Since a billing cycle is defined at the product level, multiple billing cycles can only be achieved by creating more than one product.
  4. Multiple products mean your customer will have a subscription to each, and will therefore receive two separate charges to their card.
  5. 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 Signup Pages twice.
    • They will need to enter their credit card twice.

    • 1 Payment Page + Manual Second Subscription
    • Your customer signs up on the Public Signup Pages.
    • You will subscribe them to the second product manually in the application.

    • 1 Payment Page + Webhooks + API
    • Your customer signs up via a Public Signup 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.

Expiring subscriptions and cancellation fees

Example: An example pricing model that bills $100/mo for a 12 months before expiring.

Screen_Shot_2021-12-03_at_11.42.20_AM.png
Setup recurring period and define expiration timeline.

Optional Steps:

  1. Require cancellation fees (disabling self-cancellation if you use the billing portal)

  2. Add a one time charge and cancel your customer in the application

Charge customers on the same day each month (calendar billing)

Screen_Shot_2021-12-03_at_11.47.19_AM.png
Calendar billing option

Please see our descriptive article on calendar billing to explain full details on what’s possible with calendar billing.

  1. Create a product that adheres to the rules of calendar billing:
    • 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.

  3. Pay careful attention to the proration settings

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
  3. Remove the expires in the 1-day message (optional)

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 monthly $0 product
  2. Create a subscription for an existing customer
  3. Apply one time charges in the application when applicable (see steps above)

Additional one-time charge resources are 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
  3. Remove the expires in the 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 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
  3. Remove the expires in the 1-day message (optional)

Recurring gift with expiration using a setup fee (alternative)

  1. Create a $0 product
  2. Make the product’s setup fee represent the cost of the gift
  3. Set the product’s billing cycle and expiration for the duration of the gift
  4. Remove the expires in 1-day message (optional)

Multi-entity Seller

  • You want to have a multi-entity (multiple company names for example) billing service.
  • Advanced Billing allows you to create a site for each of your company entities 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 company entity'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 company entity.
  3. Create the company entity's products and/or components inside each Site.
  4. If you want to allow the company entity to have full access to the Advanced Billing application, but only access their individual site, you’ll need user permissions.
  5. Define the settings inside each site.
  6. If necessary, connect each site to its own payment gateway. This ensures that each company entity gets 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).
  4. Manually allocate your customer’s revenue manually in the application.

Percentage based billing alternative

  • Follow all the steps above, but with the exception that you create a $1/unit component instead.
  • 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 Advanced Billing.
  • Since each unit is $1, we charge your customer $100.

Referrals (track salesperson for commissions)

This setup has quite a few steps, but it will be well worth it. The final result is a Public Signup Page where your salesperson’s unique code is submitted along with the signup. You can then track which salesperson should get a 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 salesperson. You will most likely want a text input and to display it on subscription exports.
  4. You must enable the custom field on your Public Signup Page.
  5. Check the box next to the custom field to display
  6. Find the custom field ID editing your 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.
customfield.png
Referral URL example

  1. Add your custom field as a parameter in your Public Signup Page URL

    • Get your Public Signup Page URL
      • Example: https://chargify-sandbox.chargifypay.com/subscribe/ztn8pwg2/monthly-plan-2
    • Add ?sales=mysalespersonID to the end of the URL
      • Example: https://chargify-sandbox.chargifypay.com/subscribe/ztn8pwg2/monthly-plan-2?sales=mysalespersonID
    • Your syntax may vary. sales is the name of your custom field and mysalespersonID is your unique code that represents your salesperson.
  2. Prepopulate the custom field text input with your salesperson’s unique ID.

  3. 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.
  4. Hide the custom field (Add this code in the same section as step 7 above.)

Advanced Billing Modern Public Signup Pages

Please use the below snippet if you are utilizing Advanced Billing’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"];$(function()
    {if (sales) {$("#subscription_metafields_10463").val(sales);}});//this will
    hide the entire Custom Field section$(".form__section--additional-information").hide();

Advanced Billing Classic Public Signup Pages

Please use the below snippet if you are utilizing Advanced Billing’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"];$(function()
    {if (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 a 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 in your catalog by viewing the component from the list
shippingfee.png
Viewing your component ID in your catalog
  • 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 a fixed setup fee

  1. Create a product
  2. Define your setup fee:
fixed.png
Enter a 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”
  4. Set the Unit Name to a singular version of your currency, and define your pricing as a $1/unit with fractional quantities.
  5. 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)
  3. Choose when to charge the 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. Enter the setup fee costs and setup a free 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.
  6. Place this code in Public Signup Page default settings for all pages
  7. …or Public Signup Pages 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.

Advanced Billing is designed around the idea that product prices are predefined in Advanced Billing, 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 the 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 Advanced Billing Public 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 Public Signup 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 Advanced Billing 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);
Was this article helpful?
0 out of 0 found this helpful