Create an Employee Payroll Class

If you are using the contract-based REST API to integrate MYOB Acumatica with an external system, this external system can create an employee payroll class in MYOB Acumatica.

Testing of the Request

Before you test the code below, you need to do the following to configure your client application and the MYOB Acumatica instance to be used:
  1. Deploy a new MYOB Acumatica instance with the U100 dataset. For details on deploying an instance, see To Deploy an MYOB Acumatica Instance.
  2. To sign in to the instance in the client application, use the tenant name (which you specified when you created the instance) and the HEADOFFICE branch.
  3. If you use Postman as the client application for testing, in the IntegrationDevelopmentGuide.postman_collection.json collection (which is located in the IntegrationDevelopment\Help folder of the Help-and-Training-Examples repository on GitHub), make sure the collection variables have the proper values.
  4. On the Enable/Disable Features (CS100000) form, make sure the Payroll and US Payroll features are enabled.
  5. Update the work locations as follows:
    Tip: If you use the IntegrationDevelopmentGuide.postman_collection.json Postman collection for testing, you do not need to perform the following configuration steps because they are performed in the pre-request script.
    1. On the Work Locations (PR101040) form, open the BELLEVUE work location.
    2. Select the Active check box, and click Save on the form toolbar. Now the BELLEVUE work location can be specified in an employee payroll class.

Request

You can use the following request example to create an employee payroll class through the contract-based REST API. For the class, you will specify the work location and paid time off settings.

Tip: In the request example below, <MYOB Acumatica instance URL> is the URL of the MYOB Acumatica instance (such as https://my.acumatica.com/MyInstance). You can omit the instance name in the URL (that is, you can use https://my.acumatica.com) if the instance is installed in the root of the website.
PUT ?$expand=PayrollDefaults/WorkLocations,PTODefaults HTTP/1.1
Host: [<MYOB Acumatica instance URL>]/entity/Default/23.200.001/EmployeePayrollClass
Accept: application/json
Content-Type: application/json

{
    "EmployeePayrollClassID": { "value": "TESTCLASS" },
    "Description": { "value": "Test CLASS" },
    "PayrollDefaults": {
        "EmployeeType": { "value": "Hourly" },
        "PayGroup": { "value": "WEEKLY" },
        "DefaultCalendar": { "value": "MAIN" },
        "WorkingWeeksPerYear": { "value": 51 },
        "OverrideHoursPerYearforCertProject": { "value": true },
        "CertifiedProjectHoursperYear": { "value": 2050 },
        "ExemptFromOvertimeRules": { "value": true },
        "NetPayMinimum": { "value": 150 },
        "MaximumPercentofNetPayforallGarnishments": { "value": 45 },
        "DefaultWCCCode": { "value": "5606" },
        "DefaultUnion": { "value": "NYS" },
        "ExemptFromCertifiedReporting": { "value": false },
        "WorkLocations": [
            {
                "LocationID": { "value": "BELLEVUE" },
                "DefaultWorkLocation": { "value": true }
            }
        ]
    },
    "PTODefaults": [
        {
            "PTOBank": { "value": "PTO" },
            "EffectiveDate": { "value": "01/01/2016" },
            "Active": { "value": "true" },
            "AccrualPercent": { "value": "7" },
            "AccrualLimit": { "value": "150" },
            "CarryoverType": { "value": "P" },
            "CarryoverAmount": { "value": "200" },
            "FrontLoadingAmount": { "value": "24" }
        }
    ]
}