---
title: "Complete or decline a refund reservation"
method: PATCH
path: "/v1/billing/funding/refunds/{refundRequest}"
---

# Complete or decline a refund reservation

`PATCH /v1/billing/funding/refunds/{refundRequest}`

## 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/funding/refunds/{refundRequest}`
- Auth: HTTP bearer

Completes or declines a pending refund reservation. Completion verifies an existing Stripe refund by authenticated provider read before applying the exact credit, tax and gross adjustment, and converges on the recorded adjustment when that refund already settled the reservation; it never creates a provider refund. Decline releases the reserved credit without contacting the provider, and a reservation a Stripe refund superseded is refused as a state conflict. The Idempotency-Key makes either outcome converge across retries.

## Path parameters

- `refundRequest` string, required

## Headers

- `Idempotency-Key` string, required

## Request body

- object
  - `confirmed` true, required
  - `decision` 'completed' | 'declined', required
  - `gross` object
    - `currency` 'USD', required
    - `microdollars` string, required: A canonical nonnegative integer multiple of 10,000 microdollars, no greater than 9,223,372,036,854,770,000.
    - `scale` 6, required
  - `providerRefund` string
  - `tax` object
    - `currency` 'USD', required
    - `microdollars` string, required: A canonical nonnegative integer multiple of 10,000 microdollars, no greater than 9,223,372,036,854,770,000.
    - `scale` 6, required

## Response `200`

Complete or decline a refund reservation

- object
  - `automaticExecutionTopUp` object, required
    - `ceiling` object, nullable, required
      - `currency` 'USD', required
      - `microdollars` string, required: A canonical nonnegative integer multiple of 10,000 microdollars, no greater than 9,223,372,036,854,770,000.
      - `scale` 6, required
    - `currentPeriod` object, required
      - `end` string, required
      - `pending` object, required
        - `currency` 'USD', required
        - `microdollars` string, required
        - `scale` 6, required
      - `remaining` object, nullable, required
        - `currency` 'USD', required
        - `microdollars` string, required
        - `scale` 6, required
      - `settled` object, required
        - `currency` 'USD', required
        - `microdollars` string, required
        - `scale` 6, required
      - `start` string, required
    - `rule` object, required
      - `cooldownUntil` string, nullable, required
      - `desired` object, nullable, required
        - `ceiling` object, required
          - `currency` 'USD', required
          - `microdollars` string, required: A canonical nonnegative integer multiple of 10,000 microdollars, no greater than 9,223,372,036,854,770,000.
          - `scale` 6, required
        - `credit` object, required
          - `currency` 'USD', required
          - `microdollars` string, required: A canonical nonnegative integer multiple of 10,000 microdollars, no greater than 9,223,372,036,854,770,000.
          - `scale` 6, required
        - `triggerBelow` object, required
          - `currency` 'USD', required
          - `microdollars` string, required: A canonical nonnegative integer multiple of 10,000 microdollars, no greater than 9,223,372,036,854,770,000.
          - `scale` 6, required
      - `effective` object, nullable, required
        - `ceiling` object, required
          - `currency` 'USD', required
          - `microdollars` string, required: A canonical nonnegative integer multiple of 10,000 microdollars, no greater than 9,223,372,036,854,770,000.
          - `scale` 6, required
        - `credit` object, required
          - `currency` 'USD', required
          - `microdollars` string, required: A canonical nonnegative integer multiple of 10,000 microdollars, no greater than 9,223,372,036,854,770,000.
          - `scale` 6, required
        - `triggerBelow` object, required
          - `currency` 'USD', required
          - `microdollars` string, required: A canonical nonnegative integer multiple of 10,000 microdollars, no greater than 9,223,372,036,854,770,000.
          - `scale` 6, required
      - `setupUrl` string, uri
      - `state` 'disabled' | 'payment-method-required' | 'ready', required
      - `suspension` object, nullable, required
        - `at` string, required
        - `reason` 'authentication-required' | 'payment-failed', required
    - `revision` integer, required
  - `credit` object, required
    - `amountOwed` object, required
      - `currency` 'USD', required
      - `microdollars` string, required
      - `scale` 6, required
    - `available` object, required
      - `currency` 'USD', required
      - `microdollars` string, required
      - `scale` 6, required
    - `reserved` object, required
      - `currency` 'USD', required
      - `microdollars` string, required
      - `scale` 6, required
  - `freshness` object, required
    - `kind` 'authoritative', required
  - `paymentOperations` object[], required
    - `createdAt` string, required
    - `credit` object, required
      - `currency` 'USD', required
      - `microdollars` string, required: A canonical nonnegative integer multiple of 10,000 microdollars, no greater than 9,223,372,036,854,770,000.
      - `scale` 6, required
    - `gross` object, nullable, required
      - `currency` 'USD', required
      - `microdollars` string, required
      - `scale` 6, required
    - `id` string, required
    - `kind` 'manual' | 'automatic', required
    - `paymentUrl` string, uri
    - `reason` string
    - `receiptUrl` string, uri
    - `state` 'pending' | 'paid' | 'failed' | 'authentication-required' | 'action-required' | 'canceled' | 'refunded' | 'reversed' | 'disputed', required
    - `tax` object, nullable, required
      - `currency` 'USD', required
      - `microdollars` string, required
      - `scale` 6, required
    - `taxStatus` 'calculated-at-checkout' | 'confirmed', required
    - `updatedAt` string, required
  - `subscribedProjectFees` object, required
    - `currency` 'USD', required
    - `microdollars` string, required
    - `scale` 6, required

## Other responses

- `400`: Problem document. Possible codes at this status: invalid_request.
- `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, 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)
