/stripe-guides

How to check Stripe account status?

Learn how to check your Stripe account status using the Dashboard, API, or code. Step-by-step guide for monitoring verification, payouts, and account alerts.

Matt Graham, CEO of Rapid Developers

Book a call with an Expert

Starting a new venture? Need to upgrade your web app? RapidDev builds application with your growth in mind.

Book a free consultation

How to check Stripe account status?

How to Check Stripe Account Status

 

Checking your Stripe account status is essential for ensuring that your payment processing is running smoothly. This comprehensive tutorial will guide you through various methods to check your Stripe account status, from using the Stripe Dashboard to implementing API calls.

 

Step 1: Log into the Stripe Dashboard

 

The simplest way to check your account status is through the Stripe Dashboard:

https://dashboard.stripe.com/login

Enter your email and password to access your Stripe account.

 

Step 2: Navigate to Account Settings

 

Once logged in:

  • Click on the "Settings" icon in the left sidebar
  • Select "Account settings" from the dropdown menu

This section provides an overview of your account status and any pending requirements.

 

Step 3: Check Account Verification Status

 

Within account settings:

  • Look for "Account verification" or "Business details" section
  • Check for any indicators showing "Incomplete" or "Action required"
  • Review any pending verification steps that need to be completed

 

Step 4: Review Dashboard Alerts and Notifications

 

Stripe often displays important status notifications at the top of your dashboard:

  • Check for any yellow or red alert banners
  • Read any messages regarding account limitations or pending requirements

 

Step 5: Check Account Status via Stripe API (Basic)

 

For programmatic checking, you can use the Stripe API. Here's how to retrieve account information using cURL:

curl https://api.stripe.com/v1/account \\
  -u sk_test_YourSecretKey: \\
  -G

Remember to replace sk_test_YourSecretKey with your actual Stripe secret key.

 

Step 6: Check Account Status via Node.js

 

If you're using Node.js, you can check your account status with this code:

const stripe = require('stripe')('sk_test_YourSecretKey');

async function checkAccountStatus() {
  try {
    const account = await stripe.accounts.retrieve();
    console.log('Account ID:', account.id);
    console.log('Account Status:', account.charges\_enabled ? 'Active' : 'Limited');
    console.log('Payouts Enabled:', account.payouts\_enabled ? 'Yes' : 'No');
    console.log('Requirements:', account.requirements);
    return account;
  } catch (error) {
    console.error('Error checking account status:', error);
    throw error;
  }
}

checkAccountStatus();

 

Step 7: Check Account Status via Python

 

For Python developers, here's how to check your account status:

import stripe

# Set your API key
stripe.api_key = "sk_test\_YourSecretKey"

try:
    # Retrieve the account
    account = stripe.Account.retrieve()
    
    # Print account status information
    print(f"Account ID: {account.id}")
    print(f"Charges Enabled: {account.charges\_enabled}")
    print(f"Payouts Enabled: {account.payouts\_enabled}")
    
    # Check if there are any requirements
    if hasattr(account, 'requirements'):
        print("\nPending Requirements:")
        if account.requirements.currently\_due:
            for requirement in account.requirements.currently\_due:
                print(f"- {requirement}")
        else:
            print("No pending requirements")
except Exception as e:
    print(f"Error checking account status: {e}")

 

Step 8: Check Account Status via PHP

 

For PHP applications, use this code to check your account status:

accounts->retrieve();
    
    // Output account status information
    echo "Account ID: " . $account->id . "\n";
    echo "Charges Enabled: " . ($account->charges\_enabled ? "Yes" : "No") . "\n";
    echo "Payouts Enabled: " . ($account->payouts\_enabled ? "Yes" : "No") . "\n";
    
    // Check if there are any requirements
    if (isset($account->requirements)) {
        echo "\nPending Requirements:\n";
        if (!empty($account->requirements->currently\_due)) {
            foreach ($account->requirements->currently\_due as $requirement) {
                echo "- " . $requirement . "\n";
            }
        } else {
            echo "No pending requirements\n";
        }
    }
} catch (\Stripe\Exception\ApiErrorException $e) {
    echo "Error checking account status: " . $e->getMessage();
}
?>

 

Step 9: Interpret Account Status Information

 

When checking your account status, pay attention to these key indicators:

  • charges\_enabled: If true, your account can process payments
  • payouts\_enabled: If true, your account can receive payouts
  • requirements.currently\_due: Lists any outstanding requirements
  • requirements.past\_due: Lists overdue requirements that may be limiting your account
  • capabilities: Shows which payment methods and features are enabled for your account

 

Step 10: Set Up Automated Status Monitoring

 

For ongoing monitoring, you can set up a scheduled task that checks your account status and alerts you to any changes:

const stripe = require('stripe')('sk_test_YourSecretKey');
const nodemailer = require('nodemailer');

// Configure email transporter
const transporter = nodemailer.createTransport({
  service: 'gmail',
  auth: {
    user: '[email protected]',
    pass: 'your-email-password'
  }
});

