Sourcing API (/quote_requests)

Overview

Use the sourcing API to:

  1. Create RFP, RFI, or RFQ type events.
  2. Extract supplier responses to the event.
  3. Award events to suppliers at the line level.

For the Coupa back end, a sourcing event is known as a quote request.

Endpoints

The following endpoints are available for sourcing API.

Resource Path Description
Sourcing events /api/quote_requests Endpoint for creating new sourcing events and managing existing events
Supplier responses /api/quote_responses Endpoint for working with supplier responses
Sourcing suppliers /api/quote_suppliers Endpoint for getting info about suppliers on a sourcing event

Example calls

Create a new sourcing event

POST /api/quote_requests/

To create a new event, you can send a basic POST. Include the <event-type> element or else Coupa will default to an RFI.

Payload

<?xml version="1.0" encoding="UTF-8" ?>
<quote-request>
	<event-type type="symbol">RFQ</event-type>
</quote-request>

201 Success response

Coupa returns the newly-created sourcing event, with a unique <id> .

<?xml version="1.0" encoding="UTF-8"?>
<quote-request>
	<id type="integer">1434</id>
	<created-at type="dateTime">2018-04-11T10:37:25-07:00</created-at>
	<updated-at type="dateTime">2018-04-11T10:46:58-07:00</updated-at>
	<description nil="true" />
	<start-time type="dateTime">2018-04-11T17:00:00-07:00</start-time>
	<start-on-submit type="boolean">true</start-on-submit>
	<event-type type="symbol">rfi</event-type>
	<end-time type="dateTime">2018-04-25T17:00:00-07:00</end-time>
	<state>draft</state>
	<comments nil="true" />
	<allow-multiple-response type="boolean">true</allow-multiple-response>
	<sealed-bids type="boolean">true</sealed-bids>
	<allow-award-individual-line-items type="boolean">false</allow-award-individual-line-items>
	<automatic-bid-unsealing type="boolean">true</automatic-bid-unsealing>
	<timezone>US/Pacific</timezone>
	<currency>...</currency>
	<lots type="array" />
	<lines type="array" />
	<quote-suppliers type="array" />
	<attachments type="array" />
	<forms type="array" />
	<quote-request-attachments type="array" />
	<tags type="array" />
	<business-partners type="array" />
	</business-partners>
	<created-by>...</created-by>
	<updated-by>...</updated-by>
	<custom-fields />
</quote-request>

See all the supplier responses for a specific event

GET /api/quote_requests/{event_id}/quote_responses

200 OK response

<?xml version="1.0" encoding="UTF-8"?>
<quote-responses type="array">
	<quote-response>
		<id type="integer">1080</id>
		<created-at type="dateTime">2018-04-10T05:51:28-07:00</created-at>
		<updated-at type="dateTime">2018-04-10T05:51:34-07:00</updated-at>
		<quote-request-id type="integer">1429</quote-request-id>
		<submitted-at type="dateTime">2018-04-10T05:51:34-07:00</submitted-at>
		<state>submitted</state>
		<position type="integer">2</position>
		<comments nil="true" />
		<lines type="array">
			<line>
				<id type="integer">7447</id>
				<created-at type="dateTime">2018-04-10T05:51:28-07:00</created-at>
				<updated-at type="dateTime">2018-04-10T05:51:33-07:00</updated-at>
				<price-amount type="decimal">200.0</price-amount>
				<quantity type="decimal">1.0</quantity>
				<reporting-price-amount type="decimal">200.0</reporting-price-amount>
				<price-currency>...</price-currency>
				<quote-request-line-id type="integer">5834</quote-request-line-id>
				<lot-id type="integer">0</lot-id>
			</line>
		</lines>
		<quote-supplier>
			<id type="integer">1714</id>
			<created-at type="dateTime">2018-04-10T05:50:21-07:00</created-at>
			<updated-at type="dateTime">2018-04-10T05:51:34-07:00</updated-at>
			<name>bnew</name>
			<display-name>bnew</display-name>
			<email>irairaira666555@gmail.com</email>
			<contact-name />
			<supplier nil="true" />
			<created-by>...</created-by>
			<updated-by>...</updated-by>
		</quote-supplier>
	</quote-response>
</quote-responses>

Award an event to a supplier

POST /api/quote_responses/{response_id}/award

Once you've got the response <id> , you can use it to award the response.

Payload to award

<?xml version="1.0" encoding="UTF-8"?>
<root>
	<quote_response_line_ids>7447</quote_response_line_ids>
</root>
Note:

If you don't specify any quote response line IDs (7447 as per example above) you can award all lines at once.

200 OK Response

Coupa returns a 200 OK with no body.