# Quote commands: accept, decline, expire

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

> The Quote Verbs accept, decline, expire 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.accept
Accept takes a sent Quote before it expires, turning one-time lines into an Order and recurring lines into a Subscription. [Verb page](/business/nouns/quote/accept?interface=cli).

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

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

**Inputs**

| Input | Type | Required | Description |
| --- | --- | --- | --- |
| `quote` | [Quote](/business/nouns/quote) | Yes | The sent Quote. |
| `party` | [Party](/business/nouns/party) | Yes | The Contact or Organization accepting, who becomes the Customer. |

**Returns**

| Output | Type | Required | Description |
| --- | --- | --- | --- |
| `order` | [Order](/business/nouns/order) | No | The Order for the one-time lines, when the Quote has any. |
| `subscription` | [Subscription](/business/nouns/subscription) | No | The Subscription for the recurring lines, at each line’s quantity and term. |
| `quote` | [Quote](/business/nouns/quote) | Yes | The Quote, now accepted. |

**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.accept --json '{"quote":"qt_GZnH5OK100","party":"party_hmQWaPrAyZ"}'
```

### Quote.decline
Decline records the buyer’s refusal of a sent Quote, with the reason in their words. [Verb page](/business/nouns/quote/decline?interface=cli).

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

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

**Inputs**

| Input | Type | Required | Description |
| --- | --- | --- | --- |
| `quote` | [Quote](/business/nouns/quote) | Yes | The sent Quote. |
| `reason` | `text` | No | Why the buyer declined, kept verbatim. |

**Returns**

| Output | Type | Required | Description |
| --- | --- | --- | --- |
| `quote` | [Quote](/business/nouns/quote) | Yes | The declined 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.decline --json '{"quote":"qt_GZnH5OK100"}'
```

### Quote.expire
Expire closes a sent Quote that reached its validUntil date unaccepted; it never converts afterward. [Verb page](/business/nouns/quote/expire?interface=cli).

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

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

**Inputs**

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

**Returns**

| Output | Type | Required | Description |
| --- | --- | --- | --- |
| `quote` | [Quote](/business/nouns/quote) | Yes | The expired 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.expire --json '{"quote":"qt_GZnH5OK100"}'
```