Billing on the Conga Platform is driven based on the order and order line item. The Conga Billing service can bill the orders created by Conga CPQ and CLM, as well as the orders created from the external systems like ERP, or customer CPQ, etc. 

The following points list the various sources from where orders can be created:

  • Orders are created upon accepting a Conga CPQ quote, activating a Conga CLM Agreement, or from a Conga purchase agreement.
  • Direct orders can be created from other Conga sources like eCommerce.
  • Orders can originate from external CPQ, Order, or Commerce applications to utilize the services that Billing offers. For such orders, Billing again creates orders inside the Conga framework and refers them back to the source ID, hence making it possible to exchange the Conga-generated information with the source.

Since orders can originate from multiple sources, it is prudent to have a common starting point to process them. Order Line Item (OLI) is the starting point from where the processing of any order must start in Billing on the Conga Platform.

The following diagram summarizes the concept of order line-driven architecture of Billing on the Conga Platform:

When billing is initiated, Billing will create three layers of data - Billing Header, Billing Schedule Record, and Billing Schedule Details.

  • The Billing Header is more like a placeholder to store the customer, product, and pricing information. For the pricing information, a setting is available based on which it can be fetched either from the order line item or the asset line item (for existing Conga CPQ customers).  
  • Based on the information drawn from the billing header, the engine creates the billing schedule records (BSR). They represent a cascade of records equivalent to a billing schedule without the fee amount. The actual fee amount at this level is not auto derived, rather it is stored in the Billing Schedule Details. The fee amount is then rolled up to BSR from BSD.
  • The billing schedule details (BSD) contain the granular level data for every billing period. The BSD reads the unbilled amount from BH and creates the records with ‘Fee Amount' and this information is rolled up to BSR.

The salient features of this architecture are:

  • Since the billing header can fetch the price info from both OLI as well as ALI, you have the liberty to bill the customer based on the order pricing information or the asset pricing information as a reference.
  • By calculating the fee amount at the BSD level, you will have more flexibility to allow for adjustments at the billing level. All the adjustments will then roll up to the corresponding BSR.
  • With the help of this architecture, you will be able to track all the billing variations that take place throughout the lifecycle of the subscription.
  • It provides you the ability to control how much to bill, for example, billing a partially fulfilled order for the corresponding amount.
  • Empowers you to do monetary adjustments manually for a specific period without modifying the engine-generated billing amount.
  • Enables you to take snapshots of manual adjustments and send them for approval, promoting transparency.
  • Provides you with granular billing information across the lifecycle of a subscription (external subscription/Conga ALI) through a single point of reference. The reference can be Conga ALI, Order, Opportunity, Contract Agreement Number, etc.
  • Helps in Clear reporting.

  • Gives you the ability to apply ‘intelligence’ on the first two layers to provide business intelligence that is needed for the success of a Revenue-Operations cycle.

Example:

Suppose you want to bill a one-time order line item using the above feature. You must configure a one-time order line item. The high-level steps are:

  1. Post the Initiate billing API for the above-mentioned order line item to generate the Billing Header ID. Refer to One-Time Products for API details. 
  2. Pass the Billing Header ID as a payload to Get the Billing Schedule Record. Refer to One-Time Products for API details.

Let's process a one-time product with the help of the following example.

Suppose you have configured a one-time order line item with the following details:

Order No

Order Line No

Product

Price Type

Billing Frequency

Start Date

End Date

Quantity

Per Unit price

Net Price 

Selling Term

O-0011ServicesOne TimeOne Time

 

1USD 102USD 102.001.000

When you call the Initiate Billing API for a one-time order line item with OrderLineItemIds and ReadyForBillingDate as the payload, it starts processing the OLI. It creates one billing header, one billing schedule record, and one billing schedule detail. The billing schedule record is created with "Pending Billing".

The billing header uses the information from the order line item and contains the following data. Depending upon the information given for the pricing source, It will pick up the pricing information from the order line item or the asset line item. The Billing Header shows:

Billing Header ID

Order No

Order Line No

Product

Price Type

Billing Frequency

Billing Rule

Start Date

End Date

Quantity

Net Unit Price 

Selling Term

Bill To

Pricing Source

Billing Preference

BH-001O-0011ServicesOne TimeOne TimeBill In Advance

 

1USD 102.001.000AddressOLIBilling Preference

Only one Billing Schedule Record is generated showing the following output:

Billing Schedule Record No

Billing Header ID

Period Start Date

Period End Date

Actual Fee Amount

Ready for Invoice Date

Status

BSR-001BH-001

 

USD 102.00

 

Pending Billing

The Actual Fee Amount shown in the billing schedule record is the amount that is billed to the customer. 

Billing Schedule Details shows the following information:

Billing Schedule Detail No

Billing Schedule Record No

Record Type

Period Start Date

Period End Date

Category 

Actual Fee Amount

BSD-001BSR-001Regular

 

FeeUSD 102.00