Supergood | Workday API

Supergood | Workday API

Programmatically access Workday HR, payroll, recruiting, and financial data with a stable REST API. Supergood builds and operates production-grade, unofficial Workday integrations so your team can automate people and finance workflows without heavy custom engineering.

Plain English: Workday is enterprise software for Human Resources and Financial Management. An unofficial API lets you programmatically pull worker profiles, organizations, time off balances and requests, job requisitions, compensation, suppliers, purchase orders, and supplier invoices—and push updates like job changes, time off requests, and invoice entries back into Workday.

For a tech company integrating with Workday, this means you can ingest real-time worker and org data to power identity lifecycle (e.g., provisioning in Okta/Azure AD), sync headcount changes into planning tools, automate time off and approvals from your product, feed recruiting and requisitions into your ATS, and reconcile AP/expense data to ERP/analytics. You can also trigger HR business processes, attach documents, and keep stakeholder systems (ERP, analytics, IAM/SSO, ATS) in lockstep.

What is Workday?

Workday (https://www.workday.com/) is a cloud platform that centralizes Human Capital Management (HCM), Payroll, Recruiting, Time & Absence, Benefits, and Financial Management/Spend across enterprises. Organizations use Workday to manage worker lifecycle and organizational structures, run payroll and benefits, coordinate recruiting and onboarding, track time and time off, and manage suppliers, purchase orders, and invoices—backed by configurable business processes and role-based security.

Core product areas include:

  • Human Capital Management (Workers, Positions, Supervisory Orgs, Job Profiles)
  • Time & Absence (Balances, Time Off Types, Requests, Timesheets)
  • Payroll & Compensation (Comp Plans, Pay Grades, Earnings)
  • Recruiting & Talent (Job Requisitions, Candidates, Offers)
  • Benefits (Plans, Elections, Coverage)
  • Financial Management & Spend (Suppliers, Purchase Orders, Supplier Invoices, Expense Reports)
  • Planning & Analytics (Workforce planning, cost centers, organizations)

Common data entities:

  • Workers, Users, Security Groups/Permissions
  • Supervisory Organizations, Cost Centers, Companies (Legal Entities)
  • Positions, Job Profiles, Business Titles, Managers
  • Time Off Types, Balances, Absence Requests
  • Compensation Plans, Pay Grades, Currency, Payroll Results
  • Recruiting: Job Requisitions, Candidates, Hiring Managers, Openings
  • Financials: Suppliers, Purchase Orders, Supplier Invoices, Spend Categories, Ledger Accounts

The Workday Integration Challenge

Enterprises rely on Workday daily, but turning portal and report-driven workflows into API automation is non-trivial:

  • Tenant-by-tenant configuration: Custom fields, business processes, and security groups vary widely across customers
  • Business process rigor: Changes (e.g., job changes, compensation) must respect multi-step approvals and effective-dating
  • Mixed API landscape: SOAP, REST, and Reports-as-a-Service (RaaS) with versioning and XML/JSON/CSV outputs
  • Authentication complexity: SSO (SAML/OAuth via Okta/Azure AD) and MFA complicate headless automation
  • Role-aware permissions: Security groups/entitlements govern visibility for HR, payroll, recruiting, and finance
  • Report-driven exports: Key data often comes from custom reports; schemas and performance vary by tenant
  • Attachments & artifacts: Offers, invoices, and onboarding docs need careful upload/download handling
  • Data spread: Worker data spans HCM, Absence, Payroll, and Recruiting; finance spans Suppliers, POs, Invoices

How Supergood Creates Workday APIs

Supergood reverse-engineers authenticated browser flows, Workday web services, and report endpoints to deliver a resilient API layer for your Workday tenant.

  • Handles username/password, SSO/OAuth, and MFA (SMS, email, TOTP) securely
  • Maintains session continuity with automated refresh and change detection
  • Normalizes responses so you can integrate once and rely on consistent objects across modules
  • Aligns with customer entitlements and security groups to ensure compliant access

Use Cases

Identity & HR Data Sync

  • Mirror workers, org structures, positions, and managers into IAM/IT systems
  • Drive provisioning/deprovisioning via job changes and status updates
  • Normalize cost centers, locations, and business titles for analytics and planning

Absence & Workforce Scheduling

  • Pull time off balances and requests to forecast staffing
  • Create and update time off requests and sync approvals
  • Enforce policy via effective dating, types, and security groups

Recruiting & Headcount Management

  • Create job requisitions from your ATS or planning tools
  • Track openings, hiring managers, and posting details
  • Synchronize candidate status and offer artifacts

Financials: Supplier Invoices & ERP Sync

  • Push supplier invoices from AP automation into Workday
  • Reconcile purchase orders, match statuses, and tax details with ERP (e.g., NetSuite, SAP, Oracle)
  • Normalize spend categories, cost centers, and attachments

Available Endpoints

Authentication

POST /sessions: Establish a session using credentials. Supergood manages MFA (SMS, email, TOTP) and SSO/OAuth when enabled. Returns a short-lived auth token maintained by the platform.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/sessions \
  --header 'Authorization: Basic <Base64 encoded token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "username": "[email protected]",
    "password": "<password>",
    "mfa": { "type": "totp", "code": "123456" }
  }'

