Workday Financial Management API

Core SOAP API for financial management operations including general ledger, accounts payable, accounts receivable, financial reporting, tax, financial organizations, and worktag management. Exposes data relative to accounts, accounting, business plans, and related financial structures.

Documentation

Specifications

Other Resources

OpenAPI Specification

workday-finance-financial-management-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Workday Finance Financial Management API
  description: >-
    Core API for financial management operations including general ledger,
    accounts payable, accounts receivable, financial reporting, tax management,
    financial organizations, and worktag management. Exposes data relative to
    accounts, accounting, business plans, and related financial structures.
  version: v41.2
  contact:
    name: Workday API Support
    email: [email protected]
  termsOfService: https://www.workday.com/en-us/legal.html
externalDocs:
  description: Workday Financial Management API Documentation
  url: https://community.workday.com/sites/default/files/file-hosting/productionapi/Financial_Management/v41.2/index.html
servers:
  - url: https://wd2-impl-services1.workday.com/ccx/api/financial-management/v41.2/{tenant}
    description: Workday Financial Management API Server
    variables:
      tenant:
        default: mycompany
        description: Workday tenant name
security:
  - bearerAuth: []
tags:
  - name: Accounts
    description: General ledger accounts and account structures
  - name: Journal Entries
    description: Journal entry creation and retrieval
  - name: Cost Centers
    description: Cost center management and reporting
  - name: Worktags
    description: Worktag dimension management
  - name: Financial Periods
    description: Fiscal period and year management
