As part of the standard post payroll processing steps, a company has to pay its vendors the amounts calculated in payroll. An example of some of these vendors are the following:
- The federal government for taxes withheld
- The state for taxes withheld
- Benefits vendor for premiums
- Garnishment vendors for withheld wages for a garnishment
I show and explain a standard solution for reconciling and reporting the amounts that you are paying your third-party vendors at an employee level (commonly referred to as the EE level). This provides a great amount of transparency in allowing you to micro-analyze the dollar amounts to figure out if there are any incorrect amounts or discrepancies from the expected amounts.
By creating the necessary configuration within SAP Payroll, you can clearly see and reconcile the amounts. The standard reporting functionality for third-party remittance displays information at an HR payee level, but not at the employee level. This does accomplish the goal of providing Financial Accounting (FI)/Controlling (CO) with all the numbers for the entire payroll area, but if there are any discrepancies it will be like looking for a needle in a haystack.
Understanding Third-Party Remittance Functionality
The first step in understanding this functionality is to learn about the process of third-party remittance and what you are trying to accomplish with it in the SAP system. Once you know this, you’ll know how this functionality works within the SAP system.
(Note: To understand this article, readers need to have a good grasp of complex SAP Payroll concepts; this article is not intended for beginners who are just learning SAP Payroll. For beginners, I recommend taking the SAP Payroll class for your country in order to get more of a baseline knowledge about SAP Payroll. For the U.S. that is the HR410 – U.S. Payroll class and for Canada it’s the HR407 class, which covers the functionality of the entire payroll process, including post-payroll activities. For classes for other countries or more information about any other SAP class, visit the SAP training website here: https://training.sap.com/.
For more information about payroll basics, see the following HR Expert content items:
- “Automating Tuition Reimbursement in SAP Payroll” by Imran Sajid
“System Tips for a Global SAP Payroll Strategy,” by Satish Badgi
“Managing the Challenges of Payroll Application Maintenance,” by Satish Badgi
“Automate Period-Based Payments in the SAP Payroll System,” by Irfan Malik
“Learn New Methods For Comparing Payroll Results and Improve Your Payroll Implementation Projects,” by Owen McGivney
“Troubleshooting Payroll Problems,” by Satish Badgi)
The concept of third-party remittance is to pay vendors based on amounts calculated in SAP Payroll. For example, when you run payroll, the system calculates amounts that should be withheld from an employee’s check for federal and state withholding taxes, based on where the employee works and lives. This money is not paid to the employee, yet it is not money the company gets to keep; therefore, it needs to be paid to the appropriate vendor. In my example there are multiple vendors that need to be paid—the federal government and the state where the employee works.
(Note: For the purposes of this article I am assuming payroll has been run and the amounts to pay the vendors have been calculated and are stored in the payroll results. Anything related to the running of payroll and calculating amounts it beyond the scope of this article.)
After payroll results have been calculated and the payroll run is completed, you can run the standard SAP third-party remittance functionality. This functionality consists of two steps: evaluate the remittance (transaction code PC00_M99_URME) and create the posting run (transaction code PC00_M99_URMP). Keep in mind that by implementing this functionality the system will use additional data storage in order to store the amounts at an employee level. Over time that can mean a lot of additional data storage. For more questions on data storage you should work with your Basis team.
(Note: There is an old third-party remittance functionality that consisted of three steps, but this is outdated and has been replaced by the new process; therefore, this is not discussed in this article.)
After logging on to the SAP ERP HCM system, navigate to the Third-party remittance folder by following menu path Human Resources > Payroll > Americas > USA > Subsequent Activities > Per payroll period > Evaluation > Third-party Remittance. Double-click the folder to open it, and you see a list of transaction codes.
After payroll has been completed, the first activity to be run for third-party remittance is transaction code PC00_M99_URME. Double-click this transaction from the list to execute it, and the screen in Figure 1 opens.
Selection screen for transaction code PC00_M99_URME
Here you evaluate the data calculated in payroll and calculate the appropriate amounts that should be paid to the appropriate vendors. Enter the payroll areas and payroll periods as shown in Figure 1. There are additional controls for the output of this program as well as the ability to run it in test mode that are not shown in Figure 1.
Click the execute icon to run the Create Third Party-Remittance Evaluation run program. Then the screen in Figure 2 opens with a summary statistics screen that has the information for personnel numbers in the run.
First output screen of transaction code PC00_M99_URME
Click the back icon to proceed to the next output screen (Figure 3).
Second output screen of transaction code PC00_M99_URME
This screen has information about the following:
- Payroll period information
- Company code/company name
- Vendor to be paid
- HR payee
- Amount to be paid
- Remittance rule that determines when vendor should be paid
- Date of payment
Once you have completed this first step, run the second step of the third-party remittance process, which is accessed via transaction code PC00_M99_URMP. Follow the same menu path you used to get to the screen in Figure 1, but this time execute transaction code PC00_M99_URMP (create posting run), and the screen in Figure 4 opens. Here you create the third-party remittance run data needed for FI so it can pay the vendors appropriately. (Here you can customize some of the transfer parameters, but it defaults to SAP and, for the purposes of this example, keep it that way.)
Create a third-party remittance posting run via transaction code PC00_M99_URMP
You cannot run this step of the process by personnel number or payroll area. You can only limit the results passed based on company code, business area, HR payee type, or the due date of the payment. However, since this process should be run after every payroll period when you run this, it should only have the results of your latest payroll run.
Once this program is executed, you should see the relevant information for the third-party remittance (as shown in Figure 5), including:
- Vendor information
- HR payee information
- The evaluation in which it was included
- The amount to be paid
- Date information for the payroll run and payment
Output of PC00_M99_URMP
Once the two steps required for third-party remittance are done, you can look at the details of the run and release it for FI if you are happy with the results. This is done via standard transaction code PCP0, which can be accessed by following the same menu path used to get to Figure 1, only this time select the PCPO – Process posting run option. Once this transaction code is launched, scroll down to the TP Posting Third-party Remittance section and you should see the run that was created in the previous steps (Figure 6).
Third-party remittance runs from transaction code PCP0
Double-click any line item in Figure 6 and another screen opens with that item’s details. In this example, I click the first record (000000166), and the screen in Figure 7 opens with the details pertaining to that run number.
Third-party remittance first-level details
Here you can double-click the desired document numbers to see more details for each document, such as the General Ledger (G/L) debit and credit information, as well as the amounts of each (Figure 8).
Third-party remittance second-level details
In the screen in Figure 8 you can double-click individual G/L account number line items to get the details about specific total amounts (Figure 9). After debugging the code, I found that the SAP system is automatically running transaction PC00_M99_URMR and that is what is being displayed in the output.
Third-party remittance third-level details
You have the flexibility to change the layout of this report output by clicking the Change Layout button… (Figure 10).
Third-party remittance change layout settings
This gives you the option to display additional hidden fields, such as personnel number, employee name, or Social Security number. Simply select the items you want displayed and, using the right- and left-pointing arrows, move them from the Column Set section to the Displayed Column section. Once you’ve made your selections, click the green check mark icon (not shown) to save your settings, and the screen in Figure 11 opens.
Third-party remittance third-level details after layout change
However, in the standard system, even when you elect to show Personnel Number, the field is still blank when it is pulled in, as shown in Figure 11. This is because you need to configure the system to allow employee-level details to be shown, and then tell program RPURMR00 to fill the field.
Configuration for Employee Level Details
Now that you understand the third-party remittance processing steps as well as what the standard SAP report looks like, you can make the necessary changes to allow employee-level details to be displayed. The first step is to configure HR Payees so that employee-level details are allowed. In the SAP ERP HCM system, HR payees are used to link to FI vendors so that the third-party vendors can be paid and they accumulate amounts that should be paid. The reason for not linking directly to a vendor is because one FI vendor can have multiple HR payees.
In the IMG, go to transaction SPRO and follow menu path Payroll > Payroll USA > Third Party Remittance > HR Payee maintenance. In the IMG screen that opens (not shown) there are multiple configuration activities to set up the different types of HR payees. In this example, I’m setting up a tax vendor, so I double-click the Set up HR payees for tax remittance activity. (You would use a different configuration activity depending on the type of HR payee that you are setting up).
This opens the screen in Figure 12 where you can select an HR payee (in this example, I am using an existing HR payee, Rhode Island 90074200, that is already set up in my system). Select the Data at employee level check box for (as shown in Figure 12) so that the system knows that, for this HR payee, you need to have data at an employee level.
HR payees for the tax remittance configuration
You need to repeat this activity for each HR payee that needs to have data shown at an employee level (following these same steps) or you will see a blank result as originally displayed back in Figure 11.
After all your configuration is completed, you need to save a variant of transaction code PC00_M99_URMR to tell the system to display the employee-level details when this is run automatically from transaction code PCP0. This is the program that is called behind the scenes and shown in Figure 9. To do this, you need to launch transaction code PC00_M99_URMR, which opens the screen in Figure 13. Once here, select the Include employee data radio button.
Selection screen for transaction code PC00_M99_URMR
I recommend creating a custom ABAP List Viewer (ALV) layout that shows the employee data. This is an optional step that can be done later as well, but I show how to do it at this point.
To create a custom ALV layout, execute the program to get to the ALV layout output (you can execute the program any way you want, even if you don’t have any results). Next, using the same steps shown in Figure 10, this time add the Personnel Number to be a displayed column on the report output. Once you’ve made your changes, click the Save layout… button to save your changes to the layout display (Figure 14). You need to name the layout and you also have the option to choose whether this is the default setting for the program. Select this check box if you want this to be shown for all users by default.
Save the layout for transaction code PC00_M99_URMR
Once the layout is created, navigate back to the selection screen of the program and select the ALV layout that you just created. This tells the system to display this ALV layout. In this case, I select /IMRAN (Figure 15).
Selection screen for transaction code PC00_M99_URMR after the changes have been made to the layout
Once you have made both of these changes to the selection screen of transaction PC00_M99_URMR, click the save icon on the toolbar to create a variant. This opens the screen in Figure 16 where you need to provide a name and description for your new variant as shown.
Save the new variant
Once the new variant of transaction code PC00_M99_URMR has been saved, tell the SAP system to use this variant automatically for your ID. This can be done system-wide, as I mentioned earlier (by setting the ALV output as the default setting as shown in Figure 15), but in this example, I want it just for your user ID.
Execute transaction code SU3 and click the Parameters tab (Figure 17). Enter the parameter ID HR3PRNA_RECON_VAR and then, for the parameter value, enter the variant name you saved in Figure 16.
Save the user parameter for the remittance reconciliation report
Once you enter the parameter ID and value, click the Save button (not shown). With this change you are telling the system that whenever the PC00_M99_URMR reconciliation report is run then the system should use the variant that you saved in your user parameter. This is set at an individual level and is only for this user ID. As mentioned previously, transaction code PC00_M99_URMR is automatically run when you drill down into PCP0; by setting this variant, the system automatically pulls the fields saved in the variant that you created in Figure 15.
(Note: Any past third-party remittance runs will not have the employee-level details included even after executing all these steps. This is because those runs were created with the old configuration in place and, since you did not tell the system to store employee data for those runs, you cannot get that data even by changing the variants since it was never created on the tables when third-party remittance was run.)
Once you’ve made your changes to the screen in Figure 17, run the third-party remittance steps again for the next payroll period. In my previous example (shown in Figure 1), I used payroll period 3. For this demonstration I’m going to use payroll period 4. Again, I assume that payroll has already been run and that the results and amounts calculated are correct. Follow the same steps before but, to summarize, here is what to do after payroll has been run:
- Run transaction code PC00_M99_URME to evaluate the remittance
- Run transaction code PC00_M99_URMP to create the posting run
- Run transaction code PCP0 to see the details of the posting run
- Drill into the details of transaction code PCP0
This time, once the details of transaction code PCP0 have been drilled into (in the exact same manner as shown in Figures 6, 7, and 8, in order to display Figure 9), you should see the employee details (Figure 18).
Third-party remittance third-level details, including employee-level details
If you double-click a line item in the figure, you see a different view of the payroll details. This view also includes the employee details as seen in (Figure 19).
Detailed view of the employee details
If you later decide to go back to the original view (as delivered by SAP), click the back icon in Figure 19 (not shown) to get back to the main layout screen (Figure 18). Once there, click the Choose Layout… button (Figure 20) and select the original 1_SUBTOTALS layout that was set before the changes were made (using the steps shown in Figures 14 and 15).
Choose layout settings
Overall, with this configuration you give yourself a tremendous amount of flexibility for being able to see employee-level details in the standard third-party remittance report. With the changes made to the user parameter settings using variable HR3PRNA_RECON_VAR, you have the ability to show different users different views.