Billing Settings

Use these fields in the Billing custom setting, and the configuration options in the Billing configuration groupClosed A collection of configuration options contained in the configuration groups tab that defines behavior of a PSA object or feature. to control billing events.

Fields in the Billing Custom Setting

Key: O = Obsolete.

Setting   Description

Default Value

Send_Success_Email  

When selected, an email is sent when a billing event mass process, such as Generate, Release, Combine, and so on is successful.

Deselected
Send_Failure_Email  

When selected, an email is sent when a billing event mass process, such as Generate, Release, Combine, and so on is unsuccessful.

Selected

Configuration Options in the Billing Configuration Group

Key: O = Obsolete.

Setting   Description

Default Value

adhocDisplayBudget  

You can add a value that references the API name of a Budget object's custom field set, where you have defined the fields to be displayed in:

  • The Select Budgets grid within the Generate Billing Events windows.

  • The table on the Budgets tab on the Project Billing and Account Billing pages.

 
adhocDisplayExpense  

You can add a value that references the API name of a Expense object's custom field set, where you have defined the fields to be displayed in:

  • The Select Expenses grid within the Generate Billing Events windows.

  • The table on the Expenses tab on the Project Billing and Account Billing pages.

 
adhocDisplayMilestone  

You can add a value that references the API name of a Milestone object's custom field set, where you have defined the fields to be displayed in:

  • The Select Milestones grid within the Generate Billing Events windows.

  • The table on the Milestones tab on the Project Billing and Account Billing pages.

 
adhocDisplayMiscAdj  

You can add a value that references the API name of a Miscellaneous Adjustment object's custom field set, where you have defined the fields to be displayed in:

  • The Select Miscellaneous Adjustments grid within the Generate Billing Events windows.

  • The table on the Miscellaneous Adjustments tab on the Project Billing and Account Billing pages.

 
adhocDisplayTimecard  

You can add a value that references the API name of a Timecard Split object's custom field set, where you have defined the fields to be displayed in:

  • The Select Timecard Splits grid within the Generate Billing Events windows.

  • The table on the Timecards tab on the Project Billing and Account Billing pages.

 
adhocFilterBudget  

You can add a value that references the API name of a Budget object's custom field set, where you have defined the fields to be displayed in:

  • The Select Budgets filters within the Generate Billing Events windows.

  • The filters on the Budgets tab on the Project Billing and Account Billing pages.

 
adhocFilterExpense  

You can add a value that references the API name of a Expense object's custom field set, where you have defined the fields to be displayed in:

  • The Select Expenses filters within the Generate Billing Events windows.

  • The filters on the Budgets tab on the Project Billing and Account Billing pages.

 
adhocFilterMilestone  

You can add a value that references the API name of a Milestone object's custom field set, where you have defined the fields to be displayed in:

  • The Select Budgets filters within the Generate Billing Events windows.

  • The filters on the Budgets tab on the Project Billing and Account Billing pages.

 
adhocFilterMiscAdj  

You can add a value that references the API name of a Miscellaneous Adjustment object's custom field set, where you have defined the fields to be displayed in:

  • The Select Miscellaneous Adjustments filters within the Generate Billing Events windows.

  • The filters on the Miscellaneous Adjustments tab on the Project Billing and Account Billing pages.

 
adhocFilterTimecard  

You can add a value that references the API name of a Timecard Splits object's custom field set, where you have defined the fields to be displayed in:

  • The Select Timecard Splits filters within the Generate Billing Events windows.

  • The filters on the Timecards tab on the Project Billing and Account Billing pages.

 
appendGeneratedItems  

If true, billing events and batches remain open when using the Projects Awaiting Billing and Billing Event Generation tabs. Any new billing event and its items are appended to an existing generated billing event or batch that matches its account, project and currency.

If false, separate billing events or batches are created.

If this option is true when releasing billing events and batches using the Billing Event Generation tab, a billing event that is part of a failed release batch job is treated in one of the following ways:

  • A billing event and its items are appended to an existing billing event or batch if the billing event’s account, project and currency match an existing, generated billing event.

    The merged billing event or batch and its items are then ready to be released.

  • A new billing event or batch is generated if one of the following conditions applies:
    • The billing event’s account, project, and currency do not match an existing, generated billing event.
    • The billing event’s account, project, and currency match an existing, generated billing event, but it is already being released.

