Payroll: A/P Payments: Difference between revisions
Intra>User m (1 revision imported) |
m (1 revision imported) |
Latest revision as of 13:00, 14 July 2023
Introduction
As of Keystone version 2.5.1, A/P payments may be automatically generated from Payroll. There are many uses for these automatic A/P payments, the example used here will be for Texas Child Support payments (as ACH payments).
NOTE: The A/P payments are exported in NACHA CCD+ format.
To configure automatic A/P payments from Payroll, several steps are required.
Configure A/P
Using A/P Vendor Maintenance, setup a vendor to receive the A/P payments. Be sure to select appropriate Payment Terms. Anything entered in the Check Memo field will appear on each A/P check.
Be certain to setup default A/P, Cash, Discount and Expense G/L accounts for the vendor, and select the box "Automatically distribute to above G/L accounts."
On the "Pay Info" tab, select the appropriate Payment Method. If using ACH, also enter the appropriate ACH Account information. Remember that you are entering the ACH Account information for the vendor receiving the payments.
Configure C/M
If using ACH for the A/P payments, some extra information is required for the Bank Account associated with the A/P payments. All the fields on the "Direct Deposit" tab are required except for Dest Routing No and Orig Routing No. Remember that you are entering the ACH Account information for your company's bank account.
Configure Payroll
The first step in Payroll is to add a new formula which will generate the A/P payment for the associated definition. (See insert script below)
Next you setup the Category and Definitions for the payroll deduction using Company Maintenance. The second definition for the deduction must be a "Working" type and must use a special formula which defines the information to be sent to the A/P system.
There are also two required company factors for the second definition. The first is ADD_FORMAT which is a special value that tells the A/P system what format the addenda information that is defined in the special formula is in. The second is VEND_ID which identifies the associated A/P Vendor to use for the A/P payments associated with this deduction.
In Employee Maintenance the deduction must be added to employees as required. For the second definition, there are employee factors that are required for each employee. Normally these are configured once and will not change.
Once the configuration has been completed, the Payroll process can be performed normally. There is no special processing required. After the payroll run is accepted, Keystone will generate an A/P Invoice Vouchering batch for any automatic A/P payments.
A/P Process
After a payroll is accepted, an A/P Invoice Vouchering batch will be visible within A/P. This is a normal batch that can be edited as necessary. Once validated this batch is posted. Note that the payroll system has setup the invoices within this batch to be fully paid.
If the Payroll-A/P payments are to be paid to the vendor via ACH, you must run the A/P ACH Export option after the A/P Checks and A/P ACH Reports are printed. This will generate the appropriate ACH transaction file to be sent to the bank.
Sample A/P ACH Export File
$$ADD ID=ABCDEFGH BID='NWFACH12345678P=PASSWORD' 101 55544333312345678901112172256B094101DEST BANK NAME ORIG BANK NAME 5220COMPANY NAME 12121212 CCDTXSDUACHV1121711111217 1554433330000001 622123456789456789 0000006511CS00554 TEXAS CHILD SUPPORT SD 1555443330000001 705DED*CS*23297832938238 *111217*0000006511*555555555*Y*LAST,FIRST**N\ 00010000001 8200000002001234567800000000000000000000651112121212 555443330000001 9000001000001000000020012345678000000000000000000006511
See Also
AP ACH Insert Script
INSERT INTO PRTFORMULA ( FORMULA_ID, DESCRIPTION, CUSTOM_FLAG, MEMO, ACTIVE_FLAG, LAST_CHANGE_DATETIME, LAST_CHANGE_USER, FORMULA_TYPE ) VALUES ( 'APACH', 'A/P Payments to ACH', 'Y', NULL, 'Y', CAST('now' AS TIMESTAMP), 'HIT', 'W' ); INSERT INTO PRTPOP ( FORMULA_ID, SEQUENCE, OPERATION, PARAM_1, PARAM_2, PARAM_3, CONTROL_FLAG, COMMENT ) VALUES ( 'APACH', '1', '8', 'SELF.CUR', 'LINK.D.CUR', NULL, NULL, NULL ); INSERT INTO PRTPOP ( FORMULA_ID, SEQUENCE, OPERATION, PARAM_1, PARAM_2, PARAM_3, CONTROL_FLAG, COMMENT ) VALUES ( 'APACH', '2', '28', 'SELF.ADD_FORMAT', 'SELF.VEND_ID', 'SELF.CUR', NULL, NULL ); INSERT INTO PRTPOP ( FORMULA_ID, SEQUENCE, OPERATION, PARAM_1, PARAM_2, PARAM_3, CONTROL_FLAG, COMMENT ) VALUES ( 'APACH', '3', '29', '"CASE_NO"', 'SELF.CASE_NO', NULL, NULL, NULL ); INSERT INTO PRTPOP ( FORMULA_ID, SEQUENCE, OPERATION, PARAM_1, PARAM_2, PARAM_3, CONTROL_FLAG, COMMENT ) VALUES ( 'APACH', '4', '29', '"MEDICAL"', 'SELF.MEDICAL', NULL, NULL, NULL ); INSERT INTO PRTPOP ( FORMULA_ID, SEQUENCE, OPERATION, PARAM_1, PARAM_2, PARAM_3, CONTROL_FLAG, COMMENT ) VALUES ( 'APACH', '5', '29', '"NLE"', 'SELF.NLE', NULL, NULL, NULL ); INSERT INTO PRTPOP ( FORMULA_ID, SEQUENCE, OPERATION, PARAM_1, PARAM_2, PARAM_3, CONTROL_FLAG, COMMENT ) VALUES ( 'APACH', '6', '29', '"SSN"', 'EMP.SSN', NULL, NULL, NULL ); INSERT INTO PRTPOP ( FORMULA_ID, SEQUENCE, OPERATION, PARAM_1, PARAM_2, PARAM_3, CONTROL_FLAG, COMMENT ) VALUES ( 'APACH', '7', '29', '"FIRST_NAME"', 'EMP.FIRST_NAME', NULL, NULL, NULL ); INSERT INTO PRTPOP ( FORMULA_ID, SEQUENCE, OPERATION, PARAM_1, PARAM_2, PARAM_3, CONTROL_FLAG, COMMENT ) VALUES ( 'APACH', '8', '29', '"LAST_NAME"', 'EMP.LAST_NAME', NULL, NULL, NULL ); INSERT INTO PRTPOP ( FORMULA_ID, SEQUENCE, OPERATION, PARAM_1, PARAM_2, PARAM_3, CONTROL_FLAG, COMMENT ) VALUES ( 'APACH', '9', '30', 'LINK.D.GLC', NULL, NULL, NULL, NULL ); INSERT INTO PRTFORMFACT ( FORMULA_ID, FACTOR_ID, DESCRIPTION, VALUE_TYPE, TYPE_FLAG, LAST_CHANGE_DATETIME, LAST_CHANGE_USER ) VALUES ( 'APACH', 'VEND_ID', 'Vendor ID', NULL, 'C', CAST('now' AS TIMESTAMP), 'HIT' ); INSERT INTO PRTFORMFACT ( FORMULA_ID, FACTOR_ID, DESCRIPTION, VALUE_TYPE, TYPE_FLAG, LAST_CHANGE_DATETIME, LAST_CHANGE_USER ) VALUES ( 'APACH', 'CASE_NO', 'Case Number', NULL, 'E', CAST('now' AS TIMESTAMP), 'HIT' ); INSERT INTO PRTFORMFACT ( FORMULA_ID, FACTOR_ID, DESCRIPTION, VALUE_TYPE, TYPE_FLAG, LAST_CHANGE_DATETIME, LAST_CHANGE_USER ) VALUES ( 'APACH', 'MEDICAL', 'Medical Support', NULL, 'E', CAST('now' AS TIMESTAMP), 'HIT' ); INSERT INTO PRTFORMFACT ( FORMULA_ID, FACTOR_ID, DESCRIPTION, VALUE_TYPE, TYPE_FLAG, LAST_CHANGE_DATETIME, LAST_CHANGE_USER ) VALUES ( 'APACH', 'NLE', 'No Longer Employed', NULL, 'E', CAST('now' AS TIMESTAMP), 'HIT' ); INSERT INTO PRTFORMFACT ( FORMULA_ID, FACTOR_ID, DESCRIPTION, VALUE_TYPE, TYPE_FLAG, LAST_CHANGE_DATETIME, LAST_CHANGE_USER ) VALUES ( 'APACH', 'ADD_FORMAT', 'Addenda Format', NULL, 'C', CAST('now' AS TIMESTAMP), 'HIT' );