• Last edited on: 03 September 2021

Sourcing API (/quote_requests)

Use the Coupa Sourcing API to create new RFx events, see supplier responses, and award suppliers at the line level.

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

Sourcing API objects

This is the full list of sourcing objects available via the API. However, not all objects listed here have endpoints–some are only referenced by objects, and can't be updated directly.

wiki.tree() 

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.

Related Items


Projects API (/projects)

22 December 2021

Use the Projects API to create or update a Project within Coupa.

Task API (/tasks)

22 December 2021

The users API allows you to create, update, or query users.

Receiving Transactions API (/receiving_transactions)

05 April 2022

The inventory transactions API helps to create, update, or query the details of inventory receipts.

Supplier Information API (/supplier_information)

13 May 2022

Use the supplier information API to send the supplier information you collected via SIM to your ERP or financial system.