Billing reports
Partners can use the following Wholesale billing APIs to generate the billing reports that help them validate usage and provisioning accuracy. The Wholesale billing APIs are accessible through developer.webex.com.
-
Reconciliation—Displays usage consumption at per partner, per customer, or per-user level. Partners can use this custom billing report information to reconcile their monthly invoice so that they can bill their customers and users according to their usage consumption.
-
Point-In-Time—Displays current package allocations at per customer, or per-user level. The Point-In-Time report provides a real-time count of package allocations. Partners can use this information to validate the accuracy of provisioning and ensure alignment with customer orders.
Partners can also generate custom billing reports for subpartners using the subPartnerOrgId parameter.
There are four APIs that are available to partner administrators who meet the minimum access requirements.
|
Billing API |
Purpose of API |
Partner admin access requirement |
|---|---|---|
|
Create a Wholesale Billing Report |
Used to generate a billing report. |
Read/write |
|
Get a Wholesale Billing Report |
Used to get a generated billing report for download. |
Read |
|
List Wholesale Billing Reports |
Used to list the billing reports that exist for that partner. |
Read |
|
Delete a Wholesale Billing Report |
Used to delete an existing billing report. |
Read/write |
Data source
Data for the billing reports is pulled from package assignments and usage data that Webex tracks for each partner. Webex aggregates the customer and user package data daily to generate the partner's monthly invoice. Billing APIs use this data, allowing partner admins to generate custom reports. These reports help partners reconcile usage consumption from their monthly invoice at the partner, customer, and user levels.
For more detailed information on how Webex invoices partners, see Service provider billing.
Create a Wholesale billing report
| 1 |
From developer.webex.com, go to Create a Wholesale Billing Report API. |
| 2 |
Select any one of the following report categories:
If you want to generate a Reconciliation report, there’s no need to change anything because Reconciliation is selected by default, so you can proceed to the next step. If you want to generate a Point-In-Time report, change the selection to Point-In-Time. |
| 3 |
Enter the billingStartDate and billingEndDate in the format that the API specifies. You can enter any date from the last five years, but not the current day. For the Point-In-Time report, the billingStartDate and billingEndDate fields aren't required and are ignored if entered. The report always reflects the current package allocations. |
| 4 |
Enter the type of report:
|
| 5 |
In the Include field, enter the additional or optional columns that you want to see in the reports. Each report type has a set of mandatory attributes and a set of optional attributes. You can decide which of the optional attributes to display for each report. If you don’t include the optional attributes, the report displays only the mandatory attributes. The following columns are the optional attributes that you can request to include in the Customer and User report:
You must include CUSTOMER_GROUP_ID and CUSTOMER_GROUP_NAME together if you want to see these attributes in your report. When you select optional columns, the column order in the Customer and User Reconciliation reports changes. Partners must update their API integration to accept the new csv format. The column order of Point-In-Time reports remains unchanged. Currently, the existing feature settings hold precedence over the Include parameter when determining the column order. For example, if a particular feature setting is enabled for a customer, then that feature column appear as per the old report format even if you add them in the Include parameter. We’ll be removing these settings soon. Once they are removed, you can request the optional columns only through the Include parameter. |
| 6 |
Click Run to generate the report. |
| 7 |
Copy the report id from the API output. You can use this value with the Get API to get the generated billing report. |
What to do next
Go to Get a Wholesale Billing Report section to download a copy of the report.
Get a Wholesale billing report
Once a billing report is generated, use this API to obtain a specific billing report. The report gets output to a URL where it's available for download for 30 minutes following the completion of the GET request.
| 1 |
From developer.webex.com, go to Get a Wholesale Billing Report API. |
| 2 |
Enter the unique id value for the report and click Run. The API outputs report status. The output includes the tempDownloadURL parameter, which provides a URL from which you can download the report. |
| 3 |
Copy the tempDownloadURL into a browser to access and download the report. |
List Wholesale billing reports
Use this API to obtain a list of generated billing reports for the partner organization. You can list all existing reports, or limit the list to those reports that meet the specified parameters such as your billing period and billing type (Partner, customer, user).
If you enter optional parameters, the API returns only those reports that match exactly the parameters that you specify. For example, if you specify a billing period, only reports that use that specific billing period are returned. Reports that fall within the period, but which don’t exactly match the dates aren't returned.
| 1 |
From developer.webex.com, go to List Wholesale Billing Report API. |
| 2 |
Under Query Parameters, enter any search parameters that you want to use (for example, the startDate, endDate, Type, sortBy on). |
| 3 |
Click Run. The API outputs the list of reports along with the unique report id and status (COMPLETED, IN_PROGRESS).
|
What to do next
Take a record of the id for any reports that you want to download. Go to Get a Wholesale billing report to download the report.
Delete a Wholesale billing report
Use this procedure to delete a generated billing report based on report id. A few examples where you may want to delete a report include:
-
If you want to regenerate an existing Reconciliation billing report, you must first delete the existing report. After you delete the existing report, you can create a new report for that period. You can’t delete a report if its generation has failed or is still in progress.
For a Point-In-Time report, you don't need to delete an existing report, since the system doesn't regenerate these reports. Each report always reflects data as of the current timestamp.
-
If you send a generated report URL to the wrong person, you can delete the report so they can’t access it.
| 1 |
From developer.webex.com, go to Delete Wholesale Billing Report API. |
| 2 |
Enter the report Id and click Run. |
Billing report fields
Billing reports contain the following fields:
|
Field |
Description |
Supported report type |
Supported report category |
Mandatory or Optional attribute |
|---|---|---|---|---|
|
PARTNER_NAME |
Name of partner |
PARTNER, CUSTOMER, USER |
Reconciliation, Point-In-Time |
Mandatory |
|
PARTNER_ORG_ID |
Unique partner identifier |
PARTNER, CUSTOMER, USER |
Reconciliation, Point-In-Time |
Mandatory |
|
SUBSCRIPTION_ID |
Unique subscription identifier |
PARTNER, CUSTOMER, USER |
Reconciliation, Point-In-Time |
Mandatory |
|
CUSTOMER_GROUP_ID | The unique identifier of the group the customer belongs to. If the customer is moved between groups during the billing period, usage is split based on the groups the customer belonged to during that period. |
CUSTOMER, USER |
Reconciliation, Point-In-Time |
Optional |
|
CUSTOMER_GROUP_NAME | Display name of the customer group. If the group name changed during the billing period, the latest name is used. |
CUSTOMER, USER |
Reconciliation, Point-In-Time |
Optional |
|
CUSTOMER_ORG_ID |
Internal customer unique identifier |
CUSTOMER, USER |
Reconciliation, Point-In-Time |
Mandatory |
|
CUSTOMER_EXTERNAL_ID |
Customer unique identifier as provided by a partner |
CUSTOMER, USER |
Reconciliation, Point-In-Time |
Mandatory |
|
TYPE |
User or Workspace type |
CUSTOMER, USER |
Point-In-Time |
Mandatory |
|
SUBSCRIBER_ID |
Unique identifier for the subscriber |
USER |
Reconciliation, Point-In-Time |
Mandatory |
|
USER_ID |
The subscriber's Webex user ID |
USER |
Reconciliation, Point-In-Time |
Mandatory |
|
WORKSPACE_ID |
Unique workspace identifier |
USER |
Reconciliation, Point-In-Time |
Mandatory |
|
SERVICE_NAME |
Name of service (e.g, COMMON_AREA_CALLING, WEBEX_CALLING, WEBEX_SUITE, WEBEX_MEETINGS) |
PARTNER, CUSTOMER, USER |
Reconciliation, Point-In-Time |
Mandatory |
|
SKU |
Sku for the service |
PARTNER, CUSTOMER, USER |
Reconciliation, Point-In-Time |
Mandatory |
|
DESCRIPTION |
Description of the service |
PARTNER, CUSTOMER, USER |
Reconciliation, Point-In-Time |
Mandatory |
|
CONSUMPTION_START_DATE |
Start of the service consumption. Along with the following field, this value defines the usage period. |
PARTNER, CUSTOMER, USER |
Reconciliation |
Mandatory |
|
CONSUMPTION_END_DATE |
End of the service consumption. Along with the preceding field, this value defines the usage consumption period. |
PARTNER, CUSTOMER, USER |
Reconciliation |
Mandatory |
|
REPORT_DATE |
The date and time when the report is generated. |
CUSTOMER, USER |
Point-In-Time |
Mandatory |
|
QUANTITY |
Represents the aggregated user usage consumption per partner, per customer or per user (depending on the report and level at which you're viewing the data). Calculation: The system calculates the per-day quantity for each user on a prorated basis for that day. Usage for a full day = 1 Usage for a half day = 0.5 Then, it sums the per-day totals for all days within the billing period to calculate the total quantity for that user within that billing period. For customer and partner-level reports, the totals for all users are aggregated to provide a total quantity for that customer or partner. Point-In-Time: The customer report lists package allocations per customer. Each row represents the total quantity of a specific package assigned to users or workspaces within a particular customer organization. The Quantity shows “0” if there are no packages allocated. The user report lists the packages assigned to users or workspaces. Each row shows a quantity of 1, representing a user or workspace and their individual package or add-on. If multiple packages or add-ons are allocated to a user or workspace, then the report shows multiple entries, each with a quantity of 1. |
PARTNER, CUSTOMER, USER |
Reconciliation, Point-In-Time |
Mandatory |
|
LOCATION_ID |
Unique location identifier |
CUSTOMER, USER |
Reconciliation, Point-In-Time Customer Point-In-Time report doesn’t include Location ID |
Optional |
|
LICENSE_ID |
License Identifier This field is visible only for Wholesale packages For Reconciliation report, the License_ID is blank for licenses assigned before the introduction of this field. The billing report shows multiple rows for the same Wholesale package if it's associated with different combinations of LOCATION_ID and LICENSE_ID. |
CUSTOMER, USER |
Reconciliation, Point-In-Time |
Optional |
Selecting optional columns modifies the column order of Customer and User Reconciliation reports. The following order applies to partners with only Wholesale SKUs in their subscription:
User level report—PARTNER_NAME, PARTNER_ORG_ID, SUBSCRIPTION_ID, CUSTOMER_GROUP_ID, CUSTOMER_GROUP_NAME, CUSTOMER_ORG_ID, CUSTOMER_EXTERNAL_ID, LOCATION_ID, LICENSE_ID, SUBSCRIBER_ID, USER_ID, WORKSPACE_ID, SERVICE_NAME, SKU, DESCRIPTION, CONSUMPTION_START_DATE, CONSUMPTION_END_DATE, QUANTITY
Customer level report—PARTNER_NAME, PARTNER_ORG_ID, SUBSCRIPTION_ID, CUSTOMER_GROUP_ID, CUSTOMER_GROUP_NAME, CUSTOMER_ORG_ID, CUSTOMER_EXTERNAL_ID, LOCATION_ID, LICENSE_ID, SERVICE_NAME, SKU, DESCRIPTION, CONSUMPTION_START_DATE, CONSUMPTION_END_DATE, QUANTITY
Provisioning a package to a user triggers Webex Wholesale billing, while removing the package assignment stops it.
A customer organization can belong to only one customer group at any given time. Support for multiple customer groups per organization isn't currently available.