Issue with Withholding Tax Display in Invoice Processing
I need help with a configuration requirement in our SAP system. When processing vendor invoices through invoice verification, the system shows all withholding tax codes that are configured for the supplier. However, our business team wants to limit these tax options based on the purchase order category being used.
Current Situation:
When I process an invoice, I see withholding tax codes like 02, 05, 08, and 09 appearing automatically from the vendor master data setup. But depending on the PO category, we only want to show specific tax codes. For instance, for certain PO categories, we should only see tax codes 02 and 05 in the interface.
What I Tried:
I attempted to use enhancement points MRM_TAX_FILTER_CUSTOM and MRM_VALIDATION_CHECK but these didn’t produce the expected results.
Expected Result:
I want to control which withholding tax lines appear based on the purchase order type, showing only relevant tax codes instead of all configured ones.
We are working on an S/4HANA environment. Has anyone implemented similar functionality? Any guidance would be appreciated.
Had this exact issue during our finance upgrade last year. Those standard enhancement points are terrible at handling the display layer in S/4HANA. Here’s what actually worked for us: field substitution rule + validation logic at document level. We built a custom table linking PO categories to allowed withholding tax types, then used OBBH to create substitution rules that check PO category during invoice entry. The trick was setting the substitution to trigger during PARK or POST events, not initial data entry. This catches withholding tax determination at the right time and filters out bad codes before they hit the screen. Also had to tweak field status groups in vendor master so the substitution logic could control the withholding tax fields properly. Took some experimenting with timing, but now AP only sees relevant tax codes based on their PO categories - no custom coding needed.
Hit the same issue a couple years ago when our finance team was drowning in tax code confusion during invoice processing. Those enhancement points you tried are tricky and honestly not worth it.
We ended up automating the whole filtering process outside SAP’s rigid framework. Built a smart automation that watches invoice verification screens in real time and filters withholding tax options based on PO category rules.
It reads the PO category from the current transaction, checks our predefined mapping table (like category X shows only codes 02 and 05), then hides or greys out irrelevant tax codes before users see them.
Way cleaner than modifying SAP core processes. You can tweak filtering rules without touching code or enhancement points. We’ve got it running for about 200 users now - saves tons of confusion and mistakes.
Best part? Works with your existing S/4HANA setup without system modifications. Pure automation magic that makes the interface behave exactly how your business wants.
We hit this same issue about six months back during our S/4HANA rollout. You’re right - those standard enhancement spots are useless since they fire way too late. Here’s what actually worked: we built a custom BAdI in the invoice verification transaction. Used the IF_EX_INVOICE_UPDATE interface with filtering logic that checks the PO category during withholding tax determination. System pulls the PO category from EKPO and cross-references our custom config table with the valid tax code combos. The trick was catching the withholding tax before it hits the screen instead of trying to fix it after. We also made sure authorized users can still override for edge cases. Took three weeks to build and test, but now AP only sees relevant tax codes for their PO categories. Way cleaner workflow and we’ve cut processing errors big time.