---
title: Vendor responses
order: 5
updated: 2026-07-12
---

# Vendor responses

The vendor detail page is where one supplier's side of an RFQ comes together: who they are, what you asked them to quote on, the rates they came back with, the full trail of emails and quotation revisions, and every next step you can take — chase them, record their prices for them, raise a purchase order, or close them out. Everything on this page is scoped to **one** supplier on **one** RFQ; the other suppliers on the same RFQ are managed from their own vendor pages.

Because the app assumes every request can be forged, the actions here are re-checked on the server: your permission, the invitation's status, the RFQ's status, and even the individual line items are all re-verified before anything is saved. So an option being present in the UI is never the final word — if the underlying state has changed, the save is refused with a message.

## Open the page

1. Open [Procurement enquiries](/docs/procurement/enquiries) and click the RFQ row you want.
2. The RFQ detail modal lists every supplier on that RFQ. Click the supplier you want to look at.
3. The vendor detail page opens.

The same page also opens in a read-only pop-up from some analytics screens (for example the product-analytics *Open Enquiry* action). In that read-only mode the top-right actions menu is hidden — you can look but not act.

You need the *Submit Quotation on Vendor's Behalf* permission (`procurement.viewAlreadyPlacedEnquiries`) just to view this page. Without it you get a "You don't have permission to view procurement enquiries" message instead.

## Reading the header

The header centres the supplier's name, and under it three pieces of context:

- **The RFQ number.** This is the per-vendor number with its trailing letter (for example `2026-00123-A` for the first vendor on the cart, `-B` for the second). If the per-vendor number hasn't been minted yet it falls back to the cart-level base number, and if the RFQ is still a draft it just reads `Draft`. The letter is assigned automatically at release — see [RFQ number format](/docs/settings/document-templates#rfq-number-format).
- **The event status chip** — the whole RFQ's state: `Draft`, `Released`, `Quoted`, `Awarded`, or `Closed`.
- **The invitation status chip** — this one supplier's state on the RFQ: *Invited*, *Emailed*, *Quoted*, *No-bid*, *Superseded*, or *Closed*. (Internally the closed state is stored as `cancelled`; the page shows it as *Closed*.)

A *Refresh* (circular arrow) button reloads the page. Next to it sits the actions menu (the three-dots button), covered below.

## The cards

Below the header are up to four cards laid out in two columns.

### Supplier

- *Name* — the supplier's name.
- *Address* — the full address assembled from plot no, street, city, state, country, and postal code. Shows `—` if none is on file.
- *GST* — the supplier's GST number, or `—`.

### Enquiry Info

- *RFQ No* — same per-vendor RFQ number as the header.
- *Sent* — the moment the RFQ was released to suppliers (date + time). `—` while still a draft.
- *Closing Date* — the RFQ's quote deadline (date + time), if one is set.
- *Created By* — the staff member who created the RFQ cart.
- *Created* — the date the RFQ was created.
- *Follow-ups Sent* — how many reminder emails this supplier has been sent.
- *Last Mail Sent* — the timestamp of the most recent email to this supplier (RFQ or follow-up).
- *Notes* — the free-text note captured on the RFQ, shown only if one exists.

### Contact Person

The supplier's contact person carries the actual email address — suppliers themselves don't. Shows *Name* (salutation + name), *Email*, *Phone*, and *Post / Role*, each falling back to `—`.

### Quotation Submitted

This card appears **only once a quotation is on file** (whether the supplier submitted it themselves or a staff member recorded it). It shows:

- *Submitted* — when the quotation was submitted (date + time).
- *Via* — how it arrived: *Supplier Portal* (the vendor filled the self-fill link), *Staff* (someone recorded it on the vendor's behalf), or the raw value for any other channel.
- *Saved By* — the staff member who recorded it. Shown only for *Staff* submissions; portal submissions have no system user behind them.
- *Quotation No* — the supplier's own quotation reference, if they gave one.
- *Date of Offer* — the date the supplier dated their offer, if provided.
- *Payment Terms* — the payment terms quoted, if any.
- *Delivery Days* — the overall delivery lead time in days, if provided.
- *Valid for (days)* — the quotation's validity window, if provided.
- *Attachments* — any files that came with the quotation (spec sheets, certificates, the supplier's own PDF). Each file shows its name and size; click one to open it. The download is streamed with a live percentage; the server verifies the file actually belongs to this quotation before serving it.

## Line items

The *Line Items* table lists exactly the products this supplier was invited to quote on — not the whole RFQ. Default columns:

- *Product* — the product code name.
- *Make* — the makes/brands requested for that line, comma-separated, or `—`.
- *Qty* — the quantity with its unit (e.g. `10 Nos`).
- *Rate* — the supplier's rate. A priced line shows `₹<rate>` and, if a tax was quoted, ` +<tax>%`. A line the supplier declined shows a red *No-bid* chip. A line with no rate yet shows `—`.

Two more columns are available but hidden by default (turn them on from the table's column toggle):

- *HSN* — the HSN code on the line, or `—`.
- *Remarks* — the supplier's per-line remark, or `—`.

Expand any row (click it) to see two panels side by side:

- *Our Description* — the rich-text enquiry description your team wrote for that line.
- *Supplier's Remarks* — the note the supplier attached to that specific line, if any.

## Actions menu

The three-dots button at the top right opens the actions menu. Which items appear depends on your permissions and the current state — the list below notes the exact condition for each. The menu is hidden entirely when the page is opened in read-only mode.

### Mail History

Always available. Opens the *RFQ Mail History* modal — every email queued to this supplier for this RFQ. Tabs filter by *All*, *Invitation* (the original RFQ send), or *Follow-up*. Each entry shows:

- A status chip: *Queued*, *Processing*, *Sent*, or *Failed*, plus an *Invitation*/*Follow-up* type chip.
- When it was queued and by whom, and when it was approved & sent and by whom.
- The subject, the *To* list, and any *Cc*.
- For a failed send, the last error message.
- The attached *RFQ PDF* (the `Enquiry.pdf` generated per vendor) and any other attachments, each with *View* and *Download* buttons. On a retried send the attempt number is shown, and the mail server's message-id when available.

### Send Follow Up

Shown only when you hold the *Send Vendor Enquiry Follow-Up* permission (`procurement.vendorEnquiryFollowUp`), the invitation status is exactly *Emailed*, and the RFQ is not closed. (Once a supplier has *Quoted*, this per-page shortcut disappears — chase pre-quote vendors in bulk from [Vendor follow-up](/docs/procurement/vendor-follow-up) instead.)

It opens a small *Send Follow Up?* confirmation where you pick which email account to send from. The dropdown lists only the **valid** accounts allowed for the supplier-follow-up use-case; if there's exactly one it's pre-selected, and if there are none you're told to ask an admin to configure the sending policy. The reminder's wording comes from the firm's *Vendor Follow-up* template, and the server enforces the firm's follow-up cap — a supplier already at the cap is skipped even if you press send. See [Vendor follow-up](/docs/procurement/vendor-follow-up).

### Revision History

Shown whenever a quotation exists. Opens the *Quotation History* modal listing every version newest-first, with the live one tagged *Current*. Each version shows its submission time, whether it came via *Portal* or *Staff* (and the staff member's name), the quotation number, date of offer, payment terms, delivery days, validity days, attachment count, overall notes, and a per-line table of *Rate*, *Tax%*, *Disc%*, *Remarks*, and a *No-bid* marker. A revision is created automatically each time a newer quotation is saved — the previous one is pushed into history, never overwritten.

### Fill Quotation / Edit Quotation

Records rates on the supplier's behalf — for when they reply by email, phone, or PDF instead of using the self-fill link. The item reads *Fill Quotation* when no quotation exists yet and *Edit Quotation* when one does.

It is shown only when **all** of these hold:

- You have the *Fill Quotation on Behalf of Vendor* permission (`procurement.fillQuotationOnBehalfOfVendor`).
- The invitation status is *Invited*, *Emailed*, or *Quoted*.
- The RFQ is not closed.
- The quotation was **not** submitted through the Supplier Portal. Once a vendor has submitted via their own link, staff cannot overwrite it from here.

Even when shown, the item is **greyed out** if the supplier has a saved draft on the Supplier Portal — a tooltip explains they're mid-way through their own quotation. Wait for them to submit, or contact them directly. See [Supplier portal](/docs/procurement/supplier-portal).

The form itself is described under [Filling a quotation](#filling-a-quotation) below.

### Generate Purchase Order

Shown only when a quotation exists **and** at least one line is priced (not every line is *No-bid*). If those aren't met the item is absent.

Choosing it usually takes you straight to the *Generate Purchase Order* form, pre-filled from this supplier's priced lines. But if the supplier already has one or more **draft** purchase orders and you can both create and edit POs (or you're an admin), an *Append to an existing draft PO* chooser appears first — pick a draft to consolidate this RFQ's products into it, or choose *Create New Purchase Order* to start a fresh one. The chooser lists each draft's PO number, products, contact person, quantity, price, total, and PO date. See [Create a purchase order](/docs/procurement/create-purchase-order).

### Close Enquiry

Closes **this one supplier's** invitation — no more quotes accepted from them — while leaving the other suppliers on the RFQ open. Shown only when you hold *Close Enquiry* (`procurement.closeEnquiry`) or the legacy *Cancel Sourcing Event* (`procurement.cancelEnquiry`) permission, the invitation isn't already in a terminal state (*Closed/cancelled*, *Superseded*, or *No-bid*), and the RFQ isn't closed. A *Close Enquiry?* confirmation appears first. The pre-close status is remembered so a later reopen can restore it exactly.

### Reopen Vendor

Restores a closed vendor invitation to whatever status it held just before the close (typically *Emailed* or *Quoted*). Shown only when you hold *Reopen Closed Enquiry* (`procurement.reopenEnquiry`), the parent RFQ is currently open, **and** this invitation is specifically in the close-driven *cancelled* state. A *Reopen Vendor?* confirmation appears. If the RFQ itself is closed, the server refuses with "Reopen the enquiry first" — reopen the whole RFQ from the RFQ detail modal, then come back here. *Superseded* and *No-bid* are vendor-driven terminal states and cannot be reopened through this action.

### View Reopen History

Shown only after this vendor's invitation has been reopened at least once. Opens the lifecycle timeline modal filtered to this vendor — the supplier's own per-vendor close/reopen events plus any RFQ-wide events that affected them. It's the same timeline available from the RFQ detail modal, scoped down to one supplier.

## Filling a quotation

The *Fill Quotation* / *Edit Quotation* form (opened from the actions menu) lets you enter a supplier's offer exactly as they gave it. It pre-fills from any existing quotation so *Edit* starts from the current values.

### Header fields

- *Currency* — a 3-letter code. Default `INR`. The server stores exactly 3 characters (upper-cased).
- *Delivery (days)* — the overall delivery lead time, whole days, `0` or more. Optional.
- *Validity (days)* — how long the offer stays valid, whole days, `0` or more. Optional.
- *Date of Offer* — the date the supplier dated their quotation (date picker). Optional.
- *Quotation No* — the supplier's own reference, up to `100` characters. Optional.

### Per-line fields

Each line item is a row you expand to reveal:

- *Rate* — the unit rate, `0` or more, up to 4 decimal places. Required unless the line is marked no-bid.
- *Tax %* — chosen from the fixed GST slabs `0`, `5`, `12`, `18`, `28`. Default `0`.
- *Discount %* — `0`–`100`, up to 2 decimals. Default `0`.
- *Net Rate* and *Total* — read-only, computed live as `rate × (1 − discount%) × (1 + tax%)` and `net × quantity`.
- *Remarks* — a free-text note for that line (server cap `2000` characters).
- *No-bid* — a checkbox. Ticking it disables the rate, tax, discount, and remarks for that line and records the supplier as declining it.

### Footer fields

- *Overall notes* — a general note on the quotation (server cap `2000` characters).
- *Payment terms* — free text (server cap `500` characters).
- *Attachments* — drag-and-drop or click to upload the supplier's files. Up to `10` files, each up to `50 MB`; oversized files are skipped with a warning. (Attachments are available only on this staff form — vendors upload their own through the portal.)

### What the server re-checks on save

Pressing *Submit Quotation* runs a full re-verification before anything is written:

- You still hold the fill permission.
- The invitation is still in *Invited*, *Emailed*, or *Quoted*.
- The RFQ is still open for quote submission.
- Every submitted line is matched against the lines this vendor was actually invited to quote — **extras are silently dropped**, and if nothing valid remains the save is refused.
- Every attachment must exist and be fully uploaded; a forged file reference is rejected.

On success the previous quotation (if any) is moved into revision history, the invitation flips to *Quoted*, the RFQ moves from *Released* to *Quoted* on the first quote, and a "vendor submitted a quotation" notification fires to your team. A non-no-bid line with a missing or negative rate is rejected client-side before submit.

## When the supplier hasn't replied

If no quotation is on file the *Quotation Submitted* card and the *Revision History*, *Generate Purchase Order*, and *Fill*/*Edit* options behave accordingly (the card is hidden, PO generation is unavailable). Your options are to send a chase (via *Send Follow Up* here, or in bulk from [Vendor follow-up](/docs/procurement/vendor-follow-up)), record the rates yourself if you have the fill permission, or contact the supplier directly using the contact person on file.

## Common questions

### Why is *Generate Purchase Order* missing?

Either no quotation has been received yet, or the supplier marked **every** line as *No-bid*. As soon as at least one line is priced, the option appears. See [Create a purchase order](/docs/procurement/create-purchase-order).

### Why is *Fill Quotation* / *Edit Quotation* greyed out — or missing entirely?

If it's **greyed out**, the supplier has started their own quotation on the Supplier Portal and has a saved draft; you can't overwrite their work-in-progress. Wait for them to submit, or contact them. If it's **missing entirely**, the most common reason is that the quotation was already submitted through the portal (staff can't overwrite a portal submission), or the RFQ is closed, or you lack the *Fill Quotation on Behalf of Vendor* permission.

### Why is *Close Enquiry* missing?

The supplier's invitation is already in a terminal state (*Closed/cancelled*, *Superseded*, or *No-bid*), the RFQ itself has been closed, or you don't hold the *Close Enquiry* (or legacy *Cancel Sourcing Event*) permission.

### Why can't I reopen this vendor?

*Reopen Vendor* only works when the parent RFQ is open and the invitation is in the close-driven *cancelled* state. If the RFQ is closed, reopen the whole RFQ first from the RFQ detail modal. If the vendor is *Superseded* or *No-bid*, those are terminal and can't be reopened this way.

### What happens to the other suppliers if I generate a PO from one of them?

Nothing automatic — the other suppliers' invitations stay open. Close them manually so they don't linger as pending in your list.

### The rates I recorded look wrong / I need to change them — can I?

Yes, as long as the invitation is still *Invited*, *Emailed*, or *Quoted*, the RFQ is open, and the quotation wasn't a portal submission. Use *Edit Quotation*; the previous version is preserved in *Revision History*.

### Where do I see every email sent to this supplier?

Use *Mail History* from the actions menu. It lists both the original RFQ invitation and every follow-up, with the RFQ PDF and any attachments viewable and downloadable.