A release is blocked if one or more billing events match the combination of region, practice, group, account, currency or time period of an active billing event generation. You could reduce the number of billing events to release, or release when generation of the current billing events and batches has completed.

When any generation or release job completes, the Billing Event Generation tab is refreshed. If this happens when you are selecting filters for generation or billing events for release, your selections are lost.

Before selecting items for generation or release, we recommend that you check the processing status of current jobs.

For project and account billing, billing events can be added to open billing event batches.

See also the time period setting ignoreTimePeriodWhenAppendingItems

Note:

This has no effect when using flexible billing.

 
approvalsEnabled   If true, the Approved for Billing checkbox must be selected on the related business record for it to be eligible for billing event generation.  
billingEventGenerationDisplayBillingEvent  

You can add a value that references the API name of a Billing Event object's custom field set, where you have defined the fields to be displayed on the Billing Event Generation page.

Note:

This field set overrides any default fields.

null
billingEventGenerationDisplayBillingEventBatch  

You can add a value that references the API name of a Billing Event Batch object's custom field set, where you have defined the fields to be displayed on the Billing Event Generation page.

Note:

This field set overrides any default fields.

null
billingEventGenerationDisplayBillingEventItem  

You can add a value that references the API name of a Billing Event Item object's custom field set, where you have defined the fields to be displayed on the Billing Event Generation page.

Note:

This field set overrides any default fields.

null
billingInterfaceClear  

When using the PSA API for billing, you can add a value for the name of the class that the API uses when clearing billing.

For more information, see Customizing Billing Processes.

 
billingInterfaceCombine  

When using the PSA API for billing, you can add a value for the name of the class that the API uses when combining billing events.

For more information, see Customizing Billing Processes.

 
billingInterfaceInvoice  

When using the PSA API for billing, you can add a value for the name of the class that the API uses when invoicing billing events.

For more information, see Customizing Billing Processes.

 
billingInterfaceNamespace  

Name of the namespace prefix of the custom classes that implement the various billing interfaces. You can use this option to customize the billing invoice process in PSA.

For more information, see Customizing Billing Processes.

 
billingInterfaceRecalc  

When using the PSA API for billing, you can add a value for the name of the class that the API uses when recalculating billing.

For more information, see Customizing Billing Processes.

 
billingInterfaceRelease  

When using the PSA API for billing, you can add a value for the name of the class that the API uses when releasing billing events.

For more information, see Customizing Billing Processes.Customizing Billing Processes.

 
billingInterfaceRemove  

When using the PSA API for billing, you can add a value for the name of the class that the API uses when removing billing events.

For more information, see Customizing Billing Processes.

 
budgetDescriptionFormat  

Billing Event Generation tab only.

The format of the billing event item Description field for budget records, where {0} is the Actual Date field from the record.

 
business-record-bei-locking   Indicates whether a billing event item is prevented from being deleted once a business record references it even when it is not yet billed or invoiced  
clearBatchSize   Number of records to process in a single batch when clearing billing using the Clear Billing Data button, or reverting billing using the Revert Billing button. 200
confirm-billing-generation   Indicates whether a confirmation popup is displayed when a user clicks Generate on the Billing Event Generation tab.  
defaultAsync   Indicates whether PSA processes some billing trigger functionality asynchronously.  
Delete_Zero_Amount_Batches   Indicates whether Billing Event Batches with only one billing event are deleted when that billing event is deleted, or if PSA is configured to do so, indicates whether the batch is deleted when the remaining billing events contain zero amounts.  
deleteBatchSize   Number of records to delete in each batch delete execution. Change this value if you experience Salesforce governor limits.  
disallow-invoicing-of-unreleased-bes   When true, the Invoiced checkbox on billing events cannot be selected if the Released checkbox is not selected.  
expenseDescriptionFormat  

Billing Event Generation tab only.

The format of the billing event item Description field for expense records, where {0} is the resource name and {1} is the expense date. For example, Joe Bloggs on 02/02/2012.

 
generateBatchSize   The number of records to process each time a billing event batch is generated.  
generateBillingForCompletedTimePeriodsOnly  