Example response

{
  "authToken": "eyJhbGciOi...",
  "expiresIn": 3600,
  "user": {
    "id": "u_wd_729c10",
    "name": "HR Administrator",
    "entitlements": ["workers", "time_off", "recruiting", "financials"]
  }
}

POST /sessions/refresh: Refresh an existing token to keep sessions uninterrupted.

Workers

GET /workers: List workers with filters and summary details.

Query parameters

  • companyId: string
  • supervisoryOrgId: string
  • costCenterId: string
  • status: active | terminated | on_leave
  • updatedFrom, updatedTo: ISO 8601 timestamps
  • page, pageSize: integers for pagination

Example response

{
  "items": [
    {
      "workerId": "wd_wkr_1a9c20",
      "employeeId": "E12345",
      "name": { "legal": "Avery Johnson", "preferred": "Avery" },
      "businessTitle": "Senior Software Engineer",
      "jobProfileId": "jp_ENG_Sr",
      "positionId": "pos_004129",
      "supervisoryOrgId": "org_ENG_Platform",
      "managerWorkerId": "wd_wkr_7b2f44",
      "locationId": "loc_SF",
      "workerType": "employee",
      "timeType": "full_time",
      "hireDate": "2022-04-11",
      "terminationDate": null,
      "status": "active",
      "companyId": "cmp_US",
      "costCenterId": "cc_4100",
      "workEmail": "[email protected]",
      "basePay": 155000.00,
      "currency": "USD",
      "updatedAt": "2026-01-20T13:45:00Z"
    }
  ],
  "page": 1,
  "pageSize": 50,
  "total": 1
}

Time Off Requests

POST /workers/{workerId}/time-off-requests: Create a time off request with policy-aware details and optional manager notification.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/workers/wd_wkr_1a9c20/time-off-requests \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "timeOffTypeId": "pto",
    "startDate": "2026-02-10",
    "endDate": "2026-02-12",
    "unit": "hours",
    "quantity": 24,
    "comment": "Family trip",
    "attachments": [
      {"fileName": "travel_notes.pdf", "uploadToken": "upl_08ab73"}
    ],
    "notifyManager": true
  }'

Example response

{
  "timeOffRequestId": "tor_90e412",
  "status": "submitted",
  "type": "pto",
  "startDate": "2026-02-10",
  "endDate": "2026-02-12",
  "quantity": 24,
  "approvalPath": ["manager", "hr"],
  "createdAt": "2026-01-21T10:03:11Z"
}

Job Changes

POST /workers/{workerId}/job-changes: Initiate a job change business process with effective dating, compensation, and org changes.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/workers/wd_wkr_1a9c20/job-changes \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "effectiveDate": "2026-03-01",
    "reason": "promotion",
    "jobProfileId": "jp_ENG_Principal",
    "positionId": "pos_004300",
    "supervisoryOrgId": "org_ENG_Platform",
    "managerWorkerId": "wd_wkr_7b2f44",
    "locationId": "loc_SF",
    "costCenterId": "cc_4100",
    "payChanges": { "basePayNew": 180000.00, "currency": "USD", "payGradeId": "pg_ENG10" },
    "additionalCompensation": [
      {"type": "bonus", "amount": 15000.00, "currency": "USD"}
    ],
    "requiresApproval": true,
    "notes": "Promotion aligned to new responsibilities.",
    "attachments": [
      {"fileName": "promo_letter.pdf", "uploadToken": "upl_7fa223"}
    ],
    "referenceId": "planning-headcount-2026-ENG"
  }'

Example response

