In short

SAP Mass Billing with VF01

SAP mass billing is the practice of creating many billing documents in one controlled run, turning delivered goods or completed services into invoices. It is the last step in the order-to-cash chain and the point where the whole chain becomes externally visible in a customer's accounts payable department.

  • Billing produces two documents. An SD billing document the customer receives, and an FI accounting document recognising revenue and creating a receivable.
  • An unreleased billing document has invoiced without recognising revenue. Invisible in a creation count, and material at volume.
  • Use VF04 for the routine run. A file is for month-end selections and populations chosen outside SAP.
  • Billing blocks are decisions. Each was set because an invoice should not go out yet.
  • Pricing normally carries from the order, but not always. Redetermination and expired conditions both change invoice values quietly.

What SAP mass billing means

SAP mass billing is the practice of creating many billing documents in one controlled run, turning delivered goods or completed services into invoices. It is the last step in the order-to-cash chain described on the SD bridge, and the one where two things happen that matter to different people.

Billing produces two documents. An SD billing document, which the customer receives, and an FI accounting document, which recognises revenue and creates a receivable. One action, two records, and a mass run has to reconcile both.

It is also the point where the whole chain becomes externally visible. A wrong sales order is internal until it ships. A wrong invoice is in a customer's accounts payable department.

The eight stages of SAP mass billing with VF01: work the billing due list, log in to postnow.ai, map billing fields, check pricing carried, validate, test create, create through the BAPI, and release to accounting.
Diagram The eight stages of billing at volume, where the document reaches a customer.

Two documents, one action

SAP billing produces two documents: an SD billing document the customer receives with priced line items and output determination, and an FI accounting document recognising revenue and creating a receivable.
Diagram One action produces two records, and both have to reconcile.

Understanding both halves is what makes a billing run reconcilable.

The SD billing document is the commercial record. Line items priced from the order, output determination sending it by print, email or EDI, and links back to the delivery and the sales order. It is cancellable through a cancellation document rather than deletion.

The FI accounting document is the financial record. A receivable on the customer account, revenue recognised, tax posted. It is subject to the same period control as any FI document, described on the FICO bridge.

The subtlety is that these can be separated in time. Depending on configuration, a billing document may be created and released to accounting immediately, or created and released later.

An unreleased billing document has invoiced the customer without recognising the revenue. The commercial event happened and the financial one did not. On a large run this can leave a material amount unrecognised, and it is invisible unless somebody checks the release status rather than the creation count.

VF04, VF01, or a file

Comparison of SAP VF04 collective billing, VF01 individual billing and a file-based run, covering how each selects documents, grouping control, billing date control and what each is right for.
Diagram VF04 handles the routine run. A file is for chosen populations.

Three ways to bill, and the routine one is free.

VF04 handles the daily billing run. It works the billing due list, selects by criteria and date, and groups according to configuration. For standing billing this is the right tool and there is nothing to build.

VF01 handles individual exceptions. One document at a time, for corrections and special cases.

A file handles chosen populations. Month-end selections, a specific customer group, a set of documents somebody has identified outside SAP, or billing dates that need controlling per row rather than per run.

The pattern is the same as for deliveries: the standard collective transaction covers the routine, and a file covers the cases where a human has made a selection the transaction cannot express.

Validation: six checks before a single invoice is created

Six validation checks before an SAP billing document is created: delivery goods issued, no billing block, billing date in an open period, pricing carried correctly, tax determinable, and payer and terms present.
Diagram Billing failures are usually blocks somebody set deliberately.

Billing failures are usually blocks somebody set deliberately, which makes them decisions rather than errors.

A billing block exists because an invoice should not go out yet: a dispute, a pending credit note, a delivery not yet confirmed by the customer, or a commercial hold. Clearing it to make a run complete sends an invoice somebody had decided to hold.

Goods issue not posted is the most common structural failure. A delivery that has been created but not goods issued is not billable, because nothing has actually left. On a run following a large delivery creation, this affects everything the warehouse has not yet processed.

The billing date drives the period. Which means the accounting document needs that period open, and a month-end run dated on the last day of a closed period fails on every row.

Pricing carries forward, unless it does not

An invoice normally prices from the sales order rather than redetermining prices afresh. That is what makes the invoice match what the customer was quoted.

Two situations change it, and both surprise people at volume.

Redetermination on the billing date. Where configuration redetermines certain condition types at billing, a price change made since the order was taken applies to the invoice. That may be correct for freight or tax and is rarely correct for the base price.

Condition records that have expired. Where a mandatory condition existed at order time and its validity has since ended, billing can fail or reprice. This is the delayed consequence of the validity overlaps described in the pricing condition guide.

The practical check is to read one invoice against its order on any large run. If the values differ, something redetermined, and finding that on three documents is considerably better than finding it on four hundred customer queries.

Running billing from Excel

Try this in your own system

PostNow runs SAP mass billing from Excel

Month-end billing selections usually start as a spreadsheet. PostNow adds a task pane to Excel, connects with your own credentials, and creates the billing documents from the file where the selection was made.

Validate