If true, and useFlexiblePeriodMode is also true, billing events are generated for eligible business records that fall only within time periods that are completed on or before the specified cutoff date.

Example: If the cutoff date is April 29 and the time period type is Month, billing is generated for eligible business records that fall on or before March 31. Items dated April 1 or later are not included because the monthly time period of April is not complete on April 29.

false
group-be-by-master-project  

When true, all projects that belong to a master project are grouped, usually into the same billing event, which references the record ID of the master project that the billing event belongs to. Other configurations for appending, and the billing event batch groupings on account, currency and time period are still respected.

This setting works for all billing methods.

false
ignoreTimePeriodWhen
AppendingItems
 

If true, and appendGeneratedItems is true, billing events are appended to existing billing event batches that match the account and currency, regardless of time period.

For project and account billing, billing events can be added to open billing event batches, regardless of the time period.

 
includeBudgets   If true, eligible budget pre-bill amounts are included by default when generating billing events, unless deselected during the billing process. True
includeExpenses   If true, eligible expenses are included by default when generating billing events, unless deselected during the billing process. True
includeMilestones   If true, milestones are included by default when generating billing events, unless deselected during the billing process. True
includeMiscellaneous
Adjustments
  If true, eligible miscellaneous adjustments are included by default when generating billing events, unless deselected during the billing process. False
includeTimecards   If true, eligible timecard splits are included by default when generating billing events, unless deselected during the billing process. True
invoiceBatchSize   Number of records to mark as invoiced in a single batch when using the Invoice button on the Billing Events list view and detail page or the Mark as Invoiced button on the Billing Events Awaiting Invoicing tab. 200
Max_Zero_Amount_Batches_To_Delete   The maximum number of zero amount billing event batches to automatically delete. This setting is used when Delete_Zero_Amount_Batches is set to true. Change this value if you encounter Salesforce governor limits.  
Max_Zero_Amount_Events_To_Delete Config   The maximum number of zero amount billing events to automatically delete. Change this value if you encounter Salesforce governor limits.  

maxBEIsPerBE

 

The number of billing event items that can be added to a billing event is unlimited, but you can set a maximum. If this is exceeded, more than one billing event is generated.

Note: If you are using SRP, ensure that this value is less than the BE Maximum BEIs per BE field in the SRP Integration Settings custom setting. For more information, see SRP Integration Settings Fields.
zero
maxNumberOfDaysPriorToQuery  

Limits the set of records included when generating billing events on the Billing Event Generation or Projects Awaiting Billing tabs.

When including prior periods, defines the number of days prior to the end of the selected period to generate billing events for.

When scheduling a billing event and including prior periods, defines the number of days prior to the selected period for which to generate billing events for billing event items.

Note:

If you use this configuration option, the transactions included in the SOQL query might total less than 10% of all transactions in the system. This is below the system-defined selectivity threshold. Therefore, the SOQL query becomes selective. A selective SOQL query might be necessary if the number of transactions on the system exceeds 100,000 records.

For more information, search for knowledge article 000006007 in the Salesforce Help.

 
milestoneDescriptionFormat  

Billing Event Generation tab only.

The format of the billing event Description field for milestone records, where {0} is the Actual Date field from the record.

 
miscellaneousAdjustmentCategories   If selected, and includeMiscellaneousAdjustments is also selected, only miscellaneous adjustments belonging to categories in this list are included when billing events are generated.  
miscellaneousAdjustmentDescriptionFormat  

Billing Event Generation tab only.

The format of the billing event item Description field for miscellaneous adjustment records, where {0} is the Description field from the record.

 
nextInvoiceNumber   Optional configuration that you can use to determine the initial invoice number when billingInterfaceInvoice or billingInterfaceInvoice contains the name of an alternative class to customize the invoice process with. Customizing Billing Processes. 10000
no-deletion-of-BEBs-with-released-or-invoiced-BEs   Indicates whether users can delete billing event batches that have one or more child billing events, which are invoiced or released. true
numTimePeriodsToSelect  

The number of time periods to be displayed in the Time Period drop-down list on the Billing Event Generation or Projects Awaiting Billing tabs, when generating billing events.

