Billing

Record the answer to the one-time upgrade offer

Stores whether the owner accepted or dismissed the one-time upgrade offer (the "trial modal" until ADR 0063), so it is never shown again on any device. The first answer wins.

post/billing/trial-modal/resolve

Request

  • Base URL: https://api.nippy.host
  • URL: https://api.nippy.host/billing/trial-modal/resolve
  • Auth: bearer (a scheme the document does not define)

Request body

outcome'accepted' | 'dismissed' required

accepted when the owner went on to Checkout, dismissed for every other exit.

Response

plan'free' | 'basic' | 'pro' | 'max' required
status'active' | 'trialing' | 'past_due' | 'canceled' | 'incomplete' | 'incomplete_expired' | 'unpaid' | 'paused' required

Stripe-mirrored status (free tier is always active)

seatsnumber required

Seats billed this period (item quantity)

interval'month' | 'year' required

Current billing cadence (monthly/annual)

currency'gbp' | 'usd' | 'eur' | 'chf' required

Presentment currency of the paid subscription (locked at creation). Drives price display; cosmetic on the free tier.

perSeatPencenumber required

Per-seat recurring charge in currency minor units at the subscription's cadence — what the account actually pays. Can differ from the catalog figure when the subscription is grandfathered on an older pricing version. 0 on the free tier.

scheduledInterval'month' | 'year' nullable required

A cadence queued to apply at the next renewal (annual→monthly), else null

scheduledPlan'free' | 'basic' | 'pro' | 'max' nullable required

A lower tier queued to apply at the next renewal (downgrade), else null

currentPeriodEndstring date-time nullable required
cancelAtPeriodEndboolean required

Whether the subscription ends at period close

trialModalPendingboolean required

Whether the one-time upgrade offer is still unanswered on this account (ADR 0053; named for the trial it offered until ADR 0063). Only says it has not been answered — whether it is due (a free personal account with a site, viewed by its owner) is the client’s call.

accountCreatedAtstring date-time required

When the account was created. The one-time upgrade offer reads it to tell a first session from a return visit (ADR 0053, amendment 1) — a fact from the server, because a browser-local flag fails on a second device.

duplicateHoldboolean required

True while the account is on a duplicate-account hold (ADR 0057): its live sites are offline and it cannot publish or start a plan until its owner answers the request at /duplicate-accounts.

Changes

No recorded changes to this operation across all 1 revision of this API.