SAP Billing (Sales) Report
A billing report joins the SAP billing header and item tables and the customer, so each invoice line reads with customer, material, quantity, net value and tax on one Excel row.
- PostNow ships this report out of the box – pick it, set filters, run, and it lands in Excel; no SE16, joins or ABAP.
- The data spans several tables. It joins VBRK, VBRP, KNA1 on VBELN + POSNR and resolves the text lookups.
- The standard route is manual. Teams use VF03 for a single record, then SE16 or SQVI to stitch tables together in Excel.
- You get clean, labelled columns. VBELN, FKART, FKDAT, VKORG, KUNAG, KUNRG and more, each with a plain-English heading.
- Refreshable, not a one-off dump. Rerun the report to pull the latest, with your own SAP authorizations enforced. Works on ECC and S/4HANA.

What the billing report shows
A SAP billing report answers a simple question that SAP makes surprisingly hard: give me every billing record, with all the attributes that matter, in one place I can filter and share. On screen, SAP shows one record at a time and splits its attributes across several views. This report flattens all of that into a single Excel sheet, one row per record, with the codes turned into readable labels.
Because the output is a plain sheet, it becomes the starting point for the work people actually do with it: a data-quality review, a cleanup before a migration, a hand-off to an auditor, or a source for a pivot. The value is not just the extract, it is that the extract is complete and consistent every time you run it.
A billing report is where sales and finance meet, so it tends to serve two audiences at once. Sales want the invoice register by customer, material and period to see what was billed; finance want the same data tied to the ledger for a revenue reconciliation. Because the report carries both the billing detail and the reference that links each invoice to its accounting document, one extract answers both, instead of two teams building two spreadsheets from the same underlying documents.
The SAP tables behind it
A billing document is a header with items. VBRK holds the billing header: billing document VBELN, billing type, billing date, sales org and the sold-to and payer. VBRP holds the items, keyed by VBELN plus item, with material, billed quantity and net value, and it carries the reference to the source sales order in AUBEL. The customer name is joined from KNA1 on the sold-to KUNAG. Because billing posts to accounting, the billing document links to the financial document in BKPF through the reference, so a billing report can be reconciled to the ledger. Keyed at item level, each invoice line is one row.

The joins are the whole reason this is worth automating. Miss one and the report is subtly wrong; get the key fields slightly off and rows fan out or drop. Doing it once, correctly, and then reusing it is what turns a fragile spreadsheet exercise into a reliable report.
The columns you get
Every column below is a real SAP field, labelled in plain English, with the table it is read from. These are the fields most teams want on a billing report; a tool like PostNow lets you add or remove columns without touching the underlying join.
| SAP field | What it is | Source |
|---|---|---|
| VBELN | Billing document | VBRK |
| FKART | Billing type | VBRK |
| FKDAT | Billing date | VBRK |
| VKORG | Sales organization | VBRK |
| KUNAG | Sold-to party | VBRK |
| KUNRG | Payer | VBRK |
| NETWR | Net value | VBRK |
| MWSBP | Tax amount | VBRK |
| FKIMG | Billed quantity | VBRP |
| MATNR | Material | VBRP |
| AUBEL | Source order | VBRP |
| WAERK | Currency | VBRK |
Building it yourself: VF03, SE16 or SQVI
VF03 shows one invoice and VF05 lists invoices for a customer or material, but with a fixed layout. SE16 on VBRK and VBRP gives the header and items, matched on the billing document in Excel, plus KNA1 for the customer name. Reconciling billing to accounting means bringing in the reference link to BKPF, which is not a straight join. A refreshable invoice register with tax and the accounting link is a developer task rather than a quick export.
None of this is impossible; people do it every month. The problem is that it is manual, easy to get subtly wrong, and stale the moment it is saved. Each refresh means repeating the same exports and the same lookups, and any new column means another round with a developer. For a one-off you can push through it. For a report you run every period, the cost adds up. If you want the general landscape of options first, see our overview of SAP reporting tools and how to get SAP to Excel.
The out-of-the-box way: PostNow's billing report
PostNow's Report Library already contains this exact report, pre-built. You do not assemble the joins or resolve the texts; that is done for you. You open Excel, log in to postnow.ai from the task pane, pick the billing report, set your range filters, and run. The governed, joined data lands in the sheet, ready to filter, pivot or share, and you can refresh it whenever you need the latest.

