# How to add a new user to a Stripe account

- Tool: Stripe
- Difficulty: Beginner
- Time required: 5 minutes
- Compatibility: All Stripe accounts (some roles require paid plans)
- Last updated: March 2026

## TL;DR

Add a new team member to your Stripe account by going to Settings → Team in the Dashboard. Click 'Invite member', enter their email address, select a role (Administrator, Developer, Analyst, or custom), and send the invitation. The new user receives an email with a link to accept and set up their access.

## Adding Team Members to Your Stripe Account

Stripe lets you invite team members with different permission levels so your developers, finance team, and support staff can access the parts of the Dashboard they need. You can assign built-in roles like Administrator, Developer, or Analyst, or create custom roles with specific permissions. This guide covers the invitation process and role management.

## Before you start

- Administrator access to the Stripe account
- The email address of the person you want to invite

## Step-by-step guide

### 1. Navigate to Team settings

Log in to the Stripe Dashboard as an Administrator. Go to Settings → Team (in the left sidebar under Your team). You will see a list of current team members and their roles.

**Expected result:** The Team settings page shows all current team members and an option to invite new ones.

### 2. Click Invite member

Click the '+ Invite member' button. Enter the email address of the person you want to invite. You can invite multiple people at once by adding multiple email addresses.

**Expected result:** An email field appears where you can enter the new team member's email address.

### 3. Select a role

Choose a role for the new team member. The built-in roles are: Administrator (full access), Developer (API keys, webhooks, logs), Analyst (read-only financial data), and Support Specialist (view payments, issue refunds). Select the role that matches their responsibilities.

**Expected result:** A role is selected for the new team member.

### 4. Send the invitation

Click 'Send invite'. The team member receives an email with a link to accept the invitation. They will need to create a Stripe account (or use an existing one) to access your Dashboard.

**Expected result:** An invitation email is sent. The new member appears in the Team list with a 'Pending' status.

### 5. Manage or revoke access

To change a team member's role or remove them, go to Settings → Team, find the member, and click the three-dot menu next to their name. You can change their role or remove access entirely.

**Expected result:** The team member's role is updated or their access is revoked.

## Complete code example

File: `list-team-roles.js`

```javascript
// list-team-roles.js
// Note: Team member management is primarily done through the Dashboard.
// The API does not expose team member management directly.
// This script demonstrates checking API key permissions.

const Stripe = require('stripe');
const stripe = Stripe(process.env.STRIPE_SECRET_KEY);

async function checkApiAccess() {
  try {
    console.log('=== API Access Check ===');
    console.log('');

    // Verify the current key works
    const account = await stripe.accounts.retrieve();
    console.log('Account:', account.id);
    console.log('Business:', account.business_profile?.name || 'Not set');
    console.log('');

    // List API keys (restricted keys)
    // Note: Only the Dashboard shows all team members.
    // Via API, you can list restricted keys that correspond to roles.
    console.log('Restricted API keys:');
    const keys = await stripe.apiKeys?.list?.() || { data: [] };
    
    // Test basic permissions
    const tests = [
      { name: 'Read payments', fn: () => stripe.paymentIntents.list({ limit: 1 }) },
      { name: 'Read customers', fn: () => stripe.customers.list({ limit: 1 }) },
      { name: 'Read balance', fn: () => stripe.balance.retrieve() }
    ];

    console.log('Permission checks:');
    for (const test of tests) {
      try {
        await test.fn();
        console.log(`  ${test.name}: Allowed`);
      } catch (err) {
        console.log(`  ${test.name}: Denied (${err.code})`);
      }
    }
  } catch (err) {
    console.error('Access check failed:', err.message);
  }
}

checkApiAccess();
```

## Common mistakes

- **Giving every team member Administrator access** — undefined Fix: Use the principle of least privilege. Developers need Developer access, finance needs Analyst access, and support needs Support Specialist access.
- **Not removing access when a team member leaves the organization** — undefined Fix: Immediately revoke access in Settings → Team when someone leaves. Also rotate any API keys they had access to.
- **Sharing your personal Stripe login instead of inviting team members** — undefined Fix: Each person should have their own account. Shared logins make it impossible to track who did what and create security risks.
- **Forgetting that invited users also get test mode access** — undefined Fix: Team roles apply to both test and live modes. Be aware that a Developer role in test mode can also access test API keys.

## Best practices

- Use built-in roles when possible — they are maintained by Stripe with appropriate permission sets
- Regularly audit your team members list and remove anyone who no longer needs access
- Enable two-factor authentication (2FA) for all team members, especially Administrators
- Create restricted API keys for automated systems instead of sharing your full secret key
- Document which role each team member has and review quarterly
- For organizations with complex access requirements, create custom roles with only the specific permissions needed

## Frequently asked questions

### How many team members can I add to a Stripe account?

There is no hard limit on the number of team members. You can add as many users as needed.

### What is the difference between Administrator and Developer roles?

Administrators have full access to everything including billing, team management, and account settings. Developers can access API keys, webhooks, and logs but cannot manage billing or team members.

### Can I create custom roles?

Yes. Go to Settings → Team → Roles and create a custom role with specific permissions. This lets you tailor access to your organization's needs.

### Do team members need their own Stripe account?

Team members need a Stripe login (email and password), but they do not need their own Stripe business account. They log in and then access your business account with their assigned role.

### Can team members see live API keys?

Only members with the Administrator or Developer role can view API keys. The secret key is partially masked and must be explicitly revealed. Consider using restricted keys for specific use cases.

---

Source: https://www.rapidevelopers.com/stripe-guide/how-to-add-a-new-user-to-a-stripe-account
© RapidDev — https://www.rapidevelopers.com/stripe-guide/how-to-add-a-new-user-to-a-stripe-account
