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: api-support@workday.com 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