---
title: "Confirm a quoted project billing change"
method: POST
path: "/v1/billing/projects/change"
---

# Confirm a quoted project billing change

`POST /v1/billing/projects/change`

## Request

- Base URL: `https://docs.greatwait.dev` (the document declares no server; this is the origin it was published from)
- URL: `https://docs.greatwait.dev/v1/billing/projects/change`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer and API key in header `Greatwait-Environment` and API key in header `Greatwait-Project`

Confirms the exact named-project quote and recurring commitment. Additional access activates only after authenticated successful provider payment; cancellation preserves paid-through access without a refund or renewal grace. Included transfer never subscribes the formerly included project. Retries retain the same operation and payment identity.

## Headers

- `Idempotency-Key` string, required

## Request body

- object
  - `quote` string, required
  - `expectedRevision` integer, required
  - `confirmed` true, required

## Response `200`

Confirm a quoted project billing change

- object
  - `includedProject` string
  - `desiredRevision` integer, required
  - `effectiveRevision` integer, required
  - `pending` boolean, required
  - `recurringProjectFees` object, required
    - `currency` 'USD', required
    - `microdollars` string, required
    - `scale` 6, required
  - `projects` object[], required
    - `name` string, required
    - `project` string, required
    - `access` 'included' | 'paid' | 'blocked', required
    - `paidThroughAt` string
    - `renewalGraceUntil` string
    - `cancellationAt` string
    - `deleted` boolean, required
    - `complimentary` object
      - `grant` string, required
      - `endsAt` string, required
  - `discount` object
    - `grant` string, required
    - `duration` 'once' | 'repeating', required
    - `durationInMonths` integer
    - `percentOff` integer
    - `amountOff` object
      - `currency` 'USD', required
      - `microdollars` string, required
      - `scale` 6, required
    - `state` 'pending' | 'applied', required
    - `appliedAt` string
  - `pendingOperations` object[], required
    - `id` string, required
    - `kind` 'add' | 'cancel', required
    - `project` string, required
    - `state` 'pending' | 'action-required', required
    - `paymentUrl` string, uri
    - `reason` string

## Other responses

- `401`: Problem document. Possible codes at this status: authentication_required, credential_expired, credential_revoked.
- `403`: Problem document. Possible codes at this status: scope_missing, test_to_live_escalation.
- `404`: Problem document. Possible codes at this status: not_found.
- `409`: Problem document. Possible codes at this status: idempotency_key_reused, project_archived, revision_conflict, state_conflict.
- `429`: Problem document. Possible codes at this status: rate_limited.
- `503`: Problem document. Possible codes at this status: capability_not_configured, service_unavailable.

---

[API](https://skmtc.dev/greatwait/apis/greatwait-v1.md) · [All operations](https://skmtc.dev/greatwait/apis/greatwait-v1/llms.txt) · [OpenAPI document](https://skmtc.dev/greatwait/apis/greatwait-v1/revisions/6855bce23e72?raw)
