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.

For all the lookup fields, you can also click Show All Results for “ ”. The search lookup window opens with the searched string populated in the Search field and displays all related items in the grid.

Select the item from the grid that you want and click Select. The selected item is then displayed in the lookup field. For more information, see Using Advanced Lookup.

Note:

If Shield Platform Encryption is enabled in your org, the records in the Resource, Account, and Opportunity search lookup window are filtered using only the Name field in the grid.

Fields in the Billing Custom Setting

Setting Description

Default Value

Disable Billing Closer to Cap

When a billing cap is applied to a project, this field controls whether PSA is allowed to automatically split billing events in order to bill closer to the billing cap. For example, if you are releasing a billing event with a value of 1000 but the amount remaining in the project's bookings is 250, PSA can split the billing event and release items that together do not exceed the value of 250. The unreleased items are saved to a new billing event.

Select this field if you want to prevent PSA from splitting billing events automatically.

For more information, see Releasing Single Billing Events When Billing Is Capped.

Deselected
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

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 Expenses 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 Milestones filters within the Generate Billing Events windows.

  • The filters on the Milestones 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 PSA – Accounting Connector, ensure that this value is less than the BE Maximum BEIs per BE field in the PSA – Accounting Connector Settings custom setting. For more information, see PSA – Accounting Connector 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: This option only works with mass billing event generation. It is not supported for:
  • The Generate Billing Events action on an Account or Project record page.
  • The Generate Account Billing and Generate Project Billing buttons on the Projects Awaiting Billing page.
 
separateExpenses

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

Note: This option only works with mass billing event generation. It is not supported for:
  • The Generate Billing Events action on an Account or Project record page.
  • The Generate Account Billing and Generate Project Billing buttons on the Projects Awaiting Billing page.
 
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: This option only works with mass billing event generation. It is not supported for:
  • The Generate Billing Events action on an Account or Project record page.
  • The Generate Account Billing and Generate Project Billing buttons on the Projects Awaiting Billing page.
 
separateMilestones

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

Note: This option only works with mass billing event generation. It is not supported for:
  • The Generate Billing Events action on an Account or Project record page.
  • The Generate Account Billing and Generate Project Billing buttons on the Projects Awaiting Billing page.
 
separateMiscellaneous
Adjustments

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

Note: This option only works with mass billing event generation. It is not supported for:
  • The Generate Billing Events action on an Account or Project record page.
  • The Generate Account Billing and Generate Project Billing buttons on the Projects Awaiting Billing page.
 
separateTimecards

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

Note: This option only works with mass billing event generation. It is not supported for:
  • The Generate Billing Events action on an Account or Project record page.
  • The Generate Account Billing and Generate Project Billing buttons on the Projects Awaiting Billing page.
 
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>"