{
  "jobChangeId": "jc_51af80",
  "status": "awaiting_approval",
  "effectiveDate": "2026-03-01",
  "diff": {
    "jobProfileId": {"from": "jp_ENG_Sr", "to": "jp_ENG_Principal"},
    "basePay": {"from": 155000.00, "to": 180000.00}
  },
  "createdAt": "2026-01-21T11:20:44Z"
}

Supplier Invoices

POST /financials/supplier-invoices: Create a supplier invoice with line items, tax, and 3-way match metadata.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/financials/supplier-invoices \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "supplierId": "sup_451293",
    "invoiceNumber": "INV-2026-0041",
    "invoiceDate": "2026-01-15",
    "dueDate": "2026-02-14",
    "currency": "USD",
    "total": 10150.00,
    "lineItems": [
      {"description": "Cloud Services Jan", "spendCategoryId": "sc_IT_Cloud", "costCenterId": "cc_4100", "quantity": 1, "unitPrice": 10000.00, "taxRate": 1.5, "poNumber": "PO-2026-1102"},
      {"description": "Support", "spendCategoryId": "sc_IT_Support", "costCenterId": "cc_4100", "quantity": 1, "unitPrice": 150.00, "taxRate": 0.0}
    ],
    "attachments": [
      {"fileName": "invoice.pdf", "uploadToken": "upl_9ab441"}
    ],
    "notes": "January billing, PO matched"
  }'

Example response

{
  "supplierInvoiceId": "si_7c3d21",
  "status": "in_review",
  "matchStatus": "pending_3way_match",
  "total": 10150.00,
  "taxTotal": 150.00,
  "createdAt": "2026-01-22T08:15:12Z"
}

Get full API Specs →


Technical Specifications

  • Authentication: Username/password with MFA (SMS, email, TOTP) and SSO/OAuth where enabled; supports service accounts or customer-managed credentials
  • Response format: JSON with consistent resource schemas and pagination across modules
  • Rate limits: Tuned for enterprise throughput while honoring customer entitlements and usage controls
  • Session management: Automatic reauth and cookie/session rotation with health checks
  • Data freshness: Near real-time retrieval of workers, orgs, time off, recruiting, and financial objects
  • Security: Encrypted transport, scoped tokens, and audit logging; respects Workday security groups and role-based permissions
  • Webhooks: Optional asynchronous delivery for long-running workflows (e.g., approvals, requisition changes)

Performance Characteristics

  • Latency: Sub-second responses for list/detail queries under normal load
  • Throughput: Designed for high-volume worker data sync and job change/time off processing
  • Reliability: Retry logic, backoff, and idempotency keys minimize duplicate actions
  • Adaptation: Continuous monitoring for UI/API/report changes with rapid adapter updates

Getting Started

  1. Schedule Integration Assessment

Book a 30-minute session to confirm your modules, licensing, and authentication model.

  1. Supergood Builds and Validates Your API

We deliver a hardened Workday adapter tailored to your workflows and entitlements.

  1. Deploy with Monitoring

Go live with continuous monitoring and automatic adjustments as Workday evolves.

Schedule Integration Call →


Frequently Asked Questions

Q: Which Workday modules can this integration cover?

Supergood supports workflows across commonly used modules such as HCM (Workers, Positions, Orgs), Time & Absence (Balances, Requests), Recruiting (Requisitions), and Financials (Suppliers, POs, Invoices), subject to your licensing and entitlements. We scope coverage during integration assessment.

Q: How are MFA and SSO handled for automation?

We support username/password + MFA (SMS, email, TOTP) and can operate behind SSO/OAuth when enabled (e.g., Okta, Azure AD). Sessions are refreshed automatically with secure challenge handling.

Q: Can you sync supplier invoices and purchase orders to our ERP?

Yes. We can normalize invoices, POs, and spend line items to match your ERP/accounting schema (e.g., NetSuite, SAP, Oracle) and deliver updates via webhooks or polling while complying with rate and permission constraints.

Q: Are approvals and attachments supported for job changes and time off requests?

Yes. We model approval paths explicitly and support uploading/downloading attachments via signed uploads with checksum validation and time-limited URLs.

Q: How do custom fields and tenant-specific configurations map?

We introspect your tenant (reports, security groups, business processes) and provide a normalized schema with a flexible customFields object for tenant-specific attributes.



Ready to automate your Workday workflows?

Supergood can have your Workday integration live in days with no ongoing engineering maintenance.

Get Started →

Read more