openapi: 3.1.0 info: title: Workday Finance Procurement API description: >- API for procurement operations including purchase requisitions, purchase orders, supplier management, supplier invoices, business assets, and the procure-to-pay lifecycle within Workday Financial Management. version: v45.2 contact: name: Workday API Support email: api-support@workday.com termsOfService: https://www.workday.com/en-us/legal.html externalDocs: description: Workday Resource Management API Documentation url: https://community.workday.com/sites/default/files/file-hosting/productionapi/Resource_Management/v45.2/index.html servers: - url: https://wd2-impl-services1.workday.com/ccx/api/resource-management/v45.2/{tenant} description: Workday Procurement API Server variables: tenant: default: mycompany description: Workday tenant name security: - bearerAuth: [] tags: - name: Suppliers description: Supplier account management - name: Purchase Orders description: Purchase order creation and management - name: Supplier Invoices description: Supplier invoice processing - name: Requisitions description: Purchase requisition management paths: /suppliers: get: operationId: listSuppliers summary: List Suppliers description: Returns a collection of supplier accounts in the tenant. tags: - Suppliers parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' responses: '200': description: Collection of suppliers returned successfully content: application/json: schema: type: object properties: total: type: integer data: type: array items: $ref: '#/components/schemas/Supplier' '401': $ref: '#/components/responses/Unauthorized' /suppliers/{supplierId}: get: operationId: getSupplier summary: Get Supplier description: Returns details of a specific supplier account. tags: - Suppliers parameters: - $ref: '#/components/parameters/supplierId' responses: '200': description: Supplier details returned successfully content: application/json: schema: $ref: '#/components/schemas/Supplier' '404': $ref: '#/components/responses/NotFound' /purchaseOrders: get: operationId: listPurchaseOrders summary: List Purchase Orders description: Returns a collection of purchase orders. tags: - Purchase Orders parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - name: status in: query description: Filter by purchase order status schema: type: string responses: '200': description: Collection of purchase orders returned successfully content: application/json: schema: type: object properties: total: type: integer data: type: array items: $ref: '#/components/schemas/PurchaseOrder' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createPurchaseOrder summary: Create Purchase Order description: Creates a new purchase order. tags: - Purchase Orders requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PurchaseOrderCreate' responses: '201': description: Purchase order created successfully content: application/json: schema: $ref: '#/components/schemas/PurchaseOrder' '400': $ref: '#/components/responses/BadRequest' /purchaseOrders/{purchaseOrderId}: get: operationId: getPurchaseOrder summary: Get Purchase Order description: Returns details of a specific purchase order. tags: - Purchase Orders parameters: - $ref: '#/components/parameters/purchaseOrderId' responses: '200': description: Purchase order details returned successfully content: application/json: schema: $ref: '#/components/schemas/PurchaseOrder' '404': $ref: '#/components/responses/NotFound' /supplierInvoices: get: operationId: listSupplierInvoices summary: List Supplier Invoices description: Returns a collection of supplier invoices. tags: - Supplier Invoices parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - name: status in: query description: Filter by invoice status schema: type: string responses: '200': description: Collection of supplier invoices returned successfully content: application/json: schema: type: object properties: total: type: integer data: type: array items: $ref: '#/components/schemas/SupplierInvoice' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createSupplierInvoice summary: Create Supplier Invoice description: Creates a new supplier invoice for processing. tags: - Supplier Invoices requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SupplierInvoiceCreate' responses: '201': description: Supplier invoice created successfully content: application/json: schema: $ref: '#/components/schemas/SupplierInvoice' '400': $ref: '#/components/responses/BadRequest' /requisitions: get: operationId: listRequisitions summary: List Purchase Requisitions description: Returns a collection of purchase requisitions. tags: - Requisitions parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' responses: '200': description: Collection of requisitions returned successfully content: application/json: schema: type: object properties: total: type: integer data: type: array items: $ref: '#/components/schemas/Requisition' '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 supplierId: name: supplierId in: path required: true description: The unique identifier of the supplier schema: type: string purchaseOrderId: name: purchaseOrderId in: path required: true description: The unique identifier of the purchase order 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 message: type: string ResourceReference: type: object properties: id: type: string descriptor: type: string href: type: string format: uri Supplier: type: object properties: id: type: string description: Supplier unique identifier descriptor: type: string description: Supplier display name name: type: string supplierNumber: type: string status: type: string enum: [active, inactive] taxId: type: string paymentTerms: type: string href: type: string format: uri PurchaseOrder: type: object properties: id: type: string descriptor: type: string purchaseOrderNumber: type: string status: type: string enum: [draft, submitted, approved, received, closed] supplier: $ref: '#/components/schemas/ResourceReference' totalAmount: type: number format: double currency: type: string orderDate: type: string format: date lines: type: array items: type: object properties: lineNumber: type: integer item: type: string quantity: type: number unitCost: type: number totalCost: type: number href: type: string format: uri PurchaseOrderCreate: type: object required: [supplier] properties: supplier: type: string description: Supplier identifier orderDate: type: string format: date lines: type: array items: type: object properties: item: type: string quantity: type: number unitCost: type: number SupplierInvoice: type: object properties: id: type: string descriptor: type: string invoiceNumber: type: string status: type: string enum: [draft, submitted, approved, paid, cancelled] supplier: $ref: '#/components/schemas/ResourceReference' invoiceDate: type: string format: date dueDate: type: string format: date totalAmount: type: number format: double currency: type: string purchaseOrder: $ref: '#/components/schemas/ResourceReference' href: type: string format: uri SupplierInvoiceCreate: type: object required: [supplier, invoiceNumber, totalAmount] properties: supplier: type: string invoiceNumber: type: string invoiceDate: type: string format: date dueDate: type: string format: date totalAmount: type: number currency: type: string Requisition: type: object properties: id: type: string descriptor: type: string requisitionNumber: type: string status: type: string enum: [draft, submitted, approved, ordered, received] requester: $ref: '#/components/schemas/ResourceReference' submitDate: type: string format: date totalAmount: type: number format: double currency: type: string href: type: string format: uri