Workday · Arazzo Workflow

Workday Request One-Time Payment

Version 1.0.0

Confirm a worker and read their pay slips, then submit a one-time payment request.

1 workflow 3 source APIs 1 provider
View Spec View on GitHub Cloud ComputingEnterprise SoftwareFinancial ManagementHCMSaaSArazzoWorkflows

Provider

workday

Workflows

request-one-time-payment
Resolve a worker, read pay slips, then submit a one-time payment.
Reads the worker and recent pay slips, then submits a one-time payment request with the supplied effective date, amount, currency, and pay component.
3 steps inputs: amount, authorization, currency, effectiveDate, payComponent, reason, workerId outputs: paySlips, paymentId, workerDescriptor
1
getWorker
getWorkerById
Confirm the worker exists before reading payroll data.
2
getPaySlips
getPaySlips
Read recent pay slips for the worker for context.
3
requestPayment
{$sourceDescriptions.compensationApi.url}#/paths/~1workers~1{ID}~1requestOneTimePayment/post
Submit the one-time payment request for the worker.

Source API Descriptions

Arazzo Workflow Specification

workday-request-one-time-payment-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Workday Request One-Time Payment
  summary: Confirm a worker and read their pay slips, then submit a one-time payment request.
  description: >-
    A one-time payment flow. It resolves the worker, reads recent pay slips for
    context, and then submits a one-time payment request. The one-time payment
    operation is defined in both the Compensation and Staffing specs, so it is
    referenced by its explicit source. 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: hcmApi
  url: ../openapi/hcm.yml
  type: openapi
- name: payrollApi
  url: ../openapi/payroll.yml
  type: openapi
- name: compensationApi
  url: ../openapi/compensation.yml
  type: openapi
workflows:
- workflowId: request-one-time-payment
  summary: Resolve a worker, read pay slips, then submit a one-time payment.
  description: >-
    Reads the worker and recent pay slips, then submits a one-time payment
    request with the supplied effective date, amount, currency, and pay
    component.
  inputs:
    type: object
    required:
    - authorization
    - workerId
    - effectiveDate
    - amount
    - currency
    - payComponent
    properties:
      authorization:
        type: string
        description: OAuth2 bearer token, e.g. "Bearer eyJ...".
      workerId:
        type: string
        description: The Workday ID of the worker.
      effectiveDate:
        type: string
        description: The effective date of the payment (YYYY-MM-DD).
      reason:
        type: object
        description: The payment reason reference object (id, descriptor, href).
      currency:
        type: object
        description: The currency reference object (id, descriptor, href).
      amount:
        type: number
        description: The payment amount.
      payComponent:
        type: object
        description: The pay component reference object (id, descriptor, href).
  steps:
  - stepId: getWorker
    description: Confirm the worker exists before reading payroll data.
    operationId: getWorkerById
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: ID
      in: path
      value: $inputs.workerId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      workerDescriptor: $response.body#/descriptor
  - stepId: getPaySlips
    description: Read recent pay slips for the worker for context.
    operationId: getPaySlips
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: ID
      in: path
      value: $inputs.workerId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      paySlips: $response.body#/data
  - stepId: requestPayment
    description: Submit the one-time payment request for the worker.
    operationPath: '{$sourceDescriptions.compensationApi.url}#/paths/~1workers~1{ID}~1requestOneTimePayment/post'
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: ID
      in: path
      value: $inputs.workerId
    requestBody:
      contentType: application/json
      payload:
        effectiveDate: $inputs.effectiveDate
        reason: $inputs.reason
        currency: $inputs.currency
        amount: $inputs.amount
        payComponent: $inputs.payComponent
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      paymentId: $response.body#/id
      paymentDescriptor: $response.body#/descriptor
  outputs:
    workerDescriptor: $steps.getWorker.outputs.workerDescriptor
    paySlips: $steps.getPaySlips.outputs.paySlips
    paymentId: $steps.requestPayment.outputs.paymentId