Use Case Description
This use case is used to start a general deduction instruction for a worker.
API Usage
|
Method |
URI |
Description |
GitHub Sample Request Payload |
GitHub Sample Response Payload |
|---|---|---|---|---|
|
POST |
/events/payroll/v2 /worker-general-deduction-instruction.start |
Starts worker general deduction instruction information. |
||
|
GET |
/events/payroll/v2 /worker-general-deduction-instruction.start/meta |
Returns an event metadata. NOTE: |
NA |
- In meta response for DeductionGoal > Goal ID, the codeList values are not available. For now, it's hardcoded from (1 to 9 ).
- sub-resource, with the value of "null", is optional and not in use.
- sub-resource, payrollInstructionGeneralDeductionInstructionDeductionGoalGoalStartDate, is optional and not in use.
In the given payload (deduction-start-currentdate-200.request.json), the following is the purpose of the eventContext and transform sections:
- eventContext: A set of keys, identifying the subject. In the payload, the associateID field is present under eventContext. The associateID identifies the subject.
- transform: Provides the values added or changed with respect to the subject keys defined in the eventContext section.
Application Scope
The following canonical needs to be added to your application scope to enable this use case:
/payroll/payrollManagement/payrollInstructionManagement/workerGeneralDeductionInstructionManagement/
workerGeneralDeductionInstruction.start
Supported Actors
| Request Parameter roleCode Value | Usage |
|---|---|
| practitioner | Starts deduction instructions for workers. |
Request Header Parameters
None, in addition to the ADP standard header parameters.
Sequence of Interactions

