Skip to content

Reading supplier requests

A supplier request is keyed by its own UUID (id) and carries:

  • status — lifecycle state: REQUEST_SENT (sent, awaiting an offer), OFFER_RECEIVED (the supplier replied), or DECLINED.
  • tender_id — the tender this request was raised for, when tender-scoped — resolve the full document via GET /tenders/{tender_id}. Null when the request is project-scoped.
  • project_id — the project this request was raised for, when project-scoped — resolve via GET /projects/{project_id}. Null when tender-scoped. A supplier request is always scoped to exactly one of the two.
  • supplier_id — the supplier reference only (your BusinessPartner.external_id); resolve name / address / contacts via GET /suppliers/{supplier_id}. supplier_name is a convenience mirror.
  • supplier_emails — the addresses the request was sent to.
  • sender_email — the Mercura user who sent the request.
  • is_awarded / awarded_line_count — whether (and how many) offered lines were accepted into the final tender.
  • offered_lines[] — the lines the supplier quoted back, one per parsed candidate. Each carries:
    • id — an opaque handle for the offered line.
    • position_id — the position this line answers. For a tender-scoped supplier request it is the line handle in GET /tenders/{tender_id}, so you can line the supplier's quote up against the position it responds to; for a project-scoped one it is an internal reference with no public resolution endpoint today. Null when the line is not mapped to a position.
    • item_typeARTICLE / TEXT_FIELD / DIVERSE.
    • candidate_statusPENDING / ACCEPTED / DECLINED.
    • selectedtrue when this line was accepted into the final tender (i.e. candidate_status is ACCEPTED). This is the line you are actually buying at the quoted price.
    • article_number, manufacturer_article_number, description, quantity, unit, unit_price, line_total.

You can:

  • GET /supplier-requests — cursor-paginated list for your organisation.
  • GET /supplier-requests/{supplier_request_id} — one supplier request in full, by its UUID.

The list is ordered by updated_at ascending (oldest-touched first) — the natural order for modified_since delta-sync — and paginated with the opaque cursor. Page through until next_cursor is null.