Billing

Set the seat count

Sets how many seats the account pays for. Never called implicitly by inviting someone — adding a teammate returns 402 with SEAT_LIMIT_REACHED so the owner confirms the charge first.

patch/v1/billing/seats

Request

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

Request body

seatsnumber required

Total seats the account should have, including the ones the plan already bundles — the same number the dashboard displays. Requests below the seats currently in use are raised to that floor rather than rejected, so members are never billed out from under.

Example request

{
  "seats": 4
}

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.