Scout RFP (Workday Strategic Sourcing) supplier_contacts API
## Supplier Contact Object
## Supplier Contact Object
openapi: 3.0.2
info:
title: Workday Strategic Sourcing attachments supplier_contacts API
version: '1.0'
description: '<span id="section/Authentication/api_key" data-section-id="section/Authentication/api_key"></span>
<span id="section/Authentication/user_token" data-section-id="section/Authentication/user_token"></span>
<span id="section/Authentication/user_email" data-section-id="section/Authentication/user_email"></span>
'
servers:
- url: https://api.us.workdayspend.com/services/attachments/v1
description: Production Server
- url: https://api.sandbox.us.workdayspend.com/services/attachments/v1
description: Sandbox Server
security:
- api_key: []
user_token: []
user_email: []
tags:
- name: supplier_contacts
x-displayName: Supplier Contacts
description: '## Supplier Contact Object
<SchemaDefinition schemaRef="#/components/schemas/SupplierContact" exampleRef="#/components/examples/SupplierContact" showReadOnly={true} showWriteOnly={true} />
'
paths:
/supplier_companies/{company_id}/supplier_contacts:
get:
tags:
- supplier_contacts
description: 'Retrieves the list of contacts for an existing supplier company.
'
operationId: List Supplier Contacts
summary: List Supplier Contacts
parameters:
- name: company_id
in: path
description: Unique supplier company identifier.
required: true
schema:
type: integer
example: 1
- name: include
in: query
schema:
$ref: '#/components/schemas/SupplierContactRelatedResources'
description: 'To reduce the number of HTTP requests, related resources can be requested along with the
requested primary resources. Such responses are called "compound documents". In a compound
document, all included resources will be represented as an array of resource objects in a
top-level `included` member.
The value of the `include` parameter must be a comma-separated list of relationships from
the list of available relationships.
```
/supplier_contacts?include=supplier_company
```
In the response, relationships will be represented as normal linkage objects (containing
`id` and `type`), and related resource details will be presented in the `included`
section as resource objects (with `attributes` that have a corresponding `external_id`).
'
- name: filter
in: query
description: 'Filter supplier contacts by multiple criteria. Only one filter per attribute is supported.
For best performance, we recommend 5 or less filters.
'
schema:
$ref: '#/components/schemas/SupplierContactInputFilter'
responses:
'200':
description: OK
content:
application/vnd.api+json:
schema:
type: object
allOf:
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/SupplierContact'
- $ref: '#/components/schemas/Pagination'
examples:
default response:
$ref: '#/components/examples/index_response-2'
compound response:
$ref: '#/components/examples/index_compound_response-2'
'401':
description: Unauthorized
x-codeSamples:
- label: Curl
source: "curl -H \"X-Api-Key: ${COMPANY_KEY}\" \\\n -H \"X-User-Token: ${USER_TOKEN}\" \\\n -H \"X-User-Email: ${USER_EMAIL}\" \\\n -H \"Content-Type: application/vnd.api+json\" \\\n \"https://api.us.workdayspend.com/services/suppliers/v1/supplier_companies/1/supplier_contacts\"\n"
/supplier_contacts:
post:
tags:
- supplier_contacts
description: "Create a supplier contact with given attributes.\n\n## Linked Resources\n\nThe supplier company should exist prior to being linked to the supplier contact. It can be\nreferenced by Workday Strategic Sourcing identifier, or by external ID; in the latter case, the relationship\nname is used with prefix `external_`. For example, a supplier company with Workday Strategic Sourcing ID `\"1\"` and\nexternal ID `\"SCM-1\"` can be used to initialize `supplier_company`:\n\n```json\n{\n \"supplier_company\": {\n \"data\" {\n \"id\": \"1\",\n \"type\": \"supplier_companies\"\n }\n }\n}\n```\n\n```json\n{\n \"external_supplier_company\": {\n \"data\" {\n \"id\": \"SCM-1\",\n \"type\": \"supplier_companies\"\n }\n }\n}\n```\n"
operationId: Create a Supplier Contact
summary: Create a Supplier Contact
parameters:
- name: include
in: query
schema:
$ref: '#/components/schemas/SupplierContactRelatedResources'
description: 'Use the `include` parameter to request a primary resource `supplier company`.
'
requestBody:
content:
application/vnd.api+json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/SupplierContactCreate'
examples:
with_supplier_company:
$ref: '#/components/examples/create_with_supplier_company_request'
with_external_supplier_company:
$ref: '#/components/examples/create_with_external_supplier_company_request'
responses:
'201':
description: OK
content:
application/vnd.api+json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/SupplierContact'
examples:
default response:
$ref: '#/components/examples/create_response-2'
compound response:
$ref: '#/components/examples/create_compound_response-2'
'401':
description: Unauthorized
x-codeSamples:
- label: Curl
source: "curl -H \"X-Api-Key: ${COMPANY_KEY}\" \\\n -H \"X-User-Token: ${USER_TOKEN}\" \\\n -H \"X-User-Email: ${USER_EMAIL}\" \\\n -H \"Content-Type: application/vnd.api+json\" \\\n -X POST \\\n -d '{\"data\":{\"type\":\"supplier_contacts\",\"attributes\":{\"name\":\"My Supplier\"}}}' \\\n \"https://api.us.workdayspend.com/services/suppliers/v1/supplier_contacts\"\n"
/supplier_contacts/{id}:
get:
tags:
- supplier_contacts
description: 'Retrieves the details of an existing supplier contact.
'
operationId: Get a Supplier Contact
summary: Get a Supplier Contact
parameters:
- name: id
in: path
description: Unique supplier contact identifier.
required: true
schema:
type: integer
example: 1
- name: include
in: query
schema:
$ref: '#/components/schemas/SupplierContactRelatedResources'
description: 'Use the `include` parameter to request a primary resource `supplier company`.
'
responses:
'200':
description: OK
content:
application/vnd.api+json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/SupplierContact'
examples:
default response:
$ref: '#/components/examples/show_response-2'
compound response:
$ref: '#/components/examples/show_compound_response'
'401':
description: Unauthorized
'404':
description: Not Found
x-codeSamples:
- label: Curl
source: "curl -H \"X-Api-Key: ${COMPANY_KEY}\" \\\n -H \"X-User-Token: ${USER_TOKEN}\" \\\n -H \"X-User-Email: ${USER_EMAIL}\" \\\n -H \"Content-Type: application/vnd.api+json\" \\\n \"https://api.us.workdayspend.com/services/suppliers/v1/supplier_contacts/1\"\n"
patch:
tags:
- supplier_contacts
description: 'Updates the details of an existing supplier contact. You need to supply the unique supplier
company and contact identifiers.
Please note, that request body must include an `id` attribute with the value of your supplier
contact unique identifier (the same one you passed in the URL).
'
operationId: Update a Supplier Contact
summary: Update a Supplier Contact
parameters:
- name: id
in: path
description: Unique supplier contact identifier.
required: true
schema:
type: integer
example: 1
- name: include
in: query
schema:
$ref: '#/components/schemas/SupplierContactRelatedResources'
description: 'Use the `include` parameter to request a primary resource `supplier company`.
'
requestBody:
content:
application/vnd.api+json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/SupplierContactUpdate'
examples:
success:
$ref: '#/components/examples/update_request-2'
responses:
'200':
description: OK
content:
application/vnd.api+json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/SupplierContact'
examples:
default response:
$ref: '#/components/examples/update_response-2'
compound response:
$ref: '#/components/examples/update_compound_response-2'
'401':
description: Unauthorized
'404':
description: Not Found
'409':
description: Conflict
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Errors'
examples:
invalid_type:
summary: Missing or invalid 'type' specified, expected 'supplier_contacts'
description: 'Returns error due to invalid `type` parameter.
'
value:
errors:
- detail: Missing or invalid 'type' specified, expected 'supplier_contacts'
x-codeSamples:
- label: Curl
source: "curl -H \"X-Api-Key: ${COMPANY_KEY}\" \\\n -H \"X-User-Token: ${USER_TOKEN}\" \\\n -H \"X-User-Email: ${USER_EMAIL}\" \\\n -H \"Content-Type: application/vnd.api+json\" \\\n -X PATCH \\\n -d '{\"data\":{\"type\":\"supplier_contacts\",\"id\":\"1\",\"attributes\":{\"segmentation_status\": \"out_of_compliance\"}}}' \\\n \"https://api.us.workdayspend.com/services/suppliers/v1/supplier_contacts/1\"\n"
delete:
tags:
- supplier_contacts
description: 'Deletes a supplier contact.
'
operationId: Delete a Supplier Contact
summary: Delete a Supplier Contact
parameters:
- name: id
in: path
description: Unique supplier contact identifier.
required: true
schema:
type: integer
example: 1
responses:
'204':
description: OK
'401':
description: Unauthorized
'404':
description: Not Found
x-codeSamples:
- label: Curl
source: "curl -H \"X-Api-Key: ${COMPANY_KEY}\" \\\n -H \"X-User-Token: ${USER_TOKEN}\" \\\n -H \"X-User-Email: ${USER_EMAIL}\" \\\n -H \"Content-Type: application/vnd.api+json\" \\\n -X DELETE \\\n \"https://api.us.workdayspend.com/services/suppliers/v1/supplier_contacts/1/external_id\"\n"
/supplier_companies/{external_id}/supplier_contacts/external_id:
get:
tags:
- supplier_contacts
description: 'Retrieves the list of contacts for an existing supplier company by Supplier Company External ID.
'
operationId: List Supplier Contacts by Supplier Company External ID
summary: List Supplier Contacts by Supplier Company External ID
parameters:
- name: external_id
in: path
description: Supplier company external identifier.
required: true
schema:
type: string
example: 1234-5678-abcd-efgh
- name: include
in: query
schema:
$ref: '#/components/schemas/SupplierContactRelatedResources'
description: 'To reduce the number of HTTP requests, related resources can be requested along with the
requested primary resources. Such responses are called "compound documents". In a compound
document, all included resources will be represented as an array of resource objects in a
top-level `included` member.
The value of the `include` parameter must be a comma-separated list of relationships from
the list of available relationships.
```
/supplier_contacts?include=supplier_company
```
In the response, relationships will be represented as normal linkage objects (containing
`id` and `type`), and related resource details will be presented in the `included`
section as resource objects (with `attributes` that have a corresponding `external_id`).
'
- name: filter
in: query
description: 'Filter supplier contacts by multiple criteria. Only one filter per attribute is supported.
For best performance, we recommend 5 or less filters.
'
schema:
$ref: '#/components/schemas/SupplierContactInputFilter'
responses:
'200':
description: OK
content:
application/vnd.api+json:
schema:
type: object
allOf:
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/SupplierContact'
- $ref: '#/components/schemas/Pagination'
examples:
default response:
$ref: '#/components/examples/external_index_response'
compound response:
$ref: '#/components/examples/external_index_compound_response'
'401':
description: Unauthorized
x-codeSamples:
- label: Curl
source: "curl -H \"X-Api-Key: ${COMPANY_KEY}\" \\\n -H \"X-User-Token: ${USER_TOKEN}\" \\\n -H \"X-User-Email: ${USER_EMAIL}\" \\\n -H \"Content-Type: application/vnd.api+json\" \\\n \"https://api.us.workdayspend.com/services/suppliers/v1/supplier_companies/1234-5678-abcd-efgh/supplier_contacts/external_id\"\n"
/supplier_contacts/{external_id}/external_id:
get:
tags:
- supplier_contacts
description: 'Retrieves the details of an existing supplier contact by Supplier Contact External ID.
'
operationId: Get a Supplier Contact by External ID
summary: Get a Supplier Contact by External ID
parameters:
- name: external_id
in: path
description: Unique supplier contact identifier.
required: true
schema:
type: string
example: CNT-17
- name: include
in: query
schema:
$ref: '#/components/schemas/SupplierContactRelatedResources'
description: 'Use the `include` parameter to request a primary resource `supplier company`.
'
responses:
'200':
description: OK
content:
application/vnd.api+json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/SupplierContact'
examples:
default response:
$ref: '#/components/examples/external_show_response-2'
compound response:
$ref: '#/components/examples/external_show_compound_response'
'401':
description: Unauthorized
'404':
description: Not Found
x-codeSamples:
- label: Curl
source: "curl -H \"X-Api-Key: ${COMPANY_KEY}\" \\\n -H \"X-User-Token: ${USER_TOKEN}\" \\\n -H \"X-User-Email: ${USER_EMAIL}\" \\\n -H \"Content-Type: application/vnd.api+json\" \\\n \"https://api.us.workdayspend.com/services/suppliers/v1/supplier_contacts/CNT-17/external_id\"\n"
patch:
tags:
- supplier_contacts
description: 'Updates the details of an existing supplier contact by Supplir Contact External ID.
Please note, that request body must include an `id` attribute with the value of your supplier
contact unique identifier (the same one you passed in the URL).
'
operationId: Update a Supplier Contact by External ID
summary: Update a Supplier Contact by External ID
parameters:
- name: external_id
in: path
description: Unique supplier contact external identifier.
required: true
schema:
type: string
example: CNT-17
- name: include
in: query
schema:
$ref: '#/components/schemas/SupplierContactRelatedResources'
description: 'Use the `include` parameter to request a primary resource `supplier company`.
'
requestBody:
content:
application/vnd.api+json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/SupplierContactUpdate'
examples:
success:
$ref: '#/components/examples/external_update_request-2'
responses:
'200':
description: OK
content:
application/vnd.api+json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/SupplierContact'
examples:
default response:
$ref: '#/components/examples/external_update_response-2'
compound response:
$ref: '#/components/examples/external_update_compound_response'
'401':
description: Unauthorized
'404':
description: Not Found
x-codeSamples:
- label: Curl
source: "curl -H \"X-Api-Key: ${COMPANY_KEY}\" \\\n -H \"X-User-Token: ${USER_TOKEN}\" \\\n -H \"X-User-Email: ${USER_EMAIL}\" \\\n -H \"Content-Type: application/vnd.api+json\" \\\n -X PATCH \\\n -d '{\"data\":{\"type\":\"supplier_contacts\",\"id\":\"1\",\"attributes\":{\"segmentation_status\": \"out_of_compliance\"}}}' \\\n \"https://api.us.workdayspend.com/services/suppliers/v1/supplier_contacts/CNT-17/external_id\"\n"
delete:
tags:
- supplier_contacts
description: 'Deletes a supplier contact by Supplier Contact External ID.
'
operationId: Delete a Supplier Contact by External ID
summary: Delete a Supplier Contact by External ID
parameters:
- name: external_id
in: path
description: Unique supplier contact identifier.
required: true
schema:
type: string
example: CNT-17
responses:
'204':
description: OK
'401':
description: Unauthorized
'404':
description: Not Found
x-codeSamples:
- label: Curl
source: "curl -H \"X-Api-Key: ${COMPANY_KEY}\" \\\n -H \"X-User-Token: ${USER_TOKEN}\" \\\n -H \"X-User-Email: ${USER_EMAIL}\" \\\n -H \"Content-Type: application/vnd.api+json\" \\\n -X DELETE \\\n \"https://api.us.workdayspend.com/services/suppliers/v1/supplier_contacts/CNT-17/external_id\"\n"
components:
schemas:
SupplierContact:
allOf:
- $ref: '#/components/schemas/SupplierContactBase'
- type: object
properties:
attributes:
$ref: '#/components/schemas/SupplierContactAttributes'
relationships:
$ref: '#/components/schemas/SupplierContactRelationshipCreate'
links:
$ref: '#/components/schemas/ResourceLinks'
SupplierContactAttributes:
type: object
description: Supplier contact attributes.
required:
- name
- email
properties:
name:
type: string
maxLength: 255
description: Supplier contact name.
first_name:
type: string
maxLength: 255
description: Supplier contact first name. Can be used along with a "last_name" (thereby "name" can be skipped).
last_name:
type: string
maxLength: 255
description: Supplier contact last name. Can be used along with a "first_name" (thereby "name" can be skipped).
email:
type: string
format: email
maxLength: 255
description: Supplier contact email.
example: supplier.contact1@example.com
notes:
type: string
description: Supplier contact notes.
phone_number:
deprecated: true
type: string
format: phone
description: Supplier contact phone number. Deprecated in favour of phones relation.
example: 555-555-5555
job_title:
type: string
description: Supplier contact job title.
external_id:
type: string
description: Supplier contact ID in your internal database.
is_suggested:
type: boolean
description: The supplier contact was suggested by a team member, but not yet approved.
updated_at:
type: string
format: date-time
readOnly: true
description: Last modification date.
example: '2019-10-29T21:28:46.790Z'
SupplierContactRelationshipUpdate:
type: object
description: Supplier contact relationships.
required:
- supplier_company
properties:
contact_types:
type: object
description: List of contact types for a contact.
properties:
data:
type: array
items:
$ref: '#/components/schemas/ContactTypeBase'
phones:
type: object
description: List of phones for a contact.
properties:
data:
type: array
items:
$ref: '#/components/schemas/PhoneBase'
SupplierContactId:
type: integer
description: Supplier contact identifier string.
example: 1
PaginationLinks:
type: object
description: List of related links.
allOf:
- $ref: '#/components/schemas/SelfLink'
- $ref: '#/components/schemas/NextPageLink'
- $ref: '#/components/schemas/PrevPageLink'
PhoneType:
type: string
description: Object type, should always be `phones`.
example: phones
SupplierContactRelatedResources:
type: string
enum:
- supplier_company
- contact_types
- phones
PrevPageLink:
type: object
properties:
prev:
type: string
format: url
description: Link to the previous results page.
nullable: true
deprecated: true
ContactTypeType:
type: string
description: Object type, should always be `contact_types`.
example: contact_types
SupplierContactCreate:
type: object
required:
- type
properties:
type:
$ref: '#/components/schemas/SupplierContactType'
attributes:
$ref: '#/components/schemas/SupplierContactAttributes'
relationships:
anyOf:
- $ref: '#/components/schemas/SupplierContactRelationshipCreate'
- $ref: '#/components/schemas/SupplierContactExternalRelationshipCreate'
SupplierContactUpdate:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/SupplierContactType'
id:
$ref: '#/components/schemas/SupplierContactId'
attributes:
$ref: '#/components/schemas/SupplierContactAttributes'
relationships:
anyOf:
- $ref: '#/components/schemas/SupplierContactRelationshipUpdate'
- $ref: '#/components/schemas/SupplierContactExternalRelationshipUpdate'
Pagination:
type: object
properties:
meta:
type: object
description: Result set metadata.
properties:
count:
type: integer
description: Number of pages in the result set.
links:
$ref: '#/components/schemas/PaginationLinks'
Error:
type: object
properties:
detail:
type: string
description: A human-readable explanation specific to this occurrence of the problem.
SupplierContactType:
type: string
description: Object type, should always be `supplier_contacts`.
example: supplier_contacts
SupplierContactInputFilter:
type: object
properties:
updated_at_from:
type: string
format: date-time
description: Return supplier contacts updated on or after the specified timestamp.
example: '2019-10-29T21:28:46.790Z'
updated_at_to:
type: string
format: date-time
description: Return supplier contacts updated on or before the specified timestamp.
example: '2019-10-29T21:28:46.790Z'
name_contains:
type: string
description: Return supplier contacts with a specific `name`.
example: test
name_not_contains:
type: string
description: Return supplier contacts with a name that does not contain a given value.
example: test
first_name_contains:
type: string
description: Return supplier contacts with a specific `first_name`.
example: test
first_name_not_contains:
type: string
description: Return supplier contacts with a first name that does not contain a given value.
example: test
last_name_contains:
type: string
description: Return supplier contacts with a specific `last_name`.
example: test
last_name_not_contains:
type: string
description: Return supplier contacts with a last name that does not contain a given value.
example: test
email_equals:
type: string
description: Find supplier contacts by a specific email.
example: test@gmail.com
email_not_equals:
type: string
description: Find supplier contacts excluding the one with the specified email.
example: test@gmail.com
email_contains:
type: string
description: Find supplier contacts by a specific email.
example: gmail.com
email_not_contains:
type: string
description: Find supplier contacts excluding the one with the specified email.
example: gmail.com
phone_number_contains:
type: string
description: Find supplier contacts by a specific phone.
example: 555
phone_number_not_contains:
type: string
description: Find supplier contacts excluding the one with the specified phone.
example: 555
phone_number_empty:
type: boolean
description: Return supplier companies with `phone` blank.
example: true
phone_number_not_empty:
type: boolean
description: Return supplier companies with non-blank `phone`.
example: false
job_title_contains:
type: string
description: Find supplier contacts by a specific job title.
example: test
job_title_not_contains:
type: string
description: Find supplier contacts excluding the one with the specified job title.
example: test
job_title_empty:
type: boolean
description: Return supplier companies with `job_title` blank.
example: true
job_title_not_empty:
type: boolean
description: Return supplier companies with non-blank `job_title`.
example: false
notes_contains:
type: string
description: Find supplier contacts by a specific notes.
example: test
notes_not_contains:
type: string
description: Find supplier contacts excluding the one with the specified notes.
example: test
notes_empty:
type: boolean
description: Return supplier companies with `notes` blank.
example: true
notes_not_empty:
type: boolean
description: Return supplier companies with non-blank `notes`.
example: false
is_suggested_equals:
type: boolean
description: Find only suggested supplier contacts.
example: true
is_suggested_not_equals:
type: boolean
description: Find supplier contacts that were approved.
example: true
external_id_empty:
type: boolean
description: Return supplier contacts with `external_id` blank.
example: true
external_id_not_empty:
type: boolean
description: Return supplier contacts with non-blank `external_id`.
example: false
external_id_equals:
type: string
description: Find supplier contacts by a specific external ID.
example: CNT-17
external_id_not_equals:
type: string
description: Find supplier contacts excluding the one with the specified external ID.
example: CNT-17
SupplierCompanyId:
type: integer
description: Supplier company identifier string.
example: 1
NextPageLink:
type: object
properties:
next:
type: string
format: url
description: Link to the next results page.
nullable: true
SelfLink:
type: object
properties:
self:
type: string
format: url
description: Normalized link to the resource.
SupplierContactExternalRelationshipUpdate:
type: object
description: Supplier contact relationship with ID containing the `external_id`.
properties:
external_contact_types:
description: Contact types referenced by external ID.
type: object
properties:
data:
$ref: '#/components/schemas/ContactTypeBase'
phones:
description: List of phones for a contact. Limited to 1 for now.
type: object
properties:
data:
$ref: '#/components/schemas/PhoneBase'
ContactTypeBase:
title: Field
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/ContactTypeType'
id:
$ref: '#/components/schemas/ContactTypeId'
ResourceLinks:
type: object
description: List of related links.
allOf:
- $ref: '#/components/schemas/SelfLink'
PhoneBase:
title: Field
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/PhoneType'
id:
$ref: '#/components/schemas/PhoneId'
ContactTypeId:
type: integer
description: Contact type identifier string.
example: 1
SupplierCompanyBase:
title: SupplierCompany
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/SupplierCompanyType'
id:
$ref: '#/components/schemas/SupplierCompanyId'
SupplierContactBase:
title: SupplierContact
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/SupplierContactType'
# --- truncated at 32 KB (57 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/scoutrfp/refs/heads/main/openapi/scoutrfp-supplier-contacts-api-openapi.yml