Skip to content

Decline an ownership offer

POST
/v1/admin/ownership-handoffs/{handoff_id}/decline

Exact verified recipient only. Declines an offered transfer at the exact version; accepted or terminal work cannot be declined. Requires a verified human Clerk session. Agent keys and delegated connections, including Full account control, are rejected.

handoff_id
required
string
object
version
required

Exact version from the latest offer.

integer format: int64
>= 1

Success.

object
id
required
string
org_id
required
string
customer_id
required
string
source_user_id
required
string
recipient_user_id
string
recipient_email
required
string format: email
billing_digest
required
string
billing_terms
required
object
policy_version
required
integer
Allowed values: 1
org_id
required
string
plan_tier
required
string
Allowed values: free developer startup
refunds
required
boolean
backdated_charges
required
boolean
historical_bills_and_credits
required
string
Allowed values: former_payer
subscriptions
required
Array<object>
<= 101 items
object
kind
required
string
Allowed values: plan domain
resource_id
required
string
name
required
string
source_subscription_id
required
string
price_id
required
string
quantity
required
integer format: int64
currency
required
string
Allowed values: usd
unit_amount
required

Price per unit in integer minor currency units.

integer format: int64
interval
required
string
Allowed values: month year
interval_count
required
integer format: int64
Allowed values: 1
paid_through
required

Existing paid-through date in Unix seconds. No transfer charge for this remaining paid time.

integer format: int64
auto_renew
required

Whether future renewal remains enabled; transferring does not turn renewal on.

boolean
manifest
required
object
org_name
required
string
domain_count
required
integer
member_count
required
integer
credential_count
required
integer
digest
required

Opaque inventory and authority snapshot digest.

string
customer_id
required
string
org_id
required
string
mailboxes
required
Array<object>
<= 100 items
object
id
required
string
address
required
string
blockers
required

Reasons this inventory cannot be offered for transfer.

Array<string>
manifest_digest
required
string
state
required

Acceptance starts durable processing, not immediate resource access. Only completed releases access to the recipient.

string
Allowed values: offered accepted draining rotating finalizing activating completed declined cancelled expired
version
required
integer format: int64
expires_ms
required

Offer expiry in Unix milliseconds.

integer format: int64
created_ms
required
integer format: int64
updated_ms
required
integer format: int64
last_error

Latest processing error when present. Processing can remain fenced while retried.

string

Invalid request.

The canonical error envelope. error is a stable machine code.

object
error
required

Stable error code (e.g. unauthorized, forbidden, not_found, invalid, quota_exceeded, rate_limited).

string
Example
forbidden
message

Human-readable detail (never leaks internals).

string
Example
missing required scope
reason

Machine-readable quota reason. inbox_limit_exceeded means billing account inbox capacity across all organizations and projects sharing that account; enrollment_token_mailbox_budget_exhausted means the enrollment key lifetime creation allowance. Read message for recovery; inbox counts are separate from sending quotas.

string
used

Consumed plus reserved units.

integer format: int64
delta

Requested additional units.

integer format: int64
limit
integer format: int64
remaining
integer format: int64
consumed
integer format: int64
reserved
integer format: int64
next_reset_at

Next UTC usage-period boundary; pending reservations survive this boundary.

string format: date-time
upgrade_required
boolean

Missing or invalid credential.

The canonical error envelope. error is a stable machine code.

object
error
required

Stable error code (e.g. unauthorized, forbidden, not_found, invalid, quota_exceeded, rate_limited).

string
Example
forbidden
message

Human-readable detail (never leaks internals).

string
Example
missing required scope
reason

Machine-readable quota reason. inbox_limit_exceeded means billing account inbox capacity across all organizations and projects sharing that account; enrollment_token_mailbox_budget_exhausted means the enrollment key lifetime creation allowance. Read message for recovery; inbox counts are separate from sending quotas.

string
used

Consumed plus reserved units.

integer format: int64
delta

Requested additional units.

integer format: int64
limit
integer format: int64
remaining
integer format: int64
consumed
integer format: int64
reserved
integer format: int64
next_reset_at

Next UTC usage-period boundary; pending reservations survive this boundary.

string format: date-time
upgrade_required
boolean

Authenticated but lacking the required scope, or out of quota.

The canonical error envelope. error is a stable machine code.

object
error
required

Stable error code (e.g. unauthorized, forbidden, not_found, invalid, quota_exceeded, rate_limited).

string
Example
forbidden
message

Human-readable detail (never leaks internals).

string
Example
missing required scope
reason

Machine-readable quota reason. inbox_limit_exceeded means billing account inbox capacity across all organizations and projects sharing that account; enrollment_token_mailbox_budget_exhausted means the enrollment key lifetime creation allowance. Read message for recovery; inbox counts are separate from sending quotas.

string
used

Consumed plus reserved units.

integer format: int64
delta

Requested additional units.

integer format: int64
limit
integer format: int64
remaining
integer format: int64
consumed
integer format: int64
reserved
integer format: int64
next_reset_at

Next UTC usage-period boundary; pending reservations survive this boundary.

string format: date-time
upgrade_required
boolean

Resource not found.

The canonical error envelope. error is a stable machine code.

object
error
required

Stable error code (e.g. unauthorized, forbidden, not_found, invalid, quota_exceeded, rate_limited).

string
Example
forbidden
message

Human-readable detail (never leaks internals).

string
Example
missing required scope
reason

Machine-readable quota reason. inbox_limit_exceeded means billing account inbox capacity across all organizations and projects sharing that account; enrollment_token_mailbox_budget_exhausted means the enrollment key lifetime creation allowance. Read message for recovery; inbox counts are separate from sending quotas.

string
used

Consumed plus reserved units.

integer format: int64
delta

Requested additional units.

integer format: int64
limit
integer format: int64
remaining
integer format: int64
consumed
integer format: int64
reserved
integer format: int64
next_reset_at

Next UTC usage-period boundary; pending reservations survive this boundary.

string format: date-time
upgrade_required
boolean

Current state

Ownership or billing service unavailable.