async function monitorAccountStatus() {
  try {
    const account = await stripe.accounts.retrieve();
    
    // Check if there are any issues with the account
    const hasIssues = !account.charges\_enabled || 
                      !account.payouts\_enabled || 
                      (account.requirements && account.requirements.currently\_due.length > 0);
    
    if (hasIssues) {
      // Send an alert email
      await transporter.sendMail({
        from: '[email protected]',
        to: '[email protected]',
        subject: 'Stripe Account Status Alert',
        html: \`
          

Stripe Account Status Alert

The following issues were detected with your Stripe account:

    ${!account.charges\_enabled ? '
  • Charges are disabled
  • ' : ''} ${!account.payouts\_enabled ? '
  • Payouts are disabled
  • ' : ''} ${account.requirements && account.requirements.currently\_due.length > 0 ? `
  • Pending requirements: ${account.requirements.currently_due.join(', ')}
  • ` : ''}

Please log in to your Stripe Dashboard to resolve these issues.

\` }); console.log('Alert email sent due to account issues'); } else { console.log('Account status checked: No issues found'); } } catch (error) { console.error('Error monitoring account status:', error); } } // Run the check immediately monitorAccountStatus(); // Then schedule it to run daily // In Node.js, you might use a package like 'node-cron': // cron.schedule('0 9 _ _ \*', monitorAccountStatus); // Runs at 9 AM daily

 

Step 11: React to Status Changes

 

Based on the status checks, you may need to take actions:

  • If verification is incomplete, submit the required documentation
  • If charges are disabled, check for policy violations or update your business information
  • If payouts are disabled, verify your bank account information

Log into your Stripe Dashboard to complete any required actions.

 

Step 12: Implement Webhook Monitoring

 

For real-time status updates, set up Stripe webhooks to be notified of account changes:

const express = require('express');
const stripe = require('stripe')('sk_test_YourSecretKey');
const app = express();

// Parse JSON body
app.use(express.json());

// Webhook endpoint
app.post('/webhook', async (req, res) => {
  const sig = req.headers['stripe-signature'];
  let event;

  try {
    // Verify the event came from Stripe
    event = stripe.webhooks.constructEvent(
      req.body, 
      sig, 
      'whsec\_YourWebhookSigningSecret'
    );
  } catch (err) {
    return res.status(400).send(`Webhook Error: ${err.message}`);
  }

  // Handle specific events
  switch (event.type) {
    case 'account.updated':
      const account = event.data.object;
      console.log('Account updated:', account.id);
      
      // Check for status changes
      if (!account.charges\_enabled) {
        console.log('WARNING: Charges have been disabled');
        // Send notification to team
      }
      
      if (!account.payouts\_enabled) {
        console.log('WARNING: Payouts have been disabled');
        // Send notification to team
      }
      
      if (account.requirements && account.requirements.currently\_due.length > 0) {
        console.log('New requirements needed:', account.requirements.currently\_due);
        // Send notification to team
      }
      break;
      
    default:
      console.log(`Unhandled event type ${event.type}`);
  }

  // Return a 200 response to acknowledge receipt of the event
  res.send({received: true});
});

app.listen(3000, () => console.log('Running on port 3000'));

To set up this webhook in your Stripe Dashboard:

  • Go to Developers > Webhooks
  • Click "Add endpoint"
  • Enter your endpoint URL
  • Select the "account.updated" event

 

Conclusion

 

Regularly checking your Stripe account status is crucial for maintaining uninterrupted payment processing. By following this tutorial, you can monitor your account through the Dashboard, API calls, or automated systems, ensuring you quickly address any issues that arise.

Want to explore opportunities to work with us?

Connect with our team to unlock the full potential of no-code solutions with a no-commitment consultation!

Book a Free Consultation

Client trust and success are our top priorities

When it comes to serving you, we sweat the little things. That’s why our work makes a big impact.

Rapid Dev was an exceptional project management organization and the best development collaborators I've had the pleasure of working with. They do complex work on extremely fast timelines and effectively manage the testing and pre-launch process to deliver the best possible product. I'm extremely impressed with their execution ability.

CPO, Praction - Arkady Sokolov

May 2, 2023

Working with Matt was comparable to having another co-founder on the team, but without the commitment or cost. He has a strategic mindset and willing to change the scope of the project in real time based on the needs of the client. A true strategic thought partner!

Co-Founder, Arc - Donald Muir

Dec 27, 2022

Rapid Dev are 10/10, excellent communicators - the best I've ever encountered in the tech dev space. They always go the extra mile, they genuinely care, they respond quickly, they're flexible, adaptable and their enthusiasm is amazing.

Co-CEO, Grantify - Mat Westergreen-Thorne

Oct 15, 2022

Rapid Dev is an excellent developer for no-code and low-code solutions.
We’ve had great success since launching the platform in November 2023. In a few months, we’ve gained over 1,000 new active users. We’ve also secured several dozen bookings on the platform and seen about 70% new user month-over-month growth since the launch.

Co-Founder, Church Real Estate Marketplace - Emmanuel Brown

May 1, 2024 

Matt’s dedication to executing our vision and his commitment to the project deadline were impressive. 
This was such a specific project, and Matt really delivered. We worked with a really fast turnaround, and he always delivered. The site was a perfect prop for us!

Production Manager, Media Production Company - Samantha Fekete

Sep 23, 2022