The following are the steps shown in the previous diagram:
- Your consumer application makes a request to the ADP API endpoint for Worker-general-deduction-instruction start meta.
- The ADP API endpoint responds to your consumer application with the meta payload, which lists eligible deductions for the worker under the /meta/data/transforms/ payrollInstruction/generalDeductionInstruction/deductionCode/codeList collection. Your consumer application needs to validate that the Deduction Code processed is returned in the codeLIst collection before building the payload for the next call. If the Deduction Code you need to start is not part of the collection, your application needs to provide user error handling and stop or go to the next step.
- Your consumer application makes a request to the ADP API endpoint for the Worker-general-deduction-instruction start API with the payload.
- The ADP API endpoint responds to the consumer application about the details of the Worker-general-deduction-instruction start.
Data Dictionary
The fields listed in the following table can be found in the ADP Workforce Now UI by selecting People > Pay > Deductions.
|
Schema Location |
ADP Workforce Now Field Name |
Required (Y/N)? |
Note |
|---|---|---|---|
|
/events/data/eventContext |
Not Displayed |
N |
|
|
/events/data/eventContext/worker |
Not Displayed |
N |
|
|
/events/data/eventContext/worker /associateOID |
Not Displayed |
Y |
|
|
/events/data/eventContext/payrollInstruction |
Not Displayed |
N |
|
|
/events/data/eventContext/payrollInstruction /payrollGroupCode |
Not Displayed |
Y |
The payrollGroupCode found in payroll. |
|
/events/data/eventContext/payrollInstruction /payrollGroupCode/codeValue |
Not Displayed |
Y |
|
|
/events/data/eventContext/payrollInstruction /payrollGroupCode/shortName |
Not Displayed |
Y |
|
|
/events/data/eventContext /payrollInstruction/payrollFileNumber |
Not Displayed |
Y |
The payrollFileNumber found in payroll. |
|
/events/data/eventContext/payrollInstruction /payrollAgreementID |
Not Displayed |
Y |
The payrollAgreementID found in payroll. |
|
/events/data/effectiveDateTime |
Effective Date |
Y |
|
|
/events/data/payrollInstruction |
Not Displayed |
N |
|
|
/events/data/payrollInstruction /generalDeductionInstruction |
Not Displayed |
N |
|
|
/events/data/payrollInstruction /generalDeductionInstruction/deductionCode |
Not Displayed |
Y |
|
|
/events/data/payrollInstruction/generalDeductionInstruction/deductionCode /codeValue |
Not Displayed |
Y |
|
|
/events/data/payrollInstruction /generalDeductionInstruction/deductionCode /shortName |
Deduction Code |
Y |
|
|
/events/data/payrollInstruction /generalDeductionInstruction/deductionRate |
Not Displayed |
N |
|
|
/events/data/payrollInstruction /generalDeductionInstruction/deductionRate /rateValue |
Deduction Amount |
Y |
|
|
/events/data/payrollInstruction /generalDeductionInstruction/deductionGoal |
Deduction Goal |
Y |
|
|
/events/data/payrollInstruction /generalDeductionInstruction/deductionGoal /goalID |
Not Displayed |
Y |
|
|
/events/data/payrollInstruction /generalDeductionInstruction/deductionGoal /goalLimitAmount |
Not Displayed |
N |
|
|
/events/data/payrollInstruction /generalDeductionInstruction/deductionGoal /goalLimitAmount/amountValue |
Deduction Goal Limit |
Y |
|
|
/events/data/payrollInstruction /generalDeductionInstruction/deductionGoal /goalLimitAmount/currencyCode |
Not Displayed |
Y |
|
|
/events/data/payrollInstruction /generalDeductionInstruction/deductionGoal /goalBalanceAmount |
Balance |
N |
|
|
/events/data/payrollInstruction /generalDeductionInstruction/deductionGoal /goalBalanceAmount/amountValue |
Not Displayed |
Y |
|
|
/events/data/payrollInstruction /generalDeductionInstruction/deductionGoal /goalBalanceAmount/currencyCode |
Not Displayed |
Y |
|
Responses
You may encounter exceptions outside your common success scenarios. You must account for these exceptions during your initial development.
For more information, see API Common Exceptions and Tips for Handling.
|
Response Code |
Response Condition |
message Txt |
GitHub Sample Request Payload |
GitHub Sample Response Payload |
Tips to Handle |
|---|---|---|---|---|---|
|
200 OK |
When adding a deduction without a deduction goal and the effective date as the current date. |
NA |
|
||
|
200 OK |
When adding a deduction with a deduction goal and the effective date as the current date. |
NA |
|
||
|
200 OK |
When adding a deduction with a deduction goal and effective date as the future date. |
NA |
|
||
|
400 Bad Request |
When trying to start a deduction but the goal limit amount is invalid. |
|
|
||
|
400 Bad Request |
When trying to start a deduction but the deduction goal code is invalid. |
|
|
||
|
400 Bad Request |
When trying to start a deduction but the deduction goal balance amount is invalid. |
|
|
||
|
400 Bad Request |
When trying to start the deduction for the associate who already has this deduction. |
{"userMessage": {"messageTxt": "You cannot add this employee deduction because the deduction currently exists with the effective date of 08/20/2018." |
deduction-start- 400.deduction- already-applied-response.json |
The specified deduction is already started. Make sure to check all the deductions are started for an associate. Try with a different deduction, which is not yet started. |
|
|
400 Bad Request |
When the invalid deduction code is passed in the request. |
{"userMessage": {"messageTxt": "deductionCodeis invalid."}} |
Make sure a valid supported Deduction Code is passed in the request. |
||
|
400 Bad Request |
When there is an invalid "payrollGroupCode/codeValue" in the request. |
{ |
deduction-start-400.invalid- payroll-groupCode-response.json |
Make sure a valid payrollGroupCode /codeValue is passed in the request. |
|
|
400 Bad Request |
When there is an invalid payrollAgreementID in the request. |
{"userMessage": {"messageTxt": "payrollAgreementIDis invalid." |
deduction-start-400.invalid-payroll-agreementID-request.json |
deduction-start-400.invalid-payroll-agreementID-response.json |
Make sure a valid payrollAgreementID is passed in the request. |
|
400 Bad Request |
When there is an invalid payrollFileNumber in the request. |
{"userMessage": {"messageTxt": "payrollFileNumber is invalid." |
deduction-start-400.invalid-payroll-fileNumber-response.json |
Make sure a valid payrollFileNumber is passed in the request. |
|
|
400 Bad Request |
When a DeductionAmount is passed as an invalid value in the request. |
{"userMessage": {"messageTxt": "Deduction Amountfield must contain a non-zerovalue between -99,999,999.99and 99,999,999.99 with a decimalprecision of 2 places." |
Make sure you have entered the amount value correctly. NOTE: Deduction Amount must contain a non-zero value between-99,999,999.99 and 99,999,999.99 with a precision of 2. |







