Billing

Change plan or interval

Moves an existing subscription to another plan or billing interval. Upgrades are prorated and take effect at once. Downgrades issue no credit and the lower price applies from the next renewal. Seats already paid for carry over; pass seats to change that number at the same time.

patch/v1/billing/plan

Request

  • Base URL: https://api.signvoy.com
  • URL: https://api.signvoy.com/v1/billing/plan
  • Auth: one of:
    • API key in header X-Workspace-Id
    • HTTP bearer

Request body

plan'pro' | 'team' required

Plan to subscribe to or move to

interval'month' | 'year' required

Billing interval. Annual is billed once for twelve months at a 20% discount.

seatsnumber

Total seats to buy, including the ones the plan already bundles — the same number the dashboard displays. Omit it to buy exactly what the plan bundles, or what the account already occupies if that is more. Values below the seats currently in use are raised to that floor.

Example request

{
  "plan": "pro",
  "interval": "month",
  "seats": 10
}

Response

Updated billing summary

plan'free' | 'pro' | 'team' | 'enterprise' required

Plan on the subscription, i.e. what the account pays for

effectivePlan'free' | 'pro' | 'team' | 'enterprise' required

Plan actually in force. Differs from plan only when the subscription has lapsed, in which case entitlements fall back to Free.

statusstring nullable

Stripe subscription status; null on an account that never paid

interval'month' | 'year' nullable

Billing interval; null on Free

cancelAtPeriodEndboolean required

Whether the subscription stops at the end of the period

currentPeriodEndstring date-time nullable

End of the current billing period; null on Free

hasBillingHistoryboolean required

Whether this account has ever reached checkout, and therefore whether the Customer Portal has invoices and a payment method to show

extraSeatMonthlyUsdnumber required

Price per extra seat per month, in USD

extraSeatAnnualUsdnumber required

Price per extra seat per month when billed annually, in USD

Example response

{
  "plan": "pro",
  "effectivePlan": "pro",
  "status": "active",
  "interval": "month",
  "seats": {
    "included": 3,
    "purchased": 1,
    "allowed": 4,
    "used": 4
  },
  "documents": {
    "sent": 7,
    "limit": 10
  },
  "workspaces": {
    "count": 1,
    "limit": 1
  },
  "extraSeatMonthlyUsd": 8,
  "extraSeatAnnualUsd": 6,
  "availablePlans": [
    {
      "plan": "pro",
      "monthlyUsd": 10,
      "annualMonthlyUsd": 8,
      "includedSeats": 1
    }
  ]
}

Changes

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