Skip to main content

Flexible Billing

Zuora

Flexible Billing

Overview

The Flexible Billing feature provides you the capability to specify bill-to-contacts and payment terms at the subscription level. With this feature, you can specify billing attributes, including bill-to-contacts and payment terms at the subscription level.

If one account has subscriptions with different payment terms and bill-to contacts, you no longer have to duplicate accounts for different payment terms and bill-to contacts. With Flexible Billing, you can specify bill-to-contacts and payment terms during subscription creation.

Prerequisites

  • Ensure that you install/upgrade the Z360 version to 5.16 or greater.
  • Ensure that you enabled Contact Sync through Z360.
  • Ensure that you enabled the “Flexible Billing” into connected Zuora tenant.
  • Check the known restrictions and limitations of the Flexible Billing feature.

Enablement

To enable the Flexible Billing feature in CPQ X, perform the following steps:

  1. In your Salesforce org, navigate to Zuora Config > Quote Studio Settings > Admin Config.
  2. Switch on the toggle “Enable Flexible Billing in Quote Studio”.
  3. Click Save.

Note that the system will allow you to enable "Flexible Billing" only if the Flexible Billing feature is enabled in the connected Zuora tenant. Otherwise, you will receive an error stating Your Zuora Tenant is not enabled Flexible Billing. Please reach out to Zuora Support to avail “Flexible Billing” feature”.

Billing attributes for this feature

After the Flexible Billing feature is enabled, you will see a new section called "SUBSCRIPTION BILLING ATTRIBUTES" in Quote Studio. This section is available for new quotes with existing billing accounts, amendment quotes, and renewal quotes.

This new section includes the below two fields:

Field Description
Subscription Bill To Contact The bill-to-contact ID is associated with a subscription. For example, you can specify Steve Lee as the bill-to-contact of the invoice owner for a subscription instead of using the default bill-to-contact of the account.

If the invoice owner is not present, all associated contacts of your chosen billing account will be displayed, and if the invoice owner is selected, the Subscription Bill To Contact field will display all associated contacts of your chosen invoice owner account.
Subscription Payment Term The name of the payment term is associated with a subscription. For example, Net 30, indicates that payment is due 30 days from the invoice date. The payment term determines the due dates of invoices.

It displays all the picklist values defined at “zqu__Subscription_Payment_Term__c” field on the Quote object

Note that for the Amendment process, when you the change the value of “SUBSCRIPTION BILLING ATTRIBUTES"  fields in Quote Studio, it will create a Term and Condition Amendment action.

Display Bill To Contact Address in Subscription Bill To Contact field

To display Bill To Contact Address:

  1. In your Salesforce org, navigate to Zuora Config > Quote Studio Settings > Admin Config.
  2. Switch on the toggle “Display Contact Address fields in Subscription Level Contact picklists”. This setting must be used in conjunction with “Enable Flexible Billing in Quote Studio” setting.
  3. Click Save.

Restrict access to Flexible Billing 

You can restrict access to Flexible Billing for user profiles. 

See Restrict access to features in Quote Studio for more information.

Default Subscription Bill to Contact and Subscription Payment Term with Default Values Plugin v2

You can default the values of Subscription Payment Term and Subscription Bill To Contact fields using the Default Values Plugin V2 in Quote Studio.

Sample Code

global class DefaultValuePlugin implements zqci15.DefaultValuesPluginV2 {
    global void initialize(zqci15__Quote__c quote) {
        
        quote.zqci15__Subscription_Payment_Term__c = 'Net 30';
        
        //Search Contacts based on Zuora Account Id or based on Invoice Owner Id
        string zuoraAccountId = String.IsNotEmpty(quote.zqci15__InvoiceOwnerId__c) ? quote.zqci15__InvoiceOwnerId__c : quote.zqci15__ZuoraAccountID__c;
        
        if(string.IsNotEmpty(zuoraAccountId)){
            //Search Zuora Contact associated with Billing account or invoice owner using zuora 360;
            List<Zuora__ZContact__c> contacts =[Select Id, Zuora__External_Id__c,Name,Zuora__FirstName__c,Zuora__LastName__c from Zuora__ZContact__c where Zuora__CustomerAccount__r.Zuora__Zuora_Id__c= :zuoraAccountId];
            quote.Subscription_Bill_To_Contact_ZuoraId__c=contacts[0].Zuora__External_Id__c;
            quote.Subscription_Bill_To_Contact_Name__c=contacts[0].Zuora__FirstName__c+' '+contacts[0].Zuora__LastName__c;
        }
    }
}

Limitations

When using Flexible Billing, keep the following restrictions and limitations in mind:

  1. It is not possible to change the invoice owner for renewal quotes.
  2. It is not possible to clear out invoice owners in amendment quotes.