top of page

Billing Block in SAP SD

Updated: May 3

Introduction


In the SAP SD module, billing blocks are used to temporarily prevent the creation of billing documents for specific sales or delivery documents. This functionality is especially useful for implementing business control points such as management approval, documentation completeness, or financial clearance before an invoice is issued.


Billing blocks are flexible, easy to configure, and can be manually applied by users or automated through business logic (e.g., user exits, BAdIs).


Typical business scenarios for using billing blocks include:

  • High-value orders requiring approval

  • Export shipments awaiting customs clearance

  • Incomplete delivery documents pending confirmation

  • Payment-in-advance terms not fulfilled


How It Works


When a billing block is assigned to a sales order, delivery, or billing-related document, SAP will prevent the generation of an invoice (via VF01 or batch billing jobs) until the block is removed. This allows the business to implement soft stops in the billing process without deleting or modifying the core transaction.


Billing blocks are typically managed through:

  • The Sales Order Header

  • The Delivery Document Header


Configuring Billing Block (Example: Approval Required)


Below are the steps to configure and use billing blocks in SAP SD. In this example, we create a custom billing block “Z1 – Approval Pending” and assign it to sales orders above a certain threshold.


Step 1: Define Billing Block Reasons


Menu Path: IMG ➝ Sales and Distribution ➝ Billing ➝ Billing Documents ➝ Define Blocking Reason For Billiing ➝ Billing: Blocking Reasons


  • Create a new billing block key (e.g., Z1)

  • Provide a description: “Approval Pending”

  • Leave other settings default unless specific output control is needed


Step 2: Assign Blocking Reasons to Billing Types


Menu Path: IMG ➝ Sales and Distribution ➝ Billing ➝ Billing Documents ➝ Define Blocking Reason For Billiing ➝ Assign Blocking Reasons to Billing Types


  • Select the relevant billing type (e.g., ZGI-Germany Invoice)

  • Assign the previously created billing block key (e.g., Z1) to the billing type

  • Save the configuration



Step 3: Maintain Billing Block in Sales Documents


Billing blocks can be applied at the header level of a sales order or delivery document.


Sales Order:

  • TCode: VA01 / VA02 → Header → Billing Tab → Field: Billing Block


Delivery Document:

  • TCode: VL01N / VL02N → Header → Billing Tab → Field: Billing Block


Select the block reason (Z1) to prevent billing generation.


Step 4: Monitor Billing Blocks


To view all sales documents that are ready for billing but have an active billing block, use the standard transactions V23 or VBBLOCK.


Transaction Code: V23 (or VBBLOCK)

  • Selection screen: Company Code, Sales Organization, Document Type

  • Output list: Sales documents that are blocked for billing due to an active billing block


Master Data and Automation Options


Although billing blocks are usually set manually, it is also possible to assign them automatically based on:

  • Order value threshold (e.g., via user-exit USEREXIT_SAVE_DOCUMENT_PREPARE)

  • Customer master field (e.g., risky customers)

  • Delivery type or country-specific logic

These enhancements require ABAP logic but significantly improve process control.


Example Scenario: High-Value Order Requiring Approval


A company has a policy that all orders above €50,000 require management approval before billing.

  1. Sales Rep creates a sales order via VA01

  2. Due to the high order value, the sales rep manually applies billing block Z1

    (Alternatively, the system can be enhanced to automatically check the order value and apply the Z1 block)

  3. The Sales Manager reviews the order using transaction V23 or VBBLOCK, which lists all sales documents blocked for billing

  4. Sales Manager approves the order

  5. Billing block is manually removed via VA02

  6. Invoice is created via VF01


Conclusion


Billing blocks are a simple yet powerful feature in SAP SD that help companies implement flexible process controls in the billing cycle. Whether applied manually or automatically, they ensure that invoices are only issued when business and compliance conditions are fully met.

Proper use of billing blocks not only reduces billing errors but also improves collaboration between sales, finance, and operations teams.



Mahmut Yaka 

SAP SD/MM Consultant




Comments


bottom of page