
How to Manage 2FA for a Shared Stripe Account
Stripe has team members, roles and restricted API keys, so most shared Stripe logins are unnecessary. What is genuinely left, and how to run 2FA on it.
Most shared Stripe logins do not need to exist. Stripe has team members with roles, and it has restricted API keys for anything automated, so the answer for almost every person who currently uses a shared password is an invitation with a role, and their own second factor.
What is left after that is usually one login: the account owner. That one is genuinely single, it controls the bank details, and it is the one whose 2FA deserves a deliberate custody arrangement rather than a phone in someone’s pocket.
Why teams share a Stripe login anyway
Not carelessness. Four familiar situations:
- Finance owns it and support needs it. Someone has to look up a charge at 11pm and the person with the login is asleep.
- The accountant needs it once a month. Setting up access feels disproportionate for twelve visits a year.
- An agency has the client’s credentials. They were emailed at kickoff and nobody wants to reopen the conversation.
- Nobody wants to touch the owner account. It works, it is tied to a founder’s email, and changing it feels risky.
The first three have clean answers in Stripe itself. The fourth is the real subject.
First: use team members and roles
Inviting people is the step that removes the problem instead of managing it. Each team member signs in with their own email, sets up their own second factor, and appears under their own name in the account’s activity. Stripe’s roles let you fit the access to the job: full administration for the people who need it, narrower roles for support and analysis.
Three cases worth doing explicitly:
Support and ops. A role that can look up payments and issue refunds if that is their job, and nothing near the bank details. This is what removes the 11pm message to whoever holds the phone.
The accountant or bookkeeper. A read-oriented role beats handing over the login, and it makes the end of the engagement a single removal rather than a password rotation.
Agencies working in a client’s account. Ask the client to invite you as a team member rather than sending credentials. It is better for them, since they can see what you did and remove you cleanly, which makes it an easy conversation, and it takes their 2FA problem off your plate entirely.
If single sign-on is available on your account, it settles all of this at once and is worth asking about.
For anything automated: restricted API keys
Scripts, reconciliation jobs and internal tools should not sign in to the dashboard at all. Restricted API keys exist for this, and they are everything a TOTP secret is not: scoped to specific permissions, individually revocable, and rotatable without touching anyone else’s access.
The rule of thumb: if a human is typing a six-digit code so that a machine can do its job, the integration is built wrong.
What is genuinely left: the owner login
Some things sit with the account owner and cannot be delegated away: changing the bank account, transferring ownership, recovering the login itself. That credential is real, it is singular, and several people usually need to be able to reach it, because a company where exactly one human can change the payout destination has a different problem.
So this is where shared 2FA is legitimate, and where it should be run tightly:
- One custody of the secret, entered once, known to at least two administrators.
- Per-person access to the codes, for the small number of people who genuinely need them.
- A log of who read a code, because on a payment account “who signed in on Tuesday” has to have an answer.
- Recovery codes stored outside the account they recover, with the secret’s location written down.
The general reasoning behind those four is in how to share 2FA codes with your team securely, and the comparison of the mechanisms in best ways to manage 2FA for shared accounts.
What not to do on a payment account
- Screenshot the enrolment QR code so the team can each add it. That is the secret, permanently, on unknown devices. On a Stripe account it is the worst place to do it.
- Store the TOTP secret in the same vault entry as the password. One compromise then yields both factors.
- Leave SMS as the second factor. A payment account is worth the effort of a SIM swap; an app-based code is not.
- Let one person’s phone be the only route in. That is an availability problem on the account that pays your suppliers.
Offboarding a Stripe account
When someone leaves, in this order:
- Remove their team member access. One action, nothing else affected.
- Rotate the API keys they created, and any restricted key their tooling used.
- If they ever held the owner login’s TOTP secret, reset that account’s 2FA, sign out all sessions and rotate the password. The secret does not leave their phone by itself.
- Check the payout and bank settings, plus recent activity, for anything that changed around their departure.
Step 3 is why the custody arrangement above matters: if only two administrators ever held the secret, most departures skip that step entirely, and the ones that do not are a known, contained job.
Where Share Auth fits
For the owner login and any other Stripe account that genuinely has one set of credentials: the secret is entered once and encrypted at rest, the people who need codes see the current code and its countdown rather than the secret, permissions are set per member, and every view is written to an access log. Removing someone removes their access everywhere at once.
For everything else in this article, Stripe’s own team members and restricted keys are the better answer, and no vault should be involved.
Frequently asked questions
Yes, and without sharing a login: invite them as team members. Each person signs in with their own email and their own second factor, gets a role scoped to their job, and shows up under their own name in the account's activity.
Stripe requires two-factor authentication on dashboard accounts, which is a good thing and also why a shared login becomes a shared authenticator so quickly. Per-person team members turn that requirement into per-person protection instead.
Invite them as a team member with a read-oriented role rather than handing over the login. They set up their own 2FA, you can see what they did, and removing them at year end is one action that changes nothing for anyone else.
The six-digit code, yes, since it expires in seconds and is single-use. The secret behind it, no: it is permanent, it cannot be counted or revoked, and on a payment account that is the credential you least want copies of.
If they were a team member, remove them and rotate any API keys they created. If they held the secret for the owner login, reset that account's 2FA, sign out all sessions, rotate the password, and check the payout and bank settings for changes.