Withholding Tax:
Withholding Tax is a tax that is deducted at the source of income before the recipient receives the payment. It is a legal requirement imposed by governments to ensure that taxes are collected efficiently and timely. The payer of the income withholds or deducts the tax amount and deposits it with the government on behalf of the payee.
We develop functionalities in SAP ERP systems (like SAP S/4HANA) to manage withholding tax effectively. These functionalities include:
- Classic Withholding Tax: Used for simpler tax scenarios where tax is deducted directly during invoice processing.
- Extended Withholding Tax: Provides advanced capabilities such as multiple withholding tax types, exemption handling, and reporting requirements.
Localization and Compliance
We ensure the withholding tax functionality adheres to specific country legal and compliance requirements:
- Country-Specific Solutions: Support withholding tax laws in multiple jurisdictions, incorporating local tax rules and thresholds.
- Updates for Legal Changes: Continuously update systems to reflect changes in tax laws, ensuring compliance.
Reporting and Documentation
We develop tools and templates for reporting withholding tax:
- Tax Certificates: Generate certificates for tax deducted, which the payer provides to the payee.
- Statutory Reporting: Support local reporting formats (e.g., Form 26Q in India).
- Audit and Reconciliation: Provide detailed records to help businesses reconcile tax payments with statutory filings.
DRC / ACR Reports:
Digital Reporting Compliance (DRC) is an SAP cloud-based solution designed to help businesses meet statutory reporting requirements by digitally submitting reports to tax authorities. It is part of SAP’s strategy to address real-time compliance needs, driven by governments globally mandating electronic submissions for various tax-related transactions.
Basically the implementation is on SEGW Project(ODATA). So , we would change the method _prepare_entity inside the project ‘FDP_FIWTTH_50BIS’
We should go DPC_EXT class now
Go inside _prepare_entity method
We should add the code inside that method.
WHEN '3500' OR '3600' OR '3700' OR '3800' OR '3900' OR '35A'.
IF is_entityset-amountsect405 IS INITIAL AND
is_entityset-datesection405 IS INITIAL AND
is_entityset-taxsect405 IS INITIAL.
is_entityset-amountsect405 = <ls_consumq>-calcdtxbaseamtincocodecrcy.
is_entityset-datesection405 = <ls_consumq>-postingdate.
is_entityset-taxsect405 = <ls_consumq>-calculatedtxamtincocodecrcy.
is_entityset-withholdingtaxcodename51 = <ls_consumq>-whldgtaxcodename.
ELSEIF is_entityset-amountsect4052 IS INITIAL AND
is_entityset-datesection4052 IS INITIAL AND
is_entityset-taxsect4052 IS INITIAL.
is_entityset-amountsect4052 = <ls_consumq>-calcdtxbaseamtincocodecrcy.
is_entityset-datesection4052 = <ls_consumq>-postingdate.
is_entityset-taxsect4052 = <ls_consumq>-calculatedtxamtincocodecrcy.
is_entityset-withholdingtaxcodename52 = <ls_consumq>-whldgtaxcodename.
ELSEIF is_entityset-amountsect4053 IS INITIAL AND
is_entityset-datesection4053 IS INITIAL AND
is_entityset-taxsect4053 IS INITIAL.
is_entityset-amountsect4053 = <ls_consumq>-calcdtxbaseamtincocodecrcy.
is_entityset-datesection4053 = <ls_consumq>-postingdate.
is_entityset-taxsect4053 = <ls_consumq>-calculatedtxamtincocodecrcy.
is_entityset-withholdingtaxcodename53 = <ls_consumq>-whldgtaxcodename.
ELSE. "If more than 3 income type related to ths (item5) then later will be ignored as max 3 is allowed.
lv_linefive_count = 1.
ENDIF.
The above code we should add instead of below code.
WHEN '3500' OR '3600' OR '3700' OR '3800' OR '3900' OR '35A'.
IF lv_linefive_count IS INITIAL.
is_entityset-totalwithholdingtax = is_entityset-totalwithholdingtax + <ls_consumq>-calculatedtxamtincocodecrcy.
is_entityset-totalwithholdingbase = is_entityset-totalwithholdingbase + <ls_consumq>-calcdtxbaseamtincocodecrcy.
ENDIF.
Here what we have did is, changed the Entity type and written three conditions to store three line items in different lines. For that we should go entity type and add extra 6 fields to store another 6 fields data(Previously, It has only 3 fields to store only one line item, Now, along with that we have added another 6 fields. So that, It can store 3 line items with 3 fields each)
Those 6 fields we have added.
Now, If we add extra fields to the entity type, definitely we should change our form(Adobe form) as well
Now we should go to that form and map the fields to extra fields.
The form name would be ‘FIWTTH_50BIS’
Go inside the form.
Go to layout
Here, we should map the below fields to which we have added the fields in Entity type.
For output, We should post one Invoice and Payment for the Tax type and code which would have income type as ‘3500’ OR ‘3600’ OR ‘3700’ OR ‘3800’ OR ‘3900’ OR ’35A’.
Before that we will see the Tax codes and types in SPRO configuration.
After Mapping done, we should go to the Frond end app and should run our report through AP_MANAGER_TH user.
Now, search for Run statutory reports
Give report name as TH_WHT_50BIS and Reporting Entity name would be ‘TH_WHT_ENT’
Click on Go
Select that report
Now, we will get our desired out put If we run this report and see the PDF file.
Previously It was different form that would give us only one line item.
But now, It would show 3 line items for the 5th line i.e., If the income type is ‘3500’ OR ‘3600’ OR ‘3700’ OR ‘3800’ OR ‘3900’ OR ’35A’.