Skip to main content
WEBHOOK

Authorizations

Authorization
string
header
required

Short-lived JWT issued by the CarHub auth service (Better Auth), verified against its JWKS. Claims: sub (user), org_id (active organisation) and role (owner | admin | member | billing_manager). Used by the dashboard for /mgmt/v1/… only — it is never accepted on /v1/….

Headers

Idempotency-Key
string
required

Reuse the same key on network retries. Execute a change with the preview’s key.

Required string length: 1 - 200

Path Parameters

id
string
required

Body

application/json
reason
string
required
Required string length: 1 - 280
confirmed
boolean
required
price_id
string
preview_id
string<uuid>

Response

Success

id
string<uuid>
required
organization_id
string
required
kind
enum<string>
required
Available options:
checkout,
upgrade,
downgrade,
cancel,
resume,
sync,
grant
status
enum<string>
required
Available options:
preview,
pending,
requires_action,
completed,
failed,
expired,
abandoned
idempotency_key
string
required
payment_amount
integer<int64>
required
extra_credits
integer<int64>
required
actor_id
string
actor_type
enum<string>
Available options:
hub,
admin,
system
reason
string
target_price_id
string | null
target_plan_id
string | null
subscription_id
string | null
proration_date
integer<int64> | null
period_start
string<date-time> | null
period_end
string<date-time> | null
expires_at
string<date-time> | null
stripe_invoice_id
string | null
stripe_checkout_session_id
string | null
stripe_schedule_id
string | null
recovery_url
string | null
before
object
after
object
error
string | null
created_at
string<date-time>
updated_at
string<date-time>