Workday: companies or departments return 403 while employees work
If GET /hris/employees works for a Workday connection but GET /hris/companies or GET /hris/departments returns 403 Forbidden, the connection itself is fine. The Workday integration user is missing one security permission.
What you see
Employees load normally.
Companies and departments (and accounting subsidiaries) return 403. The Workday error usually reads
The task submitted is not authorized.
Why it happens
Each Apideck resource reads a different Workday web service, and Workday secures each one with its own security domain:
Employees use
Get_Workers, which is covered by theWorker Data:andPerson Data:domains.Companies and departments use
Get_Organizations, which needs the Manage: Organization Integration domain.
If the integration user's security group has the worker domains but not that one, you get this split: employees work, companies and departments don't.
How to fix it
This is done by a Workday security administrator in the customer's tenant:
Open the task Maintain Permissions for Security Group.
Choose the operation Maintain and select the Integration System Security Group that contains the Apideck integration user.
Add the domain Manage: Organization Integration with Get access, and save.
Run the task Activate Pending Security Policy Changes. This step is easy to miss. Workday doesn't apply permission changes until they're activated.
One grant fixes companies, departments and subsidiaries together.
Fix it in every tenant. Security settings belong to each Workday tenant, so a grant made in an implementation or sandbox tenant has to be made again in production.
How to check which permission is missing
Workday can show you exactly which domain secures an operation, and which groups already have it:
Search for Sec Sec Item and open View Security for Securable Item.
Enter
Get_Organizationsand click View Security on the matching row.The result shows the securing domain and the security groups that hold it. If the integration security group isn't listed, that's the gap.
You can do the same for any other resource that returns 403, using its operation name.
Related
Workday connection guide (full list of domains for each resource)
