> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vertracloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Quote Order

> Returns the exact price of a plan and billing period, with an optional coupon, without creating an order or using the coupon.

Returns the amount that an order for a plan and a billing period would charge your account, with the period discount and an optional coupon already applied. Nothing is created and the coupon is not used. Call it before [Create Order](https://docs.vertracloud.app/api-reference/endpoint/billing/create-order.md) to show the final price.

Needs the `billing:read` scope when called with an API key. It is limited to 10 requests per minute.

**plan** `string` *required*

The plan name, such as `starter-1`, `pro-4` or `business-12`. The names and prices are in [List Plans](https://docs.vertracloud.app/api-reference/endpoint/plans/list.md).

**months** `integer` *required*

The billing period: `1`, `3`, `6` or `12`. A 3-month period gets 10% off the monthly price, 6 months get 15% off and 12 months get 25% off.

**coupon** `string`

An optional discount coupon code. The quote checks the coupon the same way [Create Order](https://docs.vertracloud.app/api-reference/endpoint/billing/create-order.md) does.

> [!NOTE]
>
> The price depends on the account. If the account has a plan from before the current grid and buys the equivalent of its own plan, `legacy_price` is `true` and `total` is the price it already pays, until `legacy_price_until`. Only the monthly period keeps that price. Longer periods use the current price with the period discount.

### Response

**response** `object`

**Toggle object**

**plan** `string`

The plan name.

**months** `integer`

The billing period in months.

**list\_price** `number`

The monthly price of the plan times the months, in BRL, before any discount.

**period\_discount\_percent** `number`

The discount of the billing period: 0, 10, 15 or 25.

**coupon** `object | null`

The coupon applied, or `null` when you sent none.

**Toggle object**

**code** `string`

The coupon code.

**discount** `number`

The amount the coupon takes off, in BRL.

**total** `number`

The final price in BRL: the amount an order for the same plan, period and coupon charges.

**legacy\_price** `boolean`

`true` when `total` is the price the account had before the current grid.

**legacy\_price\_until** `string | null`

Until when the price of the previous grid applies, in ISO 8601. `null` when `legacy_price` is `false`.

**payment\_methods** `string[]`

The payment methods the plan accepts: `pix` and `card`.

```json Without a coupon theme={null}
{
  "response": {
    "plan": "pro-4",
    "months": 3,
    "list_price": 62.7,
    "period_discount_percent": 10,
    "coupon": null,
    "total": 56.43,
    "legacy_price": false,
    "legacy_price_until": null,
    "payment_methods": ["pix", "card"]
  }
}
```

```json With a coupon theme={null}
{
  "response": {
    "plan": "starter-1",
    "months": 1,
    "list_price": 7.7,
    "period_discount_percent": 0,
    "coupon": { "code": "WELCOME10", "discount": 0.77 },
    "total": 6.93,
    "legacy_price": false,
    "legacy_price_until": null,
    "payment_methods": ["pix", "card"]
  }
}
```

```json With legacy_price theme={null}
{
  "response": {
    "plan": "starter-1",
    "months": 1,
    "list_price": 7.7,
    "period_discount_percent": 0,
    "coupon": null,
    "total": 5.99,
    "legacy_price": true,
    "legacy_price_until": "2026-12-01T03:00:00.000Z",
    "payment_methods": ["pix", "card"]
  }
}
```

```bash cURL theme={null}
curl -X POST https://api.vertracloud.app/v1/orders/quote \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "plan": "pro-4", "months": 3, "coupon": "WELCOME10" }'
```

### Error Responses

**code** `string`

The error code indicating the reason for failure. Possible values:

* `AUTH_TOKEN_MISSING`, `API_KEY_INVALID`, `SESSION_REVOKED`: The `Authorization` header is missing, the API key is invalid, or the dashboard session was revoked (`401`).
* `API_KEY_IP_DENIED`, `API_KEY_SCOPE_DENIED`: The API key is used from an IP outside its allowlist, or it lacks the `billing:read` scope (`403`).
* `USER_NOT_FOUND`: The authenticated user was not found.
* `INVALID_PAYLOAD`: The request body failed validation.
* `INVALID_PLAN`: The plan name does not exist.
* `INVALID_MONTHS`: `months` is not `1`, `3`, `6` or `12`.
* `PLAN_NOT_FOR_SALE`: The plan is no longer sold (`400`).
* `COUPON_INVALID`, `COUPON_INACTIVE`, `COUPON_NOT_STARTED`, `COUPON_EXPIRED`, `COUPON_EXHAUSTED`, `COUPON_USER_LIMIT`, `COUPON_AUDIENCE`, `COUPON_PLAN`, `COUPON_DURATION`: The coupon cannot be used for this account, plan or period (`400`). The codes are listed in [Errors](https://docs.vertracloud.app/api-reference/errors.md).
* `RATE_LIMIT_EXCEEDED`: More than 10 requests in a minute (`429`).
* `INTERNAL_SERVER_ERROR`: An unexpected server error occurred.

```json Error Response (400) theme={null}
{
  "code": "PLAN_NOT_FOR_SALE"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.