Blocks, goods issue status and period checked before anything creates.

Per row

Billing date and type controlled per line rather than per run.

Both documents

Billing and accounting document numbers written back.

Reconcile

Revenue posted compared against the selection billed.

Start free trial 14-day trial · creates through published SAP interfaces

Step by step

Step by step infographic for SAP mass billing with VF01: work the billing due list, log in to postnow.ai, map reference and billing date, respect the blocks, validate periods and tax, then create and release.
Infographic Six steps from delivered goods to invoices customers receive.

After a billing run

Four checks, and the first two are the ones that matter to finance.

Confirm release to accounting. Every billing document should have an accounting document. Any that does not has invoiced without recognising revenue, and the gap is invisible in a creation count.

Reconcile revenue to the selection. Total billed value against what the file said should be billed. A difference means something repriced, something blocked, or something billed that should not have been.

Check output went out. Invoices transmit by print, email or EDI. Created and untransmitted means the customer has not been billed in any way that matters to them.

Review what was blocked. The list of documents that did not bill, and why. Each is somebody's decision and the list is the follow-up work.

Common mistakes

  • Counting created documents rather than released ones. An unreleased invoice has not recognised revenue.
  • Clearing billing blocks to complete a run. Each was set because an invoice should not go out yet.
  • Billing deliveries that have not been goods issued. Nothing has left, so nothing is billable.
  • Assuming pricing carried forward. Redetermination and expired conditions both change invoice values silently.
  • Using a file where VF04 would do. The due list handles the routine run for free.
  • Ignoring the billing date period. A month-end date in a closed period fails on every row.

Complete reference

SAP mass billing reference infographic for VF01 covering what billing produces, the fields to map, checks before creating, what to do after the run, and how the run works.
Infographic The complete VF01 reference: two documents, checks, and the run.

Go deeper

SAP SD mass upload

The sales hub: orders, deliveries, pricing and the order-to-cash chain.

SAP FICO mass posting

Where the accounting document lands, and the period control it obeys.

SAP mass upload

The pillar guide covering validation, error handling and governance.

Master data

The payers, terms and tax classifications billing depends on.

Frequently asked questions

What is SAP mass billing?
It is the practice of creating many billing documents in one controlled run, turning delivered goods or completed services into invoices. It is the last step in the order-to-cash chain, and the point at which the chain becomes externally visible, because a wrong invoice arrives in a customer's accounts payable department.
What two documents does SAP billing create?
An SD billing document, which is the commercial record the customer receives with priced line items and output determination, and an FI accounting document, which recognises revenue, posts tax and creates a receivable on the customer account. One action produces both, and a mass run has to reconcile both.
What does it mean if a billing document is not released to accounting?
The commercial event has happened and the financial one has not: the customer has been invoiced but the revenue is not recognised and no receivable exists. At volume this can leave a material amount unrecognised, and it is invisible if you count created documents rather than checking release status.
When should I use VF04 instead of a file?
Use VF04 collective billing for the routine daily run. It works the billing due list, selects by criteria and date, groups according to configuration, and is free. A file is for month-end selections, specific customer groups, populations somebody identified outside SAP, or where billing dates need controlling per row rather than per run.
Why can I not bill a delivery?
The most common reason is that goods issue has not been posted. A delivery that exists but has not been goods issued is not billable, because nothing has actually left. On a run following a large delivery creation, this affects everything the warehouse has not yet processed. Billing blocks on the order, item or customer are the other common cause.
Does an invoice reprice, or does it use the order price?
Normally it prices from the sales order, which is what makes the invoice match what the customer was quoted. Two things change that: configuration redetermining certain condition types at billing, which may be correct for freight or tax and rarely for the base price, and condition records that have expired since the order was taken. Read one invoice against its order on any large run.
What is a billing block?
A block preventing an invoice being created, set because it should not go out yet: a dispute, a pending credit note, a delivery not confirmed by the customer, or a commercial hold. It sits on the order, the item or the customer. Clearing blocks to make a mass run complete sends invoices somebody had deliberately decided to hold.
Why does the billing date matter?
It drives the posting period for the accounting document and the due date for the receivable. A month-end run dated on the last day of a period that has since closed fails on every row, and a billing date that differs from the intended period misstates revenue recognition. It is worth setting deliberately rather than defaulting to the run date.
What should I check after a mass billing run?
That every billing document has an accounting document, since an unreleased one has not recognised revenue. That total billed value reconciles to the selection. That output actually transmitted, because created and untransmitted means the customer has not been billed in any way that matters to them. And the list of what was blocked, which is the follow-up work.
How do I cancel a billing document created in error?
Through a cancellation document rather than deletion, which reverses both the billing document and its accounting entry. Like every other financial document in this cluster, the original and the cancellation both remain visible permanently, so finding errors before the invoices transmit is considerably better than correcting afterwards.
Start with a real file

Run your next sap mass billing from Excel

Map your columns once, validate every row against live SAP, and post through standard logic. Each row comes back with the document number it created.

Start free trial
  • 14-day free trial
  • Works with ECC and S/4HANA
  • Your data stays in your systems