Seats and billing
Everyone in a team holds a seat: its members, and the people invited who have not joined yet, by email or with an invite code. Seats belong to the team, not to a person, and are bought once.
- Team is $100 a seat, paid once, for 2 to 25 seats. Every team feature comes with it, short-lived SSH certificates, the activity record and event export included.
- Business is an optional subscription on top: $15 a seat a month, or $150 a seat a year. It adds company sign-in (SSO), directory sync (SCIM), the rule that members sign in through your company, and more than 25 seats, up to 1,000.
Owners buy seats and Business on zestssh.com, from ZestSSH on a computer.
What members get
Section titled “What members get”While someone is in a team that has at least one seat bought (by card or invoice) or given by a seat code, they get Squeezed and Juiced for their personal space, and ZestSSH Cloud syncs on every one of their devices, with no seven-device limit. A seat that comes only from an owner’s Bundle does not give this.
They keep it while their membership is active: not suspended, not held back by directory sync, and not past its end date. Once that ends, for example when they leave, their personal space’s ZestSSH Cloud copy can still be read for 30 days, but not changed, unless they hold Juiced themselves.
Who holds a seat
Section titled “Who holds a seat”- Every member whose access has not ended, owners included. Suspended members, and members that directory sync holds back, still hold theirs.
- Every open invitation, until the person is added or turned away, or the invitation is taken back or runs out after 14 days. Inviting the same address again takes no second seat.
- Every invite code that waits, from the moment it is made until it is cancelled or runs out, and after someone uses it, until they are let in or turned away. A code sent instead of an email invitation takes that invitation’s seat. See Join a team with a code.
Nobody is tied to a seat. When someone leaves or is removed, or their access reaches its end date, their seat is free for the next person.
One seat comes with the Bundle. When an owner holds the personal Bundle (Squeezed and Juiced together), the team has one seat more, shown as From an owner’s Bundle. A team gets one such seat, however many of its owners hold the Bundle.
Without Business, a team buys up to 25 seats; with it, up to 1,000. For a larger team, write to support@zestssh.com.
See your seats
Section titled “See your seats”On a computer, open Team in the sidebar, then Seats. On a phone, open More, tap the team’s name, then Seats. The page says “Everyone in the team holds a seat: its members, and people invited who have not joined yet.” Every member of the team sees:
- how many seats are in use, such as “4 of 6 seats in use”, and how many are open, such as “2 open”,
- a bar of the seats, with Members, Waiting to join and Open (or In use and Open where the invitations cannot be read),
- Bought, and From an owner’s Bundle when an owner brings one,
- Who holds them: each member, with their role and when they joined, and, for those who may invite, each invitation that waits, marked Invited or Waiting for you. Open in Members opens a member on the Members page; someone who waits has Review, and an invitation Withdraw invitation,
- Business, with its state: Active, Payment due or Not on for this team.
An owner on a computer also sees the prices: “Seats are $100 each, bought once. This opens zestssh.com in your browser, where Business and invoices are too.” and “Business is $15 a month or $150 a year for each seat.”
When the seats cannot be read, the page says “This team’s seats could not be read.”, with Retry and Copy details.
When seats run out
Section titled “When seats run out”- Every seat is taken. Inviting someone shows “Every seat is taken. You need 1 more seat to invite someone.” An owner on a computer gets a button there, such as Buy 1 seat, which opens the seats page with that many ready to buy.
- More people than seats, for example after a refund: “This team has more people than seats. Nothing is lost and everything keeps working, but new items and invitations wait until an owner buys seats.”
While there are more people than seats, ZestSSH Cloud takes no new items and sends no new invitations, and bringing a deleted item back counts as a new item. Changes and deletions go on as before, and nobody loses access to anything. New items wait on the device they were made on, which shows a banner such as “Example Ops has more people than seats: new items wait on this device until an owner buys seats.”, and go once there are enough seats. On a computer, an owner’s banner has Buy seats.
Buy seats
Section titled “Buy seats”Owners, on a computer:
- Open Team, then Seats, and choose Buy seats. ZestSSH opens this team’s seats page on zestssh.com in your browser. The Seats page in ZestSSH says how the website shows the team, by the first 8 characters of its id, such as “On zestssh.com this team shows as 3f2a9c1e.”, since ZestSSH Cloud cannot read the team’s name.
- Sign in with the account you use in ZestSSH: with Google, with Apple, with your email and password, or with Sign in with your company (SSO). The sign-in lasts while the tab is open.
- Under Buy seats, choose how many. A team starts at 2 seats, so the first purchase brings it to at least 2 (an owner’s Bundle seat counts toward them). One purchase buys at most 250, and a team without Business stops at 25.
- Choose Continue to payment and pay on Stripe’s checkout page.
The new seats show on the page in a moment, and in ZestSSH at its next sync. New items that waited on a device for seats go with that device’s next sync.
Seats are paid once. They are not a subscription, and cancelling Business keeps them.
While a purchase waits to be paid
Section titled “While a purchase waits to be paid”A purchase holds its seats while it waits to be paid, so that two purchases at once cannot take the team past its limit:
- A checkout holds them for about half an hour, then lapses if it was not paid. Starting a new checkout closes the team’s earlier unpaid ones first. A payment that takes days to clear, such as a bank debit, holds its seats until it clears or fails.
- An invoice holds them until it is paid or voided, or until its due date. An invoice paid after its due date still gives its seats.
When a purchase would pass the limit together with one that waits, the seats page says so and how many you can buy now, for example: “An invoice for 5 seats for this team is waiting to be paid, due 11/21/2026. Pay it, or write to support@zestssh.com to cancel it. Until then you can buy 3 more.”
Pay by invoice
Section titled “Pay by invoice”For a company that pays by invoice, with a purchase order number or without one:
- On the seats page, under Buy seats, choose how many, then Pay by invoice instead, with a purchase order number.
- In Send the invoice to, enter where the invoice goes, such as
accounts@example.com. Left empty, it goes to your account’s address. The address you give is also where the team’s later invoices go. - Optionally, fill in Purchase order number (optional), up to 40 characters. It is printed on the invoice.
- Choose Send the invoice.
Stripe sends the invoice. It is due in 30 days, and it says how it can be paid. The seats are added as soon as it is paid. The same limits apply as at checkout.
Redeem a seat code
Section titled “Redeem a seat code”ZestSSH can give a team seats with a code, for example to a team that paid another way. Owners, on a computer:
- Open Team, then Seats, and choose Redeem a code.
- Enter the code, which looks like
ZEST-XXXX-XXXX-XXXX(older codes, with two groups afterZEST-, still work), and choose Redeem.
ZestSSH says how many came, such as “Seats added to this team: 10.” Seats from a code count like bought ones, and show under Bought.
You can also enter a seat code on your account page, under Redeem a code. ZestSSH sees it is for a team and asks which of your teams gets the seats, with Make a new team too; if you own no team yet, you name the new team there and the seats go to it.
- A team uses a code once. Entering it again changes nothing: “This team has used this code already. Nothing changed.”
- A code for an account is not taken here. A code that gives Squeezed or Juiced is redeemed on your account page, under Redeem a code.
- A code that is not valid, has expired or is used up: “That code is not valid, has expired, or has already been used.”
- 15 tries an hour for each account, and 30 an hour from one network address, together with codes redeemed on account pages.
- A pause for everyone. When too many wrong codes are tried across ZestSSH in an hour, redeeming pauses until the hour is over: “Redeeming codes is paused for a while because too many wrong codes were tried. Try again in an hour.”
Business
Section titled “Business”Business adds company sign-in (SAML and OpenID Connect), directory sync (SCIM), the rule that members sign in through your company (Company sign-in required), more than 25 seats (up to 1,000), priority support and help setting up. Nothing else needs it: the seats, certificates, the activity record, event export and everything else in the team work without it.
- Billed per seat, monthly or yearly, for every seat the team has, an owner’s Bundle seat included. It follows the seats: buying more adds them to it, a refund takes them off, and Stripe works out the difference for the time left.
- Seats first. A team needs its first 2 seats before it can subscribe. With no seats, the page says “Buy seats first: Business is billed for each seat.”
- One subscription per team. It is changed, paid or cancelled in billing, never doubled.
- Cancel at any time; no refunds. A canceled Business stays on until the end of the month or year already paid, and is not charged again. Business payments are not refunded. Seats are a one-time purchase and keep their own 30-day refund.
- Priority support. Questions from Business teams are answered first, and we aim to answer within one business day. That is an aim, not a guaranteed response time or service level.
To subscribe, owners, on a computer:
- Open Team, then Seats, choose Buy seats, and sign in on zestssh.com.
- Under Business, choose Yearly or Monthly.
- Choose Subscribe and pay on Stripe’s checkout page.
On the same page, Manage Business opens Stripe’s billing page to change or cancel it. Under Invoices and payment, Open billing has your receipts, invoices and the card on file.
ZestSSH shows what it is billed for, such as “Billed yearly for 6 seats. Renews on Mar 1, 2027.”
What needs it
Section titled “What needs it”These need Business to be Active. Payment due is not enough.
- Setting up or changing company sign-in on the Sign-in page: saving it, testing it and turning it on.
- Turning directory sync on, and making a new directory token.
- Turning on the Company sign-in required rule, under Rules.
- Buying seats past 25. For this one, Payment due is enough.
When one of the first three is refused: “Company sign-in and directory sync need Business for this team. An owner can turn it on from the Team page, under Seats.”
When a payment fails
Section titled “When a payment fails”When a renewal is not paid, Business shows Payment due. Directory sync and the Company sign-in required rule keep working for 14 days after the end of the time paid for, and ZestSSH shows that date. Company sign-in cannot be changed until what is due is paid.
To pay, an owner opens the seats page and chooses Pay what is due.
When Business ends
Section titled “When Business ends”Cancelled in billing, it shows “Set to end on”, with the date. It stays Active until that date. For 14 days after that, directory sync and the Company sign-in required rule keep working, but company sign-in can no longer be changed.
Once it shows Not on for this team:
- Directory sync stops. ZestSSH Cloud refuses what your identity provider sends.
- The Company sign-in required rule is no longer held to, so nobody is locked out of the team.
- Company sign-in cannot be set up or changed, and directory sync cannot be turned on, until Business is active again. Members who sign in through company sign-in still can.
- The seats stay, all of them, and everything else in the team keeps working. A team with more than 25 seats cannot buy more until Business is active again.
When seats are taken back
Section titled “When seats are taken back”A refunded seat purchase takes back the seats it paid for: all of them, or as many as a partial refund covers. A chargeback that is lost takes back all of them. If the team then has more people than seats, it works as in When seats run out: nobody loses access, and new items and invitations wait.
Who can buy
Section titled “Who can buy”Only owners buy seats, ask for an invoice, subscribe to Business, open billing and redeem seat codes. Admins and everyone else see the seats, with “Only owners buy seats. Ask an owner if this team needs more.”
On a phone or tablet
Section titled “On a phone or tablet”There is nothing to buy in ZestSSH on iPhone, iPad or Android, and nothing points to where it is bought. The Seats page shows the seats and the state of Business, without a price and without a link. Owners see “Seats and Business are managed from ZestSSH on a computer.” Redeeming a seat code is on a computer too, and the banner about seats on a phone has no button.
Things to know
Section titled “Things to know”- Payments go through Stripe. ZestSSH never sees your card.
- The Bundle seat is checked from time to time. When the store cannot be asked, the last answer stands, so a team keeps its Bundle seat. A team whose owners were never checked counts no Bundle seat until a check gets an answer.
- Seats are counted by ZestSSH Cloud, from the team’s members and invitations. What is inside the team stays end-to-end encrypted.
Next steps
Section titled “Next steps”- Create a team and invite people: every invitation takes a seat.
- Join a team with a code: every waiting code holds a seat.
- Company sign-in (SSO) and Directory sync (SCIM): what Business adds.
- Setup as code: a setup file can invite people, and each invitation takes a seat.
- Plans and limits: the personal plans, and what each one includes.