Statement
A Statement in Salesforce Billing is a record that summarizes the financial activity on a billing account over a defined period: opening balance, new invoices issued, payments received, credits applied, and the closing balance the customer owes.
Definition
A Statement in Salesforce Billing is a record that summarizes the financial activity on a billing account over a defined period: opening balance, new invoices issued, payments received, credits applied, and the closing balance the customer owes. It is the consolidated, customer-facing equivalent of a bank statement, and it covers every transaction posted to the account between the cycle start and cycle end dates.
The Statement object is part of Salesforce Revenue Cloud Billing (and the legacy Salesforce Billing managed package that preceded it). Each Statement record links to a billing account, a list of Invoice Line items, a list of Payment records, and any Credit Memo records applied during the period. The platform supports both customer-facing PDF rendering through the Statement Template and internal reporting through standard report types over the Statement object.
How Statements fit into Salesforce Billing and the AR process
The Statement object and where the data comes from
Each Statement record sits underneath a Billing Account and rolls up the transactional records that posted to that account during the statement period. The roll-up is not a real-time calculation. The platform writes the Statement when a Statement Generation job runs, and the figures freeze at that moment. Invoice Line items, Payment records, and Credit Memo records that posted to the account between the start and end of the period get linked to the Statement through line-level junction records. The Statement header carries the opening balance, period totals, and closing balance. Re-running the generation job for the same period overwrites the prior record by default; configure the org to keep historical snapshots if your audit policy requires it.
Statement Frequencies and how cycle dates get set
Statement Frequency is a configuration on the Billing Account that determines how often statements run. Common frequencies are Monthly, Quarterly, and Annual, but custom frequencies (every two weeks, every 28 days) are supported through the Statement Frequency object. Each Billing Account references one frequency, and the platform calculates cycle start and cycle end dates from the frequency and the account anchor date. Anchor dates matter: a Monthly statement anchored to the first of the month covers the calendar month, while one anchored to the customer billing day covers a rolling 30-day window. Mature billing operations standardize on calendar-aligned cycles to simplify reconciliation with the general ledger.
The relationship between Statements and Invoices
Statements and Invoices are different objects with different jobs. An Invoice is a demand for payment for specific work or specific products delivered in a period. It has line items, due dates, and a balance. A Statement is a summary of every Invoice, Payment, and Credit Memo touching an account during a period; it does not itself create a payment obligation. Customers usually receive both: the Invoice when work is delivered, and the Statement at the end of the cycle to show the full account picture. Confusing the two is the most common reason finance teams escalate billing questions. Train the support team on the distinction so customer complaints route to the right artifact for resolution.
PDF rendering and customer delivery
Statement PDF rendering uses a Salesforce-managed template defined in the Statement Template object. The template controls header layout, line ordering, summary blocks, and the legal footer. Orgs that need brand-specific design create custom templates per billing account or per product line. Delivery channels include direct email through Salesforce, upload to an Experience Cloud customer portal, or push to an external document management system through an integration. Track delivery status on the Statement record itself, since customer disputes about non-receipt almost always need a timestamp from the platform to resolve. Schedule the delivery job to run after the generation job has fully posted to avoid sending half-formed statements.
Reconciliation, aging, and the connection to the general ledger
Statements anchor the accounts receivable reconciliation process. Finance teams compare the closing balance on each Statement against the general ledger AR balance for the same period and investigate any variance. Aging buckets (current, 1 to 30 days, 31 to 60, 61 to 90, 90+) usually appear on the Statement itself, derived from the Invoice due dates of unpaid line items at the cycle end. The aging numbers drive collections workflow: anything in the 60+ bucket triggers a follow-up sequence; anything in the 90+ bucket usually goes to a dedicated collections queue. Build a dashboard on the Statement object showing aging totals by sales region and customer segment so leadership sees collections pressure before it becomes a quarterly surprise.
Statements in Revenue Cloud versus legacy Salesforce Billing
Salesforce has two billing products in the market: the legacy Salesforce Billing managed package (built on top of CPQ) and the newer Revenue Cloud Billing native solution. Both support Statements, but the object API names, the generation logic, and the PDF template engine differ. Orgs upgrading from the managed package to Revenue Cloud have to remap any Apex automation, scheduled jobs, and integrations that referenced the old Statement object. The new platform is the strategic direction; new investment lands there, and Salesforce has published a phased migration path for existing customers. Plan the move as a quarter-long project, not a weekend cutover, since billing changes need careful UAT against the production AR ledger before customers see new statement formats.
Configuring Statements end to end
Setting up Statements is mostly about configuring three things: the Statement Frequency that drives cycle dates, the Statement Template that controls PDF output, and the scheduled job that runs generation and delivery. The Billing Account itself needs the right anchor date and the right frequency reference, and the underlying Invoices and Payments need to be flagged for statement inclusion. None of the steps is hard individually, but they have to be configured in order so the first scheduled run produces a clean statement that finance can sign off on.
- Configure Statement Frequencies for each billing cadence
Open Setup, search Statement Frequency, and create one record per cadence your customers use (Monthly, Quarterly, Annual, and any custom intervals). For each frequency, set the cycle length, the anchor date method (calendar-aligned or account-anchor), and the cutoff time for posting transactions to the period. Activate the frequency only after you have tested it in a sandbox against a fixture billing account, since changing a live frequency mid-cycle creates orphaned transactions that have to be manually reassigned to the right cycle. Document each frequency in the billing operations runbook for finance team reference.
- Build the Statement Template for PDF rendering
From Setup, open the Statement Template object and create a template that matches your brand guidelines. The standard sections are header (logo, account info, cycle dates), summary block (opening balance, period totals, closing balance), line items (Invoices, Payments, Credits with date and amount), aging buckets, and footer (legal text, support contact, payment instructions). Test the template by previewing it against a fixture Statement record in a sandbox. Iterate on the design with finance and customer success before promoting to production, since customers will see the output and brand issues are expensive to fix after the first delivery.
- Configure each Billing Account with the right frequency and template
On each Billing Account record, set Statement Frequency to the frequency the customer agreed to in the contract, and set Statement Template to the brand-specific template that matches the customer segment (default, enterprise, partner channel). Also set the Anchor Date that determines when the cycle starts and the Delivery Method (email, portal, integration) for how the rendered PDF reaches the customer. Bulk-update existing accounts through a Data Loader pass if you are migrating from a manual statement process, and validate the data with a report before activating the generation schedule.
- Schedule and monitor the Statement Generation job
Salesforce ships a Statement Generation scheduled Apex job that runs daily and processes any billing accounts whose cycle ended that day. Activate the job from Setup, Apex Jobs, Scheduled Jobs, and confirm it is running on the right user identity (a System Administrator profile with access to Billing Accounts, Invoices, and Payments). Add the job to a monitoring dashboard so failures surface within hours, not days. The generation job is the single point of failure for billing operations; treat it as a tier-1 production job and assign explicit ownership in the runbook.
- Changing Statement Frequency on a live billing account mid-cycle creates orphaned transactions that have to be manually reassigned. Change frequencies at cycle boundaries, never mid-period.
- The Statement Generation job runs as a scheduled Apex job. If it fails silently, customers do not get statements and AR collections stops. Add it to a tier-1 monitoring dashboard with paging on failure.
- Statement totals are frozen at generation time. If a back-dated Payment posts to a closed cycle, the Statement does not automatically refresh. Either regenerate the Statement or post a correction in the next cycle.
- Salesforce Billing (legacy managed package) and Revenue Cloud Billing use different Statement object schemas. Code, reports, and dashboards built on the legacy schema break on migration. Plan the rewrite as part of the move.
- Aging buckets on the Statement reflect the cycle-end date, not today. A 60-day-old invoice on a quarterly statement may already be 90+ when the customer reads it. Make this clear in the template footer.
Trust & references
Straight from the source - Salesforce's reference material on Statement.
- Statements Overview (Salesforce Billing)Salesforce Help
- Statement TemplatesSalesforce Help
- Revenue Cloud Billing OverviewSalesforce Help
Hands-on resources to go deeper on Statement.
About the Author
Dipojjal Chakrabarti is a B2C Solution Architect with 29 Salesforce certifications and over 13 years in the Salesforce ecosystem. He runs salesforcedictionary.com to help admins, developers, architects, and cert/interview candidates sharpen their fundamentals. More about Dipojjal.
Test your knowledge
Q1. What is a Statement in Salesforce Billing?
Q2. What does it consolidate?
Q3. Who uses statements?
Discussion
Loading discussion…