# Reading supplier requests

## 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_type`** — `ARTICLE` / `TEXT_FIELD` / `DIVERSE`.
  - **`candidate_status`** — `PENDING` / `ACCEPTED` / `DECLINED`.
  - **`selected`** — `true` 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`.

Version: 1.79.2

## Description:

  - `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_type`** — `ARTICLE` / `TEXT_FIELD` / `DIVERSE`.
  - **`candidate_status`** — `PENDING` / `ACCEPTED` / `DECLINED`.
  - **`selected`** — `true` 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`.

