Rebates with Condition Contract Settlement (S/4HANA)
A customer earns 2% back on the year's sales. A condition contract defines the rebate; every invoice accrues it; at year end the settlement turns the accruals into a credit to the customer. In S/4HANA this replaces classic SD rebate agreements.
Educational content. SAP behaviour varies by configuration and release. Spotted something off? Report it.
Digital twin
01Create the condition contract
Condition contract CC-2026-0001: 2% rebate on the year's net sales to Demo Retail.
Business scenario
Demo Retail is promised a 2% annual rebate. Two invoices of ₹6,00,000 each are issued during the year. Settlement happens at year end.
All companies, numbers and documents are fictional demo data.
Step-by-step flow
- 01
Create the condition contract open in twin
Condition contract CC-2026-0001: 2% rebate on the year's net sales to Demo Retail.
It is the S/4HANA successor of the SD rebate agreement (VBO1).
- 02
Invoice 1 accrues the rebate open in twin
Invoice for ₹6,00,000; ₹12,000 rebate accrued.
The cost of the rebate belongs to the period of the sale, not to the settlement date.
- 03
Invoice 2 accrues again open in twin
Another ₹6,00,000; accruals now ₹24,000.
At any time finance can see the rebate liability.
- 04
Year end open in twin
Accruals total ₹24,000. How is the customer paid?
It uses the actual business volume and clears the accruals in one step.
- 05
Accruals left open open in twin
A manual credit memo pays the customer but leaves the accruals open, so the rebate is expensed twice.
Accruals must be reversed by the settlement that pays them.
- 06
Settle: accruals become a customer credit open in twin
Settlement on ₹12,00,000: ₹24,000 credited to the customer; accruals cleared.
Partial and periodic settlements are also possible — configuration dependent.
- 07
Rebate paid open in twin
Contract → accruals on every invoice → year-end settlement.
In ECC, rebate agreements (VBO1) and settlement (VB(7)) did the same job with different tables.
SAP documents
Stock impact
This part of the process does not change stock.
Accounting impact
Customer invoice
TypicalInvoice 1 accrues the rebate
- Dr Customer receivable₹6,00,000
- Cr Revenue — domestic sales (ERL)₹6,00,000
Standard billing.
Rebate accrual on the invoice
Configuration dependentInvoice 1 accrues the rebate
- Dr Rebate expense (sales deductions) (ERB (typical))₹12,000
- Cr Rebate accruals (ERU (typical))₹12,000
The condition contract's rebate condition adds a statistical 2% to each invoice and posts an accrual, so the expected rebate is expensed in the same period as the revenue. Account keys and timing are configuration dependent.
Customer invoice
TypicalInvoice 2 accrues again
- Dr Customer receivable₹6,00,000
- Cr Revenue — domestic sales (ERL)₹6,00,000
Standard billing.
Rebate accrual on the invoice
Configuration dependentInvoice 2 accrues again
- Dr Rebate expense (sales deductions) (ERB (typical))₹12,000
- Cr Rebate accruals (ERU (typical))₹12,000
The condition contract's rebate condition adds a statistical 2% to each invoice and posts an accrual, so the expected rebate is expensed in the same period as the revenue. Account keys and timing are configuration dependent.
Rebate settlement
Configuration dependentSettle: accruals become a customer credit
- Dr Rebate accruals₹24,000
- Cr Customer receivable₹24,000
The settlement document credits the customer and reverses the accruals. If the final rebate differed from the accruals, the difference would go to rebate expense.
Typical conceptual flow. Actual G/L accounts and posting behaviour depend on material valuation, automatic account determination and system configuration.
Movement type
This flow spans several documents rather than a single movement type.
Rewards customers for volume with retrospective rebates, accruing the cost as sales happen and settling it at agreed intervals.
Transactions & Fiori apps
- WCOCO — Condition Contract Maintenance (S/4HANA)
- WB2R_SC — Condition Contract Settlement
- VF01 — Billing
- VBO1 — Create Rebate Agreement (ECC)
- Manage Condition ContractsS/4HANA settlement management; availability depends on scope
Differences by SAP version
SD rebate agreements: VBO1, settlement VB(7).
Condition contract settlement replaces SD rebate processing for new agreements.
Settlement management with Fiori apps.
Configuration
Condition contract type
Configuration dependentDefines eligible partners, condition types and settlement.
Accrual account keys
Configuration dependentRevenue account determination for rebate expense and accrual — typical keys ERB/ERU.
Prerequisites
- Condition contract type for sales rebates
- Rebate condition types and accrual account keys
- Settlement calendar
Master data
- Customer
- Rebate recipient.
Organizational structure
- Sales organization 1000
- Company code 1000
Tables
| Table | Description |
|---|---|
| WCOCOH | Condition contract header (S/4HANA) — requires configuration validation |
| KONA | Rebate agreements (ECC) |
Integration
- FIAccruals and customer credit.
- CORebate expense reduces margin in profitability analysis.
Common errors
“No accrual on invoices”
Likely causes: Invoice outside the contract's validity; Customer not eligible on the contract
Where to look: Pricing analysis · Condition contract partners
Troubleshooting
Something went wrong? Work through these checks in order. They are diagnostic questions, not configuration instructions — confirm changes with your system owner.
CHECK 1
Accrual
- Contract valid for the invoice date?
- Customer eligible?
Interview questions
How are rebates handled in S/4HANA?
With condition contract settlement (settlement management): a condition contract defines the rebate; invoices accrue it via pricing; settlement runs (periodic or final) credit the customer and reverse the accruals. Classic SD rebate agreements (VBO1) are replaced for new rebates.
Quiz
References
- SAP SE — SAP Help Portal: Condition Contract Settlement (source)
- SAP SE — SAP Help Portal: Settlement Management (source)
Explanations are original. They summarize standard behaviour; always validate against your system's release and configuration.
Version history
| Version | Change |
|---|---|
| 1.0.0 | Initial version. |