paths:
  /accounts:
    get:
      operationId: listAccounts
      summary: List Financial Accounts
      description: Returns a collection of general ledger accounts in the tenant.
      tags:
        - Accounts
      parameters:
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'
        - name: type
          in: query
          description: Filter by account type
          schema:
            type: string
      responses:
        '200':
          description: Collection of accounts returned successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  total:
                    type: integer
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Account'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /accounts/{accountId}:
    get:
      operationId: getAccount
      summary: Get Financial Account
      description: Returns details of a specific general ledger account.
      tags:
        - Accounts
      parameters:
        - $ref: '#/components/parameters/accountId'
      responses:
        '200':
          description: Account details returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
        '404':
          $ref: '#/components/responses/NotFound'
  /journalEntries:
    get:
      operationId: listJournalEntries
      summary: List Journal Entries
      description: Returns a collection of journal entries filtered by date, period, or account.
      tags:
        - Journal Entries
      parameters:
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'
        - name: period
          in: query
          description: Filter by accounting period
          schema:
            type: string
        - name: account
          in: query
          description: Filter by account ID
          schema:
            type: string
      responses:
        '200':
          description: Collection of journal entries returned successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  total:
                    type: integer
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/JournalEntry'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createJournalEntry
      summary: Create Journal Entry
      description: Creates a new journal entry in the general ledger.
      tags:
        - Journal Entries
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JournalEntryCreate'
      responses:
        '201':
          description: Journal entry created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JournalEntry'
        '400':
          $ref: '#/components/responses/BadRequest'
  /journalEntries/{journalEntryId}:
    get:
      operationId: getJournalEntry
      summary: Get Journal Entry
      description: Returns details of a specific journal entry.
      tags:
        - Journal Entries
      parameters:
        - $ref: '#/components/parameters/journalEntryId'
      responses:
        '200':
          description: Journal entry details returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JournalEntry'
        '404':
          $ref: '#/components/responses/NotFound'
  /costCenters:
    get:
      operationId: listCostCenters
      summary: List Cost Centers
      description: Returns a collection of cost center organizations in the tenant.
      tags:
        - Cost Centers
      parameters:
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: Collection of cost centers returned successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  total:
                    type: integer
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/CostCenter'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /worktags:
    get:
      operationId: listWorktags
      summary: List Worktags
      description: Returns a collection of worktag dimension values used for financial tagging.
      tags:
        - Worktags
      parameters:
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'
        - name: type
          in: query
          description: Filter by worktag type
          schema:
            type: string
      responses:
        '200':
          description: Collection of worktags returned successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  total:
                    type: integer
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Worktag'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /financialPeriods:
    get:
      operationId: listFinancialPeriods
      summary: List Financial Periods
      description: Returns a collection of fiscal periods and their open/close status.
      tags:
        - Financial Periods
      parameters:
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'
        - name: fiscalYear
          in: query
          description: Filter by fiscal year
          schema:
            type: string
      responses:
        '200':
          description: Collection of financial periods returned successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  total:
                    type: integer
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/FinancialPeriod'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
  parameters:
    limit:
      name: limit
      in: query
      description: Maximum number of results to return
      schema:
        type: integer
        default: 20
        maximum: 100
    offset:
      name: offset
      in: query
      description: Number of results to skip for pagination
      schema:
        type: integer
        default: 0
    accountId:
      name: accountId
      in: path
      required: true
      description: The unique identifier of the account
      schema:
        type: string
    journalEntryId:
      name: journalEntryId
      in: path
      required: true
      description: The unique identifier of the journal entry
      schema:
        type: string
  responses:
    BadRequest:
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  schemas:
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Error code
        message:
          type: string
          description: Human-readable error message
    ResourceReference:
      type: object
      properties:
        id:
          type: string
        descriptor:
          type: string
        href:
          type: string
          format: uri
    Account:
      type: object
      properties:
        id:
          type: string
          description: Account unique identifier
        descriptor:
          type: string
          description: Account display name
        accountNumber:
          type: string
          description: General ledger account number
        accountType:
          type: string
          enum: [asset, liability, equity, revenue, expense]
          description: Type of account
        company:
          $ref: '#/components/schemas/ResourceReference'
        balance:
          type: number
          format: double
          description: Current account balance
        currency:
          type: string
          description: Account currency code
        href:
          type: string
          format: uri
    JournalEntry:
      type: object
      properties:
        id:
          type: string
          description: Journal entry unique identifier
        descriptor:
          type: string
          description: Journal entry display name
        journalEntryNumber:
          type: string
          description: Sequential journal entry number
        status:
          type: string
          enum: [draft, posted, reversed]
        period:
          $ref: '#/components/schemas/ResourceReference'
        postingDate:
          type: string
          format: date
          description: Date the entry is posted to the ledger
        lines:
          type: array
          items:
            $ref: '#/components/schemas/JournalEntryLine'
        createdOn:
          type: string
          format: date-time
        href:
          type: string
          format: uri
    JournalEntryCreate:
      type: object
      required: [period, lines]
      properties:
        period:
          type: string
          description: Financial period identifier
        postingDate:
          type: string
          format: date
        memo:
          type: string
        lines:
          type: array
          items:
            $ref: '#/components/schemas/JournalEntryLine'
    JournalEntryLine:
      type: object
      properties:
        lineOrder:
          type: integer
        account:
          $ref: '#/components/schemas/ResourceReference'
        debitAmount:
          type: number
          format: double
        creditAmount:
          type: number
          format: double
        currency:
          type: string
        memo:
          type: string
        worktags:
          type: array
          items:
            $ref: '#/components/schemas/ResourceReference'
    CostCenter:
      type: object
      properties:
        id:
          type: string
        descriptor:
          type: string
        name:
          type: string
        code:
          type: string
        manager:
          $ref: '#/components/schemas/ResourceReference'
        company:
          $ref: '#/components/schemas/ResourceReference'
        href:
          type: string
          format: uri
    Worktag:
      type: object
      properties:
        id:
          type: string
        descriptor:
          type: string
        name:
          type: string
        type:
          type: string
        code:
          type: string
        href:
          type: string
          format: uri
    FinancialPeriod:
      type: object
      properties:
        id:
          type: string
        descriptor:
          type: string
        name:
          type: string
        startDate:
          type: string
          format: date
        endDate:
          type: string
          format: date
        status:
          type: string
          enum: [open, closed, locked]
        fiscalYear:
          $ref: '#/components/schemas/ResourceReference'
        href:
          type: string
          format: uri