# Quote commands: request, send, supersede

URL: /code/cli/quote/verbs-request · Id: `page:code/cli/quote/verbs-request`

> The Quote Verbs request, send, supersede as CLI commands, with inputs, result, refusals and an example.

Reference for [Quote](/business/nouns/quote), one group of [Quote commands](/code/cli/quote).

### Quote.request
Request asks a Startup for terms on one or more Offers, with the volume, term or scope wanted. [Verb page](/business/nouns/quote/request?interface=cli).

```text
npx startup-builder do Quote.request --json '<input>' [--try | --send | --do]
```

Emits [`Quote.requested`](/business/events/Quote.requested).

**Inputs**

| Input | Type | Required | Description |
| --- | --- | --- | --- |
| `offers` | list of [Offer](/business/nouns/offer) | Yes | The Offers wanted. |
| `deal` | [Deal](/business/nouns/deal) | No | The open Deal the terms are for; without one, a new Deal opens. |
| `volume` | `integer` | No | Units wanted, such as seats or calls a month. |
| `term` | `string` | No | Contract length wanted, such as 12 months. |
| `brief` | `json` | No | A Service buyer’s scope, sizes and due dates, such as 82,000 words in three weeks. |

**Returns**

| Output | Type | Required | Description |
| --- | --- | --- | --- |
| `deal` | [Deal](/business/nouns/deal) | Yes | The Deal, waiting on a Quote. |
| `quote` | [Quote](/business/nouns/quote) | Yes | The Quote requested, in `draft`. |

**Refuses when**

| Check | Error | Fix | Then call |
| --- | --- | --- | --- |
| The key is valid, but its scopes do not allow this operation. | [`forbidden`](/code/api/errors/forbidden) | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. | None. |
| An Offer that is not open to the requesting party, such as one behind a Waitlist | [`refused`](/code/api/errors/refused) | Clear what the check names, then call it again. | None. |

**Example**

```bash
npx startup-builder do Quote.request --json '{"offers":["offer_2hzYe1ERo0"]}'
```

### Quote.send
Send presents a drafted Quote to its buyer and freezes its lines, total and payment terms. [Verb page](/business/nouns/quote/send?interface=cli).

```text
npx startup-builder do Quote.send --json '<input>' [--try | --send | --do]
```

Emits [`Quote.sent`](/business/events/Quote.sent).

**Inputs**

| Input | Type | Required | Description |
| --- | --- | --- | --- |
| `quote` | [Quote](/business/nouns/quote) | Yes | The draft Quote. |

**Returns**

| Output | Type | Required | Description |
| --- | --- | --- | --- |
| `quote` | [Quote](/business/nouns/quote) | Yes | The sent Quote. |

**Refuses when**

| Check | Error | Fix | Then call |
| --- | --- | --- | --- |
| The key is valid, but its scopes do not allow this operation. | [`forbidden`](/code/api/errors/forbidden) | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. | None. |

**Example**

```bash
npx startup-builder do Quote.send --json '{"quote":"qt_GZnH5OK100"}'
```

### Quote.supersede
Supersede replaces a sent Quote with a newer one on the same Deal; only the newest Quote can be accepted. [Verb page](/business/nouns/quote/supersede?interface=cli).

```text
npx startup-builder do Quote.supersede --json '<input>' [--try | --send | --do]
```

Emits [`Quote.superseded`](/business/events/Quote.superseded).

**Inputs**

| Input | Type | Required | Description |
| --- | --- | --- | --- |
| `quote` | [Quote](/business/nouns/quote) | Yes | The Quote being replaced. |
| `by` | [Quote](/business/nouns/quote) | Yes | The newer Quote that replaces it. |

**Returns**

| Output | Type | Required | Description |
| --- | --- | --- | --- |
| `quote` | [Quote](/business/nouns/quote) | Yes | The superseded Quote, kept on record. |

**Refuses when**

| Check | Error | Fix | Then call |
| --- | --- | --- | --- |
| The key is valid, but its scopes do not allow this operation. | [`forbidden`](/code/api/errors/forbidden) | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. | None. |

**Example**

```bash
npx startup-builder do Quote.supersede --json '{"quote":"qt_GZnH5OK100","by":"qt_GZnH5OK100"}'
```