verification
use it
# add to stunt.yaml
services:
workday:
adapter: embedded:workday-style
# then
$ stunt upThe embedded: source extracts this adapter from the binary — no git clone, fully offline.
how to mock the Workday REST API locally
Install stunt, paste the service block above into stunt.yaml, run stunt up — then point your client at localhost instead of Workday REST API. It works offline, keeps state across requests and restarts, and every response is synthetic: the route shapes, status codes, pagination, and webhook delivery follow the real Workday REST API v40.0 surface — the data is fake, the behavior is real.
backing stores
workerspositionsaccountspayComponents
api surface (8)
generated from the adapter manifest — exactly what boots, nothing more
8 routes
GET/wbs/v40.0/staffing/workers
GET/wbs/v40.0/staffing/workers/{id}
GET/wbs/v40.0/compensation/workers/{id}/compensation
GET/wbs/v40.0/payroll/pay_components
GET/wbs/v40.0/human_resources/positions
GET/wbs/v40.0/financials/accounts
GET/ccx/v1/{tenant}/RaaS/Custom_Report
POST/ccx/v1/{tenant}/staffing/Create_Worker
VM-verified behaviors (9)
- ✓requests without a Bearer or Basic scheme are 401 at the gate
- ✓both Bearer and Basic credentials clear the gate
- ✓Create_Worker mints an id that reads back through staffing
- ✓the RaaS custom report wraps rows in Report_Entry
- ✓search narrows the worker list before paging
- ✓limit/offset pages tile the list without repeats
- ✓compensation serves the seed shelf and empty for created workers
- ✓payroll, positions, and financials share the list envelope
- ✓an unknown worker is a 404 with the Workday error envelope
Not implemented (4)
- SOAP interface not implemented (REST-equivalent endpoints only)
- No worker update, delete, or other writes; only Create_Worker exists
- RaaS serves only the seeded Custom_Report, not arbitrary named reports
- No absence, talent, recruiting, or benefits service domains
Differs from the real API (3)
- Auth validates only Authorization header presence; any bearer/basic value passes
- Compensation is a static shelf keyed to seeded worker ids — runtime workers read empty, unknown ids 200
- RaaS custom reports return static rows that never reflect created workers
want more of the Workday REST API surface? adapters are YAML + Starlark — the authoring guide covers adding routes, fixtures, and state machines. Open an issue for anything big first, or just file a PR — merged routes ship in the next release.