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.
Book a call with an Expert
Starting a new venture? Need to upgrade your web app? RapidDev builds application with your growth in mind.
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:
This section provides an overview of your account status and any pending requirements.
Step 3: Check Account Verification Status
Within account settings:
Step 4: Review Dashboard Alerts and Notifications
Stripe often displays important status notifications at the top of your dashboard:
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:
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:
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:
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.
When it comes to serving you, we sweat the little things. That’s why our work makes a big impact.