Workday Strategic Sourcing Payments 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/payments/v1 |
Sandbox | https://api.sandbox.us.workdayspend.com/services/payments/v1 |
EU Region
Environment | EU region Base URI |
---|---|
Production | https://api.eu.workdayspend.com/services/payments/v1 |
Sandbox | https://api.sandbox.eu.workdayspend.com/services/payments/v1 |
CA Region
Environment | CA region Base URI |
---|---|
Production | https://api.ca.workdayspend.com/services/payments/v1 |
Sandbox | https://api.sandbox.ca.workdayspend.com/services/payments/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
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 payment currencies API to create, update, and query the payment currencies in Workday Strategic Sourcing.
type required | string (PaymentCurrencyType) Object type, should always be |
id required | integer (PaymentCurrencyId) Payment currency identifier string. |
object (PaymentCurrencyAttributes) Payment currency attributes. |
{- "type": "payment_currencies",
- "id": 1,
- "attributes": {
- "alpha": "str",
- "numeric": "str",
- "external_id": "string"
}
}
List Payment Currencies
Returns a list of payment currencies.
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/payments/v1/payment_currencies"
Response samples
- 200
{- "data": [
- {
- "id": "1",
- "type": "payment_currencies",
- "attributes": {
- "alpha": "EUR",
- "numeric": "978",
- "external_id": "PAYCUR-1"
},
}, - {
- "id": "2",
- "type": "payment_currencies",
- "attributes": {
- "alpha": "UAH",
- "numeric": "980",
- "external_id": "PAYCUR-2"
},
}
],
}
Create a Payment Currency
Create a payment currency with given parameters.
Authorizations:
Request Body schema: application/vnd.api+json
object (PaymentCurrencyCreate) |
Responses
Request samples
- Payload
- Curl
{- "data": {
- "type": "payment_currencies",
- "attributes": {
- "alpha": "EUR",
- "numeric": "978",
- "external_id": "PAYCUR-1"
}
}
}
Response samples
- 201
{- "data": {
- "id": "1",
- "type": "payment_currencies",
- "attributes": {
- "alpha": "EUR",
- "numeric": "978",
- "external_id": "PAYCUR-1"
},
}
}
Update a Payment Currency
Updates the details of an existing payment currency. You need to supply the unique identifier that was returned upon payment currency creation.
Please note, that request body must include an id
attribute with the value of your payment currency
unique identifier (the same one you passed in the URL).
Authorizations:
path Parameters
id required | integer Example: 1 Unique payment currency identifier. |
Request Body schema: application/vnd.api+json
object (PaymentCurrencyUpdate) |
Responses
Request samples
- Payload
- Curl
{- "data": {
- "type": "payment_currencies",
- "id": "1",
- "attributes": {
- "alpha": "UAH",
- "numeric": "980",
- "external_id": "PAYCUR-UPD"
}
}
}
Response samples
- 200
- 409
{- "data": {
- "id": "1",
- "type": "payment_currencies",
- "attributes": {
- "alpha": "UAH",
- "numeric": "980",
- "external_id": "PAYCUR-UPD"
},
}
}
Delete a Payment Currency
Deletes a payment currency. You need to supply the unique payment currency identifier that was returned upon payment currency creation.
Authorizations:
path Parameters
id required | integer Example: 1 Unique payment currency 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/payments/v1/payment_currencies/1"
Update a Payment Currency by External ID
Updates the details of an existing payment currency. You need to supply the unique external identifier assigned to the payment currency on creation.
Please note, that request body must include an id
attribute with the value of your payment currency
unique identifier (the same one you passed in the URL).
Authorizations:
path Parameters
external_id required | string Example: PAYCUR Unique payment currency external identifier. |
Request Body schema: application/vnd.api+json
object (PaymentCurrencyUpdate) |
Responses
Request samples
- Payload
- Curl
{- "data": {
- "type": "payment_currencies",
- "id": "PAYCUR",
- "attributes": {
- "alpha": "UAH",
- "numeric": "980"
}
}
}
Response samples
- 200
{- "data": {
- "id": "1",
- "type": "payment_currencies",
- "attributes": {
- "alpha": "UAH",
- "numeric": "980",
- "external_id": "PAYCUR"
},
}
}
Delete a Payment Currency by External ID
Deletes a payment currency. You need to supply the unique payment currency external identifier assigned to the payment currency on creation.
Authorizations:
path Parameters
external_id required | string Example: PAYCUR Unique payment currency 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/payments/v1/payment_currencies/PAYCUR/external_id"
Use the payment types API to create, update, and query the payment types in Workday Strategic Sourcing.
type required | string (PaymentTypeType) Object type, should always be |
id required | integer (PaymentTypeId) Payment type identifier string. |
object (PaymentTypeAttributes) Payment type attributes. |
{- "type": "payment_types",
- "id": 1,
- "attributes": {
- "name": "string",
- "external_id": "string",
- "payment_method": "Cash"
}
}
```
List Payment Types
Returns a list of payment 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/payments/v1/payment_types"
Response samples
- 200
{- "data": [
- {
- "id": "1",
- "type": "payment_types",
- "attributes": {
- "name": "Payment Type #1",
- "external_id": "PAYTYPE-1",
- "payment_method": "Cash"
},
}, - {
- "id": "2",
- "type": "payment_types",
- "attributes": {
- "name": "Payment Type #2",
- "external_id": "PAYTYPE-2",
- "payment_method": "Check"
},
}
],
}
Create a Payment Type
Create a payment type with given parameters.
Authorizations:
Request Body schema: application/vnd.api+json
object (PaymentTypeCreate) |
Responses
Request samples
- Payload
- Curl
{- "data": {
- "type": "payment_types",
- "attributes": {
- "name": "Payment Type #1",
- "external_id": "PAYTYPE-1",
- "payment_method": "Cash"
}
}
}
Response samples
- 201
{- "data": {
- "id": "1",
- "type": "payment_types",
- "attributes": {
- "name": "Payment Type #1",
- "external_id": "PAYTYPE-1",
- "payment_method": "Cash"
},
}
}
Update a Payment Type
Updates the details of an existing payment type. You need to supply the unique identifier that was returned upon payment type creation.
Please note, that request body must include an id
attribute with the value of your payment type
unique identifier (the same one you passed in the URL).
Authorizations:
path Parameters
id required | integer Example: 1 Unique payment type identifier. |
Request Body schema: application/vnd.api+json
object (PaymentTypeUpdate) |
Responses
Request samples
- Payload
- Curl
{- "data": {
- "type": "payment_types",
- "id": "1",
- "attributes": {
- "name": "Payment Type Updated",
- "external_id": "PAYTYPE-UPD",
- "payment_method": "Cash"
}
}
}
Response samples
- 200
- 409
{- "data": {
- "id": "1",
- "type": "payment_types",
- "attributes": {
- "name": "Payment Type Updated",
- "external_id": "PAYTYPE-UPD",
- "payment_method": "Cash"
},
}
}
Delete a Payment Type
Deletes a payment type. You need to supply the unique payment type identifier that was returned upon payment type creation.
Authorizations:
path Parameters
id required | integer Example: 1 Unique payment 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" \ -X DELETE \ "https://api.us.workdayspend.com/services/payments/v1/payment_types/1"
Update a Payment Type by External ID
Updates the details of an existing payment type. You need to supply the unique external identifier assigned to the payment type on creation.
Please note, that request body must include an id
attribute with the value of your payment type
unique identifier (the same one you passed in the URL).
Authorizations:
path Parameters
external_id required | integer Example: PAYTYPE Unique payment type external identifier. |
Request Body schema: application/vnd.api+json
object (PaymentTypeUpdate) |
Responses
Request samples
- Payload
- Curl
{- "data": {
- "type": "payment_types",
- "id": "PAYTYPE",
- "attributes": {
- "name": "Payment Type Updated",
- "payment_method": "Cash"
}
}
}
Response samples
- 200
{- "data": {
- "id": "1",
- "type": "payment_types",
- "attributes": {
- "name": "Payment Type Updated",
- "external_id": "PAYTYPE",
- "payment_method": "Cash"
},
}
}
Delete a Payment Type by External ID
Deletes a payment type. You need to supply the unique payment type external identifier assigned to the payment type on creation.
Authorizations:
path Parameters
external_id required | integer Example: PAYTYPE Unique payment type 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/payments/v1/payment_types/PAYTYPE/external_id"
Use the payment terms API to create, update, and query the payment terms in Workday Strategic Sourcing.
type required | string (PaymentTermType) Object type, should always be |
id required | integer (PaymentTermId) Payment term identifier string. |
object (PaymentTermAttributes) Payment term attributes. |
{- "type": "payment_terms",
- "id": 1,
- "attributes": {
- "name": "string",
- "external_id": "string"
}
}
List Payment Terms
Returns a list of payment terms.
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/payments/v1/payment_terms"
Response samples
- 200
{- "data": [
- {
- "id": "1",
- "type": "payment_terms",
- "attributes": {
- "name": "Payment Term #1",
- "external_id": "PAYTERM-1"
},
}, - {
- "id": "2",
- "type": "payment_terms",
- "attributes": {
- "name": "Payment Term #2",
- "external_id": "PAYTERM-2"
},
}
],
}
Create a Payment Term
Create a payment term with given parameters.
Authorizations:
Request Body schema: application/vnd.api+json
object (PaymentTermCreate) |
Responses
Request samples
- Payload
- Curl
{- "data": {
- "type": "payment_terms",
- "attributes": {
- "name": "Payment Term #1",
- "external_id": "PAYTERM-1"
}
}
}
Response samples
- 201
{- "data": {
- "id": "1",
- "type": "payment_terms",
- "attributes": {
- "name": "Payment Term #1",
- "external_id": "PAYTERM-1"
},
}
}
Update a Payment Term
Updates the details of an existing payment term. You need to supply the unique identifier that was returned upon payment term creation.
Please note, that request body must include an id
attribute with the value of your payment term
unique identifier (the same one you passed in the URL).
Authorizations:
path Parameters
id required | integer Example: 1 Unique payment term identifier. |
Request Body schema: application/vnd.api+json
object (PaymentTermUpdate) |
Responses
Request samples
- Payload
- Curl
{- "data": {
- "type": "payment_terms",
- "id": "1",
- "attributes": {
- "name": "Payment Term Updated",
- "external_id": "PAYTERM-UPD"
}
}
}
Response samples
- 200
- 409
{- "data": {
- "id": "1",
- "type": "payment_terms",
- "attributes": {
- "name": "Payment Term Updated",
- "external_id": "PAYTERM-UPD"
},
}
}
Delete a Payment Term
Deletes a payment term. You need to supply the unique payment term identifier that was returned upon payment term creation.
Authorizations:
path Parameters
id required | integer Example: 1 Unique payment term 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/payments/v1/payment_terms/1"
Update a Payment Term by External ID
Updates the details of an existing payment term. You need to supply the unique external identifier assigned to the payment term on creation.
Please note, that request body must include an id
attribute with the value of your payment term
unique identifier (the same one you passed in the URL).
Authorizations:
path Parameters
external_id required | integer Example: PAYTERM Unique payment term external identifier. |
Request Body schema: application/vnd.api+json
object (PaymentTermUpdate) |
Responses
Request samples
- Payload
- Curl
{- "data": {
- "type": "payment_terms",
- "id": "PAYTERM",
- "attributes": {
- "name": "Payment Term Updated"
}
}
}
Response samples
- 200
{- "data": {
- "id": "1",
- "type": "payment_terms",
- "attributes": {
- "name": "Payment Term Updated",
- "external_id": "PAYTERM"
},
}
}
Delete a Payment Term by External ID
Deletes a payment term. You need to supply the unique payment term external identifier assigned to the payment term on creation.
Authorizations:
path Parameters
external_id required | integer Example: PAYTERM Unique payment term 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/payments/v1/payment_terms/PAYTERM/external_id"