Check if your Stripe account is restricted by looking at the Dashboard for warning banners, or by retrieving your account via the API and checking the requirements.disabled_reason field. Common restrictions include charges_disabled, payouts_disabled, and under_review. Each restriction has a specific cause and resolution path.
Checking and Understanding Stripe Account Restrictions
Stripe may restrict your account if verification is incomplete, suspicious activity is detected, or your business type is under review. Restrictions can affect your ability to accept charges, receive payouts, or both. This guide shows you how to identify restrictions, understand their causes, and take the right steps to resolve them.
Prerequisites
- Access to the Stripe Dashboard or your Stripe secret key
- Administrator role on the Stripe account
Step-by-step guide
Check for restrictions in the Dashboard
Check for restrictions in the Dashboard
Log in to the Stripe Dashboard. If your account is restricted, you will see a red or yellow banner at the top of the page indicating the issue. Click the banner to see details and resolution steps.
Expected result: If restricted, a banner explains the restriction and provides a link to resolve it. If no banner appears, your account has no restrictions.
Review the Requirements section
Review the Requirements section
Go to Settings → Account details and scroll to the requirements section. Look for 'currently_due' and 'past_due' items. Past due items are overdue and may have already triggered restrictions.
Expected result: You see a list of any outstanding requirements and their deadlines.
Check restrictions via the API
Check restrictions via the API
Retrieve your account via the API to check the requirements.disabled_reason field. This field tells you exactly why your account is restricted.
1const Stripe = require('stripe');2const stripe = Stripe(process.env.STRIPE_SECRET_KEY);34async function checkRestrictions() {5 const account = await stripe.accounts.retrieve();67 console.log('Charges enabled:', account.charges_enabled);8 console.log('Payouts enabled:', account.payouts_enabled);910 if (account.requirements.disabled_reason) {11 console.log('RESTRICTED:', account.requirements.disabled_reason);12 } else {13 console.log('No restrictions.');14 }1516 if (account.requirements.past_due.length > 0) {17 console.log('Past due requirements:');18 account.requirements.past_due.forEach(r => console.log(' -', r));19 }20}2122checkRestrictions();Expected result: The script shows whether your account is restricted and the specific reason.
Understand the disabled_reason
Understand the disabled_reason
Common disabled_reason values include: 'requirements.past_due' (overdue verification), 'listed' (on a prohibited list), 'rejected.fraud' (suspected fraud), 'rejected.terms_of_service' (TOS violation), and 'under_review' (Stripe is reviewing your account). Each requires a different resolution approach.
Expected result: You understand the specific reason for the restriction and the appropriate resolution path.
Resolve the restriction
Resolve the restriction
For past_due requirements, submit the missing information in the Dashboard. For under_review, wait for Stripe's review and respond to any information requests. For rejection reasons, contact Stripe support to understand the issue and discuss options.
Expected result: After resolving the underlying issue, the restriction is lifted and charges_enabled and payouts_enabled return to true.
Complete working example
1// check-restrictions.js2// Comprehensive Stripe account restriction check34const Stripe = require('stripe');5const stripe = Stripe(process.env.STRIPE_SECRET_KEY);67async function checkRestrictions() {8 try {9 const account = await stripe.accounts.retrieve();1011 console.log('=== Account Restriction Check ===');12 console.log('');13 console.log('Account ID:', account.id);14 console.log('Charges enabled:', account.charges_enabled ? 'Yes' : 'NO');15 console.log('Payouts enabled:', account.payouts_enabled ? 'Yes' : 'NO');16 console.log('');1718 const reqs = account.requirements;1920 if (reqs.disabled_reason) {21 console.log('RESTRICTION ACTIVE');22 console.log('Reason:', reqs.disabled_reason);23 console.log('');2425 // Explain the reason26 const explanations = {27 'requirements.past_due': 'Verification requirements are overdue. Submit the missing information in the Dashboard.',28 'requirements.pending_verification': 'Stripe is reviewing your submitted documents. No action needed — wait for review.',29 'listed': 'Your account matches an entry on a prohibited list. Contact Stripe support.',30 'rejected.fraud': 'Account was rejected due to suspected fraud. Contact Stripe support to appeal.',31 'rejected.terms_of_service': 'Account was rejected for a Terms of Service violation. Contact Stripe support.',32 'rejected.listed': 'Account was rejected because it is on a prohibited list. Contact Stripe support.',33 'rejected.other': 'Account was rejected for another reason. Contact Stripe support for details.',34 'under_review': 'Stripe is reviewing your account. Respond to any information requests promptly.'35 };3637 const explanation = explanations[reqs.disabled_reason] || 'Contact Stripe support for details.';38 console.log('What to do:', explanation);39 } else {40 console.log('No restrictions. Account is fully active.');41 }4243 if (reqs.past_due.length > 0) {44 console.log('');45 console.log('Past due items:');46 reqs.past_due.forEach(r => console.log(' -', r));47 }4849 if (reqs.currently_due.length > 0) {50 console.log('');51 console.log('Currently due items:');52 reqs.currently_due.forEach(r => console.log(' -', r));53 if (reqs.current_deadline) {54 const deadline = new Date(reqs.current_deadline * 1000);55 console.log(' Deadline:', deadline.toLocaleDateString());56 }57 }5859 if (reqs.errors && reqs.errors.length > 0) {60 console.log('');61 console.log('Errors:');62 reqs.errors.forEach(e => console.log(` - ${e.requirement}: ${e.reason}`));63 }6465 return account;66 } catch (err) {67 console.error('Error:', err.message);68 }69}7071checkRestrictions();Common mistakes when checkking if your Stripe account is restricted
Why it's a problem: Ignoring Dashboard warning banners about account restrictions
How to avoid: Always address restriction banners immediately. They indicate that your ability to accept payments or receive payouts may be affected.
Why it's a problem: Assuming the account will fix itself without action
How to avoid: Most restrictions require you to submit information or documents. Only 'pending_verification' resolves automatically (while Stripe reviews your submission).
Why it's a problem: Creating a new account to avoid restrictions
How to avoid: Do not create a new account to circumvent restrictions. This violates Stripe's Terms of Service and may result in permanent bans.
Why it's a problem: Not checking for restrictions programmatically in production
How to avoid: Add an account status check to your application's health monitoring so you are alerted immediately if restrictions appear.
Best practices
- Set up a webhook listener for account.updated events to be notified of restriction changes in real-time
- Check your account status weekly during the first few months after setup when restrictions are most common
- Respond to Stripe's information requests within 24 hours to minimize the duration of restrictions
- Keep identity documents and business registration documents readily accessible for quick submission
- If your account is restricted and you need urgent help, RapidDev can assist in understanding the requirements and preparing the necessary documentation
- Document all communications with Stripe support for reference
Still stuck?
Copy one of these prompts to get a personalized, step-by-step explanation.
How do I check if my Stripe account is restricted? Explain the different disabled_reason codes, what each one means, and how to resolve them. Show me a Node.js script that checks for restrictions and explains the reason.
Write a Node.js script that checks if my Stripe account is restricted by retrieving the account and examining requirements.disabled_reason, past_due items, and errors. Include explanations for each possible disabled_reason code.
Frequently asked questions
What does 'requirements.past_due' mean?
It means you missed a deadline to provide required verification information. Submit the missing items in Settings → Account details to lift the restriction.
Can I still accept payments while my account is restricted?
It depends on the restriction. If charges_enabled is false, you cannot accept payments. If only payouts_enabled is false, you can still accept payments but funds will be held until the restriction is resolved.
How long does it take for a restriction to be lifted?
For requirements-based restrictions, it is lifted as soon as you submit the required information and Stripe verifies it (usually within hours to 2 business days). For reviews, it depends on the complexity of the review.
What if my account was rejected?
If disabled_reason starts with 'rejected.', contact Stripe support to understand the specific reason and discuss whether an appeal is possible.
Will I lose my funds if my account is restricted?
No. Your funds remain in your Stripe balance. They will be paid out once the restriction is resolved. In cases of permanent account closure, Stripe will pay out remaining funds after a holding period.
Talk to an Expert
Our team has built 600+ apps. Get personalized help with your project.
Book a free consultation