Award a request for quote
Picks a winning vendor per line and creates one draft purchase order per winning vendor. Checks quote expiry and minimum order quantity, requires a reason when a winner is not the lowest rate, and marks losing quotes as lost. Requires the separate award permission; no journal entry is created.
How to use it
- Call Compare quotes on a request for quote and pick one winning cell per line; send its quotationItemId, and awardedQty if not the full required quantity.
- Add a reason if any winner is not the cheapest, and set acceptBelowMoq to true only if you accept a quantity below a vendor's minimum.
- The request must be SENT or QUOTED and winning quotes must not be expired on the order date; this needs the separate award permission.
- One draft purchase order is created per winning vendor, losing quotes become LOST, and the request becomes AWARDED and cannot be awarded again.
BearerAuthAuthorizationBearer <JWT>id*stringID of the record (UUID).
uuidX-TenantID*stringYour merchant's tenant code — the value typed in the Domain field on the iotoms login screen. See Concepts.
application/json- body
decisions*array<>One decision per request line you are awarding, naming the winning quote line. Lines can go to different vendors.
reason?|Why you chose this outcome. Required when any winner is not the cheapest quote for its line.
acceptBelowMoq*booleanSet true to award a quantity below a vendor's minimum order quantity; otherwise such awards are refused. Default false.
rememberRates*booleanSave each winning rate as an agreed price so later purchase orders pre-fill it. Default true.
orderDate?|Order date for the purchase orders created (YYYY-MM-DD). Defaults to today; quote expiry is checked against it.
dateOK
*/*- response
status*stringOutcome of the call: SUCCESS when the request worked, ERROR when it did not.
message*stringShort human-readable message describing the result, for logs or display; do not parse it.
data?The award outcome: the draft purchase orders created, the lines awarded and the quotes that lost.
curl -X POST 'https://beta.iotoms.com/api/v1/procurement/rfqs/497f6eca-6276-4993-bfeb-53cbbbba6f08/award' \ -H 'X-TenantID: your-tenant-code' \ -H 'Content-Type: application/json' \ -d '{ "decisions": [ { "quotationItemId": 0 } ], "acceptBelowMoq": true, "rememberRates": true}'{ "status": "string", "message": "string", "data": { "rfqId": "5483c05b-f58d-4a80-82f1-a80d2c5d2632", "rfqNumber": "string", "status": "string", "awardReason": "string", "awardedBy": "string", "awardedAt": "2019-08-24T14:15:22Z", "purchaseOrders": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "poNumber": "string", "vendorId": "e9b57fab-1850-44d4-8499-71fd15c845a0", "vendorName": "string", "status": "string", "orderDate": "2019-08-24", "expectedDeliveryDate": "2019-08-24", "totalAmount": 0, "notes": "string", "items": [ { "id": 0, "itemId": "string", "itemName": "string", "orderedQty": 0, "receivedQty": 0, "outstandingQty": 0, "unitCost": 0, "unitOfMeasure": "string", "uomId": "4df47f00-a69d-4ff2-b50d-4a7649a4b70c", "receivingLocationId": "f1f8626b-ea08-4582-99e5-64aabd817e6a", "receivingLocationName": "string", "sourceQuotationItemId": 0 } ], "rfqId": "5483c05b-f58d-4a80-82f1-a80d2c5d2632", "sourceQuotationId": "5ebd081a-5e1a-48e9-b096-b5f5f5f7febd", "createdAt": "2019-08-24T14:15:22Z" } ], "awardedLines": [ { "quotationItemId": 0, "quotationId": "98c8afab-b1d9-462f-9483-5a2dbf34985f", "vendorId": "e9b57fab-1850-44d4-8499-71fd15c845a0", "vendorName": "string", "itemId": "string", "itemName": "string", "awardedQty": 0, "unitPrice": 0, "extendedAmount": 0, "purchaseOrderId": "84a099d9-2935-4997-a6ac-0d3ee9bbef72", "purchaseOrderNumber": "string", "overriddenLowestRate": true } ], "lostQuotationIds": [ "3f95f250-f434-4340-a98a-e1f4245c8b92" ], "agreedRatesRecorded": 0 }}