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:
- Create RFP, RFI, or RFQ type events.
- Extract supplier responses to the event.
- 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 |
|
Endpoint for creating new sourcing events and managing existing events |
Supplier responses |
|
Endpoint for working with supplier responses |
Sourcing 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>
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.