Two things make this different from a SE16 dump. First, it is governed: PostNow enforces your own SAP authorizations, so you only ever see the data you are entitled to, and every row can be traced back to its source. Second, it is repeatable: the same report, the same columns, refreshable on demand, with no ABAP to write or maintain. That is the payoff of teaching the hard version first, then handing you the shortcut.
Filters and selection you'll want
A good billing report is only as useful as the selection you can put on it. The filters most teams reach for are:
- Billing document range (VBELN)
- Sold-to / payer (KUNAG)
- Sales organization (VKORG)
- Billing type (FKART)
- Billing date (FKDAT range)
- Material (MATNR)
You set these once as your selection, then reuse or adjust them each run. Because the selection travels with the report, a monthly extract becomes a single refresh rather than a rebuild.

ECC vs S/4HANA
Billing documents post to accounting, and the billing header VBRK links to the financial document header BKPF through the reference (AWKEY). This holds on both ECC and S/4HANA, so a billing report can be reconciled to the ledger on either release; PostNow reads the tables through standard interfaces.
The practical takeaway is that a report built on the tables and read through standard interfaces survives a migration far better than one wired to a specific screen or a custom program. When you eventually move from ECC to S/4HANA, a table-based billing report keeps working, which is one less thing to rebuild in an already large project.
Frequently asked questions
How do I get a billing report out of SAP into Excel?
You can export the underlying tables with SE16 and stitch them together in Excel, build a query in SQVI, or ask a developer for an ABAP report. The quickest governed route is a tool that already has the report built: in PostNow you log in to postnow.ai from the Excel task pane, pick the billing report from the Report Library, set your filters and run, and the joined data lands in the sheet.
Which SAP tables hold billing data?
The data is spread across several tables that have to be joined on their key fields: VBRK, VBRP, KNA1. The report links them on VBELN + POSNR and resolves the text tables so the output reads in plain language.
Is there a standard SAP report or transaction for billing?
There are standard transactions (VF03 and others), but they are built for on-screen display or for a fixed layout, not for a clean, refreshable Excel extract with exactly the columns you want. That is why most teams fall back to SE16 exports or a custom report.
How do I export billing data to Excel without ABAP?
Use a tool whose SAP connection is set up once and then reads through standard interfaces, so no ABAP is needed for day-to-day reporting. PostNow reads the billing tables, performs the joins and text lookups, and writes the result straight into Excel, refreshable on demand, with your own SAP authorizations enforced.
Can I refresh or schedule the report?
Yes. Because the report keeps its connection and selection, you can refresh it to pull the latest data at any time rather than rebuilding the extract. This is the main advantage over a one-off SE16 dump, which is stale the moment it is saved.
Does it work in S/4HANA?
Billing documents post to accounting, and the billing header VBRK links to the financial document header BKPF through the reference (AWKEY). This holds on both ECC and S/4HANA, so a billing report can be reconciled to the ledger on either release; PostNow reads the tables through standard interfaces.
How do I get an invoice register out of SAP into Excel?
Billing headers sit in VBRK and items in VBRP. A report joins them and adds the customer name from KNA1, giving an invoice register with billing type, date, net value and tax per line. Filter by sales org, billing type and date to get exactly the register you need.
Can I reconcile billing to the G/L?
Yes. Each billing document links to its financial document in BKPF through the reference (AWKEY). A report can carry that link so billing totals can be tied back to the ledger, which is what you need for a revenue reconciliation.