openapi: 3.0.3 info: title: JAGGAER ASO Customer Host Entity Service Async Contacts API description: 'The Customer Host Entity Service (CHES) API provides system-to-system REST endpoints for managing customer hosts, users, events, and templates within the JAGGAER Advanced Sourcing Optimizer (ASO) platform. It enables creation and retrieval of sourcing events, template management, user administration, and location-based rate structure queries using OAuth 2.0 bearer tokens combined with API key authentication. ' version: v26.0.0.4 contact: name: JAGGAER Support url: https://www.jaggaer.com/support x-api-id: jaggaer-aso-ches servers: - url: https://ches.aso-api.jaggaer.com description: JAGGAER ASO CHES Production Server security: - bearerAuth: [] apiKeyHeader: [] tags: - name: Contacts description: Event contact management paths: /event/{event-id}/apiContact/{contact-id}: get: operationId: getContact summary: Contact description: Retrieves a specific contact for the given sourcing event. tags: - Contacts parameters: - $ref: '#/components/parameters/eventId' - $ref: '#/components/parameters/contactId' responses: '200': description: Success; returns contact details. content: application/json: schema: $ref: '#/components/schemas/ContactResponse' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' delete: operationId: deleteContact summary: Delete Contact description: Deletes a specific contact from the given sourcing event. tags: - Contacts parameters: - $ref: '#/components/parameters/eventId' - $ref: '#/components/parameters/contactId' responses: '204': description: Success; contact deleted. '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /event/{event-id}/user/{user-id}/apiContact/{contact-id}: patch: operationId: updateContactByUser summary: Contact by User description: 'Updates a specific contact for the given sourcing event scoped to the specified user. ' tags: - Contacts parameters: - $ref: '#/components/parameters/eventId' - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/contactId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ContactUpdateRequest' responses: '200': description: Success; contact updated. content: application/json: schema: $ref: '#/components/schemas/ContactResponse' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /event/{event-id}/user/{user-id}/apiContacts: patch: operationId: updateContactsByUser summary: Contacts by User (Bulk Update) description: 'Bulk updates contacts for the given event scoped to the specified user. ' tags: - Contacts parameters: - $ref: '#/components/parameters/eventId' - $ref: '#/components/parameters/userId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ContactBulkUpdateRequest' responses: '200': description: Success; contacts updated. content: application/json: schema: $ref: '#/components/schemas/ContactListResponse' '401': $ref: '#/components/responses/Unauthorized' '422': $ref: '#/components/responses/UnprocessableEntity' /event/{event-id}/supplier/{supplier-id}/apiContacts: get: operationId: getContactsBySupplier summary: Contacts by Supplier description: 'Retrieves all contacts associated with the specified supplier for the given sourcing event. ' tags: - Contacts parameters: - $ref: '#/components/parameters/eventId' - $ref: '#/components/parameters/supplierId' responses: '200': description: Success; returns contacts for the supplier. content: application/json: schema: $ref: '#/components/schemas/ContactListResponse' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /event/{event-id}/user/{user-id}/supplier/{supplier-id}/apiContacts: post: operationId: createContactByUserAndSupplier summary: Contacts by User and Supplier description: 'Creates contacts for the given event scoped to the specified user and supplier. ' tags: - Contacts parameters: - $ref: '#/components/parameters/eventId' - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/supplierId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ContactCreateRequest' responses: '200': description: Success; contact(s) created. content: application/json: schema: $ref: '#/components/schemas/ContactListResponse' '401': $ref: '#/components/responses/Unauthorized' '422': $ref: '#/components/responses/UnprocessableEntity' components: responses: UnprocessableEntity: description: 'The request was syntactically valid but could not be processed due to validation errors. ' content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Unauthorized: description: 'Authentication failed. Ensure a valid OAuth 2.0 bearer token and API key are provided. ' NotFound: description: The requested resource was not found. schemas: ContactBulkUpdateRequest: type: object description: Request body for bulk updating event contacts. properties: contacts: type: array items: $ref: '#/components/schemas/ContactUpdateRequest' ContactUpdateRequest: type: object description: Request body for updating an event contact. properties: firstName: type: string lastName: type: string email: type: string format: email ContactCreateRequest: type: object description: Request body for creating an event contact. properties: firstName: type: string lastName: type: string email: type: string format: email ErrorResponse: type: object description: Error response with validation details. properties: statuses: type: object description: Map of status codes to arrays of status detail objects. additionalProperties: type: array items: type: object additionalProperties: type: string ContactResponse: type: object description: Event contact details. properties: contactId: type: integer firstName: type: string lastName: type: string email: type: string format: email supplierId: type: integer ContactListResponse: type: object description: List of event contacts. properties: contacts: type: array items: $ref: '#/components/schemas/ContactResponse' parameters: eventId: name: event-id in: path required: true description: Identifier for the sourcing event. schema: type: integer userId: name: user-id in: path required: true description: Identifier for the user. schema: type: integer contactId: name: contact-id in: path required: true description: Identifier for the contact. schema: type: integer supplierId: name: supplier-id in: path required: true description: Identifier for the supplier. schema: type: integer securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: OAuth 2.0 bearer token for authentication. apiKeyHeader: type: apiKey in: header name: X-Api-Key description: API key passed as a request header.