arazzo: 1.0.1 info: title: UKG Pro HCM Payroll Statement Review summary: Assemble an employee's pay rate, statement history, and deposit accounts. description: >- Produces a payroll review packet for a single employee from the UKG Pro HCM API. The workflow confirms the employee, reads the current pay rate, pulls the pay statement history for a date range, and finishes with the direct deposit accounts so a reviewer can reconcile what was earned against where it was paid. Every step spells out its request inline so the flow can be read and executed without opening the underlying OpenAPI description. version: 1.0.0 sourceDescriptions: - name: ukgProHcmApi url: ../openapi/ukg-pro-hcm-openapi.yml type: openapi workflows: - workflowId: payroll-statement-review summary: Gather pay rate, pay statements, and direct deposits for an employee. description: >- Validates the employee, then chains pay rate, pay statement history, and direct deposit endpoints into a single payroll review packet. inputs: type: object required: - employeeId - startDate - endDate properties: employeeId: type: string description: The employee to review payroll for (e.g. EMP001). startDate: type: string description: Start date for the pay statement range (YYYY-MM-DD). endDate: type: string description: End date for the pay statement range (YYYY-MM-DD). steps: - stepId: validateEmployee description: >- Confirm the employee exists before pulling compensation data. operationId: getEmployee parameters: - name: employeeId in: path value: $inputs.employeeId successCriteria: - condition: $statusCode == 200 outputs: employmentStatus: $response.body#/employmentStatus - stepId: getPayRate description: >- Read the current pay rate as the baseline for the statement review. operationId: getEmployeePayRates parameters: - name: employeeId in: path value: $inputs.employeeId successCriteria: - condition: $statusCode == 200 outputs: payType: $response.body#/payType basePay: $response.body#/basePay payFrequency: $response.body#/payFrequency - stepId: listStatements description: >- Retrieve the pay statement history for the employee across the requested date range. operationId: listPayStatements parameters: - name: employeeId in: query value: $inputs.employeeId - name: startDate in: query value: $inputs.startDate - name: endDate in: query value: $inputs.endDate successCriteria: - condition: $statusCode == 200 outputs: firstStatementId: $response.body#/0/statementId firstNetPay: $response.body#/0/netPay - stepId: getDeposits description: >- Retrieve the direct deposit accounts so net pay can be reconciled against where funds are routed. operationId: getEmployeeDirectDeposits parameters: - name: employeeId in: path value: $inputs.employeeId successCriteria: - condition: $statusCode == 200 outputs: firstAccountBank: $response.body#/0/bankName firstAccountType: $response.body#/0/accountType outputs: basePay: $steps.getPayRate.outputs.basePay firstStatementId: $steps.listStatements.outputs.firstStatementId firstNetPay: $steps.listStatements.outputs.firstNetPay