10
pageSize   The maximum number of items to be displayed on the Billing Event Generation page before starting a new page. A maximum of 100 items are displayed per page, per tab. We recommend you do not change the default value. This is to avoid any volume errors when billing events are generated using the "Release" feature on the page that this setting applies to. If issues continue, set this value lower than the default. 10
projectBillingUIResultsPerTab   The maximum number of items to display per page in each Project Billing record tab. A maximum of 100 items are displayed per page, per tab. We recommend you do not change the default value. This is to avoid any volume errors when billing events are generated using the "Release" feature on the page that this setting applies to. If issues continue, set this value lower than the default. 10
recalcBatchSize   The number of records to process in each batch when recalculating billing events.  
releaseBatchSize   The number of records to process in each batch when releasing billing events.  
separateBudgets  

If true, budget pre-bill amounts are generated into separate billing events from other eligible business record types.

Note: Not supported for Project Detail or Account Detail pages.
 
separateExpenses  

If true, expenses are generated into separate billing events from other eligible business record types.

Note: Not supported for Project Detail or Account Detail pages.
 
separateExpensesByTypes  

Enables further separation of expenses when separateExpenses is true.

Add a value for each separate billing event that is to be created. Each value must contain a comma separated list that contains the expense types to include in the billing event. You must also enter a sort order for the billing events.

Expense types that are not listed in the value are included on an ordinary billing event.

Note: Not supported for Project Detail or Account Detail pages.
 
separateMilestones  

If true, milestones are generated into separate billing events from other eligible business record types.

Note: Not supported for Project Detail or Account Detail pages.
 
separateMiscellaneous
Adjustments
 

If true, miscellaneous adjustments are generated into separate billing events from other eligible business record types.

Note: Not supported for Project Detail or Account Detail pages.
 
separateTimecards  

If true, timecard splits are generated into separate billing events from other eligible business record types.

Note: Not supported for Project Detail or Account Detail pages.
 
timecardDescriptionFormat  

Billing Event Generation tab only.

The format of the billing event description field for timecard records, where {0} is the resource name, {1} is the start date, {2} is the end date, and {3} is the total hours or days. For example Beth Gomez between 2021-8-15 and 2021-8-21 for 38.0 total hours/days.

 
timePeriodType   Defines the time interval to use when generating billing events. Used as the default value for flexible billing when no time period type is set on the account or project record.  
unitType  

If set, and unitTypeSubfiltersis true, defines the first Region, Practice, and Group (RPG) selector in the Generate Billing Events section of the Billing Event Generation tab.

If set, and unitTypeSubfilters is false, defines whether the Region, Practice or Group selector is shown by default.

Region
unitTypeSubfilters  

If true, all of the Region, Practice, and Group (RPG) selectors are shown in the Generate Billing Events section of the Billing Event Generation tab.

If false, only the Region selector is shown by default.

You can also use this with unitType.

 
useFlexiblePeriodMode   If true, a cutoff date is used instead of a time period when generating billing events. Billing event items are included when they belong to the time period type that is set on either the account or project record or in timePeriodType, and their date falls on or before the cutoff date.
Example: If the cutoff date is April 15 and the time period type is Month, billing is generated for items that fall within April, on or before April 15.
If generateBillingForCompletedTimePeriodsOnly is also true, billing event items are included when they belong to the appropriate time period type, and their date falls within a time period that is complete on or before the cutoff date.
Example: If the cutoff date is April 29 and the time period type is Month, billing is generated for items that fall on or before March 31. Items dated April 1 or later are not included because the monthly time period of April is not complete on April 29.
 

Custom Field Set Limitations for Account Billing and Project Billing

For the Account Billing and Project Billing functionality, you can use custom field sets to customize the fields that display for each of the relevant business records:  Timecards, Expense Reports, Milestones, Miscellaneous Adjustments, and Budgets.  

For each of these business records, there are fields that always appear by default. There is no need to include these fields in any custom field set.

Fields Business Record
ID
Name
Project
Budgets
ID
Name
Project
Resource_r.name
Expense Reports
ID
Name
Project
Milestones
ID
Name
Project
Miscellaneous Adjustments
ID
Name
Project
Resource_r.name
Timecards

If these fields are added to the custom field sets, the following error will display:

"duplicate field selected : <field name>"