Workday Strategic Sourcing Projects API (1.0)
Download OpenAPI specification:
We've provided detailed documentation below to guide you. However, if you need additional assistance, here's how you can get the support you need:
- Community Discussions: Join the conversation on our Workday Community Discussion Boards (found under the "Collaborate" section in community). Connect with other users, share best practices, and get answers to your configuration questions.
- Expert Configuration Assistance (Professional Services): For tailored, hands-on support with your specific project, our Professional Services team is available.
- Looking for personalized guidance? Workday Success Plan customers can submit an "Ask" for expert insights on configuration and best practices.
- Need custom solutions? Consider Expert Assist, our consulting service for detailed changes and project support.
- Reporting System Issues: If you suspect a problem with the Workday system itself, please connect with our dedicated support team. Your company's Named Support Contact (NSC) can log a Product Support Defect case. We'll review the issue based on its impact and Workday's service level agreement (SLA).
US Region
Environment | US region Base URI |
---|---|
Production | https://api.us.workdayspend.com/services/projects/v1 |
Sandbox | https://api.sandbox.us.workdayspend.com/services/projects/v1 |
EU Region
Environment | EU region Base URI |
---|---|
Production | https://api.eu.workdayspend.com/services/projects/v1 |
Sandbox | https://api.sandbox.eu.workdayspend.com/services/projects/v1 |
CA Region
Environment | CA region Base URI |
---|---|
Production | https://api.ca.workdayspend.com/services/projects/v1 |
Sandbox | https://api.sandbox.ca.workdayspend.com/services/projects/v1 |
The API conforms to the JSON API Specification.
The current version of this service is indicated by the X-Api-Version
header.
Sample version header: X-Api-Version: 1.0
.
Our API adheres to the ISO 8601 standard when accepting and formatting Date and Time fields. All Date and Time fields returned by this API will be in the UTC timezone.
Date and Time fields sent to this API can be in any timezone, provided they adhere to the ISO 8601 standard.
The Workday Strategic Sourcing API uses API keys to authenticate requests. Every request will require all 3 HTTP headers:
HTTP Header | Description |
---|---|
X-Api-Key | a company-wide API key |
X-User-Token | a user-specific API token |
X-User-Email | user email |
You can generate all of those from the API tokens section of your Profile page.
Your API keys carry many privileges, so be sure to keep them secure! Do not share your secret API keys in publicly accessible areas such as GitHub, client-side code, and so forth.
All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.
Rate limit windows are per second and are shared by all API Keys for a company.
The rate limit is 5 requests per second.
When request submissions exceed the limits, the limit-exceeding requests return 429 Too Many Requests
error responses to the client.
Upon receiving a 429
response, it is recommended to retry the request in compliance with the rate limit. One example would be to add a sleep function for 1 second and retry.
The external_id
field exists on many of the Workday Strategic Sourcing resources. This optional and mutable extension is intended to store foreign keys of the corresponding resource from a third party system. These IDs are not considered Sourcing Data and may be logged in external systems. Do not include any sensitive or personal data in IDs.
The purpose of external IDs is to:
- Prevent duplicate record creation
- Allow resources in Workday Strategic Sourcing and a third party system to share the same identifier
- Allow for records to be queried or updated without requiring knowledge of the Workday Strategic Sourcing generated IDs
Paginated endpoints may return a subset of the total results for a GET
request that returns multiple resources. Endpoints that support pagination will include usage details in the Query Parameters section for the resource.
The paginated results can be configured using the page
query parameter to configure the number of returned results. The default pagination size is 10 results and the maximum pagination size is 100 results per request.
Endpoints that support pagination may return "self" and "next" sections within the "links" section that navigate to the current and next pages respectively.
Example Paginated Request
Request Query Parameter Format
/projects?page[size]=25
Response Schema
The paginated response will also include the following schema
object Result set metadata. | |
object (PaginationLinks) List of related links. |
null
The results can be filtered to a subset of the total set of results using filter
query parameters.
Endpoints that support filtering will include usage details in the Query Parameters section for the resource.
Most filters that end in equals
support a Query Parameter array format to filter by multiple values.
Example:
?filter[status_equals][]=submitted&filter[status_equals][]=resubmitted
Use the projects API to create, update, and query the projects in Workday Strategic Sourcing.
type required | string (ProjectType) Object type, should always be |
id required | integer (ProjectId) Project identifier string. |
object (ProjectAttributes) Project attributes. | |
object (ProjectRelationship) Project relationships. | |
object (ResourceLinks) List of related links. |
{- "type": "projects",
- "id": "1",
- "attributes": {
- "actual_end_date": "2031-12-30",
- "actual_spend_amount": 23.45,
- "approved_spend_amount": 55.55,
- "actual_start_date": "2018-01-20",
- "approved_at": "2019-10-11T09:12:31.080Z",
- "approval_rounds": 1,
- "canceled_note": null,
- "canceled_reason": null,
- "description": "Project Description",
- "estimated_savings_amount": 11.33,
- "estimated_spend_amount": 21.12,
- "external_id": "1234-5678-abcd-efgh",
- "marked_as_needs_attention_at": null,
- "needs_attention": false,
- "needs_attention_note": null,
- "needs_attention_reason": null,
- "number": 1,
- "on_hold_note": null,
- "on_hold_reason": null,
- "first_sent_for_approval_at": "2019-10-05T05:24:12.000Z",
- "sent_for_approval_at": "2019-10-05T05:24:12.000Z",
- "state": "active",
- "state_label": "Sourcing",
- "target_end_date": "2031-12-31",
- "target_start_date": "2018-01-15",
- "title": "Project Title",
- "updated_at": "2019-10-29T21:28:46.790Z",
- "request_submitted_at": "2019-10-29T21:28:46.790Z",
- "request_opened_at": null,
- "custom_fields": [
- {
- "name": "Custom Field Currency",
- "value": 1234567890
}, - {
- "name": "Custom Field Integer",
- "value": 1234567890
}, - {
- "name": "Custom Field Checkbox",
- "value": true
}, - {
- "name": "Custom Field Decimal",
- "value": 123456.78
}, - {
- "name": "Custom Field Date",
- "value": "2018-12-31T00:00:00.000Z"
}, - {
- "name": "Custom Field Select",
- "value": "Select Option"
}, - {
- "name": "Custom Field Multiple",
- "value": [
- "Multiple Select Option 1",
- "Multiple Select Option 2"
]
}, - {
- "name": "Custom Field Short Text",
- "value": "some short text"
}, - {
- "name": "Custom Field Paragraph",
- "value": "longer text than short text"
},
]
}, - "relationships": {
- "attachments": {
- "data": [
- {
- "id": "1",
- "type": "attachments"
}, - {
- "id": "2",
- "type": "attachments"
}
]
}, - "project_type": {
- "data": {
- "id": "1",
- "type": "project_types"
}
}, - "spend_category": {
- "data": {
- "id": "1",
- "type": "spend_categories"
}
}, - "creator": {
- "data": {
- "id": "1",
- "type": "stakeholders"
}
}, - "requester": {
- "data": {
- "id": "3",
- "type": "stakeholders"
}
}, - "owner": {
- "data": {
- "id": "2",
- "type": "stakeholders"
}
}
},
}
List Projects
Returns a list of projects for the specified criteria.
Authorizations:
query Parameters
object (ProjectInputFilter) Filter projects by multiple criteria. Only one filter per attribute is supported. For best performance, we recommend 5 or less filters. | |
object (PageInput) Customize pagination results with |
Responses
Request samples
- Curl
curl -H "X-Api-Key: ${COMPANY_KEY}" \ -H "X-User-Token: ${USER_TOKEN}" \ -H "X-User-Email: ${USER_EMAIL}" \ -H "Content-Type: application/vnd.api+json" \ "https://api.us.workdayspend.com/services/projects/v1/projects"
Response samples
- 200
{- "meta": {
- "count": 2
}, - "data": [
- {
- "type": "projects",
- "id": "1",
- "attributes": {
- "actual_end_date": "2031-12-30",
- "actual_spend_amount": 23.45,
- "approved_spend_amount": 55.55,
- "actual_start_date": "2018-01-20",
- "approved_at": "2019-10-11T09:12:31.080Z",
- "approval_rounds": 1,
- "canceled_note": null,
- "canceled_reason": null,
- "description": "Project Description",
- "estimated_savings_amount": 11.33,
- "estimated_spend_amount": 21.12,
- "external_id": "1234-5678-abcd-efgh",
- "marked_as_needs_attention_at": null,
- "needs_attention": false,
- "needs_attention_note": null,
- "needs_attention_reason": null,
- "number": 1,
- "on_hold_note": null,
- "on_hold_reason": null,
- "first_sent_for_approval_at": "2019-10-05T05:24:12.000Z",
- "sent_for_approval_at": "2019-10-05T05:24:12.000Z",
- "state": "active",
- "state_label": "Sourcing",
- "target_end_date": "2031-12-31",
- "target_start_date": "2018-01-15",
- "title": "Project Title",
- "updated_at": "2019-10-29T21:28:46.790Z",
- "request_submitted_at": "2019-10-28T21:28:46.790Z",
- "request_opened_at": null,
- "custom_fields": [
- {
- "name": "Custom Field Currency",
- "value": 1234567890
}, - {
- "name": "Custom Field Integer",
- "value": 1234567890
}, - {
- "name": "Custom Field Checkbox",
- "value": true
}, - {
- "name": "Custom Field Decimal",
- "value": 123456.78
}, - {
- "name": "Custom Field Date",
- "value": "2018-12-31T00:00:00.000Z"
}, - {
- "name": "Custom Field Select",
- "value": "Select Option"
}, - {
- "name": "Custom Field Multiple",
- "value": [
- "Multiple Select Option 1",
- "Multiple Select Option 2"
]
}, - {
- "name": "Custom Field Short Text",
- "value": "some short text"
}, - {
- "name": "Custom Field Paragraph",
- "value": "longer text than short text"
},
]
}, - "relationships": {
- "attachments": {
- "data": [
- {
- "id": "1",
- "type": "attachments"
}, - {
- "id": "2",
- "type": "attachments"
}
]
}, - "spend_category": {
- "data": {
- "id": "1",
- "type": "spend_categories"
}
}, - "project_type": {
- "data": {
- "id": "1",
- "type": "project_types"
}
}, - "creator": {
- "data": {
- "id": "1",
- "type": "stakeholders"
}
}, - "requester": {
- "data": {
- "id": "3",
- "type": "stakeholders"
}
}, - "owner": {
- "data": {
- "id": "1",
- "type": "stakeholders"
}
}
},
}, - {
- "type": "projects",
- "id": "2",
- "attributes": {
- "actual_end_date": "2032-11-20",
- "actual_spend_amount": 223.45,
- "approved_spend_amount": 255.55,
- "actual_start_date": "2019-02-20",
- "approved_at": "2019-10-11T09:12:31.080Z",
- "approval_rounds": 1,
- "canceled_note": null,
- "canceled_reason": null,
- "description": "Project #2 Description",
- "estimated_savings_amount": 211.33,
- "estimated_spend_amount": 221.12,
- "external_id": "abcd-efgh-1234-5678",
- "marked_as_needs_attention_at": null,
- "needs_attention": false,
- "needs_attention_note": null,
- "needs_attention_reason": null,
- "number": 2,
- "on_hold_note": null,
- "on_hold_reason": null,
- "first_sent_for_approval_at": "2019-10-05T05:24:12.000Z",
- "sent_for_approval_at": "2019-10-05T05:24:12.000Z",
- "state": "active",
- "state_label": "Sourcing",
- "target_end_date": "2032-11-21",
- "target_start_date": "2019-02-15",
- "title": "Project #2 Title",
- "updated_at": "2019-10-29T21:28:46.790Z",
- "request_submitted_at": "2019-10-28T21:28:46.790Z",
- "request_opened_at": null,
- "custom_fields": [
- {
- "name": "Custom Field Currency",
- "value": 1234567890
}, - {
- "name": "Custom Field Integer",
- "value": 1234567890
}, - {
- "name": "Custom Field Checkbox",
- "value": true
}, - {
- "name": "Custom Field Decimal",
- "value": 123456.78
}, - {
- "name": "Custom Field Date",
- "value": "2018-12-31T00:00:00.000Z"
}, - {
- "name": "Custom Field Select",
- "value": "Select Option"
}, - {
- "name": "Custom Field Multiple",
- "value": [
- "Multiple Select Option 1",
- "Multiple Select Option 2"
]
}, - {
- "name": "Custom Field Short Text",
- "value": "some short text"
}, - {
- "name": "Custom Field Paragraph",
- "value": "longer text than short text"
},
]
}, - "relationships": {
- "attachments": {
- "data": [ ]
}, - "project_type": {
- "data": {
- "id": "1",
- "type": "project_types"
}
}, - "spend_category": {
- "data": {
- "id": "1",
- "type": "spend_categories"
}
}, - "creator": {
- "data": {
- "id": "1",
- "type": "stakeholders"
}
}, - "requester": {
- "data": {
- "id": "3",
- "type": "stakeholders"
}
}, - "owner": {
- "data": {
- "id": "1",
- "type": "stakeholders"
}
}
},
}
], - "links": {
}
}
Create a Project
Create a project with given attributes.
Authorizations:
Request Body schema: application/vnd.api+json
object (ProjectCreate) |
Responses
Request samples
- Payload
- Curl
{- "data": {
- "type": "projects",
- "attributes": {
- "actual_end_date": "2031-12-30",
- "actual_spend_amount": "23.45",
- "approved_spend_amount": "55.55",
- "actual_start_date": "2018-01-20",
- "canceled_note": null,
- "canceled_reason": null,
- "description": "Project Description",
- "estimated_savings_amount": "11.33",
- "estimated_spend_amount": "21.12",
- "external_id": "1234-5678-abcd-efgh",
- "needs_attention": false,
- "needs_attention_note": null,
- "needs_attention_reason": null,
- "on_hold_note": null,
- "on_hold_reason": null,
- "state": "active",
- "state_label": "Sourcing",
- "target_end_date": "2031-12-31",
- "target_start_date": "2018-01-15",
- "title": "Project Title",
- "custom_fields": [
- {
- "name": "Custom Field Currency",
- "value": 1234567890
}, - {
- "name": "Custom Field Integer",
- "value": 1234567890
}, - {
- "name": "Custom Field Checkbox",
- "value": true
}, - {
- "name": "Custom Field Decimal",
- "value": 123456.78
}, - {
- "name": "Custom Field Date",
- "value": "2018-12-31T00:00:00.000Z"
}, - {
- "name": "Custom Field Select",
- "value": "Select Option"
}, - {
- "name": "Custom Field Multiple",
- "value": [
- "Multiple Select Option 1",
- "Multiple Select Option 2"
]
}, - {
- "name": "Custom Field Short Text",
- "value": "some short text"
}, - {
- "name": "Custom Field Paragraph",
- "value": "longer text than short text"
},
]
}, - "relationships": {
- "owner": {
- "meta": {
- "email": "contract.owner@example.com"
}
}, - "requester": {
- "meta": {
- "email": "requester@example.com"
}
}
}
}
}
Response samples
- 201
{- "data": {
- "type": "projects",
- "id": "1",
- "attributes": {
- "actual_end_date": "2031-12-30",
- "actual_spend_amount": 23.45,
- "approved_spend_amount": 55.55,
- "actual_start_date": "2018-01-20",
- "approved_at": null,
- "approval_rounds": 0,
- "canceled_note": null,
- "canceled_reason": null,
- "description": "Project Description",
- "estimated_savings_amount": 11.33,
- "estimated_spend_amount": 21.12,
- "external_id": "1234-5678-abcd-efgh",
- "marked_as_needs_attention_at": null,
- "needs_attention": false,
- "needs_attention_note": null,
- "needs_attention_reason": null,
- "number": 1,
- "on_hold_note": null,
- "on_hold_reason": null,
- "first_sent_for_approval_at": null,
- "sent_for_approval_at": null,
- "state": "active",
- "state_label": "Sourcing",
- "target_end_date": "2031-12-31",
- "target_start_date": "2018-01-15",
- "title": "Project Title",
- "updated_at": "2019-10-29T21:28:46.790Z",
- "request_submitted_at": "2019-10-28T21:28:46.790Z",
- "request_opened_at": null,
- "custom_fields": [
- {
- "name": "Custom Field Currency",
- "value": 1234567890
}, - {
- "name": "Custom Field Integer",
- "value": 1234567890
}, - {
- "name": "Custom Field Checkbox",
- "value": true
}, - {
- "name": "Custom Field Decimal",
- "value": 123456.78
}, - {
- "name": "Custom Field Date",
- "value": "2018-12-31T00:00:00.000Z"
}, - {
- "name": "Custom Field Select",
- "value": "Select Option"
}, - {
- "name": "Custom Field Multiple",
- "value": [
- "Multiple Select Option 1",
- "Multiple Select Option 2"
]
}, - {
- "name": "Custom Field Short Text",
- "value": "some short text"
}, - {
- "name": "Custom Field Paragraph",
- "value": "longer text than short text"
},
]
}, - "relationships": {
- "attachments": {
- "data": [ ]
}, - "project_type": {
- "data": {
- "id": "1",
- "type": "project_types"
}
}, - "spend_category": {
- "data": {
- "id": "1",
- "type": "spend_categories"
}
}, - "creator": {
- "data": {
- "id": "2",
- "type": "stakeholders"
}
}, - "requester": {
- "data": {
- "id": "3",
- "type": "stakeholders"
}
}, - "owner": {
- "data": {
- "id": "2",
- "type": "stakeholders"
}
}
},
}
}
Get a Project
Retrieves the details of an existing project. You need to supply the unique project identifier that was returned upon project creation.
Authorizations:
path Parameters
id required | integer Example: 1 Unique Project identifier. |
Responses
Request samples
- Curl
curl -H "X-Api-Key: ${COMPANY_KEY}" \ -H "X-User-Token: ${USER_TOKEN}" \ -H "X-User-Email: ${USER_EMAIL}" \ -H "Content-Type: application/vnd.api+json" \ "https://api.us.workdayspend.com/services/projects/v1/projects/1"
Response samples
- 200
{- "data": {
- "type": "projects",
- "id": "1",
- "attributes": {
- "actual_end_date": "2031-12-30",
- "actual_spend_amount": 23.45,
- "approved_spend_amount": 55.55,
- "actual_start_date": "2018-01-20",
- "approved_at": "2019-10-11T09:12:31.080Z",
- "approval_rounds": 1,
- "canceled_note": null,
- "canceled_reason": null,
- "description": "Project Description",
- "estimated_savings_amount": 11.33,
- "estimated_spend_amount": 21.12,
- "external_id": "1234-5678-abcd-efgh",
- "marked_as_needs_attention_at": null,
- "needs_attention": false,
- "needs_attention_note": null,
- "needs_attention_reason": null,
- "number": 1,
- "on_hold_note": null,
- "on_hold_reason": null,
- "first_sent_for_approval_at": "2019-10-05T05:24:12.000Z",
- "sent_for_approval_at": "2019-10-05T05:24:12.000Z",
- "state": "active",
- "state_label": "Sourcing",
- "target_end_date": "2031-12-31",
- "target_start_date": "2018-01-15",
- "title": "Project Title",
- "updated_at": "2019-10-29T21:28:46.790Z",
- "request_submitted_at": "2019-10-28T21:28:46.790Z",
- "request_opened_at": null,
- "custom_fields": [
- {
- "name": "Custom Field Currency",
- "value": 1234567890
}, - {
- "name": "Custom Field Integer",
- "value": 1234567890
}, - {
- "name": "Custom Field Checkbox",
- "value": true
}, - {
- "name": "Custom Field Decimal",
- "value": 123456.78
}, - {
- "name": "Custom Field Date",
- "value": "2018-12-31T00:00:00.000Z"
}, - {
- "name": "Custom Field Select",
- "value": "Select Option"
}, - {
- "name": "Custom Field Multiple",
- "value": [
- "Multiple Select Option 1",
- "Multiple Select Option 2"
]
}, - {
- "name": "Custom Field Short Text",
- "value": "some short text"
}, - {
- "name": "Custom Field Paragraph",
- "value": "longer text than short text"
},
]
}, - "relationships": {
- "attachments": {
- "data": [
- {
- "id": "1",
- "type": "attachments"
}, - {
- "id": "2",
- "type": "attachments"
}
]
}, - "project_type": {
- "data": {
- "id": "1",
- "type": "project_types"
}
}, - "spend_category": {
- "data": {
- "id": "1",
- "type": "spend_categories"
}
}, - "creator": {
- "data": {
- "id": "1",
- "type": "stakeholders"
}
}, - "requester": {
- "data": {
- "id": "3",
- "type": "stakeholders"
}
}, - "owner": {
- "data": {
- "id": "1",
- "type": "stakeholders"
}
}
},
}
}
Update a Project
Updates the details of an existing project. You need to supply the unique supplier project that was returned upon project creation.
Please note, that request body must include an id
attribute with the value of your project
unique identifier (the same one you passed in the URL).
Authorizations:
path Parameters
id required | integer Example: 1 Unique Project identifier. |
Request Body schema: application/vnd.api+json
object (ProjectUpdate) |
Responses
Request samples
- Payload
- Curl
{- "data": {
- "type": "projects",
- "id": "1",
- "attributes": {
- "actual_end_date": "2031-12-30",
- "actual_spend_amount": "223.45",
- "approved_spend_amount": "255.55",
- "actual_start_date": "2019-01-20",
- "canceled_note": null,
- "canceled_reason": null,
- "description": "Project Description Updated",
- "estimated_savings_amount": "211.33",
- "estimated_spend_amount": "221.12",
- "external_id": "1234-5678-abcd-efgh",
- "needs_attention": false,
- "needs_attention_note": null,
- "needs_attention_reason": null,
- "on_hold_note": null,
- "on_hold_reason": null,
- "state": "active",
- "state_label": "Sourcing",
- "target_end_date": "2032-12-31",
- "target_start_date": "2019-01-15",
- "title": "Project Title Updated",
- "custom_fields": [
- {
- "name": "Custom Field Currency",
- "value": 987654321
}, - {
- "name": "Custom Field Integer",
- "value": 987654321
}, - {
- "name": "Custom Field Checkbox",
- "value": false
}, - {
- "name": "Custom Field Decimal",
- "value": 876543.21
}, - {
- "name": "Custom Field Date",
- "value": "2018-12-25T00:00:00.000Z"
}, - {
- "name": "Custom Field Select",
- "value": "Select Option"
}, - {
- "name": "Custom Field Multiple",
- "value": [
- "Multiple Select Option 2"
]
}, - {
- "name": "Custom Field Short Text",
- "value": "some short text updated"
}, - {
- "name": "Custom Field Paragraph",
- "value": "longer text than short text updated"
},
]
}, - "relationships": {
- "owner": {
- "meta": {
- "email": "contract.owner@example.com"
}
}, - "requester": {
- "meta": {
- "email": "requester@example.com"
}
}
}
}
}
Response samples
- 200
- 409
{- "data": {
- "type": "projects",
- "id": "1",
- "attributes": {
- "actual_end_date": "2031-12-30",
- "actual_spend_amount": 223.45,
- "approved_spend_amount": 255.55,
- "actual_start_date": "2019-01-20",
- "approved_at": "2019-10-11T09:12:31.080Z",
- "approval_rounds": 1,
- "canceled_note": null,
- "canceled_reason": null,
- "description": "Project Description Updated",
- "estimated_savings_amount": 211.33,
- "estimated_spend_amount": 221.12,
- "external_id": "1234-5678-abcd-efgh",
- "marked_as_needs_attention_at": null,
- "needs_attention": false,
- "needs_attention_note": null,
- "needs_attention_reason": null,
- "number": 1,
- "on_hold_note": null,
- "on_hold_reason": null,
- "first_sent_for_approval_at": "2019-10-05T05:24:12.000Z",
- "sent_for_approval_at": "2019-10-05T05:24:12.000Z",
- "state": "active",
- "state_label": "Sourcing",
- "target_end_date": "2032-12-31",
- "target_start_date": "2019-01-15",
- "title": "Project Title Updated",
- "updated_at": "2019-10-29T21:28:46.790Z",
- "request_submitted_at": "2019-10-28T21:28:46.790Z",
- "request_opened_at": null,
- "custom_fields": [
- {
- "name": "Custom Field Currency",
- "value": 987654321
}, - {
- "name": "Custom Field Integer",
- "value": 987654321
}, - {
- "name": "Custom Field Checkbox",
- "value": false
}, - {
- "name": "Custom Field Decimal",
- "value": 876543.21
}, - {
- "name": "Custom Field Date",
- "value": "2018-12-25T00:00:00.000Z"
}, - {
- "name": "Custom Field Select",
- "value": "Select Option"
}, - {
- "name": "Custom Field Multiple",
- "value": [
- "Multiple Select Option 2"
]
}, - {
- "name": "Custom Field Short Text",
- "value": "some short text updated"
}, - {
- "name": "Custom Field Paragraph",
- "value": "longer text than short text updated"
},
]
}, - "relationships": {
- "attachments": {
- "data": [
- {
- "id": "1",
- "type": "attachments"
}, - {
- "id": "2",
- "type": "attachments"
}
]
}, - "project_type": {
- "data": {
- "id": "1",
- "type": "project_types"
}
}, - "spend_category": {
- "data": {
- "id": "1",
- "type": "spend_categories"
}
}, - "creator": {
- "data": {
- "id": "1",
- "type": "stakeholders"
}
}, - "requester": {
- "data": {
- "id": "3",
- "type": "stakeholders"
}
}, - "owner": {
- "data": {
- "id": "1",
- "type": "stakeholders"
}
}
},
}
}
Delete a Project
Deletes a project. You need to supply the unique project identifier that was returned upon project creation.
Authorizations:
path Parameters
id required | integer Example: 1 Unique Project identifier. |
Responses
Request samples
- Curl
curl -H "X-Api-Key: ${COMPANY_KEY}" \ -H "X-User-Token: ${USER_TOKEN}" \ -H "X-User-Email: ${USER_EMAIL}" \ -H "Content-Type: application/vnd.api+json" \ -X DELETE \ "https://api.us.workdayspend.com/services/projects/v1/projects/1"
Get a Project by External ID
Retrieves the details of an existing project. You need to supply the unique project external identifier (the one you used when created the project).
Authorizations:
path Parameters
external_id required | string Example: 1234-5678-abcd-efgh Project external identifier. |
Responses
Request samples
- Curl
curl -H "X-Api-Key: ${COMPANY_KEY}" \ -H "X-User-Token: ${USER_TOKEN}" \ -H "X-User-Email: ${USER_EMAIL}" \ -H "Content-Type: application/vnd.api+json" \ "https://api.us.workdayspend.com/services/projects/v1/projects/SUP-1234/external_id"
Response samples
- 200
{- "data": {
- "type": "projects",
- "id": "1",
- "attributes": {
- "actual_end_date": "2031-12-30",
- "actual_spend_amount": 23.45,
- "approved_spend_amount": 55.55,
- "actual_start_date": "2018-01-20",
- "approved_at": "2019-10-11T09:12:31.080Z",
- "approval_rounds": 1,
- "canceled_note": null,
- "canceled_reason": null,
- "description": "Project Description",
- "estimated_savings_amount": 11.33,
- "estimated_spend_amount": 21.12,
- "external_id": "1234-5678-abcd-efgh",
- "marked_as_needs_attention_at": null,
- "needs_attention": false,
- "needs_attention_note": null,
- "needs_attention_reason": null,
- "number": 1,
- "on_hold_note": null,
- "on_hold_reason": null,
- "first_sent_for_approval_at": "2019-10-05T05:24:12.000Z",
- "sent_for_approval_at": "2019-10-05T05:24:12.000Z",
- "state": "active",
- "state_label": "Sourcing",
- "target_end_date": "2031-12-31",
- "target_start_date": "2018-01-15",
- "title": "Project Title",
- "updated_at": "2019-10-29T21:28:46.790Z",
- "request_submitted_at": "2019-10-28T21:28:46.790Z",
- "request_opened_at": null,
- "custom_fields": [
- {
- "name": "Custom Field Currency",
- "value": 1234567890
}, - {
- "name": "Custom Field Integer",
- "value": 1234567890
}, - {
- "name": "Custom Field Checkbox",
- "value": true
}, - {
- "name": "Custom Field Decimal",
- "value": 123456.78
}, - {
- "name": "Custom Field Date",
- "value": "2018-12-31T00:00:00.000Z"
}, - {
- "name": "Custom Field Select",
- "value": "Select Option"
}, - {
- "name": "Custom Field Multiple",
- "value": [
- "Multiple Select Option 1",
- "Multiple Select Option 2"
]
}, - {
- "name": "Custom Field Short Text",
- "value": "some short text"
}, - {
- "name": "Custom Field Paragraph",
- "value": "longer text than short text"
},
]
}, - "relationships": {
- "attachments": {
- "data": [
- {
- "id": "1",
- "type": "attachments"
}, - {
- "id": "2",
- "type": "attachments"
}
]
}, - "project_type": {
- "data": {
- "id": "1",
- "type": "project_types"
}
}, - "spend_category": {
- "data": {
- "id": "1",
- "type": "spend_categories"
}
}, - "creator": {
- "data": {
- "id": "1",
- "type": "stakeholders"
}
}, - "requester": {
- "data": {
- "id": "3",
- "type": "stakeholders"
}
}, - "owner": {
- "data": {
- "id": "1",
- "type": "stakeholders"
}
}
},
}
}
Update a Project by External ID
Updates the details of an existing project. You need to supply the unique project external identifier (the one you used when created the project).
Please note, that request body must include an id
attribute with the value of your project
external identifier (the same one you passed in the URL).
Authorizations:
path Parameters
external_id required | string Example: 1234-5678-abcd-efgh Project external identifier. |
Request Body schema: application/vnd.api+json
object (ProjectUpdate) |
Responses
Request samples
- Payload
- Curl
{- "data": {
- "type": "projects",
- "id": "1234-5678-abcd-efgh",
- "attributes": {
- "actual_end_date": "2031-12-30",
- "actual_spend_amount": "223.45",
- "approved_spend_amount": "255.55",
- "actual_start_date": "2019-01-20",
- "approved_at": "2019-10-11T09:12:31.080Z",
- "approval_rounds": 1,
- "canceled_note": null,
- "canceled_reason": null,
- "description": "Project Description Updated",
- "estimated_savings_amount": "211.33",
- "estimated_spend_amount": "221.12",
- "external_id": "1234-5678-abcd-efgh",
- "needs_attention": false,
- "needs_attention_note": null,
- "needs_attention_reason": null,
- "on_hold_note": null,
- "on_hold_reason": null,
- "first_sent_for_approval_at": "2019-10-05T05:24:12.000Z",
- "sent_for_approval_at": "2019-10-05T05:24:12.000Z",
- "state": "active",
- "state_label": "Sourcing",
- "target_end_date": "2032-12-31",
- "target_start_date": "2019-01-15",
- "title": "Project Title Updated",
- "custom_fields": [
- {
- "name": "Custom Field Currency",
- "value": 987654321
}, - {
- "name": "Custom Field Integer",
- "value": 987654321
}, - {
- "name": "Custom Field Checkbox",
- "value": false
}, - {
- "name": "Custom Field Decimal",
- "value": 876543.21
}, - {
- "name": "Custom Field Date",
- "value": "2018-12-25T00:00:00.000Z"
}, - {
- "name": "Custom Field Select",
- "value": "Select Option"
}, - {
- "name": "Custom Field Multiple",
- "value": [
- "Multiple Select Option 2"
]
}, - {
- "name": "Custom Field Short Text",
- "value": "some short text updated"
}, - {
- "name": "Custom Field Paragraph",
- "value": "longer text than short text updated"
},
]
}, - "relationships": {
- "owner": {
- "meta": {
- "email": "contract.owner@example.com"
}
}, - "requester": {
- "meta": {
- "email": "requester@example.com"
}
}
}
}
}
Response samples
- 200
{- "data": {
- "type": "projects",
- "id": "1",
- "attributes": {
- "actual_end_date": "2031-12-30",
- "actual_spend_amount": 223.45,
- "approved_spend_amount": 255.55,
- "actual_start_date": "2019-01-20",
- "approved_at": "2019-10-11T09:12:31.080Z",
- "approval_rounds": 1,
- "canceled_note": null,
- "canceled_reason": null,
- "description": "Project Description Updated",
- "estimated_savings_amount": 211.33,
- "estimated_spend_amount": 221.12,
- "external_id": "1234-5678-abcd-efgh",
- "marked_as_needs_attention_at": null,
- "needs_attention": false,
- "needs_attention_note": null,
- "needs_attention_reason": null,
- "number": 1,
- "on_hold_note": null,
- "on_hold_reason": null,
- "first_sent_for_approval_at": "2019-10-05T05:24:12.000Z",
- "sent_for_approval_at": "2019-10-05T05:24:12.000Z",
- "state": "active",
- "state_label": "Sourcing",
- "target_end_date": "2032-12-31",
- "target_start_date": "2019-01-15",
- "title": "Project Title Updated",
- "updated_at": "2019-10-29T21:28:46.790Z",
- "request_submitted_at": "2019-10-28T21:28:46.790Z",
- "request_opened_at": null,
- "custom_fields": [
- {
- "name": "Custom Field Currency",
- "value": 987654321
}, - {
- "name": "Custom Field Integer",
- "value": 987654321
}, - {
- "name": "Custom Field Checkbox",
- "value": false
}, - {
- "name": "Custom Field Decimal",
- "value": 876543.21
}, - {
- "name": "Custom Field Date",
- "value": "2018-12-25T00:00:00.000Z"
}, - {
- "name": "Custom Field Select",
- "value": "Select Option"
}, - {
- "name": "Custom Field Multiple",
- "value": [
- "Multiple Select Option 2"
]
}, - {
- "name": "Custom Field Short Text",
- "value": "some short text updated"
}, - {
- "name": "Custom Field Paragraph",
- "value": "longer text than short text updated"
},
]
}, - "relationships": {
- "attachments": {
- "data": [
- {
- "id": "1",
- "type": "attachments"
}, - {
- "id": "2",
- "type": "attachments"
}
]
}, - "project_type": {
- "data": {
- "id": "1",
- "type": "project_types"
}
}, - "spend_category": {
- "data": {
- "id": "2",
- "type": "spend_categories"
}
}, - "creator": {
- "data": {
- "id": "1",
- "type": "stakeholders"
}
}, - "requester": {
- "data": {
- "id": "3",
- "type": "stakeholders"
}
}, - "owner": {
- "data": {
- "id": "1",
- "type": "stakeholders"
}
}
},
}
}
Delete a Project by External ID
Deletes a project. You need to supply the unique project external identifier (the one you used when created the project).
Authorizations:
path Parameters
external_id required | string Example: 1234-5678-abcd-efgh Project external identifier. |
Responses
Request samples
- Curl
curl -H "X-Api-Key: ${COMPANY_KEY}" \ -H "X-User-Token: ${USER_TOKEN}" \ -H "X-User-Email: ${USER_EMAIL}" \ -H "Content-Type: application/vnd.api+json" \ -X DELETE \ "https://api.us.workdayspend.com/services/projects/v1/projects/SUP-1234/external_id"
Describe Project object
Returns a list of fields for the project object.
Authorizations:
Responses
Request samples
- Curl
curl -H "X-Api-Key: ${COMPANY_KEY}" \ -H "X-User-Token: ${USER_TOKEN}" \ -H "X-User-Email: ${USER_EMAIL}" \ -H "Content-Type: application/vnd.api+json" \ "https://api.us.workdayspend.com/services/projects/v1/projects/describe"
Response samples
- 200
{- "meta": {
- "count": 35
}, - "data": [
- {
- "id": "actual_end_date",
- "type": "project_fields",
- "attributes": {
- "name": "actual_end_date",
- "data_type": "string",
- "type_description": "Date",
- "custom_field": false
}
}, - {
- "id": "actual_spend_amount",
- "type": "project_fields",
- "attributes": {
- "name": "actual_spend_amount",
- "data_type": "number",
- "type_description": "Currency",
- "custom_field": false
}
}, - {
- "id": "actual_start_date",
- "type": "project_fields",
- "attributes": {
- "name": "actual_start_date",
- "data_type": "string",
- "type_description": "Date",
- "custom_field": false
}
}, - {
- "id": "approved_spend_amount",
- "type": "project_fields",
- "attributes": {
- "name": "approved_spend_amount",
- "data_type": "number",
- "type_description": "Currency",
- "custom_field": false
}
}, - {
- "id": "canceled_note",
- "type": "project_fields",
- "attributes": {
- "name": "canceled_note",
- "data_type": "string",
- "type_description": "Short Text",
- "custom_field": false
}
}, - {
- "id": "canceled_reason",
- "type": "project_fields",
- "attributes": {
- "name": "canceled_reason",
- "data_type": "string",
- "type_description": "Single Select",
- "custom_field": false
}
}, - {
- "id": "description",
- "type": "project_fields",
- "attributes": {
- "name": "description",
- "data_type": "string",
- "type_description": "Paragraph",
- "custom_field": false
}
}, - {
- "id": "estimated_savings_amount",
- "type": "project_fields",
- "attributes": {
- "name": "estimated_savings_amount",
- "data_type": "number",
- "type_description": "Currency",
- "custom_field": false
}
}, - {
- "id": "estimated_spend_amount",
- "type": "project_fields",
- "attributes": {
- "name": "estimated_spend_amount",
- "data_type": "number",
- "type_description": "Currency",
- "custom_field": false
}
}, - {
- "id": "external_id",
- "type": "project_fields",
- "attributes": {
- "name": "external_id",
- "data_type": "string",
- "type_description": "Short Text",
- "custom_field": false
}
}, - {
- "id": "needs_attention",
- "type": "project_fields",
- "attributes": {
- "name": "needs_attention",
- "data_type": "boolean",
- "type_description": "Checkbox",
- "custom_field": false
}
}, - {
- "id": "on_hold_note",
- "type": "project_fields",
- "attributes": {
- "name": "on_hold_note",
- "data_type": "string",
- "type_description": "Short Text",
- "custom_field": false
}
}, - {
- "id": "on_hold_reason",
- "type": "project_fields",
- "attributes": {
- "name": "on_hold_reason",
- "data_type": "string",
- "type_description": "Single Select",
- "custom_field": false
}
}, - {
- "id": "state",
- "type": "project_fields",
- "attributes": {
- "name": "state",
- "data_type": "string",
- "type_description": "Single Select",
- "custom_field": false
}
}, - {
- "id": "state_label",
- "type": "project_fields",
- "attributes": {
- "name": "state_label",
- "data_type": "string",
- "type_description": "Short Text",
- "custom_field": false
}
}, - {
- "id": "target_end_date",
- "type": "project_fields",
- "attributes": {
- "name": "target_end_date",
- "data_type": "string",
- "type_description": "Date",
- "custom_field": false
}
}, - {
- "id": "target_start_date",
- "type": "project_fields",
- "attributes": {
- "name": "target_start_date",
- "data_type": "string",
- "type_description": "Date",
- "custom_field": false
}
}, - {
- "id": "title",
- "type": "project_fields",
- "attributes": {
- "name": "title",
- "data_type": "string",
- "type_description": "Short Text",
- "custom_field": false
}
}, - {
- "id": "approved_at",
- "type": "project_fields",
- "attributes": {
- "name": "approved_at",
- "data_type": "string",
- "type_description": "Date",
- "custom_field": false
}
}, - {
- "id": "marked_as_needs_attention_at",
- "type": "project_fields",
- "attributes": {
- "name": "marked_as_needs_attention_at",
- "data_type": "string",
- "type_description": "Date",
- "custom_field": false
}
}, - {
- "id": "needs_attention_note",
- "type": "project_fields",
- "attributes": {
- "name": "needs_attention_note",
- "data_type": "string",
- "type_description": "Short Text",
- "custom_field": false
}
}, - {
- "id": "needs_attention_reason",
- "type": "project_fields",
- "attributes": {
- "name": "needs_attention_reason",
- "data_type": "string",
- "type_description": "Single Select",
- "custom_field": false
}
}, - {
- "id": "number",
- "type": "project_fields",
- "attributes": {
- "name": "number",
- "data_type": "integer",
- "type_description": "Integer",
- "custom_field": false
}
}, - {
- "id": "sent_for_approval_at",
- "type": "project_fields",
- "attributes": {
- "name": "sent_for_approval_at",
- "data_type": "string",
- "type_description": "Date",
- "custom_field": false
}
}, - {
- "id": "updated_at",
- "type": "project_fields",
- "attributes": {
- "name": "updated_at",
- "data_type": "string",
- "type_description": "Date",
- "custom_field": false
}
}, - {
- "id": "custom_field_1",
- "type": "project_fields",
- "attributes": {
- "custom_field": true,
- "data_type": "number",
- "name": "Custom Field Currency",
- "type_description": "Currency"
}
}, - {
- "attributes": {
- "custom_field": true,
- "data_type": "integer",
- "name": "Custom Field Integer",
- "type_description": "Integer"
}, - "type": "project_fields"
}, - {
- "attributes": {
- "custom_field": true,
- "data_type": "boolean",
- "name": "Custom Field Checkbox",
- "type_description": "Checkbox"
}, - "type": "project_fields"
}, - {
- "attributes": {
- "custom_field": true,
- "data_type": "number",
- "name": "Custom Field Decimal",
- "type_description": "Decimal"
}, - "type": "project_fields"
}, - {
- "attributes": {
- "custom_field": true,
- "data_type": "string",
- "name": "Custom Field Date",
- "type_description": "Date"
}, - "type": "project_fields"
}, - {
- "attributes": {
- "custom_field": true,
- "data_type": "string",
- "name": "Custom Field Select",
- "type_description": "Single Select"
}, - "type": "project_fields"
}, - {
- "attributes": {
- "custom_field": true,
- "data_type": "array",
- "name": "Custom Field Multiple",
- "type_description": "Multiple Select"
}, - "type": "project_fields"
}, - {
- "attributes": {
- "custom_field": true,
- "data_type": "string",
- "name": "Custom Field Short Text",
- "type_description": "Short Text"
}, - "type": "project_fields"
}, - {
- "attributes": {
- "custom_field": true,
- "data_type": "string",
- "name": "Custom Field Paragraph",
- "type_description": "Paragraph"
}, - "type": "project_fields"
}, - {
- "attributes": {
- "custom_field": true,
- "data_type": "string",
- "name": "Custom Field URL",
- "type_description": "URL"
}, - "type": "project_fields"
}
], - "links": { }
}
Use the project types API to query the project types in Workday Strategic Sourcing.
Project Types are used in the project resource. On POST and PATCH related endpoints for this resource a project_type_id can be added to set the project type. The project_type_id is a foreign key for the project_types resource's id.
type required | string (ProjectTypeType) Object type, should always be |
id required | integer (ProjectTypeId) Project type identifier string. |
object (ProjectTypeAttributes) Project type attributes. | |
object (ResourceLinks) List of related links. |
{- "type": "project_types",
- "id": 1,
- "attributes": {
- "name": "My Project Type",
- "shortcode": "PRJA"
}, - "links": {
- "self": "string"
}
}
List Project Types
Returns a list of all project types.
Authorizations:
Responses
Request samples
- Curl
curl -H "X-Api-Key: ${COMPANY_KEY}" \ -H "X-User-Token: ${USER_TOKEN}" \ -H "X-User-Email: ${USER_EMAIL}" \ -H "Content-Type: application/vnd.api+json" \ "https://api.us.workdayspend.com/services/projects/v1/project_types"
Response samples
- 200
{- "meta": {
- "count": 2
}, - "data": [
- {
- "type": "project_types",
- "id": "1",
- "attributes": {
- "name": "Project Type #1",
- "shortcode": "PRJA"
},
}, - {
- "type": "project_types",
- "id": "2",
- "attributes": {
- "name": "Project Type #2",
- "shortcode": "PRJB"
},
}
],
}
Get a Project Type
Retrieves the details of an existing project type.
Authorizations:
path Parameters
id required | integer Example: 1 Unique project type identifier. |
Responses
Request samples
- Curl
curl -H "X-Api-Key: ${COMPANY_KEY}" \ -H "X-User-Token: ${USER_TOKEN}" \ -H "X-User-Email: ${USER_EMAIL}" \ -H "Content-Type: application/vnd.api+json" \ "https://api.us.workdayspend.com/services/projects/v1/project_types/1"
Response samples
- 200
{- "data": {
- "type": "project_types",
- "id": "1",
- "attributes": {
- "name": "The Project Type",
- "shortcode": "PRJT"
},
}
}
Add Suppliers
Add suppliers to a project.
For best performance, we recommend inviting 10 or less suppliers in a single request.
Authorizations:
path Parameters
project_id required | integer Example: 1 Project identifier. |
Request Body schema: application/vnd.api+json
Array of objects (SupplierCompany) |
Responses
Request samples
- Payload
- Curl
{- "data": [
- {
- "type": "supplier_companies",
- "id": "5"
}, - {
- "type": "supplier_companies",
- "id": "11"
}
]
}
Remove Suppliers
Remove suppliers from a project.
For best performance, we recommend removing 10 or less suppliers in a single request.
Authorizations:
path Parameters
project_id required | integer Example: 1 Project identifier. |
Request Body schema: application/vnd.api+json
object (SupplierCompany) |
Responses
Request samples
- Payload
- Curl
{- "data": [
- {
- "type": "supplier_companies",
- "id": "5"
}, - {
- "type": "supplier_companies",
- "id": "11"
}
]
}
Add Suppliers using External IDs
Add suppliers to a project.
You must supply the unique project external identifier (the one you used when created the project).
You must supply the external identifiers of the supplier companies too.
For best performance, we recommend inviting 10 or less suppliers in a single request.
Authorizations:
path Parameters
project_external_id required | string Example: PRJ1 Project external identifier. |
Request Body schema: application/vnd.api+json
Array of objects (ExternalSupplierCompany) |
Responses
Request samples
- Payload
- Curl
{- "data": [
- {
- "type": "supplier_companies",
- "id": "SUP5"
}, - {
- "type": "supplier_companies",
- "id": "SUP11"
}
]
}
Remove Suppliers using External IDs
Remove suppliers from a project.
You must supply the unique project external identifier (the one you used when created the project).
You must supply the external identifiers of the supplier companies too.
For best performance, we recommend removing 10 or less suppliers in a single request.
Authorizations:
path Parameters
project_external_id required | string Example: PRJ1 Project external identifier. |
Request Body schema: application/vnd.api+json
Array of objects (ExternalSupplierCompany) |
Responses
Request samples
- Payload
- Curl
{- "data": [
- {
- "type": "supplier_companies",
- "id": "SUP5"
}, - {
- "type": "supplier_companies",
- "id": "SUP11"
}
]
}
Use the project supplier contacts API to manage project suppliers. This API provides 2 advantages over the project supplier companies APIs:
- It allows specifying the supplier contact to be associated/removed from a project.
- It allows specifying multiple contacts for a given supplier.
Add Suppliers using Contacts
Add suppliers to a project using supplier contacts.
For best performance, we recommend inviting 10 or less supplier contacts in a single request.
Authorizations:
path Parameters
project_id required | integer Example: 1 Project identifier. |
Request Body schema: application/vnd.api+json
Array of objects (SupplierContact) |
Responses
Request samples
- Payload
- Curl
{- "data": [
- {
- "type": "supplier_contacts",
- "id": "10"
}, - {
- "type": "supplier_contacts",
- "id": "17"
}
]
}
Remove Suppliers using Contacts
Remove suppliers from a project using supplier contacts.
For best performance, we recommend removing 10 or less supplier contacts in a single request.
Authorizations:
path Parameters
project_id required | integer Example: 1 Project identifier. |
Request Body schema: application/vnd.api+json
Array of objects (SupplierContact) |
Responses
Request samples
- Payload
- Curl
{- "data": [
- {
- "type": "supplier_contacts",
- "id": "10"
}, - {
- "type": "supplier_contacts",
- "id": "17"
}
]
}
Add Suppliers using Contacts External IDs
Add suppliers to a project using supplier contacts.
You must supply the unique project external identifier (the one you used when created the project).
You must supply the external identifiers of the supplier contacts too.
For best performance, we recommend inviting 10 or less supplier contacts in a single request.
Authorizations:
path Parameters
project_external_id required | string Example: PRJ1 Project external identifier. |
Request Body schema: application/vnd.api+json
Array of objects (ExternalSupplierContact) |
Responses
Request samples
- Payload
- Curl
{- "data": [
- {
- "type": "supplier_contacts",
- "id": "SUPC10"
}, - {
- "type": "supplier_contacts",
- "id": "SUPC17"
}
]
}
Remove Suppliers using Contacts External IDs
Remove suppliers from a project using supplier contacts.
You must supply the unique project external identifier (the one you used when created the project).
You must supply the external identifiers of the supplier contacts too.
For best performance, we recommend removing 10 or less supplier contacts in a single request.
Authorizations:
path Parameters
project_external_id required | string Example: PRJ1 Project external identifier. |
Request Body schema: application/vnd.api+json
Array of objects (ExternalSupplierContact) |
Responses
Request samples
- Payload
- Curl
{- "data": [
- {
- "type": "supplier_contacts",
- "id": "SUPC10"
}, - {
- "type": "supplier_contacts",
- "id": "SUPC17"
}
]
}